Model
A short description of the model.
This section provides a summary of the model stre3am
. A more comprehensive
description can be found under the STREAM/docs/model_d/
directory and typing
make
in a terminal emulator[1].
Model basic idea¶
Let us consider a single plant or asset, and let represent a vector of measurable quantities at a particular period , subperiod , e.g.\ the fuel consumption, or the variable O & M cost, etc. Further, assume the ordered sets and representing the periods and subperiods. Then, assuming every quantity of the plant is related linearly to one another, the following system characterizes the asset,
where is an nvar
by (nv
=nvar
+) matrix ( degrees of
freedom), and is a nvar
vector of coefficients. The equation above
can be used to determine the state of the plant given an arbitrary value of
the degrees of freedom (e.g. the active capacity).
Therefore, a plant in stre3am
can have varying states according to the
arbitrary values of the degrees of freedom over time. A change in the
technological makeup of the plant has the potential to change the relationship
between state and their degrees of freedom. This is reflected in Equation
(1) through the adoption characteristic matrices/vectors and
for each technology adoption in the plant. Therefore, a plant with
several possible technological makeup (e.g.\ plant retrofits) has the following
system,
where represents the (generic) technology ordered set,
which in the current implementation of stre3am
can refer to retrofits or new
plants. The key aspect of the problem behind stre3am
is that for the plant at
most one technological makeup must be true (e.g. selected) at a given time.
This decision is different from the other measurable quantities insofar as its
discrete nature. Let be 1 if technology is active
and 0 otherwise. This binary variable is used to present the decision of a
particular technology at a particular time in the following form,
and,
where is the disaggregated state variable for technology , and and are the lower- and upper-bound of the state vector. These equations link the value of to the state vector and the respective matrix and vector and . An alternative view of this system can be obtained by introducing a Boolean variable analogous to , and the following equation,
where represents the exclusive OR (XOR) operator. The
previous equation are known as disjunctive constraints, and this particular
instance assumes a single index has equal True
, and all else set
to False. Let us assume that corresponds to the incumbent technology,
i.e. the technology given to the plant before the first time-slice. Then, the
possible values the Boolean variables over the whole horizon can be restricted
through the following statements:
A transition to a non-incumbent technology is
True
once for the whole horizon.
and,
- A transition from incumbent is
True
once for the whole horizon.
and,
These logic propositions collectively written here as . These propositions can also be written in terms of binary variables and algebraic equations, viz.,
Which collectively are written here as:
The decisions expressed in the previous set of equations can either have binary
(), or Boolean (), as well as continuous.
Similar methodology can be applied to the following decisions within stre3am
,
Table 1:Key decisions
Decision | Description |
---|---|
Expansion | A single increase of the installed capacity of the plant over the whole horizon. The capital required must be financed with debt. |
Plant retirement | Switch off the plant, active capacity is set to zero. All other quantities are also set to zero. Plant must pay accrued loans at the time of this decision. |
Plant retrofit | Change the state of the existing plant by picking an alternative matrix and right-hand-side vector from Equation (2). As a consequence the plant/asset changes its performance, e.g., fuel, electricity, etc. Capital cost is debt financed. |
New plant | Contingent upon plant retirement. Once a cleared location is available, a new plant of alternative technology can be put in place with arbitraty capacity. Similarly to retrofit, the new plant will have a matrix/rhs from Equation (2) which changes the performance accordingly. |
Objective function¶
The model uses the minimization of the Net Present Value (NPV) as objective
function. Nevertheless, users can define custom objective functions in the same
way as any JuMP
model. The NPV in stre3am
has several components, most
noticeable the discount factor , which can be calculated from the
assumed interest rate and year. The objective function considers the following
items for every period and subperiod tuple
(),
- Capital cost installments (CI)
- Fixed operations and maintenance (fO&M)
- Variable operations and maintenance (vO&M)
- Fuel cost (FC)
- Electricity cost (EC)
- Feedstock cost (FdC)
- CCS cost (CCSC)
- Plant retirement (PR)
- Last period loan factor (LLF).
The terms in the previous equation are related to the rest of variables from the model linearly.
Constraints¶
As mentioned in the model basis section, the model can be expressed either with disjunctions, logic statements, and Boolean (and continuous) variables[2], or with algebraic equations and binary variables, i.e. MILP.
Either case, the decisions mentioned in Table 1, have their own set of Boolean/binary variables. Let [3] represent the Boolean variables for expansion, retrofit, online, and new plant. Thus, the constraints of the model can be laid out as follows,
The previous equations describe the changes on the plant through technological, capacity, and operational decisions. It is also possible to have continuous variables constrained on temporal basis, for example demand at every period and subperiod pair. This can be represented through the following equation,
for some matrix and right-hand-side and .
Finally, it is noted that Equations (17) through (21) can be represented using binary variables and algebraic equations as follows,
So far these equations describe the model for a single plant/asset. Typically,
one might find that industries have several plants/assets, each with their
unique characteristics, i.e. A_{ij}
, b_{ij}
, costs, etc.
Let
represent the
set of locations. The multi-plant location problem is a natural extension of the
single location problem shown thus far.
Model building actions¶
Given the input sets and data for a particular instance, building the model is done through a series of function calls that first build an unlinked model for each period, subperiod, and location. This is done through the following function,
m = createBlockMod(s.P, s.L, p, s)
Through this call the model m
is generated. This call however, does not
create either inter-period or inter-location constraints.
Inter-period/inter-location constraints
Typically, the model has several periods, subperiods, and locations. Most constraints of the model reference variables within the same period, subperiod and location. Furthermore, let us consider a block of variables that share the same period and location (but may have different subperiod). Then, the model that results from considering only constraints within period and location is decoupled insofar as each block could be solved independendly of the other blocks. The model blocks have a collective feasible region different from the full linked problem, and this solution is a lower-bound of the full problem at best. Nevertheless, it possesses useful properties for potential algorithmic strategies.
The linking with inter-period and inter-location is done as follows:
attachPeriodBlock(m, p, s)
attachLocationBlock(m, p, s)
This creates a linked model, which can be completed with the objective function (NPV minimization) creation:
attachFullObjectiveBlock(m, p, s)
The resulting m
is an instance of a JuMP
object with objective and
constraints
Concluding remarks¶
It is encouraged to refer to the stre3am
manuscript where the complete model
is laid out. This page is a brief summary of some core aspects of the model.
- Expansion
- Increase installed capacity of the existing plant once through the whole horizon.
- Plant retrofit
- Change of characteristic coefficient matrix and right-hand-side. Acts on the existing plant.
- Plant retirement
- Set existing plant off. All associated quantities are set to zero. Retirement cost must be paid. Can be used once through the horizon. Results in an empty location.
- New plant
- If an empty location is available, creates a plant of arbitrary capacity, and characteristic coefficient matrix/right-hand-side.
- Logic propositions
- Provides the space of acceptable combinations of Boolean variables.
A.k.a Generalized Disjunctive Program (GDP) Trespalacios and Grossmann, 2014
On the space of binary variables
For , we assume that for
In the current model construction and are orthogonal of one another for some period and subperiod pair, in other words, either or is non-negative, an existing plant or a new plant operates, but not both.
- Trespalacios, F., & Grossmann, I. E. (2014). Review of Mixed‐Integer Nonlinear and Generalized Disjunctive Programming Methods. Chemie Ingenieur Technik, 86(7), 991–1012. 10.1002/cite.201400037