modelBoilerNoControl
Boiler model with physics only
Extends from AixLib.Fluid.BoilerCHP.BaseClasses.PartialHeatGenerator (Partial model for heat generators).
Information
Overview
A boiler model consisting of physical components.The efficiency is based on the part load rate and the inflow water temperature.
Assumptions for predefined parameter values (based on
Vissmann data cheat 5811009):
G: a heat loss of 0.3 % of nominal power at a temperature difference of 50 K to ambient is assumed.
C: factor C/Q_nom is in range of 1.2 to 2 for boilers with nominal power between 460 kW and 80 kW (with c of 500J/kgK for steel). Thus, a value of 1.5 is used as default.
-
September 19, 2019 by Alexander Kümpel:
First implementation
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.ThermalConductance | G | 0.003*Q_nom/50 | Constant thermal conductance to environment(G=Q_loss/dT) |
| Modelica.Units.SI.HeatCapacity | C | 1.5*Q_nom | Heat capacity of metal (J/K) |
| Modelica.Units.SI.Volume | V | paramBoiler.volume | Volume |
| Modelica.Units.SI.Power | Q_nom | paramBoiler.Q_nom | Nominal heating power |
| Real[:,2] | etaLoadBased | paramBoiler.eta | Table matrix for part load based efficiency (e.g. [0,0.99; 0.5, 0.98; 1, 0,97]) |
| Real[:,2] | etaTempBased | [293.15, 1.09; 303.15, 1.08; 313.15, 1.05; 323.15, 1.; 373.15, 0.99] | Table matrix for temperature based efficiency |
| 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.PressureDifference | dp_nominal (from PartialHeatGenerator) | a*(m_flow_nominal/rho_default)^n | Pressure drop at nominal mass flow rate |
| 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 |
| Advanced › Sensor Properties | |||
| Modelica.Units.SI.Time | tau (from PartialHeatGenerator) | 1 | Time constant of the temperature sensors at nominal flow rate |
| Modelica.Blocks.Types.Init | initType (from PartialHeatGenerator) | Modelica.Blocks.Types.Init.InitialState | Type of initialization (InitialState and InitialOutput are identical) |
| Boolean | transferHeat (from PartialHeatGenerator) | false | If true, temperature T converges towards TAmb when no flow |
| Modelica.Units.SI.Temperature | TAmb (from PartialHeatGenerator) | Medium.T_default | Fixed ambient temperature for heat transfer |
| Modelica.Units.SI.Time | tauHeaTra (from PartialHeatGenerator) | 1200 | Time constant for heat transfer, default 20 minutes |
| Initialization | |||
| Modelica.Units.SI.Temperature | T_start (from PartialHeatGenerator) | Medium.T_default | Initial or guess value of output (= state) |
| Modelica.Units.SI.AbsolutePressure | dp_start (from PartialHeatGenerator) | 0 | Guess value of dp = port_a.p - port_b.p |
| Modelica.Units.SI.MassFlowRate | m_flow_start (from PartialHeatGenerator) | 0 | Guess value of m_flow = port_a.m_flow |
| Modelica.Units.SI.AbsolutePressure | p_start (from PartialHeatGenerator) | Medium.p_default | Start value of pressure |
| Advanced › Pressure drop | |||
| Boolean | from_dp (from PartialHeatGenerator) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean | linearized (from PartialHeatGenerator) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM (from PartialHeatGenerator) | 0.3 | Fraction of nominal mass flow rate where transition to turbulent occurs |
| Real | a (from PartialHeatGenerator) | Coefficient of volume flow rate dependent nominal pressure drop, dp_nominal=a*V_flow_nominal^n. | |
| Real | n (from PartialHeatGenerator) | 2 | Exponent of volume flow rate dependent nominal pressure drop, dp_nominal=a*V_flow_nominal^n. |
| Modelica.Units.SI.Density | rho_default (from PartialHeatGenerator) | Medium.density_pTX(Medium.p_default, Medium.T_default, Medium.X_default) | Density used for parameterization of pressure curve |
| Dynamics | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialHeatGenerator) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| General › Boiler type | |||
| AixLib.DataBase.Boiler.General.BoilerTwoPointBaseDataDefinition | paramBoiler | Parameters for Boiler | |
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) | |
| Modelica.Blocks.Interfaces.RealOutput | fuelPower | Connector of Real output signal | |
| Modelica.Blocks.Interfaces.RealOutput | thermalPower | Value of Real output | |
| Modelica.Blocks.Interfaces.RealInput | u_rel | Relative gas power [0,1] | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_b | T_amb | Heat port for heat losses to ambient | |
| Modelica.Blocks.Interfaces.RealOutput | T_out | Outflow temperature of the passing fluid | |
| Modelica.Blocks.Interfaces.RealOutput | T_in | Inflow temperature of the passing fluid |
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 |
| AixLib.Fluid.Sensors.TemperatureTwoPort | senTRet (from PartialHeatGenerator) | Temperature sensor of cold side of heat generator (return) | |
| AixLib.Fluid.Sensors.TemperatureTwoPort | senTSup (from PartialHeatGenerator) | Temperature sensor of hot side of heat generator (supply) | |
| AixLib.Fluid.Sensors.MassFlowRate | senMasFlo (from PartialHeatGenerator) | Sensor for mass flwo rate | |
| Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow | heater (from PartialHeatGenerator) | Prescribed heat flow | |
| AixLib.Fluid.MixingVolumes.MixingVolume | vol (from PartialHeatGenerator) | Fluid volume | |
| AixLib.Fluid.FixedResistances.PressureDrop | preDro (from PartialHeatGenerator) | Pressure drop | |
| Modelica.Thermal.HeatTransfer.Components.HeatCapacitor | internalCapacity | Boiler thermal capacity (dry weight) | |
| Modelica.Thermal.HeatTransfer.Components.ThermalConductor | ConductanceToEnv | Thermal resistance of the boiler casing | |
| Modelica.Blocks.Math.Product | QgasCalculation | Calculate gas usage | |
| Modelica.Blocks.Nonlinear.Limiter | limiter | Limits the rel power between 0 and 1 | |
| Modelica.Blocks.Sources.RealExpression | NominalGasConsumption | Nominal gas power | |
| Modelica.Blocks.Tables.CombiTable1Dv | efficiencyTableLoadDepending | Table with efficiency parameters | |
| Modelica.Blocks.Math.Product | QflowCalculation | Calculation of the produced heatflow | |
| Modelica.Blocks.Math.Product | etaCalculation | calculates the efficiency of the boiler | |
| Modelica.Blocks.Tables.CombiTable1Dv | efficiencyTableLoadDepending1 | Table with efficiency parameters |