From cba85df781ff06871f650796ba5cac4beb1922aa Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Wed, 13 Dec 2023 20:57:33 +0000 Subject: [PATCH] build based on e7fdc69 --- .../PR1028/api/PowerSimulations/index.html | 40 +++++++++---------- .../developer/index.html | 2 +- .../extending_powersimulations/index.html | 2 +- .../troubleshooting/index.html | 2 +- .../formulation_library/Branch/index.html | 2 +- .../formulation_library/General/index.html | 4 +- .../formulation_library/Load/index.html | 6 +-- .../formulation_library/Network/index.html | 2 +- .../formulation_library/README/index.html | 2 +- .../RenewableGen/index.html | 6 +-- .../formulation_library/Service/index.html | 2 +- .../formulation_library/ThermalGen/index.html | 2 +- previews/PR1028/index.html | 2 +- .../structure_of_operation_problem/index.html | 2 +- .../troubleshooting/index.html | 2 +- .../debugging_infeasible_models/index.html | 2 +- .../modeler_guide/definitions/index.html | 2 +- .../PR1028/modeler_guide/logging/index.html | 2 +- .../modeler_guide/modeling_faq/index.html | 2 +- .../parallel_simulations/index.html | 2 +- .../problem_templates/index.html | 8 ++-- .../modeler_guide/psi_structure/index.html | 2 +- .../running_a_simulation/index.html | 2 +- .../simulation_recorder/index.html | 2 +- .../modeler_guide/tips_and_tricks/index.html | 2 +- previews/PR1028/quick_start_guide/index.html | 2 +- previews/PR1028/search/index.html | 2 +- .../adding_new_device_formulation/index.html | 2 +- .../adding_new_problem_model/index.html | 2 +- .../basics_of_developing_models/index.html | 2 +- .../tutorials/decision_problem/index.html | 22 +++++----- .../tutorials/pcm_simulation/index.html | 10 ++--- 32 files changed, 73 insertions(+), 73 deletions(-) diff --git a/previews/PR1028/api/PowerSimulations/index.html b/previews/PR1028/api/PowerSimulations/index.html index 4aa87c620b..4ed1b70c51 100644 --- a/previews/PR1028/api/PowerSimulations/index.html +++ b/previews/PR1028/api/PowerSimulations/index.html @@ -7,13 +7,13 @@ duals::Vector{DataType}, services::Vector{ServiceModel} attributes::Dict{String, Any} -)

Establishes the model for a particular device specified by type. Uses the keyword argument feedforward to enable passing values between operation model at simulation time

Arguments

Example

thermal_gens = DeviceModel(ThermalStandard, ThermalBasicUnitCommitment)
source

Formulations

Refer to the Formulations Page for each Abstract Device Formulation.

Problem Templates

Refer to the Problem Templates Page for available ProblemTemplates.

Problem Templates

Refer to the Problem Templates Page for available ProblemTemplates.

  - 

Service Models

List of structures and methods for Service models

PowerSimulations.ServiceModelType

Establishes the model for a particular services specified by type. Uses the keyword argument use_service_name to assign the model to a service with the same name as the name in the template. Uses the keyword argument feedforward to enable passing values between operation model at simulation time

Arguments

-::Type{D}: Power System Service Type -::Type{B}: Abstract Service Formulation

Accepted Key Words

  • feedforward::Array{<:AbstractAffectFeedforward} : use to pass parameters between models
  • use_service_name::Bool : use the name as the name for the service

Example

reserves = ServiceModel(PSY.VariableReserve{PSY.ReserveUp}, RangeReserve)

source

Decision Models

PowerSimulations.DecisionModelType
DecisionModel{M}(
+)

Establishes the model for a particular device specified by type. Uses the keyword argument feedforward to enable passing values between operation model at simulation time

