Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Geb HVAC - Onoff thermostat and realistic staging #1639

Open
wants to merge 320 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
320 commits
Select commit Hold shift + click to select a range
8ac8426
exclude onoff thermostat test out from unmet hour check
yzhou601 Sep 15, 2021
b930c2f
oops
yzhou601 Sep 15, 2021
e8373b8
Latest results.
Sep 15, 2021
2848176
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Oct 18, 2021
2d7a104
address some issues
yzhou601 Oct 19, 2021
177d3ca
revert measure.xml
yzhou601 Oct 19, 2021
c4d8147
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Oct 19, 2021
3c4e092
update sample files
yzhou601 Oct 19, 2021
3afa36e
remove invalid test file
yzhou601 Oct 19, 2021
bc95f4e
Latest results.
Oct 19, 2021
505040a
progress implementing new actuator
yzhou601 Oct 21, 2021
bb8daa8
Merge branch 'os330' of https://github.com/NREL/OpenStudio-HPXML into…
yzhou601 Oct 21, 2021
417186b
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Oct 27, 2021
418f2bd
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Oct 27, 2021
2cd4143
format
yzhou601 Oct 27, 2021
a1a4e5e
revert measure.xmls
yzhou601 Oct 27, 2021
a709c3c
revert messed up changes
yzhou601 Oct 27, 2021
38091fb
check num_speed existence
yzhou601 Oct 28, 2021
76e9906
Latest results.
Oct 28, 2021
6d94e24
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Oct 28, 2021
fd0dc04
fix argument bug
yzhou601 Oct 28, 2021
3058965
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Oct 28, 2021
a19d770
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Oct 28, 2021
7c8142f
Latest results.
Oct 28, 2021
8f87647
bugfix that need to pass zone to supp ems
yzhou601 Oct 29, 2021
f8559a8
change capacity to be smaller so that more behavior can be observed.
yzhou601 Oct 29, 2021
b84bda2
fix test
yzhou601 Oct 29, 2021
7a95720
integrate backcoil control to staging EMS, change test file capacities
yzhou601 Nov 4, 2021
ea04f32
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Nov 4, 2021
a0d637d
rerun tasks.rb
yzhou601 Nov 4, 2021
638c3ff
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Nov 4, 2021
acbf8a7
Latest results.
Nov 4, 2021
464d0f0
oops, fix test
yzhou601 Nov 4, 2021
c8a853b
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Nov 5, 2021
83c9a70
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Nov 5, 2021
ebc74fc
rerun tasks update hpxmls
yzhou601 Nov 5, 2021
1d1701f
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Nov 5, 2021
048cfad
rerun update hpxmls
yzhou601 Nov 5, 2021
5441df0
fix bug - remove unnecessary condition
yzhou601 Nov 5, 2021
04c3604
bugfix
yzhou601 Nov 15, 2021
013447b
bugfix
yzhou601 Nov 15, 2021
52083e0
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Nov 15, 2021
22a2dda
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Nov 15, 2021
7e3a936
update hpxmls
yzhou601 Nov 15, 2021
a1dfb98
update hpxmls
yzhou601 Nov 15, 2021
214710e
Latest results.
Nov 15, 2021
1a23b84
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Jan 13, 2022
c63cfeb
update test files
yzhou601 Jan 13, 2022
8c4fd03
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Jan 13, 2022
0ce12ff
bugfix
yzhou601 Jan 14, 2022
26b4c12
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 3, 2022
60182aa
log 5 time steps before turning on backup coil
yzhou601 Mar 4, 2022
6a345e4
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 4, 2022
2f1bc72
Latest results.
Mar 4, 2022
ed8038a
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 18, 2022
3f74978
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Mar 18, 2022
e2e759d
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 18, 2022
a4f3093
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 19, 2022
fdbce10
Latest results.
Mar 19, 2022
98d072a
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 6, 2022
e707f9b
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Oct 4, 2022
d985598
fixes and updates
yzhou601 Oct 4, 2022
38bbc22
Latest results.
Oct 4, 2022
5073669
docs and minor changes
yzhou601 Oct 7, 2022
aee2ff0
changelog
yzhou601 Oct 7, 2022
0e5e341
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Oct 7, 2022
0280be4
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Oct 7, 2022
f76ed5a
Latest results.
Oct 7, 2022
506e0a2
address comments
yzhou601 Oct 13, 2022
12e5cfa
update test files
yzhou601 Oct 13, 2022
a660697
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Oct 13, 2022
8136467
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Oct 13, 2022
b1aff2d
fix validation error
yzhou601 Oct 18, 2022
6a6c590
fix
yzhou601 Oct 18, 2022
a976908
oops
yzhou601 Oct 18, 2022
1d7e91b
add a comment
yzhou601 Oct 18, 2022
7791fe8
Latest results.
Oct 18, 2022
5f849f1
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Oct 25, 2022
18a4517
attempt for 8760 detailed schedule and unmet load program
yzhou601 Oct 26, 2022
9506e03
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Oct 26, 2022
e5a9e4a
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Nov 1, 2022
3902096
bugfix
yzhou601 Nov 1, 2022
21b1fd4
update hpxmls
yzhou601 Nov 2, 2022
a37f401
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Nov 2, 2022
63668c7
Latest results.
Nov 3, 2022
52f77b4
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Nov 4, 2022
4aff72e
quick fix
yzhou601 Nov 4, 2022
ff9ccbe
fix sensor names
yzhou601 Nov 4, 2022
b75a9e7
simplify the way of modifying detailed schedule
yzhou601 Nov 7, 2022
200691c
address comments
yzhou601 Nov 8, 2022
5318e1e
fix
yzhou601 Nov 8, 2022
9a93509
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Nov 8, 2022
da7abc2
fix unused schedules
yzhou601 Nov 8, 2022
90ecb4b
isdefaulted
yzhou601 Nov 8, 2022
b9a4b79
add a condition
yzhou601 Nov 8, 2022
6cd23d4
fix test default
yzhou601 Nov 8, 2022
2a4e74d
Minor code cleanup. No diffs expected.
shorowit Nov 8, 2022
338eb08
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Nov 9, 2022
c2ef1bb
unit tests, minor changes and cleanups
yzhou601 Nov 9, 2022
6cc0489
refactor the realistic cycling program to eliminate extra warnings
yzhou601 Nov 9, 2022
a2230f0
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Nov 9, 2022
1dac67d
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Nov 9, 2022
700ad37
Updating some Deadband thermostat documentation. Maybe too much detai…
jmaguire1 Nov 10, 2022
b270f1f
ignore the warning for now
yzhou601 Nov 10, 2022
ed6990d
docs
yzhou601 Nov 10, 2022
800a0d1
fix docs
yzhou601 Nov 10, 2022
5f1d46a
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Nov 10, 2022
8441276
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Nov 10, 2022
4373ea1
address system types
yzhou601 Nov 10, 2022
120bab0
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Nov 10, 2022
8814d1e
ignore warning more properly
yzhou601 Nov 11, 2022
d899d47
change use case rules and cleanups
yzhou601 Nov 14, 2022
bca41d1
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Nov 14, 2022
bab600b
update hpxmls
yzhou601 Nov 14, 2022
966bed4
update docs
yzhou601 Nov 14, 2022
a197a59
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Nov 15, 2022
bda2954
Latest results.
Nov 15, 2022
c9675ab
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Feb 3, 2023
660695e
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Feb 3, 2023
f07d31e
Latest results.
Feb 3, 2023
0fdfbc6
update test files
yzhou601 Feb 3, 2023
ac75298
log 5 time steps
yzhou601 Feb 3, 2023
d9908fa
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Feb 3, 2023
79f6b82
revert xml changes
yzhou601 Feb 3, 2023
04ad345
fix unit test, update measures
yzhou601 Feb 3, 2023
4acd318
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Feb 3, 2023
cb0861a
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Feb 3, 2023
1e1d8cf
Latest results.
Feb 3, 2023
e3240e9
fix unexpected warning
yzhou601 Feb 17, 2023
178cc8f
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Feb 17, 2023
7a10b29
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Feb 17, 2023
8df5f1f
ignore ems warning
yzhou601 Mar 2, 2023
cb275d6
fix validation error checking
yzhou601 Mar 2, 2023
574d9a0
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit Apr 11, 2023
b6833a5
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
shorowit Apr 11, 2023
05b5ad9
Oops, missed conflicts in this file.
shorowit Apr 11, 2023
ea17faa
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
shorowit Apr 11, 2023
a569e3a
Latest results.
Apr 11, 2023
72041be
Conflict resolution bugfix.
shorowit Apr 11, 2023
f08b27d
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 18, 2023
3fa3971
Latest results.
Apr 18, 2023
d41e24b
Relate c_d to time to hit full capacity. Docs update on deadband
jmaguire1 Apr 18, 2023
61eb254
Latest results.
Apr 18, 2023
914650a
add room ac test file, some cleanups
yzhou601 Apr 20, 2023
63191e3
Latest results.
Apr 20, 2023
10828de
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Apr 20, 2023
95595de
Merge branch 'geb-hvac-2' of https://github.com/NREL/OpenStudio-HPXML…
yzhou601 Apr 20, 2023
592242c
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 Apr 21, 2023
3d4e6df
supp coil control EMS added out of supp coil creation method
yzhou601 Apr 25, 2023
cf8b3ea
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit May 3, 2023
19fec71
Latest results.
May 4, 2023
02b6326
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
shorowit May 4, 2023
132da54
revert one unexpected change
yzhou601 May 5, 2023
b5ba807
Latest results.
May 6, 2023
785b98e
bugfix
yzhou601 May 10, 2023
52c15ce
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 10, 2023
1132c07
Merge branch 'geb-hvac-onoffthermostat' of https://github.com/NREL/Op…
yzhou601 May 10, 2023
8a6a6b5
Latest results.
May 10, 2023
494e910
Latest results.
May 10, 2023
ae2838f
multistage backup coil first cut
yzhou601 Mar 4, 2024
469bf5a
unit multiplier
yzhou601 Mar 4, 2024
f849661
docs, validator, cleanups, and allow more heat pump types
yzhou601 Mar 5, 2024
c35cc18
update measures
yzhou601 Mar 5, 2024
9447cb8
Latest results.
Mar 5, 2024
0bd17c0
Merge branch 'multistaging_backup' of https://github.com/NREL/OpenStu…
yzhou601 Mar 5, 2024
b1589f0
unit tests added, wlhp test file added, fixed a bug in fan energy dis…
yzhou601 Mar 6, 2024
dab37af
Latest results.
Mar 6, 2024
d1f5446
first cut EMS staging
yzhou601 Mar 7, 2024
a7c08e8
Merge branch 'multistaging_backup' of https://github.com/NREL/OpenStu…
yzhou601 Mar 7, 2024
13dc46b
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 7, 2024
fce30c2
reconfigured test files, debug EMS program
yzhou601 Mar 9, 2024
5702851
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 11, 2024
a092d86
one more conflict
yzhou601 Mar 11, 2024
4bb7c61
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Mar 11, 2024
1641489
minor cleanup
yzhou601 Mar 11, 2024
2591e44
fix
yzhou601 Mar 11, 2024
98168c3
fix a default typo
yzhou601 Mar 11, 2024
3f93d7d
revert test change for debugging
yzhou601 Mar 11, 2024
f4a2060
fix unit test
yzhou601 Mar 11, 2024
a50eda3
fix test
yzhou601 Mar 11, 2024
6e1777d
add a comment
yzhou601 Mar 11, 2024
6cd7830
update old codes in unit tests
yzhou601 Mar 11, 2024
f02e0cb
Latest results.
Mar 11, 2024
9811b56
cleanup, added the relationship between startup curve and time to rea…
yzhou601 Mar 12, 2024
8433923
Merge branch 'geb-hvac-2' of https://github.com/NREL/OpenStudio-HPXML…
yzhou601 Mar 12, 2024
08a3db2
fix sensor name
yzhou601 Mar 12, 2024
e8ca8a0
revert gshp heating capacity to avoid E+ error that plant gets too cold
yzhou601 Mar 12, 2024
43b37ec
Latest results.
Mar 12, 2024
f753106
exclude gshp and water loop system for now
yzhou601 Mar 13, 2024
7a4dfac
Latest results.
Mar 13, 2024
acd9c1d
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 2, 2024
a8a868b
update measures
yzhou601 Apr 2, 2024
99203ba
unit tests
yzhou601 Apr 2, 2024
a47d156
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 2, 2024
93caaa6
Merge branch 'multistaging_backup' of https://github.com/NREL/OpenStu…
yzhou601 Apr 2, 2024
2260a17
Latest results.
Apr 2, 2024
35343d1
Latest results.
Apr 3, 2024
9070c45
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 3, 2024
4a08f78
update_measures
yzhou601 Apr 3, 2024
e0b020c
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 3, 2024
e2ef1ea
added tolerance, changed error to warning for more than 4 stages. mod…
yzhou601 Apr 4, 2024
b8bffbc
update measures
yzhou601 Apr 4, 2024
ba80cb0
Latest results.
Apr 4, 2024
3c6f6b3
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 4, 2024
d961f0c
update measures
yzhou601 Apr 4, 2024
62c40e8
deleted unexpected test results
yzhou601 Apr 4, 2024
fb467e5
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 4, 2024
5ea0ea4
update_measures, changed temp capacity multiplier to 7
yzhou601 Apr 4, 2024
9c61605
Latest results.
Apr 4, 2024
22b39bc
first cut changing input structure
yzhou601 Apr 18, 2024
baaf72a
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 18, 2024
a83ab0b
update measures
yzhou601 Apr 18, 2024
7901397
Merge branch 'geb-hvac-2' of https://github.com/NREL/OpenStudio-HPXML…
yzhou601 Apr 18, 2024
5887950
fix tests/util
yzhou601 Apr 24, 2024
88a3e19
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 24, 2024
8062763
update measures
yzhou601 Apr 24, 2024
b4903c0
Latest results.
Apr 24, 2024
421c344
Merge branch 'geb-hvac-2' of https://github.com/NREL/OpenStudio-HPXML…
yzhou601 Apr 25, 2024
38218ea
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 Apr 25, 2024
c846029
Merge branch 'multistaging_backup' of https://github.com/NREL/OpenStu…
yzhou601 Apr 25, 2024
650400c
Latest results.
Apr 26, 2024
39a9826
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 1, 2024
32859ad
Merge branch 'defrost_improvements' of https://github.com/NREL/OpenSt…
yzhou601 May 16, 2024
41a6cb4
refactor inputs
yzhou601 May 17, 2024
1f2b106
update unit test, resolve a few more conflicts
yzhou601 May 17, 2024
6b4bd55
Merge branch 'defrost_improvements' of https://github.com/NREL/OpenSt…
yzhou601 May 17, 2024
fbe6dea
update measures
yzhou601 May 17, 2024
48b929f
Merge branch 'defrost_improvements' of https://github.com/NREL/OpenSt…
yzhou601 May 17, 2024
c77bfce
update measures
yzhou601 May 17, 2024
105acf4
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 23, 2024
d1d4e68
update measures
yzhou601 May 23, 2024
6915475
fixed a few issues
yzhou601 May 23, 2024
80e0e6a
fix error thrown by epvalidator for only allowing one hvac system in …
yzhou601 May 24, 2024
7adcb8f
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 24, 2024
76986e2
bring back unit multiplier limitation
yzhou601 May 24, 2024
94e24b4
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
shorowit May 24, 2024
57dafff
resolve integration with other features
yzhou601 May 25, 2024
6ab664c
Merge branch 'multistaging_backup' of https://github.com/NREL/OpenStu…
yzhou601 May 25, 2024
881951d
fix validator
yzhou601 May 25, 2024
dfff565
fix util
yzhou601 May 25, 2024
18d04eb
exclude multistaging with unit multiplier
yzhou601 May 25, 2024
cb4ca05
Latest results.
May 25, 2024
2ca80dd
Merge branch 'master' of https://github.com/NREL/OpenStudio-HPXML int…
yzhou601 May 29, 2024
e6d7f62
address most of feedbacks
yzhou601 May 29, 2024
4c72908
more changes
yzhou601 May 29, 2024
4844bc3
Merge branch 'multistaging_backup' of https://github.com/NREL/OpenStu…
yzhou601 May 29, 2024
37585e1
hpxml attribute name change, one more
yzhou601 May 29, 2024
0419baa
fix ci, change the EPvalidator.xml to check building level, remove co…
yzhou601 May 30, 2024
2e854af
fix doc
yzhou601 May 30, 2024
83a2357
Latest results.
May 31, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
418 changes: 222 additions & 196 deletions BuildResidentialHPXML/README.md

