modelNonlinearThreeStatePlant

Slew Rate limited (=nonlinear), Minimum power limited (shuts down below minimum power), with primary and secondary balancing controller where secondary balancing power is lumped inside

Extends from TransiEnt.Producer.Electrical.Base.PartialDispatchablePowerPlant (Abstract model of an electric power plant with a power setpoint input connector), 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

Slew Rate limited (=nonlinear), Minimum power limited (shuts down below minimum power), with primary and secondary balancing controller where secondary balancing power is lumped inside.

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

Carbon Capture & Storage (CCS):

Via parameter 'CO2_Deposition_Rate' the fraction of CO2 that shall be deposited can be defined. The efficiency losses due to CCS can be defined via characterstic lines which are stored in records and which can be chosen via 'CCS_Characteristics'. If 'NoCCS' is chosen there will be no efficiency losses. Though CO2 will still be depositied if COS_DepostionRate>0.

3. Limits of validity

(no remarks)

4. Interfaces

epp: type of electrical power port can be chosen

P_el_set: input for electric power in W (electric power setpoint)

P_SB_set: input for electric power in W (secondary balancing setpoint)

UseCCS: if true: CCS is deposited - if false: CCS is not deposited

5. Nomenclature

(no remarks)

6. Governing Equations

(no remarks)

7. Remarks for Usage

If 0/0 occurs at initialization, try setting useHomotopyVarSlewRateLim to false.

If circular equalities appear, try setting Evaluate=true in the model.

8. Validation

(no remarks)

9. References

(no remarks)

10. Version History

Model created by Pascal Dubucq (dubucq@tuhh.de) on 01.10.2014

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) on Dez 2018: added CCS

Model modified by Robert Flesch (flesch@xrg-simulation.de) in Feb 2021: adapted parameter interface to use limiting in firstOrders - this is the new default as it performs much better numerically

Parameters

TypeNameDefaultDescription
IntegernSubgrids (from PartialElectricPowerPlant)simCenter.iDetailedGridFor calculation of statistics in subgrids (=1 local grid, e.g. hamburg, =2 surrounding grid, e.g. UCTE grid
Modelica.Units.SI.PowerP_minP_min_star*P_el_n
SI.PowerP_initStart value for P
Physical Constraints
Modelica.Units.SI.PowerP_el_n (from PartialElectricPowerPlant)300e6Nominal power of plant
SI.PowerP_n (from PartialBalancingPowerProvider)300e6Nominal power of plant
RealP_min_star0.2Fraction of nominal power (=20% of nominal power)
RealP_max_star1Fraction of nominal power (=100% of nominal power)
RealP_grad_max_star0.12/60Fraction of nominal power per second (12% per minute)
Base.PartloadEfficiency.PartloadEfficiencyCharacteristicEfficiencyCharLineTransiEnt.Producer.Electrical.Base.PartloadEfficiency.ConstantEfficiency()choose characteristic efficiency line
SI.TimeH6Time constant of plant (For easy definition of J)
SI.InertiaJP_el_n*2*H/(2*simCenter.f_n*Modelica.Constants.pi)^2Lumped moment of inertia of whole power plant
SI.Timet_startup0Startup time (P=0 during startup)
SI.Timet_min_operating0Minimum operation time
BooleansmoothShutDowntrueshut down process will be smoothed - power gradient will be limit by 'P_grad_operating'
SI.TimeMinimumDownTime0Minimum time the plant needs to be shut down before starting again
SI.TimeT_plant0.63/P_grad_max_starTime constant of first order model representing plant dynamics
SI.MassFractionCO2_Deposition_Rate0Fraction of CO2 that is deposited via CCS
Base.CCS.NoCCSCCS_CharacteristicsBase.CCS.NoCCS()Choose characteristic efficiency losses due to CCS
Integerquantity1amount of power plant blocks into which nominal power is split
Statistics
Modelica.Units.SI.Efficiencyeta_total (from PartialElectricPowerPlant)0.6Total efficiency of plant for emission calculation
EnergyResourcetypeOfResource (from PartialElectricPowerPlant)EnergyResource.ConventionalType of energy resource for global model statistics
PrimaryEnergyCarriertypeOfPrimaryEnergyCarrier (from PartialElectricPowerPlant)PrimaryEnergyCarrier.BlackCoalType of primary energy carrier for co2 emissions global statistics
BooleanintegrateElPower (from PartialElectricPowerPlant)simCenter.integrateElPowertrue if electric powers shall be integrated
BooleanintegrateCDE (from PartialElectricPowerPlant)simCenter.integrateCDEtrue if CDE shall be integrated
BooleancalculateCost (from PartialElectricPowerPlant)simCenter.calculateCosttrue if costs shall be calculated
EnergyResourcetypeOfBalancingPowerResource (from PartialBalancingPowerProvider)EnergyResource.ConventionalType of energy resource for global model statistics
IntegernSubgrid1Index of subgrid for moment of inertia statistics
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)
Initialization
Booleanset_P_inittrueUse of P_init or calculation of P_init from grid (CPP)
RealP_init_setP_el_nInitial or guess value of turbine power
Expert Settings
TransiEnt.Components.Turbogroups.Base.GradientLimitingChoicespowerGradLimChoiceTransiEnt.Components.Turbogroups.Base.GradientLimitingChoices.GradLimInFirstOrderoptions of gradient limitation
BooleanfixedStartValue_wfalseWhether or not the start value of the angular velocity of the plants mechanical components is fixed
SI.TimeTd_GradientLimitersimCenter.TdTime constant of integrator
BooleanuseThreshsimCenter.useThreshUse threshould for suppression of numerical noise
RealthressimCenter.thresIf abs(u-y)< thres, y becomes a simple pass through of u. Increasing thres can improve simulation speed. However to large values can make the simulation unstable. A good starting point is the choice thres = tolerance/1000. For too small values, the power plant is never turned off.
Realthres_hyst1e-10Threshold for hysteresis for switch from halt to startup (chattering might occur, hysteresis might help avoiding this)
BooleanuseHomotopyVarSlewRateLimsimCenter.useHomotopytrue if homotopy shall be used in variableSlewRateLimiter in turbine (true might avoid circular equalities, false might help if 0/0 occurs in power plant)

