modelCHPNoControl
Table based CHP model without an internal controller
Extends from AixLib.Fluid.BoilerCHP.BaseClasses.PartialHeatGenerator (Partial model for heat generators).
Information
Overview
A table based combined heat and power (CHP) model. The input is the relative part load rate [0...1].
Concept
The dimension of thermal and electrical power outputs and fuel input as well as the electricity profile should be in kW. The dimension of fuel consumption depends on the user's data.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.ThermalConductance | G | 0.003*param.data_CHP[end, 3]/50 | Constant thermal conductance to environment(G=Q_loss/dT) |
| Modelica.Units.SI.HeatCapacity | C | 1.5*param.data_CHP[end, 3] | Heat capacity of metal (J/K) |
| 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 |
| Unit properties | |||
| AixLib.DataBase.CHP.CHPDataSimple.CHPBaseDataDefinition | param | CHP data set | |
| Real | minCapacity | 0 | Minimum allowable working capacity (unit [-]) |
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 | u_rel | Relative | |
| Modelica.Blocks.Interfaces.RealOutput | electricalPower | Electrical power | |
| Modelica.Blocks.Interfaces.RealOutput | thermalPower | Thermal power | |
| Modelica.Blocks.Interfaces.RealOutput | fuelInput | Fuel input | |
| Modelica.Blocks.Interfaces.RealOutput | fuelConsumption | Fuel consumption | |
| Modelica.Blocks.Interfaces.RealOutput | T_out | Outflow temperature of the passing fluid | |
| Modelica.Blocks.Interfaces.RealOutput | T_in | Inflow temperature of the passing fluid | |
| Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_b | T_amb | Heat port for heat losses 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 |
| 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.Blocks.Tables.CombiTable1Ds | combiTable1Ds | Time table to read CHP performance data | |
| Modelica.Blocks.Math.Gain | gain | Conversion factor | |
| Modelica.Blocks.Nonlinear.Limiter | limiter | Limits the rel power between 0 and 1 | |
| Modelica.Blocks.Math.Gain | gain4 | Conversion factor | |
| Modelica.Blocks.Math.Gain | gain1 | Conversion factor | |
| Modelica.Blocks.Math.Gain | gain2 | Conversion factor | |
| Modelica.Blocks.Math.Gain | gain3 | Conversion factor | |
| Modelica.Blocks.Math.Gain | toPercent | Conversion factor | |
| Modelica.Thermal.HeatTransfer.Components.HeatCapacitor | internalCapacity | Boiler thermal capacity (dry weight) | |
| Modelica.Thermal.HeatTransfer.Components.ThermalConductor | ConductanceToEnv | Thermal resistance of the boiler casing |
Revisions
- August 31, 2020, by Alexander Kümpel:
First implementation.