Large diffs are not rendered by default.

26 changes: 26 additions & 0 deletions BuildResidentialHPXML/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,18 @@ def arguments(model) # rubocop:disable Lint/UnusedMethodArgument
arg.setDescription("Research feature to select the type of defrost model. Use #{HPXML::AdvancedResearchDefrostModelTypeStandard} for default E+ defrost setting. Use #{HPXML::AdvancedResearchDefrostModelTypeAdvanced} for an improved model that better accounts for load and energy use during defrost; using #{HPXML::AdvancedResearchDefrostModelTypeAdvanced} may impact simulation runtime. If not provided, the OS-HPXML default (see <a href='#{docs_base_url}#hpxml-simulation-control'>HPXML Simulation Control</a>) is used.")
args << arg

arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('simulation_control_onoff_thermostat_deadband', false)
arg.setDisplayName('Simulation Control: HVAC On-Off Thermostat Deadband')
arg.setDescription('Research feature to model on-off thermostat deadband and start-up degradation for single or two speed central AC/ASHP systems, and realistic time-based staging for two speed central AC/ASHP systems. Currently only supported with 1 min timestep.')
arg.setUnits('deg-F')
args << arg

arg = OpenStudio::Measure::OSArgument::makeDoubleArgument('simulation_control_heat_pump_backup_heating_capacity_increment', false)
arg.setDisplayName('Simulation Control: Heat Pump Backup Heating Capacity Increment')
arg.setDescription("Research feature to model capacity increment of the multi-staging heat pump backup system with time-based staging. Only applies if Backup Type is '#{HPXML::HeatPumpBackupTypeIntegrated}' and Backup Fuel Type is '#{HPXML::FuelTypeElectricity}'. Currently only supported with 1 min timestep.")
arg.setUnits('Btu/hr')
args << arg

