Skip to content

Commit

Permalink
Psy4 (#59)
Browse files Browse the repository at this point in the history
* Update SIIP to Sienna

* Fix typo

* Minimal changes to make PowerSystems tests pass

* Remove all VariableCost references from code

* Convert systems to 4.0.0, replace validation descriptors

 - Load and re-serialize systems, relying on PowerSystems' automatic
   conversion to bring them up to date
 - Replace each validation descriptors file with a fresh up-to-date
   version created by serializing a system from scratch

* Necessary cost changes to make PSB tests pass

* Accommodate FunctionData move to InfrastructureSystems

* Use new operational cost structs

* Remove more old costs

* Convert systems again to use updated costs
 - Load and re-serialize systems again, relying on PowerSystems'
   automatic conversion to bring them up to date
 - Replace each validation descriptors file with a fresh up-to-date
   version created from `System(100.).data.validation_descriptors`

* Make final cost adjustments to make tests pass

* Update type of bid cost

* Use cost aliases

* Revert PSY cost structs in time series

* Revert PSY cost structs in time series: hybrid cost

* add file with generation cost data

* add cost data with time series

* amend data

* add market bid cases

* fix typo for fuel incremental

* update storage

* typo average to incremental

* update battery specification

* update storage and renfix names

* update rate to rating in lines for jsons

* update ORDC cost to natural units

* remove time series for ordc

---------

Co-authored-by: GabrielKS <[email protected]>
Co-authored-by: Daniel Thom <[email protected]>
Co-authored-by: rodrigomha <[email protected]>
  • Loading branch information
4 people authored Jun 25, 2024
1 parent 0ae64e1 commit 608ee90
Show file tree
Hide file tree
Showing 20 changed files with 720 additions and 97 deletions.
4 changes: 2 additions & 2 deletions 5-Bus/generator_mapping.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ RenewableDispatch:
- {fuel: WIND, type: null}
- {fuel: SOLAR, type: CSP} # TODO: may need a new struct

RenewableFix:
RenewableNonDispatch:
- {fuel: SOLAR, type: RTPV}

ThermalStandard:
Expand All @@ -34,5 +34,5 @@ ThermalStandard:
- {fuel: SYNC_COND, type: SYNC_COND}
- {fuel: OTHER, type: OT}

GenericBattery:
EnergyReservoirStorage:
- {fuel: STORAGE, type: null}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# PowerSystemsTestData

This repository contains several data files in modeling packages in [SIIP](https://github.com/NREL-SIIP/).
This repository contains several data files in modeling packages in [Sienna](https://github.com/NREL-Sienna).

## File directory

Expand All @@ -14,5 +14,5 @@ This repository contains several data files in modeling packages in [SIIP](https
- psse_dyr: Data for PSSe dynamic models
- psse_dyr: Data for PSSe power flow datasets
- psy_data: Data directly typed in PowerSystems types.
- RTS_GMLC: Slighlty modified data from the original [RTS-GMLC dataset](https://github.com/gridmod/rts-gmlc)
- RTS_GMLC: Slightly modified data from the original [RTS-GMLC dataset](https://github.com/gridmod/rts-gmlc)
- SyntheticUSA: TAMU PowerFlow Dataset of the whole continental United States (no timeseries)
4 changes: 2 additions & 2 deletions RTS_GMLC/generator_mapping.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ RenewableDispatch:
- {fuel: WIND, type: null}
- {fuel: SOLAR, type: CSP} # TODO: may need a new struct

RenewableFix:
RenewableNonDispatch:
- {fuel: SOLAR, type: RTPV}

ThermalStandard:
Expand All @@ -30,5 +30,5 @@ ThermalStandard:
- {fuel: SYNC_COND, type: SYNC_COND}
- {fuel: OTHER, type: OT}

GenericBattery:
EnergyReservoirStorage:
- {fuel: STORAGE, type: null}
4 changes: 2 additions & 2 deletions RTS_GMLC/generator_mapping_multi_start.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ RenewableDispatch:
- {fuel: WIND, type: null}
- {fuel: SOLAR, type: CSP} # TODO: may need a new struct

RenewableFix:
RenewableNonDispatch:
- {fuel: SOLAR, type: RTPV}

ThermalMultiStart:
Expand All @@ -30,5 +30,5 @@ ThermalMultiStart:
- {fuel: SYNC_COND, type: SYNC_COND}
- {fuel: OTHER, type: OT}

GenericBattery:
EnergyReservoirStorage:
- {fuel: STORAGE, type: null}
2 changes: 1 addition & 1 deletion psid_tests/data_examples/omib_sys.json

Large diffs are not rendered by default.

10 changes: 5 additions & 5 deletions psid_tests/data_examples/omib_sys_metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
"frequency": 60,
"time_series_resolution_milliseconds": 0,
"component_counts": [
{
"type": "ACBus",
"count": 2
},
{
"type": "Arc",
"count": 1
Expand All @@ -13,11 +17,7 @@
"count": 1
},
{
"type": "Bus",
"count": 2
},
{
"type": "DynamicGenerator",
"type": "DynamicGenerator{BaseMachine, SingleMass, AVRFixed, TGFixed, PSSFixed}",
"count": 1
},
{
Expand Down

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion psid_tests/data_examples/threebus_sys.json

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions psid_tests/data_examples/threebus_sys_metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
"frequency": 60,
"time_series_resolution_milliseconds": 0,
"component_counts": [
{
"type": "ACBus",
"count": 3
},
{
"type": "Arc",
"count": 3
Expand All @@ -13,15 +17,11 @@
"count": 1
},
{
"type": "Bus",
"count": 3
},
{
"type": "DynamicGenerator",
"type": "DynamicGenerator{OneDOneQMachine, SingleMass, AVRTypeI, TGFixed, PSSFixed}",
"count": 1
},
{
"type": "DynamicInverter",
"type": "DynamicInverter{AverageConverter, OuterControl{VirtualInertia, ReactivePowerDroop}, VoltageModeControl, FixedDCSource, KauraPLL, LCLFilter, Nothing}",
"count": 1
},
{
Expand Down

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion psid_tests/data_tests/9BusSystem.json

Large diffs are not rendered by default.

46 changes: 46 additions & 0 deletions psid_tests/data_tests/9BusSystem_metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"name": "",
"description": "",
"frequency": 60,
"time_series_resolution_milliseconds": 0,
"component_counts": [
{
"type": "ACBus",
"count": 9
},
{
"type": "Arc",
"count": 9
},
{
"type": "Area",
"count": 1
},
{
"type": "DynamicGenerator{AndersonFouadMachine, SingleMass, AVRTypeII, TGTypeI, PSSFixed}",
"count": 3
},
{
"type": "Line",
"count": 6
},
{
"type": "LoadZone",
"count": 1
},
{
"type": "PowerLoad",
"count": 3
},
{
"type": "ThermalStandard",
"count": 3
},
{
"type": "Transformer2W",
"count": 3
}
],
"time_series_counts": [
]
}

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion psid_tests/data_tests/WECC_240_dynamic.json

Large diffs are not rendered by default.

30 changes: 25 additions & 5 deletions psid_tests/data_tests/WECC_240_dynamic_metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
"frequency": 60,
"time_series_resolution_milliseconds": 0,
"component_counts": [
{
"type": "ACBus",
"count": 243
},
{
"type": "Arc",
"count": 351
Expand All @@ -13,15 +17,31 @@
"count": 4
},
{
"type": "Bus",
"count": 243
"type": "DynamicGenerator{RoundRotorQuadratic, SingleMass, SEXS, GasTG, IEEEST}",
"count": 6
},
{
"type": "DynamicGenerator",
"count": 6
"type": "DynamicGenerator{RoundRotorQuadratic, SingleMass, SEXS, GasTG, PSSFixed}",
"count": 41
},
{
"type": "DynamicGenerator{RoundRotorQuadratic, SingleMass, SEXS, HydroTurbineGov, IEEEST}",
"count": 3
},
{
"type": "DynamicGenerator{RoundRotorQuadratic, SingleMass, SEXS, HydroTurbineGov, PSSFixed}",
"count": 22
},
{
"type": "DynamicGenerator{RoundRotorQuadratic, SingleMass, SEXS, SteamTurbineGov1, IEEEST}",
"count": 1
},
{
"type": "DynamicGenerator{RoundRotorQuadratic, SingleMass, SEXS, SteamTurbineGov1, PSSFixed}",
"count": 36
},
{
"type": "DynamicInverter",
"type": "DynamicInverter{RenewableEnergyConverterTypeA, OuterControl{ActiveRenewableControllerAB, ReactiveRenewableControllerAB}, RECurrentControlB, FixedDCSource, FixedFrequency, RLFilter, Nothing}",
"count": 37
},
{
Expand Down

Large diffs are not rendered by default.

70 changes: 60 additions & 10 deletions psy_data/data_10bus_ac_dc_pu.jl
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,12 @@ thermal_generators10(nodes10) = [
reactive_power_limits = (min = -0.30, max = 0.30),
ramp_limits = nothing,
time_limits = nothing,
operation_cost = ThreePartCost((0.0, 14.0), 0.0, 4.0, 2.0),
operation_cost = ThermalGenerationCost(
CostCurve(QuadraticCurve(0.0, 14.0, 0.0)),
0.0,
4.0,
2.0,
),
base_power = 100.0,
),
ThermalStandard(
Expand All @@ -243,7 +248,12 @@ thermal_generators10(nodes10) = [
reactive_power_limits = (min = -1.275, max = 1.275),
ramp_limits = (up = 0.02 * 2.2125, down = 0.02 * 2.2125),
time_limits = (up = 2.0, down = 1.0),
operation_cost = ThreePartCost((0.0, 15.0), 0.0, 1.5, 0.75),
operation_cost = ThermalGenerationCost(
CostCurve(QuadraticCurve(0.0, 15.0, 0.0)),
0.0,
1.5,
0.75,
),
base_power = 100.0,
),
ThermalStandard(
Expand All @@ -260,7 +270,12 @@ thermal_generators10(nodes10) = [
reactive_power_limits = (min = -3.90, max = 3.90),
ramp_limits = (up = 0.012 * 5.2, down = 0.012 * 5.2),
time_limits = (up = 3.0, down = 2.0),
operation_cost = ThreePartCost((0.0, 30.0), 0.0, 3.0, 1.5),
operation_cost = ThermalGenerationCost(
CostCurve(QuadraticCurve(0.0, 30.0, 0.0)),
0.0,
3.0,
1.5,
),
base_power = 100.0,
),
ThermalStandard(
Expand All @@ -277,7 +292,12 @@ thermal_generators10(nodes10) = [
reactive_power_limits = (min = -1.5, max = 1.5),
ramp_limits = (up = 0.015 * 2.5, down = 0.015 * 2.5),
time_limits = (up = 2.0, down = 1.0),
operation_cost = ThreePartCost((0.0, 40.0), 0.0, 4.0, 2.0),
operation_cost = ThermalGenerationCost(
CostCurve(QuadraticCurve(0.0, 40.0, 0.0)),
0.0,
4.0,
2.0,
),
base_power = 100.0,
),
ThermalStandard(
Expand All @@ -294,7 +314,12 @@ thermal_generators10(nodes10) = [
reactive_power_limits = (min = -4.50, max = 4.50),
ramp_limits = (up = 0.015 * 7.5, down = 0.015 * 7.5),
time_limits = (up = 5.0, down = 3.0),
operation_cost = ThreePartCost((0.0, 10.0), 0.0, 1.5, 0.75),
operation_cost = ThermalGenerationCost(
CostCurve(QuadraticCurve(0.0, 10.0, 0.0)),
0.0,
1.5,
0.75,
),
base_power = 100.0,
),
ThermalStandard(;
Expand All @@ -311,7 +336,12 @@ thermal_generators10(nodes10) = [
reactive_power_limits = (min = -0.30, max = 0.30),
ramp_limits = nothing,
time_limits = nothing,
operation_cost = ThreePartCost((0.0, 14.0), 0.0, 4.0, 2.0),
operation_cost = ThermalGenerationCost(
CostCurve(QuadraticCurve(0.0, 14.0, 0.0)),
0.0,
4.0,
2.0,
),
base_power = 100.0,
),
ThermalStandard(
Expand All @@ -328,7 +358,12 @@ thermal_generators10(nodes10) = [
reactive_power_limits = (min = -1.275, max = 1.275),
ramp_limits = (up = 0.02 * 2.2125, down = 0.02 * 2.2125),
time_limits = (up = 2.0, down = 1.0),
operation_cost = ThreePartCost((0.0, 15.0), 0.0, 1.5, 0.75),
operation_cost = ThermalGenerationCost(
CostCurve(QuadraticCurve(0.0, 15.0, 0.0)),
0.0,
1.5,
0.75,
),
base_power = 100.0,
),
ThermalStandard(
Expand All @@ -345,7 +380,12 @@ thermal_generators10(nodes10) = [
reactive_power_limits = (min = -3.90, max = 3.90),
ramp_limits = (up = 0.012 * 5.2, down = 0.012 * 5.2),
time_limits = (up = 3.0, down = 2.0),
operation_cost = ThreePartCost((0.0, 30.0), 0.0, 3.0, 1.5),
operation_cost = ThermalGenerationCost(
CostCurve(QuadraticCurve(0.0, 30.0, 0.0)),
0.0,
3.0,
1.5,
),
base_power = 100.0,
),
ThermalStandard(
Expand All @@ -362,7 +402,12 @@ thermal_generators10(nodes10) = [
reactive_power_limits = (min = -1.5, max = 1.5),
ramp_limits = (up = 0.015 * 2.5, down = 0.015 * 2.5),
time_limits = (up = 2.0, down = 1.0),
operation_cost = ThreePartCost((0.0, 40.0), 0.0, 4.0, 2.0),
operation_cost = ThermalGenerationCost(
CostCurve(QuadraticCurve(0.0, 40.0, 0.0)),
0.0,
4.0,
2.0,
),
base_power = 100.0,
),
ThermalStandard(
Expand All @@ -379,7 +424,12 @@ thermal_generators10(nodes10) = [
reactive_power_limits = (min = -4.50, max = 4.50),
ramp_limits = (up = 0.015 * 7.5, down = 0.015 * 7.5),
time_limits = (up = 5.0, down = 3.0),
operation_cost = ThreePartCost((0.0, 10.0), 0.0, 1.5, 0.75),
operation_cost = ThermalGenerationCost(
CostCurve(QuadraticCurve(0.0, 10.0, 0.0)),
0.0,
1.5,
0.75,
),
base_power = 100.0,
),
];
Expand Down
Loading

0 comments on commit 608ee90

Please sign in to comment.