-
Notifications
You must be signed in to change notification settings - Fork 58
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
Update furnace and boiler efficiency to match values from ASHRAE 90.1-2004 through 2019 #1171
Changes from 2 commits
844cb68
1395de7
dc21459
1865c59
61a1dda
77907cf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -282,6 +282,15 @@ boilers,minimum_thermal_efficiency,% | |
boilers,minimum_combustion_efficiency,% | ||
boilers,efffplr, | ||
boilers,notes, | ||
furnaces,template, | ||
furnaces,minimum_capacity,Btu/hr | ||
furnaces,maximum_capacity,Btu/hr | ||
furnaces,start_date, | ||
furnaces,end_date, | ||
furnaces,minimum_annual_fuel_utilization_efficiency,AFUE | ||
furnaces,minimum_thermal_efficiency,% | ||
furnaces,minimum_combustion_efficiency,% | ||
furnaces,notes, | ||
Comment on lines
+285
to
+293
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added to accommodate adding standardized furnace JSONs |
||
chillers,template, | ||
chillers,cooling_type, | ||
chillers,condenser_type, | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,92 @@ | ||
class Standard | ||
# @!group CoilHeatingGas | ||
|
||
# Applies the standard efficiency ratings and typical performance curves to this object. | ||
# Applies the standard efficiency ratings to CoilHeatingGas. | ||
# | ||
# @param coil_heating_gas [OpenStudio::Model::CoilHeatingGas] the object to modify | ||
# @return [Bool] true if successful, false if not | ||
def coil_heating_gas_apply_efficiency_and_curves(coil_heating_gas) | ||
successfully_set_all_properties = true | ||
successfully_set_all_properties = false | ||
|
||
# Initialize search criteria | ||
search_criteria = {} | ||
search_criteria['template'] = template | ||
|
||
# Get the capacity, but return false if not available | ||
capacity_w = coil_heating_gas_find_capacity(coil_heating_gas) | ||
|
||
# Return false if the coil does not have a heating capacity associated with it. Cannot apply the standard if without | ||
# it. | ||
return successfully_set_all_properties if capacity_w == false | ||
|
||
# Convert capacity to Btu/hr | ||
capacity_btu_per_hr = OpenStudio.convert(capacity_w, 'W', 'Btu/hr').get | ||
capacity_kbtu_per_hr = OpenStudio.convert(capacity_w, 'W', 'kBtu/hr').get | ||
|
||
# Get the boiler properties | ||
furnace_props = model_find_object(standards_data['furnaces'], search_criteria, capacity_btu_per_hr) | ||
unless furnace_props | ||
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilHeatingGas', "For #{coil_heating_gas.name}, cannot find furnace properties with search criteria #{search_criteria}, cannot apply efficiency standard.") | ||
successfully_set_all_properties = false | ||
return successfully_set_all_properties | ||
end | ||
|
||
# Get the minimum efficiency standards | ||
thermal_eff = nil | ||
|
||
# If specified as thermal efficiency, this takes precedent | ||
if not furnace_props['minimum_thermal_efficiency'].nil? | ||
thermal_eff = furnace_props['minimum_thermal_efficiency'] | ||
new_comp_name = "#{coil_heating_gas.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{thermal_eff} Thermal Eff" | ||
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingGas', "For #{template}: #{coil_heating_gas.name}: = #{capacity_kbtu_per_hr.round}kBtu/hr; Thermal Efficiency = #{thermal_eff}") | ||
|
||
else # If not thermal efficiency, check other parameters | ||
|
||
# If specified as AFUE | ||
unless furnace_props['minimum_annual_fuel_utilization_efficiency'].nil? | ||
min_afue = furnace_props['minimum_annual_fuel_utilization_efficiency'] | ||
thermal_eff = afue_to_thermal_eff(min_afue) | ||
new_comp_name = "#{coil_heating_gas.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_afue} AFUE" | ||
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingGas', "For #{template}: #{coil_heating_gas.name}: = #{capacity_kbtu_per_hr.round}kBtu/hr; AFUE = #{min_afue}") | ||
end | ||
|
||
# If specified as combustion efficiency | ||
unless furnace_props['minimum_combustion_efficiency'].nil? | ||
min_comb_eff = furnace_props['minimum_combustion_efficiency'] | ||
thermal_eff = combustion_eff_to_thermal_eff(min_comb_eff) | ||
new_comp_name = "#{coil_heating_gas.name} #{capacity_kbtu_per_hr.round}kBtu/hr #{min_comb_eff} Combustion Eff" | ||
OpenStudio.logFree(OpenStudio::Info, 'openstudio.standards.CoilHeatingGas', "For #{template}: #{coil_heating_gas.name}: = #{capacity_kbtu_per_hr.round}kBtu/hr; Combustion Efficiency = #{min_comb_eff}") | ||
end | ||
|
||
end | ||
|
||
# Set the efficiency values | ||
unless thermal_eff.nil? | ||
|
||
# Set the name | ||
coil_heating_gas.setName(new_comp_name) | ||
coil_heating_gas.setGasBurnerEfficiency(thermal_eff) | ||
successfully_set_all_properties = true | ||
end | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Updated existing coil_heating_gas_apply_efficiency_and_curves function to actually set the thermal efficiency based on standard and capacity. Includes many checks for cases where defaults don't exist (e.g., for templates outside 90.1 2004-2019) so that the no default efficiency value is set. |
||
|
||
return successfully_set_all_properties | ||
end | ||
|
||
# Find capacity in W | ||
# | ||
# @return [Double] capacity in W | ||
def coil_heating_gas_find_capacity(coil_heating_gas) | ||
capacity_w = nil | ||
if coil_heating_gas.nominalCapacity.is_initialized | ||
capacity_w = coil_heating_gas.nominalCapacity.get | ||
elsif coil_heating_gas.autosizedNominalCapacity.is_initialized | ||
capacity_w = coil_heating_gas.autosizedNominalCapacity.get | ||
else | ||
OpenStudio.logFree(OpenStudio::Warn, 'openstudio.standards.CoilHeatingGas', "For #{coil_heating_gas.name} capacity is not available, cannot apply efficiency standard.") | ||
successfully_set_all_properties = false | ||
return successfully_set_all_properties | ||
end | ||
|
||
return capacity_w | ||
end | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added a function for finding a coil heating gas's capacity with consideration for autosized vs hardsized coils. |
||
end |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"furnaces": [ | ||
{ | ||
"template": "90.1-2004", | ||
"minimum_capacity": 0.0, | ||
"maximum_capacity": 224999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": 0.78, | ||
"minimum_thermal_efficiency": 0.8, | ||
"minimum_combustion_efficiency": null, | ||
"notes": "Table 6.8.1E page 49\n" | ||
}, | ||
{ | ||
"template": "90.1-2004", | ||
"minimum_capacity": 225000.0, | ||
"maximum_capacity": 249999999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": null, | ||
"minimum_combustion_efficiency": 0.8, | ||
"notes": "Table 6.8.1E page 49\n" | ||
} | ||
] | ||
} | ||
Comment on lines
+1
to
+26
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You will see many JSON files similar to this. These are the updated JSON files for furnaces that were missing from the repository. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"furnaces": [ | ||
{ | ||
"template": "90.1-2007", | ||
"minimum_capacity": 0.0, | ||
"maximum_capacity": 224999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": 0.78, | ||
"minimum_thermal_efficiency": 0.8, | ||
"minimum_combustion_efficiency": null, | ||
"notes": "Table 6.8.1E page 49\n" | ||
}, | ||
{ | ||
"template": "90.1-2007", | ||
"minimum_capacity": 225000.0, | ||
"maximum_capacity": 249999999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": null, | ||
"minimum_combustion_efficiency": 0.8, | ||
"notes": "Table 6.8.1E page 49\n" | ||
} | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"furnaces": [ | ||
{ | ||
"template": "90.1-2010", | ||
"minimum_capacity": 0.0, | ||
"maximum_capacity": 224999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": 0.78, | ||
"minimum_thermal_efficiency": 0.8, | ||
"minimum_combustion_efficiency": null, | ||
"notes": "Table 6.8.1E page 62\n" | ||
}, | ||
{ | ||
"template": "90.1-2010", | ||
"minimum_capacity": 225000.0, | ||
"maximum_capacity": 249999999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": 0.8, | ||
"minimum_combustion_efficiency": null, | ||
"notes": "Table 6.8.1E page 62\n" | ||
} | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"furnaces": [ | ||
{ | ||
"template": "90.1-2013", | ||
"minimum_capacity": 0.0, | ||
"maximum_capacity": 224999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": 0.78, | ||
"minimum_thermal_efficiency": 0.8, | ||
"minimum_combustion_efficiency": null, | ||
"notes": "Table 6.8.1E page 72\n" | ||
}, | ||
{ | ||
"template": "90.1-2013", | ||
"minimum_capacity": 225000.0, | ||
"maximum_capacity": 249999999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": 0.8, | ||
"minimum_combustion_efficiency": null, | ||
"notes": "Table 6.8.1E page 72\n" | ||
} | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"furnaces": [ | ||
{ | ||
"template": "90.1-2016", | ||
"minimum_capacity": 0.0, | ||
"maximum_capacity": 224999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": 0.78, | ||
"minimum_thermal_efficiency": 0.8, | ||
"minimum_combustion_efficiency": null, | ||
"notes": "Table 6.8.1E page 116\n" | ||
}, | ||
{ | ||
"template": "90.1-2016", | ||
"minimum_capacity": 225000.0, | ||
"maximum_capacity": 249999999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": 0.8, | ||
"minimum_combustion_efficiency": null, | ||
"notes": "Table 6.8.1E page 116\n" | ||
} | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,7 +10,7 @@ | |
"maximum_capacity": 299999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": 0.82, | ||
"minimum_annual_fuel_utilization_efficiency": 0.84, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The value in the existing 2019 boiler JSON was incorrect. |
||
"minimum_thermal_efficiency": null, | ||
"minimum_combustion_efficiency": null, | ||
"efffplr": "Boiler with No Minimum Turndown", | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"furnaces": [ | ||
{ | ||
"template": "90.1-2019", | ||
"minimum_capacity": 0.0, | ||
"maximum_capacity": 224999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": 0.81, | ||
"minimum_combustion_efficiency": null, | ||
"notes": "Table 6.8.1-6 for > 225 ktbu/hr\nTable F-4 for < 225 ktbu/hr" | ||
}, | ||
{ | ||
"template": "90.1-2019", | ||
"minimum_capacity": 225000.0, | ||
"maximum_capacity": 249999999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": 0.8, | ||
"minimum_combustion_efficiency": null, | ||
"notes": "Table 6.8.1-6 for > 225 ktbu/hr\nTable F-4 for < 225 ktbu/hr" | ||
} | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
{ | ||
"furnaces": [ | ||
{ | ||
"template": "DOE Ref 1980-2004", | ||
"minimum_capacity": 0.0, | ||
"maximum_capacity": 299999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": null, | ||
"minimum_combustion_efficiency": null, | ||
"notes": null | ||
}, | ||
{ | ||
"template": "DOE Ref 1980-2004", | ||
"minimum_capacity": 300000.0, | ||
"maximum_capacity": 249999999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": null, | ||
"minimum_combustion_efficiency": null, | ||
"notes": null | ||
} | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
{ | ||
"furnaces": [ | ||
{ | ||
"template": "DOE Ref Pre-1980", | ||
"minimum_capacity": 0.0, | ||
"maximum_capacity": 249999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": null, | ||
"minimum_combustion_efficiency": null, | ||
"notes": null | ||
}, | ||
{ | ||
"template": "DOE Ref Pre-1980", | ||
"minimum_capacity": 250000.0, | ||
"maximum_capacity": 9999999999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": null, | ||
"minimum_combustion_efficiency": null, | ||
"notes": null | ||
}, | ||
{ | ||
"template": "DOE Ref Pre-1980", | ||
"minimum_capacity": 250000000.0, | ||
"maximum_capacity": 9999999999.0, | ||
"start_date": "1919-09-09T00:00:00+00:00", | ||
"end_date": "2999-09-09T00:00:00+00:00", | ||
"minimum_annual_fuel_utilization_efficiency": null, | ||
"minimum_thermal_efficiency": null, | ||
"minimum_combustion_efficiency": null, | ||
"notes": null | ||
} | ||
] | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added to accommodate new furnace JSONs