Arguments

  • ::Type{D} where D<:PSY.Device: Power System Device Type
  • ::Type{B} where B<:AbstractDeviceFormulation: Abstract Device Formulation
  • feedforward::Array{<:AbstractAffectFeedforward} = Vector{AbstractAffectFeedforward}() : use to pass parameters between models
  • use_slacks::Bool = false : Add slacks to the device model. Implementation is model dependent and not all models feature slacks
  • duals::Vector{DataType} = Vector{DataType}(): use to pass constraint type to calculate the duals. The DataType needs to be a valid ConstraintType
  • time_series_names::Dict{Type{<:TimeSeriesParameter}, String} = get_default_time_series_names(D, B) : use to specify time series names associated to the device`
  • attributes::Dict{String, Any} = get_default_attributes(D, B) : use to specify attributes to the device

Example

thermal_gens = DeviceModel(ThermalStandard, ThermalBasicUnitCommitment)
source

Formulations

Refer to the Formulations Page for each Abstract Device Formulation.

Problem Templates

Refer to the Problem Templates Page for available ProblemTemplates.

Problem Templates

Refer to the Problem Templates Page for available ProblemTemplates.

  + 

Service Models

List of structures and methods for Service models

PowerSimulations.ServiceModelType

Establishes the model for a particular services specified by type. Uses the keyword argument use_service_name to assign the model to a service with the same name as the name in the template. Uses the keyword argument feedforward to enable passing values between operation model at simulation time

Arguments

-::Type{D}: Power System Service Type -::Type{B}: Abstract Service Formulation

Accepted Key Words

  • feedforward::Array{<:AbstractAffectFeedforward} : use to pass parameters between models
  • use_service_name::Bool : use the name as the name for the service

Example

reserves = ServiceModel(PSY.VariableReserve{PSY.ReserveUp}, RangeReserve)

source

Decision Models

PowerSimulations.DecisionModelType
DecisionModel{M}(
     template::ProblemTemplate,
     sys::PSY.System,
     jump_model::Union{Nothing, JuMP.Model}=nothing;
     kwargs...) where {M<:DecisionProblem}

Build the optimization problem of type M with the specific system and template.

Arguments

  • ::Type{M} where M<:DecisionProblem: The abstract operation model type
  • template::ProblemTemplate: The model reference made up of transmission, devices, branches, and services.
  • sys::PSY.System: the system created using Power Systems
  • jump_model::Union{Nothing, JuMP.Model}: Enables passing a custom JuMP model. Use with care
  • name = nothing: name of model, string or symbol; defaults to the type of template converted to a symbol.
  • optimizer::Union{Nothing,MOI.OptimizerWithAttributes} = nothing : The optimizer does not get serialized. Callers should pass whatever they passed to the original problem.
  • horizon::Int = UNSET_HORIZON: Manually specify the length of the forecast Horizon
  • warm_start::Bool = true: True will use the current operation point in the system to initialize variable values. False initializes all variables to zero. Default is true
  • system_to_file::Bool = true:: True to create a copy of the system used in the model.
  • initialize_model::Bool = true: Option to decide to initialize the model or not.
  • initialization_file::String = "": This allows to pass pre-existing initialization values to avoid the solution of an optimization problem to find feasible initial conditions.
  • deserialize_initial_conditions::Bool = false: Option to deserialize conditions
  • export_pwl_vars::Bool = false: True to export all the pwl intermediate variables. It can slow down significantly the build and solve time.
  • allow_fails::Bool = false: True to allow the simulation to continue even if the optimization step fails. Use with care.
  • optimizer_solve_log_print::Bool = false: Uses JuMP.unset_silent() to print the optimizer's log. By default all solvers are set to MOI.Silent()
  • detailed_optimizer_stats::Bool = false: True to save detailed optimizer stats log.
  • calculate_conflict::Bool = false: True to use solver to calculate conflicts for infeasible problems. Only specific solvers are able to calculate conflicts.
  • direct_mode_optimizer::Bool = false: True to use the solver in direct mode. Creates a JuMP.direct_model.
  • store_variable_names::Bool = false: to store variable names in optimization model. Decreases the build times.
  • rebuild_model::Bool = false: It will force the rebuild of the underlying JuMP model with each call to update the model. It increases solution times, use only if the model can't be updated in memory.
  • initial_time::Dates.DateTime = UNSET_INI_TIME: Initial Time for the model solve.
  • time_series_cache_size::Int = IS.TIME_SERIES_CACHE_SIZE_BYTES: Size in bytes to cache for each time array. Default is 1 MiB. Set to 0 to disable.

Example

template = ProblemTemplate(CopperPlatePowerModel, devices, branches, services)
-OpModel = DecisionModel(MockOperationProblem, template, system)
source
PowerSimulations.DecisionModelMethod
DecisionModel(
+OpModel = DecisionModel(MockOperationProblem, template, system)
source
PowerSimulations.DecisionModelMethod
DecisionModel(
     ::Type{M<:PowerSimulations.DecisionProblem},
     template::ProblemTemplate,
     sys::System
@@ -26,13 +26,13 @@
     kwargs...
 ) -> DecisionModel
 

Build the optimization problem of type M with the specific system and template

Arguments

  • ::Type{M} where M<:DecisionProblem: The abstract operation model type
  • template::ProblemTemplate: The model reference made up of transmission, devices, branches, and services.
  • sys::PSY.System: the system created using Power Systems
  • jump_model::Union{Nothing, JuMP.Model} = nothing: Enables passing a custom JuMP model. Use with care.

Example

template = ProblemTemplate(CopperPlatePowerModel, devices, branches, services)
-problem = DecisionModel(MyOpProblemType, template, system, optimizer)
source
PowerSimulations.DecisionModelMethod
DecisionModel(
+problem = DecisionModel(MyOpProblemType, template, system, optimizer)
source
PowerSimulations.DecisionModelMethod
DecisionModel(
     directory::AbstractString,
     optimizer::MathOptInterface.OptimizerWithAttributes;
     jump_model,
     system
 ) -> Any
-

Construct an DecisionProblem from a serialized file.

Arguments

  • directory::AbstractString: Directory containing a serialized model
  • jump_model::Union{Nothing, JuMP.Model} = nothing: The JuMP model does not get serialized. Callers should pass whatever they passed to the original problem.
  • optimizer::Union{Nothing,MOI.OptimizerWithAttributes} = nothing: The optimizer does not get serialized. Callers should pass whatever they passed to the original problem.
  • system::Union{Nothing, PSY.System}: Optionally, the system used for the model. If nothing and systofile was set to true when the model was created, the system will be deserialized from a file.
source
PowerSimulations.build!Method
build!(
+

Construct an DecisionProblem from a serialized file.

Arguments

  • directory::AbstractString: Directory containing a serialized model
  • jump_model::Union{Nothing, JuMP.Model} = nothing: The JuMP model does not get serialized. Callers should pass whatever they passed to the original problem.
  • optimizer::Union{Nothing,MOI.OptimizerWithAttributes} = nothing: The optimizer does not get serialized. Callers should pass whatever they passed to the original problem.
  • system::Union{Nothing, PSY.System}: Optionally, the system used for the model. If nothing and systofile was set to true when the model was created, the system will be deserialized from a file.
source
PowerSimulations.build!Method
build!(
     model::DecisionModel;
     output_dir,
     recorders,
@@ -40,7 +40,7 @@
     file_level,
     disable_timer_outputs
 )
-

Build the Decision Model based on the specified DecisionProblem.

Arguments

  • model::DecisionModel{<:DecisionProblem}: DecisionModel object
  • output_dir::String: Output directory for results
  • recorders::Vector{Symbol} = []: recorder names to register
  • console_level = Logging.Error:
  • file_level = Logging.Info:
  • disable_timer_outputs = false : Enable/Disable timing outputs
source
PowerSimulations.solve!Method
solve!(
+

Build the Decision Model based on the specified DecisionProblem.

Arguments

  • model::DecisionModel{<:DecisionProblem}: DecisionModel object
  • output_dir::String: Output directory for results
  • recorders::Vector{Symbol} = []: recorder names to register
  • console_level = Logging.Error:
  • file_level = Logging.Info:
  • disable_timer_outputs = false : Enable/Disable timing outputs
source
PowerSimulations.solve!Method
solve!(
     model::DecisionModel;
     export_problem_results,
     console_level,
@@ -50,13 +50,13 @@
     kwargs...
 ) -> RunStatus
 

Default solve method for models that conform to the requirements of DecisionModel{<: DecisionProblem}.

This will call build! on the model if it is not already built. It will forward all keyword arguments to that function.

Arguments

  • model::OperationModel = model: operation model
  • export_problem_results::Bool = false: If true, export ProblemResults DataFrames to CSV files. Reduces solution times during simulation.
  • console_level = Logging.Error:
  • file_level = Logging.Info:
  • disable_timer_outputs = false : Enable/Disable timing outputs
  • serialize::Bool = true: If true, serialize the model to a file to allow re-execution later.

Examples

results = solve!(OpModel)
-results = solve!(OpModel, export_problem_results = true)
source
  +results = solve!(OpModel, export_problem_results = true)source   

Emulation Models

PowerSimulations.EmulationModelType
EmulationModel{M}(
     template::ProblemTemplate,
     sys::PSY.System,
     jump_model::Union{Nothing, JuMP.Model}=nothing;
     kwargs...) where {M<:EmulationProblem}

Build the optimization problem of type M with the specific system and template.

Arguments

  • ::Type{M} where M<:EmulationProblem: The abstract Emulation model type
  • template::ProblemTemplate: The model reference made up of transmission, devices, branches, and services.
  • sys::PSY.System: the system created using Power Systems
  • jump_model::Union{Nothing, JuMP.Model}: Enables passing a custom JuMP model. Use with care
  • name = nothing: name of model, string or symbol; defaults to the type of template converted to a symbol.
  • optimizer::Union{Nothing,MOI.OptimizerWithAttributes} = nothing : The optimizer does not get serialized. Callers should pass whatever they passed to the original problem.
  • warm_start::Bool = true: True will use the current operation point in the system to initialize variable values. False initializes all variables to zero. Default is true
  • system_to_file::Bool = true:: True to create a copy of the system used in the model.
  • initialize_model::Bool = true: Option to decide to initialize the model or not.
  • initialization_file::String = "": This allows to pass pre-existing initialization values to avoid the solution of an optimization problem to find feasible initial conditions.
  • deserialize_initial_conditions::Bool = false: Option to deserialize conditions
  • export_pwl_vars::Bool = false: True to export all the pwl intermediate variables. It can slow down significantly the build and solve time.
  • allow_fails::Bool = false: True to allow the simulation to continue even if the optimization step fails. Use with care.
  • calculate_conflict::Bool = false: True to use solver to calculate conflicts for infeasible problems. Only specific solvers are able to calculate conflicts.
  • optimizer_solve_log_print::Bool = false: Uses JuMP.unset_silent() to print the optimizer's log. By default all solvers are set to MOI.Silent()
  • detailed_optimizer_stats::Bool = false: True to save detailed optimizer stats log.
  • direct_mode_optimizer::Bool = false: True to use the solver in direct mode. Creates a JuMP.direct_model.
  • store_variable_names::Bool = false: True to store variable names in optimization model.
  • rebuild_model::Bool = false: It will force the rebuild of the underlying JuMP model with each call to update the model. It increases solution times, use only if the model can't be updated in memory.
  • initial_time::Dates.DateTime = UNSET_INI_TIME: Initial Time for the model solve.
  • time_series_cache_size::Int = IS.TIME_SERIES_CACHE_SIZE_BYTES: Size in bytes to cache for each time array. Default is 1 MiB. Set to 0 to disable.

Example

template = ProblemTemplate(CopperPlatePowerModel, devices, branches, services)
-OpModel = EmulationModel(MockEmulationProblem, template, system)
source
PowerSimulations.EmulationModelMethod
EmulationModel(
+OpModel = EmulationModel(MockEmulationProblem, template, system)
source
PowerSimulations.EmulationModelMethod
EmulationModel(
     ::Type{M<:PowerSimulations.EmulationProblem},
     template::ProblemTemplate,
     sys::System
@@ -69,14 +69,14 @@
     kwargs...
 ) -> EmulationModel
 

Build the optimization problem of type M with the specific system and template

Arguments

  • ::Type{M} where M<:EmulationProblem: The abstract Emulation model type
  • template::ProblemTemplate: The model reference made up of transmission, devices, branches, and services.
  • sys::PSY.System: the system created using Power Systems
  • jump_model::Union{Nothing, JuMP.Model}: Enables passing a custom JuMP model. Use with care

Example

template = ProblemTemplate(CopperPlatePowerModel, devices, branches, services)
-problem = EmulationModel(MyEmProblemType, template, system, optimizer)
source
PowerSimulations.EmulationModelMethod
EmulationModel(
+problem = EmulationModel(MyEmProblemType, template, system, optimizer)
source
PowerSimulations.EmulationModelMethod
EmulationModel(
     directory::AbstractString,
     optimizer::MathOptInterface.OptimizerWithAttributes;
     jump_model,
     system,
     kwargs...
 ) -> Any
-

Construct an EmulationProblem from a serialized file.

Arguments

  • directory::AbstractString: Directory containing a serialized model.
  • optimizer::MOI.OptimizerWithAttributes: The optimizer does not get serialized. Callers should pass whatever they passed to the original problem.
  • jump_model::Union{Nothing, JuMP.Model} = nothing: The JuMP model does not get serialized. Callers should pass whatever they passed to the original problem.
  • system::Union{Nothing, PSY.System}: Optionally, the system used for the model. If nothing and systofile was set to true when the model was created, the system will be deserialized from a file.
source
PowerSimulations.build!Method
build!(
+

Construct an EmulationProblem from a serialized file.

Arguments

  • directory::AbstractString: Directory containing a serialized model.
  • optimizer::MOI.OptimizerWithAttributes: The optimizer does not get serialized. Callers should pass whatever they passed to the original problem.
  • jump_model::Union{Nothing, JuMP.Model} = nothing: The JuMP model does not get serialized. Callers should pass whatever they passed to the original problem.
  • system::Union{Nothing, PSY.System}: Optionally, the system used for the model. If nothing and systofile was set to true when the model was created, the system will be deserialized from a file.
source
PowerSimulations.build!Method
build!(
     model::EmulationModel;
     executions,
     output_dir,
@@ -85,7 +85,7 @@
     file_level,
     disable_timer_outputs
 )
-

Implementation of build for any EmulationProblem

source
PowerSimulations.run!Method
run!(
+

Implementation of build for any EmulationProblem

source
PowerSimulations.run!Method
run!(
     model::EmulationModel;
     export_problem_results,
     console_level,
@@ -95,7 +95,7 @@
     kwargs...
 ) -> RunStatus
 

Default run method for problems that conform to the requirements of EmulationModel{<: EmulationProblem}

This will call build! on the model if it is not already built. It will forward all keyword arguments to that function.

Arguments

  • model::EmulationModel = model: Emulation model
  • optimizer::MOI.OptimizerWithAttributes: The optimizer that is used to solve the model
  • executions::Int: Number of executions for the emulator run
  • export_problem_results::Bool: If true, export ProblemResults DataFrames to CSV files.
  • output_dir::String: Required if the model is not already built, otherwise ignored
  • enable_progress_bar::Bool: Enables/Disable progress bar printing
  • serialize::Bool: If true, serialize the model to a file to allow re-execution later.

Examples

status = run!(model; optimizer = GLPK.Optimizer, executions = 10)
-status = run!(model; output_dir = ./model_output, optimizer = GLPK.Optimizer, executions = 10)
source
  +status = run!(model; output_dir = ./model_output, optimizer = GLPK.Optimizer, executions = 10)source   

Simulation Models

Refer to the Simulations Page to explanations on how to setup a Simulation, with Sequencing and Feedforwards.

PowerSimulations.SimulationModelsType
SimulationModels(
     decision_models::Vector{<:DecisionModel},
     emulation_models::Union{Nothing, EmulationModel}
@@ -108,7 +108,7 @@
         my_decision_model_uc,
         my_decision_model_ed
     ]
-)
source
PowerSimulations.SimulationSequenceType
SimulationSequence(
+)
source
PowerSimulations.SimulationSequenceType
SimulationSequence(
     models::SimulationModels,
     feedforward::Dict{String, Vector{<:AbstractAffectFeedforward}}
     ini_cond_chronology::InitialConditionChronology
@@ -134,7 +134,7 @@
             ),
         ],
     ),
-)
source
PowerSimulations.SimulationType
Simulation(
+)
source
PowerSimulations.SimulationType
Simulation(
     sequence::SimulationSequence,
     name::String,
     steps::Int
@@ -171,8 +171,8 @@
     steps = 5,
     models = models,
     simulation_folder = mktempdir(cleanup=true),
-)
source
PowerSimulations.SimulationMethod
Simulation(directory::AbstractString, model_info::Dict)
-

Constructs Simulation from a serialized directory. Callers should pass any kwargs here that they passed to the original Simulation.

Arguments

  • directory::AbstractString: the directory returned from the call to serialize
  • model_info::Dict: Two-level dictionary containing model parameters that cannot be serialized. The outer dict should be keyed by the problem name. The inner dict must contain 'optimizer' and may contain 'jump_model'. These should be the same values used for the original simulation.
source
PowerSimulations.build!Method
build!(
+)
source
PowerSimulations.SimulationMethod
Simulation(directory::AbstractString, model_info::Dict)
+

Constructs Simulation from a serialized directory. Callers should pass any kwargs here that they passed to the original Simulation.

Arguments

  • directory::AbstractString: the directory returned from the call to serialize
  • model_info::Dict: Two-level dictionary containing model parameters that cannot be serialized. The outer dict should be keyed by the problem name. The inner dict must contain 'optimizer' and may contain 'jump_model'. These should be the same values used for the original simulation.
source
PowerSimulations.build!Method
build!(
     sim::Simulation;
     recorders,
     console_level,
@@ -181,8 +181,8 @@
     partitions,
     index
 ) -> BuildStatus
-

Build the Simulation, problems and the related folder structure.

Arguments

  • sim::Simulation: simulation object
  • recorders::Vector{Symbol} = []: recorder names to register
  • serialize::Bool = true: serializes the simulation objects in the simulation
  • console_level = Logging.Error:
  • file_level = Logging.Info:
source
PowerSimulations.execute!Method
execute!(sim::Simulation; kwargs...) -> RunStatus
+

Build the Simulation, problems and the related folder structure.

Arguments

  • sim::Simulation: simulation object
  • recorders::Vector{Symbol} = []: recorder names to register
  • serialize::Bool = true: serializes the simulation objects in the simulation
  • console_level = Logging.Error:
  • file_level = Logging.Info:
source
PowerSimulations.execute!Method
execute!(sim::Simulation; kwargs...) -> RunStatus
 

Solves the simulation model for sequential Simulations.

Arguments

  • sim::Simulation=sim: simulation object created by Simulation()

The optional keyword argument exports controls exporting of results to CSV files as the simulation runs. Refer to export_results for a description of this argument.

Example

sim = Simulation("Test", 7, problems, "/Users/folder")
-execute!(sim::Simulation; kwargs...)
source
  - 

Variables

For a list of variables for each device refer to its Formulations page.

Common Variables

PowerSimulations.ActivePowerVariableType

Struct to dispatch the creation of Active Power Variables

Docs abbreviation: $Pg$

source
PowerSimulations.ReactivePowerVariableType

Struct to dispatch the creation of Reactive Power Variables

Docs abbreviation: $Qg$

source
Missing docstring.

Missing docstring for PieceWiseLinearCostVariable. Check Documenter's build log for details.

Thermal Unit Variables

PowerSimulations.OnVariableType

Struct to dispatch the creation of a binary commitment status variable

Docs abbreviation: $u$

source
Missing docstring.

Missing docstring for StartVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for StopVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for TimeDurationOn. Check Documenter's build log for details.

Missing docstring.

Missing docstring for TimeDurationOff. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HotStartVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for WarmStartVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ColdStartVariable. Check Documenter's build log for details.

PowerSimulations.PowerAboveMinimumVariableType

Struct to dispatch the creation of Active Power Variables above minimum power for Thermal Compact formulations

Docs abbreviation: $\hat{Pg}$

source

Storage Unit Variables

PowerSimulations.ReservationVariableType

Struct to dispatch the creation of binary storage charge reservation variable

Docs abbreviation: $r$

source

Branches and Network Variables

PowerSimulations.FlowActivePowerVariableType

Struct to dispatch the creation of bidirectional Active Power Flow Variables

Docs abbreviation: $P$

source
PowerSimulations.FlowActivePowerFromToVariableType

Struct to dispatch the creation of unidirectional Active Power Flow Variables

Docs abbreviation: $\overrightarrow{P}$

source
PowerSimulations.FlowActivePowerToFromVariableType

Struct to dispatch the creation of unidirectional Active Power Flow Variables

Docs abbreviation: $\overleftarrow{P}$

source
PowerSimulations.FlowReactivePowerFromToVariableType

Struct to dispatch the creation of unidirectional Reactive Power Flow Variables

Docs abbreviation: $\overrightarrow{Q}$

source
PowerSimulations.FlowReactivePowerToFromVariableType

Struct to dispatch the creation of unidirectional Reactive Power Flow Variables

Docs abbreviation: $\overleftarrow{Q}$

source
Missing docstring.

Missing docstring for PhaseShifterAngle. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HVDCLosses. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HVDCFlowDirectionVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for VoltageMagnitude. Check Documenter's build log for details.

Missing docstring.

Missing docstring for VoltageAngle. Check Documenter's build log for details.

Regulation and Services Variables

PowerSimulations.ActivePowerReserveVariableType

Struct to dispatch the creation of Active Power Reserve Variables

Docs abbreviation: $Pr$

source
Missing docstring.

Missing docstring for ServiceRequirementVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DeltaActivePowerUpVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DeltaActivePowerDownVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for AdditionalDeltaActivePowerUpVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for AdditionalDeltaActivePowerDownVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for AreaMismatchVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for SteadyStateFrequencyDeviation. Check Documenter's build log for details.

Missing docstring.

Missing docstring for SmoothACE. Check Documenter's build log for details.

Missing docstring.

Missing docstring for SystemBalanceSlackUp. Check Documenter's build log for details.

Missing docstring.

Missing docstring for SystemBalanceSlackDown. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ReserveRequirementSlack. Check Documenter's build log for details.

  - 

Constraints

Common Constraints

Missing docstring.

Missing docstring for PieceWiseLinearCostConstraint. Check Documenter's build log for details.

Network Constraints

Missing docstring.

Missing docstring for AreaDispatchBalanceConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for AreaParticipationAssignmentConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for BalanceAuxConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for CopperPlateBalanceConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FrequencyResponseConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for NodalBalanceActiveConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for NodalBalanceReactiveConstraint. Check Documenter's build log for details.

Power Variable Limit Constraints

Missing docstring.

Missing docstring for ActivePowerVariableLimitsConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ReactivePowerVariableLimitsConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ActivePowerVariableTimeSeriesLimitsConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for InputActivePowerVariableLimitsConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for OutputActivePowerVariableLimitsConstraint. Check Documenter's build log for details.

Regulation and Services Constraints

Missing docstring.

Missing docstring for ParticipationAssignmentConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RegulationLimitsConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RequirementConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ReserveEnergyCoverageConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ReservePowerConstraint. Check Documenter's build log for details.

Thermal Unit Constraints

Missing docstring.

Missing docstring for ActiveRangeICConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for CommitmentConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DurationConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RampConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RampLimitConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for StartupInitialConditionConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for StartupTimeLimitTemperatureConstraint. Check Documenter's build log for details.

Renewable Unit Constraints

Missing docstring.

Missing docstring for EqualityConstraint. Check Documenter's build log for details.

Branches Constraints

Missing docstring.

Missing docstring for AbsoluteValueConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FlowLimitFromToConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FlowLimitToFromConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FlowRateConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FlowRateConstraintFromTo. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FlowRateConstraintToFrom. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HVDCDirection. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HVDCLossesAbsoluteValue. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HVDCPowerBalance. Check Documenter's build log for details.

Missing docstring.

Missing docstring for NetworkFlowConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RateLimitConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RateLimitConstraintFromTo. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RateLimitConstraintToFrom. Check Documenter's build log for details.

Missing docstring.

Missing docstring for PhaseAngleControlLimit. Check Documenter's build log for details.

Feedforward Constraints

Missing docstring.

Missing docstring for FeedforwardSemiContinousConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FeedforwardIntegralLimitConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FeedforwardUpperBoundConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FeedforwardLowerBoundConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FeedforwardEnergyTargetConstraint. Check Documenter's build log for details.

Parameters

Time Series Parameters

PowerSimulations.ActivePowerTimeSeriesParameterType

Parameter to define active power time series

source
PowerSimulations.ReactivePowerTimeSeriesParameterType

Parameter to define reactive power time series

source
PowerSimulations.RequirementTimeSeriesParameterType

Paramter to define requirement time series

source

Variable Value Parameters

PowerSimulations.UpperBoundValueParameterType

Parameter to define variable upper bound

source
PowerSimulations.LowerBoundValueParameterType

Parameter to define variable lower bound

source
PowerSimulations.OnStatusParameterType

Parameter to define unit commitment status

source
Missing docstring.

Missing docstring for EnergyLimitParameter. Check Documenter's build log for details.

PowerSimulations.FixValueParameterType

Parameter to FixValueParameter

source
Missing docstring.

Missing docstring for EnergyTargetParameter. Check Documenter's build log for details.

Objective Function Parameters

PowerSimulations.CostFunctionParameterType

Parameter to define cost function coefficient

source
+execute!(sim::Simulation; kwargs...)source  + 

Variables

For a list of variables for each device refer to its Formulations page.

Common Variables

PowerSimulations.ActivePowerVariableType

Struct to dispatch the creation of Active Power Variables

Docs abbreviation: $Pg$

source
PowerSimulations.ReactivePowerVariableType

Struct to dispatch the creation of Reactive Power Variables

Docs abbreviation: $Qg$

source
Missing docstring.

Missing docstring for PieceWiseLinearCostVariable. Check Documenter's build log for details.

Thermal Unit Variables

PowerSimulations.OnVariableType

Struct to dispatch the creation of a binary commitment status variable

Docs abbreviation: $u$

source
Missing docstring.

Missing docstring for StartVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for StopVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for TimeDurationOn. Check Documenter's build log for details.

Missing docstring.

Missing docstring for TimeDurationOff. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HotStartVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for WarmStartVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ColdStartVariable. Check Documenter's build log for details.

PowerSimulations.PowerAboveMinimumVariableType

Struct to dispatch the creation of Active Power Variables above minimum power for Thermal Compact formulations

Docs abbreviation: $\hat{Pg}$

source

Storage Unit Variables

PowerSimulations.ReservationVariableType

Struct to dispatch the creation of binary storage charge reservation variable

Docs abbreviation: $r$

source

Branches and Network Variables

PowerSimulations.FlowActivePowerVariableType

Struct to dispatch the creation of bidirectional Active Power Flow Variables

Docs abbreviation: $P$

source
PowerSimulations.FlowActivePowerFromToVariableType

Struct to dispatch the creation of unidirectional Active Power Flow Variables

Docs abbreviation: $\overrightarrow{P}$

source
PowerSimulations.FlowActivePowerToFromVariableType

Struct to dispatch the creation of unidirectional Active Power Flow Variables

Docs abbreviation: $\overleftarrow{P}$

source
PowerSimulations.FlowReactivePowerFromToVariableType

Struct to dispatch the creation of unidirectional Reactive Power Flow Variables

Docs abbreviation: $\overrightarrow{Q}$

source
PowerSimulations.FlowReactivePowerToFromVariableType

Struct to dispatch the creation of unidirectional Reactive Power Flow Variables

Docs abbreviation: $\overleftarrow{Q}$

source
Missing docstring.

Missing docstring for PhaseShifterAngle. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HVDCLosses. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HVDCFlowDirectionVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for VoltageMagnitude. Check Documenter's build log for details.

Missing docstring.

Missing docstring for VoltageAngle. Check Documenter's build log for details.

Regulation and Services Variables

PowerSimulations.ActivePowerReserveVariableType

Struct to dispatch the creation of Active Power Reserve Variables

Docs abbreviation: $Pr$

source
Missing docstring.

Missing docstring for ServiceRequirementVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DeltaActivePowerUpVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DeltaActivePowerDownVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for AdditionalDeltaActivePowerUpVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for AdditionalDeltaActivePowerDownVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for AreaMismatchVariable. Check Documenter's build log for details.

Missing docstring.

Missing docstring for SteadyStateFrequencyDeviation. Check Documenter's build log for details.

Missing docstring.

Missing docstring for SmoothACE. Check Documenter's build log for details.

Missing docstring.

Missing docstring for SystemBalanceSlackUp. Check Documenter's build log for details.

Missing docstring.

Missing docstring for SystemBalanceSlackDown. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ReserveRequirementSlack. Check Documenter's build log for details.

  + 

Constraints

Common Constraints

Missing docstring.

Missing docstring for PieceWiseLinearCostConstraint. Check Documenter's build log for details.

Network Constraints

Missing docstring.

Missing docstring for AreaDispatchBalanceConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for AreaParticipationAssignmentConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for BalanceAuxConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for CopperPlateBalanceConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FrequencyResponseConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for NodalBalanceActiveConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for NodalBalanceReactiveConstraint. Check Documenter's build log for details.

Power Variable Limit Constraints

Missing docstring.

Missing docstring for ActivePowerVariableLimitsConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ReactivePowerVariableLimitsConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ActivePowerVariableTimeSeriesLimitsConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for InputActivePowerVariableLimitsConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for OutputActivePowerVariableLimitsConstraint. Check Documenter's build log for details.

Regulation and Services Constraints

Missing docstring.

Missing docstring for ParticipationAssignmentConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RegulationLimitsConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RequirementConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ReserveEnergyCoverageConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for ReservePowerConstraint. Check Documenter's build log for details.

Thermal Unit Constraints

Missing docstring.

Missing docstring for ActiveRangeICConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for CommitmentConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for DurationConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RampConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RampLimitConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for StartupInitialConditionConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for StartupTimeLimitTemperatureConstraint. Check Documenter's build log for details.

Renewable Unit Constraints

Missing docstring.

Missing docstring for EqualityConstraint. Check Documenter's build log for details.

Branches Constraints

Missing docstring.

Missing docstring for AbsoluteValueConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FlowLimitFromToConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FlowLimitToFromConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FlowRateConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FlowRateConstraintFromTo. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FlowRateConstraintToFrom. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HVDCDirection. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HVDCLossesAbsoluteValue. Check Documenter's build log for details.

Missing docstring.

Missing docstring for HVDCPowerBalance. Check Documenter's build log for details.

Missing docstring.

Missing docstring for NetworkFlowConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RateLimitConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RateLimitConstraintFromTo. Check Documenter's build log for details.

Missing docstring.

Missing docstring for RateLimitConstraintToFrom. Check Documenter's build log for details.

Missing docstring.

Missing docstring for PhaseAngleControlLimit. Check Documenter's build log for details.

Feedforward Constraints

Missing docstring.

Missing docstring for FeedforwardSemiContinousConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FeedforwardIntegralLimitConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FeedforwardUpperBoundConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FeedforwardLowerBoundConstraint. Check Documenter's build log for details.

Missing docstring.

Missing docstring for FeedforwardEnergyTargetConstraint. Check Documenter's build log for details.

Parameters

Time Series Parameters

PowerSimulations.ActivePowerTimeSeriesParameterType

Parameter to define active power time series

source
PowerSimulations.ReactivePowerTimeSeriesParameterType

Parameter to define reactive power time series

source
PowerSimulations.RequirementTimeSeriesParameterType

Paramter to define requirement time series

source

Variable Value Parameters

PowerSimulations.UpperBoundValueParameterType

Parameter to define variable upper bound

source
PowerSimulations.LowerBoundValueParameterType

Parameter to define variable lower bound

source
PowerSimulations.OnStatusParameterType

Parameter to define unit commitment status

source
Missing docstring.

Missing docstring for EnergyLimitParameter. Check Documenter's build log for details.

PowerSimulations.FixValueParameterType

Parameter to FixValueParameter

source
Missing docstring.

Missing docstring for EnergyTargetParameter. Check Documenter's build log for details.

Objective Function Parameters

PowerSimulations.CostFunctionParameterType

Parameter to define cost function coefficient

source
diff --git a/previews/PR1028/code_base_developer_guide/developer/index.html b/previews/PR1028/code_base_developer_guide/developer/index.html index 8a3e6d10db..d54c87aec4 100644 --- a/previews/PR1028/code_base_developer_guide/developer/index.html +++ b/previews/PR1028/code_base_developer_guide/developer/index.html @@ -1,2 +1,2 @@ -Developer Guide · PowerSimulations.jl
+Developer Guide · PowerSimulations.jl
diff --git a/previews/PR1028/code_base_developer_guide/extending_powersimulations/index.html b/previews/PR1028/code_base_developer_guide/extending_powersimulations/index.html index a674ef47d7..94e55e772b 100644 --- a/previews/PR1028/code_base_developer_guide/extending_powersimulations/index.html +++ b/previews/PR1028/code_base_developer_guide/extending_powersimulations/index.html @@ -33,4 +33,4 @@ │ 2020-04-07T15:08:32.711 │ InitialConditionUpdateEvent │ 2024-01-02T00:00:00 │ DeviceStatus │ ThermalStandard │ Alta │ 1.0 │ 1 │ │ 2020-04-07T15:08:32.711 │ InitialConditionUpdateEvent │ 2024-01-02T00:00:00 │ DeviceStatus │ ThermalStandard │ Brighton │ 1.0 │ 1 │ │ 2020-04-07T15:08:32.711 │ InitialConditionUpdateEvent │ 2024-01-02T00:00:00 │ DeviceStatus │ ThermalStandard │ Sundance │ 0.0 │ 1 │ -└─────────────────────────┴─────────────────────────────┴─────────────────────┴────────────────────────┴─────────────────┴─────────────┴─────┴──────────────┘ +└─────────────────────────┴─────────────────────────────┴─────────────────────┴────────────────────────┴─────────────────┴─────────────┴─────┴──────────────┘ diff --git a/previews/PR1028/code_base_developer_guide/troubleshooting/index.html b/previews/PR1028/code_base_developer_guide/troubleshooting/index.html index a15df2f41d..b22f39a9e8 100644 --- a/previews/PR1028/code_base_developer_guide/troubleshooting/index.html +++ b/previews/PR1028/code_base_developer_guide/troubleshooting/index.html @@ -1,2 +1,2 @@ -Troubleshooting · PowerSimulations.jl
+Troubleshooting · PowerSimulations.jl
diff --git a/previews/PR1028/formulation_library/Branch/index.html b/previews/PR1028/formulation_library/Branch/index.html index bae5833a83..6f9fd0908c 100644 --- a/previews/PR1028/formulation_library/Branch/index.html +++ b/previews/PR1028/formulation_library/Branch/index.html @@ -1,2 +1,2 @@ -Branch · PowerSimulations.jl

PowerSystems.Branch Formulations

Valid DeviceModels for subtypes of Branch include the following:

Valid DeviceModelDevice TypeFormulation
DeviceModel(TModelHVDCLine, LossLessLine)TModelHVDCLineLossLessLine
DeviceModel(PhaseShiftingTransformer, PhaseAngleControl)PhaseShiftingTransformerPhaseAngleControl
DeviceModel(TwoTerminalHVDCLine, HVDCTwoTerminalDispatch)TwoTerminalHVDCLineHVDCTwoTerminalDispatch
DeviceModel(TwoTerminalVSCDCLine, HVDCTwoTerminalDispatch)TwoTerminalVSCDCLineHVDCTwoTerminalDispatch
DeviceModel(TwoTerminalHVDCLine, HVDCTwoTerminalLossless)TwoTerminalHVDCLineHVDCTwoTerminalLossless
DeviceModel(TwoTerminalVSCDCLine, HVDCTwoTerminalLossless)TwoTerminalVSCDCLineHVDCTwoTerminalLossless
DeviceModel(TwoTerminalHVDCLine, HVDCTwoTerminalUnbounded)TwoTerminalHVDCLineHVDCTwoTerminalUnbounded
DeviceModel(TwoTerminalVSCDCLine, HVDCTwoTerminalUnbounded)TwoTerminalVSCDCLineHVDCTwoTerminalUnbounded
DeviceModel(Line, StaticBranch)LineStaticBranch
DeviceModel(MonitoredLine, StaticBranch)MonitoredLineStaticBranch
DeviceModel(PhaseShiftingTransformer, StaticBranch)PhaseShiftingTransformerStaticBranch
DeviceModel(TapTransformer, StaticBranch)TapTransformerStaticBranch
DeviceModel(Transformer2W, StaticBranch)Transformer2WStaticBranch
DeviceModel(TwoTerminalHVDCLine, StaticBranch)TwoTerminalHVDCLineStaticBranch
DeviceModel(TwoTerminalVSCDCLine, StaticBranch)TwoTerminalVSCDCLineStaticBranch
DeviceModel(Line, StaticBranchBounds)LineStaticBranchBounds
DeviceModel(MonitoredLine, StaticBranchBounds)MonitoredLineStaticBranchBounds
DeviceModel(PhaseShiftingTransformer, StaticBranchBounds)PhaseShiftingTransformerStaticBranchBounds
DeviceModel(TapTransformer, StaticBranchBounds)TapTransformerStaticBranchBounds
DeviceModel(Transformer2W, StaticBranchBounds)Transformer2WStaticBranchBounds
DeviceModel(TwoTerminalHVDCLine, StaticBranchBounds)TwoTerminalHVDCLineStaticBranchBounds
DeviceModel(TwoTerminalVSCDCLine, StaticBranchBounds)TwoTerminalVSCDCLineStaticBranchBounds
DeviceModel(Line, StaticBranchUnbounded)LineStaticBranchUnbounded
DeviceModel(MonitoredLine, StaticBranchUnbounded)MonitoredLineStaticBranchUnbounded
DeviceModel(PhaseShiftingTransformer, StaticBranchUnbounded)PhaseShiftingTransformerStaticBranchUnbounded
DeviceModel(TapTransformer, StaticBranchUnbounded)TapTransformerStaticBranchUnbounded
DeviceModel(Transformer2W, StaticBranchUnbounded)Transformer2WStaticBranchUnbounded
DeviceModel(TwoTerminalHVDCLine, StaticBranchUnbounded)TwoTerminalHVDCLineStaticBranchUnbounded
DeviceModel(TwoTerminalVSCDCLine, StaticBranchUnbounded)TwoTerminalVSCDCLineStaticBranchUnbounded

StaticBranch


StaticBranchBounds


StaticBranchUnbounded


HVDCTwoTerminalLossless


HVDCTwoTerminalDispatch


HVDCTwoTerminalUnbounded

+Branch · PowerSimulations.jl

PowerSystems.Branch Formulations

Valid DeviceModels for subtypes of Branch include the following:

Valid DeviceModelDevice TypeFormulation
DeviceModel(TModelHVDCLine, LossLessLine)TModelHVDCLineLossLessLine
DeviceModel(PhaseShiftingTransformer, PhaseAngleControl)PhaseShiftingTransformerPhaseAngleControl
DeviceModel(TwoTerminalHVDCLine, HVDCTwoTerminalDispatch)TwoTerminalHVDCLineHVDCTwoTerminalDispatch
DeviceModel(TwoTerminalVSCDCLine, HVDCTwoTerminalDispatch)TwoTerminalVSCDCLineHVDCTwoTerminalDispatch
DeviceModel(TwoTerminalHVDCLine, HVDCTwoTerminalLossless)TwoTerminalHVDCLineHVDCTwoTerminalLossless
DeviceModel(TwoTerminalVSCDCLine, HVDCTwoTerminalLossless)TwoTerminalVSCDCLineHVDCTwoTerminalLossless
DeviceModel(TwoTerminalHVDCLine, HVDCTwoTerminalUnbounded)TwoTerminalHVDCLineHVDCTwoTerminalUnbounded
DeviceModel(TwoTerminalVSCDCLine, HVDCTwoTerminalUnbounded)TwoTerminalVSCDCLineHVDCTwoTerminalUnbounded
DeviceModel(Line, StaticBranch)LineStaticBranch
DeviceModel(MonitoredLine, StaticBranch)MonitoredLineStaticBranch
DeviceModel(PhaseShiftingTransformer, StaticBranch)PhaseShiftingTransformerStaticBranch
DeviceModel(TapTransformer, StaticBranch)TapTransformerStaticBranch
DeviceModel(Transformer2W, StaticBranch)Transformer2WStaticBranch
DeviceModel(TwoTerminalHVDCLine, StaticBranch)TwoTerminalHVDCLineStaticBranch
DeviceModel(TwoTerminalVSCDCLine, StaticBranch)TwoTerminalVSCDCLineStaticBranch
DeviceModel(Line, StaticBranchBounds)LineStaticBranchBounds
DeviceModel(MonitoredLine, StaticBranchBounds)MonitoredLineStaticBranchBounds
DeviceModel(PhaseShiftingTransformer, StaticBranchBounds)PhaseShiftingTransformerStaticBranchBounds
DeviceModel(TapTransformer, StaticBranchBounds)TapTransformerStaticBranchBounds
DeviceModel(Transformer2W, StaticBranchBounds)Transformer2WStaticBranchBounds
DeviceModel(TwoTerminalHVDCLine, StaticBranchBounds)TwoTerminalHVDCLineStaticBranchBounds
DeviceModel(TwoTerminalVSCDCLine, StaticBranchBounds)TwoTerminalVSCDCLineStaticBranchBounds
DeviceModel(Line, StaticBranchUnbounded)LineStaticBranchUnbounded
DeviceModel(MonitoredLine, StaticBranchUnbounded)MonitoredLineStaticBranchUnbounded
DeviceModel(PhaseShiftingTransformer, StaticBranchUnbounded)PhaseShiftingTransformerStaticBranchUnbounded
DeviceModel(TapTransformer, StaticBranchUnbounded)TapTransformerStaticBranchUnbounded
DeviceModel(Transformer2W, StaticBranchUnbounded)Transformer2WStaticBranchUnbounded
DeviceModel(TwoTerminalHVDCLine, StaticBranchUnbounded)TwoTerminalHVDCLineStaticBranchUnbounded
DeviceModel(TwoTerminalVSCDCLine, StaticBranchUnbounded)TwoTerminalVSCDCLineStaticBranchUnbounded

StaticBranch


StaticBranchBounds


StaticBranchUnbounded


HVDCTwoTerminalLossless


HVDCTwoTerminalDispatch


HVDCTwoTerminalUnbounded

diff --git a/previews/PR1028/formulation_library/General/index.html b/previews/PR1028/formulation_library/General/index.html index fd48a6b0e4..916381107a 100644 --- a/previews/PR1028/formulation_library/General/index.html +++ b/previews/PR1028/formulation_library/General/index.html @@ -1,8 +1,8 @@ -General · PowerSimulations.jl

Formulations

Modeling formulations are created by dispatching on abstract subtypes of PowerSimulations.AbstractDeviceFormulation

FixedOutput

Variables:

No variables are created for DeviceModel(<:DeviceType, FixedOutput)

Static Parameters:

  • ThermalGen:
    • $Pg^\text{max}$ = PowerSystems.get_max_active_power(device)
    • $Qg^\text{max}$ = PowerSystems.get_max_reactive_power(device)
  • Storage:
    • $Pg^\text{max}$ = PowerSystems.get_max_active_power(device)
    • $Qg^\text{max}$ = PowerSystems.get_max_reactive_power(device)

Time Series Parameters:

Device TypeParameterDefault Time Series Name
RenewableGenActivePowerTimeSeriesParametermax_active_power
RenewableGenReactivePowerTimeSeriesParametermax_active_power

Objective:

No objective terms are created for DeviceModel(<:DeviceType, FixedOutput)

Expressions:

Adds the active and reactive parameters listed for specific device types above to the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

No constraints are created for DeviceModel(<:DeviceType, FixedOutput)


VariableCost Options

PowerSimulations can represent variable costs using a variety of different methods depending on the data available in each device. The following describes the objective function terms that are populated for each variable cost option.

Scalar VariableCost

variable_cost <: Float64: creates a fixed marginal cost term in the objective function

\[\begin{aligned} +General · PowerSimulations.jl

Formulations

Modeling formulations are created by dispatching on abstract subtypes of PowerSimulations.AbstractDeviceFormulation

FixedOutput

Variables:

No variables are created for DeviceModel(<:DeviceType, FixedOutput)

Static Parameters:

  • ThermalGen:
    • $Pg^\text{max}$ = PowerSystems.get_max_active_power(device)
    • $Qg^\text{max}$ = PowerSystems.get_max_reactive_power(device)
  • Storage:
    • $Pg^\text{max}$ = PowerSystems.get_max_active_power(device)
    • $Qg^\text{max}$ = PowerSystems.get_max_reactive_power(device)

Time Series Parameters:

Device TypeParameterDefault Time Series Name
RenewableGenReactivePowerTimeSeriesParametermax_active_power
RenewableGenActivePowerTimeSeriesParametermax_active_power

Objective:

No objective terms are created for DeviceModel(<:DeviceType, FixedOutput)

Expressions:

Adds the active and reactive parameters listed for specific device types above to the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

No constraints are created for DeviceModel(<:DeviceType, FixedOutput)


VariableCost Options

PowerSimulations can represent variable costs using a variety of different methods depending on the data available in each device. The following describes the objective function terms that are populated for each variable cost option.

Scalar VariableCost

variable_cost <: Float64: creates a fixed marginal cost term in the objective function

\[\begin{aligned} & \text{min} \sum_{t} C * G_t \end{aligned}\]

Polynomial VariableCost

variable_cost <: Tuple{Float64, Float64}: creates a polynomial cost term in the objective function where

  • $C_g$=variable_cost[1]
  • $C_g^\prime$=variable_cost[2]

\[\begin{aligned} & \text{min} \sum_{t} C * G_t + C^\prime * G_t^2 \end{aligned}\]

Piecewise Linear VariableCost

variable_cost <: Vector{Tuple{Float64, Float64}}: creates a piecewise linear cost term in the objective function

TODO: add formulation

___

StorageManagementCost

Adds an objective function cost term according to:

\[\begin{aligned} & \text{min} \sum_{t} \quad [E^{surplus}_t * C^{penalty} - E^{shortage}_t * C^{value}] -\end{aligned}\]

Impact of different cost configurations:

The following table describes all possible configuration of the StorageManagementCost with the target constraint in hydro or storage device models. Cases 1(a) & 2(a) will have no impact of the models operations and the target constraint will be rendered useless. In most cases that have no energy target and a non-zero value for $C^{value}$, if this cost is too high ($C^{value} >> 0$) or too low ($C^{value} <<0$) can result in either the model holding on to stored energy till the end or the model not storing any energy in the device. This is caused by the fact that when energy target is zero, we have $E_t = - E^{shortage}_t$, and $- E^{shortage}_t * C^{value}$ in the objective function is replaced by $E_t * C^{value}$, thus resulting in $C^{value}$ to be seen as the cost of stored energy.

CaseEnergy TargetEnergy Shortage CostEnergy Value / Energy Surplus costEffect
Case 1(a)$\hat{E}=0$$C^{penalty}=0$$C^{value}=0$no change
Case 1(b)$\hat{E}=0$$C^{penalty}=0$$C^{value}<0$penalty for storing energy
Case 1(c)$\hat{E}=0$$C^{penalty}>0$$C^{value}=0$no penalties or incentives applied
Case 1(d)$\hat{E}=0$$C^{penalty}=0$$C^{value}>0$incentive for storing energy
Case 1(e)$\hat{E}=0$$C^{penalty}>0$$C^{value}<0$penalty for storing energy
Case 1(f)$\hat{E}=0$$C^{penalty}>0$$C^{value}>0$incentive for storing energy
Case 2(a)$\hat{E}>0$$C^{penalty}=0$$C^{value}=0$no change
Case 2(b)$\hat{E}>0$$C^{penalty}=0$$C^{value}<0$penalty on energy storage in excess of target
Case 2(c)$\hat{E}>0$$C^{penalty}>0$$C^{value}=0$penalty on energy storage short of target
Case 2(d)$\hat{E}>0$$C^{penalty}=0$$C^{value}>0$incentive on excess energy
Case 2(e)$\hat{E}>0$$C^{penalty}>0$$C^{value}<0$penalty on both excess/shortage of energy
Case 2(f)$\hat{E}>0$$C^{penalty}>0$$C^{value}>0$penalty for shortage, incentive for excess energy
+\end{aligned}\]

Impact of different cost configurations:

The following table describes all possible configuration of the StorageManagementCost with the target constraint in hydro or storage device models. Cases 1(a) & 2(a) will have no impact of the models operations and the target constraint will be rendered useless. In most cases that have no energy target and a non-zero value for $C^{value}$, if this cost is too high ($C^{value} >> 0$) or too low ($C^{value} <<0$) can result in either the model holding on to stored energy till the end or the model not storing any energy in the device. This is caused by the fact that when energy target is zero, we have $E_t = - E^{shortage}_t$, and $- E^{shortage}_t * C^{value}$ in the objective function is replaced by $E_t * C^{value}$, thus resulting in $C^{value}$ to be seen as the cost of stored energy.

CaseEnergy TargetEnergy Shortage CostEnergy Value / Energy Surplus costEffect
Case 1(a)$\hat{E}=0$$C^{penalty}=0$$C^{value}=0$no change
Case 1(b)$\hat{E}=0$$C^{penalty}=0$$C^{value}<0$penalty for storing energy
Case 1(c)$\hat{E}=0$$C^{penalty}>0$$C^{value}=0$no penalties or incentives applied
Case 1(d)$\hat{E}=0$$C^{penalty}=0$$C^{value}>0$incentive for storing energy
Case 1(e)$\hat{E}=0$$C^{penalty}>0$$C^{value}<0$penalty for storing energy
Case 1(f)$\hat{E}=0$$C^{penalty}>0$$C^{value}>0$incentive for storing energy
Case 2(a)$\hat{E}>0$$C^{penalty}=0$$C^{value}=0$no change
Case 2(b)$\hat{E}>0$$C^{penalty}=0$$C^{value}<0$penalty on energy storage in excess of target
Case 2(c)$\hat{E}>0$$C^{penalty}>0$$C^{value}=0$penalty on energy storage short of target
Case 2(d)$\hat{E}>0$$C^{penalty}=0$$C^{value}>0$incentive on excess energy
Case 2(e)$\hat{E}>0$$C^{penalty}>0$$C^{value}<0$penalty on both excess/shortage of energy
Case 2(f)$\hat{E}>0$$C^{penalty}>0$$C^{value}>0$penalty for shortage, incentive for excess energy
diff --git a/previews/PR1028/formulation_library/Load/index.html b/previews/PR1028/formulation_library/Load/index.html index 86c593cbef..c2af806b8b 100644 --- a/previews/PR1028/formulation_library/Load/index.html +++ b/previews/PR1028/formulation_library/Load/index.html @@ -1,10 +1,10 @@ -Load · PowerSimulations.jl

PowerSystems.ElectricLoad Formulations

Valid DeviceModels for subtypes of ElectricLoad include the following:

Valid DeviceModelDevice TypeFormulation
DeviceModel(InterruptiblePowerLoad, PowerLoadDispatch)InterruptiblePowerLoadPowerLoadDispatch
DeviceModel(PowerLoad, PowerLoadDispatch)PowerLoadPowerLoadDispatch
DeviceModel(PowerSystems.ExponentialLoad, PowerLoadDispatch)PowerSystems.ExponentialLoadPowerLoadDispatch
DeviceModel(StandardLoad, PowerLoadDispatch)StandardLoadPowerLoadDispatch
DeviceModel(InterruptiblePowerLoad, PowerLoadInterruption)InterruptiblePowerLoadPowerLoadInterruption
DeviceModel(PowerLoad, PowerLoadInterruption)PowerLoadPowerLoadInterruption
DeviceModel(PowerSystems.ExponentialLoad, PowerLoadInterruption)PowerSystems.ExponentialLoadPowerLoadInterruption
DeviceModel(StandardLoad, PowerLoadInterruption)StandardLoadPowerLoadInterruption
DeviceModel(InterruptiblePowerLoad, StaticPowerLoad)InterruptiblePowerLoadStaticPowerLoad
DeviceModel(FixedAdmittance, StaticPowerLoad)FixedAdmittanceStaticPowerLoad
DeviceModel(PowerSystems.SwitchedAdmittance, StaticPowerLoad)PowerSystems.SwitchedAdmittanceStaticPowerLoad
DeviceModel(PowerLoad, StaticPowerLoad)PowerLoadStaticPowerLoad
DeviceModel(PowerSystems.ExponentialLoad, StaticPowerLoad)PowerSystems.ExponentialLoadStaticPowerLoad
DeviceModel(StandardLoad, StaticPowerLoad)StandardLoadStaticPowerLoad

StaticPowerLoad

Variables:

No variables are created

Time Series Parameters:

ParameterDefault Time Series Name
ActivePowerTimeSeriesParametermax_active_power
ReactivePowerTimeSeriesParametermax_active_power

Expressions:

Subtracts the parameters listed above from the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

No constraints are created


PowerLoadInterruption

Variables:

Time Series Parameters:

ParameterDefault Time Series Name
ActivePowerTimeSeriesParametermax_active_power
ReactivePowerTimeSeriesParametermax_active_power

Objective:

Creates an objective function term based on the VariableCost Options where the quantity term is defined as $Pg$.

Expressions:

  • Adds $Pg$ and $Qg$ terms and to the respective active and reactive power balance expressions created by the selected Network Formulations
  • Subtracts the time series parameters listed above terms from the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

$Pg$ and $Qg$ represent the "unserved" active and reactive power loads

\[\begin{aligned} +Load · PowerSimulations.jl

PowerSystems.ElectricLoad Formulations

Valid DeviceModels for subtypes of ElectricLoad include the following:

Valid DeviceModelDevice TypeFormulation
DeviceModel(InterruptiblePowerLoad, PowerLoadDispatch)InterruptiblePowerLoadPowerLoadDispatch
DeviceModel(PowerLoad, PowerLoadDispatch)PowerLoadPowerLoadDispatch
DeviceModel(PowerSystems.ExponentialLoad, PowerLoadDispatch)PowerSystems.ExponentialLoadPowerLoadDispatch
DeviceModel(StandardLoad, PowerLoadDispatch)StandardLoadPowerLoadDispatch
DeviceModel(InterruptiblePowerLoad, PowerLoadInterruption)InterruptiblePowerLoadPowerLoadInterruption
DeviceModel(PowerLoad, PowerLoadInterruption)PowerLoadPowerLoadInterruption
DeviceModel(PowerSystems.ExponentialLoad, PowerLoadInterruption)PowerSystems.ExponentialLoadPowerLoadInterruption
DeviceModel(StandardLoad, PowerLoadInterruption)StandardLoadPowerLoadInterruption
DeviceModel(InterruptiblePowerLoad, StaticPowerLoad)InterruptiblePowerLoadStaticPowerLoad
DeviceModel(FixedAdmittance, StaticPowerLoad)FixedAdmittanceStaticPowerLoad
DeviceModel(PowerSystems.SwitchedAdmittance, StaticPowerLoad)PowerSystems.SwitchedAdmittanceStaticPowerLoad
DeviceModel(PowerLoad, StaticPowerLoad)PowerLoadStaticPowerLoad
DeviceModel(PowerSystems.ExponentialLoad, StaticPowerLoad)PowerSystems.ExponentialLoadStaticPowerLoad
DeviceModel(StandardLoad, StaticPowerLoad)StandardLoadStaticPowerLoad

StaticPowerLoad

Variables:

No variables are created

Time Series Parameters:

ParameterDefault Time Series Name
ReactivePowerTimeSeriesParametermax_active_power
ActivePowerTimeSeriesParametermax_active_power

Expressions:

Subtracts the parameters listed above from the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

No constraints are created


PowerLoadInterruption

Variables:

Time Series Parameters:

ParameterDefault Time Series Name
ReactivePowerTimeSeriesParametermax_active_power
ActivePowerTimeSeriesParametermax_active_power

Objective:

Creates an objective function term based on the VariableCost Options where the quantity term is defined as $Pg$.

Expressions:

  • Adds $Pg$ and $Qg$ terms and to the respective active and reactive power balance expressions created by the selected Network Formulations
  • Subtracts the time series parameters listed above terms from the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

$Pg$ and $Qg$ represent the "unserved" active and reactive power loads

\[\begin{aligned} & Pg_t \le ActivePowerTimeSeriesParameter_t\\ & Pg_t - u_t ActivePowerTimeSeriesParameter_t \le 0 \\ & Qg_t \le ReactivePowerTimeSeriesParameter_t\\ & Qg_t - u_t ReactivePowerTimeSeriesParameter_t\le 0 -\end{aligned}\]


PowerLoadDispatch

Variables:

Time Series Parameters:

ParameterDefault Time Series Name
ActivePowerTimeSeriesParametermax_active_power
ReactivePowerTimeSeriesParametermax_active_power

Objective:

Creates an objective function term based on the VariableCost Options where the quantity term is defined as $Pg$.

Expressions:

  • Adds $Pg$ and $Qg$ terms and to the respective active and reactive power balance expressions created by the selected Network Formulations
  • Subtracts the time series parameters listed above terms from the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

$Pg$ and $Qg$ represent the "unserved" active and reactive power loads

\[\begin{aligned} +\end{aligned}\]


PowerLoadDispatch

Variables:

Time Series Parameters:

ParameterDefault Time Series Name
ReactivePowerTimeSeriesParametermax_active_power
ActivePowerTimeSeriesParametermax_active_power

Objective:

Creates an objective function term based on the VariableCost Options where the quantity term is defined as $Pg$.

Expressions:

  • Adds $Pg$ and $Qg$ terms and to the respective active and reactive power balance expressions created by the selected Network Formulations
  • Subtracts the time series parameters listed above terms from the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

$Pg$ and $Qg$ represent the "unserved" active and reactive power loads

\[\begin{aligned} & Pg_t \le ActivePowerTimeSeriesParameter_t\\ & Qg_t \le ReactivePowerTimeSeriesParameter_t\\ -\end{aligned}\]

+\end{aligned}\]

diff --git a/previews/PR1028/formulation_library/Network/index.html b/previews/PR1028/formulation_library/Network/index.html index 00fafa8c9d..3210b01f4c 100644 --- a/previews/PR1028/formulation_library/Network/index.html +++ b/previews/PR1028/formulation_library/Network/index.html @@ -1,2 +1,2 @@ -Network · PowerSimulations.jl
+Network · PowerSimulations.jl
diff --git a/previews/PR1028/formulation_library/README/index.html b/previews/PR1028/formulation_library/README/index.html index 49f7ca6297..3559684866 100644 --- a/previews/PR1028/formulation_library/README/index.html +++ b/previews/PR1028/formulation_library/README/index.html @@ -1,2 +1,2 @@ -Formulation documentation guide · PowerSimulations.jl

Formulation documentation guide

Formulation documentation should roughly follow the template established by RenewableGen.md

Auto generated items

  • Valid DeviceModel table: just change the device category in the filter function
  • Time Series Parameters: just change the device category and formulation in the get_default_time_series_names method call

Linked items

  • Formulations in the Valid DeviceModel table must have a docstring in src/core/formulations.jl
  • The Formulation in the @docs block must have a docstring in src/core/formulations.jl
  • The Variables must have docstrings in src/core/variables.jl
  • The Time Series Parameters must have docstrings in src/core/parameters.jl
+Formulation documentation guide · PowerSimulations.jl

Formulation documentation guide

Formulation documentation should roughly follow the template established by RenewableGen.md

Auto generated items

  • Valid DeviceModel table: just change the device category in the filter function
  • Time Series Parameters: just change the device category and formulation in the get_default_time_series_names method call

Linked items

  • Formulations in the Valid DeviceModel table must have a docstring in src/core/formulations.jl
  • The Formulation in the @docs block must have a docstring in src/core/formulations.jl
  • The Variables must have docstrings in src/core/variables.jl
  • The Time Series Parameters must have docstrings in src/core/parameters.jl
diff --git a/previews/PR1028/formulation_library/RenewableGen/index.html b/previews/PR1028/formulation_library/RenewableGen/index.html index d41c3d24c7..0586867603 100644 --- a/previews/PR1028/formulation_library/RenewableGen/index.html +++ b/previews/PR1028/formulation_library/RenewableGen/index.html @@ -1,9 +1,9 @@ -Renewable Generation · PowerSimulations.jl

PowerSystems.RenewableGen Formulations

Valid DeviceModels for subtypes of RenewableGen include the following:

Valid DeviceModelDevice TypeFormulation
DeviceModel(RenewableDispatch, FixedOutput)RenewableDispatchFixedOutput
DeviceModel(RenewableFix, FixedOutput)RenewableFixFixedOutput
DeviceModel(RenewableDispatch, RenewableConstantPowerFactor)RenewableDispatchRenewableConstantPowerFactor
DeviceModel(RenewableFix, RenewableConstantPowerFactor)RenewableFixRenewableConstantPowerFactor
DeviceModel(RenewableDispatch, RenewableFullDispatch)RenewableDispatchRenewableFullDispatch
DeviceModel(RenewableFix, RenewableFullDispatch)RenewableFixRenewableFullDispatch

RenewableFullDispatch

Variables:

Static Parameters:

  • $Pg^\text{min}$ = PowerSystems.get_active_power_limits(device).min
  • $Qg^\text{min}$ = PowerSystems.get_reactive_power_limits(device).min
  • $Qg^\text{max}$ = PowerSystems.get_reactive_power_limits(device).max

Time Series Parameters:

ParameterDefault Time Series Name
ActivePowerTimeSeriesParametermax_active_power
ReactivePowerTimeSeriesParametermax_active_power

Objective:

Creates an objective function term based on the VariableCost Options where the quantity term is defined as $- Pg_t$ to incentivize generation from RenewableGen devices.

Expressions:

Adds $Pg$ and $Qg$ terms to the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

\[\begin{aligned} +Renewable Generation · PowerSimulations.jl

PowerSystems.RenewableGen Formulations

Valid DeviceModels for subtypes of RenewableGen include the following:

Valid DeviceModelDevice TypeFormulation
DeviceModel(RenewableDispatch, FixedOutput)RenewableDispatchFixedOutput
DeviceModel(RenewableFix, FixedOutput)RenewableFixFixedOutput
DeviceModel(RenewableDispatch, RenewableConstantPowerFactor)RenewableDispatchRenewableConstantPowerFactor
DeviceModel(RenewableFix, RenewableConstantPowerFactor)RenewableFixRenewableConstantPowerFactor
DeviceModel(RenewableDispatch, RenewableFullDispatch)RenewableDispatchRenewableFullDispatch
DeviceModel(RenewableFix, RenewableFullDispatch)RenewableFixRenewableFullDispatch

RenewableFullDispatch

Variables:

Static Parameters:

  • $Pg^\text{min}$ = PowerSystems.get_active_power_limits(device).min
  • $Qg^\text{min}$ = PowerSystems.get_reactive_power_limits(device).min
  • $Qg^\text{max}$ = PowerSystems.get_reactive_power_limits(device).max

Time Series Parameters:

ParameterDefault Time Series Name
ReactivePowerTimeSeriesParametermax_active_power
ActivePowerTimeSeriesParametermax_active_power

Objective:

Creates an objective function term based on the VariableCost Options where the quantity term is defined as $- Pg_t$ to incentivize generation from RenewableGen devices.

Expressions:

Adds $Pg$ and $Qg$ terms to the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

\[\begin{aligned} & Pg^\text{min} \le Pg_t \le ActivePowerTimeSeriesParameter_t \\ & Qg^\text{min} \le Qg_t \le Qg^\text{max} -\end{aligned}\]


RenewableConstantPowerFactor

Variables:

Static Parameters:

  • $Pg^\text{min}$ = PowerSystems.get_active_power_limits(device).min
  • $Qg^\text{min}$ = PowerSystems.get_reactive_power_limits(device).min
  • $Qg^\text{max}$ = PowerSystems.get_reactive_power_limits(device).max
  • $pf$ = PowerSystems.get_power_factor(device)

Time Series Parameters:

ParameterDefault Time Series Name
ActivePowerTimeSeriesParametermax_active_power
ReactivePowerTimeSeriesParametermax_active_power

Objective:

Creates an objective function term based on the VariableCost Options where the quantity term is defined as $- Pg_t$ to incentivize generation from RenewableGen devices.

Expressions:

Adds $Pg$ and $Qg$ terms to the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

\[\begin{aligned} +\end{aligned}\]


RenewableConstantPowerFactor

Variables:

Static Parameters:

  • $Pg^\text{min}$ = PowerSystems.get_active_power_limits(device).min
  • $Qg^\text{min}$ = PowerSystems.get_reactive_power_limits(device).min
  • $Qg^\text{max}$ = PowerSystems.get_reactive_power_limits(device).max
  • $pf$ = PowerSystems.get_power_factor(device)

Time Series Parameters:

ParameterDefault Time Series Name
ReactivePowerTimeSeriesParametermax_active_power
ActivePowerTimeSeriesParametermax_active_power

Objective:

Creates an objective function term based on the VariableCost Options where the quantity term is defined as $- Pg_t$ to incentivize generation from RenewableGen devices.

Expressions:

Adds $Pg$ and $Qg$ terms to the respective active and reactive power balance expressions created by the selected Network Formulations

Constraints:

\[\begin{aligned} & Pg^\text{min} \le Pg_t \le ActivePowerTimeSeriesParameter_t \\ & Qg^\text{min} \le Qg_t \le Qg^\text{max} \\ & Qg_t = pf * Pg_t -\end{aligned}\]

+\end{aligned}\]

diff --git a/previews/PR1028/formulation_library/Service/index.html b/previews/PR1028/formulation_library/Service/index.html index 2c7d6668c2..b79bad5d25 100644 --- a/previews/PR1028/formulation_library/Service/index.html +++ b/previews/PR1028/formulation_library/Service/index.html @@ -1,2 +1,2 @@ -PowerSystems.Service Formulations · PowerSimulations.jl
+PowerSystems.Service Formulations · PowerSimulations.jl
diff --git a/previews/PR1028/formulation_library/ThermalGen/index.html b/previews/PR1028/formulation_library/ThermalGen/index.html index c63b11a789..08ff403eda 100644 --- a/previews/PR1028/formulation_library/ThermalGen/index.html +++ b/previews/PR1028/formulation_library/ThermalGen/index.html @@ -1,2 +1,2 @@ -Thermal Generation · PowerSimulations.jl

ThermalGen Formulations

Valid DeviceModels for subtypes of ThermalGen include the following:

Valid DeviceModelDevice TypeFormulation
DeviceModel(ThermalMultiStart, FixedOutput)ThermalMultiStartFixedOutput
DeviceModel(ThermalStandard, FixedOutput)ThermalStandardFixedOutput
DeviceModel(ThermalMultiStart, ThermalBasicDispatch)ThermalMultiStartThermalBasicDispatch
DeviceModel(ThermalStandard, ThermalBasicDispatch)ThermalStandardThermalBasicDispatch
DeviceModel(ThermalMultiStart, ThermalCompactDispatch)ThermalMultiStartThermalCompactDispatch
DeviceModel(ThermalStandard, ThermalCompactDispatch)ThermalStandardThermalCompactDispatch
DeviceModel(ThermalMultiStart, ThermalDispatchNoMin)ThermalMultiStartThermalDispatchNoMin
DeviceModel(ThermalStandard, ThermalDispatchNoMin)ThermalStandardThermalDispatchNoMin
DeviceModel(ThermalMultiStart, ThermalStandardDispatch)ThermalMultiStartThermalStandardDispatch
DeviceModel(ThermalStandard, ThermalStandardDispatch)ThermalStandardThermalStandardDispatch
DeviceModel(ThermalMultiStart, ThermalBasicCompactUnitCommitment)ThermalMultiStartThermalBasicCompactUnitCommitment
DeviceModel(ThermalStandard, ThermalBasicCompactUnitCommitment)ThermalStandardThermalBasicCompactUnitCommitment
DeviceModel(ThermalMultiStart, ThermalCompactUnitCommitment)ThermalMultiStartThermalCompactUnitCommitment
DeviceModel(ThermalStandard, ThermalCompactUnitCommitment)ThermalStandardThermalCompactUnitCommitment
DeviceModel(ThermalMultiStart, ThermalMultiStartUnitCommitment)ThermalMultiStartThermalMultiStartUnitCommitment
DeviceModel(ThermalMultiStart, ThermalBasicUnitCommitment)ThermalMultiStartThermalBasicUnitCommitment
DeviceModel(ThermalStandard, ThermalBasicUnitCommitment)ThermalStandardThermalBasicUnitCommitment
DeviceModel(ThermalMultiStart, ThermalStandardUnitCommitment)ThermalMultiStartThermalStandardUnitCommitment
DeviceModel(ThermalStandard, ThermalStandardUnitCommitment)ThermalStandardThermalStandardUnitCommitment

ThermalBasicDispatch

TODO


ThermalCompactDispatch

TODO


ThermalDispatchNoMin

TODO


ThermalStandardDispatch

TODO


ThermalBasicCompactUnitCommitment

TODO


ThermalCompactUnitCommitment

TODO


ThermalMultiStartUnitCommitment

TODO


ThermalBasicUnitCommitment

TODO


ThermalStandardUnitCommitment

TODO


+Thermal Generation · PowerSimulations.jl

ThermalGen Formulations

Valid DeviceModels for subtypes of ThermalGen include the following:

Valid DeviceModelDevice TypeFormulation
DeviceModel(ThermalMultiStart, FixedOutput)ThermalMultiStartFixedOutput
DeviceModel(ThermalStandard, FixedOutput)ThermalStandardFixedOutput
DeviceModel(ThermalMultiStart, ThermalBasicDispatch)ThermalMultiStartThermalBasicDispatch
DeviceModel(ThermalStandard, ThermalBasicDispatch)ThermalStandardThermalBasicDispatch
DeviceModel(ThermalMultiStart, ThermalCompactDispatch)ThermalMultiStartThermalCompactDispatch
DeviceModel(ThermalStandard, ThermalCompactDispatch)ThermalStandardThermalCompactDispatch
DeviceModel(ThermalMultiStart, ThermalDispatchNoMin)ThermalMultiStartThermalDispatchNoMin
DeviceModel(ThermalStandard, ThermalDispatchNoMin)ThermalStandardThermalDispatchNoMin
DeviceModel(ThermalMultiStart, ThermalStandardDispatch)ThermalMultiStartThermalStandardDispatch
DeviceModel(ThermalStandard, ThermalStandardDispatch)ThermalStandardThermalStandardDispatch
DeviceModel(ThermalMultiStart, ThermalBasicCompactUnitCommitment)ThermalMultiStartThermalBasicCompactUnitCommitment
DeviceModel(ThermalStandard, ThermalBasicCompactUnitCommitment)ThermalStandardThermalBasicCompactUnitCommitment
DeviceModel(ThermalMultiStart, ThermalCompactUnitCommitment)ThermalMultiStartThermalCompactUnitCommitment
DeviceModel(ThermalStandard, ThermalCompactUnitCommitment)ThermalStandardThermalCompactUnitCommitment
DeviceModel(ThermalMultiStart, ThermalMultiStartUnitCommitment)ThermalMultiStartThermalMultiStartUnitCommitment
DeviceModel(ThermalMultiStart, ThermalBasicUnitCommitment)ThermalMultiStartThermalBasicUnitCommitment
DeviceModel(ThermalStandard, ThermalBasicUnitCommitment)ThermalStandardThermalBasicUnitCommitment
DeviceModel(ThermalMultiStart, ThermalStandardUnitCommitment)ThermalMultiStartThermalStandardUnitCommitment
DeviceModel(ThermalStandard, ThermalStandardUnitCommitment)ThermalStandardThermalStandardUnitCommitment

ThermalBasicDispatch

TODO


ThermalCompactDispatch

TODO


ThermalDispatchNoMin

TODO


ThermalStandardDispatch

TODO


ThermalBasicCompactUnitCommitment

TODO


ThermalCompactUnitCommitment

TODO


ThermalMultiStartUnitCommitment

TODO


ThermalBasicUnitCommitment

TODO


ThermalStandardUnitCommitment

TODO


diff --git a/previews/PR1028/index.html b/previews/PR1028/index.html index 3417b10588..d243c8cef4 100644 --- a/previews/PR1028/index.html +++ b/previews/PR1028/index.html @@ -1,2 +1,2 @@ -Welcome Page · PowerSimulations.jl

PowerSimulations.jl

Overview

PowerSimulations.jl is a power system operations simulation tool developed as a flexible and open source software for quasi-static power systems simulations including Production Cost Models. PowerSimulations.jl tackles the issues of developing a simulation model in a modular way providing tools for the formulation of decision models and emulation models that can be solved independently or in an interconnected fashion.

PowerSimulations.jl supports the workflows to develop simulations by separating the development of operations models and simulation models.

  • Operation Models: Optimization model used to find the solution of an operation problem.
  • Simulations Models: Defined the requirements to find solutions to a sequence of operation problems in a way that resembles the procedures followed by operators.

The most common Simulation Model is the solution of a Unit Commitment and Economic Dispatch sequence of problems. This model is used in commercial Production Cost Modeling tools, but it has a limited scope of analysis.

How the documentation is structured

PowerSimulations.jl documentation and code are organized according to the needs of different users depending on their skillset and requirements. In broad terms there are three categories:

  • Modeler: Users that want to solve an operations problem or run a simulation using the existing models in PowerSimulations.jl. For instance, answer questions about the change in operation costs in future fuel mixes. Check the formulations library page to choose a modeling strategy that fits your needs.

  • Model Developer: Users that want to develop custom models and workflows for the simulation of a power system operation. For instance, study the impacts of an stochastic optimization problem over a deterministic.

  • Code Base Developers: Users that want to add new core functionalities or fix bugs in the core capabilities of PowerSimulations.jl.

PowerSimulations.jl is an active project under development, and we welcome your feedback, suggestions, and bug reports.

Note: PowerSimulations.jl uses the data model implemented in PowerSystems.jl to construct optimization models. In most cases, you need to add PowerSystems.jl to your scripts.

Installation

The latest stable release of PowerSimulations can be installed using the Julia package manager with

] add PowerSimulations

For the current development version, "checkout" this package with

] add PowerSimulations#main

An appropriate optimization solver is required for running PowerSimulations models. Refer to JuMP.jl solver's page to select the most appropriate for the application of interest.


PowerSystems has been developed as part of the Scalable Integrated Infrastructure Planning (SIIP) initiative at the U.S. Department of Energy's National Renewable Energy Laboratory (NREL).

+Welcome Page · PowerSimulations.jl

PowerSimulations.jl

Overview

PowerSimulations.jl is a power system operations simulation tool developed as a flexible and open source software for quasi-static power systems simulations including Production Cost Models. PowerSimulations.jl tackles the issues of developing a simulation model in a modular way providing tools for the formulation of decision models and emulation models that can be solved independently or in an interconnected fashion.

PowerSimulations.jl supports the workflows to develop simulations by separating the development of operations models and simulation models.

  • Operation Models: Optimization model used to find the solution of an operation problem.
  • Simulations Models: Defined the requirements to find solutions to a sequence of operation problems in a way that resembles the procedures followed by operators.

The most common Simulation Model is the solution of a Unit Commitment and Economic Dispatch sequence of problems. This model is used in commercial Production Cost Modeling tools, but it has a limited scope of analysis.

How the documentation is structured

PowerSimulations.jl documentation and code are organized according to the needs of different users depending on their skillset and requirements. In broad terms there are three categories:

  • Modeler: Users that want to solve an operations problem or run a simulation using the existing models in PowerSimulations.jl. For instance, answer questions about the change in operation costs in future fuel mixes. Check the formulations library page to choose a modeling strategy that fits your needs.

  • Model Developer: Users that want to develop custom models and workflows for the simulation of a power system operation. For instance, study the impacts of an stochastic optimization problem over a deterministic.

  • Code Base Developers: Users that want to add new core functionalities or fix bugs in the core capabilities of PowerSimulations.jl.

PowerSimulations.jl is an active project under development, and we welcome your feedback, suggestions, and bug reports.

Note: PowerSimulations.jl uses the data model implemented in PowerSystems.jl to construct optimization models. In most cases, you need to add PowerSystems.jl to your scripts.

Installation

The latest stable release of PowerSimulations can be installed using the Julia package manager with

] add PowerSimulations

For the current development version, "checkout" this package with

] add PowerSimulations#main

An appropriate optimization solver is required for running PowerSimulations models. Refer to JuMP.jl solver's page to select the most appropriate for the application of interest.


PowerSystems has been developed as part of the Scalable Integrated Infrastructure Planning (SIIP) initiative at the U.S. Department of Energy's National Renewable Energy Laboratory (NREL).

diff --git a/previews/PR1028/model_developer_guide/structure_of_operation_problem/index.html b/previews/PR1028/model_developer_guide/structure_of_operation_problem/index.html index 5304355dc3..7f0f36bf33 100644 --- a/previews/PR1028/model_developer_guide/structure_of_operation_problem/index.html +++ b/previews/PR1028/model_developer_guide/structure_of_operation_problem/index.html @@ -23,4 +23,4 @@ end return - end + end diff --git a/previews/PR1028/model_developer_guide/troubleshooting/index.html b/previews/PR1028/model_developer_guide/troubleshooting/index.html index 4a94b81cb5..298a628551 100644 --- a/previews/PR1028/model_developer_guide/troubleshooting/index.html +++ b/previews/PR1028/model_developer_guide/troubleshooting/index.html @@ -1,2 +1,2 @@ -Troubleshooting · PowerSimulations.jl
+Troubleshooting · PowerSimulations.jl
diff --git a/previews/PR1028/modeler_guide/debugging_infeasible_models/index.html b/previews/PR1028/modeler_guide/debugging_infeasible_models/index.html index 4ff6a6310a..f3909364c8 100644 --- a/previews/PR1028/modeler_guide/debugging_infeasible_models/index.html +++ b/previews/PR1028/modeler_guide/debugging_infeasible_models/index.html @@ -1,2 +1,2 @@ -Debugging infeasible models · PowerSimulations.jl
+Debugging infeasible models · PowerSimulations.jl
diff --git a/previews/PR1028/modeler_guide/definitions/index.html b/previews/PR1028/modeler_guide/definitions/index.html index 2cd807a09d..b1654f2403 100644 --- a/previews/PR1028/modeler_guide/definitions/index.html +++ b/previews/PR1028/modeler_guide/definitions/index.html @@ -1,2 +1,2 @@ -Definitions · PowerSimulations.jl

Definitions

D

  • Decision Problem: A decision problem calculates the desired system operation based on forecasts of uncertain inputs and information about the state of the system. The output of a decision problem represents the policies used to drive the set-points of the system's devices, like generators or switches, and depends on the purpose of the problem. See the Decision Model Tutorial to learn more about solving individual problems.

  • Device Formulation: The model of a device that is incorporated into a large system optimization models. For instance, the storage device model used inside of a Unit Commitment (UC) problem. A device model needs to follow some requirements to be integrated into operation problems.

E

  • Emulation Problem: An emulation problem is used to mimic the system's behavior subject to an incoming decision and the realization of a forecasted inputs. The solution of the emulator produces outputs representative of the system performance when operating subject the policies resulting from the decision models.

H

I

  • Interval: The amount of time between updates to the decision problem. For instance, Day-Ahead problems usually have a 24-hour intervals and Real-Time problems have 5-minute intervals. Check the time Time Series Data Section in PowerSystems.jl

R

  • Resolution: The amount of time between timesteps in a simulation. For instance 1-hour or 5-minutes. In Julia these are defined using the syntax Hour(1) and Minute(5). Check the time Time Series Data Section in PowerSystems.jl
+Definitions · PowerSimulations.jl

Definitions

D

  • Decision Problem: A decision problem calculates the desired system operation based on forecasts of uncertain inputs and information about the state of the system. The output of a decision problem represents the policies used to drive the set-points of the system's devices, like generators or switches, and depends on the purpose of the problem. See the Decision Model Tutorial to learn more about solving individual problems.

  • Device Formulation: The model of a device that is incorporated into a large system optimization models. For instance, the storage device model used inside of a Unit Commitment (UC) problem. A device model needs to follow some requirements to be integrated into operation problems.

E

  • Emulation Problem: An emulation problem is used to mimic the system's behavior subject to an incoming decision and the realization of a forecasted inputs. The solution of the emulator produces outputs representative of the system performance when operating subject the policies resulting from the decision models.

H

I

  • Interval: The amount of time between updates to the decision problem. For instance, Day-Ahead problems usually have a 24-hour intervals and Real-Time problems have 5-minute intervals. Check the time Time Series Data Section in PowerSystems.jl

R

  • Resolution: The amount of time between timesteps in a simulation. For instance 1-hour or 5-minutes. In Julia these are defined using the syntax Hour(1) and Minute(5). Check the time Time Series Data Section in PowerSystems.jl
diff --git a/previews/PR1028/modeler_guide/logging/index.html b/previews/PR1028/modeler_guide/logging/index.html index 359b07dc75..2729b8ec9a 100644 --- a/previews/PR1028/modeler_guide/logging/index.html +++ b/previews/PR1028/modeler_guide/logging/index.html @@ -8,4 +8,4 @@ )

Configuring the simulation logger

You can configure the logging level used by the simulation logger when you call build!(simulation). Here is an example that increases logging verbosity:

import Logging
 using PowerSimulations
 simulation = Simulation(...)
-build!(simulation, console_level = Logging.Info, file_level = Logging.Debug)

The log file will be located at <your-output-path>/<simulation-name>/<run-output-dir>/logs/simulation.log.

Solver logs

You can configure logging for the solver you use. Refer to the solver documentation. PowerSimulations does not redirect or intercept prints to stdout or stderr from other libraries.

Recorder events

PowerSimulations uses the InfrastructureSystems.Recorder to store simulation events in a log file. Refer to this link for more information.

+build!(simulation, console_level = Logging.Info, file_level = Logging.Debug)

The log file will be located at <your-output-path>/<simulation-name>/<run-output-dir>/logs/simulation.log.

Solver logs

You can configure logging for the solver you use. Refer to the solver documentation. PowerSimulations does not redirect or intercept prints to stdout or stderr from other libraries.

Recorder events

PowerSimulations uses the InfrastructureSystems.Recorder to store simulation events in a log file. Refer to this link for more information.

diff --git a/previews/PR1028/modeler_guide/modeling_faq/index.html b/previews/PR1028/modeler_guide/modeling_faq/index.html index 4cfa748bbc..8a92c58651 100644 --- a/previews/PR1028/modeler_guide/modeling_faq/index.html +++ b/previews/PR1028/modeler_guide/modeling_faq/index.html @@ -1,2 +1,2 @@ -Modeling FAQ · PowerSimulations.jl

Modeling FAQ

How do I reduce the amount of print on my REPL?

The print to the REPL is controlled with the logging. Check the Logging documentation page to see how to reduce the print out

How do I print the optimizer logs to see the solution process?

When specifying the DecisionModel or EmulationModel pass the keyword print_optimizer_log = true

+Modeling FAQ · PowerSimulations.jl

Modeling FAQ

How do I reduce the amount of print on my REPL?

The print to the REPL is controlled with the logging. Check the Logging documentation page to see how to reduce the print out

How do I print the optimizer logs to see the solution process?

When specifying the DecisionModel or EmulationModel pass the keyword print_optimizer_log = true

diff --git a/previews/PR1028/modeler_guide/parallel_simulations/index.html b/previews/PR1028/modeler_guide/parallel_simulations/index.html index 7c3a80a0bd..f6d39bb6e9 100644 --- a/previews/PR1028/modeler_guide/parallel_simulations/index.html +++ b/previews/PR1028/modeler_guide/parallel_simulations/index.html @@ -102,4 +102,4 @@ project_path=".", # This optionally specifies the Julia project environment to load. ) Created Jade configuration in config.json. Run 'jade submit-jobs [options] config.json' to execute them.

Exit Julia.

  1. View the configuration for accuracy.
$ jade config show config.json
  1. Start an interactive session on a debug node. Do not submit the jobs on a login node! The submission step will run a full build of the simulation and that may consume too many CPU and memory resources for the login node.
$ salloc -t 01:00:00 -N1 --account=<your-account> --partition=debug
  1. Follow the instructions at https://nrel.github.io/jade/tutorial.html to submit the jobs. The example below will configure Jade to run each partition on its own compute node. Depending on the compute and memory constraints of your simulation, you may be able to pack more jobs on each node.

    Adjust the walltime as necessary.

$ jade config hpc -c hpc_config.toml -t slurm  --walltime=04:00:00 -a <your-account>
-$ jade submit-jobs config.json --per-node-batch-size=1 -o output

If you are unsure about how much memory and CPU resources your simulation consumes, add these options:

$ jade submit-jobs config.json --per-node-batch-size=1 -o output --resource-monitor-type periodic --resource-monitor-interval 3

Jade will create HTML plots of the resource utilization in output/stats. You may be able to customize --per-node-batch-size and --num-processes to finish the simulations more quickly.

  1. Jade will run a final command to join the simulation partitions into one unified file. You can load the results as you normally would.
julia> results = SimulationResults("<output-dir>/job-outputs/<simulation-name>")

Note the log files and results for each partition are located in <output-dir>/job-outputs/<simulation-name>/simulation_partitions

+$ jade submit-jobs config.json --per-node-batch-size=1 -o output

If you are unsure about how much memory and CPU resources your simulation consumes, add these options:

$ jade submit-jobs config.json --per-node-batch-size=1 -o output --resource-monitor-type periodic --resource-monitor-interval 3

Jade will create HTML plots of the resource utilization in output/stats. You may be able to customize --per-node-batch-size and --num-processes to finish the simulations more quickly.

  1. Jade will run a final command to join the simulation partitions into one unified file. You can load the results as you normally would.
julia> results = SimulationResults("<output-dir>/job-outputs/<simulation-name>")

Note the log files and results for each partition are located in <output-dir>/job-outputs/<simulation-name>/simulation_partitions

diff --git a/previews/PR1028/modeler_guide/problem_templates/index.html b/previews/PR1028/modeler_guide/problem_templates/index.html index 2e8eb6c29a..08de4cc4ba 100644 --- a/previews/PR1028/modeler_guide/problem_templates/index.html +++ b/previews/PR1028/modeler_guide/problem_templates/index.html @@ -8,13 +8,13 @@ # 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` settingssource
using PowerSimulations #hide
+- `services::Vector{ServiceModel}` : override default `ServiceModel` settings
source
using PowerSimulations #hide
 template_economic_dispatch()
