Skip to content

Commit

Permalink
Merge pull request #10222 from NREL/SteamPart1Followup
Browse files Browse the repository at this point in the history
Steam features part 1 (#9260) follow-up
  • Loading branch information
Myoldmopar authored Sep 20, 2023
2 parents 3b44598 + f9c6e0c commit caca0d2
Show file tree
Hide file tree
Showing 28 changed files with 824 additions and 375 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ \section{Plant Load Profile}\label{plant-load-profile}

\subsection{Calculation Model}\label{calculation-model}

The LoadProfile:Plant object calculates the outlet water temperature based on the inlet water temperature from the plant loop and user inputs for the scheduled plant load and the requested flow rate.~ The calculation can be expressed with the equation:
\subsubsection{Plant Load Profile in the Water Loop}\label{plant-load-profile-in-the-water-loop}

The LoadProfile:Plant object in the water loop calculates the outlet water temperature based on the inlet water temperature from the plant loop and user inputs for the scheduled plant load and the requested flow rate.~ The calculation can be expressed with the equation:

\begin{equation}
{T_{out}} = {T_{in}} - \frac{{{Q_{load}}}}{{\dot m{c_p}}}
Expand Down Expand Up @@ -41,3 +43,24 @@ \subsection{Calculation Model}\label{calculation-model}
\({Q_{load}}\) ~ = the scheduled plant load

\(\Delta t\) ~ = the time step interval


\subsubsection{Plant Load Profile in the Steam Loop}\label{plant-load-profile-in-the-steam-loop}

The LoadProfile:Plant object in the steam loop calculates the outlet steam flow rate based on the inlet condensate temperature from the plant loop and user inputs for the scheduled plant load.~ This model accounts for the latent heat transfer and sensible cooling of water.~ Steam enters the load profile component at quality equal to 1.0, at saturation temperature and leaves the load profile component with desired degree of sub cooling.~ The user inputs the desired degree of subcooling, which determines the condensate outlet condition from the load profile component.~ The calculation can be expressed with the equation:

\begin{equation}
{\dot m_{out}}\,\,\,\, = \,\,\,\,\,\frac{{{Q_{load}}}}{{{h_{fg}} + {c_{p,condensate}} \times \Delta {T_{sc}}}}
\end{equation}

where

\({\dot m_{out}}\) ~ = the outlet steam mass flow rate

\({Q_{load}}\) ~ = the scheduled plant load

\({h_{fg}}\) ~ = the steam latent heat of vaporization

\({ \Delta {T_{sc}}}\) ~ = the temperature difference between saturation temperature and condensate temperature

\({c_{p,condensate}}\) ~ = the condensate heat capacity
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
\section{District Heating }\label{district-heating}

When the user is not interested in a plant simulation or there is some centralized source of hot water, the following model can be used in the input.~ This allows the user to achieve a simulation without specifying operating parameters or curve fits for boiler models.~ This model only needs the connections to the loop and the nominal capacity to simulate.~ See the InputOutput Reference for additional information (Object: DistrictHeating).~ This model calculates the output capacity necessary from the inlet temperature to the setpoint temperature for that loop with the given mass flow rate in Watts.
When the user is not interested in a plant simulation or there is some centralized source of hot water, the following model can be used in the input.~ This allows the user to achieve a simulation without specifying operating parameters or curve fits for boiler models.~ This model only needs the connections to the loop and the nominal capacity to simulate.~ See the InputOutput Reference for additional information (Object: DistrictHeating:Water and DistrictHeating:Steam).~ DistrictHeating:Water calculates the output capacity necessary from the inlet temperature to the setpoint temperature for that loop with the given mass flow rate in Watts.~ DistrictHeating:Steam calculates the mass flow rate of steam and the output capacity necessary from the inlet condensate to the saturated steam for that loop.
Original file line number Diff line number Diff line change
Expand Up @@ -7965,7 +7965,7 @@ \subsubsection{Inputs}\label{inputs-29-000}
CondensingHotWaterBoiler -- Hot water boiler (condensing)
\end{itemize}

The EnergyPlus equipment object types which are used are \hyperref[districtheating]{DistrictHeating} or \hyperref[boilerhotwater]{Boiler:HotWater}. These equipment type keys must be used if setting up a user-defined boiler plant operation scheme.
The EnergyPlus equipment object types which are used are \hyperref[districtheating]{DistrictHeatingWater} or \hyperref[boilerhotwater]{Boiler:HotWater}. These equipment type keys must be used if setting up a user-defined boiler plant operation scheme.

\paragraph{Field: Capacity}\label{field-capacity-1}

Expand Down
6 changes: 3 additions & 3 deletions doc/input-output-reference/src/input-for-output.tex
Original file line number Diff line number Diff line change
Expand Up @@ -497,9 +497,9 @@ \subsubsection{Field: Name}\label{field-name-1-036}
OtherFuel1 \tabularnewline
OtherFuel2 \tabularnewline
Water \tabularnewline
Steam \tabularnewline
DistrictCooling \tabularnewline
DistrictHeating \tabularnewline
DistrictHeatingWater \tabularnewline
DistrictHeatingSteam \tabularnewline
ElectricityPurchased \tabularnewline
ElectricitySurplusSold \tabularnewline
ElectricityNet \tabularnewline
Expand Down Expand Up @@ -666,7 +666,7 @@ \subsection{Output:EnvironmentalImpactFactors}\label{outputenvironmentalimpactfa
%\endhead
%
Electricity:Facility & Diesel:Facility \tabularnewline
DistrictCooling:Facility & DistrictHeating:Facility \tabularnewline
DistrictCooling:Facility & DistrictHeatingWater:Facility \tabularnewline
NaturalGas:Facility & Gasoline:Facility \tabularnewline
Coal:Facility & FuelOilNo1:Facility \tabularnewline
FuelOilNo2:Facility & Propane:Facility \tabularnewline
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -431,7 +431,7 @@ \subsubsection{Field: Resource Type}\label{field-resource-type}
\item
\textbf{\hyperref[districtcooling]{DistrictCooling}}, this selects the meter for district chilled water energy consumption, in units of Joules {[}J{]},
\item
\textbf{\hyperref[districtheating]{DistrictHeating}}, this selects the meter for district hot water energy consumption, in units of Joules {[}J{]},
\textbf{\hyperref[districtheating]{DistrictHeatingWater}}, this selects the meter for district hot water energy consumption, in units of Joules {[}J{]},
\item
\textbf{ElectricityProducedOnSite}, this selects the meter for electricity produced on the site, in units of Joules {[}J{]},
\item
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ \subsubsection{Inputs}\label{inputs-1-015}

\paragraph{Field: Fuel Use Type}\label{exteriorfuelequipment-field-fuel-use-type}

This field designates the appropriate meter for the exterior fuel equipment. Valid fuel types are: Electricity, NaturalGas, Propane, FuelOilNo1, FuelOilNo2, Diesel, Gasoline, Coal, Steam, \hyperref[districtheating]{DistrictHeating}, \hyperref[districtcooling]{DistrictCooling}, OtherFuel1 and OtherFuel2. The fuel type triggers the application of consumption amounts to the appropriate energy meters.
This field designates the appropriate meter for the exterior fuel equipment. Valid fuel types are: Electricity, NaturalGas, Propane, FuelOilNo1, FuelOilNo2, Diesel, Gasoline, Coal, DistrictHeatingSteam, \hyperref[districtheating]{DistrictHeatingWater}, \hyperref[districtcooling]{DistrictCooling}, OtherFuel1 and OtherFuel2. The fuel type triggers the application of consumption amounts to the appropriate energy meters.

\paragraph{Field: Schedule Name}\label{field-schedule-name-1-000}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1737,7 +1737,7 @@ \subsubsection{Inputs}\label{inputs-10-006}

\paragraph{Field: Fuel Type}

This field designates the appropriate fuel type for the coil. Valid fuel types are: Gas, NaturalGas, Propane, FuelOilNo1, FuelOilNo2, Diesel, Gasoline, Coal, Steam, \hyperref[districtheating]{DistrictHeating}, \hyperref[districtcooling]{DistrictCooling}, OtherFuel1 and OtherFuel2. The fuel type triggers the application of consumption amounts to the appropriate energy meters. NaturalGas is the default.
This field designates the appropriate fuel type for the coil. Valid fuel types are: Gas, NaturalGas, Propane, FuelOilNo1, FuelOilNo2, Diesel, Gasoline, Coal, DistrictHeatingSteam, \hyperref[districtheating]{DistrictHeatingWater}, \hyperref[districtcooling]{DistrictCooling}, OtherFuel1 and OtherFuel2. The fuel type triggers the application of consumption amounts to the appropriate energy meters. NaturalGas is the default.

\paragraph{Field: Burner Efficiency}\label{field-gas-burner-efficiency}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1706,7 +1706,7 @@ \subsubsection{Inputs}\label{inputs-8-010}

\paragraph{Field: Fuel Type}\label{field-fuel-use-type}

This field designates the appropriate meter for the equipment. Valid fuel types are: None, Electricity, NaturalGas, Propane, FuelOilNo1, FuelOilNo2, Diesel, Gasoline, Coal, Steam, \hyperref[districtheating]{DistrictHeating}, \hyperref[districtcooling]{DistrictCooling}, OtherFuel1 and OtherFuel2. The fuel type triggers the application of consumption amounts to the appropriate energy meters. If the None fuel type is selected (the default if left blank), no end uses will be associated with the object, only the zone gains.
This field designates the appropriate meter for the equipment. Valid fuel types are: None, Electricity, NaturalGas, Propane, FuelOilNo1, FuelOilNo2, Diesel, Gasoline, Coal, DistrictHeatingSteam, \hyperref[districtheating]{DistrictHeatingWater}, \hyperref[districtcooling]{DistrictCooling}, OtherFuel1 and OtherFuel2. The fuel type triggers the application of consumption amounts to the appropriate energy meters. If the None fuel type is selected (the default if left blank), no end uses will be associated with the object, only the zone gains.

\paragraph{Field: Zone or ZoneList or Space or SpaceList Name}\label{othereq-field-zone-or-zonelist-name-000}

Expand Down Expand Up @@ -2243,16 +2243,16 @@ \subsection{Internal Gain Equipment Outputs}\label{outputs-5-004}
The hot water equipment district heating consumption in Watts (for power) or Joules (for energy). It is the sum of the radiant, convective, latent and lost components. Hot Water Equipment District Heating Energy is added to the following district heating meters:

\begin{lstlisting}
DistrictHeating:Facility
DistrictHeating:Building
DistrictHeating:Zone:<Zone Name>
DistrictHeating:SpaceType:<Space Type Name>
InteriorEquipment:DistrictHeating
InteriorEquipment:DistrictHeating:Zone:<Zone Name>
InteriorEquipment:DistrictHeating:SpaceType:<Space Type Name>
<End-Use Subcategory>:InteriorEquipment:DistrictHeating
<End-Use Subcategory>:InteriorEquipment:DistrictHeating:Zone:<Zone Name>
<End-Use Subcategory>:InteriorEquipment:DistrictHeating:SpaceType:<Space Type Name>
DistrictHeatingWater:Facility
DistrictHeatingWater:Building
DistrictHeatingWater:Zone:<Zone Name>
DistrictHeatingWater:SpaceType:<Space Type Name>
InteriorEquipment:DistrictHeatingWater
InteriorEquipment:DistrictHeatingWater:Zone:<Zone Name>
InteriorEquipment:DistrictHeatingWater:SpaceType:<Space Type Name>
<End-Use Subcategory>:InteriorEquipment:DistrictHeatingWater
<End-Use Subcategory>:InteriorEquipment:DistrictHeatingWater:Zone:<Zone Name>
<End-Use Subcategory>:InteriorEquipment:DistrictHeatingWater:SpaceType:<Space Type Name>
\end{lstlisting}

\paragraph{Steam Equipment District Heating Rate {[}W{]}}\label{steam-equipment-district-heating-rate-w}
Expand All @@ -2266,16 +2266,16 @@ \subsection{Internal Gain Equipment Outputs}\label{outputs-5-004}
The steam equipment district heating consumption in Watts (for power) or Joules (for energy). It is the sum of the radiant, convective, latent and lost components. Steam Equipment District Heating Energy is added to the following:

\begin{lstlisting}
DistrictHeating:Facility
DistrictHeating:Building
DistrictHeating:Zone:<Zone Name>
DistrictHeating:SpaceType:<Space Type Name>
InteriorEquipment:DistrictHeating
InteriorEquipment:DistrictHeating:Zone:<Zone Name>
InteriorEquipment:DistrictHeating:SpaceType:<Space Type Name>
<End-Use Subcategory>:InteriorEquipment:DistrictHeating
<End-Use Subcategory>:InteriorEquipment:DistrictHeating:Zone:<Zone Name>
<End-Use Subcategory>:InteriorEquipment:DistrictHeating:SpaceType:<Space Type Name>
DistrictHeatingWater:Facility
DistrictHeatingWater:Building
DistrictHeatingWater:Zone:<Zone Name>
DistrictHeatingWater:SpaceType:<Space Type Name>
InteriorEquipment:DistrictHeatingWater
InteriorEquipment:DistrictHeatingWater:Zone:<Zone Name>
InteriorEquipment:DistrictHeatingWater:SpaceType:<Space Type Name>
<End-Use Subcategory>:InteriorEquipment:DistrictHeatingWater
<End-Use Subcategory>:InteriorEquipment:DistrictHeatingWater:Zone:<Zone Name>
<End-Use Subcategory>:InteriorEquipment:DistrictHeatingWater:SpaceType:<Space Type Name>
\end{lstlisting}

\paragraph{Other Equipment Fuel Rate {[}W{]}}\label{otherequip-fuel-rate}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,30 @@ \subsubsection{Inputs}\label{inputs-028}

Reference to the schedule object specifying the flow rate fraction relative to the value in the field Peak Flow Rate (above).

\paragraph{Field: Plant Loop Fluid Type}\label{field-plant-loop-fluid-type}

The fluid type of the plant loop; water or steam.

\paragraph{Field: Degree of SubCooling}\label{field-degree-of-subcooling-load-profile}

This field is used only when Plant Loop Fluid Type=Steam. The minimum value is 1$^\circ$ Celsius and default is 5$^\circ$ Celsius.

\paragraph{Field: Degree of Loop SubCooling}\label{field-degree-of-loop-subcooling-load-profile}

This field is used only when Plant Loop Fluid Type=Steam. The minimum value is 2$^\circ$ Celsius and default is 5$^\circ$ Celsius.

An example of this object follows.

\begin{lstlisting}

LoadProfile:Plant,
Load Profile 1, !- Name
Demand Load Profile 1 Inlet Node, !- Inlet Node Name
Demand Load Profile 1 Outlet Node, !- Outlet Node Name
Load Profile 1 Load Schedule, !- Load Schedule Name {W}
0.003, !- Peak Flow Rate {m3/s}
Load Profile 1 Flow Frac Schedule; !- Flow Rate Fraction Schedule Name
Load Profile 1, !- Name
Demand Load Profile 1 Inlet Node, !- Inlet Node Name
Demand Load Profile 1 Outlet Node, !- Outlet Node Name
Load Profile 1 Load Schedule, !- Load Schedule Name {W}
0.003, !- Peak Flow Rate {m3/s}
Load Profile 1 Flow Frac Schedule, !- Flow Rate Fraction Schedule Name
Water; !-Plant Loop Fluid Type
\end{lstlisting}

\subsubsection{Outputs}\label{outputs-020}
Expand All @@ -66,6 +79,8 @@ \subsubsection{Outputs}\label{outputs-020}
HVAC,Sum,Plant Load Profile Heating Energy {[}J{]}
\item
HVAC,Sum,Plant Load Profile Cooling Energy {[}J{]}
\item
HVAC,Average,Plant Load Profile Steam Outlet Temperature {[}J{]}
\end{itemize}

\paragraph{Plant Load Profile Mass Flow Rate {[}kg/s{]}}\label{plant-load-profile-mass-flow-rate-kgs}
Expand All @@ -82,6 +97,8 @@ \subsubsection{Outputs}\label{outputs-020}

These report the overall cooling or heating energy that the load profile object places on the plant loop, in Joules.

\paragraph{Plant Load Profile Steam Outlet Temperature {[}C{]}}\label{plant-load-profile-steam-outlet-temperature-c}

The inlet and outlet node temperatures and mass flow rates can be monitored using the system node output variables:

\begin{itemize}
Expand Down
Loading

5 comments on commit caca0d2

@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 (2765 of 2765 tests passed, 0 test warnings)

Build Badge Test Badge

@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.17-clang-14.0.0: OK (2744 of 2744 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 (2743 of 2743 tests passed, 0 test warnings)

Build Badge Test Badge

@nrel-bot-2
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 (1957 of 1957 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

@nrel-bot-2c
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 (789 of 789 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

Please sign in to comment.