modelCHP

Recommended model for large scale, combined heat and power plants with second order dynamics, three operating states and optional control power
Diagram of CHP

Extends from TransiEnt.Producer.Combined.LargeScaleCHP.Base.PartialCHP (Partial model of a large scale CHP plant with characteristics specified by PQ boundaries and PQ-Heat input table), TransiEnt.Producer.Electrical.Base.ControlPower.PartialBalancingPowerProvider (Abstract model of any kind of electric balancing power provider with statistics and control input).

Information

1. Purpose of model

Model of a combined heat and power plant

2. Level of detail, physical effects considered, and physical insight

(no remarks)

3. Limits of validity

(no remarks)

4. Interfaces

P_set: input for Power in [W]

Q_flow_set: input for heat flow rate in [W]

outlet: FluidPortOut

inlet: FluidPortIn

eye: EyeOut

P_SB_set: input for electric power in [W]

gasPortIn: RealGasPortIn

epp: choice of power port

5. Nomenclature

(no remarks)

6. Governing Equations

(no remarks)

7. Remarks for Usage

Cascading CHP-plants:

Via parameter 'quantity' the whole CHP-plant is devided into several cascading CHP-plants which start up after one another. This implementation repeats the characteristic PQ-field several times. In total, the nominal electrical and thermal power add up to the nominal electrical and thermal power the whole CHP-plant. This is a way for a simple representation of several CHP-plants without having to model several instances of a CHP-plant-model.

Calculation of failures:

CHP-plant turns off when gas pressure falls below 'p_min_operating' and turns on agains if gas pressure increases above 'p_min_operating_backIn'.

8. Validation

Tested in check model "TransiEnt.Producer.Combined.LargeScaleCHP.Check.TestCHP_startup"

9. References

(no remarks)

10. Version History

Model modified by Oliver Schülting (oliver.schuelting@tuhh.de) in Nov 2018: added possibility to model cascading CHP-plants

Model generalized for different electrical power ports by Jan-Peter Heckel (jan.heckel@tuhh.de) in July 2018

Model modified by Oliver Schülting (oliver.schuelting@tuhh.de) in Nov 2018: added gasPort

Parameters