PowerSimulations.template_unit_commitmentFunction
template_unit_commitment(; kwargs...)
 
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
source
using PowerSimulations #hide
+- `services::Vector{ServiceModel}` : override default `ServiceModel` settings
source
using PowerSimulations #hide
 template_unit_commitment()
PowerSimulations.template_agc_reserve_deploymentFunction
template_agc_reserve_deployment(; kwargs...)
-
template_agc_reserve_deployment(; kwargs...)

Creates a ProblemTemplate with default DeviceModels for an AGC Reserve Deployment Problem. This model doesn't support customization

Example

template = agcreservedeployment()

source
using PowerSimulations #hide
-template_agc_reserve_deployment()
+
template_agc_reserve_deployment(; kwargs...)

Creates a ProblemTemplate with default DeviceModels for an AGC Reserve Deployment Problem. This model doesn't support customization

Example

template = agcreservedeployment()

source
using PowerSimulations #hide
+template_agc_reserve_deployment()
diff --git a/previews/PR1028/modeler_guide/psi_structure/index.html b/previews/PR1028/modeler_guide/psi_structure/index.html index 51b1a1a971..0486ed34ea 100644 --- a/previews/PR1028/modeler_guide/psi_structure/index.html +++ b/previews/PR1028/modeler_guide/psi_structure/index.html @@ -1,2 +1,2 @@ -PowerSimulations.jl Modeling Structure · PowerSimulations.jl