site_type_choices = OpenStudio::StringVector.new
site_type_choices << HPXML::SiteTypeSuburban
site_type_choices << HPXML::SiteTypeUrban
Expand Down Expand Up @@ -4037,6 +4049,20 @@ def self.set_header(runner, hpxml, args)
hpxml.header.defrost_model_type = args[:simulation_control_defrost_model_type]
end

if not args[:simulation_control_onoff_thermostat_deadband].nil?
if (not hpxml.header.hvac_onoff_thermostat_deadband.nil?) && (hpxml.header.hvac_onoff_thermostat_deadband != args[:simulation_control_onoff_thermostat_deadband])
errors << "'Simulation Control: HVAC GEB On-Off Thermostat Deadband' cannot vary across dwelling units."
end
hpxml.header.hvac_onoff_thermostat_deadband = args[:simulation_control_onoff_thermostat_deadband]
end

if not args[:simulation_control_heat_pump_backup_heating_capacity_increment].nil?
if (not hpxml.header.heat_pump_backup_heating_capacity_increment.nil?) && (hpxml.header.heat_pump_backup_heating_capacity_increment != args[:simulation_control_heat_pump_backup_heating_capacity_increment])
errors << "'Simulation Control: HVAC GEB Backup Heating Capacity Increment' cannot vary across dwelling units."
end
hpxml.header.heat_pump_backup_heating_capacity_increment = args[:simulation_control_heat_pump_backup_heating_capacity_increment]
end

