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,159 +0,0 @@
|
|
|
1
|
-
class Standard
|
|
2
|
-
# @!group CoilCoolingDXTwoSpeed
|
|
3
|
-
|
|
4
|
-
# Prototype CoilCoolingDXTwoSpeed 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 two speed DX coil to reference the correct curve set
|
|
12
|
-
# @return [OpenStudio::Model::CoilCoolingDXTwoSpeed] the DX cooling coil
|
|
13
|
-
def create_coil_cooling_dx_two_speed(model,
|
|
14
|
-
air_loop_node: nil,
|
|
15
|
-
name: '2spd DX Clg Coil',
|
|
16
|
-
schedule: nil,
|
|
17
|
-
type: nil)
|
|
18
|
-
|
|
19
|
-
clg_coil = OpenStudio::Model::CoilCoolingDXTwoSpeed.new(model)
|
|
20
|
-
|
|
21
|
-
# add to air loop if specified
|
|
22
|
-
clg_coil.addToNode(air_loop_node) unless air_loop_node.nil?
|
|
23
|
-
|
|
24
|
-
# set coil name
|
|
25
|
-
clg_coil.setName(name)
|
|
26
|
-
|
|
27
|
-
# set coil availability schedule
|
|
28
|
-
if schedule.nil?
|
|
29
|
-
# default always on
|
|
30
|
-
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
|
31
|
-
elsif schedule.instance_of?(String)
|
|
32
|
-
coil_availability_schedule = model_add_schedule(model, schedule)
|
|
33
|
-
|
|
34
|
-
if coil_availability_schedule.nil? && schedule == 'alwaysOffDiscreteSchedule'
|
|
35
|
-
coil_availability_schedule = model.alwaysOffDiscreteSchedule
|
|
36
|
-
elsif coil_availability_schedule.nil?
|
|
37
|
-
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
|
38
|
-
end
|
|
39
|
-
elsif !schedule.to_Schedule.empty?
|
|
40
|
-
coil_availability_schedule = schedule
|
|
41
|
-
end
|
|
42
|
-
clg_coil.setAvailabilitySchedule(coil_availability_schedule)
|
|
43
|
-
|
|
44
|
-
clg_cap_f_of_temp = nil
|
|
45
|
-
clg_cap_f_of_flow = nil
|
|
46
|
-
clg_energy_input_ratio_f_of_temp = nil
|
|
47
|
-
clg_energy_input_ratio_f_of_flow = nil
|
|
48
|
-
clg_part_load_ratio = nil
|
|
49
|
-
clg_cap_f_of_temp_low_spd = nil
|
|
50
|
-
clg_energy_input_ratio_f_of_temp_low_spd = nil
|
|
51
|
-
|
|
52
|
-
# curve sets
|
|
53
|
-
if type == 'OS default'
|
|
54
|
-
# use OS defaults
|
|
55
|
-
elsif type == 'Residential Minisplit HP'
|
|
56
|
-
# Performance curves
|
|
57
|
-
# These coefficients are in SI units
|
|
58
|
-
cool_cap_ft_coeffs_si = [0.7531983499655835, 0.003618193903031667, 0.0, 0.006574385031351544, -6.87181191015432e-05, 0.0]
|
|
59
|
-
cool_eir_ft_coeffs_si = [-0.06376924779982301, -0.0013360593470367282, 1.413060577993827e-05, 0.019433076486584752, -4.91395947154321e-05, -4.909341249475308e-05]
|
|
60
|
-
cool_cap_fflow_coeffs = [1, 0, 0]
|
|
61
|
-
cool_eir_fflow_coeffs = [1, 0, 0]
|
|
62
|
-
cool_plf_fplr_coeffs = [0.89, 0.11, 0]
|
|
63
|
-
|
|
64
|
-
# Make the curves
|
|
65
|
-
clg_cap_f_of_temp = create_curve_biquadratic(model, cool_cap_ft_coeffs_si, 'Cool-Cap-fT', 0, 100, 0, 100, nil, nil)
|
|
66
|
-
clg_cap_f_of_flow = create_curve_quadratic(model, cool_cap_fflow_coeffs, 'Cool-Cap-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
67
|
-
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)
|
|
68
|
-
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)
|
|
69
|
-
clg_part_load_ratio = create_curve_quadratic(model, cool_plf_fplr_coeffs, 'Cool-PLF-fPLR', 0, 1, 0, 1, is_dimensionless = true)
|
|
70
|
-
clg_cap_f_of_temp_low_spd = create_curve_biquadratic(model, cool_cap_ft_coeffs_si, 'Cool-Cap-fT', 0, 100, 0, 100, nil, nil)
|
|
71
|
-
clg_energy_input_ratio_f_of_temp_low_spd = create_curve_biquadratic(model, cool_eir_ft_coeffs_si, 'Cool-EIR-fT', 0, 100, 0, 100, nil, nil)
|
|
72
|
-
clg_coil.setRatedLowSpeedSensibleHeatRatio(0.73)
|
|
73
|
-
clg_coil.setCondenserType('AirCooled')
|
|
74
|
-
else # default curve set, type == 'PSZ-AC' || 'Split AC' || 'PTAC'
|
|
75
|
-
clg_cap_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
76
|
-
clg_cap_f_of_temp.setCoefficient1Constant(0.42415)
|
|
77
|
-
clg_cap_f_of_temp.setCoefficient2x(0.04426)
|
|
78
|
-
clg_cap_f_of_temp.setCoefficient3xPOW2(-0.00042)
|
|
79
|
-
clg_cap_f_of_temp.setCoefficient4y(0.00333)
|
|
80
|
-
clg_cap_f_of_temp.setCoefficient5yPOW2(-0.00008)
|
|
81
|
-
clg_cap_f_of_temp.setCoefficient6xTIMESY(-0.00021)
|
|
82
|
-
clg_cap_f_of_temp.setMinimumValueofx(17.0)
|
|
83
|
-
clg_cap_f_of_temp.setMaximumValueofx(22.0)
|
|
84
|
-
clg_cap_f_of_temp.setMinimumValueofy(13.0)
|
|
85
|
-
clg_cap_f_of_temp.setMaximumValueofy(46.0)
|
|
86
|
-
|
|
87
|
-
clg_cap_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
|
88
|
-
clg_cap_f_of_flow.setCoefficient1Constant(0.77136)
|
|
89
|
-
clg_cap_f_of_flow.setCoefficient2x(0.34053)
|
|
90
|
-
clg_cap_f_of_flow.setCoefficient3xPOW2(-0.11088)
|
|
91
|
-
clg_cap_f_of_flow.setMinimumValueofx(0.75918)
|
|
92
|
-
clg_cap_f_of_flow.setMaximumValueofx(1.13877)
|
|
93
|
-
|
|
94
|
-
clg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
95
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient1Constant(1.23649)
|
|
96
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient2x(-0.02431)
|
|
97
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient3xPOW2(0.00057)
|
|
98
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient4y(-0.01434)
|
|
99
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient5yPOW2(0.00063)
|
|
100
|
-
clg_energy_input_ratio_f_of_temp.setCoefficient6xTIMESY(-0.00038)
|
|
101
|
-
clg_energy_input_ratio_f_of_temp.setMinimumValueofx(17.0)
|
|
102
|
-
clg_energy_input_ratio_f_of_temp.setMaximumValueofx(22.0)
|
|
103
|
-
clg_energy_input_ratio_f_of_temp.setMinimumValueofy(13.0)
|
|
104
|
-
clg_energy_input_ratio_f_of_temp.setMaximumValueofy(46.0)
|
|
105
|
-
|
|
106
|
-
clg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
|
107
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.20550)
|
|
108
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient2x(-0.32953)
|
|
109
|
-
clg_energy_input_ratio_f_of_flow.setCoefficient3xPOW2(0.12308)
|
|
110
|
-
clg_energy_input_ratio_f_of_flow.setMinimumValueofx(0.75918)
|
|
111
|
-
clg_energy_input_ratio_f_of_flow.setMaximumValueofx(1.13877)
|
|
112
|
-
|
|
113
|
-
clg_part_load_ratio = OpenStudio::Model::CurveQuadratic.new(model)
|
|
114
|
-
clg_part_load_ratio.setCoefficient1Constant(0.77100)
|
|
115
|
-
clg_part_load_ratio.setCoefficient2x(0.22900)
|
|
116
|
-
clg_part_load_ratio.setCoefficient3xPOW2(0.0)
|
|
117
|
-
clg_part_load_ratio.setMinimumValueofx(0.0)
|
|
118
|
-
clg_part_load_ratio.setMaximumValueofx(1.0)
|
|
119
|
-
|
|
120
|
-
clg_cap_f_of_temp_low_spd = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
121
|
-
clg_cap_f_of_temp_low_spd.setCoefficient1Constant(0.42415)
|
|
122
|
-
clg_cap_f_of_temp_low_spd.setCoefficient2x(0.04426)
|
|
123
|
-
clg_cap_f_of_temp_low_spd.setCoefficient3xPOW2(-0.00042)
|
|
124
|
-
clg_cap_f_of_temp_low_spd.setCoefficient4y(0.00333)
|
|
125
|
-
clg_cap_f_of_temp_low_spd.setCoefficient5yPOW2(-0.00008)
|
|
126
|
-
clg_cap_f_of_temp_low_spd.setCoefficient6xTIMESY(-0.00021)
|
|
127
|
-
clg_cap_f_of_temp_low_spd.setMinimumValueofx(17.0)
|
|
128
|
-
clg_cap_f_of_temp_low_spd.setMaximumValueofx(22.0)
|
|
129
|
-
clg_cap_f_of_temp_low_spd.setMinimumValueofy(13.0)
|
|
130
|
-
clg_cap_f_of_temp_low_spd.setMaximumValueofy(46.0)
|
|
131
|
-
|
|
132
|
-
clg_energy_input_ratio_f_of_temp_low_spd = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
133
|
-
clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient1Constant(1.23649)
|
|
134
|
-
clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient2x(-0.02431)
|
|
135
|
-
clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient3xPOW2(0.00057)
|
|
136
|
-
clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient4y(-0.01434)
|
|
137
|
-
clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient5yPOW2(0.00063)
|
|
138
|
-
clg_energy_input_ratio_f_of_temp_low_spd.setCoefficient6xTIMESY(-0.00038)
|
|
139
|
-
clg_energy_input_ratio_f_of_temp_low_spd.setMinimumValueofx(17.0)
|
|
140
|
-
clg_energy_input_ratio_f_of_temp_low_spd.setMaximumValueofx(22.0)
|
|
141
|
-
clg_energy_input_ratio_f_of_temp_low_spd.setMinimumValueofy(13.0)
|
|
142
|
-
clg_energy_input_ratio_f_of_temp_low_spd.setMaximumValueofy(46.0)
|
|
143
|
-
|
|
144
|
-
clg_coil.setRatedLowSpeedSensibleHeatRatio(OpenStudio::OptionalDouble.new(0.69))
|
|
145
|
-
clg_coil.setBasinHeaterCapacity(10)
|
|
146
|
-
clg_coil.setBasinHeaterSetpointTemperature(2.0)
|
|
147
|
-
end
|
|
148
|
-
|
|
149
|
-
clg_coil.setTotalCoolingCapacityFunctionOfTemperatureCurve(clg_cap_f_of_temp) unless clg_cap_f_of_temp.nil?
|
|
150
|
-
clg_coil.setTotalCoolingCapacityFunctionOfFlowFractionCurve(clg_cap_f_of_flow) unless clg_cap_f_of_flow.nil?
|
|
151
|
-
clg_coil.setEnergyInputRatioFunctionOfTemperatureCurve(clg_energy_input_ratio_f_of_temp) unless clg_energy_input_ratio_f_of_temp.nil?
|
|
152
|
-
clg_coil.setEnergyInputRatioFunctionOfFlowFractionCurve(clg_energy_input_ratio_f_of_flow) unless clg_energy_input_ratio_f_of_flow.nil?
|
|
153
|
-
clg_coil.setPartLoadFractionCorrelationCurve(clg_part_load_ratio) unless clg_part_load_ratio.nil?
|
|
154
|
-
clg_coil.setLowSpeedTotalCoolingCapacityFunctionOfTemperatureCurve(clg_cap_f_of_temp_low_spd) unless clg_cap_f_of_temp_low_spd.nil?
|
|
155
|
-
clg_coil.setLowSpeedEnergyInputRatioFunctionOfTemperatureCurve(clg_energy_input_ratio_f_of_temp_low_spd) unless clg_energy_input_ratio_f_of_temp_low_spd.nil?
|
|
156
|
-
|
|
157
|
-
return clg_coil
|
|
158
|
-
end
|
|
159
|
-
end
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
class Standard
|
|
2
|
-
# @!group CoilCoolingWater
|
|
3
|
-
|
|
4
|
-
# Prototype CoilCoolingWater object
|
|
5
|
-
#
|
|
6
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
7
|
-
# @param chilled_water_loop [<OpenStudio::Model::PlantLoop>] the coil will be placed on the demand side of this plant loop
|
|
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 coil, 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 design_inlet_water_temperature [Double] design inlet water temperature in degrees Celsius, default is nil
|
|
12
|
-
# @param design_inlet_air_temperature [Double] design inlet air temperature in degrees Celsius, default is nil
|
|
13
|
-
# @param design_outlet_air_temperature [Double] design outlet air temperature in degrees Celsius, default is nil
|
|
14
|
-
# @return [OpenStudio::Model::CoilCoolingWater] the cooling coil
|
|
15
|
-
def create_coil_cooling_water(model,
|
|
16
|
-
chilled_water_loop,
|
|
17
|
-
air_loop_node: nil,
|
|
18
|
-
name: 'Clg Coil',
|
|
19
|
-
schedule: nil,
|
|
20
|
-
design_inlet_water_temperature: nil,
|
|
21
|
-
design_inlet_air_temperature: nil,
|
|
22
|
-
design_outlet_air_temperature: nil)
|
|
23
|
-
|
|
24
|
-
clg_coil = OpenStudio::Model::CoilCoolingWater.new(model)
|
|
25
|
-
|
|
26
|
-
# add to chilled water loop
|
|
27
|
-
chilled_water_loop.addDemandBranchForComponent(clg_coil)
|
|
28
|
-
|
|
29
|
-
# add to air loop if specified
|
|
30
|
-
clg_coil.addToNode(air_loop_node) unless air_loop_node.nil?
|
|
31
|
-
|
|
32
|
-
# set coil name
|
|
33
|
-
if name.nil?
|
|
34
|
-
clg_coil.setName('Clg Coil')
|
|
35
|
-
else
|
|
36
|
-
clg_coil.setName(name)
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
# set coil availability schedule
|
|
40
|
-
if schedule.nil?
|
|
41
|
-
# default always on
|
|
42
|
-
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
|
43
|
-
elsif schedule.instance_of?(String)
|
|
44
|
-
coil_availability_schedule = model_add_schedule(model, schedule)
|
|
45
|
-
|
|
46
|
-
if coil_availability_schedule.nil? && schedule == 'alwaysOffDiscreteSchedule'
|
|
47
|
-
coil_availability_schedule = model.alwaysOffDiscreteSchedule
|
|
48
|
-
elsif coil_availability_schedule.nil?
|
|
49
|
-
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
|
50
|
-
end
|
|
51
|
-
elsif !schedule.to_Schedule.empty?
|
|
52
|
-
coil_availability_schedule = schedule
|
|
53
|
-
end
|
|
54
|
-
clg_coil.setAvailabilitySchedule(coil_availability_schedule)
|
|
55
|
-
|
|
56
|
-
# rated temperatures
|
|
57
|
-
if design_inlet_water_temperature.nil?
|
|
58
|
-
clg_coil.autosizeDesignInletWaterTemperature
|
|
59
|
-
else
|
|
60
|
-
clg_coil.setDesignInletWaterTemperature(design_inlet_water_temperature)
|
|
61
|
-
end
|
|
62
|
-
clg_coil.setDesignInletAirTemperature(design_inlet_air_temperature) unless design_inlet_air_temperature.nil?
|
|
63
|
-
clg_coil.setDesignOutletAirTemperature(design_outlet_air_temperature) unless design_outlet_air_temperature.nil?
|
|
64
|
-
|
|
65
|
-
# defaults
|
|
66
|
-
clg_coil.setHeatExchangerConfiguration('CrossFlow')
|
|
67
|
-
|
|
68
|
-
# coil controller properties
|
|
69
|
-
# @note These inputs will get overwritten if addToNode or addDemandBranchForComponent is called on the htg_coil object after this
|
|
70
|
-
clg_coil_controller = clg_coil.controllerWaterCoil.get
|
|
71
|
-
clg_coil_controller.setName("#{clg_coil.name} Controller")
|
|
72
|
-
clg_coil_controller.setAction('Reverse')
|
|
73
|
-
clg_coil_controller.setMinimumActuatedFlow(0.0)
|
|
74
|
-
|
|
75
|
-
return clg_coil
|
|
76
|
-
end
|
|
77
|
-
end
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
class Standard
|
|
2
|
-
# @!group CoilCoolingWaterToAirHeatPumpEquationFit
|
|
3
|
-
|
|
4
|
-
# Prototype CoilCoolingWaterToAirHeatPumpEquationFit object
|
|
5
|
-
# Enters in default curves for coil by type of coil
|
|
6
|
-
#
|
|
7
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
8
|
-
# @param plant_loop [<OpenStudio::Model::PlantLoop>] the coil will be placed on the demand side of this plant loop
|
|
9
|
-
# @param air_loop_node [<OpenStudio::Model::Node>] the coil will be placed on this node of the air loop
|
|
10
|
-
# @param name [String] the name of the system, or nil in which case it will be defaulted
|
|
11
|
-
# @param type [String] the type of coil to reference the correct curve set
|
|
12
|
-
# @param cop [Double] rated cooling coefficient of performance
|
|
13
|
-
# @return [OpenStudio::Model::CoilCoolingWaterToAirHeatPumpEquationFit] the cooling coil
|
|
14
|
-
def create_coil_cooling_water_to_air_heat_pump_equation_fit(model,
|
|
15
|
-
plant_loop,
|
|
16
|
-
air_loop_node: nil,
|
|
17
|
-
name: 'Water-to-Air HP Clg Coil',
|
|
18
|
-
type: nil,
|
|
19
|
-
cop: 3.4)
|
|
20
|
-
|
|
21
|
-
clg_coil = OpenStudio::Model::CoilCoolingWaterToAirHeatPumpEquationFit.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
|
-
# add to plant loop
|
|
30
|
-
if plant_loop.nil?
|
|
31
|
-
OpenStudio.logFree(OpenStudio::Error, 'openstudio.model.Model', 'No plant loop supplied for cooling coil')
|
|
32
|
-
return false
|
|
33
|
-
end
|
|
34
|
-
plant_loop.addDemandBranchForComponent(clg_coil)
|
|
35
|
-
|
|
36
|
-
# set coil cop
|
|
37
|
-
if cop.nil?
|
|
38
|
-
clg_coil.setRatedCoolingCoefficientofPerformance(3.4)
|
|
39
|
-
else
|
|
40
|
-
clg_coil.setRatedCoolingCoefficientofPerformance(cop)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# curve sets
|
|
44
|
-
if type == 'OS default'
|
|
45
|
-
# use OS default curves
|
|
46
|
-
else # default curve set
|
|
47
|
-
if model.version < OpenStudio::VersionString.new('3.2.0')
|
|
48
|
-
clg_coil.setTotalCoolingCapacityCoefficient1(-4.30266987344639)
|
|
49
|
-
clg_coil.setTotalCoolingCapacityCoefficient2(7.18536990534372)
|
|
50
|
-
clg_coil.setTotalCoolingCapacityCoefficient3(-2.23946714486189)
|
|
51
|
-
clg_coil.setTotalCoolingCapacityCoefficient4(0.139995928440879)
|
|
52
|
-
clg_coil.setTotalCoolingCapacityCoefficient5(0.102660179888915)
|
|
53
|
-
clg_coil.setSensibleCoolingCapacityCoefficient1(6.0019444814887)
|
|
54
|
-
clg_coil.setSensibleCoolingCapacityCoefficient2(22.6300677244073)
|
|
55
|
-
clg_coil.setSensibleCoolingCapacityCoefficient3(-26.7960783730934)
|
|
56
|
-
clg_coil.setSensibleCoolingCapacityCoefficient4(-1.72374720346819)
|
|
57
|
-
clg_coil.setSensibleCoolingCapacityCoefficient5(0.490644802367817)
|
|
58
|
-
clg_coil.setSensibleCoolingCapacityCoefficient6(0.0693119353468141)
|
|
59
|
-
clg_coil.setCoolingPowerConsumptionCoefficient1(-5.67775976415698)
|
|
60
|
-
clg_coil.setCoolingPowerConsumptionCoefficient2(0.438988156976704)
|
|
61
|
-
clg_coil.setCoolingPowerConsumptionCoefficient3(5.845277342193)
|
|
62
|
-
clg_coil.setCoolingPowerConsumptionCoefficient4(0.141605667000125)
|
|
63
|
-
clg_coil.setCoolingPowerConsumptionCoefficient5(-0.168727936032429)
|
|
64
|
-
else
|
|
65
|
-
if model.getCurveByName('Water to Air Heat Pump Total Cooling Capacity Curve').is_initialized
|
|
66
|
-
total_cooling_capacity_curve = model.getCurveByName('Water to Air Heat Pump Total Cooling Capacity Curve').get
|
|
67
|
-
total_cooling_capacity_curve = total_cooling_capacity_curve.to_CurveQuadLinear.get
|
|
68
|
-
else
|
|
69
|
-
total_cooling_capacity_curve = OpenStudio::Model::CurveQuadLinear.new(model)
|
|
70
|
-
total_cooling_capacity_curve.setName('Water to Air Heat Pump Total Cooling Capacity Curve')
|
|
71
|
-
total_cooling_capacity_curve.setCoefficient1Constant(-4.30266987344639)
|
|
72
|
-
total_cooling_capacity_curve.setCoefficient2w(7.18536990534372)
|
|
73
|
-
total_cooling_capacity_curve.setCoefficient3x(-2.23946714486189)
|
|
74
|
-
total_cooling_capacity_curve.setCoefficient4y(0.139995928440879)
|
|
75
|
-
total_cooling_capacity_curve.setCoefficient5z(0.102660179888915)
|
|
76
|
-
total_cooling_capacity_curve.setMinimumValueofw(-100)
|
|
77
|
-
total_cooling_capacity_curve.setMaximumValueofw(100)
|
|
78
|
-
total_cooling_capacity_curve.setMinimumValueofx(-100)
|
|
79
|
-
total_cooling_capacity_curve.setMaximumValueofx(100)
|
|
80
|
-
total_cooling_capacity_curve.setMinimumValueofy(0)
|
|
81
|
-
total_cooling_capacity_curve.setMaximumValueofy(100)
|
|
82
|
-
total_cooling_capacity_curve.setMinimumValueofz(0)
|
|
83
|
-
total_cooling_capacity_curve.setMaximumValueofz(100)
|
|
84
|
-
end
|
|
85
|
-
clg_coil.setTotalCoolingCapacityCurve(total_cooling_capacity_curve)
|
|
86
|
-
|
|
87
|
-
if model.getCurveByName('Water to Air Heat Pump Sensible Cooling Capacity Curve').is_initialized
|
|
88
|
-
sensible_cooling_capacity_curve = model.getCurveByName('Water to Air Heat Pump Sensible Cooling Capacity Curve').get
|
|
89
|
-
sensible_cooling_capacity_curve = sensible_cooling_capacity_curve.to_CurveQuintLinear.get
|
|
90
|
-
else
|
|
91
|
-
sensible_cooling_capacity_curve = OpenStudio::Model::CurveQuintLinear.new(model)
|
|
92
|
-
sensible_cooling_capacity_curve.setName('Water to Air Heat Pump Sensible Cooling Capacity Curve')
|
|
93
|
-
sensible_cooling_capacity_curve.setCoefficient1Constant(6.0019444814887)
|
|
94
|
-
sensible_cooling_capacity_curve.setCoefficient2v(22.6300677244073)
|
|
95
|
-
sensible_cooling_capacity_curve.setCoefficient3w(-26.7960783730934)
|
|
96
|
-
sensible_cooling_capacity_curve.setCoefficient4x(-1.72374720346819)
|
|
97
|
-
sensible_cooling_capacity_curve.setCoefficient5y(0.490644802367817)
|
|
98
|
-
sensible_cooling_capacity_curve.setCoefficient6z(0.0693119353468141)
|
|
99
|
-
sensible_cooling_capacity_curve.setMinimumValueofw(-100)
|
|
100
|
-
sensible_cooling_capacity_curve.setMaximumValueofw(100)
|
|
101
|
-
sensible_cooling_capacity_curve.setMinimumValueofx(-100)
|
|
102
|
-
sensible_cooling_capacity_curve.setMaximumValueofx(100)
|
|
103
|
-
sensible_cooling_capacity_curve.setMinimumValueofy(0)
|
|
104
|
-
sensible_cooling_capacity_curve.setMaximumValueofy(100)
|
|
105
|
-
sensible_cooling_capacity_curve.setMinimumValueofz(0)
|
|
106
|
-
sensible_cooling_capacity_curve.setMaximumValueofz(100)
|
|
107
|
-
end
|
|
108
|
-
clg_coil.setSensibleCoolingCapacityCurve(sensible_cooling_capacity_curve)
|
|
109
|
-
|
|
110
|
-
if model.getCurveByName('Water to Air Heat Pump Cooling Power Consumption Curve').is_initialized
|
|
111
|
-
cooling_power_consumption_curve = model.getCurveByName('Water to Air Heat Pump Cooling Power Consumption Curve').get
|
|
112
|
-
cooling_power_consumption_curve = cooling_power_consumption_curve.to_CurveQuadLinear.get
|
|
113
|
-
else
|
|
114
|
-
cooling_power_consumption_curve = OpenStudio::Model::CurveQuadLinear.new(model)
|
|
115
|
-
cooling_power_consumption_curve.setName('Water to Air Heat Pump Cooling Power Consumption Curve')
|
|
116
|
-
cooling_power_consumption_curve.setCoefficient1Constant(-5.67775976415698)
|
|
117
|
-
cooling_power_consumption_curve.setCoefficient2w(0.438988156976704)
|
|
118
|
-
cooling_power_consumption_curve.setCoefficient3x(5.845277342193)
|
|
119
|
-
cooling_power_consumption_curve.setCoefficient4y(0.141605667000125)
|
|
120
|
-
cooling_power_consumption_curve.setCoefficient5z(-0.168727936032429)
|
|
121
|
-
cooling_power_consumption_curve.setMinimumValueofw(-100)
|
|
122
|
-
cooling_power_consumption_curve.setMaximumValueofw(100)
|
|
123
|
-
cooling_power_consumption_curve.setMinimumValueofx(-100)
|
|
124
|
-
cooling_power_consumption_curve.setMaximumValueofx(100)
|
|
125
|
-
cooling_power_consumption_curve.setMinimumValueofy(0)
|
|
126
|
-
cooling_power_consumption_curve.setMaximumValueofy(100)
|
|
127
|
-
cooling_power_consumption_curve.setMinimumValueofz(0)
|
|
128
|
-
cooling_power_consumption_curve.setMaximumValueofz(100)
|
|
129
|
-
end
|
|
130
|
-
clg_coil.setCoolingPowerConsumptionCurve(cooling_power_consumption_curve)
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
# part load fraction correlation curve added as a required curve in OS v3.7.0
|
|
134
|
-
if model.version > OpenStudio::VersionString.new('3.6.1')
|
|
135
|
-
if model.getCurveByName('Water to Air Heat Pump Part Load Fraction Correlation Curve').is_initialized
|
|
136
|
-
part_load_correlation_curve = model.getCurveByName('Water to Air Heat Pump Part Load Fraction Correlation Curve').get
|
|
137
|
-
part_load_correlation_curve = part_load_correlation_curve.to_CurveLinear.get
|
|
138
|
-
else
|
|
139
|
-
part_load_correlation_curve = OpenStudio::Model::CurveLinear.new(model)
|
|
140
|
-
part_load_correlation_curve.setName('Water to Air Heat Pump Part Load Fraction Correlation Curve')
|
|
141
|
-
part_load_correlation_curve.setCoefficient1Constant(0.833746458696111)
|
|
142
|
-
part_load_correlation_curve.setCoefficient2x(0.166253541303889)
|
|
143
|
-
part_load_correlation_curve.setMinimumValueofx(0)
|
|
144
|
-
part_load_correlation_curve.setMaximumValueofx(1)
|
|
145
|
-
part_load_correlation_curve.setMinimumCurveOutput(0)
|
|
146
|
-
part_load_correlation_curve.setMaximumCurveOutput(1)
|
|
147
|
-
end
|
|
148
|
-
clg_coil.setPartLoadFractionCorrelationCurve(part_load_correlation_curve)
|
|
149
|
-
end
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
return clg_coil
|
|
153
|
-
end
|
|
154
|
-
end
|
data/lib/openstudio-standards/prototypes/common/objects/Prototype.CoilHeatingDXSingleSpeed.rb
DELETED
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
class Standard
|
|
2
|
-
# @!group CoilHeatingDXSingleSpeed
|
|
3
|
-
|
|
4
|
-
# Prototype CoilHeatingDXSingleSpeed 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 heating coefficient of performance
|
|
13
|
-
# @param defrost_strategy [String] type of defrost strategy. options are reverse-cycle or resistive
|
|
14
|
-
# @return [OpenStudio::Model::CoilHeatingDXSingleSpeed] the DX heating coil
|
|
15
|
-
def create_coil_heating_dx_single_speed(model,
|
|
16
|
-
air_loop_node: nil,
|
|
17
|
-
name: '1spd DX Htg Coil',
|
|
18
|
-
schedule: nil,
|
|
19
|
-
type: nil,
|
|
20
|
-
cop: 3.3,
|
|
21
|
-
defrost_strategy: 'ReverseCycle')
|
|
22
|
-
|
|
23
|
-
htg_coil = OpenStudio::Model::CoilHeatingDXSingleSpeed.new(model)
|
|
24
|
-
|
|
25
|
-
# add to air loop if specified
|
|
26
|
-
htg_coil.addToNode(air_loop_node) unless air_loop_node.nil?
|
|
27
|
-
|
|
28
|
-
# set coil name
|
|
29
|
-
htg_coil.setName(name)
|
|
30
|
-
|
|
31
|
-
# set coil availability schedule
|
|
32
|
-
if schedule.nil?
|
|
33
|
-
# default always on
|
|
34
|
-
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
|
35
|
-
elsif schedule.instance_of?(String)
|
|
36
|
-
coil_availability_schedule = model_add_schedule(model, schedule)
|
|
37
|
-
|
|
38
|
-
if coil_availability_schedule.nil? && schedule == 'alwaysOffDiscreteSchedule'
|
|
39
|
-
coil_availability_schedule = model.alwaysOffDiscreteSchedule
|
|
40
|
-
elsif coil_availability_schedule.nil?
|
|
41
|
-
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
|
42
|
-
end
|
|
43
|
-
elsif !schedule.to_Schedule.empty?
|
|
44
|
-
coil_availability_schedule = schedule
|
|
45
|
-
end
|
|
46
|
-
htg_coil.setAvailabilitySchedule(coil_availability_schedule)
|
|
47
|
-
|
|
48
|
-
# set coil cop
|
|
49
|
-
if cop.nil?
|
|
50
|
-
htg_coil.setRatedCOP(3.3)
|
|
51
|
-
else
|
|
52
|
-
htg_coil.setRatedCOP(cop)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
htg_cap_f_of_temp = nil
|
|
56
|
-
htg_cap_f_of_flow = nil
|
|
57
|
-
htg_energy_input_ratio_f_of_temp = nil
|
|
58
|
-
htg_energy_input_ratio_f_of_flow = nil
|
|
59
|
-
htg_part_load_fraction = nil
|
|
60
|
-
def_eir_f_of_temp = nil
|
|
61
|
-
|
|
62
|
-
# curve sets
|
|
63
|
-
case type
|
|
64
|
-
when 'OS default'
|
|
65
|
-
# use OS defaults
|
|
66
|
-
when 'Residential Central Air Source HP'
|
|
67
|
-
# Performance curves
|
|
68
|
-
# These coefficients are in IP UNITS
|
|
69
|
-
heat_cap_ft_coeffs_ip = [0.566333415, -0.000744164, -0.0000103, 0.009414634, 0.0000506, -0.00000675]
|
|
70
|
-
heat_eir_ft_coeffs_ip = [0.718398423, 0.003498178, 0.000142202, -0.005724331, 0.00014085, -0.000215321]
|
|
71
|
-
heat_cap_fflow_coeffs = [0.694045465, 0.474207981, -0.168253446]
|
|
72
|
-
heat_eir_fflow_coeffs = [2.185418751, -1.942827919, 0.757409168]
|
|
73
|
-
heat_plf_fplr_coeffs = [0.8, 0.2, 0]
|
|
74
|
-
defrost_eir_coeffs = [0.1528, 0, 0, 0, 0, 0]
|
|
75
|
-
|
|
76
|
-
# Convert coefficients from IP to SI
|
|
77
|
-
heat_cap_ft_coeffs_si = convert_curve_biquadratic(heat_cap_ft_coeffs_ip)
|
|
78
|
-
heat_eir_ft_coeffs_si = convert_curve_biquadratic(heat_eir_ft_coeffs_ip)
|
|
79
|
-
|
|
80
|
-
htg_cap_f_of_temp = create_curve_biquadratic(model, heat_cap_ft_coeffs_si, 'Heat-Cap-fT', 0, 100, 0, 100, nil, nil)
|
|
81
|
-
htg_cap_f_of_flow = create_curve_quadratic(model, heat_cap_fflow_coeffs, 'Heat-Cap-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
82
|
-
htg_energy_input_ratio_f_of_temp = create_curve_biquadratic(model, heat_eir_ft_coeffs_si, 'Heat-EIR-fT', 0, 100, 0, 100, nil, nil)
|
|
83
|
-
htg_energy_input_ratio_f_of_flow = create_curve_quadratic(model, heat_eir_fflow_coeffs, 'Heat-EIR-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
84
|
-
htg_part_load_fraction = create_curve_quadratic(model, heat_plf_fplr_coeffs, 'Heat-PLF-fPLR', 0, 1, 0, 1, is_dimensionless = true)
|
|
85
|
-
|
|
86
|
-
# Heating defrost curve for reverse cycle
|
|
87
|
-
def_eir_f_of_temp = create_curve_biquadratic(model, defrost_eir_coeffs, 'DefrostEIR', -100, 100, -100, 100, nil, nil)
|
|
88
|
-
when 'Residential Minisplit HP'
|
|
89
|
-
# Performance curves
|
|
90
|
-
# These coefficients are in SI UNITS
|
|
91
|
-
heat_cap_ft_coeffs_si = [1.14715889038462, -0.010386676170938, 0, 0.00865384615384615, 0, 0]
|
|
92
|
-
heat_eir_ft_coeffs_si = [0.9999941697687026, 0.004684593830254383, 5.901286675833333e-05, -0.0028624467783091973, 1.3041120194135802e-05, -0.00016172918478765433]
|
|
93
|
-
heat_cap_fflow_coeffs = [1, 0, 0]
|
|
94
|
-
heat_eir_fflow_coeffs = [1, 0, 0]
|
|
95
|
-
heat_plf_fplr_coeffs = [0.89, 0.11, 0]
|
|
96
|
-
defrost_eir_coeffs = [0.1528, 0, 0, 0, 0, 0]
|
|
97
|
-
|
|
98
|
-
htg_cap_f_of_temp = create_curve_biquadratic(model, heat_cap_ft_coeffs_si, 'Heat-Cap-fT', -100, 100, -100, 100, nil, nil)
|
|
99
|
-
htg_cap_f_of_flow = create_curve_quadratic(model, heat_cap_fflow_coeffs, 'Heat-Cap-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
100
|
-
htg_energy_input_ratio_f_of_temp = create_curve_biquadratic(model, heat_eir_ft_coeffs_si, 'Heat-EIR-fT', -100, 100, -100, 100, nil, nil)
|
|
101
|
-
htg_energy_input_ratio_f_of_flow = create_curve_quadratic(model, heat_eir_fflow_coeffs, 'Heat-EIR-fFF', 0, 2, 0, 2, is_dimensionless = true)
|
|
102
|
-
htg_part_load_fraction = create_curve_quadratic(model, heat_plf_fplr_coeffs, 'Heat-PLF-fPLR', 0, 1, 0.6, 1, is_dimensionless = true)
|
|
103
|
-
|
|
104
|
-
# Heating defrost curve for reverse cycle
|
|
105
|
-
def_eir_f_of_temp = create_curve_biquadratic(model, defrost_eir_coeffs, 'Defrost EIR', -100, 100, -100, 100, nil, nil)
|
|
106
|
-
else # default curve set
|
|
107
|
-
htg_cap_f_of_temp = OpenStudio::Model::CurveCubic.new(model)
|
|
108
|
-
htg_cap_f_of_temp.setName("#{htg_coil.name} Htg Cap Func of Temp Curve")
|
|
109
|
-
htg_cap_f_of_temp.setCoefficient1Constant(0.758746)
|
|
110
|
-
htg_cap_f_of_temp.setCoefficient2x(0.027626)
|
|
111
|
-
htg_cap_f_of_temp.setCoefficient3xPOW2(0.000148716)
|
|
112
|
-
htg_cap_f_of_temp.setCoefficient4xPOW3(0.0000034992)
|
|
113
|
-
htg_cap_f_of_temp.setMinimumValueofx(-20.0)
|
|
114
|
-
htg_cap_f_of_temp.setMaximumValueofx(20.0)
|
|
115
|
-
|
|
116
|
-
htg_cap_f_of_flow = OpenStudio::Model::CurveCubic.new(model)
|
|
117
|
-
htg_cap_f_of_flow.setName("#{htg_coil.name} Htg Cap Func of Flow Frac Curve")
|
|
118
|
-
htg_cap_f_of_flow.setCoefficient1Constant(0.84)
|
|
119
|
-
htg_cap_f_of_flow.setCoefficient2x(0.16)
|
|
120
|
-
htg_cap_f_of_flow.setCoefficient3xPOW2(0.0)
|
|
121
|
-
htg_cap_f_of_flow.setCoefficient4xPOW3(0.0)
|
|
122
|
-
htg_cap_f_of_flow.setMinimumValueofx(0.5)
|
|
123
|
-
htg_cap_f_of_flow.setMaximumValueofx(1.5)
|
|
124
|
-
|
|
125
|
-
htg_energy_input_ratio_f_of_temp = OpenStudio::Model::CurveCubic.new(model)
|
|
126
|
-
htg_energy_input_ratio_f_of_temp.setName("#{htg_coil.name} EIR Func of Temp Curve")
|
|
127
|
-
htg_energy_input_ratio_f_of_temp.setCoefficient1Constant(1.19248)
|
|
128
|
-
htg_energy_input_ratio_f_of_temp.setCoefficient2x(-0.0300438)
|
|
129
|
-
htg_energy_input_ratio_f_of_temp.setCoefficient3xPOW2(0.00103745)
|
|
130
|
-
htg_energy_input_ratio_f_of_temp.setCoefficient4xPOW3(-0.000023328)
|
|
131
|
-
htg_energy_input_ratio_f_of_temp.setMinimumValueofx(-20.0)
|
|
132
|
-
htg_energy_input_ratio_f_of_temp.setMaximumValueofx(20.0)
|
|
133
|
-
|
|
134
|
-
htg_energy_input_ratio_f_of_flow = OpenStudio::Model::CurveQuadratic.new(model)
|
|
135
|
-
htg_energy_input_ratio_f_of_flow.setName("#{htg_coil.name} EIR Func of Flow Frac Curve")
|
|
136
|
-
htg_energy_input_ratio_f_of_flow.setCoefficient1Constant(1.3824)
|
|
137
|
-
htg_energy_input_ratio_f_of_flow.setCoefficient2x(-0.4336)
|
|
138
|
-
htg_energy_input_ratio_f_of_flow.setCoefficient3xPOW2(0.0512)
|
|
139
|
-
htg_energy_input_ratio_f_of_flow.setMinimumValueofx(0.0)
|
|
140
|
-
htg_energy_input_ratio_f_of_flow.setMaximumValueofx(1.0)
|
|
141
|
-
|
|
142
|
-
htg_part_load_fraction = OpenStudio::Model::CurveQuadratic.new(model)
|
|
143
|
-
htg_part_load_fraction.setName("#{htg_coil.name} PLR Correlation Curve")
|
|
144
|
-
htg_part_load_fraction.setCoefficient1Constant(0.85)
|
|
145
|
-
htg_part_load_fraction.setCoefficient2x(0.15)
|
|
146
|
-
htg_part_load_fraction.setCoefficient3xPOW2(0.0)
|
|
147
|
-
htg_part_load_fraction.setMinimumValueofx(0.0)
|
|
148
|
-
htg_part_load_fraction.setMaximumValueofx(1.0)
|
|
149
|
-
|
|
150
|
-
unless defrost_strategy == 'Resistive'
|
|
151
|
-
def_eir_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
152
|
-
def_eir_f_of_temp.setName("#{htg_coil.name} Defrost EIR Func of Temp Curve")
|
|
153
|
-
def_eir_f_of_temp.setCoefficient1Constant(0.297145)
|
|
154
|
-
def_eir_f_of_temp.setCoefficient2x(0.0430933)
|
|
155
|
-
def_eir_f_of_temp.setCoefficient3xPOW2(-0.000748766)
|
|
156
|
-
def_eir_f_of_temp.setCoefficient4y(0.00597727)
|
|
157
|
-
def_eir_f_of_temp.setCoefficient5yPOW2(0.000482112)
|
|
158
|
-
def_eir_f_of_temp.setCoefficient6xTIMESY(-0.000956448)
|
|
159
|
-
def_eir_f_of_temp.setMinimumValueofx(-23.33333)
|
|
160
|
-
def_eir_f_of_temp.setMaximumValueofx(29.44444)
|
|
161
|
-
def_eir_f_of_temp.setMinimumValueofy(-23.33333)
|
|
162
|
-
def_eir_f_of_temp.setMaximumValueofy(29.44444)
|
|
163
|
-
end
|
|
164
|
-
end
|
|
165
|
-
|
|
166
|
-
if type == 'PSZ-AC'
|
|
167
|
-
htg_coil.setMinimumOutdoorDryBulbTemperatureforCompressorOperation(-12.2)
|
|
168
|
-
htg_coil.setMaximumOutdoorDryBulbTemperatureforDefrostOperation(1.67)
|
|
169
|
-
htg_coil.setCrankcaseHeaterCapacity(50.0)
|
|
170
|
-
htg_coil.setMaximumOutdoorDryBulbTemperatureforCrankcaseHeaterOperation(4.4)
|
|
171
|
-
htg_coil.setDefrostControl('OnDemand')
|
|
172
|
-
|
|
173
|
-
def_eir_f_of_temp = OpenStudio::Model::CurveBiquadratic.new(model)
|
|
174
|
-
def_eir_f_of_temp.setName("#{htg_coil.name} Defrost EIR Func of Temp Curve")
|
|
175
|
-
def_eir_f_of_temp.setCoefficient1Constant(0.297145)
|
|
176
|
-
def_eir_f_of_temp.setCoefficient2x(0.0430933)
|
|
177
|
-
def_eir_f_of_temp.setCoefficient3xPOW2(-0.000748766)
|
|
178
|
-
def_eir_f_of_temp.setCoefficient4y(0.00597727)
|
|
179
|
-
def_eir_f_of_temp.setCoefficient5yPOW2(0.000482112)
|
|
180
|
-
def_eir_f_of_temp.setCoefficient6xTIMESY(-0.000956448)
|
|
181
|
-
def_eir_f_of_temp.setMinimumValueofx(-23.33333)
|
|
182
|
-
def_eir_f_of_temp.setMaximumValueofx(29.44444)
|
|
183
|
-
def_eir_f_of_temp.setMinimumValueofy(-23.33333)
|
|
184
|
-
def_eir_f_of_temp.setMaximumValueofy(29.44444)
|
|
185
|
-
end
|
|
186
|
-
|
|
187
|
-
htg_coil.setTotalHeatingCapacityFunctionofTemperatureCurve(htg_cap_f_of_temp) unless htg_cap_f_of_temp.nil?
|
|
188
|
-
htg_coil.setTotalHeatingCapacityFunctionofFlowFractionCurve(htg_cap_f_of_flow) unless htg_cap_f_of_flow.nil?
|
|
189
|
-
htg_coil.setEnergyInputRatioFunctionofTemperatureCurve(htg_energy_input_ratio_f_of_temp) unless htg_energy_input_ratio_f_of_temp.nil?
|
|
190
|
-
htg_coil.setEnergyInputRatioFunctionofFlowFractionCurve(htg_energy_input_ratio_f_of_flow) unless htg_energy_input_ratio_f_of_flow.nil?
|
|
191
|
-
htg_coil.setPartLoadFractionCorrelationCurve(htg_part_load_fraction) unless htg_part_load_fraction.nil?
|
|
192
|
-
htg_coil.setDefrostEnergyInputRatioFunctionofTemperatureCurve(def_eir_f_of_temp) unless def_eir_f_of_temp.nil?
|
|
193
|
-
htg_coil.setDefrostStrategy(defrost_strategy)
|
|
194
|
-
htg_coil.setDefrostControl('OnDemand')
|
|
195
|
-
|
|
196
|
-
return htg_coil
|
|
197
|
-
end
|
|
198
|
-
|
|
199
|
-
# sets defrost curve limits
|
|
200
|
-
#
|
|
201
|
-
# @param htg_coil [OpenStudio::Model::CoilHeatingDXSingleSpeed] a DX heating coil
|
|
202
|
-
# @return [Boolean] returns true if successful, false if not
|
|
203
|
-
def coil_heating_dx_single_speed_apply_defrost_eir_curve_limits(htg_coil)
|
|
204
|
-
return false unless htg_coil.defrostEnergyInputRatioFunctionofTemperatureCurve.is_initialized
|
|
205
|
-
|
|
206
|
-
def_eir_f_of_temp = htg_coil.defrostEnergyInputRatioFunctionofTemperatureCurve.get.to_CurveBiquadratic.get
|
|
207
|
-
def_eir_f_of_temp.setMinimumValueofx(12.77778)
|
|
208
|
-
def_eir_f_of_temp.setMaximumValueofx(23.88889)
|
|
209
|
-
def_eir_f_of_temp.setMinimumValueofy(21.11111)
|
|
210
|
-
def_eir_f_of_temp.setMaximumValueofy(46.11111)
|
|
211
|
-
|
|
212
|
-
return true
|
|
213
|
-
end
|
|
214
|
-
end
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
class Standard
|
|
2
|
-
# @!group CoilHeatingElectric
|
|
3
|
-
|
|
4
|
-
# Prototype CoilHeatingElectric object
|
|
5
|
-
#
|
|
6
|
-
# @param model [OpenStudio::Model::Model] OpenStudio model object
|
|
7
|
-
# @param air_loop_node [<OpenStudio::Model::Node>] the coil will be placed on this node of the air loop
|
|
8
|
-
# @param name [String] the name of the system, or nil in which case it will be defaulted
|
|
9
|
-
# @param schedule [String] name of the availability schedule, or [<OpenStudio::Model::Schedule>] Schedule object, or nil in which case default to always on
|
|
10
|
-
# @param nominal_capacity [Double] rated nominal capacity
|
|
11
|
-
# @param efficiency [Double] rated heating efficiency
|
|
12
|
-
# @return [OpenStudio::Model::CoilHeatingElectric] the electric heating coil
|
|
13
|
-
def create_coil_heating_electric(model,
|
|
14
|
-
air_loop_node: nil,
|
|
15
|
-
name: 'Electric Htg Coil',
|
|
16
|
-
schedule: nil,
|
|
17
|
-
nominal_capacity: nil,
|
|
18
|
-
efficiency: 1.0)
|
|
19
|
-
|
|
20
|
-
htg_coil = OpenStudio::Model::CoilHeatingElectric.new(model)
|
|
21
|
-
|
|
22
|
-
# add to air loop if specified
|
|
23
|
-
htg_coil.addToNode(air_loop_node) unless air_loop_node.nil?
|
|
24
|
-
|
|
25
|
-
# set coil name
|
|
26
|
-
htg_coil.setName(name)
|
|
27
|
-
|
|
28
|
-
# set coil availability schedule
|
|
29
|
-
if schedule.nil?
|
|
30
|
-
# default always on
|
|
31
|
-
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
|
32
|
-
elsif schedule.instance_of?(String)
|
|
33
|
-
coil_availability_schedule = model_add_schedule(model, schedule)
|
|
34
|
-
|
|
35
|
-
if coil_availability_schedule.nil? && schedule == 'alwaysOffDiscreteSchedule'
|
|
36
|
-
coil_availability_schedule = model.alwaysOffDiscreteSchedule
|
|
37
|
-
elsif coil_availability_schedule.nil?
|
|
38
|
-
coil_availability_schedule = model.alwaysOnDiscreteSchedule
|
|
39
|
-
end
|
|
40
|
-
elsif !schedule.to_Schedule.empty?
|
|
41
|
-
coil_availability_schedule = schedule
|
|
42
|
-
end
|
|
43
|
-
htg_coil.setAvailabilitySchedule(coil_availability_schedule)
|
|
44
|
-
|
|
45
|
-
# set capacity
|
|
46
|
-
htg_coil.setNominalCapacity(nominal_capacity) unless nominal_capacity.nil?
|
|
47
|
-
|
|
48
|
-
# set efficiency
|
|
49
|
-
htg_coil.setEfficiency(efficiency) unless efficiency.nil?
|
|
50
|
-
|
|
51
|
-
return htg_coil
|
|
52
|
-
end
|
|
53
|
-
end
|