PowerSimulations.jl Modeling Structure

PowerSimulations enables the simulation of a sequence of power systems optimization problems and provides user control over each aspect of the simulation configuration. Specifically:

What is the difference between a Model and a Problem?

A "Problem" is an abstract mathematical description of how to represent power system behavior, whereas a "Model" is a concrete representation of a "Problem" applied to a dataset. I.e. once a Problem is populated with data describing all the loads, generators, lines, etc., it becomes a Model.

+PowerSimulations.jl Modeling Structure · PowerSimulations.jl

PowerSimulations.jl Modeling Structure

PowerSimulations enables the simulation of a sequence of power systems optimization problems and provides user control over each aspect of the simulation configuration. Specifically:

What is the difference between a Model and a Problem?

A "Problem" is an abstract mathematical description of how to represent power system behavior, whereas a "Model" is a concrete representation of a "Problem" applied to a dataset. I.e. once a Problem is populated with data describing all the loads, generators, lines, etc., it becomes a Model.

diff --git a/previews/PR1028/modeler_guide/running_a_simulation/index.html b/previews/PR1028/modeler_guide/running_a_simulation/index.html index fee504392c..8e73e45992 100644 --- a/previews/PR1028/modeler_guide/running_a_simulation/index.html +++ b/previews/PR1028/modeler_guide/running_a_simulation/index.html @@ -1,2 +1,2 @@ -Simulation · PowerSimulations.jl

