StorageSystemsSimulations
Exported
StorageSystemsSimulations.EnergyLimitFeedforward
— TypeAdds a constraint to limit the sum of a variable over the number of periods to the source value
StorageSystemsSimulations.EnergyTargetFeedforward
— TypeAdds a constraint to enforce a minimum energy level target with a slack variable associated witha penalty term.
StorageSystemsSimulations.StorageChargeCyclingSlackVariable
— TypeSlack variable for the cycling limits to allow for more charging usage than the allowed limited
Docs nomenclature: $c^{ch-}$
StorageSystemsSimulations.StorageDischargeCyclingSlackVariable
— TypeSlack variable for the cycling limits to allow for more discharging usage than the allowed limited
Docs nomenclature: $c^{ds-}$
StorageSystemsSimulations.StorageEnergyOutput
— TypeAuxiliary Variable for Storage Models that solve for total energy output
StorageSystemsSimulations.StorageEnergyShortageVariable
— TypeSlack variable for energy storage levels < target storage levels
Docs abbreviation: $e^{st-}$
StorageSystemsSimulations.StorageEnergySurplusVariable
— TypeSlack variable for energy storage levels > target storage levels
Docs abbreviation: $e^{st+}$
StorageSystemsSimulations.StorageRegularizationVariableCharge
— TypeSlack variable for energy storage levels > target storage levels
Docs nomenclature: ``z^{st, ch}``
StorageSystemsSimulations.StorageRegularizationVariableDischarge
— TypeSlack variable for energy storage levels > target storage levels
Docs abbreviation: $z^{st, ds}$
Internal
StorageSystemsSimulations.EnergyLimitParameter
— TypeParameter to define energy limit
PowerSimulations.add_constraints!
— Methodadd_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
PowerSimulations.add_constraints!
— Methodadd_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
PowerSimulations.add_feedforward_constraints!
— Methodadd_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
PowerSimulations.add_feedforward_constraints!
— Methodadd_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
PowerSimulations.get_min_max_limits
— Methodget_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