From f98754ece38329079983634359f233a04b59f734 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Thu, 29 Aug 2024 09:23:03 -0600 Subject: [PATCH 1/8] Clean up docs/schematron related to CFIS FanPower and VentilationOnlyModeAirflowFraction inputs. --- HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 1 + .../hpxml_schematron/EPvalidator.xml | 27 +++++++++++++------ docs/source/workflow_inputs.rst | 3 ++- workflow/hpxml_inputs.json | 9 ++++--- ...se-mechvent-cfis-no-additional-runtime.xml | 1 - ...mechvent-cfis-supplemental-fan-exhaust.xml | 1 - ...-mechvent-cfis-supplemental-fan-supply.xml | 1 - 7 files changed, 28 insertions(+), 15 deletions(-) diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index 5dc0f95eb9..c032ca0860 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -2553,6 +2553,7 @@ def self.apply_ventilation_fans(hpxml_bldg, weather, cfa, nbeds, eri_version) end if vent_fan.fan_power.nil? + # FIXME: CFIS W/cfm should apply to total air handler cfm in ventilation only mode, not just outdoor air cfm vent_fan.fan_power = (vent_fan.flow_rate * Airflow.get_default_mech_vent_fan_power(vent_fan, eri_version)).round(1) vent_fan.fan_power_isdefaulted = true end diff --git a/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml b/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml index 2cb6b07991..5a6614c7e8 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml +++ b/HPXMLtoOpenStudio/resources/hpxml_schematron/EPvalidator.xml @@ -1998,13 +1998,20 @@ Expected 0 element(s) for xpath: IsSharedSystem[text()="true"] Expected 0 or 1 element(s) for xpath: CFISControls/AdditionalRuntimeOperatingMode - Expected CFISControls/AdditionalRuntimeOperatingMode to be 'air handler fan' or 'supplemental fan' or 'none' + Expected CFISControls/AdditionalRuntimeOperatingMode to be 'air handler fan' or 'supplemental fan' or 'none' Expected 0 or more element(s) for xpath: RatedFlowRate | CalculatedFlowRate | TestedFlowRate | DeliveredVentilation Expected 0 or 1 element(s) for xpath: HoursInOperation Expected 0 element(s) for xpath: TotalRecoveryEfficiency | AdjustedTotalRecoveryEfficiency Expected 0 element(s) for xpath: SensibleRecoveryEfficiency | AdjustedSensibleRecoveryEfficiency - Expected 0 or 1 element(s) for xpath: FanPower Expected 1 element(s) for xpath: AttachedToHVACDistributionSystem + + + + + [CFISAdditionalRuntimeMode=AirHandlerFan] + + Expected 0 element(s) for xpath: CFISControls/SupplementalFan + Expected 0 or 1 element(s) for xpath: FanPower Expected 0 or 1 element(s) for xpath: extension/VentilationOnlyModeAirflowFraction Expected extension/VentilationOnlyModeAirflowFraction to be greater than or equal to 0 Expected extension/VentilationOnlyModeAirflowFraction to be less than or equal to 1 @@ -2012,16 +2019,20 @@ - [MechanicalVentilationType=CFISWithSupplementalFan] - - Expected 1 element(s) for xpath: SupplementalFan + [CFISAdditionalRuntimeMode=SupplementalFan] + + Expected 1 element(s) for xpath: CFISControls/SupplementalFan + Expected 0 element(s) for xpath: FanPower + Expected 0 element(s) for xpath: extension/VentilationOnlyModeAirflowFraction - [MechanicalVentilationType=CFISWithoutSupplementalFan] - - Expected 0 element(s) for xpath: SupplementalFan + [CFISAdditionalRuntimeMode=None] + + Expected 0 element(s) for xpath: CFISControls/SupplementalFan + Expected 0 element(s) for xpath: FanPower + Expected 0 element(s) for xpath: extension/VentilationOnlyModeAirflowFraction diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 12a9ddcce1..e56121cb7e 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -3527,7 +3527,7 @@ Each central fan integrated supply (CFIS) system is entered as a ``/HPXML/Buildi ``CFISControls/SupplementalFan`` idref See [#]_ See [#]_ The supplemental fan providing additional ventilation ``RatedFlowRate`` or ``TestedFlowRate`` or ``CalculatedFlowRate`` or ``DeliveredVentilation`` double cfm >= 0 No See [#]_ Flow rate [#]_ ``HoursInOperation`` double hrs/day >= 0, <= 24 false 8 Hours per day of operation [#]_ - ``FanPower`` double W >= 0 No See [#]_ Fan power + ``FanPower`` double W >= 0 No [#]_ See [#]_ Blower fan power during ventilation only mode ``AttachedToHVACDistributionSystem`` idref See [#]_ Yes ID of attached distribution system ``extension/VentilationOnlyModeAirflowFraction`` double frac >= 0, <= 1 No 1.0 Blower airflow rate fraction during ventilation only mode [#]_ ============================================================================================= ======== ======= ============================= ======== =============== ========================================= @@ -3554,6 +3554,7 @@ Each central fan integrated supply (CFIS) system is entered as a ``/HPXML/Buildi .. [#] The flow rate should equal the amount of outdoor air provided to the distribution system, not the total airflow through the distribution system. .. [#] HoursInOperation is combined with the flow rate to form the hourly target ventilation rate (e.g., inputs of 90 cfm and 8 hrs/day produce an hourly target ventilation rate of 30 cfm). + .. [#] FanPower only applies when AdditionalRuntimeOperatingMode="air handler fan", in which it determines the blower fan power during ventilation only mode. .. [#] If FanPower not provided, defaults to 0.58 W/cfm based on ANSI/RESNET/ICC 301-2022 Addendum C. .. [#] HVACDistribution type cannot be :ref:`hvac_distribution_hydronic`. .. [#] VentilationOnlyModeAirflowFraction only applies when AdditionalRuntimeOperatingMode="air handler fan". diff --git a/workflow/hpxml_inputs.json b/workflow/hpxml_inputs.json index 6a187a8187..c3e42027ac 100644 --- a/workflow/hpxml_inputs.json +++ b/workflow/hpxml_inputs.json @@ -3147,13 +3147,16 @@ "mech_vent_num_units_served": 1 }, "sample_files/base-mechvent-cfis-no-additional-runtime.xml": { - "parent_hpxml": "sample_files/base-mechvent-cfis.xml" + "parent_hpxml": "sample_files/base-mechvent-cfis.xml", + "mech_vent_fan_power": null }, "sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml": { - "parent_hpxml": "sample_files/base-mechvent-cfis.xml" + "parent_hpxml": "sample_files/base-mechvent-cfis.xml", + "mech_vent_fan_power": null }, "sample_files/base-mechvent-cfis-supplemental-fan-supply.xml": { - "parent_hpxml": "sample_files/base-mechvent-cfis.xml" + "parent_hpxml": "sample_files/base-mechvent-cfis.xml", + "mech_vent_fan_power": null }, "sample_files/base-mechvent-erv.xml": { "parent_hpxml": "sample_files/base.xml", diff --git a/workflow/sample_files/base-mechvent-cfis-no-additional-runtime.xml b/workflow/sample_files/base-mechvent-cfis-no-additional-runtime.xml index acd8b19d9e..3e80429abe 100644 --- a/workflow/sample_files/base-mechvent-cfis-no-additional-runtime.xml +++ b/workflow/sample_files/base-mechvent-cfis-no-additional-runtime.xml @@ -404,7 +404,6 @@ 330.0 8.0 true - 300.0 diff --git a/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml b/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml index 86aee35f80..0dd27ea640 100644 --- a/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml +++ b/workflow/sample_files/base-mechvent-cfis-supplemental-fan-exhaust.xml @@ -405,7 +405,6 @@ 330.0 8.0 true - 300.0 diff --git a/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml b/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml index 66f32265d3..1846df40d0 100644 --- a/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml +++ b/workflow/sample_files/base-mechvent-cfis-supplemental-fan-supply.xml @@ -405,7 +405,6 @@ 330.0 8.0 true - 300.0 From ba1239ddf0f7f1ff3c15c6779841a9eb28847325 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Thu, 29 Aug 2024 11:44:11 -0600 Subject: [PATCH 2/8] Address CI failures --- HPXMLtoOpenStudio/measure.xml | 18 ++++---- HPXMLtoOpenStudio/resources/airflow.rb | 2 +- HPXMLtoOpenStudio/resources/hpxml.rb | 5 +++ HPXMLtoOpenStudio/resources/hpxml_defaults.rb | 12 +++--- HPXMLtoOpenStudio/tests/test_airflow.rb | 2 +- HPXMLtoOpenStudio/tests/test_defaults.rb | 43 +++++++++++++------ HPXMLtoOpenStudio/tests/test_validation.rb | 6 +-- tasks.rb | 1 - .../sample_files/base-mechvent-multiple.xml | 1 - 9 files changed, 55 insertions(+), 35 deletions(-) diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index abf815c5df..dac93b406f 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 6f1b71cd-073a-4b20-bbc1-1e4d5ce1a151 - 2024-08-28T20:08:55Z + 54957d8f-0214-4cb8-9987-79151eb86dc8 + 2024-08-29T17:40:04Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -189,7 +189,7 @@ airflow.rb rb resource - 6D51E306 + B318F464 battery.rb @@ -357,13 +357,13 @@ hpxml.rb rb resource - 9222D4D6 + C45A51AE hpxml_defaults.rb rb resource - 6EC55ED7 + 70E11338 hpxml_schema/HPXML.xsd @@ -381,7 +381,7 @@ hpxml_schematron/EPvalidator.xml xml resource - AE956548 + 5C33FE12 hpxml_schematron/iso-schematron.xsd @@ -645,7 +645,7 @@ test_airflow.rb rb test - B8A66D0B + 171B5E6D test_battery.rb @@ -657,7 +657,7 @@ test_defaults.rb rb test - CBD787A1 + 8AFB237F test_enclosure.rb @@ -729,7 +729,7 @@ test_validation.rb rb test - 6EDC8C3A + C621EC4A test_water_heater.rb diff --git a/HPXMLtoOpenStudio/resources/airflow.rb b/HPXMLtoOpenStudio/resources/airflow.rb index 98bb6fbf5a..b1a10db2b0 100644 --- a/HPXMLtoOpenStudio/resources/airflow.rb +++ b/HPXMLtoOpenStudio/resources/airflow.rb @@ -1846,7 +1846,6 @@ def self.apply_cfis(infil_program, vent_mech_fans, cfis_fan_actuator, cfis_suppl @fan_rtf_sensor[@cfis_airloop[vent_mech.id]].each do |rtf_sensor| infil_program.addLine("Set fan_rtf_hvac = fan_rtf_hvac + #{rtf_sensor.name}") end - infil_program.addLine("Set cfis_fan_w = #{vent_mech.unit_fan_power}") # W infil_program.addLine('If @ABS(Minute - ZoneTimeStep*60) < 0.1') infil_program.addLine(" Set #{@cfis_t_sum_open_var[vent_mech.id].name} = 0") # New hour, time on summation re-initializes to 0 @@ -1868,6 +1867,7 @@ def self.apply_cfis(infil_program, vent_mech_fans, cfis_fan_actuator, cfis_suppl infil_program.addLine(" Set #{@cfis_f_damper_extra_open_var[vent_mech.id].name} = @Max (cfis_f_damper_open - fan_rtf_hvac) 0.0") if vent_mech.cfis_addtl_runtime_operating_mode == HPXML::CFISModeAirHandler # Air handler meets additional runtime requirement + infil_program.addLine("Set cfis_fan_w = #{vent_mech.unit_fan_power}") # W infil_program.addLine(" Set #{cfis_fan_actuator.name} = #{cfis_fan_actuator.name} + cfis_fan_w * #{@cfis_f_damper_extra_open_var[vent_mech.id].name}") elsif vent_mech.cfis_addtl_runtime_operating_mode == HPXML::CFISModeSupplementalFan if vent_mech.cfis_supplemental_fan.oa_unit_flow_rate < vent_mech.average_unit_flow_rate diff --git a/HPXMLtoOpenStudio/resources/hpxml.rb b/HPXMLtoOpenStudio/resources/hpxml.rb index e480c214cd..f0542a9cf1 100644 --- a/HPXMLtoOpenStudio/resources/hpxml.rb +++ b/HPXMLtoOpenStudio/resources/hpxml.rb @@ -8113,6 +8113,11 @@ def is_cfis_supplemental_fan # # @return [nil] def delete + if is_cfis_supplemental_fan + @parent_object.ventilation_fans.each do |vent_fan| + vent_fan.cfis_supplemental_fan_idref = nil if vent_fan.cfis_supplemental_fan_idref == @id + end + end @parent_object.ventilation_fans.delete(self) end diff --git a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb index 53add9a15a..b12d1ce93b 100644 --- a/HPXMLtoOpenStudio/resources/hpxml_defaults.rb +++ b/HPXMLtoOpenStudio/resources/hpxml_defaults.rb @@ -2579,21 +2579,21 @@ def self.apply_ventilation_fans(hpxml_bldg, weather, cfa, nbeds, eri_version) vent_fan.rated_flow_rate_isdefaulted = true end - if vent_fan.fan_power.nil? - # FIXME: CFIS W/cfm should apply to total air handler cfm in ventilation only mode, not just outdoor air cfm + if vent_fan.fan_power.nil? && vent_fan.fan_type != HPXML::MechVentTypeCFIS + # FIXME: CFIS fan power (for mode == HPXML::CFISModeAirHandler) needs to be applied after total air handler cfm is determined vent_fan.fan_power = (vent_fan.flow_rate * Airflow.get_default_mech_vent_fan_power(vent_fan, eri_version)).round(1) vent_fan.fan_power_isdefaulted = true end next unless vent_fan.fan_type == HPXML::MechVentTypeCFIS - if vent_fan.cfis_vent_mode_airflow_fraction.nil? - vent_fan.cfis_vent_mode_airflow_fraction = 1.0 - vent_fan.cfis_vent_mode_airflow_fraction_isdefaulted = true - end if vent_fan.cfis_addtl_runtime_operating_mode.nil? vent_fan.cfis_addtl_runtime_operating_mode = HPXML::CFISModeAirHandler vent_fan.cfis_addtl_runtime_operating_mode_isdefaulted = true end + if vent_fan.cfis_vent_mode_airflow_fraction.nil? && (vent_fan.cfis_addtl_runtime_operating_mode == HPXML::CFISModeAirHandler) + vent_fan.cfis_vent_mode_airflow_fraction = 1.0 + vent_fan.cfis_vent_mode_airflow_fraction_isdefaulted = true + end end # Default kitchen fan diff --git a/HPXMLtoOpenStudio/tests/test_airflow.rb b/HPXMLtoOpenStudio/tests/test_airflow.rb index 2c07fa2107..a345e7c402 100644 --- a/HPXMLtoOpenStudio/tests/test_airflow.rb +++ b/HPXMLtoOpenStudio/tests/test_airflow.rb @@ -488,7 +488,7 @@ def test_multiple_mechvent vent_fan_power_ervhrv = vent_fan_ervhrv.map { |f| f.average_unit_fan_power }.sum(0.0) vent_fan_cfis = whole_fans.select { |f| f.fan_type == HPXML::MechVentTypeCFIS } vent_fan_cfm_cfis = vent_fan_cfis.map { |f| f.oa_unit_flow_rate }.sum(0.0) - vent_fan_power_cfis = vent_fan_cfis.map { |f| f.fan_power }.sum(0.0) + vent_fan_power_cfis = vent_fan_cfis.select { |f| f.cfis_addtl_runtime_operating_mode == HPXML::CFISModeAirHandler }.map { |f| f.fan_power }.sum(0.0) vent_fan_mins_cfis = vent_fan_cfis.map { |f| f.hours_in_operation / 24.0 * 60.0 }.sum(0.0) # total mech vent fan power excluding cfis diff --git a/HPXMLtoOpenStudio/tests/test_defaults.rb b/HPXMLtoOpenStudio/tests/test_defaults.rb index 5bbde06eb9..5553bd33a2 100644 --- a/HPXMLtoOpenStudio/tests/test_defaults.rb +++ b/HPXMLtoOpenStudio/tests/test_defaults.rb @@ -2811,23 +2811,36 @@ def test_mech_ventilation_fans # Test inputs not overridden by defaults w/ CFIS hpxml, hpxml_bldg = _create_hpxml('base-mechvent-cfis.xml') vent_fan = hpxml_bldg.ventilation_fans.find { |f| f.used_for_whole_building_ventilation } - vent_fan.is_shared_system = false vent_fan.hours_in_operation = 12.0 vent_fan.fan_power = 12.5 vent_fan.rated_flow_rate = 222.0 vent_fan.cfis_vent_mode_airflow_fraction = 0.5 - vent_fan.cfis_addtl_runtime_operating_mode = HPXML::CFISModeSupplementalFan - hpxml_bldg.ventilation_fans.add(id: "VentilationFan#{hpxml_bldg.ventilation_fans.size + 1}", - tested_flow_rate: 79.0, - fan_power: 9.0, - fan_type: HPXML::MechVentTypeExhaust, - is_shared_system: false, - used_for_whole_building_ventilation: true) - suppl_vent_fan = hpxml_bldg.ventilation_fans[-1] - vent_fan.cfis_supplemental_fan_idref = suppl_vent_fan.id XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_mech_vent_values(default_hpxml_bldg, false, 12.0, 12.5, 222.0, 0.5, HPXML::CFISModeSupplementalFan) + _test_default_mech_vent_values(default_hpxml_bldg, false, 12.0, 12.5, 222.0, 0.5, HPXML::CFISModeAirHandler) + + # Test defaults w/ CFIS + vent_fan.is_shared_system = nil + vent_fan.hours_in_operation = nil + vent_fan.fan_power = nil + vent_fan.rated_flow_rate = nil + vent_fan.cfis_vent_mode_airflow_fraction = nil + vent_fan.cfis_addtl_runtime_operating_mode = nil + XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) + _default_hpxml, default_hpxml_bldg = _test_measure() + _test_default_mech_vent_values(default_hpxml_bldg, false, 8.0, nil, 305.4, 1.0, HPXML::CFISModeAirHandler) + + # Test inputs not overridden by defaults w/ CFIS & supplemental fan + hpxml, hpxml_bldg = _create_hpxml('base-mechvent-cfis-supplemental-fan-exhaust.xml') + vent_fan = hpxml_bldg.ventilation_fans.find { |f| f.used_for_whole_building_ventilation && f.fan_type == HPXML::MechVentTypeCFIS } + vent_fan.hours_in_operation = 12.0 + vent_fan.rated_flow_rate = 222.0 + suppl_vent_fan = vent_fan.cfis_supplemental_fan + suppl_vent_fan.tested_flow_rate = 79.0 + suppl_vent_fan.fan_power = 9.0 + XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) + _default_hpxml, default_hpxml_bldg = _test_measure() + _test_default_mech_vent_values(default_hpxml_bldg, false, 12.0, nil, 222.0, nil, HPXML::CFISModeSupplementalFan) _test_default_mech_vent_suppl_values(default_hpxml_bldg, false, nil, 9.0, 79.0) # Test defaults w/ CFIS supplemental fan @@ -2847,7 +2860,7 @@ def test_mech_ventilation_fans vent_fan.cfis_addtl_runtime_operating_mode = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_mech_vent_values(default_hpxml_bldg, false, 8.0, 177.1, 305.4, 1.0, HPXML::CFISModeAirHandler) + _test_default_mech_vent_values(default_hpxml_bldg, false, 8.0, nil, 305.4, 1.0, HPXML::CFISModeAirHandler) # Test inputs not overridden by defaults w/ ERV hpxml, hpxml_bldg = _create_hpxml('base-mechvent-erv.xml') @@ -5221,7 +5234,11 @@ def _test_default_mech_vent_values(hpxml_bldg, is_shared_system, hours_in_operat assert_equal(is_shared_system, vent_fan.is_shared_system) assert_equal(hours_in_operation, vent_fan.hours_in_operation) - assert_in_delta(fan_power, vent_fan.fan_power, 0.1) + if fan_power.nil? + assert_nil(vent_fan.fan_power) + else + assert_in_delta(fan_power, vent_fan.fan_power, 0.1) + end assert_in_delta(flow_rate, vent_fan.rated_flow_rate.to_f + vent_fan.calculated_flow_rate.to_f + vent_fan.tested_flow_rate.to_f + vent_fan.delivered_ventilation.to_f, 0.1) if cfis_vent_mode_airflow_fraction.nil? assert_nil(vent_fan.cfis_vent_mode_airflow_fraction) diff --git a/HPXMLtoOpenStudio/tests/test_validation.rb b/HPXMLtoOpenStudio/tests/test_validation.rb index e27364940f..2aed206836 100644 --- a/HPXMLtoOpenStudio/tests/test_validation.rb +++ b/HPXMLtoOpenStudio/tests/test_validation.rb @@ -233,7 +233,7 @@ def test_schema_schematron_error_messages 'missing-attached-to-zone' => ['Expected 1 element(s) for xpath: AttachedToZone'], 'missing-capacity-detailed-performance' => ['Expected 1 element(s) for xpath: ../../../HeatingCapacity', 'Expected 1 element(s) for xpath: ../../../CoolingCapacity'], - 'missing-cfis-supplemental-fan' => ['Expected 1 element(s) for xpath: SupplementalFan'], + 'missing-cfis-supplemental-fan' => ['Expected 1 element(s) for xpath: CFISControls/SupplementalFan'], 'missing-distribution-cfa-served' => ['Expected 1 element(s) for xpath: ../../../ConditionedFloorAreaServed [context: /HPXML/Building/BuildingDetails/Systems/HVAC/HVACDistribution/DistributionSystemType/AirDistribution/Ducts[not(DuctSurfaceArea)], id: "Ducts2"]'], 'missing-duct-area' => ['Expected 1 or more element(s) for xpath: FractionDuctArea | DuctSurfaceArea [context: /HPXML/Building/BuildingDetails/Systems/HVAC/HVACDistribution/DistributionSystemType/AirDistribution/Ducts[DuctLocation], id: "Ducts2"]'], 'missing-duct-location' => ['Expected 0 element(s) for xpath: FractionDuctArea | DuctSurfaceArea [context: /HPXML/Building/BuildingDetails/Systems/HVAC/HVACDistribution/DistributionSystemType/AirDistribution/Ducts[not(DuctLocation)], id: "Ducts2"]'], @@ -692,8 +692,8 @@ def test_schema_schematron_error_messages hpxml_bldg.heat_pumps[0].cooling_capacity = nil hpxml_bldg.heat_pumps[0].heating_capacity = nil elsif ['missing-cfis-supplemental-fan'].include? error_case - hpxml, hpxml_bldg = _create_hpxml('base-mechvent-cfis.xml') - hpxml_bldg.ventilation_fans[0].cfis_addtl_runtime_operating_mode = HPXML::CFISModeSupplementalFan + hpxml, hpxml_bldg = _create_hpxml('base-mechvent-cfis-supplemental-fan-exhaust.xml') + hpxml_bldg.ventilation_fans[1].delete elsif ['missing-distribution-cfa-served'].include? error_case hpxml, hpxml_bldg = _create_hpxml('base.xml') hpxml_bldg.hvac_distributions[0].ducts[1].duct_surface_area = nil diff --git a/tasks.rb b/tasks.rb index 2ab5edb35c..7346fe0934 100644 --- a/tasks.rb +++ b/tasks.rb @@ -2211,7 +2211,6 @@ def apply_hpxml_modification_sample_files(hpxml_path, hpxml) fan_type: HPXML::MechVentTypeCFIS, tested_flow_rate: 42.5, hours_in_operation: 8, - fan_power: 37.5, used_for_whole_building_ventilation: true, cfis_addtl_runtime_operating_mode: HPXML::CFISModeSupplementalFan, cfis_supplemental_fan_idref: hpxml_bldg.ventilation_fans.find { |f| f.fan_type == HPXML::MechVentTypeExhaust }.id, diff --git a/workflow/sample_files/base-mechvent-multiple.xml b/workflow/sample_files/base-mechvent-multiple.xml index 0065c3ffc2..e7a4826b70 100644 --- a/workflow/sample_files/base-mechvent-multiple.xml +++ b/workflow/sample_files/base-mechvent-multiple.xml @@ -627,7 +627,6 @@ 42.5 8.0 true - 37.5 From b26f7748d4e2eaa55cce26370a3f8353ad4e6b95 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Thu, 29 Aug 2024 13:42:55 -0600 Subject: [PATCH 3/8] A few more fixes. --- HPXMLtoOpenStudio/measure.xml | 6 +++--- HPXMLtoOpenStudio/tests/test_airflow.rb | 2 -- workflow/tests/ACCA_Examples/Bob_Ross_Residence.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-1.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-12.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-13.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-15.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-16.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-17.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-2.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-22.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-23.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-3.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-5.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-6.xml | 1 + workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-7.xml | 1 + workflow/tests/ACCA_Examples/Walker_Residence.xml | 1 + 17 files changed, 18 insertions(+), 5 deletions(-) diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index dac93b406f..c39e4d8079 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 54957d8f-0214-4cb8-9987-79151eb86dc8 - 2024-08-29T17:40:04Z + 9ecd1008-2053-4712-9084-a36f4836271c + 2024-08-29T19:42:42Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -645,7 +645,7 @@ test_airflow.rb rb test - 171B5E6D + F88382CC test_battery.rb diff --git a/HPXMLtoOpenStudio/tests/test_airflow.rb b/HPXMLtoOpenStudio/tests/test_airflow.rb index a345e7c402..4dcc20d077 100644 --- a/HPXMLtoOpenStudio/tests/test_airflow.rb +++ b/HPXMLtoOpenStudio/tests/test_airflow.rb @@ -391,7 +391,6 @@ def test_mechanical_ventilation_cfis_with_supplemental_fan # Get HPXML values vent_fan = hpxml_bldg.ventilation_fans.find { |f| f.used_for_whole_building_ventilation } vent_fan_cfm = vent_fan.oa_unit_flow_rate - vent_fan_power = vent_fan.fan_power vent_fan_mins = vent_fan.hours_in_operation / 24.0 * 60.0 suppl_vent_fan_cfm = vent_fan.cfis_supplemental_fan.oa_unit_flow_rate suppl_vent_fan_power = vent_fan.cfis_supplemental_fan.fan_power @@ -402,7 +401,6 @@ def test_mechanical_ventilation_cfis_with_supplemental_fan assert_in_epsilon(suppl_vent_fan_cfm, UnitConversions.convert(program_values['cfis_suppl_Q_oa'].sum, 'm^3/s', 'cfm'), 0.01) assert_in_epsilon(0.0, UnitConversions.convert(program_values['QWHV_sup'].sum, 'm^3/s', 'cfm'), 0.01) assert_in_epsilon(0.0, UnitConversions.convert(program_values['QWHV_exh'].sum, 'm^3/s', 'cfm'), 0.01) - assert_in_epsilon(vent_fan_power, program_values['cfis_fan_w'].sum, 0.01) assert_in_epsilon(suppl_vent_fan_power, program_values['cfis_suppl_fan_w'].sum, 0.01) assert_in_epsilon(vent_fan_mins, program_values['cfis_t_min_hr_open'].sum, 0.01) assert_in_epsilon(0.0, UnitConversions.convert(program_values['Qrange'].sum, 'm^3/s', 'cfm'), 0.01) diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence.xml index 9dd9aac927..c0633959a3 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence.xml @@ -1306,6 +1306,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-1.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-1.xml index 4d57068777..355b605e97 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-1.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-1.xml @@ -1306,6 +1306,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-12.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-12.xml index fdf7302d15..9dc1ef8c93 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-12.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-12.xml @@ -1306,6 +1306,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-13.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-13.xml index 9e1ba4eabe..d423bd675d 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-13.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-13.xml @@ -1307,6 +1307,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-15.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-15.xml index 9c6a3e243f..a92350bd64 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-15.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-15.xml @@ -1306,6 +1306,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-16.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-16.xml index ad001b5cac..64b20c3ea2 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-16.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-16.xml @@ -968,6 +968,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-17.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-17.xml index 0c73e57214..828781c72f 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-17.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-17.xml @@ -1306,6 +1306,7 @@ 300.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-2.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-2.xml index 7713ab3044..6cd62aa2b6 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-2.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-2.xml @@ -1306,6 +1306,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-22.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-22.xml index 01b53ef926..5f0b985cd6 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-22.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-22.xml @@ -1306,6 +1306,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-23.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-23.xml index ec5d672913..d30269fc6e 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-23.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-23.xml @@ -1110,6 +1110,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-3.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-3.xml index 514ee7f1ca..371378ce3c 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-3.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-3.xml @@ -1306,6 +1306,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-5.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-5.xml index 1e026ef373..b3895a25f4 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-5.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-5.xml @@ -1231,6 +1231,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-6.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-6.xml index 612ef36fb6..8c0fe25acf 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-6.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-6.xml @@ -1298,6 +1298,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-7.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-7.xml index 274ac51f6e..537333d882 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-7.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-7.xml @@ -1306,6 +1306,7 @@ 150.0 8.0 true + 300.0 diff --git a/workflow/tests/ACCA_Examples/Walker_Residence.xml b/workflow/tests/ACCA_Examples/Walker_Residence.xml index 90e277d61c..76d0be3259 100644 --- a/workflow/tests/ACCA_Examples/Walker_Residence.xml +++ b/workflow/tests/ACCA_Examples/Walker_Residence.xml @@ -1033,6 +1033,7 @@ 150.0 8.0 true + 300.0 From e4fbc89a97ef03553d478acbab0029aa9d396bc1 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Thu, 29 Aug 2024 15:34:11 -0600 Subject: [PATCH 4/8] Update expected simulation results --- workflow/tests/util.rb | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/workflow/tests/util.rb b/workflow/tests/util.rb index 20a6f12b1c..ed85e42042 100644 --- a/workflow/tests/util.rb +++ b/workflow/tests/util.rb @@ -891,30 +891,31 @@ def _verify_outputs(rundir, hpxml_path, results, hpxml, unit_multiplier) assert_equal(hpxml_bldg.total_fraction_cool_load_served > 0, clg_energy > 0) # Mechanical Ventilation - whole_vent_fans = hpxml_bldg.ventilation_fans.select { |vent_mech| vent_mech.used_for_whole_building_ventilation && !vent_mech.is_cfis_supplemental_fan } - local_vent_fans = hpxml_bldg.ventilation_fans.select { |vent_mech| vent_mech.used_for_local_ventilation } - fan_cfis_with_addl_runtime = whole_vent_fans.select { |vent_mech| vent_mech.fan_type == HPXML::MechVentTypeCFIS && vent_mech.cfis_addtl_runtime_operating_mode != HPXML::CFISModeNone } - fan_sup = whole_vent_fans.select { |vent_mech| vent_mech.fan_type == HPXML::MechVentTypeSupply } - fan_exh = whole_vent_fans.select { |vent_mech| vent_mech.fan_type == HPXML::MechVentTypeExhaust } - fan_bal = whole_vent_fans.select { |vent_mech| [HPXML::MechVentTypeBalanced, HPXML::MechVentTypeERV, HPXML::MechVentTypeHRV].include?(vent_mech.fan_type) } - vent_fan_kitchen = local_vent_fans.select { |vent_mech| vent_mech.fan_location == HPXML::LocationKitchen } - vent_fan_bath = local_vent_fans.select { |vent_mech| vent_mech.fan_location == HPXML::LocationBath } + whole_vent_fans = hpxml_bldg.ventilation_fans.select { |f| f.used_for_whole_building_ventilation && !f.is_cfis_supplemental_fan } + local_vent_fans = hpxml_bldg.ventilation_fans.select { |f| f.used_for_local_ventilation } + fan_cfis = whole_vent_fans.select { |f| f.fan_type == HPXML::MechVentTypeCFIS && f.cfis_addtl_runtime_operating_mode != HPXML::CFISModeNone } + fan_sup = whole_vent_fans.select { |f| f.fan_type == HPXML::MechVentTypeSupply } + fan_exh = whole_vent_fans.select { |f| f.fan_type == HPXML::MechVentTypeExhaust } + fan_bal = whole_vent_fans.select { |f| [HPXML::MechVentTypeBalanced, HPXML::MechVentTypeERV, HPXML::MechVentTypeHRV].include?(f.fan_type) } + vent_fan_kitchen = local_vent_fans.select { |f| f.fan_location == HPXML::LocationKitchen } + vent_fan_bath = local_vent_fans.select { |f| f.fan_location == HPXML::LocationBath } mv_energy = UnitConversions.convert(results['End Use: Electricity: Mech Vent (MBtu)'], 'MBtu', 'GJ') - if not (fan_cfis_with_addl_runtime + fan_sup + fan_exh + fan_bal + vent_fan_kitchen + vent_fan_bath).empty? - if not fan_cfis_with_addl_runtime.empty? + if not (fan_cfis + fan_sup + fan_exh + fan_bal + vent_fan_kitchen + vent_fan_bath).empty? + if not fan_cfis.empty? if (fan_sup + fan_exh + fan_bal + vent_fan_kitchen + vent_fan_bath).empty? # CFIS only, check for positive mech vent energy that is less than the energy if it had run 24/7 - fan_gj = fan_cfis_with_addl_runtime.map { |vent_mech| UnitConversions.convert(vent_mech.unit_fan_power * vent_mech.hours_in_operation * 365.0, 'Wh', 'GJ') }.sum(0.0) + max_fan_gj = fan_cfis.select { |f| f.cfis_addtl_runtime_operating_mode == HPXML::CFISModeAirHandler }.map { |f| UnitConversions.convert(f.unit_fan_power * f.hours_in_operation * 365.0, 'Wh', 'GJ') }.sum(0.0) + max_fan_gj += fan_cfis.select { |f| f.cfis_addtl_runtime_operating_mode == HPXML::CFISModeSupplementalFan }.map { |f| UnitConversions.convert(f.cfis_supplemental_fan.unit_fan_power * (f.average_unit_flow_rate / f.cfis_supplemental_fan.oa_unit_flow_rate * 24) * 365.0, 'Wh', 'GJ') }.sum(0.0) assert_operator(mv_energy, :>, 0) - assert_operator(mv_energy, :<, fan_gj) + assert_operator(mv_energy, :<, max_fan_gj) end else # Supply, exhaust, ERV, HRV, etc., check for appropriate mech vent energy fan_gj = 0 - fan_gj += (fan_sup + fan_exh + fan_bal).map { |vent_mech| UnitConversions.convert(vent_mech.unit_fan_power * vent_mech.hours_in_operation * 365.0, 'Wh', 'GJ') }.sum(0.0) - fan_gj += vent_fan_kitchen.map { |vent_kitchen| UnitConversions.convert(vent_kitchen.unit_fan_power * vent_kitchen.hours_in_operation * vent_kitchen.count * 365.0, 'Wh', 'GJ') }.sum(0.0) - fan_gj += vent_fan_bath.map { |vent_bath| UnitConversions.convert(vent_bath.unit_fan_power * vent_bath.hours_in_operation * vent_bath.count * 365.0, 'Wh', 'GJ') }.sum(0.0) + fan_gj += (fan_sup + fan_exh + fan_bal).map { |f| UnitConversions.convert(f.unit_fan_power * f.hours_in_operation * 365.0, 'Wh', 'GJ') }.sum(0.0) + fan_gj += vent_fan_kitchen.map { |f| UnitConversions.convert(f.unit_fan_power * f.hours_in_operation * f.count * 365.0, 'Wh', 'GJ') }.sum(0.0) + fan_gj += vent_fan_bath.map { |f| UnitConversions.convert(f.unit_fan_power * f.hours_in_operation * f.count * 365.0, 'Wh', 'GJ') }.sum(0.0) # Maximum error that can be caused by rounding assert_in_delta(mv_energy, fan_gj, 0.006) end From 1ae00d2c406797d3880d3a0b2e464b4ca7a9be6a Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Mon, 14 Oct 2024 10:00:49 -0600 Subject: [PATCH 5/8] Implement CFIS fan power defaulting. --- Changelog.md | 1 + HPXMLtoOpenStudio/measure.xml | 14 ++--- HPXMLtoOpenStudio/resources/defaults.rb | 53 ++++++++++++++----- HPXMLtoOpenStudio/tests/test_defaults.rb | 15 +----- docs/source/workflow_inputs.rst | 2 +- .../ACCA_Examples/Bob_Ross_Residence.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-1.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-12.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-13.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-15.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-16.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-17.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-2.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-20.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-22.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-23.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-3.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-4.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-5.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-6.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_3-7.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_4.xml | 1 - .../ACCA_Examples/Bob_Ross_Residence_5.xml | 1 - .../tests/ACCA_Examples/Walker_Residence.xml | 1 - 24 files changed, 48 insertions(+), 56 deletions(-) diff --git a/Changelog.md b/Changelog.md index 63f080afaf..a426d90ffe 100644 --- a/Changelog.md +++ b/Changelog.md @@ -45,6 +45,7 @@ __Bugfixes__ - Fixes lower element height for a water heater using the advanced `WaterHeatingSystem/extension/TankModelType=stratified`. - Fixes possible error for a combi boiler system. - Fixes error if modeling a ground-to-air heat pump with a separate backup heating system. +- Fixes default CFIS fan power during ventilation only mode. ## OpenStudio-HPXML v1.8.1 diff --git a/HPXMLtoOpenStudio/measure.xml b/HPXMLtoOpenStudio/measure.xml index 804b3c8fdc..17dc245037 100644 --- a/HPXMLtoOpenStudio/measure.xml +++ b/HPXMLtoOpenStudio/measure.xml @@ -3,8 +3,8 @@ 3.1 hpxm_lto_openstudio b1543b30-9465-45ff-ba04-1d1f85e763bc - 68756ccb-34d8-41ea-b8f1-c4e3d7a52f58 - 2024-10-14T15:22:50Z + b5f6daaa-2d62-4c04-8442-5dd880a2a3eb + 2024-10-14T15:59:52Z D8922A73 HPXMLtoOpenStudio HPXML to OpenStudio Translator @@ -327,7 +327,7 @@ defaults.rb rb resource - 1482B082 + DF462CB6 energyplus.rb @@ -647,12 +647,6 @@ resource 93120E27 - - in.schedules.csv - csv - test - 61EDE63A - test_airflow.rb rb @@ -669,7 +663,7 @@ test_defaults.rb rb test - 7C5D39F8 + 05F155DA test_enclosure.rb diff --git a/HPXMLtoOpenStudio/resources/defaults.rb b/HPXMLtoOpenStudio/resources/defaults.rb index 23fc450f7e..dfe8200afa 100644 --- a/HPXMLtoOpenStudio/resources/defaults.rb +++ b/HPXMLtoOpenStudio/resources/defaults.rb @@ -96,8 +96,9 @@ def self.apply(runner, hpxml, hpxml_bldg, weather, schedules_file: nil, convert_ # Do HVAC sizing after all other defaults have been applied all_zone_loads, all_space_loads = apply_hvac_sizing(runner, hpxml_bldg, weather) - # Default detailed performance has to be after sizing to have autosized capacity information + # These need to be applied after sizing HVAC capacities/airflows apply_detailed_performance_data_for_var_speed_systems(hpxml_bldg) + apply_cfis_fan_power(hpxml_bldg) cleanup_zones_spaces(hpxml_bldg) @@ -2734,10 +2735,9 @@ def self.apply_ventilation_fans(hpxml_bldg, weather, eri_version) vent_fan.rated_flow_rate_isdefaulted = true end - if vent_fan.fan_power.nil? && vent_fan.fan_type != HPXML::MechVentTypeCFIS - # FIXME: CFIS fan power (for mode == HPXML::CFISModeAirHandler) needs to be applied after total air handler cfm is determined - fan_w_per_cfm = get_mech_vent_fan_efficiency(vent_fan, eri_version) - vent_fan.fan_power = (vent_fan.flow_rate * fan_w_per_cfm).round(1) + if vent_fan.fan_power.nil? && vent_fan.fan_type != HPXML::MechVentTypeCFIS # CFIS systems have their fan power defaulted later once we have autosized the total blower fan airflow rate + fan_w_per_cfm = get_mech_vent_fan_efficiency(vent_fan) + vent_fan.fan_power = (vent_fan.flow_rate * fan_w_per_cfm).round(2) vent_fan.fan_power_isdefaulted = true end next unless vent_fan.fan_type == HPXML::MechVentTypeCFIS @@ -2819,6 +2819,40 @@ def self.apply_ventilation_fans(hpxml_bldg, weather, eri_version) end end + # Assigns the blower fan power for a CFIS system where the optional input has been omitted. + # + # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit + # @return [nil] + def self.apply_cfis_fan_power(hpxml_bldg) + hpxml_bldg.ventilation_fans.each do |vent_fan| + next unless vent_fan.used_for_whole_building_ventilation + next unless vent_fan.fan_type == HPXML::MechVentTypeCFIS + next unless vent_fan.cfis_addtl_runtime_operating_mode == HPXML::CFISModeAirHandler + next unless vent_fan.fan_power.nil? + + hvac_systems = vent_fan.distribution_system.hvac_systems + fan_w_per_cfm = hvac_systems[0].fan_watts_per_cfm + + # Get max blower airflow rate + blower_flow_rate = nil + hvac_systems.each do |hvac_system| + if hvac_system.respond_to?(:heating_airflow_cfm) && hvac_system.heating_airflow_cfm > blower_flow_rate.to_f + blower_flow_rate = hvac_system.heating_airflow_cfm + end + if hvac_system.respond_to?(:cooling_airflow_cfm) && hvac_system.cooling_airflow_cfm > blower_flow_rate.to_f + blower_flow_rate = hvac_system.cooling_airflow_cfm + end + end + fail 'Unexpected error.' if blower_flow_rate.to_f == 0 + + # Calculate blower airflow rate in vent only mode + blower_flow_rate *= vent_fan.cfis_vent_mode_airflow_fraction + + vent_fan.fan_power = (blower_flow_rate * fan_w_per_cfm).round(2) + vent_fan.fan_power_isdefaulted = true + end + end + # Assigns default values for omitted optional inputs in the HPXML::WaterHeatingSystem objects # # @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit @@ -4665,9 +4699,8 @@ def self.get_mech_vent_flow_rate_for_vent_fan(hpxml_bldg, vent_fan, weather, eri # Gets the default whole-home mechanical ventilation fan efficiency. # # @param vent_fan [HPXML::VentilationFan] The HPXML ventilation fan of interest - # @param eri_version [String] Version of the ANSI/RESNET/ICC 301 Standard to use for equations/assumptions # @return [Double] Fan efficiency (W/cfm) - def self.get_mech_vent_fan_efficiency(vent_fan, eri_version) + def self.get_mech_vent_fan_efficiency(vent_fan) # Returns fan power in W/cfm, based on ANSI 301 if vent_fan.is_shared_system return 1.00 # Table 4.2.2(1) Note (n) @@ -4677,12 +4710,6 @@ def self.get_mech_vent_fan_efficiency(vent_fan, eri_version) return 0.70 elsif [HPXML::MechVentTypeERV, HPXML::MechVentTypeHRV].include? vent_fan.fan_type return 1.00 - elsif [HPXML::MechVentTypeCFIS].include? vent_fan.fan_type - if Constants::ERIVersions.index(eri_version) >= Constants::ERIVersions.index('2022') - return 0.58 - else - return 0.50 - end else fail "Unexpected fan_type: '#{fan_type}'." end diff --git a/HPXMLtoOpenStudio/tests/test_defaults.rb b/HPXMLtoOpenStudio/tests/test_defaults.rb index 4690439d08..6b6488347e 100644 --- a/HPXMLtoOpenStudio/tests/test_defaults.rb +++ b/HPXMLtoOpenStudio/tests/test_defaults.rb @@ -2966,7 +2966,7 @@ def test_mech_ventilation_fans used_for_whole_building_ventilation: true) XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_mech_vent_values(default_hpxml_bldg, false, 24.0, 19.8, 56.9) + _test_default_mech_vent_values(default_hpxml_bldg, false, 24.0, 19.9, 56.9) # Test defaults w/ MF building, guarded test hpxml_bldg.air_infiltration_measurements[0].infiltration_type = HPXML::InfiltrationTypeUnitExterior @@ -3030,7 +3030,7 @@ def test_mech_ventilation_fans vent_fan.cfis_addtl_runtime_operating_mode = nil XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_mech_vent_values(default_hpxml_bldg, false, 8.0, nil, 305.4, 1.0, HPXML::CFISModeAirHandler) + _test_default_mech_vent_values(default_hpxml_bldg, false, 8.0, 300.0, 305.4, 1.0, HPXML::CFISModeAirHandler) # Test inputs not overridden by defaults w/ CFIS & supplemental fan hpxml, hpxml_bldg = _create_hpxml('base-mechvent-cfis-supplemental-fan-exhaust.xml') @@ -3053,17 +3053,6 @@ def test_mech_ventilation_fans _default_hpxml, default_hpxml_bldg = _test_measure() _test_default_mech_vent_suppl_values(default_hpxml_bldg, false, nil, 35.6, 101.8) - # Test defaults w/ CFIS - vent_fan.is_shared_system = nil - vent_fan.hours_in_operation = nil - vent_fan.fan_power = nil - vent_fan.rated_flow_rate = nil - vent_fan.cfis_vent_mode_airflow_fraction = nil - vent_fan.cfis_addtl_runtime_operating_mode = nil - XMLHelper.write_file(hpxml.to_doc, @tmp_hpxml_path) - _default_hpxml, default_hpxml_bldg = _test_measure() - _test_default_mech_vent_values(default_hpxml_bldg, false, 8.0, nil, 305.4, 1.0, HPXML::CFISModeAirHandler) - # Test inputs not overridden by defaults w/ ERV hpxml, hpxml_bldg = _create_hpxml('base-mechvent-erv.xml') vent_fan = hpxml_bldg.ventilation_fans.find { |f| f.used_for_whole_building_ventilation } diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 43ed379f74..07378eacd4 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -3809,7 +3809,7 @@ Each central fan integrated supply (CFIS) system is entered as a ``/HPXML/Buildi .. [#] HoursInOperation is combined with the flow rate to form the hourly target ventilation rate (e.g., inputs of 90 cfm and 8 hrs/day produce an hourly target ventilation rate of 30 cfm). .. [#] All other UsedFor... elements (i.e., ``UsedForLocalVentilation``, ``UsedForSeasonalCoolingLoadReduction``, ``UsedForGarageVentilation``) must be omitted or false. .. [#] FanPower only applies when AdditionalRuntimeOperatingMode="air handler fan", in which it determines the blower fan power during ventilation only mode. - .. [#] If FanPower not provided, defaults to 0.58 W/cfm based on ANSI/RESNET/ICC 301-2022 Addendum C. + .. [#] If FanPower not provided, defaults to the attached HVAC system's FanPowerWattsPerCFM multiplied by the maximum blower airflow rate and VentilationOnlyModeAirflowFraction. .. [#] HVACDistribution type cannot be :ref:`hvac_distribution_hydronic`. .. [#] VentilationOnlyModeAirflowFraction only applies when AdditionalRuntimeOperatingMode="air handler fan". Defines the blower airflow rate when operating in ventilation only mode (i.e., not heating or cooling mode), as a fraction of the maximum blower airflow rate. diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence.xml index 715c6a6228..97c255a779 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence.xml @@ -1367,7 +1367,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-1.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-1.xml index 62b0f90672..2b349b3e1e 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-1.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-1.xml @@ -1367,7 +1367,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-12.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-12.xml index b442ba0072..9177ba4b9f 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-12.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-12.xml @@ -1367,7 +1367,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-13.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-13.xml index 878a575784..063b394e58 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-13.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-13.xml @@ -1368,7 +1368,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-15.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-15.xml index c369778bb6..e036a0cd2b 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-15.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-15.xml @@ -1367,7 +1367,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-16.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-16.xml index d5af13874b..f0bb98239d 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-16.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-16.xml @@ -994,7 +994,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-17.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-17.xml index 71f2e9722c..1f9d175d7c 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-17.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-17.xml @@ -1367,7 +1367,6 @@ 300.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-2.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-2.xml index 56fe3ba398..243edeabbc 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-2.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-2.xml @@ -1367,7 +1367,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-20.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-20.xml index 71f2e9722c..1f9d175d7c 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-20.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-20.xml @@ -1367,7 +1367,6 @@ 300.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-22.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-22.xml index 9060e5f5da..870b69fe85 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-22.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-22.xml @@ -1367,7 +1367,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-23.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-23.xml index e90fd8cdc7..8a6b6ee894 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-23.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-23.xml @@ -1171,7 +1171,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-3.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-3.xml index 26305351b6..31773a04b1 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-3.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-3.xml @@ -1302,7 +1302,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-4.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-4.xml index 319e65eba4..b4d0bb782d 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-4.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-4.xml @@ -1358,7 +1358,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-5.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-5.xml index 315d797a57..fd8c3f8493 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-5.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-5.xml @@ -1201,7 +1201,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-6.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-6.xml index 56f0a2bfbf..9cc4256de7 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-6.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-6.xml @@ -1359,7 +1359,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-7.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-7.xml index 68d8ee07a6..2698e6634d 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-7.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_3-7.xml @@ -1367,7 +1367,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_4.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_4.xml index d9e7c45388..d965355a8b 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_4.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_4.xml @@ -1367,7 +1367,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_5.xml b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_5.xml index f25a21220a..96be9c377a 100644 --- a/workflow/tests/ACCA_Examples/Bob_Ross_Residence_5.xml +++ b/workflow/tests/ACCA_Examples/Bob_Ross_Residence_5.xml @@ -1367,7 +1367,6 @@ 150.0 8.0 true - 300.0 diff --git a/workflow/tests/ACCA_Examples/Walker_Residence.xml b/workflow/tests/ACCA_Examples/Walker_Residence.xml index 87813a1a54..f4f6a2ea83 100644 --- a/workflow/tests/ACCA_Examples/Walker_Residence.xml +++ b/workflow/tests/ACCA_Examples/Walker_Residence.xml @@ -1054,7 +1054,6 @@ 150.0 8.0 true - 300.0 From 7b79e72296b77e367937d878655cc4cbe7d126e8 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 14 Oct 2024 16:52:57 +0000 Subject: [PATCH 6/8] Latest results. --- workflow/tests/base_results/results_simulations_bills.csv | 4 ++-- workflow/tests/base_results/results_simulations_energy.csv | 4 ++-- workflow/tests/base_results/results_simulations_misc.csv | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/workflow/tests/base_results/results_simulations_bills.csv b/workflow/tests/base_results/results_simulations_bills.csv index d985a7b62f..51189ee85c 100644 --- a/workflow/tests/base_results/results_simulations_bills.csv +++ b/workflow/tests/base_results/results_simulations_bills.csv @@ -381,7 +381,7 @@ base-misc-bills-pv-detailed-only.xml,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-bills-pv-mixed.xml,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,861.83,144.0,1303.17,-978.65,468.52,144.0,249.31,393.31,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,766.89,108.0,1256.03,-990.45,373.58,144.0,249.31,393.31,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-bills-pv.xml,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,638.84,465.0,1259.1,-1479.24,244.86,132.0,261.98,393.98,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,104.21,465.0,1259.1,-2013.87,-289.77,132.0,261.98,393.98,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-318.61,210.0,1259.1,-2181.7,-712.59,132.0,261.98,393.98,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-bills.xml,1809.08,144.0,1259.1,0.0,1403.1,144.0,261.98,405.98,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-misc-defaults.xml,1113.36,144.0,1160.39,-704.39,600.0,144.0,369.36,513.36,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-misc-defaults.xml,1113.38,144.0,1160.41,-704.39,600.02,144.0,369.36,513.36,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-emissions.xml,892.37,144.0,1333.71,-978.65,499.06,144.0,249.31,393.31,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-generators-battery-scheduled.xml,1934.47,144.0,1068.23,0.0,1212.23,144.0,338.28,482.28,0.0,239.96,239.96,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-generators-battery.xml,1871.33,144.0,1005.09,0.0,1149.09,144.0,338.28,482.28,0.0,239.96,239.96,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 @@ -408,7 +408,7 @@ base-residents-0.xml,915.08,144.0,268.02,0.0,412.02,144.0,359.06,503.06,0.0,0.0, base-residents-1-misc-loads-large-uncommon.xml,2674.4,144.0,1817.12,0.0,1961.12,144.0,443.44,587.44,0.0,0.0,0.0,0.0,67.32,67.32,0.0,58.52,58.52,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-residents-1-misc-loads-large-uncommon2.xml,2404.08,144.0,1731.61,0.0,1875.61,144.0,254.61,398.61,0.0,71.34,71.34,0.0,0.0,0.0,0.0,0.0,0.0,0.0,58.52,58.52,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-residents-1.xml,1541.45,144.0,980.64,0.0,1124.64,144.0,272.81,416.81,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-residents-5-5.xml,1474.44,144.0,1588.0,-737.14,994.86,144.0,335.58,479.58,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-residents-5-5.xml,1474.47,144.0,1588.03,-737.14,994.89,144.0,335.58,479.58,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-schedules-detailed-all-10-mins.xml,1847.64,144.0,1312.81,0.0,1456.81,144.0,246.83,390.83,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-schedules-detailed-mixed-timesteps-power-outage.xml,1368.69,144.0,1028.77,0.0,1172.77,144.0,51.92,195.92,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-schedules-detailed-mixed-timesteps.xml,1608.5,144.0,1235.16,0.0,1379.16,144.0,85.34,229.34,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 diff --git a/workflow/tests/base_results/results_simulations_energy.csv b/workflow/tests/base_results/results_simulations_energy.csv index fa9f990294..2f7148fe8e 100644 --- a/workflow/tests/base_results/results_simulations_energy.csv +++ b/workflow/tests/base_results/results_simulations_energy.csv @@ -381,7 +381,7 @@ base-misc-bills-pv-detailed-only.xml,59.618,32.732,35.802,8.916,23.816,0.0,0.0,0 base-misc-bills-pv-mixed.xml,59.618,32.732,35.802,8.916,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,9.014,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,-26.886,0.0,0.0,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-bills-pv.xml,59.618,2.354,35.802,-21.462,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,9.014,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,-57.264,0.0,0.0,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-bills.xml,59.618,59.618,35.802,35.802,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,9.014,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-misc-defaults.xml,67.164,47.812,31.879,12.528,35.284,0.0,0.0,0.0,0.0,0.0,0.0,0.875,0.0,0.0,2.466,0.296,2.078,0.0,0.313,4.507,0.0,0.334,1.133,0.0,0.0,1.137,2.159,0.0,0.0,0.447,0.338,2.514,1.529,0.745,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,-19.352,0.0,0.509,35.284,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-misc-defaults.xml,67.164,47.813,31.88,12.528,35.284,0.0,0.0,0.0,0.0,0.0,0.0,0.875,0.0,0.0,2.466,0.296,2.078,0.0,0.313,4.507,0.0,0.334,1.133,0.0,0.0,1.137,2.159,0.0,0.0,0.447,0.338,2.514,1.529,0.745,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,-19.352,0.0,0.509,35.284,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-emissions.xml,60.457,33.571,36.641,9.755,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,9.014,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,-26.886,0.0,0.839,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-generators-battery-scheduled.xml,78.353,70.163,37.537,29.347,32.316,8.5,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,9.014,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-8.189,1.735,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-misc-generators-battery.xml,76.618,68.429,35.802,27.613,32.316,8.5,0.0,0.0,0.0,0.0,0.0,0.591,0.0,0.0,4.398,0.662,9.014,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.072,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-8.189,0.0,23.816,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.5,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 @@ -408,7 +408,7 @@ base-residents-0.xml,41.664,41.664,7.363,7.363,34.301,0.0,0.0,0.0,0.0,0.0,0.0,0. base-residents-1-misc-loads-large-uncommon.xml,99.944,99.944,49.922,49.922,42.362,0.0,2.527,5.133,0.0,0.0,0.0,0.565,0.0,0.0,4.562,0.695,3.75,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,4.293,1.024,0.0,0.2,0.221,0.917,1.115,0.0,2.007,6.55,5.687,1.15,0.0,6.508,2.937,2.899,0.0,0.0,0.0,22.778,0.0,0.0,0.0,0.0,0.0,18.039,0.0,0.0,1.544,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.527,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.133,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-residents-1-misc-loads-large-uncommon2.xml,79.555,79.555,47.572,47.572,24.322,2.527,0.0,0.0,5.133,0.0,0.0,0.565,0.0,0.0,4.562,0.695,3.75,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,4.293,1.024,0.0,0.2,0.221,0.917,1.115,0.0,2.007,6.55,5.687,1.15,0.0,6.508,0.587,2.899,0.0,0.0,0.0,22.778,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.544,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.527,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.133,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-residents-1.xml,53.002,53.002,26.941,26.941,26.061,0.0,0.0,0.0,0.0,0.0,0.0,0.647,0.0,0.0,4.03,0.593,3.753,0.0,0.0,4.507,0.0,0.334,0.0,0.0,0.0,0.0,2.067,0.0,0.0,0.2,0.221,0.917,1.115,0.0,2.007,6.55,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,26.061,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -base-residents-5-5.xml,75.685,55.433,43.627,23.376,32.058,0.0,0.0,0.0,0.0,0.0,0.0,0.795,0.0,0.0,2.681,0.334,8.12,0.0,0.328,4.507,0.0,0.334,1.139,0.0,0.0,1.182,2.164,0.0,0.0,0.593,0.511,3.798,2.36,0.745,3.423,10.263,0.0,0.0,0.0,0.0,0.0,0.0,-20.251,0.0,0.351,32.058,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +base-residents-5-5.xml,75.686,55.434,43.628,23.377,32.058,0.0,0.0,0.0,0.0,0.0,0.0,0.795,0.0,0.0,2.681,0.334,8.12,0.0,0.328,4.507,0.0,0.334,1.14,0.0,0.0,1.182,2.164,0.0,0.0,0.593,0.511,3.798,2.36,0.745,3.423,10.263,0.0,0.0,0.0,0.0,0.0,0.0,-20.251,0.0,0.351,32.058,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-schedules-detailed-all-10-mins.xml,59.646,59.646,36.067,36.067,23.579,0.0,0.0,0.0,0.0,0.0,0.0,0.585,0.0,0.0,4.619,0.698,9.023,0.0,0.0,4.51,0.0,0.334,0.0,0.0,0.0,0.0,2.073,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,23.579,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-schedules-detailed-mixed-timesteps-power-outage.xml,33.223,33.223,28.263,28.263,4.96,0.0,0.0,0.0,0.0,0.0,0.0,0.123,0.0,0.0,3.201,0.431,7.327,0.0,0.0,3.619,0.0,0.267,0.0,0.0,0.0,0.0,1.687,0.0,0.0,0.267,0.304,1.259,1.258,0.0,1.714,6.807,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.96,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 base-schedules-detailed-mixed-timesteps.xml,42.086,42.086,33.933,33.933,8.153,0.0,0.0,0.0,0.0,0.0,0.0,0.202,0.0,0.0,3.214,0.433,9.054,0.0,0.0,4.51,0.0,0.334,0.0,0.0,0.0,0.0,1.962,0.0,0.0,0.319,0.365,1.513,1.529,0.0,2.116,8.384,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.153,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 diff --git a/workflow/tests/base_results/results_simulations_misc.csv b/workflow/tests/base_results/results_simulations_misc.csv index fed3237f76..2625ed12e8 100644 --- a/workflow/tests/base_results/results_simulations_misc.csv +++ b/workflow/tests/base_results/results_simulations_misc.csv @@ -408,7 +408,7 @@ base-residents-0.xml,0.0,0.0,0.0,0.0,0.0,0.0,609.5,1840.9,1840.9,25.712,14.806,0 base-residents-1-misc-loads-large-uncommon.xml,0.0,0.0,821.3,625.4,3446.7,1167.8,2380.2,4185.6,4185.6,23.647,19.133,0.0 base-residents-1-misc-loads-large-uncommon2.xml,0.0,0.0,821.3,625.4,3446.7,1167.8,2242.4,4045.5,4045.5,23.647,19.133,0.0 base-residents-1.xml,0.0,0.0,821.3,625.4,3446.7,1167.8,1598.5,3242.6,3242.6,24.263,17.862,0.0 -base-residents-5-5.xml,0.0,0.0,2432.5,2087.7,23981.6,5810.6,3127.7,3738.2,3738.2,27.637,17.835,1.509 +base-residents-5-5.xml,0.0,0.0,2432.5,2087.7,23981.6,5810.6,3127.8,3738.2,3738.2,27.637,17.835,1.509 base-schedules-detailed-all-10-mins.xml,0.333,0.833,1354.7,998.0,11252.4,2582.1,9419.9,11054.3,11054.3,37.577,21.976,0.0 base-schedules-detailed-mixed-timesteps-power-outage.xml,1.667,0.0,1141.2,883.5,9207.2,2112.8,9366.2,10786.7,10786.7,47.12,21.538,0.0 base-schedules-detailed-mixed-timesteps.xml,0.0,0.0,1354.7,998.0,11253.7,2582.4,9360.3,10789.8,10789.8,34.057,21.541,0.0 From da7f96787334ccf615ab80ada9e95aa1678d94b4 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Mon, 14 Oct 2024 13:56:04 -0600 Subject: [PATCH 7/8] Clean up docs [ci skip] --- docs/source/workflow_inputs.rst | 7 ------- 1 file changed, 7 deletions(-) diff --git a/docs/source/workflow_inputs.rst b/docs/source/workflow_inputs.rst index 07378eacd4..2e7c8f112c 100644 --- a/docs/source/workflow_inputs.rst +++ b/docs/source/workflow_inputs.rst @@ -3814,13 +3814,6 @@ Each central fan integrated supply (CFIS) system is entered as a ``/HPXML/Buildi .. [#] VentilationOnlyModeAirflowFraction only applies when AdditionalRuntimeOperatingMode="air handler fan". Defines the blower airflow rate when operating in ventilation only mode (i.e., not heating or cooling mode), as a fraction of the maximum blower airflow rate. This value will depend on whether the blower fan can operate at reduced airflow rates during ventilation only operation. - It is used to determine how much conditioned air is recirculated through ducts during ventilation only operation, resulting in additional duct losses. - A value of zero will result in no conditioned air recirculation, and thus no additional duct losses. - -.. note:: - - CFIS systems are automated controllers that use the HVAC system's air handler fan to draw in outdoor air to meet an hourly ventilation target. - CFIS systems are modeled as assuming they A) maximize the use of normal heating/cooling runtime operation to meet the hourly ventilation target, B) block the flow of outdoor air when the hourly ventilation target has been met, and C) provide additional runtime operation (via air handler fan or supplemental fan) to meet the remainder of the hourly ventilation target when space heating/cooling runtime alone is not sufficient. .. _vent_fan_shared: From bb8d8b02566a016dfc7247e73c7d7d04786b0e61 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Tue, 15 Oct 2024 10:14:29 -0600 Subject: [PATCH 8/8] Fix CI --- .github/workflows/config.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/config.yml b/.github/workflows/config.yml index 7bf69a797e..3756f4d4df 100644 --- a/.github/workflows/config.yml +++ b/.github/workflows/config.yml @@ -160,7 +160,7 @@ jobs: mkdir workflow/tests/test_results cp -r test_results/results* workflow/tests/test_results cd workflow/tests - pip install pandas + pip install pandas --break-system-packages for csv in test_results/*1_*.csv; do csv2="${csv/1_/2_}"; csv_out="${csv/1_/_}"; python merge.py $csv $csv2 $csv_out; rm $csv; rm $csv2; done - name: Store results @@ -206,10 +206,10 @@ jobs: mkdir workflow/tests/test_results cp -r test_results/results* workflow/tests/test_results - pip install numpy - pip install pandas - pip install plotly - pip install kaleido + pip install numpy --break-system-packages + pip install pandas --break-system-packages + pip install plotly --break-system-packages + pip install kaleido --break-system-packages python workflow/tests/compare.py -a results python workflow/tests/compare.py -a visualize