Operations ProblemTemplate
s
Templates are used to specify the modeling properties of the devices and network that are going to he used to specify a problem. A ProblemTemplate
is just a collection of DeviceModel
s that allows the user to specify the formulations of each set of devices (by device type) independently so that the modeler can adjust the level of detail according to the question of interest and the available data. For more information about valid DeviceModel
s and their mathematical representations, check out the Formulation Library.
Building a ProblemTemplate
You can build a ProblemTemplate
by adding a NetworkModel
, DeviceModel
s, and ServiceModels
.
template = ProblemTemplate()
set_network_model!(template, NetworkModel(CopperPlatePowerModel))
set_device_model!(template, PowerLoad, StaticPowerLoad)
set_device_model!(template, ThermalStandard, ThermalBasicUnitCommitment)
set_service_model!(template, VariableReserve{ReserveUp}, RangeReserve)
Default Templates
PowerSimulations.jl
provides default templates for common operation problems. You can retrieve a default template and modify it according to your requirements. Currently supported default templates are:
PowerSimulations.template_economic_dispatch
— Functiontemplate_economic_dispatch(; kwargs...) -> ProblemTemplate
template_economic_dispatch(; kwargs...)
Creates a ProblemTemplate
with default DeviceModels for an Economic Dispatch problem.
Example
template = templateeconomicdispatch()
# Accepted Key Words
- `network::Type{<:PM.AbstractPowerModel}` : override default network model settings
- `devices::Vector{DeviceModel}` : override default `DeviceModel` settings
- `services::Vector{ServiceModel}` : override default `ServiceModel` settings
template_economic_dispatch()
Network Model | CopperPlatePowerModel |
Slacks | false |
PTDF | false |
Duals | None |
Device Type | Formulation | Slacks |
---|---|---|
RenewableNonDispatch | FixedOutput | false |
ThermalStandard | ThermalBasicDispatch | false |
PowerLoad | StaticPowerLoad | false |
InterruptiblePowerLoad | PowerLoadInterruption | false |
RenewableDispatch | RenewableFullDispatch | false |
Branch Type | Formulation | Slacks |
---|---|---|
Line | StaticBranch | false |
TapTransformer | StaticBranch | false |
Transformer2W | StaticBranch | false |
TwoTerminalHVDCLine | HVDCTwoTerminalDispatch | false |
Service Type | Formulation | Slacks | Aggregated Model |
---|---|---|---|
VariableReserve{ReserveUp} | RangeReserve | false | true |
VariableReserve{ReserveDown} | RangeReserve | false | true |
PowerSimulations.template_unit_commitment
— Functiontemplate_unit_commitment(; kwargs...) -> ProblemTemplate
template_unit_commitment(; kwargs...)
Creates a ProblemTemplate
with default DeviceModels for a Unit Commitment problem.
Example
template = templateunitcommitment()
# Accepted Key Words
- `network::Type{<:PM.AbstractPowerModel}` : override default network model settings
- `devices::Vector{DeviceModel}` : override default `DeviceModel` settings
- `services::Vector{ServiceModel}` : override default `ServiceModel` settings
template_unit_commitment()
Network Model | CopperPlatePowerModel |
Slacks | false |
PTDF | false |
Duals | None |
Device Type | Formulation | Slacks |
---|---|---|
RenewableNonDispatch | FixedOutput | false |
ThermalStandard | ThermalBasicUnitCommitment | false |
PowerLoad | StaticPowerLoad | false |
InterruptiblePowerLoad | PowerLoadInterruption | false |
RenewableDispatch | RenewableFullDispatch | false |
Branch Type | Formulation | Slacks |
---|---|---|
Line | StaticBranch | false |
TapTransformer | StaticBranch | false |
Transformer2W | StaticBranch | false |
TwoTerminalHVDCLine | HVDCTwoTerminalDispatch | false |
Service Type | Formulation | Slacks | Aggregated Model |
---|---|---|---|
VariableReserve{ReserveUp} | RangeReserve | false | true |
VariableReserve{ReserveDown} | RangeReserve | false | true |