Device scheduler ===========
This generic device scheduler is able to handle an EMS with multiple devices, with various types of constraints on the EMS level and on the device level, and with multiple market commitments on the EMS level.
A typical example is a house with many devices. The commitments are assumed to be with regard to the flow of energy to the device (positive for consumption, negative for production). In practice, this generic scheduler is used in the StorageScheduler to schedule a storage device.
The solver minimises the costs of deviating from the commitments.
Symbol | Variable in the Code | Description |
---|---|---|
c |
|
|
d |
|
|
j |
|
|
Note
The time index j has two interpretations: a time period or an instantaneous moment at the end of time period j. For example, j in flow constraints correspond to time periods, whereas j used in a stock constraint refers to the end of time period j.
Symbol | Variable in the Code | Description |
---|---|---|
Priceup(c, j) |
|
|
Pricedown(c, j) |
|
|
ηup(d, j) |
|
|
ηdown(d, j) |
|
|
Stockmin(d, j) |
|
|
Stockmax(d, j) |
|
|
ϵ(d, j) |
|
|
Pmax(d, j) |
|
|
Pmin(d, j) |
|
|
Pminems(j) |
|
|
Pmaxems(j) |
|
|
Commitment(c, j) |
|
|
Symbol | Variable in the Code | Description |
---|---|---|
Δup(c, j) |
|
|
Δdown(c, j) |
|
|
ΔStock(d, j) |
|
|
Pup(d, j) |
|
|
Pdown(d, j) |
|
|
Pems(j) |
|
|
The cost function quantifies the total cost of upwards and downwards deviations from the different commitments.
min [∑c, jΔup(c, j) ⋅ Priceup(c, j) + Δdown(c, j) ⋅ Pricedown(c, j)]
To simplify the description of the model, the auxiliary variable ΔStock(d, j) is introduced in the documentation. It represents the change of Stock(d, j), taking into account conversion efficiencies but not considering the storage losses.
Stockmin(d, j) ≤ Stock(d, j) − Stock(d, − 1) ≤ Stockmax(d, j)
Stock(d, j) = Stock(d, j − 1) + ΔStock(d, j)
First apply the stock change, then apply the losses (i.e. the stock changes on the left side of the time interval in which the losses apply)
Stock(d, j) = (Stock(d, j − 1) + ΔStock(d, j)) ⋅ ϵ(d, j)
First apply the losses, then apply the stock change (i.e. the stock changes on the right side of the time interval in which the losses apply)
Stock(d, j) = Stock(d, j − 1) ⋅ ϵ(d, j) + ΔStock(d, j)
Assume the change happens at a constant rate, leading to a linear stock change, and exponential decay, within the current interval
Pmin(d, j) ≤ Pup(d, j) + Pdown(d, j) ≤ Pmax(d, j)
min(Pmin(d, j), 0) ≤ Pdown(d, j) ≤ 0
0 ≤ Pup(d, j) ≤ max(Pmax(d, j), 0)
Pems(d, j) = Pup(d, j) + Pdown(d, j)
Pminems(j) ≤ ∑dPems(d, j) ≤ Pmaxems(j)
∑dPems(d, j) = ∑cCommitment(c, j) + Δup(c, j) + Δdown(c, j)