Connectors

TypeNameDefaultDescription
TransiEnt.Basics.Interfaces.Electrical.ActivePowerPortepp (from PartialElectricPowerPlant)
TransiEnt.Basics.Interfaces.Electrical.ElectricPowerInP_el_set (from PartialDispatchablePowerPlant)Electric power setpoint
TransiEnt.Basics.Interfaces.Electrical.ElectricPowerInP_SB_set (from PartialBalancingPowerProvider)Secondary balancing setpoint
Modelica.Blocks.Interfaces.BooleanInputuseCCStrue, if CCS is used

Components

TypeNameDefaultDescription
TransiEnt.SimCentersimCenter (from PartialElectricPowerPlant)
TransiEnt.ModelStatisticsmodelStatistics (from PartialElectricPowerPlant)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CollectElectricPowercollectElectricPower (from PartialElectricPowerPlant)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.CollectGwpEmissionsElectriccollectGwpEmissions (from PartialElectricPowerPlant)
TransiEnt.Components.Statistics.Collectors.LocalCollectors.PowerPlantCostcollectCosts (from PartialElectricPowerPlant)
SI.ActivePowerP_el_is (from PartialElectricPowerPlant)-epp.P
RealP_star (from PartialElectricPowerPlant)P_el_is/P_el_n
SI.Efficiencyeta (from PartialElectricPowerPlant)
SI.Timet_fullload (from PartialElectricPowerPlant)E_total_generation/P_el_nfull load time in hours
SI.EnergyE_total_generation (from PartialElectricPowerPlant)Start value for generated electricity statistics
Booleanis_running (from PartialElectricPowerPlant)For continuous plants always true, for discontinous depending on state
SI.EnthalpyFlowRateQ_flow_fuel_is (from PartialElectricPowerPlant)P_el_is/eta
SI.MassFlowRatem_flow_CDE (from PartialElectricPowerPlant)fuelSpecificCO2Emissions.m_flow_CDE_per_Energy*abs(P_el_is)/eta - m_flow_gas_CDE_deposited
SI.MassFlowRatem_flow_gas_CDE_deposited (from PartialElectricPowerPlant)0*time
Realdelta_f_star (from PartialElectricPowerPlant)(epp.f - simCenter.f_n)/simCenter.f_n
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.Components.Electrical.Machines.ActivePowerGeneratorGenerator
TransiEnt.Components.Mechanical.TwoStateInertiaWithIdealClutchMechanicalConnection
TransiEnt.Components.Electrical.Machines.ExcitationSystemsVoltageController.DummyExcitationSystemExciter
TransiEnt.Components.Turbogroups.FirstOrderThreeStateTurbineTurbine
Modelica.Blocks.Logical.Switchswitch1
Modelica.Blocks.Sources.RealExpressionCO2_Deposited_setjust for visualisation on diagram layer
Modelica.Blocks.Sources.RealExpressionZerojust for visualisation on diagram layer
Modelica.Blocks.Math.Gaingain
Modelica.Blocks.Math.SumP_set_totalSchedule plus agc setpoint
Base.PartloadEfficiency.PartloadEfficiencyPartloadEfficiency
Modelica.Blocks.Sources.RealExpressionp_is
Modelica.Blocks.Nonlinear.VariableLimitervariableLimiter
Modelica.Blocks.Sources.RealExpressionP_max_with_CCS
Modelica.Blocks.Sources.RealExpressionP_min_with_CCS
SI.MassFlowRatem_flow_gas_CDE_deposited_setm_flow_CDE/(1 - CO2_Deposition_Rate)*CO2_Deposition_Rate
RealP_set_star-Turbine.P_target/P_el_n
RealP_set_star_sched-P_el_set/P_el_n
Realdelta_P_star(P_el_set + P_el_is)/P_el_n
Modelica.Blocks.Math.Gaingain1