PowerSimulations.jl
PowerSimulations.jl copied to clipboard
`generate_service_formulation_combinations` doesn't catch all combinations
julia> template_unit_commitment()
Network Model
┌───────────────┬───────────────────────┐
│ Network Model │ CopperPlatePowerModel │
│ Slacks │ false │
│ PTDF │ false │
│ Duals │ None │
└───────────────┴───────────────────────┘
Device Models
┌──────────────────────┬────────────────────────────┬────────┐
│ Device Type │ Formulation │ Slacks │
├──────────────────────┼────────────────────────────┼────────┤
│ ThermalStandard │ ThermalBasicUnitCommitment │ false │
│ HydroDispatch │ HydroDispatchRunOfRiver │ false │
│ PowerLoad │ StaticPowerLoad │ false │
│ RenewableFix │ FixedOutput │ false │
│ RenewableDispatch │ RenewableFullDispatch │ false │
│ HydroEnergyReservoir │ HydroDispatchRunOfRiver │ false │
│ InterruptibleLoad │ InterruptiblePowerLoad │ false │
└──────────────────────┴────────────────────────────┴────────┘
Branch Models
┌────────────────┬──────────────┬────────┐
│ Branch Type │ Formulation │ Slacks │
├────────────────┼──────────────┼────────┤
│ Line │ StaticBranch │ false │
│ TapTransformer │ StaticBranch │ false │
│ Transformer2W │ StaticBranch │ false │
│ HVDCLine │ HVDCDispatch │ false │
└────────────────┴──────────────┴────────┘
Service Models
┌──────────────────────────────┬──────────────┬────────┬──────────────────┐
│ Service Type │ Formulation │ Slacks │ Aggregated Model │
├──────────────────────────────┼──────────────┼────────┼──────────────────┤
│ VariableReserve{ReserveUp} │ RangeReserve │ false │ true │
│ VariableReserve{ReserveDown} │ RangeReserve │ false │ true │
└──────────────────────────────┴──────────────┴────────┴──────────────────┘
julia> PowerSimulations.generate_service_formulation_combinations()
3-element Vector{Any}:
Dict{String, Any}("service_type" => AGC, "formulation" => PIDSmoothACE)
Dict{String, Any}("service_type" => StaticReserveNonSpinning, "formulation" => NonSpinningReserve)
Dict{String, Any}("service_type" => VariableReserveNonSpinning, "formulation" => NonSpinningReserve)
Above you can see that ServiceModel(VariableReserve{ReserveUp}, RangeReserve)
is a valid ServiceModel, but isn't being reported by generate_service_formulation_combinations