if not args[:emissions_scenario_names].nil?
emissions_scenario_names = args[:emissions_scenario_names].split(',').map(&:strip)
emissions_types = args[:emissions_types].split(',').map(&:strip)
Expand Down
418 changes: 218 additions & 200 deletions BuildResidentialHPXML/measure.xml

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,8 @@ __New Features__
- Advanced research features:
- **Breaking change**: Replaces `SimulationControl/TemperatureCapacitanceMultiplier` with `SimulationControl/AdvancedResearchFeatures/TemperatureCapacitanceMultiplier`.
- Allows an optional boolean input `SimulationControl/AdvancedResearchFeatures/DefrostModelType` for heat pump advanced defrost model.
- Allow an optional input `SimulationControl/AdvancedResearchFeatures/OnOffThermostatDeadbandTemperature` to model on/off thermostat deadband with start-up degradation for single and two speed central AC/ASHP systems and time-based realistic staging for two speed central AC/ASHP systems.
- Allow an optional input `SimulationControl/AdvancedResearchFeatures/BackupHeatingCapacityIncrement` to model multi-stage electric backup coils with time-based staging.
- Adds maximum power ratio detailed schedule for variable-speed HVAC systems to model shedding controls per [AHRI 1380](https://www.ahrinet.org/search-standards/ahri-1380-i-p-demand-response-through-variable-capacity-hvac-systems-residential-and-small).

__Bugfixes__
Expand Down
66 changes: 51 additions & 15 deletions HPXMLtoOpenStudio/measure.rb
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,8 @@ def run(model, runner, user_arguments)
schedules_paths: hpxml_bldg.header.schedules_filepaths,
year: Location.get_sim_calendar_year(hpxml.header.sim_calendar_year, epw_file),
unavailable_periods: hpxml.header.unavailable_periods,
output_path: File.join(args[:output_dir], in_schedules_csv))
output_path: File.join(args[:output_dir], in_schedules_csv),
offset_db: hpxml.header.hvac_onoff_thermostat_deadband)
HPXMLDefaults.apply(runner, hpxml, hpxml_bldg, eri_version, weather, epw_file: epw_file, schedules_file: schedules_file,
design_load_details_output_file_path: design_load_details_output_file_path,
output_format: args[:output_format])
Expand Down Expand Up @@ -224,7 +225,7 @@ def run(model, runner, user_arguments)
end

