Class: OpenStudio::Model::ControllerOutdoorAir
- Inherits:
-
Object
- Object
- OpenStudio::Model::ControllerOutdoorAir
- Defined in:
- lib/openstudio-standards/hvac_sizing/Siz.ControllerOutdoorAir.rb
Overview
open the class to add methods to return sizing values
Instance Method Summary collapse
-
#applySizingValues ⇒ Object
Takes the values calculated by the EnergyPlus sizing routines and puts them into this object model in place of the autosized fields.
-
#autosize ⇒ Object
Sets all auto-sizeable fields to autosize.
-
#autosizedMaximumOutdoorAirFlowRate ⇒ Object
returns the autosized maximum outdoor air flow rate as an optional double.
-
#autosizedMinimumOutdoorAirFlowRate ⇒ Object
returns the autosized minimum outdoor air flow rate as an optional double EnergyPlus has a “bug” where if the system is a multizone system, the Minimum Outdoor Air Flow Rate reported in the Component Sizing summary does not include zone multipliers.
Instance Method Details
#applySizingValues ⇒ Object
Takes the values calculated by the EnergyPlus sizing routines and puts them into this object model in place of the autosized fields. Must have previously completed a run with sql output for this to work.
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/openstudio-standards/hvac_sizing/Siz.ControllerOutdoorAir.rb', line 14 def applySizingValues maximum_outdoor_air_flow_rate = self.autosizedMaximumOutdoorAirFlowRate if maximum_outdoor_air_flow_rate.is_initialized self.setMaximumOutdoorAirFlowRate(maximum_outdoor_air_flow_rate.get) end minimum_outdoor_air_flow_rate = self.autosizedMinimumOutdoorAirFlowRate if minimum_outdoor_air_flow_rate.is_initialized self.setMinimumOutdoorAirFlowRate(minimum_outdoor_air_flow_rate.get) end end |
#autosize ⇒ Object
Sets all auto-sizeable fields to autosize
6 7 8 9 |
# File 'lib/openstudio-standards/hvac_sizing/Siz.ControllerOutdoorAir.rb', line 6 def autosize self.autosizeMaximumOutdoorAirFlowRate self.autosizeMinimumOutdoorAirFlowRate end |
#autosizedMaximumOutdoorAirFlowRate ⇒ Object
returns the autosized maximum outdoor air flow rate as an optional double
29 30 31 32 33 |
# File 'lib/openstudio-standards/hvac_sizing/Siz.ControllerOutdoorAir.rb', line 29 def autosizedMaximumOutdoorAirFlowRate return self.model.getAutosizedValue(self, 'Maximum Outdoor Air Flow Rate', 'm3/s') end |
#autosizedMinimumOutdoorAirFlowRate ⇒ Object
determine what to do when the airloop has multiple zones
returns the autosized minimum outdoor air flow rate as an optional double EnergyPlus has a “bug” where if the system is a multizone system, the Minimum Outdoor Air Flow Rate reported in the Component Sizing summary does not include zone multipliers. with different multipliers
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/openstudio-standards/hvac_sizing/Siz.ControllerOutdoorAir.rb', line 41 def autosizedMinimumOutdoorAirFlowRate oa = self.model.getAutosizedValue(self, 'Minimum Outdoor Air Flow Rate', 'm3/s') # Get the airloop connected to this controller if airLoopHVACOutdoorAirSystem.empty? OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Siz.ControllerOutdoorAir', "#{name} is not connected to an airLoopHVACOutdoorAirSystem, cannot determine autosizedMinimumOutdoorAirFlowRate accuractely.") return oa end oa_sys = airLoopHVACOutdoorAirSystem.get if oa_sys.airLoop.empty? OpenStudio.logFree(OpenStudio::Warn, 'openstudio.Siz.ControllerOutdoorAir', "#{name}'s airLoopHVACOutdoorAirSystem is not assigned to an AirLoop, cannot determine autosizedMinimumOutdoorAirFlowRate accuractely.") return oa end air_loop = oa_sys.airLoop.get # If it is a multizone system, get the system multiplier # to work around the bug in EnergyPlus. if air_loop.multizone_vav_system? if oa.is_initialized oa_val = oa.get oa_val *= air_loop.system_multiplier oa = OpenStudio::OptionalDouble.new(oa_val) end end return oa end |