Skip to content

Commit

Permalink
Merge pull request #10588 from NREL/multispeed_ashp_HSPF_HSPF2_calc
Browse files Browse the repository at this point in the history
Address the Multi-Speed DX heating coil issue with HSPF2 calculation
  • Loading branch information
Myoldmopar authored Jul 12, 2024
2 parents f766e2c + 64fb964 commit d2b61a7
Show file tree
Hide file tree
Showing 7 changed files with 62 additions and 11 deletions.
8 changes: 8 additions & 0 deletions src/EnergyPlus/DXCoils.cc
Original file line number Diff line number Diff line change
Expand Up @@ -8691,6 +8691,14 @@ void SizeDXCoil(EnergyPlusData &state, int const DXCoilNum)
equipName,
thisDXCoil.AirLoopNum > 0 ? state.dataAirSystemsData->PrimaryAirSystems(thisDXCoil.AirLoopNum).Name
: "N/A");
// std 229 existing table DX Heating coil 2023 AHRI new reporting variables
OutputReportPredefined::PreDefTableEntry(
state, state.dataOutRptPredefined->pdchDXHeatCoilMinOADBTforCompOp_2023, equipName, thisDXCoil.MinOATCompressor);
OutputReportPredefined::PreDefTableEntry(state,
state.dataOutRptPredefined->pdchDXHeatCoilAirloopName_2023,
equipName,
thisDXCoil.AirLoopNum > 0 ? state.dataAirSystemsData->PrimaryAirSystems(thisDXCoil.AirLoopNum).Name
: "N/A");
} break;
default:
break;
Expand Down
1 change: 1 addition & 0 deletions src/EnergyPlus/DataHVACGlobals.hh
Original file line number Diff line number Diff line change
Expand Up @@ -532,6 +532,7 @@ struct HVACGlobalsData : BaseGlobalStruct
bool StandardRatingsMyCoolOneTimeFlag2 = true;
bool StandardRatingsMyCoolOneTimeFlag3 = true;
bool StandardRatingsMyHeatOneTimeFlag = true;
bool StandardRatingsMyHeatOneTimeFlag2 = true;

void init_state([[maybe_unused]] EnergyPlusData &state) override
{
Expand Down
8 changes: 6 additions & 2 deletions src/EnergyPlus/OutputReportPredefined.cc
Original file line number Diff line number Diff line change
Expand Up @@ -404,17 +404,21 @@ namespace OutputReportPredefined {
s->pdchDXHeatCoilRegionNum = newPreDefColumn(state, s->pdstDXHeatCoil, "Region Number");
// Std 229 Predef outputs for DX Heating Coils
s->pdchDXHeatCoilMinOADBTforCompOp =
newPreDefColumn(state, s->pdstDXHeatCoil, "Minimum Outdoor Dry-Bulb Temperature for Compressor Operation");
newPreDefColumn(state, s->pdstDXHeatCoil, "Minimum Outdoor Dry-Bulb Temperature for Compressor Operation [C]");
s->pdchDXHeatCoilSuppHiT = newPreDefColumn(state, s->pdstDXHeatCoil, "Supplemental Heat High Shutoff Temperature [C]");
s->pdchDXHeatCoilAirloopName = newPreDefColumn(state, s->pdstDXHeatCoil, "Airloop Name");

// for DX Heating Coil AHRI Standard 2023 Ratings | HSPF2
s->pdstDXHeatCoil_2023 = newPreDefSubTable(state, s->pdrEquip, "DX Heating Coils [ HSPF2 ]");
s->pdstDXHeatCoil_2023 = newPreDefSubTable(state, s->pdrEquip, "DX Heating Coils AHRI 2023");
s->pdchDXHeatCoilType_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "DX Heating Coil Type");
s->pdchDXHeatCoilHighCap_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "High Temperature Heating (net) Rating Capacity [W]");
s->pdchDXHeatCoilLowCap_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "Low Temperature Heating (net) Rating Capacity [W]");
s->pdchDXHeatCoilHSPF2IP_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "HSPF2 [Btu/W-h]");
s->pdchDXHeatCoilRegionNum_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "Region Number");
// Std 229 Predef outputs for DX Heating Coils AHRI 2023
s->pdchDXHeatCoilMinOADBTforCompOp_2023 =
newPreDefColumn(state, s->pdstDXHeatCoil_2023, "Minimum Outdoor Dry-Bulb Temperature for Compressor Operation [C]");
s->pdchDXHeatCoilAirloopName_2023 = newPreDefColumn(state, s->pdstDXHeatCoil_2023, "Airloop Name");

s->pdstHeatCoil = newPreDefSubTable(state, s->pdrEquip, "Heating Coils");