# Output
season_day_nums = add_unmet_hours_output(model, hpxml_osm_map)
season_day_nums = add_unmet_hours_output(model, hpxml_osm_map, hpxml)
loads_data = add_total_loads_output(model, hpxml_osm_map)
if args[:add_component_loads]
add_component_loads_output(model, hpxml_osm_map, loads_data, season_day_nums)
Expand Down Expand Up @@ -563,7 +564,7 @@ def set_defaults_and_globals()
@default_azimuths = HPXMLDefaults.get_default_azimuths(@hpxml_bldg)

# Apply unit multipliers to HVAC systems and water heaters
HVAC.apply_unit_multiplier(@hpxml_bldg)
HVAC.apply_unit_multiplier(@hpxml_bldg, @hpxml_header)
# Ensure that no capacities/airflows are zero in order to prevent potential E+ errors.
HVAC.ensure_nonzero_sizing_values(@hpxml_bldg)
# Make adjustments for modeling purposes
Expand Down Expand Up @@ -1731,12 +1732,10 @@ def add_heat_pump(runner, model, weather, spaces, airloop_map)
airloop_map[sys_id] = HVAC.apply_water_loop_to_air_heat_pump(model, heat_pump,
sequential_heat_load_fracs, sequential_cool_load_fracs,
conditioned_zone, @hvac_unavailable_periods)

