PowerSimulations.jl icon indicating copy to clipboard operation
PowerSimulations.jl copied to clipboard

`generate_service_formulation_combinations` doesn't catch all combinations

Open claytonpbarrows opened this issue 1 year ago • 1 comments

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)

claytonpbarrows avatar Sep 22 '22 03:09 claytonpbarrows

Above you can see that ServiceModel(VariableReserve{ReserveUp}, RangeReserve) is a valid ServiceModel, but isn't being reported by generate_service_formulation_combinations

claytonpbarrows avatar Sep 22 '22 03:09 claytonpbarrows