Skip to content

Commit d9b1811

Browse files
authored
Merge pull request #1750 from NREL/max_power_ratio_with_unit_multipliers
Allow maximum power ratio schedule w/ unit multipliers
2 parents f61bbc7 + 9943852 commit d9b1811

File tree

7 files changed

+9
-23
lines changed

7 files changed

+9
-23
lines changed

.github/pull_request_template.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44

55
## Checklist
66

7-
PR Author: Check these when they're done. Not all may apply. ~~strikethrough~~ and check any that do not apply.
8-
9-
PR Reviewer: Verify each has been completed.
7+
Not all may apply:
108

119
- [ ] Schematron validator (`EPvalidator.xml`) has been updated
1210
- [ ] Sample files have been added/updated (`openstudio tasks.rb update_hpxmls`)

Changelog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
__New Features__
44
- Adds inputs for modeling skylight curbs and/or shafts.
5+
- Advanced research features:
6+
- Maximum power ratio detailed schedule for variable-speed HVAC systems can now be used with `NumberofUnits` dwelling unit multiplier.
57

68
__Bugfixes__
79
- Allows additional flexibility for multiple `Attic`/`Foundation` elements.

HPXMLtoOpenStudio/measure.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<schema_version>3.1</schema_version>
44
<name>hpxm_lto_openstudio</name>
55
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
6-
<version_id>0aa3e855-c01f-41f6-9df5-367556f18455</version_id>
7-
<version_modified>2024-06-17T15:28:30Z</version_modified>
6+
<version_id>381502ab-7765-4f0b-a10b-78f2efc7bfd3</version_id>
7+
<version_modified>2024-06-17T18:00:58Z</version_modified>
88
<xml_checksum>D8922A73</xml_checksum>
99
<class_name>HPXMLtoOpenStudio</class_name>
1010
<display_name>HPXML to OpenStudio Translator</display_name>
@@ -381,7 +381,7 @@
381381
<filename>hvac.rb</filename>
382382
<filetype>rb</filetype>
383383
<usage_type>resource</usage_type>
384-
<checksum>A7D0B1CD</checksum>
384+
<checksum>9931AEE6</checksum>
385385
</file>
386386
<file>
387387
<filename>hvac_sizing.rb</filename>
@@ -711,7 +711,7 @@
711711
<filename>test_validation.rb</filename>
712712
<filetype>rb</filetype>
713713
<usage_type>test</usage_type>
714-
<checksum>F0DB0351</checksum>
714+
<checksum>32DEB854</checksum>
715715
</file>
716716
<file>
717717
<filename>test_water_heater.rb</filename>

