HPRTU measure: carrier's dual fuel RTU option#446
Open
JanghyunJK wants to merge 242 commits intomainfrom
Open
Conversation
…nal properties found
* fix missing district emissions in postproc - add district emissions columns, add to naming mixin, and list downselect option in log * Update comstock_to_cbecs_comparison.py Don't try to plot end use stacked bar comparisons unless there are at least 2 discrete values in the groupby column. For now, this means 2 different comstock runs. May edit later to accommodate CBECS.
… into aallen/sp_reset_new
… into aallen/tstat_setback_new
Turn off equipment counts (HVAC and water heater)
Ghp measure fixes
… into aallen/tstat_setback_new
JanghyunJK
commented
Jan 27, 2026
Comment on lines
1545
to
1553
| ems_dx_load_during_hybrid_heating = OpenStudio::Model::EnergyManagementSystemOutputVariable.new(model,g_dx_load_during_hybrid_heating) | ||
| ems_dx_load_during_hybrid_heating.setName("#{ems_name_airloop}_dx_load_during_hybrid_heating") | ||
| ems_dx_load_during_hybrid_heating.setEMSVariableName("#{g_dx_load_during_hybrid_heating.name}") | ||
| ems_dx_load_during_hybrid_heating.setTypeOfDataInVariable("Averaged") | ||
| ems_dx_load_during_hybrid_heating.setUpdateFrequency("SystemTimeStep") | ||
| ems_dx_load_during_hybrid_heating.setUnits("W") | ||
| output_var = OpenStudio::Model::OutputVariable.new("#{ems_dx_load_during_hybrid_heating.name}", model) | ||
| output_var.setKeyValue("*") | ||
| output_var.setReportingFrequency("Hourly") |
Contributor
Author
There was a problem hiding this comment.
this is the DX heating load only/during hybrid heating is on. so can be used to calculated gas usage for operating scenario when compressor is locked out when gas coil is on.
Contributor
Author
|
@eringold review ready!! Unit test / simulation validation results shown in these slides. And I'm going to add some highlights of the simulation unit test below. |
JanghyunJK
commented
Feb 18, 2026
| # ----------------------------- | ||
| # Main test runner | ||
| # ----------------------------- | ||
| def test_dual_fuel_rtu_example_models |
Contributor
Author
There was a problem hiding this comment.
this is where the simulation unit test starts.
JanghyunJK
commented
Feb 18, 2026
Comment on lines
2783
to
2785
| '310_retailstandalone_DC.osm' => 'G5101370.epw', | ||
| '310_retailstandalone_MA.osm' => 'G0900110.epw', | ||
| '310_retailstandalone_MN.osm' => 'G2701230.epw', |
Contributor
Author
There was a problem hiding this comment.
with three different models
JanghyunJK
commented
Feb 18, 2026
| '310_retailstandalone_MN.osm' => 'G2701230.epw', | ||
| } | ||
|
|
||
| hp_lockout_temps = [-10, 0, 17, 47] |
Contributor
Author
There was a problem hiding this comment.
and 4 different lockout temps
JanghyunJK
commented
Feb 18, 2026
Comment on lines
2911
to
2916
| # 1. HP Usage Check: Lower Lockout -> More HP runtime -> Higher HP kWh | ||
| if (l_hp_kwh - h_hp_kwh).abs / h_hp_kwh > 0.1 # Only assert if there's a meaningful difference to avoid noise | ||
| assert( | ||
| l_hp_kwh > h_hp_kwh, | ||
| "Trend Error (HP kWh) for #{metadata}: At #{l_temp}F, HP usage should be > than at #{h_temp}F." | ||
| ) |
JanghyunJK
commented
Feb 18, 2026
Comment on lines
2919
to
2924
| # 2. Defrost Check: Lower Lockout -> More runtime in frost zones -> Higher Defrost kWh | ||
| if (l_defrost - h_defrost).abs / h_defrost > 0.1 # Only assert if there's a meaningful difference to avoid noise | ||
| assert( | ||
| l_defrost > h_defrost, | ||
| "Trend Error (Defrost) for #{metadata}: At #{l_temp}F, Defrost should be > than at #{h_temp}F." | ||
| ) |
JanghyunJK
commented
Feb 18, 2026
Comment on lines
2927
to
2932
| # 3. Gas Check: Lower Lockout -> Less reliance on boiler -> Lower Gas kWh | ||
| if (l_gas - h_gas).abs / h_gas > 0.1 # Only assert if there's a meaningful difference to avoid noise | ||
| assert( | ||
| l_gas < h_gas, | ||
| "Trend Error (Gas) for #{metadata}: At #{l_temp}F, Gas usage should be < than at #{h_temp}F." | ||
| ) |
JanghyunJK
commented
Feb 18, 2026
Comment on lines
+2968
to
+2972
| assert( | ||
| gas_equiv_kwh >= min_expected_gas && gas_equiv_kwh <= max_expected_gas, | ||
| "COP Range Error for #{metadata}: Gas equiv (#{gas_equiv_kwh.round(2)}) is outside " \ | ||
| "expected range based on HP Delta of #{hp_kwh_delta.round(2)} kWh." | ||
| ) |
eringold
approved these changes
Feb 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull request overview
coming from DualFuelRTU project:
expanding existing HPRTU measure to reflect Carrier's dual fuel RTU (48QE model) performance
other than some clean ups in the measure script, major implementations/changes are,
performance maps:
hybrid gas coil:
Coil:UserDefinedobject for modeling two-stage hybrid gas coil. because of the suspected issue with the OS forward translator, this is how the final model looks like in terms of branch structure:single model test results 1:
single model test results 2:
remaining TODOs:
just noticed, I have to let the hybrid gas coil to run when compressor is locked out.Pull Request Author
This pull request makes changes to (select all the apply):
Pull Request Author Checklist:
comstock_column_definitions.csvoptions_lookup.tsvfiles updatedtest/reporting_measure_tests.txt,test/workflow_measure_tests.txt, ortest/upgrade_measure_tests.txt.ymlfiles andREADME.mdfilesPull Request Reviewer Checklist:
test/reporting_measure_tests.txt,test/workflow_measure_tests.txt, ortest/upgrade_measure_tests.txt.ymlandREADME.mdfiles updatedComStock Licensing Language - Add to Beginning of Each Code File