lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb in openstudio-standards-0.1.9 vs lib/openstudio-standards/standards/Standards.AirLoopHVAC.rb in openstudio-standards-0.1.10

- old
+ new

@@ -42,11 +42,11 @@ # @todo nightcycle control # @todo night fan shutoff def apply_standard_controls(template, climate_zone) # Energy Recovery Ventilation if energy_recovery_ventilator_required?(template, climate_zone) - apply_energy_recovery_ventilator + apply_energy_recovery_ventilator(template) end # Economizers apply_economizer_limits(template, climate_zone) apply_economizer_integration(template, climate_zone) @@ -1785,11 +1785,11 @@ # Will be a rotary-type HX # # @param (see #economizer_required?) # @return [Bool] Returns true if required, false if not. # @todo Add exception logic for systems serving parking garage, warehouse, or multifamily - def apply_energy_recovery_ventilator + def apply_energy_recovery_ventilator(template) # Get the oa system oa_system = nil if airLoopHVACOutdoorAirSystem.is_initialized oa_system = airLoopHVACOutdoorAirSystem.get else @@ -1798,18 +1798,29 @@ end # Create an ERV erv = OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent.new(model) erv.setName("#{name} ERV") - erv.setSensibleEffectivenessat100HeatingAirFlow(0.7) - erv.setLatentEffectivenessat100HeatingAirFlow(0.6) - erv.setSensibleEffectivenessat75HeatingAirFlow(0.7) - erv.setLatentEffectivenessat75HeatingAirFlow(0.6) - erv.setSensibleEffectivenessat100CoolingAirFlow(0.75) - erv.setLatentEffectivenessat100CoolingAirFlow(0.6) - erv.setSensibleEffectivenessat75CoolingAirFlow(0.75) - erv.setLatentEffectivenessat75CoolingAirFlow(0.6) + if template == 'NECB 2011' + erv.setSensibleEffectivenessat100HeatingAirFlow(0.5) + erv.setLatentEffectivenessat100HeatingAirFlow(0.5) + erv.setSensibleEffectivenessat75HeatingAirFlow(0.5) + erv.setLatentEffectivenessat75HeatingAirFlow(0.5) + erv.setSensibleEffectivenessat100CoolingAirFlow(0.5) + erv.setLatentEffectivenessat100CoolingAirFlow(0.5) + erv.setSensibleEffectivenessat75CoolingAirFlow(0.5) + erv.setLatentEffectivenessat75CoolingAirFlow(0.5) + else + erv.setSensibleEffectivenessat100HeatingAirFlow(0.7) + erv.setLatentEffectivenessat100HeatingAirFlow(0.6) + erv.setSensibleEffectivenessat75HeatingAirFlow(0.7) + erv.setLatentEffectivenessat75HeatingAirFlow(0.6) + erv.setSensibleEffectivenessat100CoolingAirFlow(0.75) + erv.setLatentEffectivenessat100CoolingAirFlow(0.6) + erv.setSensibleEffectivenessat75CoolingAirFlow(0.75) + erv.setLatentEffectivenessat75CoolingAirFlow(0.6) + end erv.setSupplyAirOutletTemperatureControl(true) erv.setHeatExchangerType('Rotary') erv.setFrostControlType('ExhaustOnly') erv.setEconomizerLockout(true) erv.setThresholdTemperature(-23.3) # -10F @@ -2597,12 +2608,12 @@ # @return [Bool] Returns true if successful, false if not # @todo see if this impacts the sizing run. def apply_vav_damper_action(template) damper_action = nil case template - when 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', '90.1-2004', 'NECB 2011' + when 'DOE Ref Pre-1980', 'DOE Ref 1980-2004', '90.1-2004' damper_action = 'Single Maximum' - when '90.1-2007', '90.1-2010', '90.1-2013' + when '90.1-2007', '90.1-2010', '90.1-2013', 'NECB 2011' damper_action = 'Dual Maximum' end # Interpret this as an EnergyPlus input damper_action_eplus = nil