StorageSystemsSimulations

Exported

Internal

PowerSimulations.add_constraints!Method
add_constraints!(
    container::PowerSimulations.OptimizationContainer,
    _::Type{PowerSimulations.EnergyBalanceConstraint},
    devices::InfrastructureSystems.FlattenIteratorWrapper{V<:Storage},
    model::PowerSimulations.DeviceModel{V<:Storage, StorageDispatchWithReserves},
    network_model::PowerSimulations.NetworkModel{X<:PowerModels.AbstractPowerModel}
)

Add Energy Balance Constraints for AbstractStorageFormulation

source
PowerSimulations.add_constraints!Method
add_constraints!(
    container::PowerSimulations.OptimizationContainer,
    _::Type{ReserveDischargeConstraint},
    devices::InfrastructureSystems.FlattenIteratorWrapper{V<:Storage},
    model::PowerSimulations.DeviceModel{V<:Storage, StorageDispatchWithReserves},
    network_model::PowerSimulations.NetworkModel{X<:PowerModels.AbstractPowerModel}
)

Add Energy Balance Constraints for AbstractStorageFormulation

source
PowerSimulations.add_feedforward_constraints!Method
add_feedforward_constraints!(
    container::PowerSimulations.OptimizationContainer,
    _::PowerSimulations.DeviceModel,
    devices::InfrastructureSystems.FlattenIteratorWrapper{T<:Component},
    ff::EnergyLimitFeedforward
)
    add_feedforward_constraints(container::OptimizationContainer,
                    cons_name::Symbol,
                    param_reference,
                    var_key::VariableKey)

Constructs a parameterized integral limit constraint to implement feedforward from other models. The Parameters are initialized using the upper boundary values of the provided variables.

sum(variable[var_name, t] for t in 1:affected_periods)/affected_periods <= param_reference[var_name]

LaTeX

$\sum_{t} x \leq param^{max}$

Arguments

  • container::OptimizationContainer : the optimization_container model built in PowerSimulations
  • model::DeviceModel : the device model
  • devices::IS.FlattenIteratorWrapper{T} : list of devices
  • ff::FixValueFeedforward : a instance of the FixValue Feedforward
source
PowerSimulations.add_feedforward_constraints!Method
add_feedforward_constraints!(
    container::PowerSimulations.OptimizationContainer,
    _::PowerSimulations.DeviceModel{T<:Storage, U<:StorageSystemsSimulations.AbstractStorageFormulation},
    devices::InfrastructureSystems.FlattenIteratorWrapper{T<:Storage},
    ff::EnergyTargetFeedforward
)
    add_feedforward_constraints(
        container::OptimizationContainer,
        ::DeviceModel,
        devices::IS.FlattenIteratorWrapper{T},
        ff::EnergyTargetFeedforward,
    ) where {T <: PSY.Component}

Constructs a equality constraint to a fix a variable in one model using the variable value from other model results.

variable[var_name, t] + slack[var_name, t] >= param[var_name, t]

LaTeX

$x + slack >= param$

Arguments

  • container::OptimizationContainer : the optimization_container model built in PowerSimulations
  • model::DeviceModel : the device model
  • devices::IS.FlattenIteratorWrapper{T} : list of devices
  • ff::EnergyTargetFeedforward : a instance of the EnergyTarget Feedforward
source
PowerSimulations.get_min_max_limitsMethod
get_min_max_limits(
    d::Storage,
    _::Type{StateofChargeLimitsConstraint},
    _::Type{<:StorageSystemsSimulations.AbstractStorageFormulation}
) -> NamedTuple{(:min, :max), <:Tuple{Any, Any}}

Min and max limits for Energy Capacity Constraint and AbstractStorageFormulation

source