modelMeritOrderDispatcherStatePrediction
Extends from Modelica.Blocks.Interfaces.DiscreteBlock (Base class of discrete control blocks), TransiEnt.Basics.Icons.SystemOperator.
Information
1. Purpose of model
This model extends the functionality of the basic MeritOrderDispatcher by taking into account a prediction for the (boolean) operating state.
This is needed because if a unit is commited it has to produce a minimum amount of power (P_min). If the prediction indicates that a unit will be started in the near future the other units production is reduced and thereby a smooth load following is possible (see TestMeritOrderDispatcherStatePrediction for an example).
2. Level of detail, physical effects considered, and physical insight
(no remarks)
3. Limits of validity
(no remarks)
4. Interfaces
u[ntime]: RealInput
y[nout]: RealOutput
z[nout, ntime]: BooleanInput
P_R_pos[nout]: input for electric power in [W] "Upwards reserve constraint, reduces maximum production (values are supposed to be positive)"
P_R_neg[nout]: input for electric power in [W] "Downwards reserve constraint, increases minimum production (values are supposed to be positive)"
5. Nomenclature
(no remarks)
6. Governing Equations
(no remarks)
7. Remarks for Usage
(no remarks)
8. Validation
Tested in check model "TransiEnt.Grid.Electrical.EconomicDispatch.Check.TestMeritOrderDispatcherStatePrediction"
9. References
(no remarks)
10. Version History
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| SI.Time | samplePeriod (from DiscreteBlock) | Sample period of component | |
| SI.Time | startTime (from DiscreteBlock) | 0 | First sample time instant |
| Integer | nout | simCenter.generationPark.nMODPlants | Number of plants |
| Integer | ntime | 20 | Number of future points in time to be considered |
| Modelica.Units.SI.Power[nout] | P_init | zeros(nout) | |
| Real[nout] | P_grad_max_star | simCenter.generationPark.P_grad_max_star_MOD | Specific Power gradient in 1/s |
| Modelica.Units.SI.Power[nout] | P_min_const | simCenter.generationPark.P_min_MOD | |
| Modelica.Units.SI.Power[nout] | P_max_const | P_n | |
| TransiEnt.Basics.Units.MonetaryUnitPerEnergy[nout] | C_var | simCenter.generationPark.C_var_MOD | |
| SI.Power[nout] | P_n | simCenter.generationPark.P_max_MOD | |
| Time varying operating boundaries | |||
| Boolean | useVarLimits | false | |
| Integer | nVarLimits | 1 | |
| Integer[nVarLimits] | iVarLimits | 1:nVarLimits | |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.RealInput[ntime] | u | Load Prediction | |
| Modelica.Blocks.Interfaces.RealOutput[nout] | y | ||
| Modelica.Blocks.Interfaces.BooleanInput[nout,ntime] | z | Plant status (true=on) for each time step | |
| TransiEnt.Basics.Interfaces.Electrical.ElectricPowerIn[nout] | P_R_pos | Upwards reserve constraint, reduces maximum production (values are supposed to be positive) | |
| TransiEnt.Basics.Interfaces.Electrical.ElectricPowerIn[nout] | P_R_neg | Downwards reserve constraint, increases minimum production (values are supposed to be positive) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| TransiEnt.SimCenter | simCenter | ||
| Modelica.Units.SI.Power[ntime] | P_load | ||
| Real | C_varsorted | ||
| Integer | merit_order | ||
| Integer | commitment_order | Order in which additional units are commited, if load can not be matched otherwise | |
| Modelica.Units.SI.Power[nout] | P_0 | Current operating point | |
| Modelica.Units.SI.Power[nout,ntime] | P_rcbl_max | Max reachable operating point | |
| Modelica.Units.SI.Power[nout,ntime] | P_rcbl_min | Min reachable operating point | |
| Modelica.Units.SI.Power[nout] | P_rcbl_max_back | Max operating point to reach next timestep operating point | |
| Modelica.Units.SI.Power[nout] | P_rcbl_min_back | Min operating point to reach next timestep operating point | |
| Modelica.Units.SI.Power | P_mustrun_residual | Mustrun power of plants that are more expensive than me | |
| Modelica.Units.SI.Power | P_set_total | sum(y) | |
| Modelica.Units.SI.Power | P_max_total | sum(P_max) | |
| Modelica.Units.SI.Power | P_min_total | sum(P_min) | |
| Modelica.Units.SI.Power | P_init_total | sum(P_init) | |
| Modelica.Units.SI.Power[nout] | P_max | ||
| Modelica.Units.SI.Power[nout] | P_min | ||
| Modelica.Units.SI.Power[nVarLimits] | P_max_var | P_max[iVarLimits] | |
| Modelica.Units.SI.Power[nVarLimits] | P_min_var | P_min[iVarLimits] | |
| Modelica.Units.SI.Power | P_min_var_total | sum(P_min_var) | |
| Modelica.Units.SI.Power | P_max_var_total | sum(P_max_var) | |
| Modelica.Units.SI.Power | P_rcbl_max_total | sum(P_rcbl_max[:, 1]) | |
| Modelica.Units.SI.Power | P_rcbl_min_total | sum(P_rcbl_min[:, 1]) | |
| Modelica.Units.SI.Power | P_rcbl_max_back_total | ||
| Modelica.Units.SI.Power | P_rcbl_min_back_total | ||
| TransiEnt.Basics.Units.MonetaryUnit | C_var_total | Total cost estimation (specific production cost multiplied by set points | |
| Boolean | is_commitment_mode |