Expand Down
2 changes: 2 additions & 0 deletions src/EnergyPlus/OutputReportPredefined.hh
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,8 @@ struct OutputReportPredefinedData : BaseGlobalStruct
int pdchDXHeatCoilHSPF2SI_2023 = 0; // HSPF2 value in SI unit at AHRI std. 340/360 conditions [W/W]
int pdchDXHeatCoilHSPF2IP_2023 = 0; // HSPF2 value in IP unit at AHRI std. 340/360 conditions [Btu/W-hr]
int pdchDXHeatCoilRegionNum_2023 = 0; // Region number for which HSPF is calculated
int pdchDXHeatCoilMinOADBTforCompOp_2023 = 0;
int pdchDXHeatCoilAirloopName_2023 = 0;

// Heating Coil subtable
int pdstHeatCoil = 0;
Expand Down
16 changes: 10 additions & 6 deletions src/EnergyPlus/StandardRatings.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6266,6 +6266,9 @@ namespace StandardRatings {
Real64 e_sum(0.0);
Real64 rh_sum(0.0);

// The minimum temperature below which the compressor is turned off
OATempCompressorOff = MinOATCompressor;

// Equation 11.111 AHRI-2023
Real64 t_ob = 7.22; // temperature at which frosting influence on full stage performance begins 7.22 C (45 F)
for (BinNum2023 = 0; BinNum2023 < 18; ++BinNum2023) { // NumOfOATempBins
Expand Down Expand Up @@ -6646,8 +6649,8 @@ namespace StandardRatings {
RatedCOP,
RegionNum,
MinOATCompressor,
OATempCompressorOnOffBlank,
OATempCompressorOn,
OATempCompressorOnOffBlank,
DefrostControl);

StandardRatingsResult["NetHeatingCapRatedHighTemp"] = NetHeatingCapRatedHighTemp;
Expand All @@ -6668,8 +6671,8 @@ namespace StandardRatings {
RatedCOP,
RegionNum,
MinOATCompressor,
OATempCompressorOnOffBlank,
OATempCompressorOn,
OATempCompressorOnOffBlank,
DefrostControl);

StandardRatingsResult["NetHeatingCapRatedHighTemp_2023"] = NetHeatingCapRatedHighTemp_2023;
Expand Down Expand Up @@ -6886,16 +6889,17 @@ namespace StandardRatings {
state, state.dataOutRptPredefined->pdstDXHeatCoil, "ANSI/AHRI ratings account for supply air fan heat and electric power.");
} else {
// ANSI/AHRI 210/240 Standard 2023 Ratings | HSPF2
if (state.dataHVACGlobal->StandardRatingsMyHeatOneTimeFlag) {
if (state.dataHVACGlobal->StandardRatingsMyHeatOneTimeFlag2) {
static constexpr std::string_view Format_992_(
"! <DX Heating Coil Standard Rating Information>, Component Type, Component Name, High Temperature Heating "
"! <DX Heating Coil AHRI 2023 Standard Rating Information>, Component Type, Component Name, High Temperature Heating "
"(net) Rating Capacity {W}, Low Temperature Heating (net) Rating Capacity {W}, HSPF2 {Btu/W-h}, Region "
"Number\n");
print(state.files.eio, "{}", Format_992_);
state.dataHVACGlobal->StandardRatingsMyHeatOneTimeFlag = false;
state.dataHVACGlobal->StandardRatingsMyHeatOneTimeFlag2 = false;
}

static constexpr std::string_view Format_993_(" DX Heating Coil Standard Rating Information, {}, {}, {:.1R}, {:.1R}, {:.2R}, {}\n");
static constexpr std::string_view Format_993_(
" DX Heating Coil AHRI 2023 Standard Rating Information, {}, {}, {:.1R}, {:.1R}, {:.2R}, {}\n");
print(state.files.eio, Format_993_, CompType, CompName, HighHeatingCapVal, LowHeatingCapVal, HSPFValueIP, RegionNum);

PreDefTableEntry(state, state.dataOutRptPredefined->pdchDXHeatCoilType_2023, CompName, CompType);
Expand Down
35 changes: 33 additions & 2 deletions src/Transition/OutputRulesFiles/OutputChanges24-1-0-to-24-2-0.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,41 @@ with

These changes will also make corresponding changes in the HTML Intialization Summary report


### Adding an Output:Variable, Zone/Space Wetbulb Globe Temperature

An output variable will be added at both zone and space level: Zone Wetbulb Globe Temperature, and Space Wetbulb Globe
Temperature


### EIO DX Heating Coil Standard Rating Information

The EIO and html tabular output files now have a seprate heading and data stream for DX Heating Coils with the AHRI 2023 and prior versions.

! <DX Heating Coil Standard Rating Information>, Component Type, Component Name, High Temperature Heating (net) Rating Capacity {W}, Low Temperature Heating (net) Rating Capacity {W}, HSPF {Btu/W-h}, Region Number
! <DX Heating Coil AHRI 2023 Standard Rating Information>, Component Type, Component Name, High Temperature Heating (net) Rating Capacity {W}, Low Temperature Heating (net) Rating Capacity {W}, HSPF2 {Btu/W-h}, Region Number


### Euipment Summary Report

Renamed a table name in the Equipment Summary report:

- from "DX Heating Coils [ HSPF2 ]"
- to "DX Heating Coils AHRI 2023"

Added two new columnuns to the named `DX Heating Coils AHRI 2023` table to make it equivalent to an exiting `DX Heating Coils` table.

New columns header added:

- "Minimum Outdoor Dry-Bulb Temperature for Compressor Operation [C]"
- "AirLoop Name"

Renamed a column header by adding units to the `DX Heating Coils` table:

- from "Minimum Outdoor Dry-Bulb Temperature for Compressor Operation"
- to "Minimum Outdoor Dry-Bulb Temperature for Compressor Operation [C]"


### Update Headers in EIO and existing tabular reports for Equipment Ratings

EIO updated for the following:
Expand All @@ -65,19 +95,20 @@ More information can be found in PR [#10597](https://github.com/NREL/EnergyPlus/

### EnvelopeSummary in Tabular Reports

In the Opaque Exterior table added Zone column
In the Opaque Exterior table added Zone column

Add an entirely new table called Opaque Construction Layers which shows the layers of materials for each construction


### EquipmentSummary in Tabular Reports

In the DX Heating Coils table added "Supplemental Heat High Shutoff Temperature
In the DX Heating Coils table added "Supplemental Heat High Shutoff Temperature

In the Fans table added "Motor Loss Zone Name"

Added an entirely new table called Air Terminals


### SystemSummary in Tabular Reports

In the Demand Controlled Ventilation table added the "type"
Expand Down
3 changes: 2 additions & 1 deletion tst/EnergyPlus/unit/DXCoils.unit.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4655,7 +4655,8 @@ TEST_F(EnergyPlusFixture, TestMultiSpeedCoilsAutoSizingOutput)
Component Sizing Information, Coil:Heating:DX:MultiSpeed, ASHP HTG COIL, Design Size Resistive Defrost Heater Capacity, 0.00000
! <DX Heating Coil Standard Rating Information>, Component Type, Component Name, High Temperature Heating (net) Rating Capacity {W}, Low Temperature Heating (net) Rating Capacity {W}, HSPF {Btu/W-h}, Region Number
DX Heating Coil Standard Rating Information, Coil:Heating:DX:MultiSpeed, ASHP HTG COIL, 34415.4, 20666.4, 6.56, 4
DX Heating Coil Standard Rating Information, Coil:Heating:DX:MultiSpeed, ASHP HTG COIL, 34697.2, 20948.1, 5.12, 4
! <DX Heating Coil AHRI 2023 Standard Rating Information>, Component Type, Component Name, High Temperature Heating (net) Rating Capacity {W}, Low Temperature Heating (net) Rating Capacity {W}, HSPF2 {Btu/W-h}, Region Number
DX Heating Coil AHRI 2023 Standard Rating Information, Coil:Heating:DX:MultiSpeed, ASHP HTG COIL, 34697.2, 20948.1, 5.34, 4
)EIO";
EXPECT_TRUE(compare_eio_stream(htg_coil_eio_output, true));
}
Expand Down

5 comments on commit d2b61a7

@nrel-bot-3
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

develop (Myoldmopar) - x86_64-MacOS-10.18-clang-15.0.0: OK (2853 of 2853 tests passed, 0 test warnings)

Build Badge Test Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

develop (Myoldmopar) - x86_64-Linux-Ubuntu-22.04-gcc-11.4: OK (2874 of 2874 tests passed, 0 test warnings)

Build Badge Test Badge

@nrel-bot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

develop (Myoldmopar) - Win64-Windows-10-VisualStudio-16: OK (2852 of 2852 tests passed, 0 test warnings)

Build Badge Test Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

develop (Myoldmopar) - x86_64-Linux-Ubuntu-22.04-gcc-11.4-UnitTestsCoverage-Debug: OK (2060 of 2060 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

develop (Myoldmopar) - x86_64-Linux-Ubuntu-22.04-gcc-11.4-IntegrationCoverage-Debug: OK (795 of 795 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

Please sign in to comment.