modelFirstOrderThreeStateTurbine
Extends from Base.PartialTurbine (Abstract model of a turbine defining nothing but the interfaces).
Information
1. Purpose of model
Turbine model modeled by
- minimum / maximum power ouput
- maximum power gradient
- on / off status dependent on schedule value without time delay. Turbine shuts down if scheduled value is below minimum power
- sends on/off status to momentum of inertia statistics
2. Level of detail, physical effects considered, and physical insight
(no remarks)
3. Limits of validity
Note, that no statistics are involved!
4. Interfaces
mpp: mechanical power port
P_target: input for electric power in W
P_spinning_set: input for electric power in W (setpoint for spinning reserve power)
isGeneratorRunning: BooleanOutput
5. Nomenclature
(no elements)
6. Governing Equations
(no equations)
7. Remarks for Usage
The input P_spinning_set is supposed to be gradient limited by limtations of the primary balancing offer mechanism which has normally a higher gradient limit than the rest of the plant.
The input P_target is the sum of secondary balancing setpoint and scheduled set point.
8. Validation
(no remarks)
9. References
(no remarks)
10. Version History
Model created by Pascal Dubucq (dubucq@tuhh.de) on 01.10.2014
Model modified by Oliver Schülting (oliver.schuelting@tuhh.de) on April 2019: added minimum operation time
Model modified by Robert Flesch (flesch@xrg-simulation.de) in Feb 2021: added choice to apply gradient limit in firstOrder instead of apply limiter in control - avoids numerical problems and improves simulation speed
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Real | P_turb_init | 0 | Initial or guess value of turbine power (in p.u.) |
| Operation Parameter | |||
| SI.Power | P_n | 2e9 | Nominal power |
| Real | P_min_star | 0.2 | Dimensionless minimum power (=20% of nominal power) |
| Real | P_max_star | 1 | Dimensionless maximum power (=Nominal power) |
| Real | P_grad_max_star | 0.12/60 | Dimensionless maximum power gradient per second (12% of P_nom per minute) |
| Real | P_grad_max_star_primCntrl | 0.02/30 | Dimensionless maximum power gradient per second for primary control - default 2% in 30 sec |
| SI.Time | T_plant | 10 | Turbine first order dynamic |
| SI.Time | t_startup | 0 | Startup time (no output during startup) |
| SI.Time | t_min_operating | 0 | Minimum operation time |
| SI.Time | MinimumDownTime | 0 | Minimum time the plant needs to be shut down before starting again |
| Assumptions | |||
| Base.GradientLimitingChoices | gradLimChoice | Base.GradientLimitingChoices.GradLimInFirstOrder | options of gradient limitation |
| Boolean | useFirstOrderGradLimt | (gradLimChoice > Base.GradientLimitingChoices.GradLimInCntrl) | Activate gradient limitation in first order |
| Boolean | useSlewRateLimiter | (gradLimChoice == Base.GradientLimitingChoices.GradLimInCntrl) | choose if slewRateLimiter is activated |
| Boolean | smoothShutDown | true | shut down process will be smoothed - power gradient will be limit by 'P_grad_operating' |
| Numerical - slew rate limiter | |||
| Real | Td | 1e-3 | The higher Nd, the closer y follows u |
| Boolean | useThresh | false | Use threshould for suppression of numerical noise |
| Real | thres | 1e-7 | If 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. |
| Boolean | useHomotopyVarSlewRateLim | simCenter.useHomotopy | true if homotopy shall be used in variableSlewRateLimiter |
| Numerical | |||
| Real | thres_hyst | 1e-10 | Threshold for hysteresis for switch from halt to startup (chattering might occur, hysteresis might help avoiding this) |
| SI.Time | t_eps | 10 | Threshold time for transitions |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| TransiEnt.Basics.Interfaces.General.MechanicalPowerPort | mpp (from PartialTurbine) | ||
| TransiEnt.Basics.Interfaces.Electrical.ElectricPowerIn | P_target (from PartialTurbine) | ||
| Modelica.Blocks.Interfaces.BooleanOutput | isGeneratorRunning | ||
| TransiEnt.Basics.Interfaces.Electrical.ElectricPowerIn | P_spinning_set | Setpoint for spinning reserve power |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.ActivePower | P_T (from PartialTurbine) | mpp.tau*der(mpp.phi) | |
| SimCenter | simCenter | ||
| Modelica.Blocks.Math.Gain | normalize | ||
| Basics.Blocks.SwitchNoEvent | switchOnOff | ||
| Modelica.Blocks.Sources.Constant | shutdown | ||
| Modelica.Blocks.Math.Gain | normalizePbal | ||
| Modelica.Blocks.Math.MultiSum | P_total | ||
| Modelica.Blocks.Math.Gain | deNormalize | ||
| Boundaries.Mechanical.Power | MechanicalBoundary | ||
| Modelica.Blocks.Nonlinear.Limiter | P_max_star_limiter_total | Upper limit is nominal power | |
| Real | P_set_star | normalize.y | |
| Real | P_is_star | deNormalize.u | |
| OperatingStates.ThreeStateDynamic | operationStatus | ||
| Basics.Blocks.FirstOrderWithGradientLim | plantDynamic | ||
| Modelica.Blocks.Sources.BooleanExpression | isOperating | ||
| Basics.Blocks.FirstOrderWithGradientLim | plantPrimaryCtrlDynamic | ||
| Modelica.Blocks.Sources.RealExpression | primarCntrlMaxGrad | ||
| Modelica.Blocks.Sources.RealExpression | primarCntrlMinGrad |