HPXMLtoOpenStudio/resources/hvac.rb

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ def self.apply_air_source_hvac_systems(model, runner, cooling_system, heating_sy
227227

228228
apply_installation_quality(model, heating_system, cooling_system, air_loop_unitary, htg_coil, clg_coil, control_zone)
229229

230-
apply_max_power_EMS(model, runner, hpxml_bldg, air_loop_unitary, control_zone, heating_system, cooling_system, htg_supp_coil, clg_coil, htg_coil, schedules_file)
230+
apply_max_power_EMS(model, runner, air_loop_unitary, control_zone, heating_system, cooling_system, htg_supp_coil, clg_coil, htg_coil, schedules_file)
231231

232232
if is_heatpump && hpxml_header.defrost_model_type == HPXML::AdvancedResearchDefrostModelTypeAdvanced
233233
apply_advanced_defrost(model, htg_coil, air_loop_unitary, control_zone.spaces[0], htg_supp_coil, cooling_system, q_dot_defrost)
@@ -2094,7 +2094,6 @@ def self.disaggregate_fan_or_pump(model, fan_or_pump, htg_object, clg_object, ba
20942094
#
20952095
# @param model [OpenStudio::Model::Model] OpenStudio Model object
20962096
# @param runner [OpenStudio::Measure::OSRunner] OpenStudio Runner object
2097-
# @param hpxml_bldg [HPXML::Building] HPXML Building object representing an individual dwelling unit
20982097
# @param air_loop_unitary [TODO] TODO
20992098
# @param control_zone [TODO] TODO
21002099
# @param heating_system [TODO] TODO
@@ -2104,15 +2103,11 @@ def self.disaggregate_fan_or_pump(model, fan_or_pump, htg_object, clg_object, ba
21042103
# @param htg_coil [TODO] TODO
21052104
# @param schedules_file [SchedulesFile] SchedulesFile wrapper class instance of detailed schedule files
21062105
# @return [TODO] TODO
2107-
def self.apply_max_power_EMS(model, runner, hpxml_bldg, air_loop_unitary, control_zone, heating_system, cooling_system, htg_supp_coil, clg_coil, htg_coil, schedules_file)
2106+
def self.apply_max_power_EMS(model, runner, air_loop_unitary, control_zone, heating_system, cooling_system, htg_supp_coil, clg_coil, htg_coil, schedules_file)
21082107
return if schedules_file.nil?
21092108
return if clg_coil.nil? && htg_coil.nil?
21102109

21112110
max_pow_ratio_sch = schedules_file.create_schedule_file(model, col_name: SchedulesFile::Columns[:HVACMaximumPowerRatio].name, schedule_type_limits_name: Constants.ScheduleTypeLimitsFraction)
2112-
# Not allowed with unit multiplier for now
2113-
if not max_pow_ratio_sch.nil?
2114-
fail 'NumberofUnits greater than 1 is not supported for maximum power ratio schedules of variable speed hvac systems.' if hpxml_bldg.building_construction.number_of_units > 1
2115-
end
21162111
return if max_pow_ratio_sch.nil?
21172112

21182113
# Check maximum power ratio schedules only used in var speed systems,

HPXMLtoOpenStudio/tests/test_validation.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1060,7 +1060,6 @@ def test_ruby_error_messages
10601060
'schedule-detailed-duplicate-columns' => ["Schedule column name 'occupants' is duplicated."],
10611061
'schedule-detailed-wrong-filename' => ["Schedules file path 'invalid-wrong-filename.csv' does not exist."],
10621062
'schedule-detailed-wrong-rows' => ["Schedule has invalid number of rows (8759) for column 'occupants'. Must be one of: 8760, 17520, 26280, 35040, 43800, 52560, 87600, 105120, 131400, 175200, 262800, 525600."],
1063-
'schedule-file-max-power-ratio-with-unit-multiplier' => ['NumberofUnits greater than 1 is not supported for maximum power ratio schedules of variable speed hvac systems.'],
10641063
'skylight-not-connected-to-cond-space' => ["Skylight 'Skylight1' not connected to conditioned space; if it's a skylight with a shaft, use AttachedToFloor to connect it to conditioned space."],
10651064
'solar-thermal-system-with-combi-tankless' => ["Water heating system 'WaterHeatingSystem1' connected to solar thermal system 'SolarThermalSystem1' cannot be a space-heating boiler."],
10661065
'solar-thermal-system-with-desuperheater' => ["Water heating system 'WaterHeatingSystem1' connected to solar thermal system 'SolarThermalSystem1' cannot be attached to a desuperheater."],
@@ -1464,9 +1463,6 @@ def test_ruby_error_messages
14641463
csv_data = CSV.read(File.join(File.dirname(hpxml.hpxml_path), hpxml_bldg.header.schedules_filepaths[0]))
14651464
File.write(@tmp_csv_path, csv_data[0..-2].map(&:to_csv).join)
14661465
hpxml_bldg.header.schedules_filepaths = [@tmp_csv_path]
1467-
elsif ['schedule-file-max-power-ratio-with-unit-multiplier'].include? error_case
1468-
hpxml, hpxml_bldg = _create_hpxml('base-hvac-mini-split-heat-pump-ducted-max-power-ratio-schedule.xml')
1469-
hpxml_bldg.building_construction.number_of_units = 2
14701466
elsif ['skylight-not-connected-to-cond-space'].include? error_case
14711467
hpxml, hpxml_bldg = _create_hpxml('base-enclosure-garage.xml')
14721468
hpxml_bldg.skylights.add(id: 'Skylight1',

docs/source/workflow_inputs.rst

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -605,8 +605,6 @@ Building construction is entered in ``/HPXML/Building/BuildingDetails/BuildingSu
605605
606606
\- Ground-source heat pumps
607607
608-
\- HVAC maximum power ratio schedules for variable speed hvac systems (see :ref:`schedules_detailed`)
609-
610608
.. [#] If NumberofBathrooms not provided, calculated as NumberofBedrooms/2 + 0.5 based on the `2010 BAHSP <https://www1.eere.energy.gov/buildings/publications/pdfs/building_america/house_simulation.pdf>`_.
611609
.. [#] If ConditionedBuildingVolume not provided, defaults to ConditionedFloorArea * AverageCeilingHeight + ConditionedCrawlspaceVolume.
612610

workflow/tests/util.rb

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,6 @@ def _run_xml(xml, worker_num, apply_unit_multiplier = false, annual_results_1x =
4646
elsif hpxml_bldg.heat_pumps.select { |hp| hp.heat_pump_type == HPXML::HVACTypeHeatPumpGroundToAir }.size > 0
4747
# FUTURE: GSHPs currently don't give desired results w/ unit multipliers
4848
# https://github.com/NREL/OpenStudio-HPXML/issues/1499
49-
elsif xml.include? 'max-power-ratio-schedule'
50-
# FUTURE: Maximum power ratio schedule currently gives inconsistent component load results w/ unit multipliers
51-
# https://github.com/NREL/OpenStudio-HPXML/issues/1610
5249
elsif hpxml_bldg.batteries.size > 0
5350
# FUTURE: Batteries currently don't work with whole SFA/MF buildings
5451
# https://github.com/NREL/OpenStudio-HPXML/issues/1499

0 commit comments

Comments
 (0)