Simulation

Always try to solve the operations problem first before putting together the simulation

It is not uncommon that when trying to solve a complex simulation the resulting models are infeasible. This situation can be the result of many factors like the input data, the incorrect specification of the initial conditions for models with time dependencies or a poorly specified model. Therefore, it's highly recommended to run and analyze an Operations Problems that reflect the problems that will be included in a simulation prior to executing a simulation.

Check out the Operations Problem Tutorial

Feedforward

TODO

Sequencing

In a typical simulation pipeline, we want to connect daily (24-hours) day-ahead unit commitment problems, with multiple economic dispatch problems. Usually, our day-ahead unit commitment problem will have an hourly (1-hour) resolution, while the economic dispatch will have a 5-minute resolution.

Depending on your problem, it is common to use a 2-day look-ahead for unit commitment problems, so in this case, the Day-Ahead problem will have: resolution = Hour(1) with interval = Hour(24) and horizon = 48. In the case of the economic dispatch problem, it is common to use a look-ahead of two hours. Thus, the Real-Time problem will have: resolution = Minute(5), with interval = Minute(5) (we only store the first operating point) and horizon = 24 (24 time steps of 5 minutes are 120 minutes, that is 2 hours).

+Simulation · PowerSimulations.jl

Simulation

Always try to solve the operations problem first before putting together the simulation

