Design Concepts for the REopt Module
At a high level each REopt model consists of four major components:
- The Scenario as defined by the user's inputs and default values.
- The REoptInputs, which convert the
Scenariointo the necessary values for the REopt mathematical program.
- The REopt Model (built here), which includes all the constraints and the objective function that are built using the REoptInputs
- And the results, which are returned to the user and derived from the optimal solution of the REopt Model.
The REopt Model is built via the build_reopt! method. However, the run_reopt method includes
build_reopt! within it so typically a user does not need to directly call
build_reopt! (unless they wish to modify the model before solving it, eg. by adding a constraint).
run_reopt is the main interface for users.
Technology size constraints
Upper size limits
max_kw input value for any technology is considered to be the maximum additional capacity that may be installed beyond the
existing_kw. Note also that the
Site space constraints (
PV technologies can be less than the provided
Lower size limits
min_kw input value for any technology sets the lower bound on the capacity. If
min_kw is non-zero then the model will be forced to choose at least that system size. The
min_kw value is set equal to the
existing_kw value in the Business As Usual scenario.
Business As Usual Scenario
In order to calculate the Net Present Value of the optimal solution, as well as other baseline metrics, one can optionally run the Business As Usual (BAU) scenario. When an array of
JuMP.Models is provided to
run_reopt the BAU scenario is also run. For example:
m1 = Model(optimizer_with_attributes(Xpress.Optimizer, "OUTPUTLOG" => 0)) m2 = Model(optimizer_with_attributes(Xpress.Optimizer, "OUTPUTLOG" => 0)) results = run_reopt([m1,m2], "./scenarios/pv_storage.json")
The BAU scenario is created by modifying the REoptInputs (created from the user's Scenario). In the BAU scenario we have the following assumptions:
- Each existing technology has zero capital cost, but does have operations and maintenance costs.
- The ElectricTariff, Financial, Site, ElectricLoad, and ElectricUtility inputs are the same as the optimal case.
max_kwvalues are set to the