modelSingleBoiler
Extends from Buildings.DHC.Plants.BaseClasses.PartialPlant.
Information
This is a generic steam plant model that can be used in district heating system simulations. The model contains a feedwater tank, feedwater pump, check valve, and a boiler. The boiler is designed to discharge saturated steam vapor. For controls, the feedwater pump maintains the water volume setpoint in the drum boiler, while the boiler control maintains the discharge pressure setpoint.
References
Kathryn Hinkelman, Saranya Anbarasu, Michael Wetter, Antoine Gautier, Wangda Zuo. 2022. “A Fast and Accurate Modeling Approach for Water and Steam Thermodynamics with Practical Applications in District Heating System Simulation,” Energy, 254(A), pp. 124227. 10.1016/j.energy.2022.124227
Kathryn Hinkelman, Saranya Anbarasu, Michael Wetter, Antoine Gautier, Baptiste Ravache, Wangda Zuo 2022. “Towards Open-Source Modelica Models For Steam-Based District Heating Systems.” Proc. of the 1st International Workshop On Open Source Modelling And Simulation Of Energy Systems (OSMSES 2022), Aachen, German, April 4-5, 2022. 10.1109/OSMSES54027.2022.9769121
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.Data.Fuels.Generic | fueBoi | Buildings.Fluid.Data.Fuels.NaturalGasLowerHeatingValue() | Boiler fuel type |
| Modelica.Units.SI.MassFlowRate | m_flow_nominal | 1 | Nominal mass flow rate |
| Modelica.Units.SI.Power | Q_flow_nominal | m_flow_nominal*(MediumHea_b.specificEnthalpy(MediumHea_b.setState_pTX(p = pSteSet, T = TSat, X = MediumHea_b.X_default)) - Medium.specificEnthalpy(Medium.setState_pTX(p = pSteSet, T = TSat, X = Medium.X_default))) | Nominal heating power |
| Modelica.Units.SI.AbsolutePressure | pSteSet | 300000 | Steam pressure setpoint |
| Modelica.Units.SI.Temperature | TSat | MediumHea_b.saturationTemperature(pSteSet) | Saturation temperature at pressure setpoint |
| Modelica.Units.SI.AbsolutePressure | pTanFW | 101325 | Pressure of feedwater tank |
| Modelica.Units.SI.Volume | VBoiWatSet | VBoi/2 | Setpoint for liquid water volume in the boiler |
| Modelica.Units.SI.Volume | VBoi | 3 | Total drum volume of steam boiler |
| Real | boiSca | 1.25 | Boiler heat capacity scaling factor |
| Buildings.Fluid.Movers.Data.Generic | per | Performance data for the feedwater pump | |
| Dynamics | |||
| Modelica.Units.SI.Mass | mDry | 1.5E-3*Q_flow_nominal | Mass of boiler that will be lumped to water heat capacity |
| Initialization | |||
| Modelica.Units.SI.Volume | VTanFW_start | 1 | Setpoint for liquid water volume in the boiler |
| Modelica.Media.Interfaces.Types.AbsolutePressure | pBoi_start | pTanFW | Start value of boiler pressure |
| Real | yPum_start | 0.7 | Initial value of pump speed |
| Dynamics › Equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Fluid.Types.Dynamics | massDynamics | energyDynamics | Type of mass balance: dynamic (3 initialization options) or steady state |
| Control › Boiler | |||
| Modelica.Blocks.Types.SimpleController | controllerTypeBoi | Modelica.Blocks.Types.SimpleController.PI | Type of controller |
| Real | kBoi | 10 | Gain of controller |
| Modelica.Units.SI.Time | TiBoi | 120 | Time constant of Integrator block |
| Modelica.Units.SI.Time | TdBoi | 10 | Time constant of Derivative block |
| Real | wpBoi | 1 | Set-point weight for Proportional block (0..1) |
| Real | wdBoi | 0 | Set-point weight for Derivative block (0..1) |
| Real | NiBoi | 0.9 | Ni*Ti is time constant of anti-windup compensation |
| Real | NdBoi | 10 | The higher Nd, the more ideal the derivative block |
| Control › Pump | |||
| Modelica.Blocks.Types.SimpleController | controllerTypePum | Modelica.Blocks.Types.SimpleController.PI | Type of controller |
| Real | kPum | 5 | Gain of controller |
| Modelica.Units.SI.Time | TiPum | 120 | Time constant of Integrator block |
| Modelica.Units.SI.Time | TdPum | 0.1 | Time constant of Derivative block |
| Real | wpPum | 1 | Set-point weight for Proportional block (0..1) |
| Real | wdPum | 0 | Set-point weight for Derivative block (0..1) |
| Real | NiPum | 0.9 | Ni*Ti is time constant of anti-windup compensation |
| Real | NdPum | 10 | The higher Nd, the more ideal the derivative block |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.Movers.SpeedControlled_y | pumFW | Feedwater pump | |
| Buildings.DHC.Plants.Steam.BaseClasses.BoilerPolynomial | boi | Steam boiler | |
| Buildings.Controls.Continuous.LimPID | conPum | Pump control | |
| Modelica.Blocks.Math.Gain | VNor | Normalized volume setpoint | |
| Buildings.Controls.Continuous.LimPID | conBoi | Boiler control | |
| Modelica.Blocks.Math.Gain | PNor | Normalized pressure setpoint | |
| Buildings.Fluid.Sensors.Pressure | senPreSte | Steam pressure sensor | |
| Modelica.Blocks.Sources.Constant | uni | Unitary | |
| Buildings.Fluid.Storage.ExpansionVessel | tanFW | Feedwater tank | |
| Buildings.Fluid.FixedResistances.CheckValve | cheVal | Check valve |
Revisions
-
September 15, 2023, by Kathryn Hinkelman:
Added publication references. -
July 18, 2023, by Michael Wetter:
Corrected assignment ofallowFlowReversal, and set start pressure of boiler to be equal to start pressure of feed water tank. Otherwise, backflow occurs at the start of the simulation. -
March 3, 2022 by Kathryn Hinkelman:
First implementation.