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
|
@@ -298,20 +298,20 @@ class NECB2011
|
|
|
298
298
|
end
|
|
299
299
|
|
|
300
300
|
# Create an ERV
|
|
301
|
-
erv = OpenstudioStandards::HVAC.
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
301
|
+
erv = OpenstudioStandards::HVAC.create_heat_exchanger_air_to_air_sensible_and_latent(air_loop_hvac.model,
|
|
302
|
+
name: "#{air_loop_hvac.name} ERV",
|
|
303
|
+
type: "Rotary",
|
|
304
|
+
economizer_lockout: true,
|
|
305
|
+
supply_air_outlet_temperature_control: true,
|
|
306
|
+
frost_control_type: 'ExhaustOnly',
|
|
307
|
+
sensible_heating_100_eff: 0.5,
|
|
308
|
+
sensible_heating_75_eff: 0.5,
|
|
309
|
+
latent_heating_100_eff: 0.5,
|
|
310
|
+
latent_heating_75_eff: 0.5,
|
|
311
|
+
sensible_cooling_100_eff: 0.5,
|
|
312
|
+
sensible_cooling_75_eff: 0.5,
|
|
313
|
+
latent_cooling_100_eff: 0.5,
|
|
314
|
+
latent_cooling_75_eff: 0.5)
|
|
315
315
|
|
|
316
316
|
erv.setThresholdTemperature(-23.3) # -10F
|
|
317
317
|
erv.setInitialDefrostTimeFraction(0.167)
|
|
@@ -546,7 +546,7 @@ class NECB2011
|
|
|
546
546
|
fluid_type = search_criteria['fluid_type']
|
|
547
547
|
|
|
548
548
|
# Get the capacity
|
|
549
|
-
capacity_w =
|
|
549
|
+
capacity_w = OpenstudioStandards::HVAC.boiler_hot_water_get_capacity(boiler_hot_water)
|
|
550
550
|
|
|
551
551
|
boiler_capacity = capacity_w
|
|
552
552
|
# Use the NECB capacities if the SystemFuels class is not defined (i.e. this method was not called from something
|
|
@@ -611,7 +611,7 @@ class NECB2011
|
|
|
611
611
|
# If specified as AFUE
|
|
612
612
|
unless blr_props['minimum_annual_fuel_utilization_efficiency'].nil?
|
|
613
613
|
min_afue = blr_props['minimum_annual_fuel_utilization_efficiency']
|
|
614
|
-
thermal_eff = afue_to_thermal_eff(min_afue)
|
|
614
|
+
thermal_eff = OpenstudioStandards::HVAC.afue_to_thermal_eff(min_afue)
|
|
615
615
|
new_comp_name = "#{boiler_hot_water.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_afue} AFUE"
|
|
616
616
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.BoilerHotWater', "For #{template}: #{boiler_hot_water.name}: #{fuel_type} #{fluid_type} Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; AFUE = #{min_afue}")
|
|
617
617
|
end
|
|
@@ -626,7 +626,7 @@ class NECB2011
|
|
|
626
626
|
# If specified as combustion efficiency
|
|
627
627
|
unless blr_props['minimum_combustion_efficiency'].nil?
|
|
628
628
|
min_comb_eff = blr_props['minimum_combustion_efficiency']
|
|
629
|
-
thermal_eff = combustion_eff_to_thermal_eff(min_comb_eff)
|
|
629
|
+
thermal_eff = OpenstudioStandards::HVAC.combustion_eff_to_thermal_eff(min_comb_eff)
|
|
630
630
|
new_comp_name = "#{boiler_hot_water.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_comb_eff} Combustion Eff"
|
|
631
631
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.BoilerHotWater', "For #{template}: #{boiler_hot_water.name}: #{fuel_type} #{fluid_type} Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; Combustion Efficiency = #{min_comb_eff}")
|
|
632
632
|
end
|
|
@@ -654,7 +654,7 @@ class NECB2011
|
|
|
654
654
|
compressor_type = search_criteria['compressor_type']
|
|
655
655
|
|
|
656
656
|
# Get the chiller capacity
|
|
657
|
-
capacity_w =
|
|
657
|
+
capacity_w = OpenstudioStandards::HVAC.chiller_electric_get_capacity(chiller_electric_eir)
|
|
658
658
|
|
|
659
659
|
# All chillers must be modulating down to 25% of their capacity
|
|
660
660
|
chiller_electric_eir.setChillerFlowMode('LeavingSetpointModulated')
|
|
@@ -737,7 +737,7 @@ class NECB2011
|
|
|
737
737
|
cop = nil
|
|
738
738
|
if chlr_props['minimum_full_load_efficiency']
|
|
739
739
|
kw_per_ton = chlr_props['minimum_full_load_efficiency']
|
|
740
|
-
cop = kw_per_ton_to_cop(kw_per_ton)
|
|
740
|
+
cop = OpenstudioStandards::HVAC.kw_per_ton_to_cop(kw_per_ton)
|
|
741
741
|
chiller_electric_eir.setReferenceCOP(cop)
|
|
742
742
|
else
|
|
743
743
|
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.ChillerElectricEIR', "For #{chiller_electric_eir.name}, cannot find minimum full load efficiency, will not be set.")
|
|
@@ -786,32 +786,13 @@ class NECB2011
|
|
|
786
786
|
return search_criteria
|
|
787
787
|
end
|
|
788
788
|
|
|
789
|
-
# find furnace capacity
|
|
790
|
-
#
|
|
791
|
-
# @return [Hash] used for standards_lookup_table(model)
|
|
792
|
-
def coil_heating_gas_find_capacity(coil_heating_gas)
|
|
793
|
-
# Get the coil capacity
|
|
794
|
-
capacity_w = nil
|
|
795
|
-
if coil_heating_gas.nominalCapacity.is_initialized
|
|
796
|
-
capacity_w = coil_heating_gas.nominalCapacity.get
|
|
797
|
-
elsif coil_heating_gas.autosizedNominalCapacity.is_initialized
|
|
798
|
-
capacity_w = coil_heating_gas.autosizedNominalCapacity.get
|
|
799
|
-
else
|
|
800
|
-
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilHeatingGas', "For #{coil_heating_gas.name} capacity is not available, cannot apply efficiency standard.")
|
|
801
|
-
successfully_set_all_properties = false
|
|
802
|
-
return successfully_set_all_properties
|
|
803
|
-
end
|
|
804
|
-
|
|
805
|
-
return capacity_w
|
|
806
|
-
end
|
|
807
|
-
|
|
808
789
|
# Finds lookup object in standards and return minimum thermal efficiency
|
|
809
790
|
#
|
|
810
791
|
# @return [Double] minimum thermal efficiency
|
|
811
792
|
def coil_heating_gas_standard_minimum_thermal_efficiency(coil_heating_gas, rename = false)
|
|
812
793
|
# Get the coil properties
|
|
813
794
|
search_criteria = coil_heating_gas_find_search_criteria
|
|
814
|
-
capacity_w =
|
|
795
|
+
capacity_w = OpenstudioStandards::HVAC.coil_heating_gas_get_capacity(coil_heating_gas)
|
|
815
796
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
816
797
|
capacity_kbtu_per_hr = OpenStudio.convert(capacity_w, 'W', 'kBtu/hr').get
|
|
817
798
|
|
|
@@ -834,7 +815,7 @@ class NECB2011
|
|
|
834
815
|
# If specified as AFUE
|
|
835
816
|
unless coil_props['minimum_annual_fuel_utilization_efficiency'].nil?
|
|
836
817
|
min_afue = coil_props['minimum_annual_fuel_utilization_efficiency']
|
|
837
|
-
thermal_eff = afue_to_thermal_eff(min_afue)
|
|
818
|
+
thermal_eff = OpenstudioStandards::HVAC.afue_to_thermal_eff(min_afue)
|
|
838
819
|
new_comp_name = "#{coil_heating_gas.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_afue} AFUE"
|
|
839
820
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingGas', "For #{template}: #{coil_heating_gas.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; AFUE = #{min_afue}")
|
|
840
821
|
end
|
|
@@ -849,7 +830,7 @@ class NECB2011
|
|
|
849
830
|
# If specified as combustion efficiency
|
|
850
831
|
unless coil_props['minimum_combustion_efficiency'].nil?
|
|
851
832
|
min_comb_eff = coil_props['minimum_combustion_efficiency']
|
|
852
|
-
thermal_eff = combustion_eff_to_thermal_eff(min_comb_eff)
|
|
833
|
+
thermal_eff = OpenstudioStandards::HVAC.combustion_eff_to_thermal_eff(min_comb_eff)
|
|
853
834
|
new_comp_name = "#{coil_heating_gas.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_comb_eff} Combustion Eff"
|
|
854
835
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingGas', "For #{template}: #{coil_heating_gas.name}: Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; Combustion Efficiency = #{min_comb_eff}")
|
|
855
836
|
end
|
|
@@ -878,7 +859,7 @@ class NECB2011
|
|
|
878
859
|
search_criteria = coil_heating_gas_find_search_criteria
|
|
879
860
|
|
|
880
861
|
# Get the coil capacity
|
|
881
|
-
capacity_w =
|
|
862
|
+
capacity_w = OpenstudioStandards::HVAC.coil_heating_gas_get_capacity(coil_heating_gas)
|
|
882
863
|
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get
|
|
883
864
|
|
|
884
865
|
# lookup properties
|
|
@@ -920,7 +901,7 @@ class NECB2011
|
|
|
920
901
|
|
|
921
902
|
# Define the criteria to find the properties in the hvac standards data set
|
|
922
903
|
search_criteria = coil_dx_find_search_criteria(coil_cooling_dx_multi_speed)
|
|
923
|
-
capacity_w =
|
|
904
|
+
capacity_w = OpenstudioStandards::HVAC.coil_cooling_dx_multi_speed_get_capacity(coil_cooling_dx_multi_speed)
|
|
924
905
|
|
|
925
906
|
# Find design outside air flow rate and flow fraction
|
|
926
907
|
controller_oa = nil
|
|
@@ -1010,7 +991,7 @@ class NECB2011
|
|
|
1010
991
|
|
|
1011
992
|
# Lookup efficiencies depending on whether it is a unitary AC or a heat pump
|
|
1012
993
|
ac_props = nil
|
|
1013
|
-
ac_props = if coil_dx_heat_pump?(coil_cooling_dx_multi_speed)
|
|
994
|
+
ac_props = if OpenstudioStandards::HVAC.coil_dx_heat_pump?(coil_cooling_dx_multi_speed)
|
|
1014
995
|
model_find_object(standards_data['heat_pumps'], search_criteria, capacity_btu_per_hr, Date.today)
|
|
1015
996
|
else
|
|
1016
997
|
model_find_object(standards_data['unitary_acs'], search_criteria, capacity_btu_per_hr, Date.today)
|
|
@@ -1140,7 +1121,7 @@ class NECB2011
|
|
|
1140
1121
|
# This method will seem like an error in number of args..but this is due to swig voodoo.
|
|
1141
1122
|
heat_pump_avail_sch_actuator = OpenStudio::Model::EnergyManagementSystemActuator.new(updated_heat_pump_avail_sch, 'Schedule:Constant', 'Schedule Value')
|
|
1142
1123
|
heat_pump_avail_sch_prog = OpenStudio::Model::EnergyManagementSystemProgram.new(model)
|
|
1143
|
-
heat_pump_avail_sch_prog.setName("#{ems_friendly_name(multi_speed_heat_pump.name)} Availability Schedule Program by Line")
|
|
1124
|
+
heat_pump_avail_sch_prog.setName("#{OpenstudioStandards::HVAC.ems_friendly_name(multi_speed_heat_pump.name)} Availability Schedule Program by Line")
|
|
1144
1125
|
heat_pump_avail_sch_prog_body = <<-EMS
|
|
1145
1126
|
IF #{heat_pump_avail_sch_sensor.handle} > 0.0
|
|
1146
1127
|
SET #{heat_pump_avail_sch_actuator.handle} = #{heat_pump_avail_sch_sensor.handle}
|
|
@@ -1179,7 +1160,7 @@ class NECB2011
|
|
|
1179
1160
|
# Define the criteria to find the properties in the hvac standards data set.
|
|
1180
1161
|
search_criteria = coil_heating_gas_multi_stage_find_search_criteria(coil_heating_gas_multi_stage)
|
|
1181
1162
|
fuel_type = search_criteria['fuel_type']
|
|
1182
|
-
capacity_w =
|
|
1163
|
+
capacity_w = OpenstudioStandards::HVAC.coil_heating_gas_multi_stage_get_capacity(coil_heating_gas_multi_stage)
|
|
1183
1164
|
|
|
1184
1165
|
# Find system design outside air flow rate and fraction
|
|
1185
1166
|
controller_oa = nil
|
|
@@ -1301,7 +1282,7 @@ class NECB2011
|
|
|
1301
1282
|
# If specified as AFUE
|
|
1302
1283
|
unless heater_props['minimum_annual_fuel_utilization_efficiency'].nil?
|
|
1303
1284
|
min_afue = heater_props['minimum_annual_fuel_utilization_efficiency']
|
|
1304
|
-
thermal_eff = afue_to_thermal_eff(min_afue)
|
|
1285
|
+
thermal_eff = OpenstudioStandards::HVAC.afue_to_thermal_eff(min_afue)
|
|
1305
1286
|
new_comp_name = "#{coil_heating_gas_multi_stage.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_afue} AFUE"
|
|
1306
1287
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingGasMultiStage', "For #{template}: #{coil_heating_gas_multi_stage.name}: #{fuel_type} Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; AFUE = #{min_afue}")
|
|
1307
1288
|
end
|
|
@@ -1316,7 +1297,7 @@ class NECB2011
|
|
|
1316
1297
|
# If specified as combustion efficiency
|
|
1317
1298
|
unless heater_props['minimum_combustion_efficiency'].nil?
|
|
1318
1299
|
min_comb_eff = heater_props['minimum_combustion_efficiency']
|
|
1319
|
-
thermal_eff = combustion_eff_to_thermal_eff(min_comb_eff)
|
|
1300
|
+
thermal_eff = OpenstudioStandards::HVAC.combustion_eff_to_thermal_eff(min_comb_eff)
|
|
1320
1301
|
new_comp_name = "#{coil_heating_gas_multi_stage.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_comb_eff} Combustion Eff"
|
|
1321
1302
|
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.BoilerHotWater', "For #{template}: #{coil_heating_gas_multi_stage.name}: #{fuel_type} Capacity = #{capacity_kbtu_per_hr.round}kBtu/hr; Combustion Efficiency = #{min_comb_eff}")
|
|
1322
1303
|
end
|
|
@@ -2370,104 +2351,12 @@ class NECB2011
|
|
|
2370
2351
|
airloop.setName(sys_name)
|
|
2371
2352
|
end
|
|
2372
2353
|
|
|
2373
|
-
def coil_heating_dx_single_speed_find_capacity(coil_heating_dx_single_speed, necb_reference_hp = false)
|
|
2374
|
-
# Set Rated heating capacity = 50% cooling coil capacity at -8.3 C outdoor [8.4.4.13 (2)(c)]
|
|
2375
|
-
|
|
2376
|
-
if necb_reference_hp #NECB reference heat pump rules apply
|
|
2377
|
-
# grab paired cooling coil
|
|
2378
|
-
if coil_heating_dx_single_speed.airLoopHVAC.empty?
|
|
2379
|
-
|
|
2380
|
-
if coil_heating_dx_single_speed.containingHVACComponent.is_initialized
|
|
2381
|
-
|
|
2382
|
-
containing_comp = coil_heating_dx_single_speed.containingHVACComponent.get
|
|
2383
|
-
if containing_comp.to_AirLoopHVACUnitaryHeatPumpAirToAir.is_initialized
|
|
2384
|
-
clg_coil = containing_comp.to_AirLoopHVACUnitaryHeatPumpAirToAir.get.coolingCoil
|
|
2385
|
-
elsif containing_comp.to_AirLoopHVACUnitarySystem.is_initialized
|
|
2386
|
-
unitary = containing_comp.to_AirLoopHVACUnitarySystem.get
|
|
2387
|
-
if unitary.coolingCoil.is_initialized
|
|
2388
|
-
clg_coil = unitary.coolingCoil.get
|
|
2389
|
-
end
|
|
2390
|
-
end
|
|
2391
|
-
# @todo Add other unitary systems
|
|
2392
|
-
elsif coil_heating_dx_single_speed.containingZoneHVACComponent.is_initialized
|
|
2393
|
-
containing_comp = coil_heating_dx_single_speed.containingZoneHVACComponent.get
|
|
2394
|
-
# PTHP
|
|
2395
|
-
if containing_comp.to_ZoneHVACPackagedTerminalHeatPump.is_initialized
|
|
2396
|
-
pthp = containing_comp.to_ZoneHVACPackagedTerminalHeatPump.get
|
|
2397
|
-
clg_coil = containing_comp.to_ZoneHVACPackagedTerminalHeatPump.get.coolingCoil
|
|
2398
|
-
end
|
|
2399
|
-
end
|
|
2400
|
-
elsif coil_heating_dx_single_speed.airLoopHVAC.is_initialized
|
|
2401
|
-
air_loop = coil_heating_dx_single_speed.airLoopHVAC.get
|
|
2402
|
-
# Check for the presence of any other type of cooling coil
|
|
2403
|
-
clg_types = ['OS:Coil:Cooling:DX:SingleSpeed',
|
|
2404
|
-
'OS:Coil:Cooling:DX:TwoSpeed',
|
|
2405
|
-
'OS:Coil:Cooling:DX:MultiSpeed']
|
|
2406
|
-
clg_types.each do |ct|
|
|
2407
|
-
coils = air_loop.supplyComponents(ct.to_IddObjectType)
|
|
2408
|
-
next if coils.empty?
|
|
2409
|
-
clg_coil = coils[0]
|
|
2410
|
-
puts "coils = air_loop.supplyComponents(ct.to_IddObjectType) #{}"
|
|
2411
|
-
break # Stop on first DX cooling coil found
|
|
2412
|
-
end
|
|
2413
|
-
end
|
|
2414
|
-
|
|
2415
|
-
# If cooling supplied by something other than a DX coil do not follow NECB reference HP rule; proceed as usual
|
|
2416
|
-
if clg_coil.nil?
|
|
2417
|
-
return super(coil_heating_dx_single_speed)
|
|
2418
|
-
end
|
|
2419
|
-
# Paired cooling coil parameters
|
|
2420
|
-
clg_coil = clg_coil.to_CoilCoolingDXSingleSpeed.get
|
|
2421
|
-
capacity_w = coil_cooling_dx_single_speed_find_capacity(clg_coil)
|
|
2422
|
-
indoor_wb = 19.4 #rated indoor wb
|
|
2423
|
-
outdoor_db = -8.3 # outdoor db
|
|
2424
|
-
|
|
2425
|
-
# heating capacity = capacity factor (function of temp) from biquadratic curve
|
|
2426
|
-
# with curve limits on minimum y/outdoor db (no extrapolation)
|
|
2427
|
-
cooling_cap_f_temp_curve = clg_coil.totalCoolingCapacityFunctionOfTemperatureCurve
|
|
2428
|
-
cooling_cap_f_temp_factor_min_y = cooling_cap_f_temp_curve.evaluate(indoor_wb,outdoor_db)
|
|
2429
|
-
htg_cap_w_min_y = capacity_w*0.5*cooling_cap_f_temp_factor_min_y
|
|
2430
|
-
|
|
2431
|
-
# heating capacity = capacity factor (function of temp) from biquadratic curve
|
|
2432
|
-
# without curve limits on minimum y/outdoor db (extrapolate)
|
|
2433
|
-
cooling_cap_f_temp_const = 0.867905
|
|
2434
|
-
cooling_cap_f_temp_x = 0.0142459
|
|
2435
|
-
cooling_cap_f_temp_x2 = 0.00055436
|
|
2436
|
-
cooling_cap_f_temp_y = -0.0075575
|
|
2437
|
-
cooling_cap_f_temp_y2 = 3.3e-05
|
|
2438
|
-
cooling_cap_f_temp_xy = -0.0001918
|
|
2439
|
-
cooling_cap_f_temp_factor_no_min_y = cooling_cap_f_temp_const + cooling_cap_f_temp_x*indoor_wb + cooling_cap_f_temp_x2*indoor_wb**2 +
|
|
2440
|
-
cooling_cap_f_temp_y*outdoor_db + cooling_cap_f_temp_y2*outdoor_db**2 + cooling_cap_f_temp_xy*indoor_wb*outdoor_db
|
|
2441
|
-
htg_cap_w_no_min_y = capacity_w*0.5*cooling_cap_f_temp_factor_no_min_y
|
|
2442
|
-
|
|
2443
|
-
puts "capacity_w #{capacity_w}"
|
|
2444
|
-
puts "cooling_cap_f_temp_factor_no_min_y #{cooling_cap_f_temp_factor_no_min_y}"
|
|
2445
|
-
puts "cooling_cap_f_temp_factor_min_y #{cooling_cap_f_temp_factor_min_y}"
|
|
2446
|
-
puts "htg_cap_w_no_min_y #{htg_cap_w_no_min_y}"
|
|
2447
|
-
puts "htg_cap_w_min_y #{htg_cap_w_min_y}"
|
|
2448
|
-
|
|
2449
|
-
# use actual factor from -8.3 to compute rated heating capacity unless it's < 0
|
|
2450
|
-
if cooling_cap_f_temp_factor_no_min_y>0
|
|
2451
|
-
htg_cap_w = htg_cap_w_no_min_y
|
|
2452
|
-
else
|
|
2453
|
-
htg_cap_w = htg_cap_w_min_y
|
|
2454
|
-
end
|
|
2455
|
-
|
|
2456
|
-
# Hardsize rated capacity of heating coil
|
|
2457
|
-
coil_heating_dx_single_speed.setRatedTotalHeatingCapacity(htg_cap_w)
|
|
2458
|
-
|
|
2459
|
-
return htg_cap_w
|
|
2460
|
-
else # Do not follow NECB reference HP rule; proceed as usual
|
|
2461
|
-
return super(coil_heating_dx_single_speed)
|
|
2462
|
-
end
|
|
2463
|
-
end
|
|
2464
|
-
|
|
2465
2354
|
# NECB reference heat pump system
|
|
2466
2355
|
# heating type rules need to be flexible to account for
|
|
2467
2356
|
# 1. DX htg/cooling + gas supplement htg
|
|
2468
2357
|
# 2. Potential lack of AirLoopHVACUnitaryHeatPumpAirToAir or AirLoopHVACUnitarySystem
|
|
2469
2358
|
# @param necb_reference_hp [Boolean] if true, NECB reference model rules for heat pumps will be used.
|
|
2470
|
-
def coil_dx_heating_type(coil_dx, necb_reference_hp
|
|
2359
|
+
def coil_dx_heating_type(coil_dx, necb_reference_hp: false)
|
|
2471
2360
|
supp_htg_type = nil
|
|
2472
2361
|
|
|
2473
2362
|
# If not heat pump reference case use the standard implementation.
|