Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Non-transient dwelling unit energy recovery ventilation #1165

Merged
merged 15 commits into from
Sep 14, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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