Reserves

SpineOpt provides a way to include reserve provision in a model by creating reserve nodes. Reserve provision is different from regular operations as it involves withholding capacity, rather than producing a certain commodity (e.g., energy).

This section covers the reserve concepts, but we highly recommend checking out the tutorial on reserves for a more thorough understanding of how the model is set up. You can find the reserves tutorial.

Defining a reserve node

To define a reserve node, the following parameters have to be defined for the relevant node:

  • is_reserve_node : this boolean parameter indicates that this node is a reserve node.
  • upward_reserve : this boolean parameter indicates that the demand for reserve provision of this node concerns upward reserves.
  • downward_reserve : this boolean parameter indicates that the demand for reserve provision of this node concerns downward reserves.
  • reserve_procurement_cost: (optional) this parameter indicates the procurement cost of a unit for a certain reserve product and can be define on a unit__to_node or unit__from_node relationship.

Defining a reserve group

The reserve group definition allows the creation of a unit flow capacity constraint where all the unit flows to different commodities, including the reserve provision, are considered to limit the maximum unit capacity.

The definition of the reserve group also allows the creation of minimum operating point, ramp up, and ramp down constraints, considering flows and reserve provisions.

The relationship between the unit and the node group (i.e., unit__to_node or unit__from_node) is essential to define the parameters needed for the constraints (e.g., unit_capacity, minimum_operating_point, ramp_up_limit, or ramp_down_limit).

Illustrative examples

In this example, we will consider a unit that can provide upward and downward reserves, along with producing electricity. Therefore, the model needs to consider both characteristics of electricity production and reserve provision in the constraints.

Let's take a look to the unit flow capacity constraint and the minimum operating point. For the illustrative example of ramping constraints and reserves, please visit the illustrative example of the reserve section.

Unit flow capacity constraint with reserve

Assuming the following parameters, we are considering a fully flexible unit taking into account the definition of the unit flow capacity constraint:

  • unit_capacity : 100
  • shut_down_limit: 1
  • start_up_limit : 1

The parameters indicate that the unit capacity is 100 (e.g., 100 MW) and the shutdown and startup limits are 1 p.u. This means that the unit can start up or shut down to its maximum capacity, making it a fully flexible unit.

Taking into account the constraint and the fact that the unit can provide upward reserve and generate electricity, the simplified version of the resulting constraint is a simplified manner:

$unit\_flow\_to\_electricity + upwards\_reserve \leq 100 \cdot units\_on$

Here, we can see that the flow to the electricity node depends on the unit's capacity and the upward reserve provision of the unit.

Minimum operating point constraint with reserve

We need to consider the following parameters for the minimum operating point constraint:

  • minimum_operating_point : 0.25

This value means that the unit has a 25% of its capacity as a minimum operating point (i.e., 25 MW). Therefore, the simplified version of the resulting constraint is:

$unit\_flow\_to\_electricity - downward\_reserve \geq 25 \cdot units\_on$

Here, the downward reserve limits the flow to the electricity node to ensure that the minimum operating point of the unit is fulfilled.