TypeNameDefaultDescription
Modelica.Units.SI.HeatFlowRateQ_flow_n_total (from PartialCHP)Q_flow_n_CHP + Q_flow_n_Peak
Integerquantity (from PartialCHP)1
BooleanintegrateHeatFlow (from PartialCHP)falseTrue if heat flow shall be integrated
BooleanintegrateElectricPower (from PartialCHP)falseTrue if electric power shall be integrated
BooleanintegrateElectricPowerChp (from PartialCHP)falseTrue if electric power of the chp shall be integrated
SI.PowerP_el_n_single (from PartialCHP)P_el_n/quantity
SI.PowerQ_flow_n_CHP_single (from PartialCHP)Q_flow_n_CHP/quantity
SI.Pressurep_min_operating-1.2e5
SI.Pressurep_min_operating_backIn-1e5
BooleanusePowerBoundarytrue
Physical Constraints
TransiEnt.Producer.Combined.LargeScaleCHP.Base.Characteristics.Generic_PQ_CharacteristicsPQCharacteristics (from PartialCHP)TransiEnt.Producer.Combined.LargeScaleCHP.Base.Characteristics.PQ_Characteristics_WW1()Characteristics of CHP plant
Modelica.Units.SI.PowerP_el_n (from PartialCHP)300e6Installed capacity for investment cost calculation
Modelica.Units.SI.HeatFlowRateQ_flow_n_CHP (from PartialCHP)PQCharacteristics.PQboundaries[end, 1]/PQCharacteristics.k_Q_flowMaximum possible heat flow according to PQ diagram
Modelica.Units.SI.HeatFlowRateQ_flow_n_Peak (from PartialCHP)0Additional thermal capacity (e.g. peak load heaters)
BooleanuseConstantEfficiencies (from PartialCHP)falseTrue, constant efficiency over load
SI.Efficiencyeta_el_const (from PartialCHP)0.4Constant efficiency used if useConstantEfficiencies=true
SI.Efficiencyeta_th_const (from PartialCHP)0.5Constant efficiency used if useConstantEfficiencies=true
SI.Efficiencyeta_peakload (from PartialCHP)0.98Constant efficiency of peak load heater annotation
BooleanuseConstantSigma (from PartialCHP)falseTrue, use constant power to heat ration (sigma) instead of PQ characteristics
Realsigma (from PartialCHP)0.3Power to heat ration used only if useConstantSigma=true
SI.PowerP_n (from PartialBalancingPowerProvider)300e6Nominal power of plant
RealP_grad_max_star0.03/60Fraction of nominal power per second (12% per minute)
SI.PowerP_el_min_operatingmin(PQCharacteristics.PQboundaries[:, 3])*P_el_n_single/max(PQCharacteristics.PQboundaries[:, 2])Minimum operating thermal power used to determine plant state
SI.TimeT_steamGenerator0.5*(0.632/P_grad_max_star)Time constant of steam generator (overrides value of P_grad_max_star)
SI.TimeT_turboGenerator60Time constant of turbo generator
SI.TimeT_heatingCondenser40Time constant of heating condenser
SI.Timet_startup3600Time between startup signal and minimum load operation
SI.InertiaJ10*P_el_n/(100*3.14)^2Lumped moment of inertia of whole power plant
Advanced › Initialization
SI.ActivePowerP_el_init (from PartialCHP)P_el_nInitial or guess value of output (= state)
SI.HeatFlowRateQ_flow_init (from PartialCHP)Q_flow_n_totalInitial or guess value of output (= state)
BooleanuseEfficiencyForInit (from PartialCHP)falseTrue, set efficiency; False set steam generator power at init
SI.HeatFlowRateQ_flow_SG_init (from PartialCHP)Q_flow_init + P_el_initInitial or guess value of output (= state) of steam generator
Realeta_el_init (from PartialCHP)0.4Thermal efficiency used at init time
SI.TemperatureT_feed_init100 + 273.15Start temperature of feed water
BooleanfixedStartValue_wfalseWhether or not the start value of the angular velocity of the plants mechanical components is fixed
Statistics
TransiEnt.Basics.Types.TypeOfResourcetypeOfResource (from PartialCHP)TransiEnt.Basics.Types.TypeOfResource.CogenerationType of energy resource for global model statistics
TransiEnt.Basics.Types.TypeOfPrimaryEnergyCarriertypeOfPrimaryEnergyCarrier (from PartialCHP)TransiEnt.Basics.Types.TypeOfPrimaryEnergyCarrier.BlackCoalType of primary energy carrier for co2 emissions global statistics
TransiEnt.Basics.Types.TypeOfPrimaryEnergyCarrierHeattypeOfPrimaryEnergyCarrierHeat (from PartialCHP)TransiEnt.Basics.Types.TypeOfPrimaryEnergyCarrierHeat.BlackCoalType of primary energy carrier for heat for co2 emissions global statistics
TransiEnt.Basics.Types.TypeOfCO2AllocationMethodtypeOfCO2AllocationMethod (from PartialCHP)1Type of allocation method
EnergyResourcetypeOfBalancingPowerResource (from PartialBalancingPowerProvider)EnergyResource.ConventionalType of energy resource for global model statistics
IntegernSubgrid1Index of subgrid for moment of inertia statistics
Heating condenser parameters
TILMedia.VLEFluidTypes.BaseVLEFluidmedium (from PartialCHP)simCenter.fluid1Medium to be used
Block control › Frequency Control
BooleanisPrimaryControlActive (from PartialBalancingPowerProvider)true
BooleanisSecondaryControlActive (from PartialBalancingPowerProvider)false
BooleanisExternalSecondaryController (from PartialBalancingPowerProvider)trueFalse, provider generates its own control setpoint (only for lumped plants)
SI.Timet_SB_act (from PartialBalancingPowerProvider)simCenter.t_SB_actMaximum reaction time for SB
Modelica.Units.SI.PowerP_el_grad_max_SB (from PartialBalancingPowerProvider)0.02*P_n/60Maximum power gradient for secondary balancing (default: 2%/min)
Advanced › Heating condenser parameters
Modelica.Units.SI.Pressurep_nom1e5Nominal pressure
SI.MassFlowRatem_flow_nom10Nominal mass flow rate
SI.SpecificEnthalpyh_nom1e5Nominal specific enthalpy
SI.SpecificEnthalpyh_startTILMedia.Internals.VLEFluidConfigurations.FullyMixtureCompatible.VLEFluidFunctions.specificEnthalpy_pTxi(medium, p_nom, T_feed_init)Start value of sytsem specific enthalpy
Fundamental Definitions
BooleanuseGasPortfalseChoose if gas port is used or not
TILMedia.VLEFluidTypes.BaseVLEFluidmedium_gassimCenter.gasModel1Gas Medium to be used - only if useGasPort==true

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealInputP_set (from PartialCHP)
TransiEnt.Basics.Interfaces.Thermal.HeatFlowRateInQ_flow_set (from PartialCHP)
TransiEnt.Basics.Interfaces.Electrical.ActivePowerPortepp (from PartialCHP)
TransiEnt.Basics.Interfaces.Thermal.FluidPortOutoutlet (from PartialCHP)
TransiEnt.Basics.Interfaces.Thermal.FluidPortIninlet (from PartialCHP)
TransiEnt.Basics.Interfaces.General.EyeOuteye (from PartialCHP)
TransiEnt.Basics.Interfaces.Electrical.ElectricPowerInP_SB_set (from PartialBalancingPowerProvider)Secondary balancing setpoint
TransiEnt.Basics.Interfaces.Gas.RealGasPortIngasPortIn

