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

Steam features part 1 (#9260) follow-up #10222

Merged
merged 22 commits into from
Sep 20, 2023
Merged
Show file tree
Hide file tree
Changes from 17 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
d15c18c
Remove ValidateFuelType() in ExteriorEnergyUse.cc
dareumnam Aug 29, 2023
9800533
address remaining comments
dareumnam Sep 1, 2023
65be851
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into Ste…
dareumnam Sep 1, 2023
27a110b
add unit tests for LoadProfiles in water loop and steam loop
dareumnam Sep 13, 2023
796a754
add unit tests for LoadProfiles in water loop and steam loop
dareumnam Sep 13, 2023
c170dfd
Fix district heatiing steam calculation defect, Unit tests for distri…
dareumnam Sep 15, 2023
2cbf4a2
pull develop and merge conflicts
dareumnam Sep 15, 2023
e22f0d8
Update docs
dareumnam Sep 15, 2023
330ae90
fix Cp for condensate
dareumnam Sep 15, 2023
05a054c
clang format
dareumnam Sep 15, 2023
5682d7e
clang format
dareumnam Sep 15, 2023
ca16188
fix errors
dareumnam Sep 15, 2023
82a878f
clang format
dareumnam Sep 15, 2023
b4a8cfd
resolve conflicts from #10131
dareumnam Sep 18, 2023
44221c5
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into Ste…
dareumnam Sep 19, 2023
1dfc9d1
update doc 2
dareumnam Sep 19, 2023
5a963be
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into Ste…
dareumnam Sep 19, 2023
a335e07
fix doc errors
dareumnam Sep 20, 2023
cc427fd
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into Ste…
dareumnam Sep 20, 2023
4a3a3fd
Merge branch 'develop' of https://github.com/NREL/EnergyPlus into Ste…
dareumnam Sep 20, 2023
37b1e04
fix documentation
dareumnam Sep 20, 2023
f9c6e0c
fix the unit test
dareumnam Sep 20, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 the output capacity necessary from the inlet condensate to the saturated steam.
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