Demo 2: HVAC

Demo 2 shows HVAC transformations in a user model

In Demo 2, we have a medium office user model with an area of 52000 sqft. It is equipped with water source heat pumps for heating and cooling and a DOAS for ventilation (as shown in the image below). Also, the Core Top Zone is being identified as a high equipment density (40 W/m2) room.

According to the ASHRAE 90.1 PRM method - “Baseline HVAC System Types” table, the baseline system type for the medium office that satisfies the requirements - Other residential + 5 floors or fewer and 25000ft2 to 150,000ft2, shall be a packaged VAV with reheat (system 5). Additionally, the Core Top Zone shall be separately conditioned by a packaged single zone air conditioner (system 3) according to the Exception C. Exception C provides additional guidance on zones having occupancy, internal gains, or schedules that differ significantly from the rest of the HVAC zones.

Download the folder “demo2zip” on your system and extract it in any local folder (*_to be changed based on the method used in the sections below*). The zip file contains the model (.osm) and the weather file (.epw) to follow along the demo.

HVAC demo 3

In the following sections, follow the steps to run the demo file based on the method you will be using.

A. Using OS App
  1. Launch OpenStudio Application (OS App): It should be installed in your system, if not, make sure you have followed all the steps in Use with OS App section.

  2. Load the .osm file: Go to the File menu and select Open. Navigate to the folder demo 2 and select hvac_demo_model.osm file. The project inputs like weather file, climate zone and location will load automatically (as shown in the image). If any parameter is missing, add it manually. demo2_loadosmfile image

  3. Add the measure: Go to the Measures tab in the left menu. Under Whole Building > Space Types, Create ASHRAE 90.1 2019 PRM Model measure should be available. If you don’t see it, revisit the steps in Use with OS App section. Add the measure.

  4. Setting Project Parameters: Click on the measure after adding it, a few project parameters will show up in the Edit menu on the right. Under Inputs, select the following:

    • Default Building Area Type for Window To Wall Ratio : Office 5,000 to 50,000 sq ft
    • Default Building Area Type for Service Water Heating : Office
    • Default Building Type for HVAC : other nonresidential
    • Climate Zone : ASHRAE 169-2013-4A
    • Exempt from Rotations : FALSE (You can select TRUE for your project if the building has rating authority approval that orientation is dictated by site considerations.)
    • Exempt from Unmet Load Hours Check : TRUE (TRUE has been selected here only for demo purposes, otherwise it’s always recommended to select FALSE until and unless the rating authority has approved allowing the models to exceed the specified.)
    • Use User Data : FALSE (FALSE selected since we are not using any user data for this demo.)
  5. Run Simulation: Go to the Run Simulation tab and run the simulation. Once it’s completed, go to the demo2 folder in the system. A new folder _hvac_demo_model would be created containing subfolders for the runs as shown in Run the measure section. The generated_files folder would contain the output .osm files, reports that should reflect the Output shown here.

B. Using OS SDK using CLI
  1. Setup Local Directory: Set up the files from demo2 folder in a local directory. One such example of the folder structure is shown in Run the measure section.

  2. Edit OSW File: Open the .osw file created initially (Refer to Run the measure section). Update the project inputs and parameters as follows. CLI Method osw file structure

  3. Execute: Open Command Prompt as an administrator and type the following command with paths to the openstudio\bin and the OSW directories.

    C:\openstudio-3.7.0\bin\openstudio.exe  run -w "C:\Users\sample_user\demo2\test.osw"
    
    • Make sure you change the openstudio version based on what is installed on your system, for example 3.6.0 instead of 3.6.1.
    • _sample_user to be replaced by your user name in C: drive.
    • demo2 to be replaced by the folder path where test.osw is located.
  4. Output: Once the simulation is run, go to the demo2 folder (or the folder where you had all the files set up in the local directory) to access the output files as shown in Run the measure section. The generated_files folder would contain the output .osm files, reports that should reflect the Output shown here.

C. Using OS SDK API
  1. Open the Ruby file created in the Call measure via API section.

  2. Check Project parameters: Check and update the project parameters in the script as follows:

     # Project parameters
     default_hvac_bldg_type = 'other nonresidential'
     default_wwr_bldg_type = 'Office 5,000 to 50,000 sq ft'
     default_swh_bldg_type = 'Office'
     climate_zone = 'ASHRAE 169-2013-4A'
    

    These default values shall be assigned with correct strings. All these strings shall match exactly to the designed list.

You can find the full list of strings for each project parameter here

  1. Set up Directories: There are four directories that must be setup.

    • baseline_dir is the path used by PRM method to save all output files.
    • demo_path is the parent path for demo folder
    • proposed_geo_model is the relative path of proposed model. The path shall be relative to the demo_path
    • user_data_path is the path to user data folder, which contains all the user data .csv.
     # directories - change these two variables
     demo_folder = 'demo2'
     proposed_model = 'hvac_demo_model.osm'
    
     # You may need to change the paths below based on how the project is setup on your local directory:
     # This path points to a directory that saves all baseline generation outputs
     baseline_dir = "#{File.dirname(Dir.pwd)}/output"
     # This path points to the parent folder that contains demo1, demo2 or demo3 folder.
     demo_path = "#{File.dirname(Dir.pwd)}/source"
     proposed_geo_model = "/#{demo_folder}/#{proposed_model}"
    
  2. Initialize: Next we will intialize instances for the baseline generation.

    ```Ruby
    # Script begins
    translator = OpenStudio::OSVersion::VersionTranslator.new
    model = translator.loadModel("#{demo_path}#{proposed_geo_model}").get
    # Generate baseline
    standard = Standard.build("90.1-PRM-2019")
    ```
    

    model is the proposed model loaded by OpenStudio version translator. standard is the 90.1 PRM 2019 instance of the OpenStudio Standard, which will be used for generating the PRM baseline.

  3. Baseline generation: The last step is to generate the baseline. Before calling the function, there are a few more steps to do.

    • Step 1: Run a simulation on a proposed model. This will generate necessary information for the baseline function
    • Step 2: Convert the user data .csv to .json and load it into the standard instance.
    • Step 3: Call the function to generate baseline model.
    # Run simulation on proposed model
    standard.model_run_simulation_and_log_errors(model, run_dir = "#{baseline_dir}/PROP")
    # Load User data
    json_path = standard.convert_userdata_csv_to_json(user_data_path, "#{baseline_dir}")
    standard.load_userdata_to_standards_database(json_path)
    create_results = standard.model_create_prm_any_baseline_building(model, '',
                                                                    climate_zone,
                                                                    hvac_building_type=default_hvac_bldg_type,
                                                                    wwr_building_types=default_wwr_bldg_type,
                                                                    swh_building_types=default_swh_bldg_type,
                                                                    model_deep_copy = true,
                                                                    create_proposed_model = true,
                                                                    custom = nil,
                                                                    sizing_run_dir = run_dir_baseline,
                                                                    run_all_orients = false,
                                                                    unmet_load_hours_check = true,
                                                                    debug = GENERATE_PRM_LOG)
    

You can skip running simulation on proposed model by turning the unmet_load_hours_check flag to true.

Demo 2 results

After the simulation run, the HVAC systems for the generated baseline model shall transform to system 5 and system 3 for the Core Top ZOne as shown in the graphic below. HVAC baseline demo 3

In the next demo, we will demo how to use the user data to handle multiple building types for the same model.