Skip to content

Commit

Permalink
Merge pull request #1165 from NREL/901_2016_2019_add_ce_ay_erv
Browse files Browse the repository at this point in the history
Non-transient dwelling unit energy recovery ventilation
  • Loading branch information
lymereJ authored Sep 14, 2021
2 parents c25a083 + 29021d8 commit dabd507
Show file tree
Hide file tree
Showing 22 changed files with 3,910 additions and 388 deletions.
94 changes: 47 additions & 47 deletions data/geometry/ASHRAEMidriseApartment.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -12,10 +12,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -24,10 +24,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -36,10 +36,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -48,10 +48,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -60,10 +60,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -72,10 +72,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -84,10 +84,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -96,10 +96,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -108,10 +108,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -120,10 +120,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -132,10 +132,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -144,10 +144,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -156,10 +156,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -168,10 +168,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -180,10 +180,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -192,10 +192,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -204,10 +204,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -216,10 +216,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -228,10 +228,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -240,10 +240,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -252,10 +252,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -264,10 +264,10 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
"fan_type": "Cycling",
"cooling_type": "Single Speed DX AC",
"heating_type": "Gas",
"supplemental_heating_type": "Gas",
Expand All @@ -276,7 +276,7 @@
]
},
{
"type": "SAC",
"type": "PSZ-AC",
"operation_schedule": "ApartmentMidRise All On",
"oa_damper_schedule": "ApartmentMidRise COMPACT HVAC-ALWAYS 1",
"fan_type": "ConstantVolume",
Expand Down
3 changes: 2 additions & 1 deletion data/standards/manage_OpenStudio_Standards.rb
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ def unique_properties(sheet_name)
when 'climate_zones'
['name', 'standard']
when 'energy_recovery'
['template', 'climate_zone', 'under_8000_hours']
['template', 'climate_zone', 'under_8000_hours', 'nontransient_dwelling', 'enthalpy_recovery_ratio_design_conditions']
when 'space_types_lighting_control'
['template', 'building_type', 'space_type']
else
Expand Down Expand Up @@ -347,6 +347,7 @@ def export_spreadsheet_to_json(spreadsheet_titles, dataset_type: 'os_stds')
bool_cols << 'hx'
bool_cols << 'data_center'
bool_cols << 'under_8000_hours'
bool_cols << 'nontransient_dwelling'
bool_cols << 'u_value_includes_interior_film_coefficient'
bool_cols << 'u_value_includes_exterior_film_coefficient'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ def model_add_lights_shutoff(model)
business_sensor.setName('Business_Sensor')
business_sensor_name = business_sensor.name.to_s

zones.each do |zone|
zones.sort.each do |zone|
spaces = zone.spaces
if spaces.length != 1
puts 'warning, there are more than one spaces in the zone, need to confirm the implementation'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ def model_add_lights_shutoff(model)
business_sensor.setName('Business_Sensor')
business_sensor_name = business_sensor.name.to_s

zones.each do |zone|
zones.sort.each do |zone|
spaces = zone.spaces
if spaces.length != 1
puts 'warning, there are more than one spaces in the zone, need to confirm the implementation'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ def add_door_infiltration(climate_zone, model)

def model_update_fan_efficiency(model)
model.getFanOnOffs.sort.each do |fan_onoff|
next if fan_onoff.name.get.to_s.include?('ERV')

fan_onoff.setFanEfficiency(0.53625)
fan_onoff.setMotorEfficiency(0.825)
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,41 @@ def heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency(hea

return true
end

# Set sensible and latent effectiveness at 100 and 75 heating and cooling airflow;
# The values are calculated by using ERR, which is introduced in 90.1-2016 Addendum CE
#
# This function is only used for nontransient dwelling units (Mid-rise and High-rise Apartment)
# @param heat_exchanger_air_to_air_sensible_and_latent [OpenStudio::Model::HeatExchangerAirToAirSensibleAndLatent] heat exchanger air to air sensible and latent
# @param enthalpy_recovery_ratio [String] enthalpy recovery ratio
# @param design_conditions [String] enthalpy recovery ratio design conditions: 'heating' or 'cooling'
# @param climate_zone [String] climate zone
def heat_exchanger_air_to_air_sensible_and_latent_apply_prototype_efficiency_enthalpy_recovery_ratio(heat_exchanger_air_to_air_sensible_and_latent, enthalpy_recovery_ratio, design_conditions, climate_zone)
# Assumed to be sensible and latent at all flow
if enthalpy_recovery_ratio.nil?
full_htg_sens_eff = 0.0
full_htg_lat_eff = 0.0
part_htg_sens_eff = 0.0
part_htg_lat_eff = 0.0
full_cool_sens_eff = 0.0
full_cool_lat_eff = 0.0
part_cool_sens_eff = 0.0
part_cool_lat_eff = 0.0
else
enthalpy_recovery_ratio = enthalpy_recovery_ratio_design_to_typical_adjustment(enthalpy_recovery_ratio, climate_zone)
full_htg_sens_eff, full_htg_lat_eff, part_htg_sens_eff, part_htg_lat_eff, full_cool_sens_eff, full_cool_lat_eff, part_cool_sens_eff, part_cool_lat_eff = heat_exchanger_air_to_air_sensible_and_latent_enthalpy_recovery_ratio_to_effectiveness(enthalpy_recovery_ratio, design_conditions)
end

heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100HeatingAirFlow(full_htg_sens_eff)
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100HeatingAirFlow(full_htg_lat_eff)
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75HeatingAirFlow(part_htg_sens_eff)
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75HeatingAirFlow(part_htg_lat_eff)
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat100CoolingAirFlow(full_cool_sens_eff)
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat100CoolingAirFlow(full_cool_lat_eff)
heat_exchanger_air_to_air_sensible_and_latent.setSensibleEffectivenessat75CoolingAirFlow(part_cool_sens_eff)
heat_exchanger_air_to_air_sensible_and_latent.setLatentEffectivenessat75CoolingAirFlow(part_cool_lat_eff)

OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.HeatExchangerSensLat', "For #{heat_exchanger_air_to_air_sensible_and_latent.name}: Set sensible and latent effectiveness calculated by using ERR.")
return true
end
end
Loading

0 comments on commit dabd507

Please sign in to comment.