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,123 +0,0 @@
|
|
|
1
|
-
class Standard
|
|
2
|
-
# @!group Boiler Hot Water
|
|
3
|
-
|
|
4
|
-
# Prototype BoilerHotWater object
|
|
5
|
-
#
|
|
6
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
7
|
-
# @param hot_water_loop [<OpenStudio::Model::PlantLoop>] a hot water loop served by the boiler
|
|
8
|
-
# @param name [String] the name of the boiler, or nil in which case it will be defaulted
|
|
9
|
-
# @param fuel_type [String] type of fuel serving the boiler
|
|
10
|
-
# @param draft_type [String] Boiler type Condensing, MechanicalNoncondensing, Natural (default)
|
|
11
|
-
# @param nominal_thermal_efficiency [Double] boiler nominal thermal efficiency
|
|
12
|
-
# @param eff_curve_temp_eval_var [String] LeavingBoiler or EnteringBoiler temperature for the boiler efficiency curve
|
|
13
|
-
# @param flow_mode [String] boiler flow mode
|
|
14
|
-
# @param lvg_temp_dsgn_f [Double] boiler leaving design temperature in degrees Fahrenheit
|
|
15
|
-
# note that this field is deprecated in OS versions 3.0+
|
|
16
|
-
# @param out_temp_lmt_f [Double] boiler outlet temperature limit in degrees Fahrenheit
|
|
17
|
-
# @param min_plr [Double] boiler minimum part load ratio
|
|
18
|
-
# @param max_plr [Double] boiler maximum part load ratio
|
|
19
|
-
# @param opt_plr [Double] boiler optimum part load ratio
|
|
20
|
-
# @param sizing_factor [Double] boiler oversizing factor
|
|
21
|
-
# @return [OpenStudio::Model::BoilerHotWater] the boiler object
|
|
22
|
-
def create_boiler_hot_water(model,
|
|
23
|
-
hot_water_loop: nil,
|
|
24
|
-
name: 'Boiler',
|
|
25
|
-
fuel_type: 'NaturalGas',
|
|
26
|
-
draft_type: 'Natural',
|
|
27
|
-
nominal_thermal_efficiency: 0.80,
|
|
28
|
-
eff_curve_temp_eval_var: 'LeavingBoiler',
|
|
29
|
-
flow_mode: 'LeavingSetpointModulated',
|
|
30
|
-
lvg_temp_dsgn_f: 180.0, # 82.22 degrees Celsius
|
|
31
|
-
out_temp_lmt_f: 203.0, # 95.0 degrees Celsius
|
|
32
|
-
min_plr: 0.0,
|
|
33
|
-
max_plr: 1.2,
|
|
34
|
-
opt_plr: 1.0,
|
|
35
|
-
sizing_factor: nil)
|
|
36
|
-
|
|
37
|
-
# create the boiler
|
|
38
|
-
boiler = OpenStudio::Model::BoilerHotWater.new(model)
|
|
39
|
-
if name.nil?
|
|
40
|
-
if hot_water_loop.nil?
|
|
41
|
-
boiler.setName('Boiler')
|
|
42
|
-
else
|
|
43
|
-
boiler.setName("#{hot_water_loop.name} Boiler")
|
|
44
|
-
end
|
|
45
|
-
else
|
|
46
|
-
boiler.setName(name)
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
if fuel_type.nil? || fuel_type == 'Gas'
|
|
50
|
-
boiler.setFuelType('NaturalGas')
|
|
51
|
-
elsif fuel_type == 'Propane' || fuel_type == 'PropaneGas'
|
|
52
|
-
boiler.setFuelType('Propane')
|
|
53
|
-
else
|
|
54
|
-
boiler.setFuelType(fuel_type)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
if nominal_thermal_efficiency.nil?
|
|
58
|
-
boiler.setNominalThermalEfficiency(0.8)
|
|
59
|
-
else
|
|
60
|
-
boiler.setNominalThermalEfficiency(nominal_thermal_efficiency)
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
if eff_curve_temp_eval_var.nil?
|
|
64
|
-
boiler.setEfficiencyCurveTemperatureEvaluationVariable('LeavingBoiler')
|
|
65
|
-
else
|
|
66
|
-
boiler.setEfficiencyCurveTemperatureEvaluationVariable(eff_curve_temp_eval_var)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
if flow_mode.nil?
|
|
70
|
-
boiler.setBoilerFlowMode('LeavingSetpointModulated')
|
|
71
|
-
else
|
|
72
|
-
boiler.setBoilerFlowMode(flow_mode)
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
if model.version < OpenStudio::VersionString.new('3.0.0')
|
|
76
|
-
if lvg_temp_dsgn_f.nil?
|
|
77
|
-
boiler.setDesignWaterOutletTemperature(OpenStudio.convert(180.0, 'F', 'C').get)
|
|
78
|
-
else
|
|
79
|
-
boiler.setDesignWaterOutletTemperature(OpenStudio.convert(lvg_temp_dsgn_f, 'F', 'C').get)
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
if out_temp_lmt_f.nil?
|
|
84
|
-
boiler.setWaterOutletUpperTemperatureLimit(OpenStudio.convert(203.0, 'F', 'C').get)
|
|
85
|
-
else
|
|
86
|
-
boiler.setWaterOutletUpperTemperatureLimit(OpenStudio.convert(out_temp_lmt_f, 'F', 'C').get)
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
# logic to set different defaults for condensing boilers if not specified
|
|
90
|
-
if draft_type == 'Condensing'
|
|
91
|
-
if model.version < OpenStudio::VersionString.new('3.0.0') && lvg_temp_dsgn_f.nil?
|
|
92
|
-
# default to 120 degrees Fahrenheit (48.49 degrees Celsius)
|
|
93
|
-
boiler.setDesignWaterOutletTemperature(OpenStudio.convert(120.0, 'F', 'C').get)
|
|
94
|
-
end
|
|
95
|
-
boiler.setNominalThermalEfficiency(0.96) if nominal_thermal_efficiency.nil?
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
if min_plr.nil?
|
|
99
|
-
boiler.setMinimumPartLoadRatio(0.0)
|
|
100
|
-
else
|
|
101
|
-
boiler.setMinimumPartLoadRatio(min_plr)
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
if max_plr.nil?
|
|
105
|
-
boiler.setMaximumPartLoadRatio(1.2)
|
|
106
|
-
else
|
|
107
|
-
boiler.setMaximumPartLoadRatio(max_plr)
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
if opt_plr.nil?
|
|
111
|
-
boiler.setOptimumPartLoadRatio(1.0)
|
|
112
|
-
else
|
|
113
|
-
boiler.setOptimumPartLoadRatio(opt_plr)
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
boiler.setSizingFactor(sizing_factor) unless sizing_factor.nil?
|
|
117
|
-
|
|
118
|
-
# add to supply side of hot water loop if specified
|
|
119
|
-
hot_water_loop.addSupplyBranchForComponent(boiler) unless hot_water_loop.nil?
|
|
120
|
-
|
|
121
|
-
return boiler
|
|
122
|
-
end
|
|
123
|
-
end
|
data/lib/openstudio-standards/prototypes/common/objects/Prototype.CentralAirSourceHeatPump.rb
DELETED
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
class Standard
|
|
2
|
-
# @!group Central Air Source Heat Pump
|
|
3
|
-
|
|
4
|
-
# Prototype CentralAirSourceHeatPump object using PlantComponentUserDefined
|
|
5
|
-
#
|
|
6
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
7
|
-
# @param hot_water_loop [<OpenStudio::Model::PlantLoop>] a hot water loop served by the central air source heat pump
|
|
8
|
-
# @param name [String] the name of the central air source heat pump, or nil in which case it will be defaulted
|
|
9
|
-
# @param cop [Double] air source heat pump rated cop
|
|
10
|
-
# @return [OpenStudio::Model::PlantComponentUserDefined] a plant component representing the air source heat pump
|
|
11
|
-
# @todo update curve to better calculate based on the rated cop
|
|
12
|
-
# @todo refactor to use the new EnergyPlus central air source heat pump object when it becomes available
|
|
13
|
-
# set hot_water_loop to an optional keyword argument, and add input keyword arguments for other characteristics
|
|
14
|
-
def create_central_air_source_heat_pump(model,
|
|
15
|
-
hot_water_loop,
|
|
16
|
-
name: nil,
|
|
17
|
-
cop: 3.65)
|
|
18
|
-
|
|
19
|
-
# create the PlantComponentUserDefined object as a proxy for the Central Air Source Heat Pump
|
|
20
|
-
plant_comp = OpenStudio::Model::PlantComponentUserDefined.new(model)
|
|
21
|
-
if name.nil?
|
|
22
|
-
if hot_water_loop.nil?
|
|
23
|
-
name = 'Central Air Source Heat Pump'
|
|
24
|
-
else
|
|
25
|
-
name = "#{hot_water_loop.name} Central Air Source Heat Pump"
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
# change equipment name for EMS validity
|
|
30
|
-
plant_comp.setName(ems_friendly_name(name))
|
|
31
|
-
|
|
32
|
-
# set plant component properties
|
|
33
|
-
plant_comp.setPlantLoadingMode('MeetsLoadWithNominalCapacityHiOutLimit')
|
|
34
|
-
plant_comp.setPlantLoopFlowRequestMode('NeedsFlowIfLoopOn')
|
|
35
|
-
|
|
36
|
-
# plant design volume flow rate internal variable
|
|
37
|
-
vdot_des_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Plant Design Volume Flow Rate')
|
|
38
|
-
vdot_des_int_var.setName("#{plant_comp.name}_Vdot_Des_Int_Var")
|
|
39
|
-
vdot_des_int_var.setInternalDataIndexKeyName(hot_water_loop.handle.to_s)
|
|
40
|
-
|
|
41
|
-
# inlet temperature internal variable
|
|
42
|
-
tin_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Inlet Temperature for Plant Connection 1')
|
|
43
|
-
tin_int_var.setName("#{plant_comp.name}_Tin_Int_Var")
|
|
44
|
-
tin_int_var.setInternalDataIndexKeyName(plant_comp.handle.to_s)
|
|
45
|
-
|
|
46
|
-
# inlet mass flow rate internal variable
|
|
47
|
-
mdot_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Inlet Mass Flow Rate for Plant Connection 1')
|
|
48
|
-
mdot_int_var.setName("#{plant_comp.name}_Mdot_Int_Var")
|
|
49
|
-
mdot_int_var.setInternalDataIndexKeyName(plant_comp.handle.to_s)
|
|
50
|
-
|
|
51
|
-
# inlet specific heat internal variable
|
|
52
|
-
cp_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Inlet Specific Heat for Plant Connection 1')
|
|
53
|
-
cp_int_var.setName("#{plant_comp.name}_Cp_Int_Var")
|
|
54
|
-
cp_int_var.setInternalDataIndexKeyName(plant_comp.handle.to_s)
|
|
55
|
-
|
|
56
|
-
# inlet density internal variable
|
|
57
|
-
rho_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Inlet Density for Plant Connection 1')
|
|
58
|
-
rho_int_var.setName("#{plant_comp.name}_rho_Int_Var")
|
|
59
|
-
rho_int_var.setInternalDataIndexKeyName(plant_comp.handle.to_s)
|
|
60
|
-
|
|
61
|
-
# load request internal variable
|
|
62
|
-
load_int_var = OpenStudio::Model::EnergyManagementSystemInternalVariable.new(model, 'Load Request for Plant Connection 1')
|
|
63
|
-
load_int_var.setName("#{plant_comp.name}_Load_Int_Var")
|
|
64
|
-
load_int_var.setInternalDataIndexKeyName(plant_comp.handle.to_s)
|
|
65
|
-
|
|
66
|
-
# supply outlet node setpoint temperature sensor
|
|
67
|
-
setpt_mgr_sch_sen = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Schedule Value')
|
|
68
|
-
setpt_mgr_sch_sen.setName("#{plant_comp.name}_Setpt_Mgr_Temp_Sen")
|
|
69
|
-
hot_water_loop.supplyOutletNode.setpointManagers.each do |m|
|
|
70
|
-
if m.to_SetpointManagerScheduled.is_initialized
|
|
71
|
-
setpt_mgr_sch_sen.setKeyName(m.to_SetpointManagerScheduled.get.schedule.name.to_s)
|
|
72
|
-
end
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
# outdoor air drybulb temperature sensor
|
|
76
|
-
oa_dbt_sen = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Site Outdoor Air Drybulb Temperature')
|
|
77
|
-
oa_dbt_sen.setName("#{plant_comp.name}_OA_DBT_Sen")
|
|
78
|
-
oa_dbt_sen.setKeyName('Environment')
|
|
79
|
-
|
|
80
|
-
# minimum mass flow rate actuator
|
|
81
|
-
mdot_min_act = plant_comp.minimumMassFlowRateActuator.get
|
|
82
|
-
mdot_min_act.setName("#{plant_comp.name}_Mdot_Min_Act")
|
|
83
|
-
|
|
84
|
-
# maximum mass flow rate actuator
|
|
85
|
-
mdot_max_act = plant_comp.maximumMassFlowRateActuator.get
|
|
86
|
-
mdot_max_act.setName("#{plant_comp.name}_Mdot_Max_Act")
|
|
87
|
-
|
|
88
|
-
# design flow rate actuator
|
|
89
|
-
vdot_des_act = plant_comp.designVolumeFlowRateActuator.get
|
|
90
|
-
vdot_des_act.setName("#{plant_comp.name}_Vdot_Des_Act")
|
|
91
|
-
|
|
92
|
-
# minimum loading capacity actuator
|
|
93
|
-
cap_min_act = plant_comp.minimumLoadingCapacityActuator.get
|
|
94
|
-
cap_min_act.setName("#{plant_comp.name}_Cap_Min_Act")
|
|
95
|
-
|
|
96
|
-
# maximum loading capacity actuator
|
|
97
|
-
cap_max_act = plant_comp.maximumLoadingCapacityActuator.get
|
|
98
|
-
cap_max_act.setName("#{plant_comp.name}_Cap_Max_Act")
|
|
99
|
-
|
|
100
|
-
# optimal loading capacity actuator
|
|
101
|
-
cap_opt_act = plant_comp.optimalLoadingCapacityActuator.get
|
|
102
|
-
cap_opt_act.setName("#{plant_comp.name}_Cap_Opt_Act")
|
|
103
|
-
|
|
104
|
-
# outlet temperature actuator
|
|
105
|
-
tout_act = plant_comp.outletTemperatureActuator.get
|
|
106
|
-
tout_act.setName("#{plant_comp.name}_Tout_Act")
|
|
107
|
-
|
|
108
|
-
# mass flow rate actuator
|
|
109
|
-
mdot_req_act = plant_comp.massFlowRateActuator.get
|
|
110
|
-
mdot_req_act.setName("#{plant_comp.name}_Mdot_Req_Act")
|
|
111
|
-
|
|
112
|
-
# heat pump COP curve
|
|
113
|
-
constant_coeff = 1.932 + (cop - 3.65)
|
|
114
|
-
hp_cop_curve = OpenStudio::Model::CurveQuadratic.new(model)
|
|
115
|
-
hp_cop_curve.setCoefficient1Constant(constant_coeff)
|
|
116
|
-
hp_cop_curve.setCoefficient2x(0.227674286)
|
|
117
|
-
hp_cop_curve.setCoefficient3xPOW2(-0.007313143)
|
|
118
|
-
hp_cop_curve.setMinimumValueofx(1.67)
|
|
119
|
-
hp_cop_curve.setMaximumValueofx(12.78)
|
|
120
|
-
hp_cop_curve.setInputUnitTypeforX('Temperature')
|
|
121
|
-
hp_cop_curve.setOutputUnitType('Dimensionless')
|
|
122
|
-
|
|
123
|
-
# heat pump COP curve index variable
|
|
124
|
-
hp_cop_curve_idx_var = OpenStudio::Model::EnergyManagementSystemCurveOrTableIndexVariable.new(model, hp_cop_curve)
|
|
125
|
-
|
|
126
|
-
# high outlet temperature limit actuator
|
|
127
|
-
tout_max_act = OpenStudio::Model::EnergyManagementSystemActuator.new(plant_comp, 'Plant Connection 1', 'High Outlet Temperature Limit')
|
|
128
|
-
tout_max_act.setName("#{plant_comp.name}_Tout_Max_Act")
|
|
129
|
-
|
|
130
|
-
# init program
|
|
131
|
-
init_pgrm = plant_comp.plantInitializationProgram.get
|
|
132
|
-
init_pgrm.setName("#{plant_comp.name}_Init_Pgrm")
|
|
133
|
-
init_pgrm_body = <<-EMS
|
|
134
|
-
SET Loop_Exit_Temp = #{hot_water_loop.sizingPlant.designLoopExitTemperature}
|
|
135
|
-
SET Loop_Delta_Temp = #{hot_water_loop.sizingPlant.loopDesignTemperatureDifference}
|
|
136
|
-
SET Cp = @CPHW Loop_Exit_Temp
|
|
137
|
-
SET rho = @RhoH2O Loop_Exit_Temp
|
|
138
|
-
SET #{vdot_des_act.handle} = #{vdot_des_int_var.handle}
|
|
139
|
-
SET #{mdot_min_act.handle} = 0
|
|
140
|
-
SET Mdot_Max = #{vdot_des_int_var.handle} * rho
|
|
141
|
-
SET #{mdot_max_act.handle} = Mdot_Max
|
|
142
|
-
SET Cap = Mdot_Max * Cp * Loop_Delta_Temp
|
|
143
|
-
SET #{cap_min_act.handle} = 0
|
|
144
|
-
SET #{cap_max_act.handle} = Cap
|
|
145
|
-
SET #{cap_opt_act.handle} = 1 * Cap
|
|
146
|
-
EMS
|
|
147
|
-
init_pgrm.setBody(init_pgrm_body)
|
|
148
|
-
|
|
149
|
-
# sim program
|
|
150
|
-
sim_pgrm = plant_comp.plantSimulationProgram.get
|
|
151
|
-
sim_pgrm.setName("#{plant_comp.name}_Sim_Pgrm")
|
|
152
|
-
sim_pgrm_body = <<-EMS
|
|
153
|
-
SET tmp = #{load_int_var.handle}
|
|
154
|
-
SET tmp = #{tin_int_var.handle}
|
|
155
|
-
SET tmp = #{mdot_int_var.handle}
|
|
156
|
-
SET #{tout_max_act.handle} = 75.0
|
|
157
|
-
IF #{load_int_var.handle} == 0
|
|
158
|
-
SET #{tout_act.handle} = #{tin_int_var.handle}
|
|
159
|
-
SET #{mdot_req_act.handle} = 0
|
|
160
|
-
SET Elec = 0
|
|
161
|
-
RETURN
|
|
162
|
-
ENDIF
|
|
163
|
-
IF #{load_int_var.handle} >= #{cap_max_act.handle}
|
|
164
|
-
SET Qdot = #{cap_max_act.handle}
|
|
165
|
-
SET Mdot = #{mdot_max_act.handle}
|
|
166
|
-
SET #{mdot_req_act.handle} = Mdot
|
|
167
|
-
SET #{tout_act.handle} = (Qdot / (Mdot * #{cp_int_var.handle})) + #{tin_int_var.handle}
|
|
168
|
-
IF #{tout_act.handle} > #{tout_max_act.handle}
|
|
169
|
-
SET #{tout_act.handle} = #{tout_max_act.handle}
|
|
170
|
-
SET Qdot = Mdot * #{cp_int_var.handle} * (#{tout_act.handle} - #{tin_int_var.handle})
|
|
171
|
-
ENDIF
|
|
172
|
-
ELSE
|
|
173
|
-
SET Qdot = #{load_int_var.handle}
|
|
174
|
-
SET #{tout_act.handle} = #{setpt_mgr_sch_sen.handle}
|
|
175
|
-
SET Mdot = Qdot / (#{cp_int_var.handle} * (#{tout_act.handle} - #{tin_int_var.handle}))
|
|
176
|
-
SET #{mdot_req_act.handle} = Mdot
|
|
177
|
-
ENDIF
|
|
178
|
-
SET Tdb = #{oa_dbt_sen.handle}
|
|
179
|
-
SET COP = @CurveValue #{hp_cop_curve_idx_var.handle} Tdb
|
|
180
|
-
SET EIR = 1 / COP
|
|
181
|
-
SET Pwr = Qdot * EIR
|
|
182
|
-
SET Elec = Pwr * SystemTimestep * 3600
|
|
183
|
-
EMS
|
|
184
|
-
sim_pgrm.setBody(sim_pgrm_body)
|
|
185
|
-
|
|
186
|
-
# init program calling manager
|
|
187
|
-
init_mgr = plant_comp.plantInitializationProgramCallingManager.get
|
|
188
|
-
init_mgr.setName("#{plant_comp.name}_Init_Pgrm_Mgr")
|
|
189
|
-
|
|
190
|
-
# sim program calling manager
|
|
191
|
-
sim_mgr = plant_comp.plantSimulationProgramCallingManager.get
|
|
192
|
-
sim_mgr.setName("#{plant_comp.name}_Sim_Pgrm_Mgr")
|
|
193
|
-
|
|
194
|
-
# metered output variable
|
|
195
|
-
elec_mtr_out_var = OpenStudio::Model::EnergyManagementSystemMeteredOutputVariable.new(model, "#{plant_comp.name} Electricity Consumption")
|
|
196
|
-
elec_mtr_out_var.setName("#{plant_comp.name} Electricity Consumption")
|
|
197
|
-
elec_mtr_out_var.setEMSVariableName('Elec')
|
|
198
|
-
elec_mtr_out_var.setUpdateFrequency('SystemTimestep')
|
|
199
|
-
elec_mtr_out_var.setString(4, sim_pgrm.handle.to_s)
|
|
200
|
-
elec_mtr_out_var.setResourceType('Electricity')
|
|
201
|
-
elec_mtr_out_var.setGroupType('HVAC')
|
|
202
|
-
elec_mtr_out_var.setEndUseCategory('Heating')
|
|
203
|
-
elec_mtr_out_var.setEndUseSubcategory('')
|
|
204
|
-
elec_mtr_out_var.setUnits('J')
|
|
205
|
-
|
|
206
|
-
# add to supply side of hot water loop if specified
|
|
207
|
-
hot_water_loop.addSupplyBranchForComponent(plant_comp) unless hot_water_loop.nil?
|
|
208
|
-
|
|
209
|
-
# add operation scheme
|
|
210
|
-
htg_op_scheme = OpenStudio::Model::PlantEquipmentOperationHeatingLoad.new(model)
|
|
211
|
-
htg_op_scheme.addEquipment(1000000000, plant_comp)
|
|
212
|
-
hot_water_loop.setPlantEquipmentOperationHeatingLoad(htg_op_scheme)
|
|
213
|
-
|
|
214
|
-
return plant_comp
|
|
215
|
-
end
|
|
216
|
-
end
|
data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilCoolingDXSingleSpeed.rb
DELETED
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
class Standard
|
|
2
|
-
# @!group CoilCoolingDXSingleSpeed
|
|
3
|
-
|
|
4
|
-
# Prototype CoilCoolingDXSingleSpeed object
|
|
5
|
-
# Enters in default curves for coil by type of coil
|
|
6
|
-
#
|
|
7
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
8
|
-
# @param air_loop_node [<OpenStudio::Model::Node>] the coil will be placed on this node of the air loop
|
|
9
|
-
# @param name [String] the name of the system, or nil in which case it will be defaulted
|
|
10
|
-
# @param schedule [String] name of the availability schedule, or [<OpenStudio::Model::Schedule>] Schedule object, or nil in which case default to always on
|
|
11
|
-
# @param type [String] the type of single speed DX coil to reference the correct curve set
|
|
12
|
-
# @param cop [Double] rated cooling coefficient of performance
|
|
13
|
-
# @return [OpenStudio::Model::CoilCoolingDXTwoSpeed] the DX cooling coil
|
|
14
|
-
def create_coil_cooling_dx_single_speed(model,
|
|
15
|
-
air_loop_node: nil,
|
|
16
|
-
name: '1spd DX Clg Coil',
|
|
17
|
-
schedule: nil,
|
|
18
|
-
type: nil,
|
|
19
|
-
cop: nil)
|
|
20
|
-
|
|
21
|
-
clg_coil = OpenStudio::Model::CoilCoolingDXSingleSpeed.new(model)
|
|
22
|
-
|
|
23
|
-
# add to air loop if specified
|
|
24
|
-
clg_coil.addToNode(air_loop_node) unless air_loop_node.nil?
|
|
25
|
-
|
|
26
|
-
# set coil name
|
|
27
|
-
clg_coil.setName(name)
|
|
28
|
-
|
|
29
|
-
# set coil availability schedule
|
|
30
|
-
if schedule.nil?
|
|
31
|
-
# default always on
|
|
32
|
-
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
|
33
|
-
elsif schedule.instance_of?(String)
|
|
34
|
-
coil_availability_schedule = model_add_schedule(model, schedule)
|
|
35
|
-
|
|
36
|
-
if coil_availability_schedule.nil? && schedule == 'alwaysOffDiscreteSchedule'
|
|
37
|
-
coil_availability_schedule = model.alwaysOffDiscreteSchedule
|
|
38
|
-
elsif coil_availability_schedule.nil?
|
|
39
|
-
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
|
40
|
-
end
|
|
41
|
-
elsif !schedule.to_Schedule.empty?
|
|
42
|
-
coil_availability_schedule = schedule
|
|
43
|
-
end
|
|
44
|
-
clg_coil.setAvailabilitySchedule(coil_availability_schedule)
|
|
45
|
-
|
|
46
|
-
# set coil cop
|
|
47
|
-
clg_coil.setRatedCOP(cop) unless cop.nil?
|
|
48
|
-
|
|
49
|
-
clg_cap_f_of_temp = nil
|
|
50
|
-
clg_cap_f_of_flow = nil
|
|
51
|
-
clg_energy_input_ratio_f_of_temp = nil
|
|
52
|
-
clg_energy_input_ratio_f_of_flow = nil
|
|
53
|
-
clg_part_load_ratio = nil
|
|
54
|
-
|
|
55
|
-
# curve sets
|
|
56
|
-
case type
|
|
57
|
-
when 'OS default'
|
|
58
|
-
# use OS defaults
|
|
59
|
-
|
|
60
|
-
when 'Heat Pump'
|
|
61
|
-
# "PSZ-AC_Unitary_PackagecoolCapFT"
|
|
62
|
-
clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
63
|
-
clg_cap_f_of_temp.setCoefficient1Constant(0.766956)
|
|
64
|
-
clg_cap_f_of_temp.setCoefficient2x(0.0107756)
|
|
65
|
-
clg_cap_f_of_temp.setCoefficient3xPOW2(-0.0000414703)
|
|
66
|
-
clg_cap_f_of_temp.setCoefficient4y(0.00134961)
|
|
67
|
-
clg_cap_f_of_temp.setCoefficient5yPOW2(-0.000261144)
|
|
68
|
-
clg_cap_f_of_temp.setCoefficient6xTIMESY(0.000457488)
|
|
69
|
-
clg_cap_f_of_temp.setMinimumValueofx(12.78)
|
|
70
|
-
clg_cap_f_of_temp.setMaximumValueofx(23.89)
|
|
71
|
-
clg_cap_f_of_temp.setMinimumValueofy(21.1)
|
|
72
|
-
clg_cap_f_of_temp.setMaximumValueofy(46.1)
|
|
73
|
-
|
|
74
|
-
clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
|
75
|
-
clg_cap_f_of_flow.setCoefficient1Constant(0.8)
|
|
76
|
-
clg_cap_f_of_flow.setCoefficient2x(0.2)
|
|
77
|
-
clg_cap_f_of_flow.setCoefficient3xPOW2(0.0)
|
|
78
|
-
clg_cap_f_of_flow.setMinimumValueofx(0.5)
|
|
79
|
-
clg_cap_f_of_flow.setMaximumValueofx(1.5)
|
|
80
|
-
|
|
81
|
-
clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
82
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient1Constant(0.297145)
|
|
83
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient2x(0.0430933)
|
|
84
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient3xPOW2(-0.000748766)
|
|
85
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient4y(0.00597727)
|
|
86
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient5yPOW2(0.000482112)
|
|
87
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient6xTIMESY(-0.000956448)
|
|
88
|
-
clg_energy_input_ratio_f_of_temp.setMinimumValueofx(12.78)
|
|
89
|
-
clg_energy_input_ratio_f_of_temp.setMaximumValueofx(23.89)
|
|
90
|
-
clg_energy_input_ratio_f_of_temp.setMinimumValueofy(21.1)
|
|
91
|
-
clg_energy_input_ratio_f_of_temp.setMaximumValueofy(46.1)
|
|
92
|
-
|
|
93
|
-
clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
|
94
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.156)
|
|
95
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient2x(-0.1816)
|
|
96
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient3xPOW2(0.0256)
|
|
97
|
-
clg_energy_input_ratio_f_of_flow.setMinimumValueofx(0.5)
|
|
98
|
-
clg_energy_input_ratio_f_of_flow.setMaximumValueofx(1.5)
|
|
99
|
-
|
|
100
|
-
clg_part_load_ratio = OpenStudio::Model::CurveQuadratic.new(model)
|
|
101
|
-
clg_part_load_ratio.setCoefficient1Constant(0.85)
|
|
102
|
-
clg_part_load_ratio.setCoefficient2x(0.15)
|
|
103
|
-
clg_part_load_ratio.setCoefficient3xPOW2(0.0)
|
|
104
|
-
clg_part_load_ratio.setMinimumValueofx(0.0)
|
|
105
|
-
clg_part_load_ratio.setMaximumValueofx(1.0)
|
|
106
|
-
|
|
107
|
-
when 'PSZ-AC'
|
|
108
|
-
# Defaults to "DOE Ref DX Clg Coil Cool-Cap-fT"
|
|
109
|
-
clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
110
|
-
clg_cap_f_of_temp.setCoefficient1Constant(0.9712123)
|
|
111
|
-
clg_cap_f_of_temp.setCoefficient2x(-0.015275502)
|
|
112
|
-
clg_cap_f_of_temp.setCoefficient3xPOW2(0.0014434524)
|
|
113
|
-
clg_cap_f_of_temp.setCoefficient4y(-0.00039321)
|
|
114
|
-
clg_cap_f_of_temp.setCoefficient5yPOW2(-0.0000068364)
|
|
115
|
-
clg_cap_f_of_temp.setCoefficient6xTIMESY(-0.0002905956)
|
|
116
|
-
clg_cap_f_of_temp.setMinimumValueofx(-100.0)
|
|
117
|
-
clg_cap_f_of_temp.setMaximumValueofx(100.0)
|
|
118
|
-
clg_cap_f_of_temp.setMinimumValueofy(-100.0)
|
|
119
|
-
clg_cap_f_of_temp.setMaximumValueofy(100.0)
|
|
120
|
-
|
|
121
|
-
clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
|
122
|
-
clg_cap_f_of_flow.setCoefficient1Constant(1.0)
|
|
123
|
-
clg_cap_f_of_flow.setCoefficient2x(0.0)
|
|
124
|
-
clg_cap_f_of_flow.setCoefficient3xPOW2(0.0)
|
|
125
|
-
clg_cap_f_of_flow.setMinimumValueofx(-100.0)
|
|
126
|
-
clg_cap_f_of_flow.setMaximumValueofx(100.0)
|
|
127
|
-
|
|
128
|
-
# "DOE Ref DX Clg Coil Cool-EIR-fT",
|
|
129
|
-
clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
130
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient1Constant(0.28687133)
|
|
131
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient2x(0.023902164)
|
|
132
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient3xPOW2(-0.000810648)
|
|
133
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient4y(0.013458546)
|
|
134
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient5yPOW2(0.0003389364)
|
|
135
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient6xTIMESY(-0.0004870044)
|
|
136
|
-
clg_energy_input_ratio_f_of_temp.setMinimumValueofx(-100.0)
|
|
137
|
-
clg_energy_input_ratio_f_of_temp.setMaximumValueofx(100.0)
|
|
138
|
-
clg_energy_input_ratio_f_of_temp.setMinimumValueofy(-100.0)
|
|
139
|
-
clg_energy_input_ratio_f_of_temp.setMaximumValueofy(100.0)
|
|
140
|
-
|
|
141
|
-
clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
|
142
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.0)
|
|
143
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient2x(0.0)
|
|
144
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient3xPOW2(0.0)
|
|
145
|
-
clg_energy_input_ratio_f_of_flow.setMinimumValueofx(-100.0)
|
|
146
|
-
clg_energy_input_ratio_f_of_flow.setMaximumValueofx(100.0)
|
|
147
|
-
|
|
148
|
-
# "DOE Ref DX Clg Coil Cool-PLF-fPLR"
|
|
149
|
-
clg_part_load_ratio = OpenStudio::Model::CurveQuadratic.new(model)
|
|
150
|
-
clg_part_load_ratio.setCoefficient1Constant(0.90949556)
|
|
151
|
-
clg_part_load_ratio.setCoefficient2x(0.09864773)
|
|
152
|
-
clg_part_load_ratio.setCoefficient3xPOW2(-0.00819488)
|
|
153
|
-
clg_part_load_ratio.setMinimumValueofx(0.0)
|
|
154
|
-
clg_part_load_ratio.setMaximumValueofx(1.0)
|
|
155
|
-
clg_part_load_ratio.setMinimumCurveOutput(0.7)
|
|
156
|
-
clg_part_load_ratio.setMaximumCurveOutput(1.0)
|
|
157
|
-
|
|
158
|
-
when 'Window AC'
|
|
159
|
-
# Performance curves
|
|
160
|
-
# From Frigidaire 10.7 EER unit in Winkler et. al. Lab Testing of Window ACs (2013)
|
|
161
|
-
# @note These coefficients are in SI UNITS
|
|
162
|
-
cool_cap_ft_coeffs_si = [0.6405, 0.01568, 0.0004531, 0.001615, -0.0001825, 0.00006614]
|
|
163
|
-
cool_eir_ft_coeffs_si = [2.287, -0.1732, 0.004745, 0.01662, 0.000484, -0.001306]
|
|
164
|
-
cool_cap_fflow_coeffs = [0.887, 0.1128, 0]
|
|
165
|
-
cool_eir_fflow_coeffs = [1.763, -0.6081, 0]
|
|
166
|
-
cool_plf_fplr_coeffs = [0.78, 0.22, 0]
|
|
167
|
-
|
|
168
|
-
# Make the curves
|
|
169
|
-
clg_cap_f_of_temp = create_curve_biquadratic(model, cool_cap_ft_coeffs_si, 'RoomAC-Cap-fT', 0, 100, 0, 100, nil, nil)
|
|
170
|
-
clg_cap_f_of_flow = create_curve_quadratic(model, cool_cap_fflow_coeffs, 'RoomAC-Cap-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
171
|
-
clg_energy_input_ratio_f_of_temp = create_curve_biquadratic(model, cool_eir_ft_coeffs_si, 'RoomAC-EIR-fT', 0, 100, 0, 100, nil, nil)
|
|
172
|
-
clg_energy_input_ratio_f_of_flow = create_curve_quadratic(model, cool_eir_fflow_coeffs, 'RoomAC-EIR-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
173
|
-
clg_part_load_ratio = create_curve_quadratic(model, cool_plf_fplr_coeffs, 'RoomAC-PLF-fPLR', 0, 1, 0, 1, is_dimensionless = true)
|
|
174
|
-
|
|
175
|
-
when 'Residential Central AC'
|
|
176
|
-
# Performance curves
|
|
177
|
-
# These coefficients are in IP UNITS
|
|
178
|
-
cool_cap_ft_coeffs_ip = [3.670270705, -0.098652414, 0.000955906, 0.006552414, -0.0000156, -0.000131877]
|
|
179
|
-
cool_eir_ft_coeffs_ip = [-3.302695861, 0.137871531, -0.001056996, -0.012573945, 0.000214638, -0.000145054]
|
|
180
|
-
cool_cap_fflow_coeffs = [0.718605468, 0.410099989, -0.128705457]
|
|
181
|
-
cool_eir_fflow_coeffs = [1.32299905, -0.477711207, 0.154712157]
|
|
182
|
-
cool_plf_fplr_coeffs = [0.8, 0.2, 0]
|
|
183
|
-
|
|
184
|
-
# Convert coefficients from IP to SI
|
|
185
|
-
cool_cap_ft_coeffs_si = convert_curve_biquadratic(cool_cap_ft_coeffs_ip)
|
|
186
|
-
cool_eir_ft_coeffs_si = convert_curve_biquadratic(cool_eir_ft_coeffs_ip)
|
|
187
|
-
|
|
188
|
-
# Make the curves
|
|
189
|
-
clg_cap_f_of_temp = create_curve_biquadratic(model, cool_cap_ft_coeffs_si, 'AC-Cap-fT', 0, 100, 0, 100, nil, nil)
|
|
190
|
-
clg_cap_f_of_flow = create_curve_quadratic(model, cool_cap_fflow_coeffs, 'AC-Cap-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
191
|
-
clg_energy_input_ratio_f_of_temp = create_curve_biquadratic(model, cool_eir_ft_coeffs_si, 'AC-EIR-fT', 0, 100, 0, 100, nil, nil)
|
|
192
|
-
clg_energy_input_ratio_f_of_flow = create_curve_quadratic(model, cool_eir_fflow_coeffs, 'AC-EIR-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
193
|
-
clg_part_load_ratio = create_curve_quadratic(model, cool_plf_fplr_coeffs, 'AC-PLF-fPLR', 0, 1, 0, 1, is_dimensionless = true)
|
|
194
|
-
|
|
195
|
-
when 'Residential Central ASHP'
|
|
196
|
-
# Performance curves
|
|
197
|
-
# These coefficients are in IP UNITS
|
|
198
|
-
cool_cap_ft_coeffs_ip = [3.68637657, -0.098352478, 0.000956357, 0.005838141, -0.0000127, -0.000131702]
|
|
199
|
-
cool_eir_ft_coeffs_ip = [-3.437356399, 0.136656369, -0.001049231, -0.0079378, 0.000185435, -0.0001441]
|
|
200
|
-
cool_cap_fflow_coeffs = [0.718664047, 0.41797409, -0.136638137]
|
|
201
|
-
cool_eir_fflow_coeffs = [1.143487507, -0.13943972, -0.004047787]
|
|
202
|
-
cool_plf_fplr_coeffs = [0.8, 0.2, 0]
|
|
203
|
-
|
|
204
|
-
# Convert coefficients from IP to SI
|
|
205
|
-
cool_cap_ft_coeffs_si = convert_curve_biquadratic(cool_cap_ft_coeffs_ip)
|
|
206
|
-
cool_eir_ft_coeffs_si = convert_curve_biquadratic(cool_eir_ft_coeffs_ip)
|
|
207
|
-
|
|
208
|
-
# Make the curves
|
|
209
|
-
clg_cap_f_of_temp = create_curve_biquadratic(model, cool_cap_ft_coeffs_si, 'Cool-Cap-fT', 0, 100, 0, 100, nil, nil)
|
|
210
|
-
clg_cap_f_of_flow = create_curve_quadratic(model, cool_cap_fflow_coeffs, 'Cool-Cap-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
211
|
-
clg_energy_input_ratio_f_of_temp = create_curve_biquadratic(model, cool_eir_ft_coeffs_si, 'Cool-EIR-fT', 0, 100, 0, 100, nil, nil)
|
|
212
|
-
clg_energy_input_ratio_f_of_flow = create_curve_quadratic(model, cool_eir_fflow_coeffs, 'Cool-EIR-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
213
|
-
clg_part_load_ratio = create_curve_quadratic(model, cool_plf_fplr_coeffs, 'Cool-PLF-fPLR', 0, 1, 0, 1, is_dimensionless = true)
|
|
214
|
-
|
|
215
|
-
else # default curve set, type == 'Split AC' || 'PTAC'
|
|
216
|
-
clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
217
|
-
clg_cap_f_of_temp.setCoefficient1Constant(0.942587793)
|
|
218
|
-
clg_cap_f_of_temp.setCoefficient2x(0.009543347)
|
|
219
|
-
clg_cap_f_of_temp.setCoefficient3xPOW2(0.00068377)
|
|
220
|
-
clg_cap_f_of_temp.setCoefficient4y(-0.011042676)
|
|
221
|
-
clg_cap_f_of_temp.setCoefficient5yPOW2(0.000005249)
|
|
222
|
-
clg_cap_f_of_temp.setCoefficient6xTIMESY(-0.00000972)
|
|
223
|
-
clg_cap_f_of_temp.setMinimumValueofx(12.77778)
|
|
224
|
-
clg_cap_f_of_temp.setMaximumValueofx(23.88889)
|
|
225
|
-
clg_cap_f_of_temp.setMinimumValueofy(23.88889)
|
|
226
|
-
clg_cap_f_of_temp.setMaximumValueofy(46.11111)
|
|
227
|
-
|
|
228
|
-
clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
|
229
|
-
clg_cap_f_of_flow.setCoefficient1Constant(0.8)
|
|
230
|
-
clg_cap_f_of_flow.setCoefficient2x(0.2)
|
|
231
|
-
clg_cap_f_of_flow.setCoefficient3xPOW2(0)
|
|
232
|
-
clg_cap_f_of_flow.setMinimumValueofx(0.5)
|
|
233
|
-
clg_cap_f_of_flow.setMaximumValueofx(1.5)
|
|
234
|
-
|
|
235
|
-
clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
236
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient1Constant(0.342414409)
|
|
237
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient2x(0.034885008)
|
|
238
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient3xPOW2(-0.0006237)
|
|
239
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient4y(0.004977216)
|
|
240
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient5yPOW2(0.000437951)
|
|
241
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient6xTIMESY(-0.000728028)
|
|
242
|
-
clg_energy_input_ratio_f_of_temp.setMinimumValueofx(12.77778)
|
|
243
|
-
clg_energy_input_ratio_f_of_temp.setMaximumValueofx(23.88889)
|
|
244
|
-
clg_energy_input_ratio_f_of_temp.setMinimumValueofy(23.88889)
|
|
245
|
-
clg_energy_input_ratio_f_of_temp.setMaximumValueofy(46.11111)
|
|
246
|
-
|
|
247
|
-
clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
|
248
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.1552)
|
|
249
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient2x(-0.1808)
|
|
250
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient3xPOW2(0.0256)
|
|
251
|
-
clg_energy_input_ratio_f_of_flow.setMinimumValueofx(0.5)
|
|
252
|
-
clg_energy_input_ratio_f_of_flow.setMaximumValueofx(1.5)
|
|
253
|
-
|
|
254
|
-
clg_part_load_ratio = OpenStudio::Model::CurveQuadratic.new(model)
|
|
255
|
-
clg_part_load_ratio.setCoefficient1Constant(0.85)
|
|
256
|
-
clg_part_load_ratio.setCoefficient2x(0.15)
|
|
257
|
-
clg_part_load_ratio.setCoefficient3xPOW2(0.0)
|
|
258
|
-
clg_part_load_ratio.setMinimumValueofx(0.0)
|
|
259
|
-
clg_part_load_ratio.setMaximumValueofx(1.0)
|
|
260
|
-
clg_part_load_ratio.setMinimumCurveOutput(0.7)
|
|
261
|
-
clg_part_load_ratio.setMaximumCurveOutput(1.0)
|
|
262
|
-
|
|
263
|
-
end
|
|
264
|
-
|
|
265
|
-
clg_coil.setTotalCoolingCapacityFunctionOfTemperatureCurve(clg_cap_f_of_temp) unless clg_cap_f_of_temp.nil?
|
|
266
|
-
clg_coil.setTotalCoolingCapacityFunctionOfFlowFractionCurve(clg_cap_f_of_flow) unless clg_cap_f_of_flow.nil?
|
|
267
|
-
clg_coil.setEnergyInputRatioFunctionOfTemperatureCurve(clg_energy_input_ratio_f_of_temp) unless clg_energy_input_ratio_f_of_temp.nil?
|
|
268
|
-
clg_coil.setEnergyInputRatioFunctionOfFlowFractionCurve(clg_energy_input_ratio_f_of_flow) unless clg_energy_input_ratio_f_of_flow.nil?
|
|
269
|
-
clg_coil.setPartLoadFractionCorrelationCurve(clg_part_load_ratio) unless clg_part_load_ratio.nil?
|
|
270
|
-
|
|
271
|
-
return clg_coil
|
|
272
|
-
end
|
|
273
|
-
end
|