elsif [HPXML::HVACTypeHeatPumpAirToAir,
HPXML::HVACTypeHeatPumpMiniSplit,
HPXML::HVACTypeHeatPumpPTHP,
HPXML::HVACTypeHeatPumpRoom].include? heat_pump.heat_pump_type

airloop_map[sys_id] = HVAC.apply_air_source_hvac_systems(model, runner, heat_pump, heat_pump, sequential_cool_load_fracs, sequential_heat_load_fracs,
weather.data.AnnualMaxDrybulb, weather.data.AnnualMinDrybulb,
conditioned_zone, @hvac_unavailable_periods, @schedules_file, @hpxml_bldg,
Expand Down Expand Up @@ -1810,7 +1809,7 @@ def add_setpoints(runner, model, weather, spaces)
conditioned_zone = spaces[HPXML::LocationConditionedSpace].thermalZone.get
has_ceiling_fan = (@hpxml_bldg.ceiling_fans.size > 0)

HVAC.apply_setpoints(model, runner, weather, hvac_control, conditioned_zone, has_ceiling_fan, @heating_days, @cooling_days, @hpxml_header.sim_calendar_year, @schedules_file)
HVAC.apply_setpoints(model, runner, weather, hvac_control, conditioned_zone, has_ceiling_fan, @heating_days, @cooling_days, @hpxml_header, @schedules_file)
end

def add_ceiling_fans(runner, model, weather, spaces)
Expand Down Expand Up @@ -2114,32 +2113,51 @@ def add_additional_properties(model, hpxml, hpxml_osm_map, hpxml_path, building_
additionalProperties.setFeature('is_southern_hemisphere', hpxml_osm_map.keys[0].latitude < 0)
end

def add_unmet_hours_output(model, hpxml_osm_map)
def add_unmet_hours_output(model, hpxml_osm_map, hpxml)
# We do our own unmet hours calculation via EMS so that we can incorporate,
# e.g., heating/cooling seasons into the logic. The calculation layers on top
# of the built-in EnergyPlus unmet hours output.

# Create sensors and gather data
htg_sensors, clg_sensors = {}, {}
zone_air_temp_sensors, htg_spt_sensors, clg_spt_sensors = {}, {}, {}
total_heat_load_serveds, total_cool_load_serveds = {}, {}
season_day_nums = {}
onoff_deadbands = hpxml.header.hvac_onoff_thermostat_deadband.to_f
hpxml_osm_map.each_with_index do |(hpxml_bldg, unit_model), unit|
conditioned_zone_name = unit_model.getThermalZones.find { |z| z.additionalProperties.getFeatureAsString('ObjectType').to_s == HPXML::LocationConditionedSpace }.name.to_s
conditioned_zone = unit_model.getThermalZones.find { |z| z.additionalProperties.getFeatureAsString('ObjectType').to_s == HPXML::LocationConditionedSpace }
conditioned_zone_name = conditioned_zone.name.to_s

# EMS sensors
htg_sensors[unit] = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Zone Heating Setpoint Not Met Time')
htg_sensors[unit].setName('zone htg unmet s')
htg_sensors[unit].setName("#{conditioned_zone_name} htg unmet s")
htg_sensors[unit].setKeyName(conditioned_zone_name)

clg_sensors[unit] = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Zone Cooling Setpoint Not Met Time')
clg_sensors[unit].setName('zone clg unmet s')
clg_sensors[unit].setName("#{conditioned_zone_name} clg unmet s")
clg_sensors[unit].setKeyName(conditioned_zone_name)

total_heat_load_serveds[unit] = hpxml_bldg.total_fraction_heat_load_served
total_cool_load_serveds[unit] = hpxml_bldg.total_fraction_cool_load_served

hvac_control = hpxml_bldg.hvac_controls[0]
next unless not hvac_control.nil?
next if hvac_control.nil?

if (onoff_deadbands > 0)
zone_air_temp_sensors[unit] = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Zone Air Temperature')
zone_air_temp_sensors[unit].setName("#{conditioned_zone_name} space temp")
zone_air_temp_sensors[unit].setKeyName(conditioned_zone_name)

htg_sch = conditioned_zone.thermostatSetpointDualSetpoint.get.heatingSetpointTemperatureSchedule.get
htg_spt_sensors[unit] = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Schedule Value')
htg_spt_sensors[unit].setName("#{htg_sch.name} sch value")
htg_spt_sensors[unit].setKeyName(htg_sch.name.to_s)

clg_sch = conditioned_zone.thermostatSetpointDualSetpoint.get.coolingSetpointTemperatureSchedule.get
clg_spt_sensors[unit] = OpenStudio::Model::EnergyManagementSystemSensor.new(model, 'Schedule Value')
clg_spt_sensors[unit].setName("#{clg_sch.name} sch value")
clg_spt_sensors[unit].setKeyName(clg_sch.name.to_s)
end

sim_year = @hpxml_header.sim_calendar_year
season_day_nums[unit] = {
Expand All @@ -2155,36 +2173,54 @@ def add_unmet_hours_output(model, hpxml_osm_map)
# EMS program
clg_hrs = 'clg_unmet_hours'
htg_hrs = 'htg_unmet_hours'
unit_clg_hrs = 'unit_clg_unmet_hours'
unit_htg_hrs = 'unit_htg_unmet_hours'
program = OpenStudio::Model::EnergyManagementSystemProgram.new(model)
program.setName('unmet hours program')
program.additionalProperties.setFeature('ObjectType', Constants.ObjectNameUnmetHoursProgram)
program.addLine("Set #{htg_hrs} = 0")
program.addLine("Set #{clg_hrs} = 0")
for unit in 0..hpxml_osm_map.size - 1
if total_heat_load_serveds[unit] > 0
program.addLine("Set #{unit_htg_hrs} = 0")
if season_day_nums[unit][:htg_end] >= season_day_nums[unit][:htg_start]
line = "If ((DayOfYear >= #{season_day_nums[unit][:htg_start]}) && (DayOfYear <= #{season_day_nums[unit][:htg_end]}))"
else
line = "If ((DayOfYear >= #{season_day_nums[unit][:htg_start]}) || (DayOfYear <= #{season_day_nums[unit][:htg_end]}))"
end
line += " && (#{hvac_availability_sensor.name} == 1)" if not hvac_availability_sensor.nil?
program.addLine(line)
program.addLine(" If #{htg_sensors[unit].name} > #{htg_hrs}") # Use max hourly value across all units
program.addLine(" Set #{htg_hrs} = #{htg_sensors[unit].name}")
if zone_air_temp_sensors.keys.include? unit # on off deadband
program.addLine(" If #{zone_air_temp_sensors[unit].name} < (#{htg_spt_sensors[unit].name} - #{UnitConversions.convert(onoff_deadbands, 'deltaF', 'deltaC')})")
program.addLine(" Set #{unit_htg_hrs} = #{unit_htg_hrs} + #{htg_sensors[unit].name}")
program.addLine(' EndIf')
else
program.addLine(" Set #{unit_htg_hrs} = #{unit_htg_hrs} + #{htg_sensors[unit].name}")
end
program.addLine(" If #{unit_htg_hrs} > #{htg_hrs}") # Use max hourly value across all units
program.addLine(" Set #{htg_hrs} = #{unit_htg_hrs}")
program.addLine(' EndIf')
program.addLine('EndIf')
end
next unless total_cool_load_serveds[unit] > 0

program.addLine("Set #{unit_clg_hrs} = 0")
if season_day_nums[unit][:clg_end] >= season_day_nums[unit][:clg_start]
line = "If ((DayOfYear >= #{season_day_nums[unit][:clg_start]}) && (DayOfYear <= #{season_day_nums[unit][:clg_end]}))"
else
line = "If ((DayOfYear >= #{season_day_nums[unit][:clg_start]}) || (DayOfYear <= #{season_day_nums[unit][:clg_end]}))"
end
line += " && (#{hvac_availability_sensor.name} == 1)" if not hvac_availability_sensor.nil?
program.addLine(line)
program.addLine(" If #{clg_sensors[unit].name} > #{clg_hrs}") # Use max hourly value across all units
program.addLine(" Set #{clg_hrs} = #{clg_sensors[unit].name}")
if zone_air_temp_sensors.keys.include? unit # on off deadband
program.addLine(" If #{zone_air_temp_sensors[unit].name} > (#{clg_spt_sensors[unit].name} + #{UnitConversions.convert(onoff_deadbands, 'deltaF', 'deltaC')})")
program.addLine(" Set #{unit_clg_hrs} = #{unit_clg_hrs} + #{clg_sensors[unit].name}")
program.addLine(' EndIf')
else
program.addLine(" Set #{unit_clg_hrs} = #{unit_clg_hrs} + #{clg_sensors[unit].name}")
end
program.addLine(" If #{unit_clg_hrs} > #{clg_hrs}") # Use max hourly value across all units
program.addLine(" Set #{clg_hrs} = #{unit_clg_hrs}")
program.addLine(' EndIf')
program.addLine('EndIf')
end
Expand Down
20 changes: 10 additions & 10 deletions HPXMLtoOpenStudio/measure.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<schema_version>3.1</schema_version>
<name>hpxm_lto_openstudio</name>
<uid>b1543b30-9465-45ff-ba04-1d1f85e763bc</uid>
<version_id>19f754cf-2165-45e2-9387-46f301d3d453</version_id>
<version_modified>2024-05-29T18:54:28Z</version_modified>
<version_id>0d01438b-4bd1-4511-8793-e95959ee2745</version_id>
<version_modified>2024-05-29T22:18:29Z</version_modified>
<xml_checksum>D8922A73</xml_checksum>
<class_name>HPXMLtoOpenStudio</class_name>
<display_name>HPXML to OpenStudio Translator</display_name>
Expand Down Expand Up @@ -183,7 +183,7 @@
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>38D36C2B</checksum>
<checksum>96FF02F7</checksum>
</file>
<file>
<filename>airflow.rb</filename>
Expand Down Expand Up @@ -321,7 +321,7 @@
<filename>energyplus.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>8DB21849</checksum>
<checksum>412D3EA5</checksum>
</file>
<file>
<filename>generator.rb</filename>
Expand All @@ -345,7 +345,7 @@
<filename>hpxml.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>63904A0D</checksum>
<checksum>236ECB5F</checksum>
</file>
<file>
<filename>hpxml_defaults.rb</filename>
Expand All @@ -369,7 +369,7 @@
<filename>hpxml_schematron/EPvalidator.xml</filename>
<filetype>xml</filetype>
<usage_type>resource</usage_type>
<checksum>8C21342B</checksum>
<checksum>EC0D1305</checksum>
</file>
<file>
<filename>hpxml_schematron/iso-schematron.xsd</filename>
Expand All @@ -381,7 +381,7 @@
<filename>hvac.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>EE17B11F</checksum>
<checksum>80691C97</checksum>
</file>
<file>
<filename>hvac_sizing.rb</filename>
Expand Down Expand Up @@ -567,7 +567,7 @@
<filename>schedules.rb</filename>
<filetype>rb</filetype>
<usage_type>resource</usage_type>
<checksum>266BB57C</checksum>
<checksum>7E6B88FE</checksum>
</file>
<file>
<filename>simcontrols.rb</filename>
Expand Down Expand Up @@ -663,7 +663,7 @@
<filename>test_hvac.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>8CDA3FA3</checksum>
<checksum>0B19030D</checksum>
</file>
<file>
<filename>test_hvac_sizing.rb</filename>
Expand Down Expand Up @@ -711,7 +711,7 @@
<filename>test_validation.rb</filename>
<filetype>rb</filetype>
<usage_type>test</usage_type>
<checksum>09610EF8</checksum>
<checksum>01F3A43A</checksum>
</file>
<file>
<filename>test_water_heater.rb</filename>
Expand Down
1 change: 1 addition & 0 deletions HPXMLtoOpenStudio/resources/energyplus.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ class EPlus
EMSActuatorPumpPressureRise = 'Pump', 'Pump Pressure Rise'
EMSActuatorFanPressureRise = 'Fan', 'Fan Pressure Rise'
EMSActuatorFanTotalEfficiency = 'Fan', 'Fan Total Efficiency'
EMSActuatorCurveResult = 'Curve', 'Curve Result'
EMSActuatorUnitarySystemCoilSpeedLevel = 'Coil Speed Control', 'Unitary System DX Coil Speed Value'
EMSActuatorScheduleConstantValue = 'Schedule:Constant', 'Schedule Value'
EMSActuatorScheduleYearValue = 'Schedule:Year', 'Schedule Value'
Expand Down