It is not uncommon that when trying to solve a complex simulation the resulting models are infeasible. This situation can be the result of many factors like the input data, the incorrect specification of the initial conditions for models with time dependencies or a poorly specified model. Therefore, it's highly recommended to run and analyze an Operations Problems that reflect the problems that will be included in a simulation prior to executing a simulation.

Check out the Operations Problem Tutorial

Feedforward

TODO

Sequencing

In a typical simulation pipeline, we want to connect daily (24-hours) day-ahead unit commitment problems, with multiple economic dispatch problems. Usually, our day-ahead unit commitment problem will have an hourly (1-hour) resolution, while the economic dispatch will have a 5-minute resolution.

Depending on your problem, it is common to use a 2-day look-ahead for unit commitment problems, so in this case, the Day-Ahead problem will have: resolution = Hour(1) with interval = Hour(24) and horizon = 48. In the case of the economic dispatch problem, it is common to use a look-ahead of two hours. Thus, the Real-Time problem will have: resolution = Minute(5), with interval = Minute(5) (we only store the first operating point) and horizon = 24 (24 time steps of 5 minutes are 120 minutes, that is 2 hours).

diff --git a/previews/PR1028/modeler_guide/simulation_recorder/index.html b/previews/PR1028/modeler_guide/simulation_recorder/index.html index f77872e3e5..e3af2e8a71 100644 --- a/previews/PR1028/modeler_guide/simulation_recorder/index.html +++ b/previews/PR1028/modeler_guide/simulation_recorder/index.html @@ -40,4 +40,4 @@ │ ProblemExecutionEvent │ 2024-01-01T20:00:00 │ 1 │ 2 │ start │ │ ProblemExecutionEvent │ 2024-01-01T21:00:00 │ 1 │ 2 │ start │ │ ProblemExecutionEvent │ 2024-01-01T22:00:00 │ 1 │ 2 │ start │ -└──────────────────────┴─────────────────────┴──────┴───────┴────────┘ +└──────────────────────┴─────────────────────┴──────┴───────┴────────┘ diff --git a/previews/PR1028/modeler_guide/tips_and_tricks/index.html b/previews/PR1028/modeler_guide/tips_and_tricks/index.html index 4f5d280fc6..6221abf724 100644 --- a/previews/PR1028/modeler_guide/tips_and_tricks/index.html +++ b/previews/PR1028/modeler_guide/tips_and_tricks/index.html @@ -1,2 +1,2 @@ -Tips and tricks · PowerSimulations.jl
+Tips and tricks · PowerSimulations.jl
diff --git a/previews/PR1028/quick_start_guide/index.html b/previews/PR1028/quick_start_guide/index.html index f1730cfe74..7e6362e8dd 100644 --- a/previews/PR1028/quick_start_guide/index.html +++ b/previews/PR1028/quick_start_guide/index.html @@ -1,2 +1,2 @@ -Quick Start Guide · PowerSimulations.jl

