From fdce21a128fb614e863e4f00a2f7b3d4b31a5d8e Mon Sep 17 00:00:00 2001 From: JanghyunJK Date: Wed, 1 May 2024 10:38:00 -0600 Subject: [PATCH 1/5] add place holder --- resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb b/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb index e8ade04cb..b2c441c1c 100644 --- a/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb +++ b/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb @@ -1937,6 +1937,9 @@ def run(model, runner, user_arguments) capacity_original_rated = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f puts("--- #{coil_cooling.name} | capacity_original_rated = #{capacity_original_rated} W") + # TODO: convert design heating/cooling loads to rated heating/coolnig capacities + + # TODO: replace design loads to rated capacities # skip upsizing if indoor unit is not expected as heating dominant unit if design_heating_load <= design_cooling_load puts("--- #{coil_cooling.name} | this indoor unit is not expected as heating dominant, so skipping for upsizing.") From a3a3119916c753a5c705900d99b7b0041d0fa55c Mon Sep 17 00:00:00 2001 From: "Janghyun(JK)Kim" Date: Wed, 1 May 2024 16:05:58 -0600 Subject: [PATCH 2/5] adding rated capacities calculation using curves --- .../upgrade_hvac_vrf_hr_doas/measure.rb | 64 ++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb b/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb index b2c441c1c..d31aa6237 100644 --- a/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb +++ b/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb @@ -298,6 +298,40 @@ def get_tabular_data(model, sql, report_name, report_for_string, table_name, row result end + # --------------------------------------- # + # supporting method + # --------------------------------------- # + # return dependent varible based on two independent variables from TableMultiVariableLookup + # @param model [OpenStudio::Model::TableMultiVariableLookup] OpenStudio TableMultiVariableLookup object + # @param ind_var_1 [Double] independent variable 1 + # @param ind_var_2 [Double] independent variable 2 + # @return [Double] dependent variable value + def get_dep_var_from_lookup_table_with_two_ind_var(lookup_table, ind_var_1, ind_var_2) + unless lookup_table.to_TableMultiVariableLookup.is_initialized + runner.registerError("#{lookup_table.name} is not a OpenStudio::Model::TableMultiVariableLookup object.") + return false + end + + # check if the lookup only has two independent variables + if lookup_table.numberofIndependentVariables == 2 + + # get independent variable 1 and 2 from table + array_ind_var_1 = lookup_table.xValues(0) + array_ind_var_2 = lookup_table.xValues(1) + + # find the closest independent variable 1 and 2 from table based on method inputs + closest_ind_var_1 = array_ind_var_1.min_by{|x| (ind_var_1-x).abs} + closest_ind_var_2 = array_ind_var_2.min_by{|x| (ind_var_2-x).abs} + + # grab dependent variable from the closest independent variables + dependent_var_val = lookup_table.yValue([closest_ind_var_1, closest_ind_var_2]).get + else + runner.registerError('This TableMultiVariableLookup is not based on two independent variables.') + return false + end + return dependent_var_val + end + # --------------------------------------- # # supporting method # extracting VRF object specifications from existing (fully populated) object @@ -1937,7 +1971,35 @@ def run(model, runner, user_arguments) capacity_original_rated = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f puts("--- #{coil_cooling.name} | capacity_original_rated = #{capacity_original_rated} W") - # TODO: convert design heating/cooling loads to rated heating/coolnig capacities + # get capacity modifier curves + capacity_modifier_curve_cooling = ou.coolingCapacityRatioModifierFunctionofLowTemperatureCurve.get + capacity_modifier_curve_heating = ou.heatingCapacityRatioModifierFunctionofLowTemperatureCurve.get + puts("--- #{coil_cooling.name} | capacity_modifier_curve_cooling = #{capacity_modifier_curve_cooling.name}") + puts("--- #{coil_cooling.name} | capacity_modifier_curve_heating = #{capacity_modifier_curve_heating.name}") + + # get capacity modifier for cooling + if capacity_modifier_curve_cooling.to_TableMultiVariableLookup.is_initialized + capacity_modifier_curve_cooling = capacity_modifier_curve_cooling.to_TableMultiVariableLookup.get + capacity_modifier_cooling = get_dep_var_from_lookup_table_with_two_ind_var(capacity_modifier_curve_cooling, OpenStudio.convert(67.0,'F','C').get, OpenStudio.convert(95.0,'F','C').get) + else + capacity_modifier_cooling = capacity_modifier_curve_cooling.evaluate(OpenStudio.convert(67.0,'F','C').get, OpenStudio.convert(95.0,'F','C').get) + end + puts("--- #{coil_cooling.name} | capacity_modifier_cooling = #{capacity_modifier_cooling}") + + # get capacity modifier for heating + if capacity_modifier_curve_cooling.to_TableMultiVariableLookup.is_initialized + capacity_modifier_curve_heating = capacity_modifier_curve_heating.to_TableMultiVariableLookup.get + capacity_modifier_heating = get_dep_var_from_lookup_table_with_two_ind_var(capacity_modifier_curve_heating, OpenStudio.convert(70.0,'F','C').get, OpenStudio.convert(47.0,'F','C').get) + else + capacity_modifier_heating = capacity_modifier_curve_heating.evaluate(OpenStudio.convert(70.0,'F','C').get, OpenStudio.convert(47.0,'F','C').get) + end + puts("--- #{coil_cooling.name} | capacity_modifier_heating = #{capacity_modifier_heating}") + + # get rated capacities based on design loads + capacity_original_rated_cooling = design_cooling_load * capacity_modifier_cooling + capacity_original_rated_heating = design_heating_load * capacity_modifier_heating + puts("--- #{coil_cooling.name} | capacity_original_rated_cooling = #{capacity_original_rated_cooling} W") + puts("--- #{coil_cooling.name} | capacity_original_rated_heating = #{capacity_original_rated_heating} W") # TODO: replace design loads to rated capacities # skip upsizing if indoor unit is not expected as heating dominant unit From b690fba6210ed5d24e83e1fcf4c2e50966702cc2 Mon Sep 17 00:00:00 2001 From: "Janghyun(JK)Kim" Date: Thu, 2 May 2024 08:37:01 -0600 Subject: [PATCH 3/5] proper conversion from design to rated --- .../upgrade_hvac_vrf_hr_doas/measure.rb | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb b/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb index d31aa6237..c7102e048 100644 --- a/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb +++ b/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb @@ -1961,11 +1961,21 @@ def run(model, runner, user_arguments) design_cooling_load = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f puts("--- #{coil_cooling.name} | design_cooling_load = #{design_cooling_load} W") + # get design cooling temperature + column_name = 'Outdoor Air Drybulb at Ideal Loads Peak' + design_cooling_temp = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f + puts("--- #{coil_cooling.name} | design_cooling_temp = #{design_cooling_temp} C") + # get design_heating_load column_name = 'Zone Sensible Heat Gain at Ideal Loads Peak' design_heating_load = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_heating, column_name).to_f puts("--- #{coil_cooling.name} | design_heating_load = #{design_heating_load} W") + # get design heating temperature + column_name = 'Outdoor Air Drybulb at Ideal Loads Peak' + design_heating_temp = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_heating, column_name).to_f + puts("--- #{coil_cooling.name} | design_heating_temp = #{design_heating_temp} C") + # get capacity_original_rated column_name = 'Coil Final Gross Total Capacity' capacity_original_rated = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f @@ -1980,30 +1990,29 @@ def run(model, runner, user_arguments) # get capacity modifier for cooling if capacity_modifier_curve_cooling.to_TableMultiVariableLookup.is_initialized capacity_modifier_curve_cooling = capacity_modifier_curve_cooling.to_TableMultiVariableLookup.get - capacity_modifier_cooling = get_dep_var_from_lookup_table_with_two_ind_var(capacity_modifier_curve_cooling, OpenStudio.convert(67.0,'F','C').get, OpenStudio.convert(95.0,'F','C').get) + capacity_modifier_cooling = get_dep_var_from_lookup_table_with_two_ind_var(capacity_modifier_curve_cooling, OpenStudio.convert(67.0,'F','C').get, design_cooling_temp) else - capacity_modifier_cooling = capacity_modifier_curve_cooling.evaluate(OpenStudio.convert(67.0,'F','C').get, OpenStudio.convert(95.0,'F','C').get) + capacity_modifier_cooling = capacity_modifier_curve_cooling.evaluate(OpenStudio.convert(67.0,'F','C').get, design_cooling_temp) end puts("--- #{coil_cooling.name} | capacity_modifier_cooling = #{capacity_modifier_cooling}") # get capacity modifier for heating if capacity_modifier_curve_cooling.to_TableMultiVariableLookup.is_initialized capacity_modifier_curve_heating = capacity_modifier_curve_heating.to_TableMultiVariableLookup.get - capacity_modifier_heating = get_dep_var_from_lookup_table_with_two_ind_var(capacity_modifier_curve_heating, OpenStudio.convert(70.0,'F','C').get, OpenStudio.convert(47.0,'F','C').get) + capacity_modifier_heating = get_dep_var_from_lookup_table_with_two_ind_var(capacity_modifier_curve_heating, OpenStudio.convert(70.0,'F','C').get, design_heating_temp) else - capacity_modifier_heating = capacity_modifier_curve_heating.evaluate(OpenStudio.convert(70.0,'F','C').get, OpenStudio.convert(47.0,'F','C').get) + capacity_modifier_heating = capacity_modifier_curve_heating.evaluate(OpenStudio.convert(70.0,'F','C').get, design_heating_temp) end puts("--- #{coil_cooling.name} | capacity_modifier_heating = #{capacity_modifier_heating}") # get rated capacities based on design loads - capacity_original_rated_cooling = design_cooling_load * capacity_modifier_cooling - capacity_original_rated_heating = design_heating_load * capacity_modifier_heating - puts("--- #{coil_cooling.name} | capacity_original_rated_cooling = #{capacity_original_rated_cooling} W") - puts("--- #{coil_cooling.name} | capacity_original_rated_heating = #{capacity_original_rated_heating} W") - - # TODO: replace design loads to rated capacities - # skip upsizing if indoor unit is not expected as heating dominant unit - if design_heating_load <= design_cooling_load + rated_cooling_capacity_based_on_design_load = design_cooling_load / capacity_modifier_cooling + rated_heating_capacity_based_on_design_load = design_heating_load / capacity_modifier_heating + puts("--- #{coil_cooling.name} | rated_cooling_capacity_based_on_design_load = #{rated_cooling_capacity_based_on_design_load} W") + puts("--- #{coil_cooling.name} | rated_heating_capacity_based_on_design_load = #{rated_heating_capacity_based_on_design_load} W") + + # skip upsizing if indoor unit is not expected as heating dominant + if rated_heating_capacity_based_on_design_load <= rated_cooling_capacity_based_on_design_load puts("--- #{coil_cooling.name} | this indoor unit is not expected as heating dominant, so skipping for upsizing.") capacity_outdoor_unit_new += capacity_original_rated next @@ -2051,7 +2060,6 @@ def run(model, runner, user_arguments) capacity_final_rated = capacity_original_rated end puts("--- #{coil_cooling.name} | capacity_final_rated = #{capacity_final_rated}") - # get CFM/ton design_air_flow_rate_cfm = design_air_flow_rate_m_3_per_sec * 2118.88 From 2f54696cee56820f7c5322e9a7e4abcc242a32a9 Mon Sep 17 00:00:00 2001 From: "Janghyun(JK)Kim" Date: Thu, 2 May 2024 08:37:43 -0600 Subject: [PATCH 4/5] Update measure.xml --- .../measures/upgrade_hvac_vrf_hr_doas/measure.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/measures/upgrade_hvac_vrf_hr_doas/measure.xml b/resources/measures/upgrade_hvac_vrf_hr_doas/measure.xml index b03b3ca2f..6bdd85963 100644 --- a/resources/measures/upgrade_hvac_vrf_hr_doas/measure.xml +++ b/resources/measures/upgrade_hvac_vrf_hr_doas/measure.xml @@ -3,8 +3,8 @@ 3.1 hvac_vrf_hr_doas 95ea1937-6b29-4af5-8946-0e271c828d10 - 5296f3e9-0a49-43ee-843a-a7e168819577 - 2023-12-21T21:54:57Z + 4276d5b8-68a4-48d5-acdc-eb8aea713670 + 2024-05-02T14:37:27Z D8B5A9EA HvacVrfHrDoas hvac_vrf_hr_doas @@ -55,7 +55,7 @@ Double true false - 25 + 0 apply_measure @@ -166,7 +166,7 @@ measure.rb rb script - 5D86A91A + BAF9490F performance_maps_Daikin_RELQ_100CR_120MBH.json @@ -184,7 +184,7 @@ measure_test.rb rb test - F5839C99 + A71C5369 From 953a8187bb4f97976dfa95f336bdfa10b4bed84f Mon Sep 17 00:00:00 2001 From: "Janghyun(JK)Kim" Date: Thu, 2 May 2024 08:40:27 -0600 Subject: [PATCH 5/5] commenting puts --- .../upgrade_hvac_vrf_hr_doas/measure.rb | 100 +++++++++--------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb b/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb index c7102e048..360c5c9d2 100644 --- a/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb +++ b/resources/measures/upgrade_hvac_vrf_hr_doas/measure.rb @@ -1933,8 +1933,8 @@ def run(model, runner, user_arguments) # loop through each outdoor unit model.getAirConditionerVariableRefrigerantFlows.each do |ou| - puts("### ####################################") - puts("### OU name = #{ou.name}") + # puts("### ####################################") + # puts("### OU name = #{ou.name}") capacity_outdoor_unit_new = 0 ou.terminals.each do |iu| @@ -1951,41 +1951,41 @@ def run(model, runner, user_arguments) else runner.registerError("cannot get CoilHeatingDXVariableRefrigerantFlow object") end - puts("--- ------------------------------------") - puts("--- IU cooling coil name = #{coil_cooling.name}") + # puts("--- ------------------------------------") + # puts("--- IU cooling coil name = #{coil_cooling.name}") row_name_cooling = coil_cooling.name.to_s.upcase row_name_heating = coil_heating.name.to_s.upcase # get design_cooling_load column_name = 'Zone Sensible Heat Gain at Ideal Loads Peak' design_cooling_load = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f - puts("--- #{coil_cooling.name} | design_cooling_load = #{design_cooling_load} W") + # puts("--- #{coil_cooling.name} | design_cooling_load = #{design_cooling_load} W") # get design cooling temperature column_name = 'Outdoor Air Drybulb at Ideal Loads Peak' design_cooling_temp = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f - puts("--- #{coil_cooling.name} | design_cooling_temp = #{design_cooling_temp} C") + # puts("--- #{coil_cooling.name} | design_cooling_temp = #{design_cooling_temp} C") # get design_heating_load column_name = 'Zone Sensible Heat Gain at Ideal Loads Peak' design_heating_load = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_heating, column_name).to_f - puts("--- #{coil_cooling.name} | design_heating_load = #{design_heating_load} W") + # puts("--- #{coil_cooling.name} | design_heating_load = #{design_heating_load} W") # get design heating temperature column_name = 'Outdoor Air Drybulb at Ideal Loads Peak' design_heating_temp = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_heating, column_name).to_f - puts("--- #{coil_cooling.name} | design_heating_temp = #{design_heating_temp} C") + # puts("--- #{coil_cooling.name} | design_heating_temp = #{design_heating_temp} C") # get capacity_original_rated column_name = 'Coil Final Gross Total Capacity' capacity_original_rated = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f - puts("--- #{coil_cooling.name} | capacity_original_rated = #{capacity_original_rated} W") + # puts("--- #{coil_cooling.name} | capacity_original_rated = #{capacity_original_rated} W") # get capacity modifier curves capacity_modifier_curve_cooling = ou.coolingCapacityRatioModifierFunctionofLowTemperatureCurve.get capacity_modifier_curve_heating = ou.heatingCapacityRatioModifierFunctionofLowTemperatureCurve.get - puts("--- #{coil_cooling.name} | capacity_modifier_curve_cooling = #{capacity_modifier_curve_cooling.name}") - puts("--- #{coil_cooling.name} | capacity_modifier_curve_heating = #{capacity_modifier_curve_heating.name}") + # puts("--- #{coil_cooling.name} | capacity_modifier_curve_cooling = #{capacity_modifier_curve_cooling.name}") + # puts("--- #{coil_cooling.name} | capacity_modifier_curve_heating = #{capacity_modifier_curve_heating.name}") # get capacity modifier for cooling if capacity_modifier_curve_cooling.to_TableMultiVariableLookup.is_initialized @@ -1994,7 +1994,7 @@ def run(model, runner, user_arguments) else capacity_modifier_cooling = capacity_modifier_curve_cooling.evaluate(OpenStudio.convert(67.0,'F','C').get, design_cooling_temp) end - puts("--- #{coil_cooling.name} | capacity_modifier_cooling = #{capacity_modifier_cooling}") + # puts("--- #{coil_cooling.name} | capacity_modifier_cooling = #{capacity_modifier_cooling}") # get capacity modifier for heating if capacity_modifier_curve_cooling.to_TableMultiVariableLookup.is_initialized @@ -2003,17 +2003,17 @@ def run(model, runner, user_arguments) else capacity_modifier_heating = capacity_modifier_curve_heating.evaluate(OpenStudio.convert(70.0,'F','C').get, design_heating_temp) end - puts("--- #{coil_cooling.name} | capacity_modifier_heating = #{capacity_modifier_heating}") + # puts("--- #{coil_cooling.name} | capacity_modifier_heating = #{capacity_modifier_heating}") # get rated capacities based on design loads rated_cooling_capacity_based_on_design_load = design_cooling_load / capacity_modifier_cooling rated_heating_capacity_based_on_design_load = design_heating_load / capacity_modifier_heating - puts("--- #{coil_cooling.name} | rated_cooling_capacity_based_on_design_load = #{rated_cooling_capacity_based_on_design_load} W") - puts("--- #{coil_cooling.name} | rated_heating_capacity_based_on_design_load = #{rated_heating_capacity_based_on_design_load} W") + # puts("--- #{coil_cooling.name} | rated_cooling_capacity_based_on_design_load = #{rated_cooling_capacity_based_on_design_load} W") + # puts("--- #{coil_cooling.name} | rated_heating_capacity_based_on_design_load = #{rated_heating_capacity_based_on_design_load} W") # skip upsizing if indoor unit is not expected as heating dominant if rated_heating_capacity_based_on_design_load <= rated_cooling_capacity_based_on_design_load - puts("--- #{coil_cooling.name} | this indoor unit is not expected as heating dominant, so skipping for upsizing.") + # puts("--- #{coil_cooling.name} | this indoor unit is not expected as heating dominant, so skipping for upsizing.") capacity_outdoor_unit_new += capacity_original_rated next end @@ -2021,63 +2021,63 @@ def run(model, runner, user_arguments) # get design_air_flow_rate_m_3_per_sec column_name = 'Coil Air Volume Flow Rate at Ideal Loads Peak' design_air_flow_rate_m_3_per_sec = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f - puts("--- #{coil_cooling.name} | design_air_flow_rate_m_3_per_sec = #{design_air_flow_rate_m_3_per_sec} m3/s") + # puts("--- #{coil_cooling.name} | design_air_flow_rate_m_3_per_sec = #{design_air_flow_rate_m_3_per_sec} m3/s") # get fan_heat_gain column_name = 'Supply Fan Air Heat Gain at Ideal Loads Peak' fan_heat_gain = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f - puts("--- #{coil_cooling.name} | fan_heat_gain = #{fan_heat_gain} W") + # puts("--- #{coil_cooling.name} | fan_heat_gain = #{fan_heat_gain} W") # get rated_capacity_modifier column_name = 'Coil Off-Rating Capacity Modifier at Ideal Loads Peak' rated_capacity_modifier = get_tabular_data(model, sql, 'CoilSizingDetails', 'Entire Facility', 'Coils', row_name_cooling, column_name).to_f - puts("--- #{coil_cooling.name} | rated_capacity_modifier = #{rated_capacity_modifier}") + # puts("--- #{coil_cooling.name} | rated_capacity_modifier = #{rated_capacity_modifier}") # get capacity_upsized_rated capacity_upsized_rated = capacity_original_rated * (1 + upsizing_allowance_pct / 100.0) - puts("--- #{coil_cooling.name} | capacity_upsized_rated = #{capacity_upsized_rated} W") + # puts("--- #{coil_cooling.name} | capacity_upsized_rated = #{capacity_upsized_rated} W") # get design capacity from upsized rated capacity capacity_upsized_design = capacity_upsized_rated * rated_capacity_modifier - puts("--- #{coil_cooling.name} | capacity_upsized_design = #{capacity_upsized_design}") + # puts("--- #{coil_cooling.name} | capacity_upsized_design = #{capacity_upsized_design}") capacity_upsized_design_wo_fan_heat_gain = capacity_upsized_design - fan_heat_gain - puts("--- #{coil_cooling.name} | capacity_upsized_design_wo_fan_heat_gain = #{capacity_upsized_design_wo_fan_heat_gain}") + # puts("--- #{coil_cooling.name} | capacity_upsized_design_wo_fan_heat_gain = #{capacity_upsized_design_wo_fan_heat_gain}") # check design capacity against design heating load if capacity_upsized_design_wo_fan_heat_gain > design_heating_load capacity_final_design = design_heating_load - puts("--- #{coil_cooling.name} | upsized design load (#{capacity_upsized_design_wo_fan_heat_gain.round(0)} W) larger than actual design heating load (#{design_heating_load.round(0)} W)") + # puts("--- #{coil_cooling.name} | upsized design load (#{capacity_upsized_design_wo_fan_heat_gain.round(0)} W) larger than actual design heating load (#{design_heating_load.round(0)} W)") else capacity_final_design = capacity_upsized_design_wo_fan_heat_gain end - puts("--- #{coil_cooling.name} | capacity_final_design = #{capacity_final_design}") + # puts("--- #{coil_cooling.name} | capacity_final_design = #{capacity_final_design}") # get final upsized rated capacity capacity_final_rated = capacity_final_design + fan_heat_gain capacity_final_rated = capacity_final_rated / rated_capacity_modifier if capacity_final_rated < capacity_original_rated - puts("--- #{coil_cooling.name} | recalculation of rated capacity (#{capacity_final_rated.round(0)} W) is less than original rated capacity (#{capacity_original_rated.round(0)} W)") + # puts("--- #{coil_cooling.name} | recalculation of rated capacity (#{capacity_final_rated.round(0)} W) is less than original rated capacity (#{capacity_original_rated.round(0)} W)") capacity_final_rated = capacity_original_rated end - puts("--- #{coil_cooling.name} | capacity_final_rated = #{capacity_final_rated}") + # puts("--- #{coil_cooling.name} | capacity_final_rated = #{capacity_final_rated}") # get CFM/ton design_air_flow_rate_cfm = design_air_flow_rate_m_3_per_sec * 2118.88 - puts("--- #{coil_cooling.name} | design_air_flow_rate_cfm = #{design_air_flow_rate_cfm} CFM") + # puts("--- #{coil_cooling.name} | design_air_flow_rate_cfm = #{design_air_flow_rate_cfm} CFM") capacity_upsized_rated_ton = capacity_final_rated * 0.000284345 - puts("--- #{coil_cooling.name} | capacity_upsized_rated_ton = #{capacity_upsized_rated_ton} ton") + # puts("--- #{coil_cooling.name} | capacity_upsized_rated_ton = #{capacity_upsized_rated_ton} ton") cfm_per_ton = design_air_flow_rate_cfm / capacity_upsized_rated_ton - puts("--- #{coil_cooling.name} | cfm_per_ton = #{cfm_per_ton}") + # puts("--- #{coil_cooling.name} | cfm_per_ton = #{cfm_per_ton}") # adjust indoor unit flow rate if CFM/ton is out of bound between 300 and 450 CFM/ton if cfm_per_ton < 300.0 - puts("--- #{coil_cooling.name} | CFM/ton minimum limit violated. Adjusting air flow rate to match with minimum limit.") + # puts("--- #{coil_cooling.name} | CFM/ton minimum limit violated. Adjusting air flow rate to match with minimum limit.") new_air_flow_rate_cfm = 300 * capacity_upsized_rated_ton - puts("--- #{coil_cooling.name} | indoor unit air flow adjusted match with minimum limit = #{new_air_flow_rate_cfm} CFM") + # puts("--- #{coil_cooling.name} | indoor unit air flow adjusted match with minimum limit = #{new_air_flow_rate_cfm} CFM") elsif cfm_per_ton > 450 - puts("--- #{coil_cooling.name} | CFM/ton maximum limit violated. Adjusting air flow rate to match with maximum limit.") + # puts("--- #{coil_cooling.name} | CFM/ton maximum limit violated. Adjusting air flow rate to match with maximum limit.") new_air_flow_rate_cfm = 450 * capacity_upsized_rated_ton - puts("--- #{coil_cooling.name} | indoor unit air flow adjusted match with maximum limit = #{new_air_flow_rate_cfm} CFM") + # puts("--- #{coil_cooling.name} | indoor unit air flow adjusted match with maximum limit = #{new_air_flow_rate_cfm} CFM") else new_air_flow_rate_cfm = design_air_flow_rate_cfm end @@ -2085,60 +2085,60 @@ def run(model, runner, user_arguments) # override new specifications: rated air flow rate for cooling coil if coil_cooling.ratedAirFlowRate.is_initialized - puts("--- #{coil_cooling.name} | indoor unit cooling air flow rate before = #{coil_cooling.ratedAirFlowRate} m3/s") + # puts("--- #{coil_cooling.name} | indoor unit cooling air flow rate before = #{coil_cooling.ratedAirFlowRate} m3/s") elsif coil_cooling.autosizedRatedAirFlowRate.is_initialized - puts("--- #{coil_cooling.name} | indoor unit cooling air flow rate before = #{coil_cooling.autosizedRatedAirFlowRate} m3/s") + # puts("--- #{coil_cooling.name} | indoor unit cooling air flow rate before = #{coil_cooling.autosizedRatedAirFlowRate} m3/s") else runner.registerError("Cannot find rated air flow rate for cooling.") end coil_cooling.setRatedAirFlowRate(new_air_flow_rate_m_3_per_s) - puts("--- #{coil_cooling.name} | indoor unit cooling air flow rate after = #{coil_cooling.ratedAirFlowRate} m3/s") + # puts("--- #{coil_cooling.name} | indoor unit cooling air flow rate after = #{coil_cooling.ratedAirFlowRate} m3/s") # override new specifications: rated air flow rate for heating coil if coil_heating.ratedAirFlowRate.is_initialized - puts("--- #{coil_heating.name} | indoor unit heating air flow rate before = #{coil_heating.ratedAirFlowRate} m3/s") + # puts("--- #{coil_heating.name} | indoor unit heating air flow rate before = #{coil_heating.ratedAirFlowRate} m3/s") elsif coil_heating.autosizedRatedAirFlowRate.is_initialized - puts("--- #{coil_heating.name} | indoor unit heating air flow rate before = #{coil_heating.autosizedRatedAirFlowRate} m3/s") + # puts("--- #{coil_heating.name} | indoor unit heating air flow rate before = #{coil_heating.autosizedRatedAirFlowRate} m3/s") else runner.registerError("Cannot find rated air flow rate for heating.") end coil_heating.setRatedAirFlowRate(new_air_flow_rate_m_3_per_s) - puts("--- #{coil_heating.name} | indoor unit heating air flow rate after = #{coil_heating.ratedAirFlowRate} m3/s") + # puts("--- #{coil_heating.name} | indoor unit heating air flow rate after = #{coil_heating.ratedAirFlowRate} m3/s") # override new specifications: rated capacity for cooling if coil_cooling.ratedTotalCoolingCapacity.is_initialized - puts("--- #{coil_cooling.name} | indoor unit cooling capacity before = #{coil_cooling.ratedTotalCoolingCapacity} W") + # puts("--- #{coil_cooling.name} | indoor unit cooling capacity before = #{coil_cooling.ratedTotalCoolingCapacity} W") elsif coil_cooling.autosizedRatedTotalCoolingCapacity.is_initialized - puts("--- #{coil_cooling.name} | indoor unit cooling capacity before = #{coil_cooling.autosizedRatedTotalCoolingCapacity} W") + # puts("--- #{coil_cooling.name} | indoor unit cooling capacity before = #{coil_cooling.autosizedRatedTotalCoolingCapacity} W") else runner.registerError("Cannot find rated capacity for cooling.") end coil_cooling.setRatedTotalCoolingCapacity(capacity_final_rated) - puts("--- #{coil_cooling.name} | indoor unit cooling capacity after = #{coil_cooling.ratedTotalCoolingCapacity} W") + # puts("--- #{coil_cooling.name} | indoor unit cooling capacity after = #{coil_cooling.ratedTotalCoolingCapacity} W") # override new specifications: rated capacity for heating if coil_heating.ratedTotalHeatingCapacity.is_initialized - puts("--- #{coil_heating.name} | indoor unit heating capacity before = #{coil_heating.ratedTotalHeatingCapacity} W") + # puts("--- #{coil_heating.name} | indoor unit heating capacity before = #{coil_heating.ratedTotalHeatingCapacity} W") elsif coil_heating.autosizedRatedTotalHeatingCapacity.is_initialized - puts("--- #{coil_heating.name} | indoor unit heating capacity before = #{coil_heating.autosizedRatedTotalHeatingCapacity} W") + # puts("--- #{coil_heating.name} | indoor unit heating capacity before = #{coil_heating.autosizedRatedTotalHeatingCapacity} W") else runner.registerError("Cannot find rated capacity for heating.") end coil_heating.setRatedTotalHeatingCapacity(capacity_final_rated) - puts("--- #{coil_heating.name} | indoor unit heating capacity after = #{coil_heating.ratedTotalHeatingCapacity} W") + # puts("--- #{coil_heating.name} | indoor unit heating capacity after = #{coil_heating.ratedTotalHeatingCapacity} W") # add final indoor unit capacity for calculating outdoor unit capacity capacity_outdoor_unit_new += capacity_final_rated end # override outdoor unit capacity - puts("### ------------------------------------") - puts("### #{ou.name} | outdoor unit cooling capacity before = #{ou.autosizedGrossRatedTotalCoolingCapacity} W") + # puts("### ------------------------------------") + runner.registerInfo("### #{ou.name} | outdoor unit cooling capacity before = #{ou.autosizedGrossRatedTotalCoolingCapacity} W") ou.setGrossRatedTotalCoolingCapacity(capacity_outdoor_unit_new) - puts("### #{ou.name} | outdoor unit cooling capacity after = #{ou.grossRatedTotalCoolingCapacity} W") - puts("### #{ou.name} | outdoor unit heating capacity before = #{ou.autosizedGrossRatedHeatingCapacity} W") + runner.registerInfo("### #{ou.name} | outdoor unit cooling capacity after = #{ou.grossRatedTotalCoolingCapacity} W") + runner.registerInfo("### #{ou.name} | outdoor unit heating capacity before = #{ou.autosizedGrossRatedHeatingCapacity} W") ou.setGrossRatedHeatingCapacity(capacity_outdoor_unit_new) - puts("### #{ou.name} | outdoor unit heating capacity after = #{ou.grossRatedHeatingCapacity} W") + runner.registerInfo("### #{ou.name} | outdoor unit heating capacity after = #{ou.grossRatedHeatingCapacity} W") end else