Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
Browse files Browse the repository at this point in the history
…o purge

# Conflicts:
#	measure.rb
#	resources/hvac.rb
  • Loading branch information
shorowit committed Apr 10, 2019
2 parents f68e555 + a3ebe82 commit bd74fb6
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 50 deletions.
50 changes: 22 additions & 28 deletions measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2007,12 +2007,10 @@ def self.add_cooling_system(runner, model, building, loop_hvacs, zone_hvacs, use

eers = [0.82 * seer + 0.64]
shrs = [0.73]
fan_power_rated = 0.365
fan_power_installed = 0.5
fan_power_installed = get_fan_power_installed(seer)
eer_capacity_derates = [1.0, 1.0, 1.0, 1.0, 1.0]
success = HVAC.apply_central_ac_1speed(model, runner, seer, eers, shrs,
fan_power_rated, fan_power_installed,
crankcase_kw, crankcase_temp,
fan_power_installed, crankcase_kw, crankcase_temp,
eer_capacity_derates, cool_capacity_btuh,
dse_cool, load_frac)
return false if not success
Expand All @@ -2023,13 +2021,11 @@ def self.add_cooling_system(runner, model, building, loop_hvacs, zone_hvacs, use
shrs = [0.71, 0.73]
capacity_ratios = [0.72, 1.0]
fan_speed_ratios = [0.86, 1.0]
fan_power_rated = 0.14
fan_power_installed = 0.3
fan_power_installed = get_fan_power_installed(seer)
eer_capacity_derates = [1.0, 1.0, 1.0, 1.0, 1.0]
success = HVAC.apply_central_ac_2speed(model, runner, seer, eers, shrs,
capacity_ratios, fan_speed_ratios,
fan_power_rated, fan_power_installed,
crankcase_kw, crankcase_temp,
fan_power_installed, crankcase_kw, crankcase_temp,
eer_capacity_derates, cool_capacity_btuh,
dse_cool, load_frac)
return false if not success
Expand All @@ -2040,13 +2036,11 @@ def self.add_cooling_system(runner, model, building, loop_hvacs, zone_hvacs, use
shrs = [0.98, 0.82, 0.745, 0.77]
capacity_ratios = [0.36, 0.64, 1.0, 1.16]
fan_speed_ratios = [0.51, 0.84, 1.0, 1.19]
fan_power_rated = 0.14
fan_power_installed = 0.3
fan_power_installed = get_fan_power_installed(seer)
eer_capacity_derates = [1.0, 1.0, 1.0, 1.0, 1.0]
success = HVAC.apply_central_ac_4speed(model, runner, seer, eers, shrs,
capacity_ratios, fan_speed_ratios,
fan_power_rated, fan_power_installed,
crankcase_kw, crankcase_temp,
fan_power_installed, crankcase_kw, crankcase_temp,
eer_capacity_derates, cool_capacity_btuh,
dse_cool, load_frac)
return false if not success
Expand Down Expand Up @@ -2211,15 +2205,13 @@ def self.add_heat_pump(runner, model, building, weather, loop_hvacs, zone_hvacs,
eers = [0.80 * seer + 1.00]
cops = [0.57 * hspf - 1.30]
shrs = [0.73]
fan_power_rated = 0.365
fan_power_installed = 0.5
fan_power_installed = get_fan_power_installed(seer)
min_temp = 0.0
eer_capacity_derates = [1.0, 1.0, 1.0, 1.0, 1.0]
cop_capacity_derates = [1.0, 1.0, 1.0, 1.0, 1.0]
supplemental_efficiency = 1.0
success = HVAC.apply_central_ashp_1speed(model, runner, seer, hspf, eers, cops, shrs,
fan_power_rated, fan_power_installed, min_temp,
crankcase_kw, crankcase_temp,
fan_power_installed, min_temp, crankcase_kw, crankcase_temp,
eer_capacity_derates, cop_capacity_derates,
cool_capacity_btuh, supplemental_efficiency,
backup_heat_capacity_btuh, dse_heat,
Expand All @@ -2234,17 +2226,14 @@ def self.add_heat_pump(runner, model, building, weather, loop_hvacs, zone_hvacs,
capacity_ratios = [0.72, 1.0]
fan_speed_ratios_cooling = [0.86, 1.0]
fan_speed_ratios_heating = [0.8, 1.0]
fan_power_rated = 0.14
fan_power_installed = 0.3
fan_power_installed = get_fan_power_installed(seer)
min_temp = 0.0
eer_capacity_derates = [1.0, 1.0, 1.0, 1.0, 1.0]
cop_capacity_derates = [1.0, 1.0, 1.0, 1.0, 1.0]
supplemental_efficiency = 1.0
success = HVAC.apply_central_ashp_2speed(model, runner, seer, hspf, eers, cops, shrs,
capacity_ratios, fan_speed_ratios_cooling,
fan_speed_ratios_heating,
fan_power_rated, fan_power_installed, min_temp,
crankcase_kw, crankcase_temp,
capacity_ratios, fan_speed_ratios_cooling, fan_speed_ratios_heating,
fan_power_installed, min_temp, crankcase_kw, crankcase_temp,
eer_capacity_derates, cop_capacity_derates,
cool_capacity_btuh, supplemental_efficiency,
backup_heat_capacity_btuh, dse_heat,
Expand All @@ -2259,17 +2248,14 @@ def self.add_heat_pump(runner, model, building, weather, loop_hvacs, zone_hvacs,
capacity_ratios = [0.49, 0.67, 1.0, 1.2]
fan_speed_ratios_cooling = [0.7, 0.9, 1.0, 1.26]
fan_speed_ratios_heating = [0.74, 0.92, 1.0, 1.22]
fan_power_rated = 0.14
fan_power_installed = 0.3
fan_power_installed = get_fan_power_installed(seer)
min_temp = 0.0
eer_capacity_derates = [1.0, 1.0, 1.0, 1.0, 1.0]
cop_capacity_derates = [1.0, 1.0, 1.0, 1.0, 1.0]
supplemental_efficiency = 1.0
success = HVAC.apply_central_ashp_4speed(model, runner, seer, hspf, eers, cops, shrs,
capacity_ratios, fan_speed_ratios_cooling,
fan_speed_ratios_heating,
fan_power_rated, fan_power_installed, min_temp,
crankcase_kw, crankcase_temp,
capacity_ratios, fan_speed_ratios_cooling, fan_speed_ratios_heating,
fan_power_installed, min_temp, crankcase_kw, crankcase_temp,
eer_capacity_derates, cop_capacity_derates,
cool_capacity_btuh, supplemental_efficiency,
backup_heat_capacity_btuh, dse_heat,
Expand Down Expand Up @@ -3940,6 +3926,14 @@ def get_ashp_num_speeds_by_hspf(hspf)
end
end

def get_fan_power_installed(seer)
if seer <= 15
return 0.365 # W/cfm
else
return 0.14 # W/cfm
end
end

class OutputVars
def self.SpaceHeatingElectricity
return { 'OpenStudio::Model::CoilHeatingDXSingleSpeed' => ['Heating Coil Electric Energy', 'Heating Coil Crankcase Heater Electric Energy', 'Heating Coil Defrost Electric Energy'],
Expand Down
50 changes: 28 additions & 22 deletions resources/hvac.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@

class HVAC
def self.apply_central_ac_1speed(model, runner, seer, eers, shrs,
fan_power_rated, fan_power_installed,
crankcase_capacity, crankcase_temp,
fan_power_installed, crankcase_kw, crankcase_temp,
eer_capacity_derates, capacity, dse,
frac_cool_load_served)

return true if frac_cool_load_served <= 0

num_speeds = 1
fan_power_rated = get_fan_power_rated(seer)

# Performance curves
# NOTE: These coefficients are in IP UNITS
Expand Down Expand Up @@ -62,7 +62,7 @@ def self.apply_central_ac_1speed(model, runner, seer, eers, shrs,
clg_coil.setLatentCapacityTimeConstant(OpenStudio::OptionalDouble.new(45.0))

clg_coil.setCondenserType("AirCooled")
clg_coil.setCrankcaseHeaterCapacity(OpenStudio::OptionalDouble.new(UnitConversions.convert(crankcase_capacity, "kW", "W")))
clg_coil.setCrankcaseHeaterCapacity(OpenStudio::OptionalDouble.new(UnitConversions.convert(crankcase_kw, "kW", "W")))
clg_coil.setMaximumOutdoorDryBulbTemperatureForCrankcaseHeaterOperation(OpenStudio::OptionalDouble.new(UnitConversions.convert(crankcase_temp, "F", "C")))

# _processSystemFan
Expand Down Expand Up @@ -144,14 +144,14 @@ def self.apply_central_ac_1speed(model, runner, seer, eers, shrs,

def self.apply_central_ac_2speed(model, runner, seer, eers, shrs,
capacity_ratios, fan_speed_ratios,
fan_power_rated, fan_power_installed,
crankcase_capacity, crankcase_temp,
fan_power_installed, crankcase_kw, crankcase_temp,
eer_capacity_derates, capacity, dse,
frac_cool_load_served)

return true if frac_cool_load_served <= 0

num_speeds = 2
fan_power_rated = get_fan_power_rated(seer)

# Performance curves
# NOTE: These coefficients are in IP UNITS
Expand Down Expand Up @@ -189,7 +189,7 @@ def self.apply_central_ac_2speed(model, runner, seer, eers, shrs,
clg_coil.setCondenserType("AirCooled")
clg_coil.setApplyPartLoadFractiontoSpeedsGreaterthan1(false)
clg_coil.setApplyLatentDegradationtoSpeedsGreaterthan1(false)
clg_coil.setCrankcaseHeaterCapacity(UnitConversions.convert(crankcase_capacity, "kW", "W"))
clg_coil.setCrankcaseHeaterCapacity(UnitConversions.convert(crankcase_kw, "kW", "W"))
clg_coil.setMaximumOutdoorDryBulbTemperatureforCrankcaseHeaterOperation(UnitConversions.convert(crankcase_temp, "F", "C"))

clg_coil.setFuelType("Electricity")
Expand Down Expand Up @@ -289,14 +289,14 @@ def self.apply_central_ac_2speed(model, runner, seer, eers, shrs,

def self.apply_central_ac_4speed(model, runner, seer, eers, shrs,
capacity_ratios, fan_speed_ratios,
fan_power_rated, fan_power_installed,
crankcase_capacity, crankcase_temp,
fan_power_installed, crankcase_kw, crankcase_temp,
eer_capacity_derates, capacity, dse,
frac_cool_load_served)

return true if frac_cool_load_served <= 0

num_speeds = 4
fan_power_rated = get_fan_power_rated(seer)

# Performance curves
# NOTE: These coefficients are in IP UNITS
Expand Down Expand Up @@ -336,7 +336,7 @@ def self.apply_central_ac_4speed(model, runner, seer, eers, shrs,
clg_coil.setCondenserType("AirCooled")
clg_coil.setApplyPartLoadFractiontoSpeedsGreaterthan1(false)
clg_coil.setApplyLatentDegradationtoSpeedsGreaterthan1(false)
clg_coil.setCrankcaseHeaterCapacity(UnitConversions.convert(crankcase_capacity, "kW", "W"))
clg_coil.setCrankcaseHeaterCapacity(UnitConversions.convert(crankcase_kw, "kW", "W"))
clg_coil.setMaximumOutdoorDryBulbTemperatureforCrankcaseHeaterOperation(UnitConversions.convert(crankcase_temp, "F", "C"))

clg_coil.setFuelType("Electricity")
Expand Down Expand Up @@ -435,8 +435,7 @@ def self.apply_central_ac_4speed(model, runner, seer, eers, shrs,
end

def self.apply_central_ashp_1speed(model, runner, seer, hspf, eers, cops, shrs,
fan_power_rated, fan_power_installed, min_temp,
crankcase_capacity, crankcase_temp,
fan_power_installed, min_temp, crankcase_kw, crankcase_temp,
eer_capacity_derates, cop_capacity_derates,
heat_pump_capacity, supplemental_efficiency,
supplemental_capacity, dse,
Expand All @@ -447,6 +446,7 @@ def self.apply_central_ashp_1speed(model, runner, seer, hspf, eers, cops, shrs,
end

num_speeds = 1
fan_power_rated = get_fan_power_rated(seer)

# Performance curves
# NOTE: These coefficients are in IP UNITS
Expand Down Expand Up @@ -506,7 +506,7 @@ def self.apply_central_ashp_1speed(model, runner, seer, hspf, eers, cops, shrs,
if frac_heat_load_served <= 0
htg_coil.setCrankcaseHeaterCapacity(0.0)
else
htg_coil.setCrankcaseHeaterCapacity(UnitConversions.convert(crankcase_capacity, "kW", "W"))
htg_coil.setCrankcaseHeaterCapacity(UnitConversions.convert(crankcase_kw, "kW", "W"))
end
htg_coil.setMaximumOutdoorDryBulbTemperatureforCrankcaseHeaterOperation(UnitConversions.convert(crankcase_temp, "F", "C"))
htg_coil.setDefrostStrategy("ReverseCycle")
Expand Down Expand Up @@ -700,16 +700,15 @@ def self.apply_central_ashp_1speed(model, runner, seer, hspf, eers, cops, shrs,
end

def self.apply_central_ashp_2speed(model, runner, seer, hspf, eers, cops, shrs,
capacity_ratios, fan_speed_ratios_cooling,
fan_speed_ratios_heating,
fan_power_rated, fan_power_installed, min_temp,
crankcase_capacity, crankcase_temp,
capacity_ratios, fan_speed_ratios_cooling, fan_speed_ratios_heating,
fan_power_installed, min_temp, crankcase_kw, crankcase_temp,
eer_capacity_derates, cop_capacity_derates,
heat_pump_capacity, supplemental_efficiency,
supplemental_capacity, dse,
frac_heat_load_served, frac_cool_load_served)

num_speeds = 2
fan_power_rated = get_fan_power_rated(seer)

# Performance curves
# NOTE: These coefficients are in IP UNITS
Expand Down Expand Up @@ -764,7 +763,7 @@ def self.apply_central_ashp_2speed(model, runner, seer, hspf, eers, cops, shrs,
if frac_heat_load_served <= 0
htg_coil.setCrankcaseHeaterCapacity(0.0)
else
htg_coil.setCrankcaseHeaterCapacity(UnitConversions.convert(crankcase_capacity, "kW", "W"))
htg_coil.setCrankcaseHeaterCapacity(UnitConversions.convert(crankcase_kw, "kW", "W"))
end
htg_coil.setMaximumOutdoorDryBulbTemperatureforCrankcaseHeaterOperation(UnitConversions.convert(crankcase_temp, "F", "C"))
htg_coil.setDefrostEnergyInputRatioFunctionofTemperatureCurve(defrost_eir_curve)
Expand Down Expand Up @@ -986,16 +985,15 @@ def self.apply_central_ashp_2speed(model, runner, seer, hspf, eers, cops, shrs,
end

def self.apply_central_ashp_4speed(model, runner, seer, hspf, eers, cops, shrs,
capacity_ratios, fan_speed_ratios_cooling,
fan_speed_ratios_heating,
fan_power_rated, fan_power_installed, min_temp,
crankcase_capacity, crankcase_temp,
capacity_ratios, fan_speed_ratios_cooling, fan_speed_ratios_heating,
fan_power_installed, min_temp, crankcase_kw, crankcase_temp,
eer_capacity_derates, cop_capacity_derates,
heat_pump_capacity, supplemental_efficiency,
supplemental_capacity, dse,
frac_heat_load_served, frac_cool_load_served)

num_speeds = 4
fan_power_rated = get_fan_power_rated(seer)

# Performance curves
# NOTE: These coefficients are in IP UNITS
Expand Down Expand Up @@ -1055,7 +1053,7 @@ def self.apply_central_ashp_4speed(model, runner, seer, hspf, eers, cops, shrs,
if frac_heat_load_served <= 0
htg_coil.setCrankcaseHeaterCapacity(0.0)
else
htg_coil.setCrankcaseHeaterCapacity(UnitConversions.convert(crankcase_capacity, "kW", "W"))
htg_coil.setCrankcaseHeaterCapacity(UnitConversions.convert(crankcase_kw, "kW", "W"))
end
htg_coil.setMaximumOutdoorDryBulbTemperatureforCrankcaseHeaterOperation(UnitConversions.convert(crankcase_temp, "F", "C"))
htg_coil.setDefrostEnergyInputRatioFunctionofTemperatureCurve(defrost_eir_curve)
Expand Down Expand Up @@ -3455,6 +3453,14 @@ def self.get_c_d_heating(num_speeds, heatingHSPF)
end
end

def self.get_fan_power_rated(seer)
if seer <= 15
return 0.365 # W/cfm
else
return 0.14 # W/cfm
end
end

def self.get_boiler_curve(model, isCondensing)
if isCondensing
return create_curve_biquadratic(model, [1.058343061, -0.052650153, -0.0087272, -0.001742217, 0.00000333715, 0.000513723], "CondensingBoilerEff", 0.2, 1.0, 30.0, 85.0)
Expand Down

0 comments on commit bd74fb6

Please sign in to comment.