modelScalableBoiler
Modular Boiler Model - With pump and feedback - Simple PLR regulation
Extends from AixLib.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models).
Information
The ModularBoiler package uses the AixLib.Fluid.BoilerCHP.BoilerGeneric model to create an easy to use module.
Configuration options
The model can be configured with or without a pump (hasPump) and with or without a feedback circuit (hasFeedback) for return temperature control.
Furthermore the model can have an internal control for the flow temperature based on a heating curve (use_HeaCur). This allows an easy setup of a direct to use simulation model of the boiler that can be connected to other modules.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Assumptions | |||
| Boolean | allowFlowReversal (from PartialTwoPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m_flow_nominal (from PartialTwoPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.Temperature | TRet_nominal | 308.15 | Return temperature TCold |
| Modelica.Units.SI.TemperatureDifference | dT_nominal | 20 | Temperature difference nominal |
| Modelica.Units.SI.Temperature | TSup_nominal | 353.15 | Design supply temperature |
| Advanced | |||
| Modelica.Units.SI.MassFlowRate | m_flow_small (from PartialTwoPortInterface) | 1E-4*abs(m_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialTwoPortInterface) | false | = true, if actual temperature at port is computed |
| System setup | |||
| Boolean | hasPum | true | Model includes a pump |
| Modelica.Units.SI.HeatFlowRate | Q_flow_nominal | 50000 | Nominal heat flow rate |
| Real | FirRatMin | 0.15 | Minimal firing rate |
| Control › Safety | |||
| Modelica.Units.SI.Temperature | TSup_max | 363.15 | Maximal temperature to force shutdown |
| Modelica.Units.SI.Temperature | TRet_min | 313.15 | Minimum return temperature, at which the system is shut down |
| Modelica.Units.SI.Time | time_minOff | 900 | Time after which the device can be turned on again |
| Modelica.Units.SI.Time | time_minOn | 900 | Time after which the device can be turned off again |
| Control › Heating Curve | |||
| Boolean | use_HeaCur | false | Use heating curve to set flow temperature |
| Boolean | use_tableData | true | Choose between tables or function to calculate TSet |
| Real | declination | 1 | |
| Real | day_hour | 6 | |
| Real | night_hour | 22 | |
| Utilities.Time.Types.ZeroTime | zerTim | AixLib.Utilities.Time.Types.ZeroTime.NY2017 | Enumeration for choosing how reference time (time = 0) should be defined. Used for heating curve |
| Modelica.Units.SI.ThermodynamicTemperature | TOffset | 0 | Offset to heating curve temperature |
| Control › Flow temperature | |||
| Real | kFloTem | 0.05 | Gain of controller |
| Modelica.Units.SI.Time | TiFloTem | 10 | Time constant of Integrator block |
| Feedback | |||
| Boolean | hasFedBac | true | circuit has Feedback |
| Modelica.Units.SI.PressureDifference | dp_Valve | Pressure Difference set in regulating valve for pressure equalization in heating system | |
| Real | Kv | Kv (metric) flow coefficient [m3/h/(bar)^(1/2)] | |
| Control › Feedback | |||
| Real | kFedBac | 1 | Gain of controller |
| Modelica.Units.SI.Time | TiFeedBack | 0.5 | Time constant of Integrator block |
| Real | yMaxFedBac | 0.99 | Upper limit of output |
| Real | yMinFedBac | 0.01 | Lower limit of output |
| Dynamics | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Initialization | |||
| Modelica.Media.Interfaces.Types.Temperature | T_start | Medium.T_default | Start value of temperature |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a (from PartialTwoPort) | Fluid connector a (positive design flow direction is from port_a to port_b) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b (from PartialTwoPort) | Fluid connector b (positive design flow direction is from port_a to port_b) | |
| AixLib.Controls.Interfaces.BoilerControlBus | boiBus |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.MassFlowRate | m_flow (from PartialTwoPortInterface) | port_a.m_flow | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp (from PartialTwoPortInterface) | port_a.p - port_b.p | Pressure difference between port_a and port_b |
| Medium.ThermodynamicState | sta_a (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow))) | Medium properties in port_a |
| Medium.ThermodynamicState | sta_b (from PartialTwoPortInterface) | if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow)) | Medium properties in port_b |
| Fluid.BoilerCHP.BoilerGeneric | boiGen | ||
| AixLib.Fluid.Sensors.TemperatureTwoPort | senTSup | Temperature sensor of hot side of heat generator (supply) | |
| AixLib.Fluid.Sensors.TemperatureTwoPort | senTRet | Temperature sensor of cold side of heat generator (supply) | |
| AixLib.Fluid.Movers.SpeedControlled_y | pum | Boiler Pump | |
| AixLib.Fluid.Actuators.Valves.ThreeWayEqualPercentageLinear | val | ||
| AixLib.Systems.ScalableGenerationModules.ScalableBoiler.Controls.BoilerControl | boiCtr | Central control unit of boiler | |
| Modelica.Blocks.Sources.Constant | conPum |
Contents
| Name | Description |
|---|---|
| Boiler Medium | |
Revisions
-
June, 2023 by Moritz Zuschlag; David Jansen
First Implementation (see issue #1147)