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

Refactor of Boiler:HotWater Code #6728

Closed
wants to merge 198 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
198 commits
Select commit Hold shift + click to select a range
fd78edc
Have boilers inherit from PlantComponent. Add required override funct…
haleepfl Apr 20, 2018
58122a9
Change flow mode to enum class
haleepfl Apr 20, 2018
ad16c61
cleanout extern ints for flow mode
haleepfl Apr 20, 2018
49e3233
Change efficiency curve type to enum class
haleepfl Apr 20, 2018
ea6cf78
cleanout extern ints for efficiencycurvetype
haleepfl Apr 20, 2018
95f2675
change temperature evaluation mode to enum class
haleepfl Apr 20, 2018
7b7c506
cleanout extern ints for temperature evaluation mode
haleepfl Apr 20, 2018
b4cf5f4
remove "using namespace ..." usage where sensible
haleepfl Apr 20, 2018
340235f
cleanup tabs->spaces
haleepfl Apr 20, 2018
3df5070
move functions to member functions
haleepfl Apr 20, 2018
5718a58
sizing is now a member function, remove lookups for boiler in array
haleepfl Apr 20, 2018
a73652e
Move initBoiler to member function, change enum class names to avoid …
haleepfl Apr 20, 2018
16e0abd
move init flags into the boiler struct and cleanup unused local and g…
haleepfl Apr 20, 2018
b265ac8
split getDesignCapacities and getSizingFactor out of the simulate rou…
haleepfl Apr 20, 2018
86b88d6
remove the old Simulate function
haleepfl Apr 20, 2018
5e8661b
remove boiler number parameter from calc and update functions
haleepfl Apr 20, 2018
16acd96
rename variable to avoid clash with Boiler member variable
haleepfl Apr 20, 2018
727fc71
remove boiler num input
haleepfl Apr 20, 2018
522f093
split old simulate function into different components
haleepfl Apr 20, 2018
d7b589e
As it's now a member function, calcboiler has direct access to member…
haleepfl Apr 20, 2018
143e7cb
change to use of simulate rather than specific boiler simulation func…
haleepfl Apr 20, 2018
ecd9c39
move reporting variables into the boiler object
haleepfl Apr 20, 2018
99ffc52
update function using member variable reporting variable
haleepfl Apr 20, 2018
7614bbb
update unit test to use member function
haleepfl Apr 20, 2018
1e48ce9
cleanup update records function
haleepfl Apr 20, 2018
56f4f58
Remove index dependence. Index is still required for the getObjectIte…
haleepfl Apr 20, 2018
851d664
cleanup unused variables and move module variables to boiler object (…
haleepfl Apr 20, 2018
3d2245d
cleanup unrequired variable
haleepfl Apr 20, 2018
05586ed
reformat calculations and note todo
haleepfl Apr 20, 2018
4a7f84c
factor out the check of efficiency curve type
haleepfl Apr 20, 2018
3537067
remove report array
haleepfl Apr 20, 2018
b72b7f3
use the assign resource num function instead of if/else statement, it…
haleepfl Apr 20, 2018
2ff1e39
remove three variable curve type, it will always fall through to erro…
haleepfl Apr 20, 2018
a41836b
do the flow rate sizing before capacity
haleepfl Apr 20, 2018
3a4c761
do the flow rate sizing before capacity
haleepfl Apr 20, 2018
b025289
Revert "do the flow rate sizing before capacity"
haleepfl Apr 20, 2018
a26d869
Revert "do the flow rate sizing before capacity"
haleepfl Apr 20, 2018
3b1df3b
remove initialisation of removed variables
haleepfl Apr 20, 2018
f05da68
change struct to class
haleepfl Apr 20, 2018
6307a8e
move clear_state and GetInput into static member functions
haleepfl Apr 20, 2018
e425d0a
remove obsolete report variable array
haleepfl Apr 20, 2018
0618727
Revert "move clear_state and GetInput into static member functions"
haleepfl Apr 20, 2018
ab081ef
annotate new report variable
haleepfl Apr 20, 2018
07320f2
rename nominal capacity, efficiency and outlet temperature variables
haleepfl Apr 20, 2018
e2f8b6c
rename volume flow rate
haleepfl Apr 20, 2018
b302d7e
rename mass flow rate
haleepfl Apr 20, 2018
f9e4d45
fix unit test for renamed variables
haleepfl Apr 20, 2018
1d7f36d
rename variable noting whether volume flow rate is autosized
haleepfl Apr 20, 2018
0bd55df
rename variable for whether nominal capacity is autosized
haleepfl Apr 20, 2018
c83704d
rename sizing factor
haleepfl Apr 20, 2018
9a8c877
fix unit test for renamed variables
haleepfl Apr 20, 2018
15c388f
rename min/max/optimal part load ratio variables
haleepfl Apr 20, 2018
9e7d032
rename node index variables
haleepfl Apr 20, 2018
0fd3c77
rename parasitic electrical load
haleepfl Apr 20, 2018
7f72468
rename outlet limit temperature variable
haleepfl Apr 20, 2018
42feec5
rename efficiency curve index variable
haleepfl Apr 20, 2018
86de92b
rename flow mode variable
haleepfl Apr 20, 2018
55bbee7
rename efficiency curve type variable
haleepfl Apr 20, 2018
2cbbd70
rename efficiency curve temperature mode variable
haleepfl Apr 20, 2018
a6533d5
rename fouling fault flag
haleepfl Apr 20, 2018
af6cf0a
rename fault index variable
haleepfl Apr 20, 2018
f42bfd1
rename fouling factor variable
haleepfl Apr 20, 2018
d7b7d09
Revert "rename fouling factor variable"
haleepfl Apr 20, 2018
3651ff6
Revert "rename fault index variable"
haleepfl Apr 20, 2018
9b9a854
Revert "rename fouling fault flag"
haleepfl Apr 20, 2018
1078351
make most variables private, fault variables are accessed from faults…
haleepfl Apr 20, 2018
19aacc9
make get input a static member function so it can access the private …
haleepfl Apr 20, 2018
337be22
make required member functions public
haleepfl Apr 20, 2018
c4e8842
add getters and setters for unit testing access
haleepfl Apr 20, 2018
a85a352
add outlet temperature setter
haleepfl Apr 20, 2018
4448d52
fix formatting
haleepfl Apr 20, 2018
f2e08f9
make sizing function public for unit testing
haleepfl Apr 20, 2018
474713e
update unit test to use public member functions
haleepfl Apr 20, 2018
fde940b
make constructor public
haleepfl Apr 21, 2018
7214947
set nominal capacity using the member function
haleepfl Apr 21, 2018
4de2439
set volume flow rate using the member function
haleepfl Apr 21, 2018
7676a55
add validation to sizing factor setter
haleepfl Apr 21, 2018
0fcc9a0
add setter for outlet temp limit with validation
haleepfl Apr 21, 2018
8546434
use the setter for outlet temp limit
haleepfl Apr 21, 2018
9e03a64
use the setter for sizing factor
haleepfl Apr 21, 2018
ef6fc08
reformat line lengths
haleepfl Apr 21, 2018
74f3fb9
rename sizing routine to match other public member functions
haleepfl Apr 21, 2018
f1f6648
rename boiler object
haleepfl Apr 21, 2018
2d14256
revert to parent parameter names
haleepfl Apr 21, 2018
5fcb220
remove use of "using namespace"
haleepfl Apr 21, 2018
5207d2d
add new fixture class for boiler sizing to consolidate setup and tear…
haleepfl Apr 21, 2018
05852af
remove obsolete test
haleepfl Apr 21, 2018
f02ab27
comment fix
haleepfl Apr 21, 2018
b5af4cf
reorder for consistency
haleepfl Apr 21, 2018
a6f1616
update reporting variable struct name and member variable name
haleepfl Apr 21, 2018
ac95b22
refactor naming of operating efficiency
haleepfl Apr 21, 2018
cbc62b8
refactor operating capacity name
haleepfl Apr 21, 2018
7b78aad
clean up unused local variables
haleepfl Apr 21, 2018
c79eb94
remove local variables
haleepfl Apr 21, 2018
0759fc8
remove unnecessary local node index variables
haleepfl Apr 21, 2018
6415436
remove commented variables
haleepfl Apr 21, 2018
f1c894a
rename operating load
haleepfl Apr 21, 2018
3e7ed33
rename operating part load ratio
haleepfl Apr 21, 2018
decaa41
operating part load ratio rename
haleepfl Apr 21, 2018
087fa62
rename operating fuel use
haleepfl Apr 21, 2018
0d4828e
rename operating part load ratio cleanup
haleepfl Apr 21, 2018
021a9fb
rename operating parasitic elec load
haleepfl Apr 21, 2018
68ac458
rename operating mass flow rate variable
haleepfl Apr 21, 2018
c006c06
rename operating outlet temp
haleepfl Apr 21, 2018
b1d7e2b
check the set values before autosizing
haleepfl Apr 23, 2018
e29915c
comment fix
haleepfl Apr 23, 2018
ebd62ab
todo comment for design outlet temperature
haleepfl Apr 23, 2018
8a9ba7c
this seems to belong in the Engineering Reference rather than the inp…
haleepfl Apr 23, 2018
fa73cc0
show options as list rather than inline list
haleepfl Apr 23, 2018
c657766
use SI unit package
haleepfl Apr 23, 2018
d8b00b8
compress and align equations and variable explanation
haleepfl Apr 23, 2018
bed5ab8
use minimum/maximum rather than min/max
haleepfl Apr 23, 2018
01d80f1
use SI unit package
haleepfl Apr 23, 2018
3893d54
whitespace and formatting cleanup
haleepfl Apr 23, 2018
481ba67
add missing comma
haleepfl Apr 23, 2018
10cd9c6
remove random backslash
haleepfl Apr 23, 2018
1c7e4f8
use description for options and their description
haleepfl Apr 23, 2018
eadbc90
add subsection for input example
haleepfl Apr 23, 2018
fd36167
correct the description of the parasitic electrical load field to acc…
haleepfl Apr 23, 2018
414303f
remove unnecessary local variable
haleepfl Apr 23, 2018
8f677af
remove another unnecessary local variable
haleepfl Apr 23, 2018
c9b1500
cleanup comments
haleepfl Apr 23, 2018
a622166
align comments
haleepfl Apr 23, 2018
5a7ad66
cleanup comments/whitespace
haleepfl Apr 23, 2018
6d3fe5c
separate the update and reporting functions, add clear operating vari…
haleepfl Apr 24, 2018
109357c
use new variable rather than getting the node temperature again
haleepfl Apr 24, 2018
71f69eb
fix variable used
haleepfl Apr 24, 2018
22ed184
remove reporting datastruct, use operating variables instead
haleepfl Apr 24, 2018
a0ab9bc
remove updateboilerrecords in favour of separate update/report functions
haleepfl Apr 24, 2018
b8d3f29
use update/report functions
haleepfl Apr 24, 2018
1c4fb83
rename initialisation function
haleepfl Apr 24, 2018
5b1d163
update output variable setup to remove reporting struct
haleepfl Apr 24, 2018
6a65128
rename calculate function to match style
haleepfl Apr 24, 2018
e06f961
set the pointer to boiler object
haleepfl Apr 24, 2018
069ebeb
Add EquipFlowCtrl to plant component simulate function as it is requi…
haleepfl Apr 24, 2018
bf46124
Add virtual destructor
haleepfl Apr 24, 2018
81856de
use Default not default to avoid clash with keyword
haleepfl Apr 24, 2018
2ad02b0
fix for unused function parameters
haleepfl Apr 24, 2018
24dd596
SimPlantEquip was returning prior to getting the sizing factor for th…
haleepfl Apr 26, 2018
46d05a0
update variable names to match other member variables
haleepfl Apr 26, 2018
8fdac2b
set component flow once
haleepfl Apr 27, 2018
34dbead
simplify calculations for constant volume operation
haleepfl Apr 27, 2018
8cdc192
simplify calculations for variable flow operation
haleepfl Apr 27, 2018
fa28b74
simplify flow locked operation
haleepfl Apr 27, 2018
a5bf079
make BoilerDeltaTemp local to the variable flow calculation
haleepfl Apr 27, 2018
b48d190
formatting and comment update
haleepfl Apr 27, 2018
bf35c62
update temperature difference name
haleepfl Apr 27, 2018
2f5f380
update eff curve output variable name
haleepfl Apr 27, 2018
b9f384d
add assert on curve evaluation code, factor out calculation of curve …
haleepfl Apr 27, 2018
e13e12c
whitespace cleanup
haleepfl Apr 27, 2018
631f53f
add todo items
haleepfl Apr 27, 2018
987c3d1
add reordering todo
haleepfl May 8, 2018
8d019ca
change member variable naming convention from trailing underscore to …
haleepfl Jul 2, 2018
7d4ba85
fix typo noted by mjwitte
haleepfl Jul 2, 2018
8cebcf6
fix variable initialisation order
haleepfl Jul 2, 2018
57d18d8
fix for possible wrong fuel assignment due to lowercase fuelType
haleepfl Jul 2, 2018
8c3d6cf
apply clang format
haleepfl Jul 3, 2018
5f2e50e
update comments/formating
haleepfl Jul 3, 2018
5db3b7f
add todo item for output of boiler efficiency, see #6733
haleepfl Jul 3, 2018
506855c
Merge branch 'develop' into oo_boiler_refactor
haleepfl Jul 4, 2018
e842f95
move initialization of outlet temp to start of calculation routine
haleepfl Jul 6, 2018
b46db8d
Merge branch 'develop' into oo_boiler_refactor
haleepfl Jul 12, 2018
5170aef
Merge develop into oo_boiler_refactor
Sep 11, 2018
0106a46
Fix for merge error
Sep 12, 2018
e3bf9b1
Fix for fault manager getting input
Sep 12, 2018
6e26de7
Move check of input get flag into the function
Sep 12, 2018
1c90d12
Update sizing temperature to match upstream
Sep 12, 2018
9edbc0a
Update unit test for refactored boilers
Sep 12, 2018
bb6c811
Rename get input function now it is public
Sep 12, 2018
453222a
Rename remaining private variables
Sep 12, 2018
b763ea8
Update unit test naming, messages, and constants
Sep 12, 2018
6165adc
Remove unnecessary assignment
Sep 12, 2018
2f00bc5
Fix for removed outlet temp field
Sep 12, 2018
b9b5ddd
Fix for incorrect initialisation temperature
Sep 12, 2018
f0f6883
Apply clang format
Sep 12, 2018
9efbd28
Make fault data private and output data public
Sep 12, 2018
04c61da
Cleanup formatting and intialization order warnings
Sep 13, 2018
5901324
Cleanup comments
Sep 13, 2018
02d20a4
Rearrange efficiency calculation to allow for future output
Sep 13, 2018
5277158
Fix for variable renaming
Sep 13, 2018
766906e
Reorder efficiency calculation to ensure error checked values are used
Sep 13, 2018
4b62d07
Use US spelling
Sep 13, 2018
fa24f10
Add re-engineering comment
Sep 13, 2018
6ae60e1
Remove 'using namespace'
Sep 13, 2018
e714a4e
Remove using namespace for predefined reports
Sep 13, 2018
20b72ab
Cleanup local variable naming
Sep 13, 2018
3a70de4
Cleanup namespace level using statements
Sep 13, 2018
255c44b
Cleanup units and add macros
Sep 13, 2018
3f4b995
Cleanup input-output docs
Sep 13, 2018
5579266
Cleanup additional documentation
Sep 13, 2018
c3a3610
Fix for assert when checking number of vars of efficiency curve
Sep 13, 2018
2adc0c3
Merge branch 'develop' into oo_boiler_refactor
Sep 14, 2018
3cf349a
Merge branch 'develop' into oo_boiler_refactor
Sep 15, 2018
8a0b423
Merge branch 'develop' into oo_boiler_refactor
Sep 17, 2018
fd72663
Merge branch 'develop' into oo_boiler_refactor
Sep 22, 2018
d1334d9
Merge branch 'develop' into oo_boiler_refactor
Sep 24, 2018
8bce8b1
Merge develop
Mar 10, 2019
74d4dba
Fix merge error
Mar 10, 2019
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 @@ -1557,25 +1557,22 @@ \subsection{Boiler Sizing}\label{boiler-sizing}
\subsubsection{Nominal Capacity}\label{nominal-capacity}

\begin{equation}
\dot Q_{boiler,nom} = C_{p,w} \cdot \rho_w \cdot \Delta T_{loop,des} \cdot \dot V_{loop,des} \cdot f_{size}
\dot Q_{boiler,nom} = C_{p,w} \cdot \rho_w \cdot \Delta T_{loop,des} \cdot \dot{V}_{loop,des} \cdot f_{size}
\end{equation}

where

\( C_{p,w} \) is the specific heat of water at the boiler design outlet temperature;

\( \rho_w \) is the density of water at standard conditions (5.05 \(^{o}\)C);

\( \Delta T_{loop,des} \) is the hot water loop design temperature decrease;

\( \dot V_{loop,des} \) is the loop design volumetric flow rate.

\( f_{size} \) is the boiler's sizing factor.
\noindent where
\begin{description}[labelwidth=1cm, leftmargin=!]
\item[$C_{p,w}$] is the specific heat of water at the boiler design outlet temperature.
\item[$\rho_w$] is the density of water at standard conditions (\SI{5.05}{\celsius}).
\item[$\Delta T_{loop,des}$] is the hot water loop design temperature decrease.
\item[$\dot{V}_{loop,des}$] is the loop design volumetric flow rate.
\item[$f_{size}$] is the boiler's sizing factor.
\end{description}

\subsubsection{Design Water Volume Flow Rate}\label{design-boiler-water-flow-rate-1}

\begin{equation}
\dot V_{des} = \dot V_{loop,des} \cdot f_{size}
\dot{V}_{des} = \dot{V}_{loop,des} \cdot f_{size}
\end{equation}

\subsection{Plant Heat Exchanger Sizing}\label{plant-heat-exchanger-sizing}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,65 +4,52 @@ \subsection{Simple Hot Water Boiler}\label{simple-hot-water-boiler}

The input object Boiler:HotWater provides a simple model for boilers that only requires the user to supply the nominal boiler capacity and thermal efficiency. An efficiency curve can also be used to more accurately represent the performance of non-electric boilers but is not considered a required input. The fuel type is input by the user for energy accounting purposes.

The model is based the following three equations
The model is based the following equations

\begin{equation}
OperatingPartLoadRatio = \frac{{BoilerLoad}}{{BoilerNomCapacity}}
\end{equation}

\begin{equation}
TheoreticalFuelUse = \frac{{BoilerLoad}}{{NominalThermalEfficiency}}
\end{equation}

\begin{equation}
FuelUsed = \frac{{TheoreticalFuelUse}}{{BoilerEfficiencyCurveOuput}}
\end{equation}

or
\begin{align}
OperatingPartLoadRatio ={}& \frac{BoilerLoad}{BoilerNomimalCapacity}\\
FuelUsed ={}& \frac{BoilerLoad}{NominalThermalEfficiency \cdot BoilerEfficiencyCurveOutput}
\end{align}

\begin{equation}
FuelUsed = \frac{{BoilerLoad}}{{\left( {NominalThermalEfficiency} \right)\left( {BoilerEfficiencyCurveOutput} \right)}}
\end{equation}

The final equation above includes the impact of the optional boiler efficiency performance curve. To highlight the use of the normalized boiler efficiency curve, the fuel use equation is also shown in an expanded format. The normalized boiler efficiency curve represents the changes in the boiler's nominal thermal efficiency due to loading and changes in operating temperature. If the optional boiler efficiency curve is not used, the boiler's nominal thermal efficiency remains constant throughout the simulation (i.e., BoilerEfficiencyCurveOutput = 1).
The second equation above includes the impact of the optional boiler efficiency performance curve. The normalized boiler efficiency curve represents the changes in the boiler's nominal thermal efficiency due to loading and changes in operating temperature. If the optional boiler efficiency curve is not used, the boiler's nominal thermal efficiency remains constant throughout the simulation (i.e. BoilerEfficiencyCurveOutput = 1).

When a boiler efficiency performance curve is used, any valid curve object with 1 or 2 independent variables may be used. The performance curves are accessed through EnergyPlus' built-in performance curve equation manager (curve objects). The linear, quadratic, and cubic curve types may be used when boiler efficiency is solely a function of boiler loading, or part-load ratio (PLR). These curve types are used when the boiler operates at the specified setpoint temperature throughout the simulation. Other curve types may be used when the boiler efficiency can be represented by both PLR and boiler operating temperature. Examples of valid single and dual independent variable equations are shown below. For all curve types, PLR is always the x independent variable. When using curve types with 2 independent variables, the boiler water temperature (Twater) is always the y independent variable and can represent either the inlet or outlet temperature depending on user input.

\subsubsection{Single independent variable:}\label{single-independent-variable}

\begin{itemize}
\item
\(BoilerEfficiencyCurve = C1 + C2\left( {PLR} \right)\) ~(Linear)
\item
\(BoilerEfficiencyCurve = C1 + C2\left( {PLR} \right) + C3{\left( {PLR} \right)^2}\) ~(Quadratic)
\item
\(BoilerEfficiencyCurve = C1 + C2\left( {PLR} \right) + C3{\left( {PLR} \right)^2} + C4{(PLR)^3}\) ~(Cubic)
\end{itemize}
\begin{align}
\mathrm{Linear} \to Eff ={}& {A_0} + {A_1}\cdot PLR\\
\mathrm{Quadratic} \to Eff ={}& {A_0} + {A_1} \cdot PLR + {A_2}\cdot PL{R^2}\\
\mathrm{Cubic} \to Eff ={}& {A_0} + {A_1}\cdot PLR + {A_2}\cdot PL{R^2} + {A_3}\cdot PL{R^3}
\end{align}

\subsubsection{Dual independent variables:}\label{dual-independent-variables}

\begin{itemize}
\item
\(BoilerEfficiencyCurve = C1 + C2\left( {PLR} \right) + C3{\left( {PLR} \right)^2} + \left( {C4 + C5\left( {PLR} \right) + C6{{\left( {PLR} \right)}^2}} \right)\left( {Twater} \right)\) ~(QuadraticLinear)
\item
\(BoilerEfficiencyCurve = C1 + C2\left( {PLR} \right) + C3{\left( {PLR} \right)^2} + C4\left( {Twater} \right) + C5{(Twater)^2} + C6(PLR)(Twater)\) ~(Biquadratic)
\item
\(BoilerEfficiencyCurve = C1 + C2\left( {PLR} \right) + C3{\left( {PLR} \right)^2} + C4\left( {Twater} \right) + C5{(Twater)^2} + C6\left( {PLR} \right)\left( {Twater} \right) + C7{(PLR)^3} + C8{(Twater)^3} + C9{\left( {PLR} \right)^2}\left( {Twater} \right) + C10\left( {PLR} \right){(Twater)^2}\) ~(Bicubic)
\end{itemize}
\begin{align}
\mathrm{BiQuadratic} \to Eff ={}& {A_0} + {A_1}\cdot PLR + {A_2}\cdot PL{R^2} + {A_3}\cdot {T_w} + {A_4}\cdot {T_w}^2 + {A_5}\cdot PLR\cdot {T_w}\\
\begin{split}
\mathrm{QuadraticLinear} \to Eff ={}& {A_0} + {A_1}\cdot PLR + {A_2}\cdot PL{R^2} + {A_3}\cdot {T_w} + {A_4}\cdot PLR\cdot {T_w} + {}\\
&{A_5}\cdot PL{R^2}\cdot {T_w}
\end{split}\\
\begin{split}
\mathrm{Bicubic} \to Eff ={}& A_0 + A_1 \cdot PLR + A_2 \cdot PLR^2 + A_3 \cdot T_w + A_4 T_w^2 + A_5 \cdot PLR \cdot T_w + {}\\
&A_6 \cdot PLR^3 + A_7 \cdot T_w^3 + A_8 \cdot PLR^2 \cdot T_w + A_9 \cdot PLR \cdot T_w^2
\end{split}
\end{align}

When a boiler efficiency curve is used, a constant efficiency boiler may be specified by setting C1 = 1 and all other coefficients to 0. A boiler with an efficiency proportional to part-load ratio or which has a non-linear relationship of efficiency with part-load ratio will typically set the coefficients of a linear, quadratic, or cubic curve to non-zero values. Using other curve types allows a more accurate simulation when boiler efficiency varies as a function of part-load ratio and as the boiler outlet water temperature changes over time due to loading or as changes occur in the water temperature setpoint.
When a boiler efficiency curve is used, a constant efficiency boiler may be specified by setting $A_0 = 1$ and all other coefficients to 0. A boiler with an efficiency proportional to part-load ratio or which has a non-linear relationship of efficiency with part-load ratio will typically set the coefficients of a linear, quadratic, or cubic curve to non-zero values. Using other curve types allows a more accurate simulation when boiler efficiency varies as a function of part-load ratio and as the boiler outlet water temperature changes over time due to loading or as changes occur in the water temperature setpoint.

The parasitic electric power is calculated based on the user-defined parasitic electric load and the operating part load ratio calculated above. The model assumes that this parasitic power does not contribute to heating the water.

\begin{equation}
{P_{parasitic}} = {P_{load}}\left( {PLR} \right)
P_{parasitic, op} = P_{parasitic, des} \cdot PLR
\end{equation}

where:

\({P_{parasitic}}\) is the parasitic electric power (W), average for the simulation time step

\({P_{load}}\) is the parasitic electric load specified by the user (W).
\noindent where
\begin{description}[labelwidth=1cm, leftmargin=!]
\item[$P_{parasitic, op}$] is the operating parasitic electric power (W), average for the simulation time step.
\item[$P_{parasitic, des}$] is the design parasitic electric load specified by the user (W).
\end{description}

\subsection{Steam Boiler}\label{steam-boiler}

Expand Down
Loading