openstudio-standards 0.8.4 → 0.8.5.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/data/geometry/ASHRAECollege.osm +30 -30
- data/data/geometry/ASHRAECourthouse.osm +22 -22
- data/data/geometry/ASHRAESmallOfficeDetailed.osm +2 -2
- data/data/geometry/DEER_Asm.osm +1 -1
- data/data/geometry/DEER_ECC.osm +1 -1
- data/data/geometry/DEER_EPr.osm +1 -1
- data/data/geometry/DEER_ERC.osm +1 -1
- data/data/geometry/DEER_ESe.osm +1 -1
- data/data/geometry/DEER_EUn.osm +1 -1
- data/data/geometry/DEER_Hsp.osm +1 -1
- data/data/geometry/DEER_Htl.osm +1 -1
- data/data/geometry/DEER_MBT.osm +1 -1
- data/data/geometry/DEER_MFm.osm +1 -1
- data/data/geometry/DEER_Nrs.osm +1 -1
- data/data/geometry/DEER_OfL.osm +1 -1
- data/data/geometry/DEER_OfS.osm +1 -1
- data/data/geometry/DEER_RFF.osm +1 -1
- data/data/geometry/DEER_RSD.osm +1 -1
- data/data/geometry/DEER_Rt3.osm +1 -1
- data/data/geometry/DEER_RtS.osm +1 -1
- data/data/standards/export_OpenStudio_libraries.rb +2 -3
- data/data/standards/test_performance_expected_dd_results.csv +42 -42
- data/lib/openstudio-standards/btap/NECB_building_types.csv +35 -0
- data/lib/openstudio-standards/btap/NECB_space_types.csv +109 -0
- data/lib/openstudio-standards/btap/activity.rb +480 -0
- data/lib/openstudio-standards/btap/attributes.rb +166 -0
- data/lib/openstudio-standards/btap/bridging.rb +561 -1402
- data/lib/openstudio-standards/btap/btap.rb +4 -2
- data/lib/openstudio-standards/btap/btap_test_helper.rb +86 -0
- data/lib/openstudio-standards/btap/carbon/btap_carbon.rb +177 -0
- data/lib/openstudio-standards/btap/{costing/common_paths.rb → common_paths.rb} +14 -11
- data/lib/openstudio-standards/btap/common_resources/carbon_frame.csv +35 -0
- data/lib/openstudio-standards/btap/common_resources/carbon_glazing.csv +35 -0
- data/lib/openstudio-standards/btap/common_resources/carbon_opaque.csv +164 -0
- data/lib/openstudio-standards/btap/common_resources/constructions_glazing.csv +121 -0
- data/lib/openstudio-standards/btap/common_resources/costs.csv +1897 -0
- data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/lighting.csv +59 -59
- data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_hvac.csv +1019 -1032
- data/lib/openstudio-standards/btap/costing/btap_costing.rb +3 -7
- data/lib/openstudio-standards/btap/costing/costing_database_wrapper.rb +1 -5
- data/lib/openstudio-standards/btap/costing/daylighting_sensor_control_costing.rb +5 -4
- data/lib/openstudio-standards/btap/costing/dcv_costing.rb +1 -1
- data/lib/openstudio-standards/btap/costing/envelope_costing.rb +112 -181
- data/lib/openstudio-standards/btap/costing/heating_cooling_costing.rb +4 -4
- data/lib/openstudio-standards/btap/costing/led_lighting_costing.rb +2 -1
- data/lib/openstudio-standards/btap/costing/lighting_costing.rb +3 -3
- data/lib/openstudio-standards/btap/costing/test_list.txt +15 -17
- data/lib/openstudio-standards/btap/costing/test_run_all_test_locally.rb +10 -9
- data/lib/openstudio-standards/btap/geometry.rb +86 -6
- data/lib/openstudio-standards/btap/structure.rb +657 -0
- data/lib/openstudio-standards/create_typical/create_typical.rb +17 -33
- data/lib/openstudio-standards/create_typical/space_type_ratios.rb +36 -36
- data/lib/openstudio-standards/equipment/create_transformer.rb +104 -0
- data/lib/openstudio-standards/equipment/create_typical_equipment.rb +117 -0
- data/lib/openstudio-standards/equipment/data/electric_equipment_space_types.json +1514 -0
- data/lib/openstudio-standards/equipment/data/gas_equipment_space_types.json +227 -0
- data/lib/openstudio-standards/exterior_lighting/create.rb +22 -22
- data/lib/openstudio-standards/exterior_lighting/information.rb +3 -2
- data/lib/openstudio-standards/hvac/components/air_conditioner_vrf.rb +482 -0
- data/lib/openstudio-standards/hvac/components/air_terminal.rb +31 -0
- data/lib/openstudio-standards/hvac/components/boiler_hot_water.rb +163 -0
- data/lib/openstudio-standards/hvac/components/central_air_source_heat_pump.rb +220 -0
- data/lib/openstudio-standards/hvac/components/chiller.rb +25 -0
- data/lib/openstudio-standards/hvac/components/coil.rb +276 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_dx_multi_speed.rb +40 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_dx_single_speed.rb +300 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_dx_two_speed.rb +187 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_water.rb +80 -0
- data/lib/openstudio-standards/hvac/components/coil_cooling_water_to_air_heat_pump_equation_fit.rb +182 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_dx_single_speed.rb +220 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_electric.rb +56 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_gas.rb +90 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_gas_multi_stage.rb +33 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_water.rb +98 -0
- data/lib/openstudio-standards/hvac/components/coil_heating_water_to_air_heat_pump_equation_fit.rb +147 -0
- data/lib/openstudio-standards/hvac/components/component.rb +39 -0
- data/lib/openstudio-standards/{standards/ashrae_90_1/data/ashrae_90_1.fans.json → hvac/components/data/fans.json} +6 -6
- data/lib/openstudio-standards/hvac/components/fan.rb +363 -0
- data/lib/openstudio-standards/hvac/components/heat_exchanger_air_to_air.rb +203 -0
- data/lib/openstudio-standards/hvac/components/pump.rb +181 -0
- data/lib/openstudio-standards/hvac/controls/radiant_system_controls.rb +594 -0
- data/lib/openstudio-standards/hvac/conversions.rb +222 -0
- data/lib/openstudio-standards/hvac/curves.rb +192 -0
- data/lib/openstudio-standards/hvac/helpers.rb +357 -0
- data/lib/openstudio-standards/hvac/setpoint_managers/information.rb +4 -4
- data/lib/openstudio-standards/interior_lighting/create_lights.rb +52 -0
- data/lib/openstudio-standards/interior_lighting/create_typical_interior_lighting.rb +254 -0
- data/lib/openstudio-standards/interior_lighting/data/convert_lighting_data.rb +249 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.csv +96 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_space_types.json +1429 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_technology.csv +46 -0
- data/lib/openstudio-standards/interior_lighting/data/lighting_technology.json +859 -0
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.Model.rb +4 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Model.rb +4 -4
- data/lib/openstudio-standards/prototypes/ashrae_90_1/nrel_nze_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.HighRiseApartment.rb +6 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Hospital.rb +15 -15
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeHotel.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.LargeOffice.rb +5 -5
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.MediumOffice.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.Outpatient.rb +7 -7
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.PrimarySchool.rb +4 -4
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SecondarySchool.rb +6 -6
- data/lib/openstudio-standards/prototypes/common/buildings/Prototype.SmallOfficeDetailed.rb +5 -1
- data/lib/openstudio-standards/prototypes/common/data/prototype_space_type_map.json +2594 -0
- data/lib/openstudio-standards/prototypes/common/data/thermostat_schedule_lookup.json +2108 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirTerminalSingleDuctVAVReheat.rb +33 -0
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Fan.rb +0 -140
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanConstantVolume.rb +1 -73
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanOnOff.rb +1 -69
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanVariableVolume.rb +0 -116
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.FanZoneExhaust.rb +0 -61
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.hvac.rb +2 -2
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.rb +128 -13
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.hvac_systems.rb +606 -607
- data/lib/openstudio-standards/prototypes/common/prototype_space_type_map.rb +41 -0
- data/lib/openstudio-standards/prototypes/common/space_type_equipment_map.rb +184 -0
- data/lib/openstudio-standards/prototypes/common/space_type_thermostat_schedule_map.rb +116 -0
- data/lib/openstudio-standards/qaqc/hvac.rb +12 -12
- data/lib/openstudio-standards/refrigeration/create_compressor.rb +2 -5
- data/lib/openstudio-standards/refrigeration/data/refrigeration_compressors.csv +4 -4
- data/lib/openstudio-standards/service_water_heating/create_water_heater.rb +1 -2
- data/lib/openstudio-standards/service_water_heating/create_water_use.rb +5 -5
- data/lib/openstudio-standards/space_type/data/level_1_space_types.json +612 -0
- data/lib/openstudio-standards/space_type/standards_space_type.rb +53 -0
- data/lib/openstudio-standards/standards/Standards.AirConditionerVariableRefrigerantFlow.rb +8 -26
- data/lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb +13 -13
- data/lib/openstudio-standards/standards/Standards.AirTerminalSingleDuctVAVReheat.rb +0 -24
- data/lib/openstudio-standards/standards/Standards.BoilerHotWater.rb +6 -43
- data/lib/openstudio-standards/standards/Standards.ChillerElectricEIR.rb +7 -24
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXMultiSpeed.rb +19 -44
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXSingleSpeed.rb +25 -50
- data/lib/openstudio-standards/standards/Standards.CoilCoolingDXTwoSpeed.rb +25 -33
- data/lib/openstudio-standards/standards/Standards.CoilCoolingWaterToAirHeatPumpEquationFit.rb +9 -22
- data/lib/openstudio-standards/standards/Standards.CoilDX.rb +15 -157
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXMultiSpeed.rb +2 -2
- data/lib/openstudio-standards/standards/Standards.CoilHeatingDXSingleSpeed.rb +18 -105
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGas.rb +3 -23
- data/lib/openstudio-standards/standards/Standards.CoilHeatingGasMultiStage.rb +0 -24
- data/lib/openstudio-standards/standards/Standards.CoilHeatingWaterToAirHeatPumpEquationFit.rb +2 -86
- data/lib/openstudio-standards/standards/Standards.FanVariableVolume.rb +0 -107
- data/lib/openstudio-standards/standards/Standards.Model.rb +6 -11
- data/lib/openstudio-standards/standards/Standards.People.rb +113 -0
- data/lib/openstudio-standards/standards/Standards.PlantLoop.rb +11 -11
- data/lib/openstudio-standards/standards/Standards.Pump.rb +2 -147
- data/lib/openstudio-standards/standards/Standards.PumpVariableSpeed.rb +57 -41
- data/lib/openstudio-standards/standards/Standards.SpaceType.rb +30 -153
- data/lib/openstudio-standards/standards/Standards.Ventilation.rb +74 -0
- data/lib/openstudio-standards/standards/Standards.ZoneHVACComponent.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PlantLoop.rb +4 -4
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.heat_pumps_heating.json +3 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2004/data/ashrae_90_1_2004.spc_typ.json +37 -112
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/comstock_ashrae_90_1_2007/data/comstock_ashrae_90_1_2007.spc_typ.json +37 -102
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.heat_pumps_heating.json +3 -3
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2007/data/ashrae_90_1_2007.spc_typ.json +37 -112
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/comstock_ashrae_90_1_2010/data/comstock_ashrae_90_1_2010.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2010/data/ashrae_90_1_2010.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.BoilerHotWater.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/comstock_ashrae_90_1_2013/data/comstock_ashrae_90_1_2013.spc_typ.json +37 -102
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2013/data/ashrae_90_1_2013.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.BoilerHotWater.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/comstock_ashrae_90_1_2016/data/comstock_ashrae_90_1_2016.spc_typ.json +45 -109
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2016/data/ashrae_90_1_2016.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.BoilerHotWater.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.CoilHeatingGas.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/comstock_ashrae_90_1_2019/data/comstock_ashrae_90_1_2019.spc_typ.json +45 -109
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.heat_pumps_heating.json +6 -6
- data/lib/openstudio-standards/standards/ashrae_90_1/ashrae_90_1_2019/data/ashrae_90_1_2019.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/data/ashrae_90_1.curves.json +0 -200
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/comstock_doe_ref_1980_2004/data/comstock_doe_ref_1980_2004.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_1980_2004/data/doe_ref_1980_2004.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/comstock_doe_ref_pre_1980/data/comstock_doe_ref_pre_1980.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/doe_ref_pre_1980/data/doe_ref_pre_1980.spc_typ.json +37 -37
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/nrel_zne_ready_2017/nrel_zne_ready_2017.PlantLoop.rb +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.AirTerminalSingleDuctVAVReheat.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1/ze_aedg_multifamily/ze_aedg_multifamily.PlantLoop.rb +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.AirLoopHVAC.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.ChillerElectricEIR.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXSingleSpeed.rb +2 -68
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilCoolingDXTwoSpeed.rb +2 -35
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilDX.rb +42 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingDXSingleSpeed.rb +5 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.CoilHeatingGas.rb +2 -2
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.PlantLoop.rb +3 -3
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.SpaceType.rb +1 -1
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019.Model.rb +1 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm_2019/ashrae_90_1_prm_2019_WaterHeaterMixed.rb +2 -4
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.curves.json +0 -200
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/data/ashrae_90_1_prm.fans.json +5 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/ashrae_90_1_prm.UserData.rb +1 -0
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/userdata_csv/userdata_enums.rb +0 -1
- data/lib/openstudio-standards/standards/cbes/data/cbes.curves.json +0 -200
- data/lib/openstudio-standards/standards/deer/data/deer.curves.json +0 -200
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/btap_pre1980.rb +19 -10
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/building_envelope.rb +12 -11
- data/lib/openstudio-standards/standards/necb/BTAPPRE1980/hvac_systems.rb +4 -4
- data/lib/openstudio-standards/standards/necb/ECMS/ecms.rb +1 -1
- data/lib/openstudio-standards/standards/necb/ECMS/hvac_systems.rb +69 -92
- data/lib/openstudio-standards/standards/necb/NECB2011/autozone.rb +2 -1
- data/lib/openstudio-standards/standards/necb/NECB2011/beps_compliance_path.rb +16 -12
- data/lib/openstudio-standards/standards/necb/NECB2011/building_envelope.rb +799 -46
- data/lib/openstudio-standards/standards/necb/NECB2011/data/chillers.json +33 -51
- data/lib/openstudio-standards/standards/necb/NECB2011/data/constants.json +32 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/fuel_type_sets.json +18 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/data/heat_pumps_heating.json +21 -15
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_namer.rb +5 -5
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_system_1_single_speed.rb +2 -0
- data/lib/openstudio-standards/standards/necb/NECB2011/hvac_systems.rb +30 -141
- data/lib/openstudio-standards/standards/necb/NECB2011/necb_2011.rb +233 -112
- data/lib/openstudio-standards/standards/necb/NECB2015/data/heat_pumps_heating.json +10 -2
- data/lib/openstudio-standards/standards/necb/NECB2015/hvac_systems.rb +2 -2
- data/lib/openstudio-standards/standards/necb/NECB2020/data/heat_pumps_heating.json +16 -6
- data/lib/openstudio-standards/standards/necb/NECB2020/data/unitary_acs.json +60 -61
- data/lib/openstudio-standards/standards/necb/NECB2020/service_water_heating.rb +30 -30
- data/lib/openstudio-standards/standards/necb/common/btap_analysis.rb +79 -0
- data/lib/openstudio-standards/standards/necb/common/btap_data.rb +16 -4
- data/lib/openstudio-standards/standards/necb/common/btap_datapoint.rb +65 -42
- data/lib/openstudio-standards/thermal_zone/{thermal_zone.rb → information.rb} +12 -45
- data/lib/openstudio-standards/thermal_zone/thermostat_schedules.rb +152 -0
- data/lib/openstudio-standards/version.rb +1 -1
- data/lib/openstudio-standards/weather/stat_file.rb +2 -2
- data/lib/openstudio-standards.rb +55 -38
- metadata +106 -66
- data/lib/openstudio-standards/btap/costing/common_resources/constructions_glazing.csv +0 -61
- data/lib/openstudio-standards/btap/costing/common_resources/costs.csv +0 -1904
- data/lib/openstudio-standards/hvac/components/create.rb +0 -169
- data/lib/openstudio-standards/hvac/components/modify.rb +0 -42
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.AirConditionerVariableRefrigerantFlow.rb +0 -438
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.BoilerHotWater.rb +0 -123
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb +0 -216
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb +0 -273
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXTwoSpeed.rb +0 -159
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWater.rb +0 -77
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingWaterToAirHeatPumpEquationFit.rb +0 -154
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb +0 -214
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingElectric.rb +0 -53
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingGas.rb +0 -72
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWater.rb +0 -95
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingWaterToAirHeatPumpEquationFit.rb +0 -125
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.ControllerWaterCoil.rb +0 -17
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Model.transformers.rb +0 -90
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.Pump.rb +0 -4
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.PumpVariableSpeed.rb +0 -70
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.radiant_system_controls.rb +0 -590
- data/lib/openstudio-standards/prototypes/common/objects/Prototype.utilities.rb +0 -901
- data/lib/openstudio-standards/standards/Standards.FanConstantVolume.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.FanOnOff.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.FanZoneExhaust.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsConstantSpeed.rb +0 -5
- data/lib/openstudio-standards/standards/Standards.HeaderedPumpsVariableSpeed.rb +0 -55
- data/lib/openstudio-standards/standards/Standards.PumpConstantSpeed.rb +0 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanConstantVolume.rb +0 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanOnOff.rb +0 -5
- data/lib/openstudio-standards/standards/ashrae_90_1_prm/ashrae_90_1_prm.FanZoneExhaust.rb +0 -5
- data/lib/openstudio-standards/standards/cbes/data/cbes.fans.json +0 -328
- data/lib/openstudio-standards/standards/deer/data/deer.fans.json +0 -328
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/ConstructionProperties.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/Constructions.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/construction_sets.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/constructions_opaque.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/costs_local_factors.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/hvac_vent_ahu.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/lighting_sets.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/locations.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_glazing.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_lighting.csv +0 -0
- /data/lib/openstudio-standards/btap/{costing/common_resources → common_resources}/materials_opaque.csv +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2004/ashrae_90_1_2004.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2007/ashrae_90_1_2007.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2010/ashrae_90_1_2010.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2013/ashrae_90_1_2013.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2016/ashrae_90_1_2016.PumpVariableSpeed.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.Pump.rb +0 -0
- /data/lib/openstudio-standards/{prototypes → standards}/ashrae_90_1/ashrae_90_1_2019/ashrae_90_1_2019.PumpVariableSpeed.rb +0 -0
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
module OpenstudioStandards
|
|
2
|
-
# The HVAC module provides methods create, modify, and get information about HVAC systems in the model
|
|
3
|
-
module HVAC
|
|
4
|
-
# @!group Component:Create
|
|
5
|
-
# Methods to create HVAC component objects
|
|
6
|
-
|
|
7
|
-
# creates HeatExchangerAirToAirSensibleAndLatent object with user-input effectiveness values
|
|
8
|
-
#
|
|
9
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model
|
|
10
|
-
# @param name [String]
|
|
11
|
-
# @param type [String] Heat Exchanger Type. One of 'Plate', 'Rotary'
|
|
12
|
-
# @param economizer_lockout [Boolean] whether hx is locked out during economizing
|
|
13
|
-
# @param supply_air_outlet_temperature_control [Boolean]
|
|
14
|
-
# @param frost_control_type [String] HX frost control type. One of 'None', 'ExhaustAirRecirculation', 'ExhaustOnly', 'MinimumExhaustTemperature'
|
|
15
|
-
# @param nominal_electric_power [Float] Nominal electric power
|
|
16
|
-
# @param sensible_heating_100_eff [Float]
|
|
17
|
-
# @param sensible_heating_75_eff [Float]
|
|
18
|
-
# @param latent_heating_100_eff [Float]
|
|
19
|
-
# @param latent_heating_75_eff [Float]
|
|
20
|
-
# @param sensible_cooling_100_eff [Float]
|
|
21
|
-
# @param sensible_cooling_75_eff [Float]
|
|
22
|
-
# @param latent_cooling_100_eff [Float]
|
|
23
|
-
# @param latent_cooling_75_eff [Float]
|
|
24
|
-
# @return [<OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent>]
|
|
25
|
-
def self.create_hx_air_to_air_sensible_and_latent(model,
|
|
26
|
-
name: nil,
|
|
27
|
-
type: nil,
|
|
28
|
-
economizer_lockout: nil,
|
|
29
|
-
supply_air_outlet_temperature_control: nil,
|
|
30
|
-
frost_control_type: nil,
|
|
31
|
-
nominal_electric_power: nil,
|
|
32
|
-
sensible_heating_100_eff: nil,
|
|
33
|
-
sensible_heating_75_eff: nil,
|
|
34
|
-
latent_heating_100_eff: nil,
|
|
35
|
-
latent_heating_75_eff: nil,
|
|
36
|
-
sensible_cooling_100_eff: nil,
|
|
37
|
-
sensible_cooling_75_eff: nil,
|
|
38
|
-
latent_cooling_100_eff: nil,
|
|
39
|
-
latent_cooling_75_eff: nil)
|
|
40
|
-
|
|
41
|
-
hx = OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.new(model)
|
|
42
|
-
hx.setName(name) unless name.nil?
|
|
43
|
-
|
|
44
|
-
unless type.nil?
|
|
45
|
-
if OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.heatExchangerTypeValues.include?(type)
|
|
46
|
-
hx.setHeatExchangerType(type)
|
|
47
|
-
else
|
|
48
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.model.Hvac', "Entered heat exchanger type #{type} not a valid type value. Enter one of #{OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.heatExchangerTypeValues}")
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
unless frost_control_type.nil?
|
|
53
|
-
if OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.frostControlTypeValues.include?(frost_control_type)
|
|
54
|
-
hx.setFrostControlType(frost_control_type)
|
|
55
|
-
else
|
|
56
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.model.Hvac', "Entered heat exchanger frost control type #{frost_control_type} not a valid type value. Enter one of #{OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.frostControlTypeValues}")
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
hx.setEconomizerLockout(economizer_lockout) unless economizer_lockout.nil?
|
|
61
|
-
hx.setSupplyAirOutletTemperatureControl(supply_air_outlet_temperature_control) unless supply_air_outlet_temperature_control.nil?
|
|
62
|
-
hx.setNominalElectricPower(nominal_electric_power) unless nominal_electric_power.nil?
|
|
63
|
-
|
|
64
|
-
if model.version < OpenStudio::VersionString.new('3.8.0')
|
|
65
|
-
hx.setSensibleEffectivenessat100HeatingAirFlow(sensible_heating_100_eff) unless sensible_heating_100_eff.nil?
|
|
66
|
-
hx.setSensibleEffectivenessat75HeatingAirFlow(sensible_heating_75_eff) unless sensible_heating_75_eff.nil?
|
|
67
|
-
hx.setLatentEffectivenessat100HeatingAirFlow(latent_heating_100_eff) unless latent_heating_100_eff.nil?
|
|
68
|
-
hx.setLatentEffectivenessat75HeatingAirFlow(latent_heating_75_eff) unless latent_heating_75_eff.nil?
|
|
69
|
-
hx.setSensibleEffectivenessat100CoolingAirFlow(sensible_cooling_100_eff) unless sensible_cooling_100_eff.nil?
|
|
70
|
-
hx.setSensibleEffectivenessat75CoolingAirFlow(sensible_cooling_75_eff) unless sensible_cooling_75_eff.nil?
|
|
71
|
-
hx.setLatentEffectivenessat100CoolingAirFlow(latent_cooling_100_eff) unless latent_cooling_100_eff.nil?
|
|
72
|
-
hx.setLatentEffectivenessat75CoolingAirFlow(latent_cooling_75_eff) unless latent_cooling_75_eff.nil?
|
|
73
|
-
else
|
|
74
|
-
effectiveness_inputs = Hash.new { |hash, key| hash[key] = {} }
|
|
75
|
-
effectiveness_inputs['Sensible Heating'][0.75] = sensible_heating_75_eff.to_f unless sensible_heating_75_eff.nil?
|
|
76
|
-
effectiveness_inputs['Sensible Heating'][1.0] = sensible_heating_100_eff.to_f unless sensible_heating_100_eff.nil?
|
|
77
|
-
effectiveness_inputs['Latent Heating'][0.75] = latent_heating_75_eff.to_f unless latent_heating_75_eff.nil?
|
|
78
|
-
effectiveness_inputs['Latent Heating'][1.0] = latent_heating_100_eff.to_f unless latent_heating_100_eff.nil?
|
|
79
|
-
effectiveness_inputs['Sensible Cooling'][0.75] = sensible_cooling_75_eff.to_f unless sensible_cooling_75_eff.nil?
|
|
80
|
-
effectiveness_inputs['Sensible Cooling'][1.0] = sensible_cooling_100_eff.to_f unless sensible_cooling_100_eff.nil?
|
|
81
|
-
effectiveness_inputs['Latent Cooling'][0.75] = latent_cooling_75_eff.to_f unless latent_cooling_75_eff.nil?
|
|
82
|
-
effectiveness_inputs['Latent Cooling'][1.0] = latent_cooling_100_eff.to_f unless latent_cooling_100_eff.nil?
|
|
83
|
-
|
|
84
|
-
if effectiveness_inputs.values.all?(&:empty?)
|
|
85
|
-
OpenStudio.logFree(OpenStudio::Info, 'openstudio.model.Hvac', 'Creating HX with historical effectiveness curves')
|
|
86
|
-
defaults = true
|
|
87
|
-
else
|
|
88
|
-
defaults = false
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
OpenstudioStandards::HVAC.heat_exchanger_air_to_air_set_effectiveness_values(hx, defaults: defaults, values: effectiveness_inputs)
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
return hx
|
|
95
|
-
end
|
|
96
|
-
|
|
97
|
-
# creates LookupTable objects to define effectiveness of HeatExchangerAirToAirSensibleAndLatent objects
|
|
98
|
-
#
|
|
99
|
-
# @param hx [OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent] OpenStudio HX object to update
|
|
100
|
-
# @param type [String] type of curve to create. one of 'Sensible Heating', 'Latent Heating, 'Sensible Cooling', 'Latent Cooling'
|
|
101
|
-
# @param values_hash [Hash{Float=>Float}] user_input { flow decimal fraction => effectiveness } decimal fraction pairs, e.g. { 0.75 => 0.81, 1.0 => 0.76 }
|
|
102
|
-
# @return [OpenStudio::Model::TableLookup] lookup table object
|
|
103
|
-
def self.create_hx_effectiveness_table(hx, type, values_hash)
|
|
104
|
-
# validate inputs
|
|
105
|
-
types = ['Sensible Heating', 'Latent Heating', 'Sensible Cooling', 'Latent Cooling']
|
|
106
|
-
unless types.include? type
|
|
107
|
-
OpenStudio.logFree(OpenStudio::Error, 'openstudio.model.Hvac', "#{__method__} requires effectiveness type as one of #{types}")
|
|
108
|
-
return false
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
def self.validate_effectiveness_hash(values_hash)
|
|
112
|
-
values_hash.all? do |key, value|
|
|
113
|
-
key.is_a?(Float) && value.is_a?(Float) && key.between?(0.0, 1.0) && value.between?(0.0, 1.0)
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
if !validate_effectiveness_hash(values_hash)
|
|
118
|
-
OpenStudio.logFree(OpenStudio::Error, 'openstudio.model.Hvac', "#{__method__} require values_hash to have keys and values between 0.0 and 1.0: #{values_hash}")
|
|
119
|
-
return false
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
# look for existing curve
|
|
123
|
-
type_a = type.split
|
|
124
|
-
method_name = "#{type_a[0].downcase}Effectivenessof#{type_a[1]}AirFlowCurve"
|
|
125
|
-
|
|
126
|
-
# use existing independent variable object if found and matches inputs
|
|
127
|
-
iv = nil
|
|
128
|
-
table = OpenStudio::Model::OptionalTableLookup.new
|
|
129
|
-
if hx.send(method_name).is_initialized
|
|
130
|
-
table = hx.send(method_name).get.to_TableLookup
|
|
131
|
-
curve = table.get
|
|
132
|
-
iv_existing = curve.independentVariables.first
|
|
133
|
-
if values_hash.keys.sort == iv_existing.values.sort
|
|
134
|
-
iv = iv_existing
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
# otherwise create new independent variable
|
|
139
|
-
if iv.nil?
|
|
140
|
-
iv = OpenStudio::Model::TableIndependentVariable.new(hx.model)
|
|
141
|
-
iv.setName("#{hx.name.get}_#{type.gsub(' ', '')}_IndependentVariable")
|
|
142
|
-
iv.setInterpolationMethod('Linear')
|
|
143
|
-
iv.setExtrapolationMethod('Linear')
|
|
144
|
-
iv.setMinimumValue(0.0)
|
|
145
|
-
iv.setMaximumValue(10.0)
|
|
146
|
-
iv.setUnitType('Dimensionless')
|
|
147
|
-
values_hash.keys.sort.each { |k| iv.addValue(k) }
|
|
148
|
-
end
|
|
149
|
-
|
|
150
|
-
# create new lookup table
|
|
151
|
-
t = OpenStudio::Model::TableLookup.new(hx.model)
|
|
152
|
-
t.setName("#{hx.name.get}_#{type.gsub(/ible|ent|ing|\s/, '')}Eff")
|
|
153
|
-
t.addIndependentVariable(iv)
|
|
154
|
-
t.setNormalizationMethod('DivisorOnly')
|
|
155
|
-
t.setMinimumOutput(0.0)
|
|
156
|
-
t.setMaximumOutput(10.0)
|
|
157
|
-
t.setOutputUnitType('Dimensionless')
|
|
158
|
-
values = values_hash.sort.map { |a| a[1] }
|
|
159
|
-
# protect against setting normalization divisor to zero for zero effectiveness
|
|
160
|
-
values[-1].zero? ? t.setNormalizationDivisor(1) : t.setNormalizationDivisor(values[-1])
|
|
161
|
-
values.each { |v| t.addOutputValue(v) }
|
|
162
|
-
|
|
163
|
-
# remove curve if found
|
|
164
|
-
table.get.remove if table.is_initialized
|
|
165
|
-
|
|
166
|
-
return t
|
|
167
|
-
end
|
|
168
|
-
end
|
|
169
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
module OpenstudioStandards
|
|
2
|
-
# The HVAC module provides methods create, modify, and get information about HVAC systems in the model
|
|
3
|
-
module HVAC
|
|
4
|
-
# @!group Component:Modify
|
|
5
|
-
# Methods to modify HVAC Component objects
|
|
6
|
-
|
|
7
|
-
# Applies historical default or user-input effectiveness values to a HeatExchangerAirToAirSensibleAndLatent object
|
|
8
|
-
#
|
|
9
|
-
# @param hx [<OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent>] OpenStudio HX object to update
|
|
10
|
-
# @param defaults [Boolean] flag to apply historical default curves
|
|
11
|
-
# @param values [Hash{String=>Hash{Float=>Float}}] user-input effectiveness values, where keys are one of
|
|
12
|
-
# 'Sensible Heating', 'Latent Heating, 'Sensible Cooling', 'Latent Cooling'
|
|
13
|
-
# and value is a hash of { flow decimal fraction => effectivess decimal fraction }, e.g. { 0.75 => 0.81, 1.0 => 0.76 }
|
|
14
|
-
# @return [<OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent>] modified OpenStudio HX object
|
|
15
|
-
def self.heat_exchanger_air_to_air_set_effectiveness_values(hx, defaults: false, values: nil)
|
|
16
|
-
if defaults
|
|
17
|
-
hx.assignHistoricalEffectivenessCurves
|
|
18
|
-
if values.nil?
|
|
19
|
-
return hx
|
|
20
|
-
end
|
|
21
|
-
elsif values.nil?
|
|
22
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.model.Hvac', "#{__method__} called with defaults=false and no values provided. #{hx.name.get} will not be modified")
|
|
23
|
-
return hx
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
values.each do |type, values_hash|
|
|
27
|
-
# ensure values_hash has one value at 100% flow
|
|
28
|
-
unless values_hash.key?(1.0)
|
|
29
|
-
OpenStudio.logFree(OpenStudio::Error, 'openstudio.model.Hvac', "Effectiveness Values for #{type} do not include 100% flow effectivenss. Cannot set effectiveness curves")
|
|
30
|
-
return false
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
lookup_table = OpenstudioStandards::HVAC.create_hx_effectiveness_table(hx, type, values_hash)
|
|
34
|
-
type_a = type.split
|
|
35
|
-
hx.send("set#{type_a[0]}Effectivenessat100#{type_a[1]}AirFlow", values_hash[1.0])
|
|
36
|
-
hx.send("set#{type_a[0]}Effectivenessof#{type_a[1]}AirFlowCurve", lookup_table)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
return hx
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,438 +0,0 @@
|
|
|
1
|
-
class Standard
|
|
2
|
-
# @!group AirConditionerVariableRefrigerantFlow
|
|
3
|
-
|
|
4
|
-
# Prototype AirConditionerVariableRefrigerantFlow object
|
|
5
|
-
# Enters in default curves for coil by type of coil
|
|
6
|
-
#
|
|
7
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
8
|
-
# @param name [String] the name of the system, or nil in which case it will be defaulted
|
|
9
|
-
# @param schedule [String] name of the availability schedule, or [<OpenStudio::Model::Schedule>] Schedule object, or nil in which case default to always on
|
|
10
|
-
# @param type [String] the type of unit to reference for the correct curve set
|
|
11
|
-
# @param cooling_cop [Double] rated cooling coefficient of performance
|
|
12
|
-
# @param heating_cop [Double] rated heating coefficient of performance
|
|
13
|
-
# @param heat_recovery [Boolean] does the unit have heat recovery
|
|
14
|
-
# @param defrost_strategy [String] type of defrost strategy. options are ReverseCycle or Resistive
|
|
15
|
-
# @param condenser_type [String] type of condenser
|
|
16
|
-
# options are AirCooled (default), WaterCooled, and EvaporativelyCooled.
|
|
17
|
-
# if WaterCooled, the user most include a condenser_loop
|
|
18
|
-
# @param master_zone [<OpenStudio::Model::ThermalZone>] master control zone to switch between heating and cooling
|
|
19
|
-
# @param priority_control_type [String] type of master thermostat priority control type
|
|
20
|
-
# options are LoadPriority, ZonePriority, ThermostatOffsetPriority, MasterThermostatPriority
|
|
21
|
-
# @return [OpenStudio::Model::AirConditionerVariableRefrigerantFlow] the vrf unit
|
|
22
|
-
def create_air_conditioner_variable_refrigerant_flow(model,
|
|
23
|
-
name: 'VRF System',
|
|
24
|
-
schedule: nil,
|
|
25
|
-
type: nil,
|
|
26
|
-
cooling_cop: 4.287,
|
|
27
|
-
heating_cop: 4.147,
|
|
28
|
-
heat_recovery: true,
|
|
29
|
-
defrost_strategy: 'Resistive',
|
|
30
|
-
condenser_type: 'AirCooled',
|
|
31
|
-
condenser_loop: nil,
|
|
32
|
-
master_zone: nil,
|
|
33
|
-
priority_control_type: 'LoadPriority')
|
|
34
|
-
|
|
35
|
-
vrf_outdoor_unit = OpenStudio::Model::AirConditionerVariableRefrigerantFlow.new(model)
|
|
36
|
-
|
|
37
|
-
# set name
|
|
38
|
-
if name.nil?
|
|
39
|
-
vrf_outdoor_unit.setName('VRF System')
|
|
40
|
-
else
|
|
41
|
-
vrf_outdoor_unit.setName(name)
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
# set availability schedule
|
|
45
|
-
if schedule.nil?
|
|
46
|
-
# default always on
|
|
47
|
-
availability_schedule = model.alwaysOnDiscreteSchedule
|
|
48
|
-
elsif schedule.instance_of?(String)
|
|
49
|
-
availability_schedule = model_add_schedule(model, schedule)
|
|
50
|
-
|
|
51
|
-
if availability_schedule.nil? && schedule == 'alwaysOffDiscreteSchedule'
|
|
52
|
-
availability_schedule = model.alwaysOffDiscreteSchedule
|
|
53
|
-
elsif availability_schedule.nil?
|
|
54
|
-
availability_schedule = model.alwaysOnDiscreteSchedule
|
|
55
|
-
end
|
|
56
|
-
elsif !schedule.to_Schedule.empty?
|
|
57
|
-
availability_schedule = schedule
|
|
58
|
-
else
|
|
59
|
-
availability_schedule = model.alwaysOnDiscreteSchedule
|
|
60
|
-
end
|
|
61
|
-
vrf_outdoor_unit.setAvailabilitySchedule(availability_schedule)
|
|
62
|
-
|
|
63
|
-
# set cops
|
|
64
|
-
if model.version < OpenStudio::VersionString.new('2.9.0')
|
|
65
|
-
vrf_outdoor_unit.setRatedCoolingCOP(cooling_cop)
|
|
66
|
-
else
|
|
67
|
-
vrf_outdoor_unit.setGrossRatedCoolingCOP(cooling_cop)
|
|
68
|
-
end
|
|
69
|
-
vrf_outdoor_unit.setRatedHeatingCOP(heating_cop)
|
|
70
|
-
|
|
71
|
-
# heat recovery
|
|
72
|
-
if heat_recovery
|
|
73
|
-
vrf_outdoor_unit.setHeatPumpWasteHeatRecovery(true)
|
|
74
|
-
else
|
|
75
|
-
vrf_outdoor_unit.setHeatPumpWasteHeatRecovery(false)
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# defrost strategy
|
|
79
|
-
vrf_outdoor_unit.setDefrostStrategy(defrost_strategy)
|
|
80
|
-
|
|
81
|
-
# defaults
|
|
82
|
-
vrf_outdoor_unit.setMinimumOutdoorTemperatureinCoolingMode(-15.0)
|
|
83
|
-
vrf_outdoor_unit.setMaximumOutdoorTemperatureinCoolingMode(50.0)
|
|
84
|
-
vrf_outdoor_unit.setMinimumOutdoorTemperatureinHeatingMode(-25.0)
|
|
85
|
-
vrf_outdoor_unit.setMaximumOutdoorTemperatureinHeatingMode(16.1)
|
|
86
|
-
vrf_outdoor_unit.setMinimumOutdoorTemperatureinHeatRecoveryMode(-10.0)
|
|
87
|
-
vrf_outdoor_unit.setMaximumOutdoorTemperatureinHeatRecoveryMode(27.2)
|
|
88
|
-
vrf_outdoor_unit.setEquivalentPipingLengthusedforPipingCorrectionFactorinCoolingMode(30.48)
|
|
89
|
-
vrf_outdoor_unit.setEquivalentPipingLengthusedforPipingCorrectionFactorinHeatingMode(30.48)
|
|
90
|
-
vrf_outdoor_unit.setVerticalHeightusedforPipingCorrectionFactor(10.668)
|
|
91
|
-
|
|
92
|
-
# condenser type
|
|
93
|
-
if condenser_type == 'WaterCooled'
|
|
94
|
-
vrf_outdoor_unit.setString(56, condenser_type)
|
|
95
|
-
# require condenser_loop
|
|
96
|
-
unless condenser_loop
|
|
97
|
-
OpenStudio.logFree(OpenStudio::Error, 'openstudio.Model.Model', 'Must specify condenser_loop for vrf_outdoor_unit if WaterCooled')
|
|
98
|
-
end
|
|
99
|
-
condenser_loop.addDemandBranchForComponent(vrf_outdoor_unit)
|
|
100
|
-
elsif condenser_type == 'EvaporativelyCooled'
|
|
101
|
-
vrf_outdoor_unit.setString(56, condenser_type)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
# set master zone
|
|
105
|
-
unless master_zone.to_ThermalZone.empty?
|
|
106
|
-
vrf_outdoor_unit.setZoneforMasterThermostatLocation(master_zone)
|
|
107
|
-
vrf_outdoor_unit.setMasterThermostatPriorityControlType(priority_control_type)
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
vrf_cool_cap_f_of_low_temp = nil
|
|
111
|
-
vrf_cool_cap_ratio_boundary = nil
|
|
112
|
-
vrf_cool_cap_f_of_high_temp = nil
|
|
113
|
-
vrf_cool_eir_f_of_low_temp = nil
|
|
114
|
-
vrf_cool_eir_ratio_boundary = nil
|
|
115
|
-
vrf_cool_eir_f_of_high_temp = nil
|
|
116
|
-
vrf_cooling_eir_low_plr = nil
|
|
117
|
-
vrf_cooling_eir_high_plr = nil
|
|
118
|
-
vrf_cooling_comb_ratio = nil
|
|
119
|
-
vrf_cooling_cplffplr = nil
|
|
120
|
-
vrf_heat_cap_f_of_low_temp = nil
|
|
121
|
-
vrf_heat_cap_ratio_boundary = nil
|
|
122
|
-
vrf_heat_cap_f_of_high_temp = nil
|
|
123
|
-
vrf_heat_eir_f_of_low_temp = nil
|
|
124
|
-
vrf_heat_eir_boundary = nil
|
|
125
|
-
vrf_heat_eir_f_of_high_temp = nil
|
|
126
|
-
vrf_heating_eir_low_plr = nil
|
|
127
|
-
vrf_heating_eir_hi_plr = nil
|
|
128
|
-
vrf_heating_comb_ratio = nil
|
|
129
|
-
vrf_heating_cplffplr = nil
|
|
130
|
-
vrf_defrost_eir_f_of_temp = nil
|
|
131
|
-
|
|
132
|
-
# curve sets
|
|
133
|
-
if type == 'OS default'
|
|
134
|
-
|
|
135
|
-
# use OS default curves
|
|
136
|
-
|
|
137
|
-
else # default curve set
|
|
138
|
-
|
|
139
|
-
# based on DAIKINREYQ 120 on BCL
|
|
140
|
-
|
|
141
|
-
# Cooling Capacity Ratio Modifier Function of Low Temperature Curve
|
|
142
|
-
vrf_cool_cap_f_of_low_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
143
|
-
vrf_cool_cap_f_of_low_temp.setName('vrf_cool_cap_f_of_low_temp')
|
|
144
|
-
vrf_cool_cap_f_of_low_temp.setCoefficient1Constant(-1.69653019339465)
|
|
145
|
-
vrf_cool_cap_f_of_low_temp.setCoefficient2x(0.207248180531939)
|
|
146
|
-
vrf_cool_cap_f_of_low_temp.setCoefficient3xPOW2(-0.00343146229659024)
|
|
147
|
-
vrf_cool_cap_f_of_low_temp.setCoefficient4y(0.016381597419714)
|
|
148
|
-
vrf_cool_cap_f_of_low_temp.setCoefficient5yPOW2(-6.7387172629965e-05)
|
|
149
|
-
vrf_cool_cap_f_of_low_temp.setCoefficient6xTIMESY(-0.000849848402870241)
|
|
150
|
-
vrf_cool_cap_f_of_low_temp.setMinimumValueofx(13.9)
|
|
151
|
-
vrf_cool_cap_f_of_low_temp.setMaximumValueofx(23.9)
|
|
152
|
-
vrf_cool_cap_f_of_low_temp.setMinimumValueofy(-5.0)
|
|
153
|
-
vrf_cool_cap_f_of_low_temp.setMaximumValueofy(43.3)
|
|
154
|
-
vrf_cool_cap_f_of_low_temp.setMinimumCurveOutput(0.59)
|
|
155
|
-
vrf_cool_cap_f_of_low_temp.setMaximumCurveOutput(1.33)
|
|
156
|
-
|
|
157
|
-
# Cooling Capacity Ratio Boundary Curve
|
|
158
|
-
vrf_cool_cap_ratio_boundary = OpenStudio::Model::CurveCubic.new(model)
|
|
159
|
-
vrf_cool_cap_ratio_boundary.setName('vrf_cool_cap_ratio_boundary')
|
|
160
|
-
vrf_cool_cap_ratio_boundary.setCoefficient1Constant(25.73)
|
|
161
|
-
vrf_cool_cap_ratio_boundary.setCoefficient2x(-0.03150043)
|
|
162
|
-
vrf_cool_cap_ratio_boundary.setCoefficient3xPOW2(-0.01416595)
|
|
163
|
-
vrf_cool_cap_ratio_boundary.setCoefficient4xPOW3(0.0)
|
|
164
|
-
vrf_cool_cap_ratio_boundary.setMinimumValueofx(11.0)
|
|
165
|
-
vrf_cool_cap_ratio_boundary.setMaximumValueofx(30.0)
|
|
166
|
-
|
|
167
|
-
# Cooling Capacity Ratio Modifier Function of High Temperature Curve
|
|
168
|
-
vrf_cool_cap_f_of_high_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
169
|
-
vrf_cool_cap_f_of_high_temp.setName('vrf_cool_cap_f_of_high_temp')
|
|
170
|
-
vrf_cool_cap_f_of_high_temp.setCoefficient1Constant(0.6867358)
|
|
171
|
-
vrf_cool_cap_f_of_high_temp.setCoefficient2x(0.0207631)
|
|
172
|
-
vrf_cool_cap_f_of_high_temp.setCoefficient3xPOW2(0.0005447)
|
|
173
|
-
vrf_cool_cap_f_of_high_temp.setCoefficient4y(-0.0016218)
|
|
174
|
-
vrf_cool_cap_f_of_high_temp.setCoefficient5yPOW2(-4.259e-07)
|
|
175
|
-
vrf_cool_cap_f_of_high_temp.setCoefficient6xTIMESY(-0.0003392)
|
|
176
|
-
vrf_cool_cap_f_of_high_temp.setMinimumValueofx(15.0)
|
|
177
|
-
vrf_cool_cap_f_of_high_temp.setMaximumValueofx(24.0)
|
|
178
|
-
vrf_cool_cap_f_of_high_temp.setMinimumValueofy(16.0)
|
|
179
|
-
vrf_cool_cap_f_of_high_temp.setMaximumValueofy(43.0)
|
|
180
|
-
|
|
181
|
-
# Cooling Energy Input Ratio Modifier Function of Low Temperature Curve
|
|
182
|
-
vrf_cool_eir_f_of_low_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
183
|
-
vrf_cool_eir_f_of_low_temp.setName('vrf_cool_eir_f_of_low_temp')
|
|
184
|
-
vrf_cool_eir_f_of_low_temp.setCoefficient1Constant(-1.61908214818635)
|
|
185
|
-
vrf_cool_eir_f_of_low_temp.setCoefficient2x(0.185964818731756)
|
|
186
|
-
vrf_cool_eir_f_of_low_temp.setCoefficient3xPOW2(-0.00389610393381592)
|
|
187
|
-
vrf_cool_eir_f_of_low_temp.setCoefficient4y(-0.00901995326324613)
|
|
188
|
-
vrf_cool_eir_f_of_low_temp.setCoefficient5yPOW2(0.00030340007815629)
|
|
189
|
-
vrf_cool_eir_f_of_low_temp.setCoefficient6xTIMESY(0.000476048529099348)
|
|
190
|
-
vrf_cool_eir_f_of_low_temp.setMinimumValueofx(13.9)
|
|
191
|
-
vrf_cool_eir_f_of_low_temp.setMaximumValueofx(23.9)
|
|
192
|
-
vrf_cool_eir_f_of_low_temp.setMinimumValueofy(-5.0)
|
|
193
|
-
vrf_cool_eir_f_of_low_temp.setMaximumValueofy(43.3)
|
|
194
|
-
vrf_cool_eir_f_of_low_temp.setMinimumCurveOutput(0.27)
|
|
195
|
-
vrf_cool_eir_f_of_low_temp.setMaximumCurveOutput(1.15)
|
|
196
|
-
|
|
197
|
-
# Cooling Energy Input Ratio Boundary Curve
|
|
198
|
-
vrf_cool_eir_ratio_boundary = OpenStudio::Model::CurveCubic.new(model)
|
|
199
|
-
vrf_cool_eir_ratio_boundary.setName('vrf_cool_eir_ratio_boundary')
|
|
200
|
-
vrf_cool_eir_ratio_boundary.setCoefficient1Constant(25.73473775)
|
|
201
|
-
vrf_cool_eir_ratio_boundary.setCoefficient2x(-0.03150043)
|
|
202
|
-
vrf_cool_eir_ratio_boundary.setCoefficient3xPOW2(-0.01416595)
|
|
203
|
-
vrf_cool_eir_ratio_boundary.setCoefficient4xPOW3(0.0)
|
|
204
|
-
vrf_cool_eir_ratio_boundary.setMinimumValueofx(15.0)
|
|
205
|
-
vrf_cool_eir_ratio_boundary.setMaximumValueofx(24.0)
|
|
206
|
-
|
|
207
|
-
# Cooling Energy Input Ratio Modifier Function of High Temperature Curve
|
|
208
|
-
vrf_cool_eir_f_of_high_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
209
|
-
vrf_cool_eir_f_of_high_temp.setName('vrf_cool_eir_f_of_high_temp')
|
|
210
|
-
vrf_cool_eir_f_of_high_temp.setCoefficient1Constant(-1.4395110176)
|
|
211
|
-
vrf_cool_eir_f_of_high_temp.setCoefficient2x(0.1619850459)
|
|
212
|
-
vrf_cool_eir_f_of_high_temp.setCoefficient3xPOW2(-0.0034911781)
|
|
213
|
-
vrf_cool_eir_f_of_high_temp.setCoefficient4y(0.0269442645)
|
|
214
|
-
vrf_cool_eir_f_of_high_temp.setCoefficient5yPOW2(0.0001346163)
|
|
215
|
-
vrf_cool_eir_f_of_high_temp.setCoefficient6xTIMESY(-0.0006714941)
|
|
216
|
-
vrf_cool_eir_f_of_high_temp.setMinimumValueofx(15.0)
|
|
217
|
-
vrf_cool_eir_f_of_high_temp.setMaximumValueofx(23.9)
|
|
218
|
-
vrf_cool_eir_f_of_high_temp.setMinimumValueofy(16.8)
|
|
219
|
-
vrf_cool_eir_f_of_high_temp.setMaximumValueofy(43.3)
|
|
220
|
-
|
|
221
|
-
# Cooling Energy Input Ratio Modifier Function of Low Part-Load Ratio Curve
|
|
222
|
-
vrf_cooling_eir_low_plr = OpenStudio::Model::CurveCubic.new(model)
|
|
223
|
-
vrf_cooling_eir_low_plr.setName('vrf_cool_eir_f_of_low_temp')
|
|
224
|
-
vrf_cooling_eir_low_plr.setCoefficient1Constant(0.0734992169827752)
|
|
225
|
-
vrf_cooling_eir_low_plr.setCoefficient2x(0.334783365234032)
|
|
226
|
-
vrf_cooling_eir_low_plr.setCoefficient3xPOW2(0.591613015486343)
|
|
227
|
-
vrf_cooling_eir_low_plr.setCoefficient4xPOW3(0.0)
|
|
228
|
-
vrf_cooling_eir_low_plr.setMinimumValueofx(0.25)
|
|
229
|
-
vrf_cooling_eir_low_plr.setMaximumValueofx(1.0)
|
|
230
|
-
vrf_cooling_eir_low_plr.setMinimumCurveOutput(0.0)
|
|
231
|
-
vrf_cooling_eir_low_plr.setMaximumCurveOutput(1.0)
|
|
232
|
-
|
|
233
|
-
# Cooling Energy Input Ratio Modifier Function of High Part-Load Ratio Curve
|
|
234
|
-
vrf_cooling_eir_high_plr = OpenStudio::Model::CurveCubic.new(model)
|
|
235
|
-
vrf_cooling_eir_high_plr.setName('vrf_cooling_eir_high_plr')
|
|
236
|
-
vrf_cooling_eir_high_plr.setCoefficient1Constant(1.0)
|
|
237
|
-
vrf_cooling_eir_high_plr.setCoefficient2x(0.0)
|
|
238
|
-
vrf_cooling_eir_high_plr.setCoefficient3xPOW2(0.0)
|
|
239
|
-
vrf_cooling_eir_high_plr.setCoefficient4xPOW3(0.0)
|
|
240
|
-
vrf_cooling_eir_high_plr.setMinimumValueofx(1.0)
|
|
241
|
-
vrf_cooling_eir_high_plr.setMaximumValueofx(1.5)
|
|
242
|
-
|
|
243
|
-
# Cooling Combination Ratio Correction Factor Curve
|
|
244
|
-
vrf_cooling_comb_ratio = OpenStudio::Model::CurveCubic.new(model)
|
|
245
|
-
vrf_cooling_comb_ratio.setName('vrf_cooling_comb_ratio')
|
|
246
|
-
vrf_cooling_comb_ratio.setCoefficient1Constant(0.24034)
|
|
247
|
-
vrf_cooling_comb_ratio.setCoefficient2x(-0.21873)
|
|
248
|
-
vrf_cooling_comb_ratio.setCoefficient3xPOW2(1.97941)
|
|
249
|
-
vrf_cooling_comb_ratio.setCoefficient4xPOW3(-1.02636)
|
|
250
|
-
vrf_cooling_comb_ratio.setMinimumValueofx(0.5)
|
|
251
|
-
vrf_cooling_comb_ratio.setMaximumValueofx(2.0)
|
|
252
|
-
vrf_cooling_comb_ratio.setMinimumCurveOutput(0.5)
|
|
253
|
-
vrf_cooling_comb_ratio.setMaximumCurveOutput(1.056)
|
|
254
|
-
|
|
255
|
-
# Cooling Part-Load Fraction Correlation Curve
|
|
256
|
-
vrf_cooling_cplffplr = OpenStudio::Model::CurveCubic.new(model)
|
|
257
|
-
vrf_cooling_cplffplr.setName('vrf_cooling_cplffplr')
|
|
258
|
-
vrf_cooling_cplffplr.setCoefficient1Constant(0.85)
|
|
259
|
-
vrf_cooling_cplffplr.setCoefficient2x(0.15)
|
|
260
|
-
vrf_cooling_cplffplr.setCoefficient3xPOW2(0.0)
|
|
261
|
-
vrf_cooling_cplffplr.setCoefficient4xPOW3(0.0)
|
|
262
|
-
vrf_cooling_cplffplr.setMinimumValueofx(1.0)
|
|
263
|
-
vrf_cooling_cplffplr.setMaximumValueofx(1.0)
|
|
264
|
-
|
|
265
|
-
# Heating Capacity Ratio Modifier Function of Low Temperature Curve Name
|
|
266
|
-
vrf_heat_cap_f_of_low_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
267
|
-
vrf_heat_cap_f_of_low_temp.setName('vrf_heat_cap_f_of_low_temp')
|
|
268
|
-
vrf_heat_cap_f_of_low_temp.setCoefficient1Constant(0.983220174655636)
|
|
269
|
-
vrf_heat_cap_f_of_low_temp.setCoefficient2x(0.0157167577703294)
|
|
270
|
-
vrf_heat_cap_f_of_low_temp.setCoefficient3xPOW2(-0.000835032422884084)
|
|
271
|
-
vrf_heat_cap_f_of_low_temp.setCoefficient4y(0.0522939264581759)
|
|
272
|
-
vrf_heat_cap_f_of_low_temp.setCoefficient5yPOW2(-0.000531556035364549)
|
|
273
|
-
vrf_heat_cap_f_of_low_temp.setCoefficient6xTIMESY(-0.00190605953116024)
|
|
274
|
-
vrf_heat_cap_f_of_low_temp.setMinimumValueofx(16.1)
|
|
275
|
-
vrf_heat_cap_f_of_low_temp.setMaximumValueofx(23.9)
|
|
276
|
-
vrf_heat_cap_f_of_low_temp.setMinimumValueofy(-25.0)
|
|
277
|
-
vrf_heat_cap_f_of_low_temp.setMaximumValueofy(13.3)
|
|
278
|
-
vrf_heat_cap_f_of_low_temp.setMinimumCurveOutput(0.515151515151515)
|
|
279
|
-
vrf_heat_cap_f_of_low_temp.setMaximumCurveOutput(1.2)
|
|
280
|
-
|
|
281
|
-
# Heating Capacity Ratio Boundary Curve Name
|
|
282
|
-
vrf_heat_cap_ratio_boundary = OpenStudio::Model::CurveCubic.new(model)
|
|
283
|
-
vrf_heat_cap_ratio_boundary.setName('vrf_heat_cap_ratio_boundary')
|
|
284
|
-
vrf_heat_cap_ratio_boundary.setCoefficient1Constant(58.577)
|
|
285
|
-
vrf_heat_cap_ratio_boundary.setCoefficient2x(-3.0255)
|
|
286
|
-
vrf_heat_cap_ratio_boundary.setCoefficient3xPOW2(0.0193)
|
|
287
|
-
vrf_heat_cap_ratio_boundary.setCoefficient4xPOW3(0.0)
|
|
288
|
-
vrf_heat_cap_ratio_boundary.setMinimumValueofx(15)
|
|
289
|
-
vrf_heat_cap_ratio_boundary.setMaximumValueofx(23.9)
|
|
290
|
-
|
|
291
|
-
# Heating Capacity Ratio Modifier Function of High Temperature Curve Name
|
|
292
|
-
vrf_heat_cap_f_of_high_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
293
|
-
vrf_heat_cap_f_of_high_temp.setName('vrf_heat_cap_f_of_high_temp')
|
|
294
|
-
vrf_heat_cap_f_of_high_temp.setCoefficient1Constant(2.5859872368)
|
|
295
|
-
vrf_heat_cap_f_of_high_temp.setCoefficient2x(-0.0953227101)
|
|
296
|
-
vrf_heat_cap_f_of_high_temp.setCoefficient3xPOW2(0.0009553288)
|
|
297
|
-
vrf_heat_cap_f_of_high_temp.setCoefficient4y(0.0)
|
|
298
|
-
vrf_heat_cap_f_of_high_temp.setCoefficient5yPOW2(0.0)
|
|
299
|
-
vrf_heat_cap_f_of_high_temp.setCoefficient6xTIMESY(0.0)
|
|
300
|
-
vrf_heat_cap_f_of_high_temp.setMinimumValueofx(21.1)
|
|
301
|
-
vrf_heat_cap_f_of_high_temp.setMaximumValueofx(27.2)
|
|
302
|
-
vrf_heat_cap_f_of_high_temp.setMinimumValueofy(-944)
|
|
303
|
-
vrf_heat_cap_f_of_high_temp.setMaximumValueofy(15)
|
|
304
|
-
|
|
305
|
-
# Heating Energy Input Ratio Modifier Function of Low Temperature Curve Name
|
|
306
|
-
vrf_heat_eir_f_of_low_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
307
|
-
vrf_heat_eir_f_of_low_temp.setName('vrf_heat_eir_f_of_low_temp')
|
|
308
|
-
vrf_heat_eir_f_of_low_temp.setCoefficient1Constant(0.756830029796909)
|
|
309
|
-
vrf_heat_eir_f_of_low_temp.setCoefficient2x(0.0457499799042671)
|
|
310
|
-
vrf_heat_eir_f_of_low_temp.setCoefficient3xPOW2(-0.00136357240431388)
|
|
311
|
-
vrf_heat_eir_f_of_low_temp.setCoefficient4y(0.0554884599902023)
|
|
312
|
-
vrf_heat_eir_f_of_low_temp.setCoefficient5yPOW2(-0.00120700875497686)
|
|
313
|
-
vrf_heat_eir_f_of_low_temp.setCoefficient6xTIMESY(-0.00303329271420931)
|
|
314
|
-
vrf_heat_eir_f_of_low_temp.setMinimumValueofx(16.1)
|
|
315
|
-
vrf_heat_eir_f_of_low_temp.setMaximumValueofx(23.9)
|
|
316
|
-
vrf_heat_eir_f_of_low_temp.setMinimumValueofy(-25.0)
|
|
317
|
-
vrf_heat_eir_f_of_low_temp.setMaximumValueofy(13.3)
|
|
318
|
-
vrf_heat_eir_f_of_low_temp.setMinimumCurveOutput(0.7)
|
|
319
|
-
vrf_heat_eir_f_of_low_temp.setMaximumCurveOutput(1.184)
|
|
320
|
-
|
|
321
|
-
# Heating Energy Input Ratio Boundary Curve Name
|
|
322
|
-
vrf_heat_eir_boundary = OpenStudio::Model::CurveCubic.new(model)
|
|
323
|
-
vrf_heat_eir_boundary.setName('vrf_heat_eir_boundary')
|
|
324
|
-
vrf_heat_eir_boundary.setCoefficient1Constant(58.577)
|
|
325
|
-
vrf_heat_eir_boundary.setCoefficient2x(-3.0255)
|
|
326
|
-
vrf_heat_eir_boundary.setCoefficient3xPOW2(0.0193)
|
|
327
|
-
vrf_heat_eir_boundary.setCoefficient4xPOW3(0.0)
|
|
328
|
-
vrf_heat_eir_boundary.setMinimumValueofx(15.0)
|
|
329
|
-
vrf_heat_eir_boundary.setMaximumValueofx(23.9)
|
|
330
|
-
|
|
331
|
-
# Heating Energy Input Ratio Modifier Function of High Temperature Curve Name
|
|
332
|
-
vrf_heat_eir_f_of_high_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
333
|
-
vrf_heat_eir_f_of_high_temp.setName('vrf_heat_eir_f_of_high_temp')
|
|
334
|
-
vrf_heat_eir_f_of_high_temp.setCoefficient1Constant(1.3885703646)
|
|
335
|
-
vrf_heat_eir_f_of_high_temp.setCoefficient2x(-0.0229771462)
|
|
336
|
-
vrf_heat_eir_f_of_high_temp.setCoefficient3xPOW2(0.000537274)
|
|
337
|
-
vrf_heat_eir_f_of_high_temp.setCoefficient4y(-0.0273936962)
|
|
338
|
-
vrf_heat_eir_f_of_high_temp.setCoefficient5yPOW2(0.0004030426)
|
|
339
|
-
vrf_heat_eir_f_of_high_temp.setCoefficient6xTIMESY(-5.9786e-05)
|
|
340
|
-
vrf_heat_eir_f_of_high_temp.setMinimumValueofx(21.1)
|
|
341
|
-
vrf_heat_eir_f_of_high_temp.setMaximumValueofx(27.2)
|
|
342
|
-
vrf_heat_eir_f_of_high_temp.setMinimumValueofy(0.0)
|
|
343
|
-
vrf_heat_eir_f_of_high_temp.setMaximumValueofy(1.0)
|
|
344
|
-
|
|
345
|
-
# Heating Performance Curve Outdoor Temperature Type
|
|
346
|
-
vrf_outdoor_unit.setHeatingPerformanceCurveOutdoorTemperatureType('WetBulbTemperature')
|
|
347
|
-
|
|
348
|
-
# Heating Energy Input Ratio Modifier Function of Low Part-Load Ratio Curve Name
|
|
349
|
-
vrf_heating_eir_low_plr = OpenStudio::Model::CurveCubic.new(model)
|
|
350
|
-
vrf_heating_eir_low_plr.setName('vrf_heating_eir_low_plr')
|
|
351
|
-
vrf_heating_eir_low_plr.setCoefficient1Constant(0.0724906507105475)
|
|
352
|
-
vrf_heating_eir_low_plr.setCoefficient2x(0.658189977561701)
|
|
353
|
-
vrf_heating_eir_low_plr.setCoefficient3xPOW2(0.269259536275246)
|
|
354
|
-
vrf_heating_eir_low_plr.setCoefficient4xPOW3(0.0)
|
|
355
|
-
vrf_heating_eir_low_plr.setMinimumValueofx(0.25)
|
|
356
|
-
vrf_heating_eir_low_plr.setMaximumValueofx(1.0)
|
|
357
|
-
vrf_heating_eir_low_plr.setMinimumCurveOutput(0.0)
|
|
358
|
-
vrf_heating_eir_low_plr.setMaximumCurveOutput(1.0)
|
|
359
|
-
|
|
360
|
-
# Heating Energy Input Ratio Modifier Function of High Part-Load Ratio Curve Name
|
|
361
|
-
vrf_heating_eir_hi_plr = OpenStudio::Model::CurveCubic.new(model)
|
|
362
|
-
vrf_heating_eir_hi_plr.setName('vrf_heating_eir_hi_plr')
|
|
363
|
-
vrf_heating_eir_hi_plr.setCoefficient1Constant(1.0)
|
|
364
|
-
vrf_heating_eir_hi_plr.setCoefficient2x(0.0)
|
|
365
|
-
vrf_heating_eir_hi_plr.setCoefficient3xPOW2(0.0)
|
|
366
|
-
vrf_heating_eir_hi_plr.setCoefficient4xPOW3(0.0)
|
|
367
|
-
vrf_heating_eir_hi_plr.setMinimumValueofx(1.0)
|
|
368
|
-
vrf_heating_eir_hi_plr.setMaximumValueofx(1.5)
|
|
369
|
-
|
|
370
|
-
# Heating Combination Ratio Correction Factor Curve Name
|
|
371
|
-
vrf_heating_comb_ratio = OpenStudio::Model::CurveCubic.new(model)
|
|
372
|
-
vrf_heating_comb_ratio.setName('vrf_heating_comb_ratio')
|
|
373
|
-
vrf_heating_comb_ratio.setCoefficient1Constant(0.62115)
|
|
374
|
-
vrf_heating_comb_ratio.setCoefficient2x(-1.55798)
|
|
375
|
-
vrf_heating_comb_ratio.setCoefficient3xPOW2(3.36817)
|
|
376
|
-
vrf_heating_comb_ratio.setCoefficient4xPOW3(-1.4224)
|
|
377
|
-
vrf_heating_comb_ratio.setMinimumValueofx(0.5)
|
|
378
|
-
vrf_heating_comb_ratio.setMaximumValueofx(2.0)
|
|
379
|
-
vrf_heating_comb_ratio.setMinimumCurveOutput(0.5)
|
|
380
|
-
vrf_heating_comb_ratio.setMaximumCurveOutput(1.155)
|
|
381
|
-
|
|
382
|
-
# Heating Part-Load Fraction Correlation Curve Name
|
|
383
|
-
vrf_heating_cplffplr = OpenStudio::Model::CurveCubic.new(model)
|
|
384
|
-
vrf_heating_cplffplr.setName('vrf_heating_cplffplr')
|
|
385
|
-
vrf_heating_cplffplr.setCoefficient1Constant(0.85)
|
|
386
|
-
vrf_heating_cplffplr.setCoefficient2x(0.15)
|
|
387
|
-
vrf_heating_cplffplr.setCoefficient3xPOW2(0.0)
|
|
388
|
-
vrf_heating_cplffplr.setCoefficient4xPOW3(0.0)
|
|
389
|
-
vrf_heating_cplffplr.setMinimumValueofx(1.0)
|
|
390
|
-
vrf_heating_cplffplr.setMaximumValueofx(1.0)
|
|
391
|
-
|
|
392
|
-
# Defrost Energy Input Ratio Modifier Function of Temperature Curve
|
|
393
|
-
vrf_defrost_eir_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
394
|
-
vrf_defrost_eir_f_of_temp.setName('vrf_defrost_eir_f_of_temp')
|
|
395
|
-
vrf_defrost_eir_f_of_temp.setCoefficient1Constant(-1.61908214818635)
|
|
396
|
-
vrf_defrost_eir_f_of_temp.setCoefficient2x(0.185964818731756)
|
|
397
|
-
vrf_defrost_eir_f_of_temp.setCoefficient3xPOW2(-0.00389610393381592)
|
|
398
|
-
vrf_defrost_eir_f_of_temp.setCoefficient4y(-0.00901995326324613)
|
|
399
|
-
vrf_defrost_eir_f_of_temp.setCoefficient5yPOW2(0.00030340007815629)
|
|
400
|
-
vrf_defrost_eir_f_of_temp.setCoefficient6xTIMESY(0.000476048529099348)
|
|
401
|
-
vrf_defrost_eir_f_of_temp.setMinimumValueofx(13.9)
|
|
402
|
-
vrf_defrost_eir_f_of_temp.setMaximumValueofx(23.9)
|
|
403
|
-
vrf_defrost_eir_f_of_temp.setMinimumValueofy(-5.0)
|
|
404
|
-
vrf_defrost_eir_f_of_temp.setMaximumValueofy(50.0)
|
|
405
|
-
vrf_defrost_eir_f_of_temp.setMinimumCurveOutput(0.27)
|
|
406
|
-
vrf_defrost_eir_f_of_temp.setMaximumCurveOutput(1.155)
|
|
407
|
-
|
|
408
|
-
# set defrost control
|
|
409
|
-
vrf_outdoor_unit.setDefrostStrategy('ReverseCycle')
|
|
410
|
-
vrf_outdoor_unit.setDefrostControl('OnDemand')
|
|
411
|
-
|
|
412
|
-
end
|
|
413
|
-
|
|
414
|
-
vrf_outdoor_unit.setCoolingCapacityRatioModifierFunctionofLowTemperatureCurve(vrf_cool_cap_f_of_low_temp) unless vrf_cool_cap_f_of_low_temp.nil?
|
|
415
|
-
vrf_outdoor_unit.setCoolingCapacityRatioBoundaryCurve(vrf_cool_cap_ratio_boundary) unless vrf_cool_cap_ratio_boundary.nil?
|
|
416
|
-
vrf_outdoor_unit.setCoolingCapacityRatioModifierFunctionofHighTemperatureCurve(vrf_cool_cap_f_of_high_temp) unless vrf_cool_cap_f_of_high_temp.nil?
|
|
417
|
-
vrf_outdoor_unit.setCoolingEnergyInputRatioModifierFunctionofLowTemperatureCurve(vrf_cool_eir_f_of_low_temp) unless vrf_cool_eir_f_of_low_temp.nil?
|
|
418
|
-
vrf_outdoor_unit.setCoolingEnergyInputRatioBoundaryCurve(vrf_cool_eir_ratio_boundary) unless vrf_cool_eir_ratio_boundary.nil?
|
|
419
|
-
vrf_outdoor_unit.setCoolingEnergyInputRatioModifierFunctionofHighTemperatureCurve(vrf_cool_eir_f_of_high_temp) unless vrf_cool_eir_f_of_high_temp.nil?
|
|
420
|
-
vrf_outdoor_unit.setCoolingEnergyInputRatioModifierFunctionofLowPartLoadRatioCurve(vrf_cooling_eir_low_plr) unless vrf_cooling_eir_low_plr.nil?
|
|
421
|
-
vrf_outdoor_unit.setCoolingEnergyInputRatioModifierFunctionofHighPartLoadRatioCurve(vrf_cooling_eir_high_plr) unless vrf_cooling_eir_high_plr.nil?
|
|
422
|
-
vrf_outdoor_unit.setCoolingCombinationRatioCorrectionFactorCurve(vrf_cooling_comb_ratio) unless vrf_cooling_comb_ratio.nil?
|
|
423
|
-
vrf_outdoor_unit.setCoolingPartLoadFractionCorrelationCurve(vrf_cooling_cplffplr) unless vrf_cooling_cplffplr.nil?
|
|
424
|
-
vrf_outdoor_unit.setHeatingCapacityRatioModifierFunctionofLowTemperatureCurve(vrf_heat_cap_f_of_low_temp) unless vrf_heat_cap_f_of_low_temp.nil?
|
|
425
|
-
vrf_outdoor_unit.setHeatingCapacityRatioBoundaryCurve(vrf_heat_cap_ratio_boundary) unless vrf_heat_cap_ratio_boundary.nil?
|
|
426
|
-
vrf_outdoor_unit.setHeatingCapacityRatioModifierFunctionofHighTemperatureCurve(vrf_heat_cap_f_of_high_temp) unless vrf_heat_cap_f_of_high_temp.nil?
|
|
427
|
-
vrf_outdoor_unit.setHeatingEnergyInputRatioModifierFunctionofLowTemperatureCurve(vrf_heat_eir_f_of_low_temp) unless vrf_heat_eir_f_of_low_temp.nil?
|
|
428
|
-
vrf_outdoor_unit.setHeatingEnergyInputRatioBoundaryCurve(vrf_heat_eir_boundary) unless vrf_heat_eir_boundary.nil?
|
|
429
|
-
vrf_outdoor_unit.setHeatingEnergyInputRatioModifierFunctionofHighTemperatureCurve(vrf_heat_eir_f_of_high_temp) unless vrf_heat_eir_f_of_high_temp.nil?
|
|
430
|
-
vrf_outdoor_unit.setHeatingEnergyInputRatioModifierFunctionofLowPartLoadRatioCurve(vrf_heating_eir_low_plr) unless vrf_heating_eir_low_plr.nil?
|
|
431
|
-
vrf_outdoor_unit.setHeatingEnergyInputRatioModifierFunctionofHighPartLoadRatioCurve(vrf_heating_eir_hi_plr) unless vrf_heating_eir_hi_plr.nil?
|
|
432
|
-
vrf_outdoor_unit.setHeatingCombinationRatioCorrectionFactorCurve(vrf_heating_comb_ratio) unless vrf_heating_comb_ratio.nil?
|
|
433
|
-
vrf_outdoor_unit.setHeatingPartLoadFractionCorrelationCurve(vrf_heating_cplffplr) unless vrf_heating_cplffplr.nil?
|
|
434
|
-
vrf_outdoor_unit.setDefrostEnergyInputRatioModifierFunctionofTemperatureCurve(vrf_defrost_eir_f_of_temp) unless vrf_defrost_eir_f_of_temp.nil?
|
|
435
|
-
|
|
436
|
-
return vrf_outdoor_unit
|
|
437
|
-
end
|
|
438
|
-
end
|