This repository contains resources and documentation for Noah Klammer's 2021 MS thesis at the Univeristy of Colorado "Model Order Reduction for More Modular Buildings: Model-Cluster-Reduce for Modular Multifamily Buildings".
This work was inspired by and heavily borrows from previous work done for the publication of the Zero Energy Design Guide for Multifamily buildings. A related publication detailing the technical work is available for free.
- Ruby 2.5.5p157 (download)
- OpenStudio 3.0.1 (download)
- EnergyPlus 9.3.0 (included in the above)
- approximately resstock-2.2.0 (download)
- Git Bash for Windows (a git-enabled shell) v2.30.0(2) (download)
This project counts on many local changes to published packages (or in Ruby parlance "gems"). For that reason it is suggested to rely on local resources inside this repository instead of external public gems.
Many of the Measures are clones or derivatives of residential energy modeling code from the NREL resstock
repository. Learn more about ResStock project and Residential Energy Modeling.
This workflow uses OpenStudio v3.0.1 which has openstudio-standards-0.2.11
embedded. If one desires to access building performance standards ASHRAE 90.1-2016
or 90.1-2019
, a more recent openstudio-standards-0.2.XX
will be required available from rubygems.org.
Due to a bug in OpenStudio Command Line Interface, the GEM_PATH path variable needs to be taken out of the environment before running.
In Git Bash shell command for Windows $ unset GEM_PATH
and check for presence with bash line $ env | grep GEM
.
There is a known issue with openstudio-standards-0.2.11
gem which causes any model with water heaters that makes a call to the Standard
class to fail. To fix this, in the command line gem install openstudio-standards -v 0.2.13
to install the updated gem and check the installation location with command line gem list -d
. In the measure zero_energy_multifamily
the require 'openstudio-standards'
line should be changed to require 'C:/Absolute/path/to/openstudio-standards-0.2.13/lib/openstudio-standards.rb'
to override the faulty gem.
This specific workflow has an implementation of a heat pump water heater that requires some EnergyPlus Energy Management System (EMS) code. Be aware that in order for the EMS code to run, certain output variables are "baked in" to the model reporting variables and should not be changed or replaced. The EMS argument mapping changed in EnergyPlus v9.3.0 or greater and so users may see the EnergyManagementSystem:ProgramCallingManager
error. See the public commit for more information.
I recommend using the free software, ResultsViewer to view and export eplusout.eso
files to .csv
format for analysis. From my experience, there is no limit on the number of variables for ResultsViewer to work. Be aware that the parsing of eplusout.eso
files gets exponentially slower with more reporting variables, especially at time interval (t <= 1 hour).
I have also found the Python esoreader
project useful in a Python environment.
Standalone releases of EnergyPlus include an executable file ReadVarsESO.exe
which will take the eplusout.eso
file and read it to a .csv
format for a spreadsheet tool like Microsoft Excel. Beware that the limit on the number of variables is 255 because of Microsoft Excel limits but this limit can be overridden by specifying the unlimited
option. Instructions here.
I like the measure d_view_export
measure that takes report variables in the eplusout.sql
database file and writes them to a .csv
file with the DView formatting. The DView format adds a header to the raw data (see example in ../tips_dview-data-file-template.pdf
) so the DView data viewer (download) can view it. Be warned that this pathway is also limited to < 200 variables but has more to do with the character limits of the variable names so beware of long output variable names.
Always run OpenStudio with Git Bash command openstudio --verbose run -w path/to/workflow.osw --debug -- measures_only[optional]
. Do not exclude the run.log
file and eplusout.rdd
file in the commits.
If a reporting variable requested in the in.osm
and in.idf
files is not a valid EnergyPlus request, the simulation will still run successfully and return true
. Therefore, it is important that after the simulation has finished, to check the eplusout.mtd
meta-parameter file and to check the eplusout.err
messages.
-
10/12/21 - having trouble making sense of the exact method in
workflow.osm
and measures to output anin.idf
file with Ideal Air Loads Systems. Ideal Air Loads System object became more complicated in circa 2011 release and the original BCL measure has since been replaced by the preferred method using OpenStudio Standards. -
10/15/21 - could not get gas-fired water heaters to run successfully for Ideal Loads case. Override of embedded
openstudio-standards-0.2.11
to...0.2.13
did not work. -
10/17/21 - Succeed in using method
require
in measurezero_energy_multifamily
to point to absolute directory path ofopenstudio-standards-0.2.13
.