Quick Start Guide

Tip

If you need to develop a dataset for a simulation check the PowerSystems.jl Tutorials on how to parse data and attach time series

  • Tutorial: If you are eager to run your first simulation visit the Solve a Day Ahead Market Scheduling Problem using PowerSimulations.jl tutorial
+Quick Start Guide · PowerSimulations.jl

Quick Start Guide

Tip

If you need to develop a dataset for a simulation check the PowerSystems.jl Tutorials on how to parse data and attach time series

  • Tutorial: If you are eager to run your first simulation visit the Solve a Day Ahead Market Scheduling Problem using PowerSimulations.jl tutorial
diff --git a/previews/PR1028/search/index.html b/previews/PR1028/search/index.html index 851cb95a1f..049033e715 100644 --- a/previews/PR1028/search/index.html +++ b/previews/PR1028/search/index.html @@ -1,2 +1,2 @@ -Search · PowerSimulations.jl

Loading search...

    +Search · PowerSimulations.jl

    Loading search...

      diff --git a/previews/PR1028/tutorials/adding_new_device_formulation/index.html b/previews/PR1028/tutorials/adding_new_device_formulation/index.html index b2a4082c01..6150c017d9 100644 --- a/previews/PR1028/tutorials/adding_new_device_formulation/index.html +++ b/previews/PR1028/tutorials/adding_new_device_formulation/index.html @@ -1,2 +1,2 @@ -Adding Device Formulations · PowerSimulations.jl
      +Adding Device Formulations · PowerSimulations.jl
      diff --git a/previews/PR1028/tutorials/adding_new_problem_model/index.html b/previews/PR1028/tutorials/adding_new_problem_model/index.html index 3bcb2565fe..73b82eb632 100644 --- a/previews/PR1028/tutorials/adding_new_problem_model/index.html +++ b/previews/PR1028/tutorials/adding_new_problem_model/index.html @@ -73,4 +73,4 @@ end return - end + end diff --git a/previews/PR1028/tutorials/basics_of_developing_models/index.html b/previews/PR1028/tutorials/basics_of_developing_models/index.html index dd29f01194..4fff114e1f 100644 --- a/previews/PR1028/tutorials/basics_of_developing_models/index.html +++ b/previews/PR1028/tutorials/basics_of_developing_models/index.html @@ -1,2 +1,2 @@ -Basics of Developing Operation Models · PowerSimulations.jl
      +Basics of Developing Operation Models · PowerSimulations.jl
      diff --git a/previews/PR1028/tutorials/decision_problem/index.html b/previews/PR1028/tutorials/decision_problem/index.html index 2e08536d1f..8f84a6585e 100644 --- a/previews/PR1028/tutorials/decision_problem/index.html +++ b/previews/PR1028/tutorials/decision_problem/index.html @@ -129,13 +129,13 @@ VariableReserve - 4 + 1 true true VariableReserve - 1 + 4 true true @@ -264,10 +264,10 @@

      PowerSimulations Problem Parameters Results - ActivePowerTimeSeriesParameter__RenewableDispatch + ActivePowerTimeSeriesParameter__PowerLoad - ActivePowerTimeSeriesParameter__PowerLoad + ActivePowerTimeSeriesParameter__RenewableDispatch @@ -276,26 +276,26 @@

      PowerSimulations Problem Variables Results - OnVariable__ThermalStandard + StopVariable__ThermalStandard - StartVariable__ThermalStandard + ActivePowerVariable__ThermalStandard - ActivePowerVariable__ThermalStandard + ActivePowerVariable__RenewableDispatch - StopVariable__ThermalStandard + StartVariable__ThermalStandard - ActivePowerVariable__RenewableDispatch + OnVariable__ThermalStandard -

      Optimizer Stats

      The optimizer summary is included

      get_optimizer_stats(res)
      1×20 DataFrame
      Rowdetailed_statsobjective_valuetermination_statusprimal_statusdual_statussolver_solve_timeresult_counthas_valueshas_dualsobjective_bounddual_objective_valuesolve_timebarrier_iterationssimplex_iterationsnode_counttimed_solve_timetimed_calculate_aux_variablestimed_calculate_dual_variablessolve_bytes_allocsec_in_gc
      BoolFloat64Int64Int64Int64Float64Int64BoolBoolMissingMissingFloat64MissingMissingMissingFloat64Float64Float64Float64Float64
      1false2.32086e6110NaN1falsefalsemissingmissing0.496896missingmissingmissing0.5762830.3588630.0006110342.11212e70.0252257

      Objective Function Value

      get_objective_value(res)
      2.3208566434852895e6

      Variable, Parameter, Auxillary Variable, Dual, and Expression Values

      The solution value data frames for variables, parameters, auxillary variables, duals and expressions can be accessed using the read_ methods:

      read_variables(res)
      Dict{String, DataFrames.DataFrame} with 5 entries:
      +

      Optimizer Stats

      The optimizer summary is included

      get_optimizer_stats(res)
      1×20 DataFrame
      Rowdetailed_statsobjective_valuetermination_statusprimal_statusdual_statussolver_solve_timeresult_counthas_valueshas_dualsobjective_bounddual_objective_valuesolve_timebarrier_iterationssimplex_iterationsnode_counttimed_solve_timetimed_calculate_aux_variablestimed_calculate_dual_variablessolve_bytes_allocsec_in_gc
      BoolFloat64Int64Int64Int64Float64Int64BoolBoolMissingMissingFloat64MissingMissingMissingFloat64Float64Float64Float64Float64
      1false2.32086e6110NaN1falsefalsemissingmissing0.491124missingmissingmissing0.5773230.3238430.0003966862.11212e70.0255798

      Objective Function Value

      get_objective_value(res)
      2.3208566434852895e6

      Variable, Parameter, Auxillary Variable, Dual, and Expression Values

      The solution value data frames for variables, parameters, auxillary variables, duals and expressions can be accessed using the read_ methods:

      read_variables(res)
      Dict{String, DataFrames.DataFrame} with 5 entries:
         "StartVariable__ThermalS… => 24×55 DataFrame…
         "ActivePowerVariable__Th… => 24×55 DataFrame…
         "StopVariable__ThermalSt… => 24×55 DataFrame…
         "ActivePowerVariable__Re… => 24×30 DataFrame…
         "OnVariable__ThermalStan… => 24×55 DataFrame…

      Or, you can read a single parameter values for parameters that exist in the results.

      list_parameter_names(res)
      -read_parameter(res, "ActivePowerTimeSeriesParameter__RenewableDispatch")
      24×30 DataFrame
      RowDateTime122_WIND_1324_PV_3312_PV_1102_PV_1101_PV_1324_PV_2313_PV_2104_PV_1101_PV_2309_WIND_1310_PV_2113_PV_1317_WIND_1314_PV_1324_PV_1103_PV_1303_WIND_1314_PV_2102_PV_2314_PV_3320_PV_1101_PV_3319_PV_1314_PV_4310_PV_1215_PV_1313_PV_1101_PV_4119_PV_1
      DateTimeFloat64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64
      12020-01-01T00:00:00713.20.00.00.00.00.00.00.00.0142.80.00.0795.10.00.00.0480.80.00.00.00.00.00.00.00.00.00.00.00.0
      22020-01-01T01:00:00712.80.00.00.00.00.00.00.00.0139.10.00.0794.40.00.00.0634.90.00.00.00.00.00.00.00.00.00.00.00.0
      32020-01-01T02:00:00708.40.00.00.00.00.00.00.00.0145.30.00.0773.60.00.00.0487.30.00.00.00.00.00.00.00.00.00.00.00.0
      42020-01-01T03:00:00710.70.00.00.00.00.00.00.00.0144.80.00.0767.30.00.00.0432.70.00.00.00.00.00.00.00.00.00.00.00.0
      52020-01-01T04:00:00701.40.00.00.00.00.00.00.00.0137.10.00.0752.20.00.00.0407.90.00.00.00.00.00.00.00.00.00.00.00.0
      62020-01-01T05:00:00682.50.00.00.00.00.00.00.00.098.60.00.0719.40.00.00.0440.20.00.00.00.00.00.00.00.00.00.00.00.0
      72020-01-01T06:00:00614.70.00.00.00.00.00.00.00.062.20.00.0655.30.00.00.0377.30.00.00.00.00.00.00.00.00.00.00.00.0
      82020-01-01T07:00:00517.736.452.230.629.636.462.229.830.447.338.299.4594.647.444.829.8199.346.630.063.847.830.6179.246.438.2127.662.228.827.2
      92020-01-01T08:00:00426.663.497.436.834.863.496.035.037.048.961.4126.2579.161.265.258.4110.667.036.4100.061.437.4248.067.061.4164.695.635.456.6
      102020-01-01T09:00:00274.271.2118.038.036.471.4117.636.638.230.766.8133.2466.869.068.076.63.669.837.6121.869.838.8273.469.866.8172.2116.835.874.8
      112020-01-01T10:00:0093.072.2132.037.836.472.2130.836.638.027.470.2134.2301.470.270.289.82.472.237.4129.070.438.6277.872.270.4173.2128.437.488.2
      122020-01-01T11:00:006.370.6135.237.035.070.6134.235.437.260.969.8135.2110.767.070.298.056.272.436.6128.667.237.6263.272.469.6170.0133.238.691.6
      132020-01-01T12:00:003.867.4131.036.235.467.4129.635.636.420.467.8133.078.967.268.294.091.570.235.8128.267.437.0267.470.267.6169.0128.837.890.6
      142020-01-01T13:00:001.165.2125.435.235.065.2123.635.435.41.667.2126.6107.967.065.881.4103.067.634.8119.667.035.8258.867.667.0161.8122.835.879.2
      152020-01-01T14:00:000.060.2109.631.031.060.4108.031.431.20.063.2110.222.359.462.659.439.764.230.8107.059.431.6227.864.262.8143.2106.831.459.0
      162020-01-01T15:00:000.042.069.020.219.242.065.620.620.22.645.062.824.642.444.825.487.746.220.065.843.420.6151.646.243.882.262.820.427.8
      172020-01-01T16:00:000.90.00.00.00.00.00.00.00.037.90.00.010.80.00.00.092.30.00.00.00.00.00.00.00.00.00.00.00.0
      182020-01-01T17:00:00276.30.00.00.00.00.00.00.00.046.90.00.0243.20.00.00.089.40.00.00.00.00.00.00.00.00.00.00.00.0
      192020-01-01T18:00:00272.90.00.00.00.00.00.00.00.024.00.00.0375.20.00.00.090.40.00.00.00.00.00.00.00.00.00.00.00.0
      202020-01-01T19:00:00345.60.00.00.00.00.00.00.00.024.00.00.0568.40.00.00.081.10.00.00.00.00.00.00.00.00.00.00.00.0
      212020-01-01T20:00:00411.70.00.00.00.00.00.00.00.027.40.00.0636.10.00.00.0172.90.00.00.00.00.00.00.00.00.00.00.00.0
      222020-01-01T21:00:00376.60.00.00.00.00.00.00.00.06.50.00.0719.20.00.00.0326.90.00.00.00.00.00.00.00.00.00.00.00.0
      232020-01-01T22:00:00561.30.00.00.00.00.00.00.00.01.30.00.0734.90.00.00.0256.70.00.00.00.00.00.00.00.00.00.00.00.0
      242020-01-01T23:00:00568.40.00.00.00.00.00.00.00.00.10.00.0729.10.00.00.0141.10.00.00.00.00.00.00.00.00.00.00.00.0

      Plotting

      Take a look at the plotting capabilities in PowerGraphics.jl

      +read_parameter(res, "ActivePowerTimeSeriesParameter__RenewableDispatch")
      24×30 DataFrame
      RowDateTime122_WIND_1324_PV_3312_PV_1102_PV_1101_PV_1324_PV_2313_PV_2104_PV_1101_PV_2309_WIND_1310_PV_2113_PV_1317_WIND_1314_PV_1324_PV_1103_PV_1303_WIND_1314_PV_2102_PV_2314_PV_3320_PV_1101_PV_3319_PV_1314_PV_4310_PV_1215_PV_1313_PV_1101_PV_4119_PV_1
      DateTimeFloat64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64
      12020-01-01T00:00:00713.20.00.00.00.00.00.00.00.0142.80.00.0795.10.00.00.0480.80.00.00.00.00.00.00.00.00.00.00.00.0
      22020-01-01T01:00:00712.80.00.00.00.00.00.00.00.0139.10.00.0794.40.00.00.0634.90.00.00.00.00.00.00.00.00.00.00.00.0
      32020-01-01T02:00:00708.40.00.00.00.00.00.00.00.0145.30.00.0773.60.00.00.0487.30.00.00.00.00.00.00.00.00.00.00.00.0
      42020-01-01T03:00:00710.70.00.00.00.00.00.00.00.0144.80.00.0767.30.00.00.0432.70.00.00.00.00.00.00.00.00.00.00.00.0
      52020-01-01T04:00:00701.40.00.00.00.00.00.00.00.0137.10.00.0752.20.00.00.0407.90.00.00.00.00.00.00.00.00.00.00.00.0
      62020-01-01T05:00:00682.50.00.00.00.00.00.00.00.098.60.00.0719.40.00.00.0440.20.00.00.00.00.00.00.00.00.00.00.00.0
      72020-01-01T06:00:00614.70.00.00.00.00.00.00.00.062.20.00.0655.30.00.00.0377.30.00.00.00.00.00.00.00.00.00.00.00.0
      82020-01-01T07:00:00517.736.452.230.629.636.462.229.830.447.338.299.4594.647.444.829.8199.346.630.063.847.830.6179.246.438.2127.662.228.827.2
      92020-01-01T08:00:00426.663.497.436.834.863.496.035.037.048.961.4126.2579.161.265.258.4110.667.036.4100.061.437.4248.067.061.4164.695.635.456.6
      102020-01-01T09:00:00274.271.2118.038.036.471.4117.636.638.230.766.8133.2466.869.068.076.63.669.837.6121.869.838.8273.469.866.8172.2116.835.874.8
      112020-01-01T10:00:0093.072.2132.037.836.472.2130.836.638.027.470.2134.2301.470.270.289.82.472.237.4129.070.438.6277.872.270.4173.2128.437.488.2
      122020-01-01T11:00:006.370.6135.237.035.070.6134.235.437.260.969.8135.2110.767.070.298.056.272.436.6128.667.237.6263.272.469.6170.0133.238.691.6
      132020-01-01T12:00:003.867.4131.036.235.467.4129.635.636.420.467.8133.078.967.268.294.091.570.235.8128.267.437.0267.470.267.6169.0128.837.890.6
      142020-01-01T13:00:001.165.2125.435.235.065.2123.635.435.41.667.2126.6107.967.065.881.4103.067.634.8119.667.035.8258.867.667.0161.8122.835.879.2
      152020-01-01T14:00:000.060.2109.631.031.060.4108.031.431.20.063.2110.222.359.462.659.439.764.230.8107.059.431.6227.864.262.8143.2106.831.459.0
      162020-01-01T15:00:000.042.069.020.219.242.065.620.620.22.645.062.824.642.444.825.487.746.220.065.843.420.6151.646.243.882.262.820.427.8
      172020-01-01T16:00:000.90.00.00.00.00.00.00.00.037.90.00.010.80.00.00.092.30.00.00.00.00.00.00.00.00.00.00.00.0
      182020-01-01T17:00:00276.30.00.00.00.00.00.00.00.046.90.00.0243.20.00.00.089.40.00.00.00.00.00.00.00.00.00.00.00.0
      192020-01-01T18:00:00272.90.00.00.00.00.00.00.00.024.00.00.0375.20.00.00.090.40.00.00.00.00.00.00.00.00.00.00.00.0
      202020-01-01T19:00:00345.60.00.00.00.00.00.00.00.024.00.00.0568.40.00.00.081.10.00.00.00.00.00.00.00.00.00.00.00.0
      212020-01-01T20:00:00411.70.00.00.00.00.00.00.00.027.40.00.0636.10.00.00.0172.90.00.00.00.00.00.00.00.00.00.00.00.0
      222020-01-01T21:00:00376.60.00.00.00.00.00.00.00.06.50.00.0719.20.00.00.0326.90.00.00.00.00.00.00.00.00.00.00.00.0
      232020-01-01T22:00:00561.30.00.00.00.00.00.00.00.01.30.00.0734.90.00.00.0256.70.00.00.00.00.00.00.00.00.00.00.00.0
      242020-01-01T23:00:00568.40.00.00.00.00.00.00.00.00.10.00.0729.10.00.00.0141.10.00.00.00.00.00.00.00.00.00.00.00.0

      Plotting

      Take a look at the plotting capabilities in PowerGraphics.jl

      diff --git a/previews/PR1028/tutorials/pcm_simulation/index.html b/previews/PR1028/tutorials/pcm_simulation/index.html index 02bbb2567b..df1c0ee0e5 100644 --- a/previews/PR1028/tutorials/pcm_simulation/index.html +++ b/previews/PR1028/tutorials/pcm_simulation/index.html @@ -131,13 +131,13 @@ VariableReserve - 4 + 1 true true VariableReserve - 1 + 4 true true @@ -318,13 +318,13 @@

      5-Mi VariableReserve - 4 + 1 true true VariableReserve - 1 + 4 true true @@ -421,4 +421,4 @@

      read_realized_variables( uc_results, ["ActivePowerVariable__ThermalStandard", "ActivePowerVariable__RenewableDispatch"], -)

      Plotting

      Take a look at the plotting capabilities in PowerGraphics.jl

      +)

      Plotting

      Take a look at the plotting capabilities in PowerGraphics.jl