modelBoilerPolynomial
Extends from Buildings.Fluid.Boilers.BaseClasses.PartialBoiler (Boiler base class with efficiency unspecified).
Information
This is a model of a boiler whose efficiency is described by a polynomial. See Buildings.Fluid.Boilers.UsersGuide for details.
The parameter effCur determines what polynomial is used to compute the efficiency with the following selections:
|
Parameter effCur |
Efficiency curve |
|
Buildings.Fluid.Types.EfficiencyCurves.Constant |
η = a1 |
|
Buildings.Fluid.Types.EfficiencyCurves.Polynomial |
η = a1 + a2 y + a3 y2 + ... |
|
Buildings.Fluid.Types.EfficiencyCurves.QuadraticLinear |
η = a1 + a2 y + a3 y2 + (a4 + a5 y + a6 y2) T |
where T is the boiler outlet temperature in Kelvin. For effCur = Buildings.Fluid.Types.EfficiencyCurves.Polynomial, an arbitrary number of polynomial coefficients can be specified.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Boolean | homotopyInitialization (from TwoPortHeatMassExchanger) | true | = true, use homotopy method |
| Buildings.Fluid.Data.Fuels.Generic | fue (from PartialBoiler) | Fuel type | |
| Modelica.Units.SI.Power | Q_flow_nominal (from PartialBoiler) | Nominal heating power | |
| Modelica.Units.SI.ThermalConductance | UA (from PartialBoiler) | 0.05*Q_flow_nominal/30 | Overall UA value |
| Modelica.Units.SI.Efficiency | eta_nominal (from PartialBoiler) | Boiler efficiency at nominal condition | |
| Buildings.Fluid.Types.EfficiencyCurves | effCur | Buildings.Fluid.Types.EfficiencyCurves.Constant | Curve used to compute the efficiency |
| Real[:] | a | {0.9} | Coefficients for efficiency curve |
| Modelica.Units.SI.Temperature | T_nominal | 353.15 | Temperature used to compute nominal efficiency (only used if efficiency curve depends on temperature) |
| 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 TwoPortFlowResistanceParameters) | Pressure difference | |
| 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 |
| Flow resistance | |||
| Boolean | computeFlowResistance (from TwoPortFlowResistanceParameters) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dp (from TwoPortFlowResistanceParameters) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Real | n (from TwoPortFlowResistanceParameters) | 2 | Flow exponent, n=1 for laminar, n=2 for turbulent |
| Boolean | linearizeFlowResistance (from TwoPortFlowResistanceParameters) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Real | deltaM (from TwoPortFlowResistanceParameters) | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
| Dynamics › Nominal condition | |||
| Modelica.Units.SI.Time | tau (from TwoPortHeatMassExchanger) | 30 | Time constant at nominal flow (if energyDynamics <> SteadyState) |
| Dynamics › Conservation equations | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from TwoPortHeatMassExchanger) | Modelica.Fluid.Types.Dynamics.DynamicFreeInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Initialization | |||
| Medium.AbsolutePressure | p_start (from TwoPortHeatMassExchanger) | Medium.p_default | Start value of pressure |
| Medium.Temperature | T_start (from TwoPortHeatMassExchanger) | Medium.T_default | Start value of temperature |
| Medium.MassFraction[Medium.nX] | X_start (from TwoPortHeatMassExchanger) | Medium.X_default | Start value of mass fractions m_i/m |
| Medium.ExtraProperty[Medium.nC] | C_start (from TwoPortHeatMassExchanger) | fill(0, Medium.nC) | Start value of trace substances |
| Dynamics | |||
| Modelica.Units.SI.Volume | VWat (from PartialBoiler) | 1.5E-6*Q_flow_nominal | Water volume of boiler |
| Modelica.Units.SI.Mass | mDry (from PartialBoiler) | 1.5E-3*Q_flow_nominal | Mass of boiler that will be lumped to water heat capacity |
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.RealInput | y (from PartialBoiler) | Part load ratio | |
| Modelica.Blocks.Interfaces.RealOutput | T (from PartialBoiler) | Temperature of the fluid | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_a | heatPort (from PartialBoiler) | Heat port, can be used to connect to ambient |
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 |
| Buildings.Fluid.MixingVolumes.MixingVolume | vol (from TwoPortHeatMassExchanger) | ||
| Buildings.Fluid.FixedResistances.PressureDrop | preDro (from TwoPortHeatMassExchanger) | Flow resistance | |
| Modelica.Units.SI.Efficiency | eta (from PartialBoiler) | Boiler efficiency | |
| Modelica.Units.SI.Power | QFue_flow (from PartialBoiler) | y*Q_flow_nominal/eta_nominal | Heat released by fuel |
| Modelica.Units.SI.Power | QWat_flow (from PartialBoiler) | eta*QFue_flow + UAOve.Q_flow | Heat transfer from gas into water |
| Modelica.Units.SI.MassFlowRate | mFue_flow (from PartialBoiler) | QFue_flow/fue.h | Fuel mass flow rate |
| Modelica.Units.SI.VolumeFlowRate | VFue_flow (from PartialBoiler) | mFue_flow/fue.d | Fuel volume flow rate |
| Modelica.Thermal.HeatTransfer.Components.HeatCapacitor | heaCapDry (from PartialBoiler) | Heat capacity of boiler metal | |
| Buildings.HeatTransfer.Sources.PrescribedHeatFlow | preHeaFlo (from PartialBoiler) | Prescribed heat flow | |
| Modelica.Blocks.Sources.RealExpression | Q_flow_in (from PartialBoiler) | Heat transfer from gas into water | |
| Modelica.Thermal.HeatTransfer.Sensors.TemperatureSensor | temSen (from PartialBoiler) | Temperature of fluid | |
| Modelica.Thermal.HeatTransfer.Components.ThermalConductor | UAOve (from PartialBoiler) | Overall thermal conductance (if heatPort is connected) |
Revisions
-
March 7, 2022, by Michael Wetter:
Setfinal massDynamics=energyDynamics.
This is for #1542. -
October 13, 2021, by Hongxiang Fu:
For the implementation ofBuildings.Fluid.Boilers.BoilerTable, moved most of the code to the base modelBuildings.Fluid.Boilers.BaseClasses.PartialBoiler. This is for #2651. -
May 27, 2016, by Michael Wetter:
Corrected size of input argument toBuildings.Utilities.Math.Functions.quadraticLinearfor JModelica compliance check. -
May 30, 2014, by Michael Wetter:
Removed undesirable annotationEvaluate=true. -
October 9, 2013 by Michael Wetter:
Removed conditional declaration ofmDryas the use of a conditional parameter in an instance declaration is not correct Modelica syntax. -
December 14, 2012 by Michael Wetter:
Renamed protected parameters for consistency with the naming conventions. -
December 22, 2011 by Michael Wetter:
Added computation of fuel usage and improved the documentation. -
May 25, 2011 by Michael Wetter:
-
Removed parameter
dT_nominal, and require instead the parameterm_flow_nominalto be set by the user. This was needed to avoid a non-literal value for the nominal attribute of the pressure drop model. - Changed assignment of parameters in model instantiation, and updated model for the new base class that does not have a temperature sensor.
-
Removed parameter
-
January 29, 2009 by Michael Wetter:
First implementation.