NREL / EnergyPlus

EnergyPlus™ is a whole building energy simulation program that engineers, architects, and researchers use to model both energy consumption and water use in buildings.
https://energyplus.net
Other
1.1k stars 384 forks source link

Supplemental heating coil default not filled in #10282

Closed yujiex closed 9 months ago

yujiex commented 10 months ago

Issue overview

In the object ZoneHVAC:TerminalUnit:VariableRefrigerantFlow, the Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation is not filled with the default value if it's not present in the object, as the min-field=19 does not cover this field. This would mean if the line corresponding to "Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation" is present and the user didn't specify a value for it, the supplemental heater will turn off at 21C, but if this line is not present, then the supplemental heater will turn off at 0C.

  N12, \field Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation
       \type real
       \maximum 21.0
       \default 21.0
       \units C
       \note Supplemental heater will not operate when outdoor temperature exceeds this value.

The issue is examined with two files adapted from VariableRefrigerantFlow_wSuppHeater_5Zone.idf. The capacity of TU1 VRF DX Heating Coil is changed from autosize to 500 (smaller than the demand) so that supplemental coil is needed for longer period. The runperiod is changed to 1/1 to 2/4.

The TU1 looks like this.

  ZoneHVAC:TerminalUnit:VariableRefrigerantFlow,
    TU1,                     !- Zone Terminal Unit Name
    VRFAvailSched,           !- Terminal Unit Availability Schedule
    TU1 Inlet Node,          !- Terminal Unit Air Inlet Node Name
    TU1 Outlet Node,         !- Terminal Unit Air Outlet Node Name
    autosize,                !- Cooling Supply Air Flow Rate {m3/s}
    autosize,                !- No Cooling Supply Air Flow Rate {m3/s}
    autosize,                !- Heating Supply Air Flow Rate {m3/s}
    autosize,                !- No Heating Supply Air Flow Rate {m3/s}
    autosize,                !- Cooling Outdoor Air Flow Rate {m3/s}
    autosize,                !- Heating Outdoor Air Flow Rate {m3/s}
    autosize,                !- No Load Outdoor Air Flow Rate {m3/s}
    VRFFanSchedule,          !- Supply Air Fan Operating Mode Schedule Name
    drawthrough,             !- Supply Air Fan Placement
    Fan:SystemModel,         !- Supply Air Fan Object Type
    TU1 VRF Supply Fan,      !- Supply Air Fan Object Name
    OutdoorAir:Mixer,        !- Outside Air Mixer Object Type
    TU1 OA Mixer,            !- Outside Air Mixer Object Name
    COIL:Cooling:DX:VariableRefrigerantFlow,  !- Cooling Coil Object Type
    TU1 VRF DX Cooling Coil, !- Cooling Coil Object Name
    COIL:Heating:DX:VariableRefrigerantFlow,  !- Heating Coil Object Type
    TU1 VRF DX Heating Coil, !- Heating Coil Object Name
    30,                      !- Zone Terminal Unit On Parasitic Electric Energy Use {W}
    20,                      !- Zone Terminal Unit Off Parasitic Electric Energy Use {W}
    ,                        !- Rated Heating Capacity Sizing Ratio {W/W}
    ,                        !- Availability Manager List Name
    ,                        !- Design Specification ZoneHVAC Sizing Object Name
    Coil:Heating:Electric,   !- Supplemental Heating Coil Object Type
    TU1 Supp Heating Coil,   !- Supplemental Heating Coil Name
    autosize;                !- Maximum Supply Air Temperature from Supplemental Heater {C}

In this case, the supplemental heating coil turns off at 0C

image

  ZoneHVAC:TerminalUnit:VariableRefrigerantFlow,
    TU1,                     !- Zone Terminal Unit Name
    VRFAvailSched,           !- Terminal Unit Availability Schedule
    TU1 Inlet Node,          !- Terminal Unit Air Inlet Node Name
    TU1 Outlet Node,         !- Terminal Unit Air Outlet Node Name
    autosize,                !- Cooling Supply Air Flow Rate {m3/s}
    autosize,                !- No Cooling Supply Air Flow Rate {m3/s}
    autosize,                !- Heating Supply Air Flow Rate {m3/s}
    autosize,                !- No Heating Supply Air Flow Rate {m3/s}
    autosize,                !- Cooling Outdoor Air Flow Rate {m3/s}
    autosize,                !- Heating Outdoor Air Flow Rate {m3/s}
    autosize,                !- No Load Outdoor Air Flow Rate {m3/s}
    VRFFanSchedule,          !- Supply Air Fan Operating Mode Schedule Name
    drawthrough,             !- Supply Air Fan Placement
    Fan:SystemModel,         !- Supply Air Fan Object Type
    TU1 VRF Supply Fan,      !- Supply Air Fan Object Name
    OutdoorAir:Mixer,        !- Outside Air Mixer Object Type
    TU1 OA Mixer,            !- Outside Air Mixer Object Name
    COIL:Cooling:DX:VariableRefrigerantFlow,  !- Cooling Coil Object Type
    TU1 VRF DX Cooling Coil, !- Cooling Coil Object Name
    COIL:Heating:DX:VariableRefrigerantFlow,  !- Heating Coil Object Type
    TU1 VRF DX Heating Coil, !- Heating Coil Object Name
    30,                      !- Zone Terminal Unit On Parasitic Electric Energy Use {W}
    20,                      !- Zone Terminal Unit Off Parasitic Electric Energy Use {W}
    ,                        !- Rated Heating Capacity Sizing Ratio {W/W}
    ,                        !- Availability Manager List Name
    ,                        !- Design Specification ZoneHVAC Sizing Object Name
    Coil:Heating:Electric,   !- Supplemental Heating Coil Object Type
    TU1 Supp Heating Coil,   !- Supplemental Heating Coil Name
    autosize,                !- Maximum Supply Air Temperature from Supplemental Heater {C}
    ;                        !- Maximum Outdoor Dry-Bulb Temperature for Supplemental Heater Operation <--- explicitly added

Then the supplemental turn-off temperature is above 0C (it's 21C).

image

Details

Some additional details for this issue (if relevant):

Checklist

Add to this list or remove from it as applicable. This is a simple templated set of guidelines.

rraustad commented 10 months ago

We really do need to figure out a way to include default fields past min-fields so that we can avoid these object specific corrections.

yujiex commented 10 months ago

We really do need to figure out a way to include default fields past min-fields so that we can avoid these object specific corrections.

Indeed. Would it be possible to just fill everything instead of constraint by min-field? Is min-field mostly designed for those expandable objects? Not sure if we could identify those and fill values for other objects