Components

TypeNameDefaultDescription
TransiEnt.SimCentersimCenter (from PartialCHP)
TransiEnt.ModelStatisticsmodelStatistics (from PartialCHP)
Modelica.Blocks.Sources.RealExpressionZero (from PartialCHP)
Modelica.Blocks.Math.Gain[quantity]Q_flow_set_pos (from PartialCHP)Thermal setpoint sign changed (>0)
TransiEnt.Producer.Combined.LargeScaleCHP.Base.HeatInputTable[quantity]Q_flow_set_SG (from PartialCHP)Steam generator setpoint
PQBoundaries[quantity]pQDiagram (from PartialCHP)Possible operating regime of electric output for given thermal output
TransiEnt.Components.Sensors.TemperatureSensorT_out_sensor (from PartialCHP)
TransiEnt.Components.Sensors.TemperatureSensorT_in_sensor (from PartialCHP)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CollectElectricPowercollectElectricPower (from PartialCHP)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CollectHeatingPowercollectHeatingPower (from PartialCHP)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CollectGwpEmissionsElectriccollectPowerEmissions (from PartialCHP)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CollectGwpEmissionsElectriccollectHeatingEmissions (from PartialCHP)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CogenerationPlantCostcollectCosts (from PartialCHP)
TransiEnt.Components.Statistics.Functions.GetFuelSpecificCO2EmissionsfuelSpecificEmissions (from PartialCHP)
Modelica.Units.SI.PowerP_el_is (from PartialCHP)Actual power generation (>=0)
Modelica.Units.SI.PowerP_el_CHP_is (from PartialCHP)
Modelica.Units.SI.HeatFlowRateQ_flow_is (from PartialCHP)Actual thermal power generation (>=0)
Modelica.Units.SI.HeatFlowRateQ_flow_input (from PartialCHP)
Modelica.Units.SI.Efficiencyeta_el (from PartialCHP)
Modelica.Units.SI.Efficiencyeta_el_target (from PartialCHP)Calculated from setpoint and plant characteristic
Modelica.Units.SI.Efficiencyeta_th (from PartialCHP)
Modelica.Units.SI.Efficiencyeta_th_target (from PartialCHP)Calculated from setpoint and plant characteristic
Modelica.Units.SI.Efficiencyeta_total (from PartialCHP)eta_el + eta_th
Modelica.Units.SI.MassFlowRatem_flow_cde_total (from PartialCHP)Q_flow_input*fuelSpecificEmissions.m_flow_CDE_per_Energy
Modelica.Units.SI.MassFlowRatem_flow_cde_heat (from PartialCHP)m_flow_cde_total*A_cde_alloc_heat
Modelica.Units.SI.MassFlowRatem_flow_cde_power (from PartialCHP)m_flow_cde_total*A_cde_alloc_power
RealA_cde_alloc_heat (from PartialCHP)Allocation factor of total emissions to heat side
RealA_cde_alloc_power (from PartialCHP)Allocation factor of total emissions to power side
Modelica.Units.SI.HeatQ_gen (from PartialCHP)Generated thermal energy
Modelica.Units.SI.EnergyW_el (from PartialCHP)Generated electric energy
Modelica.Units.SI.EnergyW_el_CHP (from PartialCHP)Generated electric energy in combined heat and power operation
Realx_CHP (from PartialCHP)P_el_CHP_is/max(simCenter.P_el_small, P_el_is)Fraction of actual power generation that is produced in CHP operation
RealP_el_star (from PartialCHP)P_el_is/P_el_nPower in p.u.
RealQ_flow_star (from PartialCHP)Q_flow_is/max(simCenter.Q_flow_small, Q_flow_n_total)Thermal output in p.u
RealQ_flow_set_star (from PartialCHP)-Q_flow_set/Q_flow_n_totalThermal setpoint in p.u
Modelica.Blocks.Nonlinear.VariableLimiter[quantity]Q_flow_set_CHP (from PartialCHP)
Modelica.Blocks.Math.MultiSum[quantity]multiSum (from PartialCHP)
Modelica.Blocks.Sources.RealExpressionQ_flow_set_CHP_max (from PartialCHP)
Modelica.Blocks.Sources.RealExpressionQ_flow_set_CHP_min (from PartialCHP)
TransiEnt.Producer.Combined.LargeScaleCHP.Base.CHPStates_heatledplantState (from PartialCHP)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CollectElectricPowergeneratedSBP (from PartialBalancingPowerProvider)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CollectElectricPower[2]collectSBPOffer (from PartialBalancingPowerProvider)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CollectElectricPowergeneratedPBP (from PartialBalancingPowerProvider)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CollectElectricPower[2]collectPBPOffer (from PartialBalancingPowerProvider)
TransiEnt.Producer.Electrical.Controllers.PrimaryBalancingControllerprimaryBalancingController (from PartialBalancingPowerProvider)
TransiEnt.Components.Sensors.MechanicalFrequencygridFrequencySensor (from PartialBalancingPowerProvider)
TransiEnt.Producer.Electrical.Base.ControlPower.IdealControlOffercontrolPowerModel (from PartialBalancingPowerProvider)
RealP_SB_set_star (from PartialBalancingPowerProvider)P_SB_set_internal/P_n
TransiEnt.Basics.Blocks.FirstOrderP
TransiEnt.Basics.Blocks.FirstOrdersteamGenerator
TransiEnt.Basics.Blocks.FirstOrderQ_flow_CHP
TransiEnt.Components.Boundaries.Heat.Heatflow_L1HX
Modelica.Blocks.Math.ProductElectricEfficiency
Modelica.Blocks.Sources.RealExpressioneta_th_is
Modelica.Blocks.Math.Productproduct1
Modelica.Blocks.Math.MultiSumP_set_electric
Modelica.Blocks.Sources.RealExpressioneta_el_is
Modelica.Blocks.Sources.RealExpressionQ_flow_peak
Modelica.Blocks.Math.SumQ_flow
SI.Power[quantity]P_limit_off_set
SI.Power[quantity]P_set_single
RealactivePowerPlants
Modelica.Blocks.Sources.BooleanExpressionisRunning
Modelica.Blocks.Nonlinear.VariableLimiter[quantity]P_limit_on
Modelica.Blocks.Sources.RealExpression[quantity]P_limit_off
Modelica.Blocks.Math.SumP_set_totalSchedule plus agc setpoint
Modelica.Blocks.Math.Sum[quantity]P_limit
TransiEnt.Consumer.Gas.GasConsumer_HFlow_NCVgasConsumer_HFlow_NCV
Modelica.Units.SI.MassFlowRatem_flow_cde_total_set
TransiEnt.Components.Sensors.RealGas.CO2EmissionSensorcO2EmissionOfIdealCombustion
Modelica.Blocks.Math.Gainm_flow_cde_gain
Modelica.Blocks.Math.MultiSummultiSum_Q_flow_SG
TransiEnt.Components.Boundaries.Electrical.ActivePower.PowerpowerBoundary
Modelica.Blocks.Sources.RealExpressionfuelMassFlow_set
Modelica.Blocks.Sources.RealExpressionrealExpression
Modelica.Blocks.Logical.Hysteresishysteresis
Modelica.Blocks.Nonlinear.VariableLimitervariableLimiter
Modelica.Blocks.Sources.RealExpressionrealExpression1
Modelica.Blocks.Sources.RealExpressionrealExpression2
TransiEnt.Components.Electrical.Machines.ActivePowerGeneratorGenerator
TransiEnt.Components.Electrical.Machines.ExcitationSystemsVoltageController.DummyExcitationSystemExciter
TransiEnt.Components.Boundaries.Mechanical.PowerprescribedPower
TransiEnt.Components.Mechanical.TwoStateInertiaWithIdealClutchShaft
Components.Boundaries.Mechanical.Frequencyfrequency
Components.Mechanical.ConstantInertiaconstantInertia
Modelica.Blocks.Sources.RealExpression[quantity]realExpression3