From fe915d12a81afc56d1b78c2b0dae2fd106491e95 Mon Sep 17 00:00:00 2001 From: gabrieljlsantos <20538434+gabrieljlsantos@users.noreply.github.com> Date: Fri, 5 Nov 2021 11:50:45 +0000 Subject: [PATCH] MASCEM Demo added MASCEM Demo repository added --- .spinetoolbox/.gitignore | 12 - .spinetoolbox/items/input_mibel/input.json | 799 +++ .spinetoolbox/items/input_pfs/inputPFS.json | 115 + .../items/players_buses/playersBuses.json | 28 + .../2021-07-07T14.27.19/outputMarket.json | 1159 +++++ .../2021-07-07T14.27.31/outputPowerFlow.json | 4549 +++++++++++++++++ .spinetoolbox/project.json | 104 +- .../specifications/Tool/run_ems.json | 25 + .spinetoolbox/specifications/Tool/runpfs.json | 29 + README.md | 36 +- data/INFO.md | 3 - run-ems/resources/generalSchema.json | 31 + run-ems/runMarket.py | 63 + run-pfs/resources/loadsSchema.json | 556 ++ run-pfs/resources/pbus_schema.json | 42 + run-pfs/resources/pfs_schema.json | 3170 ++++++++++++ run-pfs/runpfs.py | 109 + scripts/INFO.md | 1 - 18 files changed, 10781 insertions(+), 50 deletions(-) delete mode 100644 .spinetoolbox/.gitignore create mode 100644 .spinetoolbox/items/input_mibel/input.json create mode 100644 .spinetoolbox/items/input_pfs/inputPFS.json create mode 100644 .spinetoolbox/items/players_buses/playersBuses.json create mode 100644 .spinetoolbox/items/run_ems/output/2021-07-07T14.27.19/outputMarket.json create mode 100644 .spinetoolbox/items/run_pfs/output/2021-07-07T14.27.31/outputPowerFlow.json create mode 100644 .spinetoolbox/specifications/Tool/run_ems.json create mode 100644 .spinetoolbox/specifications/Tool/runpfs.json delete mode 100644 data/INFO.md create mode 100644 run-ems/resources/generalSchema.json create mode 100644 run-ems/runMarket.py create mode 100644 run-pfs/resources/loadsSchema.json create mode 100644 run-pfs/resources/pbus_schema.json create mode 100644 run-pfs/resources/pfs_schema.json create mode 100644 run-pfs/runpfs.py delete mode 100644 scripts/INFO.md diff --git a/.spinetoolbox/.gitignore b/.spinetoolbox/.gitignore deleted file mode 100644 index 298c95b..0000000 --- a/.spinetoolbox/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -# Temporary and log files -*.log -*.bak? -*.sqlite-journal - -# Item output files -items/*/output - -# Other files created by execution -.export-manifest.json -filter_config.json - diff --git a/.spinetoolbox/items/input_mibel/input.json b/.spinetoolbox/items/input_mibel/input.json new file mode 100644 index 0000000..be44706 --- /dev/null +++ b/.spinetoolbox/items/input_mibel/input.json @@ -0,0 +1,799 @@ +{ + "run": "mibel", + "input": { + "electricityMarket": { + "marketType": "DAY_AHEAD", + "sessionID": "1", + "numberOfPeriods": 24, + "numberOfOffersPerBid": 1, + "playersBids": [{ + "playerID": "Player 1", + "bids": [{ + "period": 1, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 2, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 3, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 4, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 5, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 6, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 7, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 8, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 9, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 10, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 11, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 12, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 13, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 14, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 15, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 16, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 17, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 18, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 19, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 20, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 21, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 22, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 23, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 24, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + } + ] + }, + { + "playerID": "Player 2", + "bids": [{ + "period": 1, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 50.0 + }] + }, + { + "period": 2, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 50.0 + }] + }, + { + "period": 3, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 4, + "transactionType": "BUY", + "offers": [{ + "price": 50.0, + "power": 100.0 + }] + }, + { + "period": 5, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 6, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 7, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 8, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 9, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 10, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 11, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 12, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 13, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 14, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 15, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 16, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 17, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 18, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 19, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 20, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 21, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 22, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 23, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 24, + "transactionType": "BUY", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + } + ] + }, + { + "playerID": "Player 3", + "bids": [{ + "period": 1, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 2, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 3, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 4, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 5, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 6, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 7, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 8, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 9, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 10, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 11, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 12, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 13, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 14, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 15, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 16, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 17, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 18, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 19, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 20, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 21, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 22, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 23, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 24, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + } + ] + }, + { + "playerID": "Player 4", + "bids": [{ + "period": 1, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 2, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 3, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 4, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 5, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 6, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 7, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 8, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 9, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 10, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 11, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 12, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 13, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 14, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 15, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 16, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 17, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 18, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 19, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 20, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 21, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 22, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 23, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + }, + { + "period": 24, + "transactionType": "SELL", + "offers": [{ + "price": 25.0, + "power": 100.0 + }] + } + ], + "complexConditions": { + "indivisibility": true + } + } + ] + } + } +} \ No newline at end of file diff --git a/.spinetoolbox/items/input_pfs/inputPFS.json b/.spinetoolbox/items/input_pfs/inputPFS.json new file mode 100644 index 0000000..51cf771 --- /dev/null +++ b/.spinetoolbox/items/input_pfs/inputPFS.json @@ -0,0 +1,115 @@ +{ + "network": { + "name": "Spine 1", + "elements": { + "buses": [ + { + "id": 0, + "busName": "bus 1", + "voltage": 12 + }, + { + "id": 1, + "busName": "bus 2", + "voltage": 13 + }, + { + "id": 2, + "busName": "bus 3", + "voltage": 14 + }, + { + "id": 3, + "busName": "bus 4", + "voltage": 15 + }, + { + "id": 4, + "busName": "bus 5", + "voltage": 16 + }, + { + "id": 5, + "busName": "bus 6", + "voltage": 17 + } + ], + "lines": [ + { + "id": 6, + "name": "line 1", + "initialBus": 0, + "finalBus": 1, + "length": 21, + "lineCapacitance": 1.5, + "lineReactance": 1.4, + "lineResistance": 1.4, + "zeroSequenceLineCapacitance": 1.1, + "zeroSequenceLineReactance": 1.2, + "zeroSequenceLineResistance": 1.3, + "maximumThermal": 11 + }, + { + "id": 7, + "name": "line 1", + "initialBus": 0, + "finalBus": 2, + "length": 21, + "lineCapacitance": 1.5, + "lineReactance": 1.4, + "lineResistance": 1.4, + "zeroSequenceLineCapacitance": 1.1, + "zeroSequenceLineReactance": 1.2, + "zeroSequenceLineResistance": 1.3, + "maximumThermal": 11, + "df": 1, + "dielectricConductance": 1, + "inService": false, + "maxLoadingPercent": 1, + "parallel": 1, + "type": "cs", + "zeroSequenceDielectricConductance": 1 + }, + { + "id": 8, + "name": "line 2", + "initialBus": 3, + "finalBus": 4, + "length": 21, + "type": "NAYY 4x120 SE" + } + ], + "externalGrids": [ + { + "id": 9, + "name": "external grid 1", + "bus": 0 + }, + { + "id": 10, + "name": "external grid 1", + "bus": 1, + "controllable": true, + "degree": 20, + "inService": true, + "maxActivePower": 100, + "maxReactivePower": 100, + "maxRXRatio": 100, + "maxShortCircuitApparentPower": 100, + "minActivePower": 100, + "minReactivePower": 100, + "minRXRatio": 100, + "minShortCircuitApparentPower": 100, + "voltage": 100, + "zeroSequenceMaxRXRatio": 100, + "zeroSequenceMaxX0XRatio": 100 + } + ] + } + }, + "powerflow": { + "balancedAC": { + } + }, + "resultType": "json" +} \ No newline at end of file diff --git a/.spinetoolbox/items/players_buses/playersBuses.json b/.spinetoolbox/items/players_buses/playersBuses.json new file mode 100644 index 0000000..4a57080 --- /dev/null +++ b/.spinetoolbox/items/players_buses/playersBuses.json @@ -0,0 +1,28 @@ +{ + "playersBuses": [ + { + "player": "Player 1", + "bus": 0 + }, + { + "player": "Player 2", + "bus": 1 + }, + { + "player": "Player 3", + "bus": 2 + }, + { + "player": "Player 4", + "bus": 3 + }, + { + "player": "Player 5", + "bus": 4 + }, + { + "player": "Player 6", + "bus": 5 + } + ] +} \ No newline at end of file diff --git a/.spinetoolbox/items/run_ems/output/2021-07-07T14.27.19/outputMarket.json b/.spinetoolbox/items/run_ems/output/2021-07-07T14.27.19/outputMarket.json new file mode 100644 index 0000000..7c5c54e --- /dev/null +++ b/.spinetoolbox/items/run_ems/output/2021-07-07T14.27.19/outputMarket.json @@ -0,0 +1,1159 @@ +{ + "market": "MIBEL", + "session": { + "totalDemandByPeriodOffers": 4700, + "totalSupplySatisfied": 4600, + "session": 1, + "socialWelfare": 2500, + "totalSupplyByPeriodOffers": 4600, + "totalSupply": 4600, + "playersResult": [ + { + "playerPeriodsResult": [ + { + "transactionType": "buying", + "costs": 2500, + "period": 1, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 2, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 3, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 4, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 5, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 6, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 7, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 8, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 9, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 10, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 11, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 12, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 13, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 14, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 15, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 16, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 17, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 18, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 19, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 20, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 21, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 22, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 23, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 24, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + } + ], + "totalDemandSupply": 2400, + "totalCostsProfits": 60000, + "totalSatisfied": 2400, + "totalCostsProfitsByPeriodOffers": 60000, + "demandSupplyByPeriodOffers": 2400, + "playerId": "Player 1" + }, + { + "playerPeriodsResult": [ + { + "transactionType": "buying", + "costs": 0, + "period": 1, + "marketPrice": 25, + "satisfied": 0, + "demand": 50 + }, + { + "transactionType": "buying", + "costs": 0, + "period": 2, + "marketPrice": 25, + "satisfied": 0, + "demand": 50 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 3, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 4, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 5, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 6, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 7, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 8, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 9, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 10, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 11, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 12, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 13, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 14, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 15, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 16, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 17, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 18, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 19, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 20, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 21, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 22, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 23, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + }, + { + "transactionType": "buying", + "costs": 2500, + "period": 24, + "marketPrice": 25, + "satisfied": 100, + "demand": 100 + } + ], + "totalDemandSupply": 2300, + "totalCostsProfits": 55000, + "totalSatisfied": 2200, + "totalCostsProfitsByPeriodOffers": 55000, + "demandSupplyByPeriodOffers": 2200, + "playerId": "Player 2" + }, + { + "playerPeriodsResult": [ + { + "transactionType": "selling", + "profits": 2500, + "period": 1, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 2, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 3, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 4, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 5, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 6, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 7, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 8, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 9, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 10, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 11, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 12, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 13, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 14, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 15, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 16, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 17, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 18, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 19, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 20, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 21, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 22, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 23, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 24, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + } + ], + "totalDemandSupply": 2400, + "totalCostsProfits": 60000, + "totalSatisfied": 2400, + "totalCostsProfitsByPeriodOffers": 60000, + "demandSupplyByPeriodOffers": 2400, + "playerId": "Player 3" + }, + { + "playerPeriodsResult": [ + { + "removalJustification": "Player 4 removed from exchange because of indivisibility condition!", + "period": 1 + }, + { + "removalJustification": "Player 4 removed from exchange because of indivisibility condition!", + "period": 2 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 3, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 4, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 5, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 6, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 7, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 8, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 9, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 10, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 11, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 12, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 13, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 14, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 15, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 16, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 17, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 18, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 19, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 20, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 21, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 22, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 23, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + }, + { + "transactionType": "selling", + "profits": 2500, + "period": 24, + "marketPrice": 25, + "satisfied": 100, + "supply": 100 + } + ], + "totalDemandSupply": 2200, + "totalCostsProfits": 55000, + "totalSatisfied": 2200, + "totalCostsProfitsByPeriodOffers": 55000, + "demandSupplyByPeriodOffers": 2200, + "playerId": "Player 4" + } + ], + "consumptionSurplus": 2500, + "demandSatisfiedByPeriodOffers": 4600, + "averageMarketPrice": 25, + "totalDemand": 4700, + "totalDemandSatisfied": 4600, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 4600, + "periods": [ + { + "period": 1, + "totalDemandByPeriodOffers": 150, + "totalDemand": 150, + "totalSupplySatisfied": 100, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 100, + "totalSupply": 100, + "totalDemandSatisfied": 100, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 100, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 100 + }, + { + "period": 2, + "totalDemandByPeriodOffers": 150, + "totalDemand": 150, + "totalSupplySatisfied": 100, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 100, + "totalSupply": 100, + "totalDemandSatisfied": 100, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 100, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 100 + }, + { + "period": 3, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 4, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 2500, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 2500, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 5, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 6, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 7, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 8, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 9, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 10, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 11, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 12, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 13, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 14, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 15, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 16, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 17, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 18, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 19, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 20, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 21, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 22, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 23, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + }, + { + "period": 24, + "totalDemandByPeriodOffers": 200, + "totalDemand": 200, + "totalSupplySatisfied": 200, + "socialWelfare": 0, + "totalSupplyByPeriodOffers": 200, + "totalSupply": 200, + "totalDemandSatisfied": 200, + "generationSurplus": 0, + "supplySatisfiedByPeriodOffers": 200, + "consumptionSurplus": 0, + "demandSatisfiedByPeriodOffers": 200 + } + ] + }, + "marketType": "SPOT" +} \ No newline at end of file diff --git a/.spinetoolbox/items/run_pfs/output/2021-07-07T14.27.31/outputPowerFlow.json b/.spinetoolbox/items/run_pfs/output/2021-07-07T14.27.31/outputPowerFlow.json new file mode 100644 index 0000000..9d193a3 --- /dev/null +++ b/.spinetoolbox/items/run_pfs/output/2021-07-07T14.27.31/outputPowerFlow.json @@ -0,0 +1,4549 @@ +{ + "results": [ + { + "period": 1, + "error": { + "error": "The network has already been defined !", + "description": { + "name": [ + "network with this name already exists." + ], + "network_hash": [ + "network with this network hash already exists." + ] + } + } + }, + { + "period": 2, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24244.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 3, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 4, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 5, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 6, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 7, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 8, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 9, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 10, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 11, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 12, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 13, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 14, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 15, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 16, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 17, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 18, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 19, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 20, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 21, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 22, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 23, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + }, + { + "period": 24, + "result": { + "results": { + "buses": { + "vm_pu": { + "0": 1.0, + "1": 100.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "va_degree": { + "0": 0.0, + "1": 0.0, + "2": null, + "3": null, + "4": null, + "5": null + }, + "p_mw": { + "0": 242.4489795918, + "1": -24244.8979591837, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + }, + "q_mvar": { + "0": 242.4496921051, + "1": -24237.7728270453, + "2": 0.0, + "3": 0.0, + "4": 0.0, + "5": 0.0 + } + }, + "lines": { + "p_from_mw": { + "6": -242.4489795918, + "7": 0.0, + "8": 0.0 + }, + "q_from_mvar": { + "6": -242.4496921051, + "7": 0.0, + "8": 0.0 + }, + "p_to_mw": { + "6": 24244.8979591837, + "7": 0.0, + "8": 0.0 + }, + "q_to_mvar": { + "6": 24237.7728270453, + "7": 0.0, + "8": 0.0 + }, + "pl_mw": { + "6": 24002.4489795918, + "7": 0.0, + "8": 0.0 + }, + "ql_mvar": { + "6": 23995.3231349403, + "7": 0.0, + "8": 0.0 + }, + "i_from_ka": { + "6": 16.4965878141, + "7": 0.0, + "8": null + }, + "i_to_ka": { + "6": 15.2253597533, + "7": null, + "8": null + }, + "i_ka": { + "6": 16.4965878141, + "7": null, + "8": null + }, + "vm_from_pu": { + "6": 1.0, + "7": 1.0, + "8": null + }, + "va_from_degree": { + "6": 0.0, + "7": 0.0, + "8": null + }, + "vm_to_pu": { + "6": 100.0, + "7": null, + "8": null + }, + "va_to_degree": { + "6": 0.0, + "7": null, + "8": null + }, + "loading_percent": { + "6": 149.9689801278, + "7": null, + "8": null + } + }, + "loads": { + "p_mw": { + "11": 100.0, + "12": 100.0, + "13": 0.0, + "14": 0.0 + }, + "q_mvar": { + "11": 0.0, + "12": 0.0, + "13": 0.0, + "14": 0.0 + } + }, + "motors": { + "p_mw": {}, + "q_mvar": {} + }, + "asymmetricLoads": { + "p_a_mw": {}, + "q_a_mvar": {}, + "p_b_mw": {}, + "q_b_mvar": {}, + "p_c_mw": {}, + "q_c_mvar": {} + }, + "externalGrids": { + "p_mw": { + "0": -142.4489795918, + "1": 24344.8979591837 + }, + "q_mvar": { + "0": -242.4496921051, + "1": 24237.7728270453 + } + }, + "generators": { + "p_mw": {}, + "q_mvar": {}, + "va_degree": {}, + "vm_pu": {} + }, + "shunts": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "impedances": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "ql_mvar": {}, + "i_from_ka": {}, + "i_to_ka": {} + }, + "wards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {} + }, + "extendedWards": { + "p_mw": {}, + "q_mvar": {}, + "vm_pu": {}, + "va_internal_degree": {}, + "vm_internal_pu": {} + }, + "dcLines": { + "p_from_mw": {}, + "q_from_mvar": {}, + "p_to_mw": {}, + "q_to_mvar": {}, + "pl_mw": {}, + "vm_from_pu": {}, + "va_from_degree": {}, + "vm_to_pu": {}, + "va_to_degree": {} + }, + "storages": { + "p_mw": {}, + "q_mvar": {} + } + } + } + } + ] +} \ No newline at end of file diff --git a/.spinetoolbox/project.json b/.spinetoolbox/project.json index 38b9181..f412d3a 100644 --- a/.spinetoolbox/project.json +++ b/.spinetoolbox/project.json @@ -1,11 +1,105 @@ { "project": { "version": 6, - "name": "toolbox-project-template", - "description": "This is a template for Spine Toolbox projects", - "specifications": {}, - "connections": [], + "name": "ems-pfs", + "description": "", + "specifications": { + "Tool": [ + { + "type": "path", + "relative": true, + "path": ".spinetoolbox/specifications/Tool/run_ems.json" + }, + { + "type": "path", + "relative": true, + "path": ".spinetoolbox/specifications/Tool/runpfs.json" + } + ] + }, + "connections": [ + { + "from": [ + "Input mibel", + "right" + ], + "to": [ + "Run EMS", + "left" + ] + }, + { + "from": [ + "Run EMS", + "right" + ], + "to": [ + "Run PFS", + "left" + ] + }, + { + "from": [ + "Players buses", + "right" + ], + "to": [ + "Run PFS", + "left" + ] + }, + { + "from": [ + "Input pfs", + "right" + ], + "to": [ + "Run PFS", + "left" + ] + } + ], "jumps": [] }, - "items": {} + "items": { + "Input mibel": { + "type": "Data Connection", + "description": "", + "x": -173.11157925136746, + "y": 11.775139436023892, + "references": [] + }, + "Players buses": { + "type": "Data Connection", + "description": "", + "x": 24.275097335419236, + "y": -136.47018979419835, + "references": [] + }, + "Input pfs": { + "type": "Data Connection", + "description": "", + "x": -4.982251784811687, + "y": 140.97018979419838, + "references": [] + }, + "Run EMS": { + "type": "Tool", + "description": "", + "x": -14.129894874745077, + "y": 8.763664260794862, + "specification": "Run EMS", + "execute_in_work": true, + "cmd_line_args": [] + }, + "Run PFS": { + "type": "Tool", + "description": "", + "x": 161.1115792513674, + "y": 12.809601515737366, + "specification": "runpfs", + "execute_in_work": true, + "cmd_line_args": [] + } + } } \ No newline at end of file diff --git a/.spinetoolbox/specifications/Tool/run_ems.json b/.spinetoolbox/specifications/Tool/run_ems.json new file mode 100644 index 0000000..4a7eefb --- /dev/null +++ b/.spinetoolbox/specifications/Tool/run_ems.json @@ -0,0 +1,25 @@ +{ + "name": "Run EMS", + "tooltype": "python", + "includes": [ + "runMarket.py", + "resources/generalSchema.json" + ], + "description": "", + "inputfiles": [ + "input.json" + ], + "inputfiles_opt": [], + "outputfiles": [ + "outputMarket.json" + ], + "cmdline_args": [], + "execute_in_work": true, + "includes_main_path": "../../../run-ems", + "execution_settings": { + "kernel_spec_name": "", + "env": "", + "use_jupyter_console": false, + "executable": "C:\\Users\\btsv5\\anaconda3\\envs\\spine\\python.exe" + } +} \ No newline at end of file diff --git a/.spinetoolbox/specifications/Tool/runpfs.json b/.spinetoolbox/specifications/Tool/runpfs.json new file mode 100644 index 0000000..ed8009c --- /dev/null +++ b/.spinetoolbox/specifications/Tool/runpfs.json @@ -0,0 +1,29 @@ +{ + "name": "runpfs", + "tooltype": "python", + "includes": [ + "runpfs.py", + "resources/loadsSchema.json", + "resources/pbus_schema.json", + "resources/pfs_schema.json" + ], + "description": "", + "inputfiles": [ + "inputPFS.json", + "outputMarket.json", + "playersBuses.json" + ], + "inputfiles_opt": [], + "outputfiles": [ + "outputPowerFlow.json" + ], + "cmdline_args": [], + "execute_in_work": true, + "includes_main_path": "../../../run-pfs", + "execution_settings": { + "kernel_spec_name": "", + "env": "", + "use_jupyter_console": false, + "executable": "C:\\Users\\btsv5\\anaconda3\\envs\\spine\\python.exe" + } +} \ No newline at end of file diff --git a/README.md b/README.md index 9034921..ee88cf4 100644 --- a/README.md +++ b/README.md @@ -1,31 +1,9 @@ -# Project template for Spine Toolbox +# EMS + PFS -This is a template repository for Git-versioned Spine Toolbox projects. -To create a new GitHub repository based on this template, click on the **Use this template** button. +There are five components inside the EMS+PFS Spine ToolBox project: -## Ignored files - -Some files are ignored by default: -- output files created by project execution -- temporary and log files - -Other project-specific ignores can be added to the [.gitignore](.gitignore) file. - - -## Folder strucure - -### `data` - -This folder could be used for storing the original data files. -Please add metadata and licensing information as well. - - -### `scripts` - -This folder could be used for storing processing scripts and their tool specifications. - - -## License and Terms of Use - -The Spine Toolbox project example provided here can be used without any -limitations. This does not necessarily apply to any data files contained within. +- **Input mibel** is the input of the **Run EMS** component and contains information regarding the players and their price/amount bids for each period. The schema that validates this input is available at ./run-ems/resources/generalSchema.json. +- **Player buses** is one of the inputs of the **Run PFS** component. This file maps the players present in the MIBEL market to the buses of the network defined in the **Input pfs**. +- **Input pfs** is one of the inputs of the **Run PFS** component and contains information regarding the elements of the network, as well as the powerflow algorithm to be used and its parameters. The schema that validates this input is available at ./run-pfs/resources/pfs_schema.json. +- **Run EMS** executes the MIBEL day-ahead market (defined in the input of the previous component), validating it with the JSON schema available at . The results of simulating the MIBEL market are then sent to the **Run PFS** tool. +- **Run PFS** executes the Power Flow service receiving the network, the powerflow algorithm to be used and the loads of each bus by mapping the players' results to the buses. It also validates the **Input pfs** with the JSON schema available at . The results are then saved in a JSON file. \ No newline at end of file diff --git a/data/INFO.md b/data/INFO.md deleted file mode 100644 index 6cc8b9b..0000000 --- a/data/INFO.md +++ /dev/null @@ -1,3 +0,0 @@ -This folder can be used for storing original data files for the project. - -If possible, add *datapackage.json* file to make it a [Data Package](https://frictionlessdata.io/data-package/). \ No newline at end of file diff --git a/run-ems/resources/generalSchema.json b/run-ems/resources/generalSchema.json new file mode 100644 index 0000000..64d422e --- /dev/null +++ b/run-ems/resources/generalSchema.json @@ -0,0 +1,31 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://host/path/to/service/schema/inputSchema.json", + "type": "object", + "required": [ + "run", + "input" + ], + "additionalProperties": false, + "properties": { + "run": { + "$id": "#/properties/electricityMarket", + "type": "string", + "title": "Run", + "description": "Defines the electricity market algorithm to execute.", + "enum": [ + "epex", + "mibel", + "nordpool", + "symmetricalpool", + "asymmetricalpool" + ] + }, + "input": { + "$id": "#/properties/input", + "type": "object", + "title": "Input", + "description": "Defines de input of the electricity market to execute." + } + } +} \ No newline at end of file diff --git a/run-ems/runMarket.py b/run-ems/runMarket.py new file mode 100644 index 0000000..63e5a37 --- /dev/null +++ b/run-ems/runMarket.py @@ -0,0 +1,63 @@ +import sys + +import requests +import json +import jsonschema + +#BASE_URL = "http://192.168.2.36:9000/api/v1/" +BASE_URL = "https://em.gecad.isep.ipp.pt/api/v1/" +INPUT_FILE = "input.json" +OUTPUT_FILE = "outputMarket.json" +GENERAL_SCHEMA = "resources/generalSchema.json" +HEADERS = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'} + + +def read_file(inputFile): + f = open(inputFile, "r") + return f.read() + + +def write_file(output): + f = open(OUTPUT_FILE, "w") + json.dump(output, f, indent=4) + f.close() + + +def run_market(input): + url = BASE_URL + input["run"] + response = requests.post(url, json=input["input"], headers=HEADERS) + if response.status_code != 200: + print(response.text) + sys.exit(1) + return response.text + + +def get_schema(url): + response = requests.get(url, headers=HEADERS) + if response.status_code != 200: + print("The Schema Path does not exist") + sys.exit(1) + return response.text + + +def validate(input): + try: + input_json = json.loads(input) + general_schema_file = json.loads(read_file(GENERAL_SCHEMA)) + jsonschema.validate(instance=input_json, schema=general_schema_file) + market = input_json["run"] + market_schema_file = BASE_URL + market + "/schema" + schema_json = json.loads(get_schema(market_schema_file)) + jsonschema.validate(instance=input_json["input"], schema=schema_json) + return input_json + except Exception as err: + print(err.message) + sys.exit(1) + + +if __name__ == "__main__": + # Run Market + input = read_file(INPUT_FILE) + input_json = validate(input) + result_json = run_market(input_json) + write_file(json.loads(result_json)) diff --git a/run-pfs/resources/loadsSchema.json b/run-pfs/resources/loadsSchema.json new file mode 100644 index 0000000..4f269d1 --- /dev/null +++ b/run-pfs/resources/loadsSchema.json @@ -0,0 +1,556 @@ +{ + "definitions": { + "id": { + "$id": "#/definitions/id", + "type": "integer", + "title": "Id", + "description": "Defines an identifier." + } + }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://host/path/to/service/schema/inputSchema.json", + "type": "object", + "required": [ + "network", + "powerflow" + ], + "additionalProperties": false, + "properties": { + "network": { + "$id": "#/properties/network", + "type": "object", + "title": "Network", + "description": "Defines the network details to consider in the service execution.", + "required": [ + "name", + "elements" + ], + "additionalProperties": false, + "properties": { + "name": { + "$id": "#/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the network." + }, + "elements": { + "$id": "#/properties/elements", + "type": "object", + "title": "Elements", + "description": "The network elements.", + "required": [ + ], + "additionalProperties": false, + "properties": { + "loads": { + "$id": "#/properties/elements/loads", + "type": "array", + "title": "Loads", + "description": "Defines the network's loads.", + "items": { + "$id": "#/properties/elements/loads/items", + "type": "object", + "title": "Load", + "description": "Defines a load.", + "required": [ + "id", + "name", + "bus", + "activePower" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/loads/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The load's id" + }, + "name": { + "$id": "#/properties/elements/loads/items/properties/name", + "type": "string", + "title": "Name", + "description": "The load's name" + }, + "bus": { + "$id": "#/properties/elements/loads/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the load is connected." + }, + "activePower": { + "$id": "#/properties/elements/loads/items/properties/activePower", + "type": "number", + "title": "Active power", + "description": "The active power of the load. Postive value -> load; Negative value -> generation." + }, + "reactivePower": { + "$id": "#/properties/elements/loads/items/properties/reactivePower", + "type": "number", + "title": "Reactive power", + "description": "The reactive power of the load." + }, + "percentagePowerImpedance": { + "$id": "#/properties/elements/loads/items/properties/percentagePowerImpendace", + "type": "number", + "title": "Percentage power impedance voltage", + "description": "Percentage of active power and reactive power that will be associated to constant impedance load at rated voltage." + }, + "percentagePowerCurrent": { + "$id": "#/properties/elements/loads/items/properties/percentagePowerCurrent", + "type": "number", + "title": "Percentage power current voltage", + "description": "Percentage of active power and reactive power that will be associated to constant current load at rated voltage" + }, + "nominalPower": { + "$id": "#/properties/elements/loads/items/properties/nominalPower", + "type": "number", + "title": "Nominal power", + "description": "Nominal power of the load." + }, + "scalling": { + "$id": "#/properties/elements/loads/items/properties/scalling", + "type": "number", + "title": "Scalling", + "description": "An OPTIONAL scaling factor to be set customly." + }, + "type": { + "$id": "#/properties/elements/loads/items/properties/", + "type": "string", + "title": "Type", + "description": "Type variable to classify the load: wye/delta.", + "enum": [ + "wye", + "delta" + ] + }, + "inService": { + "$id": "#/properties/elements/loads/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "maxActivePower": { + "$id": "#/properties/elements/loads/items/properties/maxActivePower", + "type": "number", + "title": "Maximum active power", + "description": "Maximum active power load - necessary for controllable loads in for OPF." + }, + "minActivePower": { + "$id": "#/properties/elements/loads/items/properties/minActivePower", + "type": "number", + "title": "Minimum active power", + "description": "Minimum active power load - necessary for controllable loads in for OPF." + }, + "maxReactivePower": { + "$id": "#/properties/elements/loads/items/properties/maxReactivePower", + "type": "number", + "title": "Maximum reactive power", + "description": "Maximum reactive power load - necessary for controllable loads in for OPF." + }, + "minReactivePower": { + "$id": "#/properties/elements/loads/items/properties/minReactivePower", + "type": "number", + "title": "Minimum reactive power", + "description": "Minimum reactive power load - necessary for controllable loads in OPF." + }, + "controllable": { + "$id": "#/properties/elements/loads/items/properties/controllable", + "type": "boolean", + "title": "Controllable", + "description": "States, whether a load is controllable or not. Only respected for OPF." + } + } + } + } + } + } + } + }, + "powerflow": { + "$id": "#/properties/powerflow", + "type": "object", + "title": "Power Flow", + "description": "Defines the power flow algorithm to be executed.", + "oneOf": [ + { + "required": ["balancedAC"], + "additionalProperties": false, + "properties": { + "balancedAC": { + "$id": "#/properties/balancedAC", + "type": "object", + "title": "Balanced AC", + "description": "Runs a power flow.", + "additionalProperties": false, + "properties": { + "algorithm": { + "$id": "#/properties/balancedAC/algorithm", + "type": "string", + "title": "Algorithm", + "description": "Algorithm that is used to solve the power flow problem.", + "enum": [ + "nr","iwamoto_nr", + "bfsw","gs", + "fdbx", "fdxb" + ] + }, + "calculateVoltageAngles": { + "$id": "#/properties/balancedAC/calculateVoltageAngles", + "type": "boolean", + "title": "Calculate voltage angles", + "description": "Consider voltage angles in loadflow calculation.If True, voltage angles of ext_grids and transformer shifts are considered in the loadflow calculation. Considering the voltage angles is only necessary in meshed networks that are usually found in higher voltage levels. calculate_voltage_angles in “auto” mode defaults to: True, if the network voltage level is above 70 kV; False otherwise" + }, + "init": { + "$id": "#/properties/balancedAC/init", + "type": "string", + "title": "Init", + "description": "Initialization method of the loadflow pandapower supports four methods for initializing the loadflow: “auto” - init defaults to “dc” if calculate_voltage_angles is True or “flat” otherwise. “flat”- flat start with voltage of 1.0pu and angle of 0° at all PQ-buses and 0° for PV buses as initial solution, the slack bus is initialized with the values provided in net[“ext_grid”]. “dc” - initial DC loadflow before the AC loadflow. The results of the DC loadflow are used as initial solution for the AC loadflow. Note that the DC loadflow only calculates voltage angles at PQ and PV buses, voltage magnitudes are still flat started. “results” - voltage vector of last loadflow from net.res_bus is used as initial solution. This can be useful to accelerate convergence in iterative loadflows like time series calculations. Considering the voltage angles might lead to non-convergence of the power flow in flat start. That is why in “auto” mode, init defaults to “dc” if calculate_voltage_angles is True or “flat” otherwise.", + "enum": [ + "auto", + "flat", + "dc", + "results" + ] + }, + "maxIteration": { + "$id": "#/properties/balancedAC/maxIteration", + "type": "integer", + "title": "Max iteration", + "description": "Maximum number of iterations carried out in the power flow algorithm.In “auto” mode, the default value depends on the power flow solver: 10 for “nr”. For three phase calculations, its extended to 3 * max_iteration" + }, + "toleranceMva": { + "$id": "#/properties/balancedAC/toleranceMva", + "type": "integer", + "title": "Tolerance mva", + "description": "Loadflow termination condition referring to P / Q mismatch of node power in MVA." + }, + "trafoModel": { + "$id": "#/properties/balancedAC/trafoModel", + "type": "string", + "title": "Trafo model", + "description": "Transformer equivalent models.“t” - transformer is modeled as equivalent with the T-model. “pi” - This is not recommended, since it is less exact than the T-model. So, for three phase load flow, its not implemented", + "enum": [ + "t", + "pi" + ] + }, + "trafoLoading": { + "$id": "#/properties/balancedAC/trafoLoading", + "type": "string", + "title": "Trafo loading", + "description": "Mode of calculation for transformer loading.Transformer loading can be calculated relative to the rated current or the rated power. In both cases the overall transformer loading is defined as the maximum loading on the two sides of the transformer. “current”- transformer loading is given as ratio of current. flow and rated current of the transformer. This is the recommended setting, since thermal as well as magnetic effects in the transformer depend on the current. - “power” - transformer loading is given as ratio of apparent power flow to the rated apparent power of the transformer." + }, + "enforceQLims": { + "$id": "#/properties/balancedAC/enforceQLims", + "type": "boolean", + "title": "Enforce q lims", + "description": "Respect generator reactive power limits. If True, the reactive power limits in net.gen.max_q_mvar/min_q_mvar are respected in the loadflow. This is done by running a second loadflow if reactive power limits are violated at any generator, so that the runtime for the loadflow will increase if reactive power has to be curtailed. Enforce_q_lims only works if algorithm=”nr”" + }, + "checkConnectivity": { + "$id": "#/properties/balancedAC/checkConnectivity", + "type": "boolean", + "title": "Check connectivity", + "description": "Perform an extra connectivity test after the conversion from pandapower to PYPOWER. If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc." + }, + "voltageDependLoads": { + "$id": "#/properties/balancedAC/voltageDependLoads", + "type": "boolean", + "title": "Voltage depend loads", + "description": "Consideration of voltage-dependent loads. If False, net.load.const_z_percent and net.load.const_i_percent are not considered, i.e. net.load.p_mw and net.load.q_mvar are considered as constant-power loads." + }, + "considerLineTemperature": { + "$id": "#/properties/balancedAC/considerLineTemperature", + "type": "boolean", + "title": "Consider line temperature", + "description": "Adjustment of line impedance based on provided line temperature. If True, net.line must contain a column “temperature_degree_celsius”. The temperature dependency coefficient alpha must be provided in the net.line.alpha." + }, + "runControl": { + "$id": "#/properties/balancedAC/runControl", + "type": "boolean", + "title": "Run Control", + "description": "Run Control" + } + } + } + } + }, + { + "required": [ + "threePhasePowerFlow" + ], + "additionalProperties": false, + "properties": { + "threePhasePowerFlow": { + "$id": "#/properties/threePhasePowerFlow", + "type": "object", + "title": "Three phase power flow", + "description": "Performs Unbalanced/Asymmetric/Three Phase Load flow.", + "additionalProperties": false, + "properties": { + "calculateVoltageAngles": { + "$id": "#/properties/threePhasePowerFlow/calculateVoltageAngles", + "type": "boolean", + "title": "Calculate voltage angles", + "description": "Consider voltage angles in loadflow calculation.If True, voltage angles of ext_grids and transformer shifts are considered in the loadflow calculation. Considering the voltage angles is only necessary in meshed networks that are usually found in higher voltage levels. calculate_voltage_angles in “auto” mode defaults to: True, if the network voltage level is above 70 kV; False otherwise" + }, + "maxIteration": { + "$id": "#/properties/threePhasePowerFlow/maxIteration", + "type": "integer", + "title": "Max iteration", + "description": "Maximum number of iterations carried out in the power flow algorithm.In “auto” mode, the default value depends on the power flow solver: 10 for “nr”. For three phase calculations, its extended to 3 * max_iteration" + }, + "toleranceMva": { + "$id": "#/properties/threePhasePowerFlow/toleranceMva", + "type": "integer", + "title": "Tolerance mva", + "description": "Loadflow termination condition referring to P / Q mismatch of node power in MVA." + }, + "trafoModel": { + "$id": "#/properties/threePhasePowerFlow/trafoModel", + "type": "string", + "title": "Trafo model", + "description": "Transformer equivalent models.“t” - transformer is modeled as equivalent with the T-model. “pi” - This is not recommended, since it is less exact than the T-model. So, for three phase load flow, its not implemented", + "enum": [ + "t", + "pi" + ] + }, + "trafoLoading": { + "$id": "#/properties/threePhasePowerFlow/trafoLoading", + "type": "string", + "title": "Trafo loading", + "description": "Mode of calculation for transformer loading.Transformer loading can be calculated relative to the rated current or the rated power. In both cases the overall transformer loading is defined as the maximum loading on the two sides of the transformer. “current”- transformer loading is given as ratio of current. flow and rated current of the transformer. This is the recommended setting, since thermal as well as magnetic effects in the transformer depend on the current. - “power” - transformer loading is given as ratio of apparent power flow to the rated apparent power of the transformer." + }, + "enforceQLims": { + "$id": "#/properties/threePhasePowerFlow/enforceQLims", + "type": "boolean", + "title": "Enforce q lims", + "description": "Respect generator reactive power limits. If True, the reactive power limits in net.gen.max_q_mvar/min_q_mvar are respected in the loadflow. This is done by running a second loadflow if reactive power limits are violated at any generator, so that the runtime for the loadflow will increase if reactive power has to be curtailed. Enforce_q_lims only works if algorithm=”nr”" + }, + "checkConnectivity": { + "$id": "#/properties/threePhasePowerFlow/checkConnectivity", + "type": "boolean", + "title": "Check connectivity", + "description": "Perform an extra connectivity test after the conversion from pandapower to PYPOWER. If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc." + }, + "numba": { + "$id": "#/properties/threePhasePowerFlow/numba", + "type": "boolean", + "title": "Numba", + "description": "Activation of numba JIT compiler in the newton solver. If set to True, the numba JIT compiler is used to generate matrices for the powerflow, which leads to significant speed improvements." + }, + "switchRxRatio": { + "$id": "#/properties/threePhasePowerFlow/switchRxRatio", + "type": "number", + "title": "Switch RX Ratio", + "description": "Rx_ratio of bus-bus-switches. If impedance is zero, buses connected by a closed bus-bus switch are fused to model an ideal bus. Otherwise, they are modelled as branches with resistance defined as z_ohm column in switch table and this parameter." + }, + "deltaQ": { + "$id": "#/properties/threePhasePowerFlow/deltaQ", + "type": "number", + "title": "Delta Q", + "description": "Reactive power tolerance for option “enforce_q_lims” in kvar - helps convergence in some cases." + }, + "debug": { + "$id": "#/properties/threePhasePowerFlow/debug", + "type": "boolean", + "title": "Debug", + "description": "If True, voltage values in each newton-raphson iteration are logged in the ppc." + } + } + } + } + }, + { + "required": [ + "dcPowerFlow" + ], + "additionalProperties": false, + "properties": { + "dcPowerFlow": { + "$id": "#/properties/dcPowerFlow", + "type": "object", + "title": "DC power flow", + "description": "Runs PANDAPOWER DC Flow.", + "additionalProperties": false, + "properties": { + "trafoModel": { + "$id": "#/properties/dcPowerFlow/trafoModel", + "type": "string", + "title": "Trafo model", + "description": "Transformer equivalent models.“t” - transformer is modeled as equivalent with the T-model. “pi” - This is not recommended, since it is less exact than the T-model. So, for three phase load flow, its not implemented", + "enum": [ + "t", + "pi" + ] + }, + "trafoLoading": { + "$id": "#/properties/dcPowerFlow/trafoLoading", + "type": "string", + "title": "Trafo loading", + "description": "Mode of calculation for transformer loading.Transformer loading can be calculated relative to the rated current or the rated power. In both cases the overall transformer loading is defined as the maximum loading on the two sides of the transformer. “current”- transformer loading is given as ratio of current. flow and rated current of the transformer. This is the recommended setting, since thermal as well as magnetic effects in the transformer depend on the current. - “power” - transformer loading is given as ratio of apparent power flow to the rated apparent power of the transformer." + }, + "checkConnectivity": { + "$id": "#/properties/dcPowerFlow/checkConnectivity", + "type": "boolean", + "title": "Check connectivity", + "description": "Perform an extra connectivity test after the conversion from pandapower to PYPOWER. If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc." + }, + "switchRxRatio": { + "$id": "#/properties/dcPowerFlow/switchRxRatio", + "type": "number", + "title": "Switch RX Ratio", + "description": "Rx_ratio of bus-bus-switches. If impedance is zero, buses connected by a closed bus-bus switch are fused to model an ideal bus. Otherwise, they are modelled as branches with resistance defined as z_ohm column in switch table and this parameter." + }, + "trafo3wLosses": { + "$id": "#/properties/dcPowerFlow/trafo3wLosses", + "type": "string", + "title": "Trafo3w Losses", + "description": "Defines where open loop losses of three-winding transformers are considered. Valid options are “hv”, “mv”, “lv” for HV/MV/LV side or “star” for the star point.", + "enum": [ + "hv", + "mv", + "lv", + "star" + ] + } + } + } + } + }, + { + "required": ["ACOPF"], + "additionalProperties": false, + "properties": { + "ACOPF": { + "$id": "#/properties/ACOPF", + "type": "object", + "title": "AC OPF", + "description": "Runs the pandapower Optimal Power Flow.", + "additionalProperties": false, + "properties": { + "calculateVoltageAngles": { + "$id": "#/properties/ACOPF/calculateVoltageAngles", + "type": "boolean", + "title": "Calculate voltage angles", + "description": "Consider voltage angles in loadflow calculation.If True, voltage angles of ext_grids and transformer shifts are considered in the loadflow calculation. Considering the voltage angles is only necessary in meshed networks that are usually found in higher voltage levels. calculate_voltage_angles in “auto” mode defaults to: True, if the network voltage level is above 70 kV; False otherwise" + }, + "checkConnectivity": { + "$id": "#/properties/ACOPF/checkConnectivity", + "type": "boolean", + "title": "Check connectivity", + "description": "Perform an extra connectivity test after the conversion from pandapower to PYPOWER. If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc." + }, + "verbose": { + "$id": "#/properties/ACOPF/verbose", + "type": "boolean", + "title": "Verbose", + "description": "If True, some basic information is printed" + }, + "suppressWarnings": { + "$id": "#/properties/ACOPF/suppressWarnings", + "type": "boolean", + "title": "Suppress warnings", + "description": "Suppress warnings in pypower. If set to True, warnings are disabled during the loadflow. Because of the way data is processed in pypower, ComplexWarnings are raised during the loadflow. These warnings are suppressed by this option, however keep in mind all other pypower warnings are suppressed, too." + }, + "init": { + "$id": "#/properties/ACOPF/init", + "type": "string", + "title": "Init", + "description": "Init of starting opf vector. Options are “flat” or “pf”. Starting solution vector (x0) for opf calculations is determined by this flag. Options are: “flat” (default): starting vector is (upper bound - lower bound) / 2 “pf”: a power flow is executed prior to the opf and the pf solution is the starting vector. This may improve convergence, but takes a longer runtime (which are probably neglectible for opf calculations).", + "enum": [ + "flat","pf" + ] + }, + "delta": { + "$id": "#/properties/ACOPF/delta", + "type": "number", + "title": "Delta", + "description": "Power tolerance." + }, + "trafo3wLosses": { + "$id": "#/properties/ACOPF/trafo3wLosses", + "type": "string", + "title": "Trafo3w losses", + "description": "Defines where open loop losses of three-winding transformers are considered. Valid options are “hv”, “mv”, “lv” for HV/MV/LV side or “star” for the star point.", + "enum": ["hv","mv","lv","star"] + }, + "considerLineTemperatures": { + "$id": "#/properties/ACOPF/considerLineTemperatures", + "type": "boolean", + "title": "Consider line temperatures", + "description": " Adjustment of line impedance based on provided line temperature. If True, net.line must contain a column “temperature_degree_celsius”. The temperature dependency coefficient alpha must be provided in the net.line.alpha column, otherwise the default value of 0.004 is used." + } + } + } + } + }, + { + "required": ["DCOPF"], + "additionalProperties": false, + "properties": { + "DCOPF": { + "$id": "#/properties/DCOPF", + "type": "object", + "title": "DC OPF", + "description": "Runs the pandapower Optimal Power Flow.", + "additionalProperties": false, + "properties": { + "verbose": { + "$id": "#/properties/DCOPF/verbose", + "type": "boolean", + "title": "Verbose", + "description": "If True, some basic information is printed." + }, + "checkConnectivity": { + "$id": "#/properties/DCOPF/checkConnectivity", + "type": "boolean", + "title": "Check connectivity", + "description": "Perform an extra connectivity test after the conversion from pandapower to PYPOWER. If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc." + }, + "suppressWarnings": { + "$id": "#/properties/DCOPF/suppressWarnings", + "type": "boolean", + "title": "Suppress warnings", + "description": "Suppress warnings in pypower." + }, + "delta": { + "$id": "#/properties/DCOPF/delta", + "type": "number", + "title": "Delta", + "description": "Power tolerance." + }, + "switchRxRatio": { + "$id": "#/properties/DCOPF/switchRxRatio", + "type": "number", + "title": "Switch RX Ratio", + "description": "Rx_ratio of bus-bus-switches. If impedance is zero, buses connected by a closed bus-bus switch are fused to model an ideal bus. Otherwise, they are modelled as branches with resistance defined as z_ohm column in switch table and this parameter." + }, + "trafo3wLosses": { + "$id": "#/properties/DCOPF/trafo3wLosses", + "type": "string", + "title": "Trafo3w Losses", + "description": "Defines where open loop losses of three-winding transformers are considered. Valid options are “hv”, “mv”, “lv” for HV/MV/LV side or “star” for the star point.", + "enum": [ + "hv", "mv", "lv", "star" + ] + } + } + } + } + } + ] + }, + "resultType": { + "$id": "#/properties/resultType", + "type": "string", + "title": "Result type", + "description": "The type of the result.", + "enum": [ + "excel", + "json" + ] + } + } +} diff --git a/run-pfs/resources/pbus_schema.json b/run-pfs/resources/pbus_schema.json new file mode 100644 index 0000000..2bd7824 --- /dev/null +++ b/run-pfs/resources/pbus_schema.json @@ -0,0 +1,42 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://host/path/to/service/schema/inputSchema.json", + "type": "object", + "required": [ + "playersBuses" + ], + "additionalProperties": false, + "properties": { + "playersBuses": { + "$id": "#/properties/playersBuses", + "type": "array", + "title": "Players buses", + "description": "Relates players to buses.", + "items": { + "$id": "#/properties/playersBuses/items", + "type": "object", + "title": "PlayerBus", + "description": "Relates a player to a bus.", + "required": [ + "player", + "bus" + ], + "additionalProperties": false, + "properties": { + "player": { + "$id": "#/properties/playerBuses/items/properties/player", + "type": "string", + "title": "Player", + "description": "The player." + }, + "bus": { + "$id": "#/properties/playersBuses/items/properties/bus", + "type": "integer", + "title": "Bus", + "description": "The bus." + } + } + } + } + } +} \ No newline at end of file diff --git a/run-pfs/resources/pfs_schema.json b/run-pfs/resources/pfs_schema.json new file mode 100644 index 0000000..c825b4d --- /dev/null +++ b/run-pfs/resources/pfs_schema.json @@ -0,0 +1,3170 @@ +{ + "definitions": { + "id": { + "$id": "#/definitions/id", + "type": "integer", + "title": "Id", + "description": "Defines an identifier." + }, + "geodata": { + "$id": "#/definitions/geodata", + "type": "object", + "title": "Geodata", + "description": "Coordinates used for plotting.", + "required": [ + "x", + "y" + ], + "additionalProperties": false, + "properties": { + "x": { + "$id": "#/definitions/geodata/x", + "type": "number", + "title": "X", + "description": "The x value." + }, + "y": { + "$id": "#/definitions/geodata/y", + "type": "number", + "title": "Y", + "description": "The y value." + } + } + } + }, + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://host/path/to/service/schema/inputSchema.json", + "type": "object", + "required": [ + "network", + "powerflow" + ], + "additionalProperties": false, + "properties": { + "network": { + "$id": "#/properties/network", + "type": "object", + "title": "Network", + "description": "Defines the network details to consider in the service execution.", + "oneOf": [ + { + "required": [ + "name", + "elements" + ], + "additionalProperties": false, + "properties": { + "name": { + "$id": "#/properties/name", + "type": "string", + "title": "Name", + "description": "Name of the network." + }, + "frequency": { + "$id": "#/properties/frequency", + "type": "number", + "title": "Frequency", + "description": "Power system frequency in hertz." + }, + "apparentPower": { + "$id": "#/properties/apparentPower", + "type": "number", + "title": "Apparent Power", + "description": "Teference apparent power for per unit system." + }, + "standardTypes": { + "$id": "#/properties/standardTypes", + "type": "boolean", + "title": "Standard types", + "description": "Includes standard types to net." + }, + "elements": { + "$id": "#/properties/elements", + "type": "object", + "title": "Elements", + "description": "The network elements.", + "required": [ + "buses", + "lines", + "externalGrids" + ], + "additionalProperties": false, + "properties": { + "buses": { + "$id": "#/properties/elements/buses", + "type": "array", + "title": "Buses", + "description": "Defines the existing buses in the network.", + "items": { + "$id": "#/properties/elements/buses/items", + "type": "object", + "title": "Bus", + "description": "Defines a bus.", + "required": [ + "id", + "busName", + "voltage" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/buses/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The bus's id." + }, + "busName": { + "$id": "#/properties/elements/buses/items/properties/busName", + "type": "string", + "title": "Bus name", + "description": "The name for this bus." + }, + "voltage": { + "$id": "#/properties/elements/buses/items/properties/voltage", + "type": "number", + "title": "Voltage", + "description": "The grid voltage level." + }, + "type": { + "$id": "#/properties/elements/buses/items/properties/type", + "type": "string", + "title": "Type", + "description": "Type of the bus. “n” - node, “b” - busbar, “m” - muff", + "enum": [ + "n", + "b", + "m" + ] + }, + "geodata": { + "$id": "#/properties/elements/buses/items/properties/geodata", + "#ref": "#/definitions/geodata", + "title": "Geodata", + "description": "Coordinates used for plotting." + }, + "Zone": { + "$id": "#/properties/elements/buses/items/properties/zone", + "type": "string", + "title": "Zone", + "description": "Grid region." + }, + "inService": { + "$id": "#/properties/elements/buses/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "maxVoltage": { + "$id": "#/properties/elements/buses/items/properties/maxVoltage", + "type": "number", + "title": "Maximum voltage", + "description": "Maximum bus voltage in p.u. - necessary for OPF." + }, + "minVoltage": { + "$id": "#/properties/elements/buses/items/properties/minVoltage", + "type": "number", + "title": "Minimum voltage", + "description": "Minimum bus voltage in p.u. - necessary for OPF." + }, + "coords": { + "$id": "#/properties/elements/buses/items/properties/coords", + "type": "array", + "title": "Coordinates", + "description": "Busbar coordinates to plot the bus with multiple points. coords is typically a list of tuples (start and endpoint of the busbar) [(x1, y1), (x2, y2)].", + "items": { + "$id": "#/properties/elements/buses/items/properties/coords/items", + "type": "object", + "title": "Coordinate", + "description": "The coordinate.", + "required": [ + "x", + "y" + ], + "additionalProperties": false, + "properties": { + "x": { + "$id": "#/properties/elements/buses/items/properties/geodata/properties/x", + "type": "number", + "title": "X", + "description": "The x value." + }, + "y": { + "$id": "#/properties/elements/buses/items/properties/geodata/properties/y", + "type": "number", + "title": "Y", + "description": "The y value." + } + } + } + } + } + } + }, + "lines": { + "#id": "#/properties/elements/lines", + "type": "array", + "title": "Lines", + "description": "Defines the existing lines in the network.", + "items": { + "$id": "#/properties/elements/lines/items", + "type": "object", + "title": "Line", + "description": "Defines a line.", + "oneOf": [ + { + "required": [ + "id", + "name", + "initialBus", + "finalBus", + "length", + "lineResistance", + "lineReactance", + "lineCapacitance", + "zeroSequenceLineResistance", + "zeroSequenceLineReactance", + "zeroSequenceLineCapacitance", + "maximumThermal" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/lines/items/properties/id", + "$red": "#/definitions/id", + "title": "Id", + "description": "The line's id." + }, + "name": { + "$id": "#/properties/elements/lines/items/properties/name", + "type": "string", + "title": "Name", + "description": "The line's name." + }, + "initialBus": { + "$id": "#/properties/elements/lines/items/properties/initialBus", + "$ref": "#/definitions/id", + "title": "Initial Bus", + "description": "Defines the initial bus's identifier." + }, + "finalBus": { + "$id": "#/properties/elements/lines/items/properties/finalBus", + "$ref": "#/definitions/id", + "title": "Final Bus", + "description": "Defines the final bus's identifier." + }, + "length": { + "$id": "#/properties/elements/lines/items/properties/length", + "type": "number", + "title": "Length", + "description": "The line length in km." + }, + "lineResistance": { + "$id": "#/properties/elements/lines/items/properties/lineResistance", + "type": "number", + "title": "Line resistance", + "description": "Line resistance in ohm per km." + }, + "lineReactance": { + "$id": "#/properties/elements/lines/items/properties/lineReactance", + "type": "number", + "title": "Line reactance", + "description": "Line reactance in ohm per km." + }, + "lineCapacitance": { + "$id": "#/properties/elements/lines/items/properties/lineCapacitance", + "type": "number", + "title": "Line capacitance", + "description": "Line capacitance in nano Farad per km." + }, + "zeroSequenceLineResistance": { + "$id": "#/properties/elements/lines/items/properties/zeroSequenceLineResistance", + "type": "number", + "title": "Zero sequence line resistance", + "description": "Zero sequence line resistance in ohm per km." + }, + "zeroSequenceLineReactance": { + "$id": "#/properties/elements/lines/items/properties/zeroSequenceLineReactance", + "type": "number", + "title": "Zero sequence line reactance", + "description": "Zero sequence line reactance in ohm per km." + }, + "zeroSequenceLineCapacitance": { + "$id": "#/properties/elements/lines/items/properties/zeroSequenceLineCapacitance", + "type": "number", + "title": "Zero sequence line capacitance", + "description": "Zero sequence line capacitance in nano Farad per km." + }, + "maximumThermal": { + "$id": "#/properties/elements/lines/items/properties/maximumThermal", + "type": "number", + "title": "Maximum thermal", + "description": "Maximum thermal current in kilo Ampere." + }, + "inService": { + "$id": "#/properties/elements/lines/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "type": { + "$id": "#/properties/elements/lines/items/properties/type", + "type": "string", + "title": "Type", + "description": "", + "enum": [ + "ol", + "cs" + ] + }, + "df": { + "$id": "#/properties/elements/lines/items/properties/df", + "type": "number", + "title": "DF", + "description": "Derating factor: maximal current of line in relation to nominal current of line (from 0 to 1)." + }, + "dielectricConductance": { + "$id": "#/properties/elements/lines/items/properties/dielectricConductance", + "type": "number", + "title": "Dielectric condunctance", + "description": "" + }, + "zeroSequenceDielectricConductance": { + "$id": "#/properties/elements/lines/items/properties/zeroSequenceDielectricConductance", + "type": "number", + "title": "Zero sequence dielectric conductance", + "description": "" + }, + "parallel": { + "$id": "#/properties/elements/lines/items/properties/parallel", + "type": "integer", + "title": "Parallel", + "description": "Number of parallel line systems." + }, + "geodata": { + "$id": "#/properties/elements/lines/items/properties/geodata", + "$ref": "#/definitions/geodata", + "title": "Geodata", + "description": "Coordinates used for plotting." + }, + "maxLoadingPercent": { + "$id": "#/properties/elements/lines/items/properties/maxLoadingPercent", + "type": "number", + "title": "Max loading percent", + "description": "Maximum current loading (only needed for OPF)." + } + } + }, + { + "required": [ + "id", + "name", + "initialBus", + "finalBus", + "length", + "type" + ], + "properties": { + "id": { + "$id": "#/properties/elements/lines/items/properties/id", + "$red": "#/definitions/id", + "title": "Id", + "description": "The line's id." + }, + "name": { + "$id": "#/properties/elements/lines/items/properties/name", + "type": "string", + "title": "Name", + "description": "The line's name." + }, + "initialBus": { + "$id": "#/properties/elements/lines/items/properties/initialBus", + "$ref": "#/definitions/id", + "title": "Initial Bus", + "description": "Defines the initial bus's identifier." + }, + "finalBus": { + "$id": "#/properties/elements/lines/items/properties/finalBus", + "$ref": "#/definitions/id", + "title": "Final Bus", + "description": "Defines the final bus's identifier." + }, + "length": { + "$id": "#/properties/elements/lines/items/properties/length", + "type": "number", + "title": "Length", + "description": "The line length in km." + }, + "type": { + "$id": "#/properties/elements/lines/items/properties/type", + "type": "string", + "title": "string", + "description": "Name of a standard linetype.", + "enum": [ + "NAYY 4x50 SE", + "NAYY 4x120 SE", + "NAYY 4x150 SE", + "NA2XS2Y 1x95 RM/25 12/20 kV", + "NA2XS2Y 1x185 RM/25 12/20 kV", + "NA2XS2Y 1x240 RM/25 12/20 kV", + "NA2XS2Y 1x95 RM/25 6/10 kV", + "NA2XS2Y 1x185 RM/25 6/10 kV", + "NA2XS2Y 1x240 RM/25 6/10 kV", + "NA2XS2Y 1x150 RM/25 12/20 kV", + "NA2XS2Y 1x120 RM/25 12/20 kV", + "NA2XS2Y 1x70 RM/25 12/20 kV", + "NA2XS2Y 1x150 RM/25 6/10 kV", + "NA2XS2Y 1x120 RM/25 6/10 kV", + "NA2XS2Y 1x70 RM/25 6/10 kV", + "N2XS(FL)2Y 1x120 RM/35 64/110 kV", + "N2XS(FL)2Y 1x185 RM/35 64/110 kV", + "N2XS(FL)2Y 1x240 RM/35 64/110 kV", + "N2XS(FL)2Y 1x300 RM/35 64/110 kV", + "15-AL1/3-ST1A 0.4", + "24-AL1/4-ST1A 0.4", + "48-AL1/8-ST1A 0.4", + "94-AL1/15-ST1A 0.4", + "34-AL1/6-ST1A 10.0", + "48-AL1/8-ST1A 10.0", + "70-AL1/11-ST1A 10.0", + "94-AL1/15-ST1A 10.0", + "122-AL1/20-ST1A 10.0", + "149-AL1/24-ST1A 10.0", + "34-AL1/6-ST1A 20.0", + "48-AL1/8-ST1A 20.0", + "70-AL1/11-ST1A 20.0", + "94-AL1/15-ST1A 20.0", + "122-AL1/20-ST1A 20.0", + "149-AL1/24-ST1A 20.0", + "184-AL1/30-ST1A 20.0", + "243-AL1/39-ST1A 20.0", + "48-AL1/8-ST1A 110.0", + "70-AL1/11-ST1A 110.0", + "94-AL1/15-ST1A 110.0", + "122-AL1/20-ST1A 110.0", + "149-AL1/24-ST1A 110.0", + "184-AL1/30-ST1A 110.0", + "243-AL1/39-ST1A 110.0", + "305-AL1/39-ST1A 110.0", + "490-AL1/64-ST1A 110.0", + "679-AL1/86-ST1A 110.0", + "490-AL1/64-ST1A 220.0", + "679-AL1/86-ST1A 220.0", + "490-AL1/64-ST1A 380.0", + "679-AL1/86-ST1A 380.0" + ] + }, + "geodata": { + "$id": "#/properties/elements/lines/items/properties/geodata", + "$ref": "#/definitions/geodata", + "title": "Geodata", + "description": "Coordinates used for plotting." + }, + "inService": { + "$id": "#/properties/elements/lines/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "df": { + "$id": "#/properties/elements/lines/items/properties/df", + "type": "number", + "title": "DF", + "description": "Derating factor: maximal current of line in relation to nominal current of line (from 0 to 1)." + }, + "parallel": { + "$id": "#/properties/elements/lines/items/properties/parallel", + "type": "integer", + "title": "Parallel", + "description": "Number of parallel line systems." + }, + "maxLoadingPercent": { + "$id": "#/properties/elements/lines/items/properties/maxLoadingPercent", + "type": "number", + "title": "Max loading percent", + "description": "Maximum current loading (only needed for OPF)." + } + } + } + ] + } + }, + "switches": { + "#id": "#/properties/elements/switches", + "type": "array", + "title": "Switches", + "description": "Defines the existing network's switches", + "items": { + "$id": "#/properties/elements/switches/items", + "type": "object", + "title": "Switch", + "description": "Defines a switch.", + "required": [ + "id", + "bus", + "element", + "elementType" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/switches/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The switch's id" + }, + "bus": { + "#id": "#/properties/elements/switches/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus that the switch is connected to." + }, + "element": { + "$id": "#/properties/elements/switches/items/properties/element", + "$ref": "#/definitions/id", + "title": "Element", + "description": "Index of the element: bus id if et == “b”, line id if et == “l”, trafo id if et == “t”." + }, + "elementType": { + "$id": "#/properties/elements/switches/items/properties/elementType", + "type": "string", + "title": "Element type", + "description": "Element type: “l” = switch between bus and line, “t” = switch between bus and transformer, “t3” = switch between bus and transformer, “b” = switch between two buses.", + "enum": [ + "b", + "l", + "t", + "t3" + ] + }, + "closed": { + "$id": "#/properties/elements/switches/items/properties/closed", + "type": "boolean", + "title": "Closed", + "description": "Switch position: False = open, True = closed." + }, + "type": { + "$id": "#/properties/elements/switches/items/properties/type", + "type": "string", + "title": "Type", + "description": "Indicates the type of switch: “LS” = Load Switch, “CB” = Circuit Breaker, “LBS” = Load Break Switch or “DS” = Disconnecting Switch.", + "enum": [ + "LS", + "CB", + "LBS", + "DS" + ] + }, + "resistance": { + "$id": "#/properties/elements/switches/items/properties/resistance", + "type": "number", + "title": "Resistance", + "description": "Indicates the resistance of the switch, which has effect only on bus-bus switches, if sets to 0, the buses will be fused like before, if larger than 0 a branch will be created for the switch which has also effects on the bus mapping." + } + } + } + }, + "loads": { + "$id": "#/properties/elements/loads", + "type": "array", + "title": "Loads", + "description": "Defines the network's loads.", + "items": { + "$id": "#/properties/elements/loads/items", + "type": "object", + "title": "Load", + "description": "Defines a load.", + "required": [ + "id", + "name", + "bus", + "activePower" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/loads/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The load's id" + }, + "name": { + "$id": "#/properties/elements/loads/items/properties/name", + "type": "string", + "title": "Name", + "description": "The load's name" + }, + "bus": { + "$id": "#/properties/elements/loads/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the load is connected." + }, + "activePower": { + "$id": "#/properties/elements/loads/items/properties/activePower", + "type": "number", + "title": "Active power", + "description": "The active power of the load. Postive value -> load; Negative value -> generation." + }, + "reactivePower": { + "$id": "#/properties/elements/loads/items/properties/reactivePower", + "type": "number", + "title": "Reactive power", + "description": "The reactive power of the load." + }, + "percentagePowerImpedance": { + "$id": "#/properties/elements/loads/items/properties/percentagePowerImpendace", + "type": "number", + "title": "Percentage power impedance voltage", + "description": "Percentage of active power and reactive power that will be associated to constant impedance load at rated voltage." + }, + "percentagePowerCurrent": { + "$id": "#/properties/elements/loads/items/properties/percentagePowerCurrent", + "type": "number", + "title": "Percentage power current voltage", + "description": "Percentage of active power and reactive power that will be associated to constant current load at rated voltage" + }, + "nominalPower": { + "$id": "#/properties/elements/loads/items/properties/nominalPower", + "type": "number", + "title": "Nominal power", + "description": "Nominal power of the load." + }, + "scalling": { + "$id": "#/properties/elements/loads/items/properties/scalling", + "type": "number", + "title": "Scalling", + "description": "An OPTIONAL scaling factor to be set customly." + }, + "type": { + "$id": "#/properties/elements/loads/items/properties/", + "type": "string", + "title": "Type", + "description": "Type variable to classify the load: wye/delta.", + "enum": [ + "wye", + "delta" + ] + }, + "inService": { + "$id": "#/properties/elements/loads/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "maxActivePower": { + "$id": "#/properties/elements/loads/items/properties/maxActivePower", + "type": "number", + "title": "Maximum active power", + "description": "Maximum active power load - necessary for controllable loads in for OPF." + }, + "minActivePower": { + "$id": "#/properties/elements/loads/items/properties/minActivePower", + "type": "number", + "title": "Minimum active power", + "description": "Minimum active power load - necessary for controllable loads in for OPF." + }, + "maxReactivePower": { + "$id": "#/properties/elements/loads/items/properties/maxReactivePower", + "type": "number", + "title": "Maximum reactive power", + "description": "Maximum reactive power load - necessary for controllable loads in for OPF." + }, + "minReactivePower": { + "$id": "#/properties/elements/loads/items/properties/minReactivePower", + "type": "number", + "title": "Minimum reactive power", + "description": "Minimum reactive power load - necessary for controllable loads in OPF." + }, + "controllable": { + "$id": "#/properties/elements/loads/items/properties/controllable", + "type": "boolean", + "title": "Controllable", + "description": "States, whether a load is controllable or not. Only respected for OPF." + } + } + } + }, + "motors": { + "$id": "#/properties/elements/motors", + "type": "array", + "title": "Motors", + "description": "Defines the network's motors.", + "items": { + "$id": "#/properties/elements/motors/items", + "type": "object", + "title": "Motor", + "description": "Defines a motor.", + "required": [ + "id", + "name", + "bus", + "ratedPower", + "cosinePhi" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/motors/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The motor's id" + }, + "name": { + "$id": "#/properties/elements/motors/items/properties/name", + "type": "string", + "title": "Name", + "description": "The motor's name" + }, + "bus": { + "$id": "#/properties/elements/motors/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the motor is connected." + }, + "ratedPower": { + "$id": "#/properties/elements/motors/items/properties/ratedPower", + "type": "number", + "title": "Mechanical rated power", + "description": "Mechanical rated power of the motor." + }, + "cosinePhi": { + "$id": "#/properties/elements/motors/items/properties/cosinePhi", + "type": "number", + "title": "Cosine phi", + "description": "Cosine phi at current operating point." + }, + "efficiencyPercent": { + "$id": "#/properties/elements/motors/items/properties/efficiencyPercent", + "type": "number", + "title": "Efficiency Percent", + "description": "Efficiency in percent at current operating point." + }, + "loadingPercent": { + "$id": "#/properties/elements/motors/items/properties/loadingPercent", + "type": "number", + "title": "Loading percent", + "description": "" + }, + "scalling": { + "$id": "#/properties/elements/motors/items/properties/scalling", + "type": "number", + "title": "Scalling", + "description": "An OPTIONAL scaling factor to be set customly." + }, + "cosinePhiN": { + "$id": "#/properties/elements/motors/items/properties/cosinePhiN", + "type": "number", + "title": "Cosine Phi N", + "description": "" + }, + "efficiencyNPercent": { + "$id": "#/properties/elements/motors/items/properties/efficiencyNPercent", + "type": "number", + "title": "Efficiency n percent", + "description": "" + }, + "lockedRotor": { + "$id": "#/properties/elements/motors/items/properties/lockedRotor", + "type": "number", + "title": "Locked rotor", + "description": "" + }, + "rxRatio": { + "$id": "#/properties/elements/motors/items/properties/rxRatio", + "type": "number", + "title": "R/X ratio", + "description": "" + }, + "ratedVoltage": { + "$id": "#/properties/elements/motors/items/properties/ratedVoltage", + "type": "number", + "title": "Rated voltage", + "description": "" + }, + "inService": { + "$id": "#/properties/elements/motors/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + } + } + } + }, + "asymmetricLoads": { + "$id": "#/properties/elements/asymmetricLoads", + "type": "array", + "title": "Asymmetric Loads", + "description": "Defines the network's asymmetric loads.", + "items": { + "$id": "#/properties/elements/asymmetricLoads/items", + "type": "object", + "title": "Asymmetric Load", + "description": "Defines a Asymmetric Load.", + "required": [ + "id", + "name", + "bus" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The asymmetric loads's id." + }, + "name": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/name", + "type": "string", + "title": "Name", + "description": "The asymmetric loads's name." + }, + "bus": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the asymmetric load is connected." + }, + "activePowerPhaseA": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/activePowerPhaseA", + "type": "number", + "title": "Active power phase A", + "description": "The active power for Phase A load." + }, + "activePowerPhaseB": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/activePowerPhaseB", + "type": "number", + "title": "Active power phase B", + "description": "The active power for Phase B load." + }, + "activePowerPhaseC": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/activePowerPhaseC", + "type": "number", + "title": "Active power phase C", + "description": "The active power for Phase C load." + }, + "reactivePowerPhaseA": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/reactivePowerPhaseA", + "type": "number", + "title": "Reactive power phase A", + "description": "The reactive power for Phase A load." + }, + "reactivePowerPhaseB": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/reactivePowerPhaseB", + "type": "number", + "title": "Reactive power phase B", + "description": "The reactive power for Phase B load." + }, + "reactivePowerPhaseC": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/reactivePowerPhaseC", + "type": "number", + "title": "Reactive power phase C", + "description": "The reactive power for Phase C load." + }, + "nominalPower": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/nominalPower", + "type": "number", + "title": "Nominal power", + "description": "Nominal power of the load." + }, + "type": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/type", + "type": "string", + "title": "Type", + "description": "Type variable to classify three ph load: delta/wye.", + "enum": [ + "delta", + "wye" + ] + }, + "inService": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "scalling": { + "$id": "#/properties/elements/asymmetricLoads/items/properties/scalling", + "type": "number", + "title": "Scalling", + "description": "An OPTIONAL scaling factor to be set customly." + } + } + } + }, + "staticGenerators": { + "$id": "#/properties/elements/staticGenerators", + "type": "array", + "title": "Static Generators", + "description": "Defines the network's static generators.", + "items": { + "$id": "#/properties/elements/staticGenerators/items", + "type": "object", + "title": "Static Generator", + "description": "Defines a Static Generator.", + "oneOf": [ + { + "required": [ + "id", + "name", + "bus", + "activePower" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/staticGenerators/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The static generator's id." + }, + "name": { + "$id": "#/properties/elements/staticGenerators/items/properties/name", + "type": "string", + "title": "Name", + "description": "The static generator's name." + }, + "bus": { + "$id": "#/properties/elements/staticGenerators/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the static generator is connected." + }, + "activePower": { + "$id": "#/properties/elements/staticGenerators/items/properties/activePower", + "type": "number", + "title": "Active power", + "description": "" + }, + "reactivePower": { + "$id": "#/properties/elements/staticGenerators/items/properties/reactivePower", + "type": "number", + "title": "Reactive number", + "description": "" + }, + "nominalPower": { + "$id": "#/properties/elements/staticGenerators/items/properties/nominalPower", + "type": "number", + "title": "Nominal power", + "description": "" + }, + "type": { + "$id": "#/properties/elements/staticGenerators/items/properties/type", + "type": "string", + "title": "Type", + "description": "", + "enum": [ + "wye", + "delta" + ] + }, + "inService": { + "$id": "#/properties/elements/staticGenerators/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "scalling": { + "$id": "#/properties/elements/staticGenerators/items/properties/scalling", + "type": "number", + "title": "Scalling", + "description": "An OPTIONAL scaling factor to be set customly." + }, + "maxActivePower": { + "$id": "#/properties/elements/staticGenerators/items/properties/maxAcitvePower", + "type": "number", + "title": "Maximum active power", + "description": "Maximum active power injection - necessary for controllable sgens in OPF." + }, + "minActivePower": { + "$id": "#/properties/elements/staticGenerators/items/properties/minActivePower", + "type": "number", + "title": "Minimum active power", + "description": "Minimum active power injection - necessary for controllable sgens in OPF." + }, + "maxReactivePower": { + "$id": "#/properties/elements/staticGenerators/items/properties/maxReactivePower", + "type": "number", + "title": "Maximum reactive power", + "description": "Maximum reactive power injection - necessary for controllable sgens in OPF." + }, + "minReactivePower": { + "$id": "#/properties/elements/staticGenerators/items/properties/minReactivePower", + "type": "number", + "title": "Minimum reactive power", + "description": "Minimum reactive power injection - necessary for controllable sgens in OPF." + }, + "controllable": { + "$id": "#/properties/elements/staticGenerators/items/properties/controllable", + "type": "boolean", + "title": "Controllable", + "description": "Whether this generator is controllable by the optimal powerflow. Defaults to False if “controllable” column exists in DataFrame." + }, + "k": { + "$id": "#/properties/elements/staticGenerators/items/properties/k", + "type": "number", + "title": "K", + "description": "Ratio of nominal current to short circuit current." + }, + "rxRatio": { + "$id": "#/properties/elements/staticGenerators/items/properties/rxRatio", + "type": "number", + "title": "R/X ratio", + "description": "R/X ratio for short circuit impedance. Only relevant if type is specified as motor so that sgen is treated as asynchronous motor." + }, + "currentSource": { + "$id": "#/properties/elements/staticGenerators/items/properties/currentSource", + "type": "boolean", + "title": "currentSource", + "description": "Model this sgen as a current source during short- circuit calculations; useful in some cases, for example the simulation of full- size converters per IEC 60909-0:2016.." + } + } + }, + { + "required": [ + "id", + "name", + "bus", + "ratedPower", + "powerFactor", + "mode" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/staticGenerators/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The static generator's id." + }, + "name": { + "$id": "#/properties/elements/staticGenerators/items/properties/name", + "type": "string", + "title": "Name", + "description": "The static generator's name." + }, + "bus": { + "$id": "#/properties/elements/staticGenerators/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the static generator is connected." + }, + "ratedPower": { + "$id": "#/properties/elements/staticGenerators/items/properties/ratedPower", + "type": "number", + "title": "Rated power", + "description": "" + }, + "powerFactor": { + "$id": "#/properties/elements/staticGenerators/items/properties/powerFactor", + "type": "number", + "title": "Power factor", + "description": "" + }, + "mode": { + "$id": "#/properties/elements/staticGenerators/items/properties/mode", + "type": "string", + "title": "Mode", + "description": "" + } + } + } + ] + } + }, + "asymmetricStaticGenerators": { + "$id": "#/properties/elements/asymmetricStaticGenerators", + "type": "array", + "title": "Asymmetric Static Generators", + "description": "Defines the network's asymmetric static generators.", + "items": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items", + "type": "object", + "title": "Asymmetric Static Generator", + "description": "Defines a Asymmetric Static Generator.", + "required": [ + "id", + "name", + "bus" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The static generator's id." + }, + "name": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/name", + "type": "string", + "title": "Name", + "description": "The static generator's name." + }, + "bus": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the static generator is connected." + }, + "activePowerPhaseA": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/activePowerPhaseA", + "type": "number", + "title": "Active power phase A", + "description": "The active power of the static generator : Phase A." + }, + "activePowerPhaseB": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/activePowerPhaseB", + "type": "number", + "title": "Active power phase B", + "description": "The active power of the static generator : Phase B." + }, + "activePowerPhaseC": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/activePowerPhaseC", + "type": "number", + "title": "Active power phase C", + "description": "The active power of the static generator : Phase C." + }, + "reactivePowerPhaseA": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/reactivePowerPhaseA", + "type": "number", + "title": "Reactive power phase A", + "description": "The reactive power of the sgen : Phase A." + }, + "reactivePowerPhaseB": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/reactivePowerPhaseB", + "type": "number", + "title": "Reactive power phase B", + "description": "The reactive power of the sgen : Phase B." + }, + "reactivePowerPhaseC": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/reactivePowerPhaseC", + "type": "number", + "title": "Reactive power phase C", + "description": "The reactive power of the sgen : Phase C." + }, + "nominalPower": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/nominalPower", + "type": "number", + "title": "Nominal power", + "description": "Nominal power of the sgen." + }, + "type": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/type", + "type": "string", + "title": "Type", + "description": "Three phase Connection type of the static generator: wye/delta.", + "enum": [ + "delta", + "wye" + ] + }, + "inService": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "scalling": { + "$id": "#/properties/elements/asymmetricStaticGenerators/items/properties/scalling", + "type": "number", + "title": "Scalling", + "description": "An OPTIONAL scaling factor to be set customly." + } + } + } + }, + "externalGrids": { + "$id": "#/properties/elements/externalGrids", + "type": "array", + "title": "External Grids", + "description": "Defines the network's external grids.", + "items": { + "$id": "#/properties/elements/externalGrids/items", + "type": "object", + "title": "External grid", + "description": "Defines an external grid.", + "required": [ + "id", + "name", + "bus" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/externalGrids/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The external grid's id." + }, + "name": { + "$id": "#/properties/elements/externalGrids/items/properties/name", + "type": "string", + "title": "Name", + "description": "The external grid's name." + }, + "bus": { + "$id": "#/properties/elements/externalGrids/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the external grid is connected." + }, + "voltage": { + "$id": "#/properties/elements/externalGrids/items/properties/voltage", + "type": "number", + "title": "Voltage", + "description": "Voltage at the slack node in per unit." + }, + "degree": { + "$id": "#/properties/elements/externalGrids/items/properties/degree", + "type": "number", + "title": "Degree", + "description": "Voltage angle at the slack node in degrees." + }, + "inService": { + "$id": "#/properties/elements/externalGrids/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "maxShortCircuitApparentPower": { + "$id": "#/properties/elements/externalGrids/items/properties/maxShortCircuitApparentPower", + "type": "number", + "title": "Maximal short circuit apparent power", + "description": "Maximal short circuit apparent power to calculate internal impedance of ext_grid for short circuit calculations." + }, + "minShortCircuitApparentPower": { + "$id": "#/properties/elements/externalGrids/items/properties/minShortCircuitApparentPower", + "type": "number", + "title": "Minimal short circuit apparent power", + "description": "Minimal short circuit apparent power to calculate internal impedance of ext_grid for short circuit calculations." + }, + "maxRXRatio": { + "$id": "#/properties/elements/externalGrids/items/properties/maxRXRatio", + "type": "number", + "title": "Maximal R/X ratio", + "description": "Maximal R/X-ratio to calculate internal impedance of ext_grid for short circuit calculations." + }, + "minRXRatio": { + "$id": "#/properties/elements/externalGrids/items/properties/minRXRatio", + "type": "number", + "title": "Minimal R/X ratio", + "description": "Minimal R/X-ratio to calculate internal impedance of ext_grid for short circuit calculations." + }, + "maxActivePower": { + "$id": "#/properties/elements/externalGrids/items/properties/maxActivePower", + "type": "number", + "title": "Maximum active power", + "description": "Maximum active power injection. Only respected for OPF." + }, + "minActivePower": { + "$id": "#/properties/elements/externalGrids/items/properties/minActivePower", + "type": "number", + "title": "Minimum active power", + "description": "Minimum active power injection. Only respected for OPF." + }, + "maxReactivePower": { + "$id": "#/properties/elements/externalGrids/items/properties/maxReactivePower", + "type": "number", + "title": "Maximum reactive power", + "description": "Maximum reactive power injection. Only respected for OPF." + }, + "minReactivePower": { + "$id": "#/properties/elements/externalGrids/items/properties/minReactivePower", + "type": "number", + "title": "Minimum reactive power", + "description": "Minimum reactive power injection. Only respected for OPF." + }, + "zeroSequenceMaxRXRatio": { + "$id": "#/properties/elements/externalGrids/items/properties/zeroSequenceMaxRXRatio", + "type": "number", + "title": "Zero sequence maximum R/X ratio", + "description": "Maximal R/X-ratio to calculate Zero sequence internal impedance of ext_grid." + }, + "zeroSequenceMaxX0XRatio": { + "$id": "#/properties/elements/externalGrids/items/properties/zeroSequenceMaxX0XRatio", + "type": "number", + "title": "Zero sequence maximum X0/X ratio", + "description": "Maximal X0/X-ratio to calculate Zero sequence internal impedance of ext_grid." + }, + "controllable": { + "$id": "#/properties/elements/externalGrids/items/properties/controllable", + "type": "boolean", + "title": "Controllable", + "description": "True: p_mw, q_mvar and vm_pu limits are enforced for the ext_grid in OPF. The voltage limits set in the ext_grid bus are enforced." + } + } + } + }, + "transformers": { + "$id": "#/properties/elements/transformers", + "type": "array", + "title": "Transformers", + "description": "Defines the network's transformers.", + "items": { + "$id": "#/properties/elements/transformers/items", + "type": "object", + "title": "Transformer", + "description": "Defines a transformer.", + "oneOf": [ + { + "required": [ + "id", + "name", + "highVoltageBus", + "lowVoltageBus", + "type" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/transformers/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The external grid's id." + }, + "name": { + "$id": "#/properties/elements/transformers/items/properties/name", + "type": "string", + "title": "Name", + "description": "The external grid's name." + }, + "highVoltageBus": { + "$id": "#/properties/elements/transformers/items/properties/highVoltageBus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus on the high-voltage side on which the transformer will be connected to." + }, + "lowVoltageBus": { + "$id": "#/properties/elements/transformers/items/properties/lowVoltageBus", + "$ref": "#/definitions/id", + "title": "Low voltage bus", + "description": "The bus on the low-voltage side on which the transformer will be connected to." + }, + "type": { + "$id": "#/properties/elements/transformers/items/properties/type", + "type": "string", + "title": "Type", + "description": "The used standard type from the standard type library.", + "enum": [ + "160 MVA 380/110 kV", + "100 MVA 220/110 kV", + "63 MVA 110/20 kV", + "40 MVA 110/20 kV", + "25 MVA 110/20 kV", + "63 MVA 110/10 kV", + "40 MVA 110/10 kV", + "25 MVA 110/10 kV", + "0.25 MVA 20/0.4 kV", + "0.4 MVA 20/0.4 kV", + "0.63 MVA 20/0.4 kV", + "0.25 MVA 10/0.4 kV", + "0.4 MVA 10/0.4 kV", + "0.63 MVA 10/0.4 kV" + ] + }, + "inService": { + "$id": "#/properties/elements/transformers/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "currentTapPosition": { + "$id": "#/properties/elements/transformers/items/properties/currentTapPosition", + "type": "integer", + "title": "Current tap position", + "description": "Current tap position of the transformer. Defaults to the medium position (tap_neutral)." + }, + "maxLoadingPercent": { + "$id": "#/properties/elements/transformers/items/properties/maxLoadingPercent", + "type": "number", + "title": "Maximum loading percent", + "description": "Maximum current loading (only needed for OPF)." + }, + "parallel": { + "$id": "#/properties/elements/transformers/items/properties/parallel", + "type": "integer", + "title": "Parallel", + "description": "Number of parallel transformers." + }, + "df": { + "$id": "#/properties/elements/transformers/items/properties/df", + "type": "number", + "title": "DF", + "description": "Derating factor: maximal current of transformer in relation to nominal current of transformer (from 0 to 1)." + } + } + }, + { + "required": [ + "id", + "name", + "highVoltageBus", + "lowVoltageBus", + "ratedPower", + "ratedHighVoltage", + "ratedLowVoltage", + "realPartShortCircuitVoltage", + "relativeShortCircuitVoltage", + "ironLosses", + "openLoopLosses", + "vectorGroup", + "zeroSequenceShortCircuitVoltage", + "realPartZeroSequenceShortCircuitVoltage", + "zeroSequenceMagnetizingImpedance", + "zeroSequenceMagnetizingRXRatio", + "zeroSequenceLeakageImpedance" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/transformers/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The external grid's id." + }, + "name": { + "$id": "#/properties/elements/transformers/items/properties/name", + "type": "string", + "title": "Name", + "description": "The external grid's name." + }, + "highVoltageBus": { + "$id": "#/properties/elements/transformers/items/properties/highVoltageBus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus on the high-voltage side on which the transformer will be connected to." + }, + "lowVoltageBus": { + "$id": "#/properties/elements/transformers/items/properties/lowVoltageBus", + "$ref": "#/definitions/id", + "title": "Low voltage bus", + "description": "The bus on the low-voltage side on which the transformer will be connected to." + }, + "ratedPower": { + "$id": "#/properties/elements/transformers/items/properties/ratedPower", + "type": "number", + "title": "Rated power", + "description": "Rated apparent power." + }, + "ratedHighVoltage": { + "$id": "#/properties/elements/transformers/items/properties/ratedHighVoltage", + "type": "number", + "title": "Rated voltage high voltage", + "description": "Rated voltage on high voltage side." + }, + "ratedLowVoltage": { + "$id": "#/properties/elements/transformers/items/properties/ratedLowVoltage", + "type": "number", + "title": "Rated voltage low voltage", + "description": "Rated voltage on low voltage side." + }, + "realPartShortCircuitVoltage": { + "$id": "#/properties/elements/transformers/items/properties/realPartShortCircuitVoltage", + "type": "number", + "title": "Real parte short-circuit voltage", + "description": "Real part of relative short-circuit voltage." + }, + "relativeShortCircuitVoltage": { + "$id": "#/properties/elements/transformers/items/properties/relativeShortCircuitVoltage", + "type": "number", + "title": "Relative short-circuit voltage", + "description": "Relative short-circuit voltage." + }, + "ironLosses": { + "$id": "#/properties/elements/transformers/items/properties/ironLosses", + "type": "number", + "title": "Iron losses", + "description": "Iron losses in kW." + }, + "openLoopLosses": { + "$id": "#/properties/elements/transformers/items/properties/openLoopLosses", + "type": "number", + "title": "Open loop losses", + "description": "Open loop losses in percent of rated current." + }, + "vectorGroup": { + "$id": "#/properties/elements/transformers/items/properties/vectorGroup", + "type": "string", + "title": "Vector group", + "description": "Vector group of the transformer.HV side is Uppercase letters and LV side is lower case.", + "enum": [ + "Dyn", + "Yyn", + "Yzn", + "YNyn" + ] + }, + "zeroSequenceShortCircuitVoltage": { + "$id": "#/properties/elements/transformers/items/properties/zeroSequenceShortCircuitVoltage", + "type": "number", + "title": "Zero sequence short circuit voltage", + "description": "Zero sequence relative short-circuit voltage." + }, + "realPartZeroSequenceShortCircuitVoltage": { + "$id": "#/properties/elements/transformers/items/properties/realPartZeroSequenceCircuitVoltage", + "type": "number", + "title": "Real part zero sequence short-circuit voltage", + "description": "Real part of zero sequence relative short-circuit voltage." + }, + "zeroSequenceMagnetizingImpedance": { + "$id": "#/properties/elements/transformers/items/properties/zeroSequenceMagnetizingImpedance", + "type": "number", + "title": "Zero sequence magnetizing impedance", + "description": "Zero sequence magnetizing impedance/ vk0." + }, + "zeroSequenceMagnetizingRXRatio": { + "$id": "#/properties/elements/transformers/items/properties/zeroSequenceMagnetizingRXRatio", + "type": "number", + "title": "Zero sequence magnetizing R/X ratio", + "description": "Zero sequence magnitizing R/X ratio." + }, + "zeroSequenceLeakageImpedance": { + "$id": "#/properties/elements/transformers/items/properties/zeroSequenceLeakageImpedance", + "type": "number", + "title": "Zero sequence leakage impendance", + "description": "Distribution of zero sequence leakage impedances for HV side." + }, + "inService": { + "$id": "#/properties/elements/transformers/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "parallel": { + "$id": "#/properties/elements/transformers/items/properties/parallel", + "type": "integer", + "title": "Parallel", + "description": "Number of parallel transformers." + }, + "degree": { + "$id": "#/properties/elements/transformers/items/properties/degree", + "type": "number", + "title": "Degree", + "description": "Position of tap changer (“hv”, “lv”)." + }, + "positionTapChanger": { + "$id": "#/properties/elements/transformers/items/properties/positionTapChanger", + "type": "string", + "title": "Position tap changer", + "description": "", + "enum": [ + "hv", + "lv" + ] + }, + "currentTapPosition": { + "$id": "#/properties/elements/transformers/items/properties/currentTapPosition", + "type": "integer", + "title": "Current tap position", + "description": "Current tap position of the transformer. Defaults to the medium position (tap_neutral)." + }, + "tapPositionNeutral": { + "$id": "#/properties/elements/transformers/items/properties/tapPositionNeutral", + "type": "integer", + "title": "Tap position neutral", + "description": "Tap position where the transformer ratio is equal to the ratio of the rated voltages." + }, + "tapPositionMax": { + "$id": "#/properties/elements/transformers/items/properties/tapPositionMax", + "type": "integer", + "title": "Tap position maximum", + "description": "Maximal allowed tap position." + }, + "tapPositionMin": { + "$id": "#/properties/elements/transformers/items/properties/tapPositionMin", + "type": "integer", + "title": "Tap position minimum", + "description": "Minimal allowed tap position." + }, + "tapSizePercent": { + "$id": "#/properties/elements/transformers/items/properties/tapSizePercent", + "type": "number", + "title": "Tap size percent", + "description": "Tap step size for voltage magnitude in percent." + }, + "tapSizeDegree": { + "$id": "#/properties/elements/transformers/items/properties/tapSizeDegree", + "type": "number", + "title": "Tap size degree", + "description": "Tap step size for voltage angle in degree." + }, + "tapPhaseShifter": { + "$id": "#/properties/elements/transformers/items/properties/tapPhaseShifter", + "type": "boolean", + "title": "Tap phase shifter", + "description": "Whether the transformer is an ideal phase shifter." + }, + "maxLoadingPercent": { + "$id": "#/properties/elements/transformers/items/properties/maxLoadingPercent", + "type": "number", + "title": "Maximum loading percent", + "description": "Maximum current loading (only needed for OPF)." + }, + "df": { + "$id": "#/properties/elements/lines/items/properties/df", + "type": "number", + "title": "DF", + "description": "Derating factor: maximal current of transformer in relation to nominal current of transformer (from 0 to 1)." + } + } + } + ] + } + }, + "threeWindingTransformers": { + "$id": "#/properties/elements/threeWindingTransformers", + "type": "array", + "title": "Three winding transformers", + "description": "Defines the network's three winding transformers.", + "items": { + "$id": "#/properties/elements/threeWindingTransformer/items", + "type": "object", + "title": "Three winding transformer", + "description": "Defines an three winding transformer.", + "oneOf": [ + { + "required": [ + "id", + "name", + "highVoltageBus", + "mediumVoltageBus", + "lowVoltageBus", + "type" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The three winding transformer's id." + }, + "name": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/name", + "type": "string", + "title": "Name", + "description": "The three winding transformer's name." + }, + "highVoltageBus": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/highVoltageBus", + "$ref": "#/definitions/id", + "title": "High Voltage Bus", + "description": "The high voltage bus id to which the three winding transformer is connected." + }, + "mediumVoltageBus": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/midiumVoltageBus", + "$ref": "#/definitions/id", + "title": "Medium Voltage Bus", + "description": "The medium voltage bus id to which the three winding transformer is connected." + }, + "lowVoltageBus": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/lowVoltageBus", + "$ref": "#/definitions/id", + "title": "Low Voltage Bus", + "description": "The low voltage bus id to which the three winding transformer is connected." + }, + "type": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/type", + "type": "string", + "title": "Type", + "description": "The used standard type from the standard type library.", + "enum": [ + "63/25/38 MVA 110/20/10 kV", + "63/25/38 MVA 110/10/10 kV" + ] + }, + "inService": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "maxLoadingPercent": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/maxLoadingPercent", + "type": "number", + "title": "Maximum loading percent", + "description": "Maximum current loading (only needed for OPF)." + }, + "currentTapPosition": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/currentTapPosition", + "type": "integer", + "title": "Current tap position", + "description": "Current tap position of the transformer. Defaults to the medium position (tap_neutral)." + }, + "tapStarPoint": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/tapStarPoint", + "type": "boolean", + "title": "Tap star point", + "description": "Whether tap changer is located at the star point of the 3W-transformer or at the bus." + } + } + }, + { + "required": [ + "id", + "name", + "highVoltageBus", + "mediumVoltageBus", + "lowVoltageBus", + "ratedHighVoltage", + "ratedMediumVoltage", + "ratedLowVoltage", + "ratedPowerHighVoltage", + "ratedPowerMediumVoltage", + "ratedPowerLowVoltage", + "shortCircuitVoltageHighMedium", + "shortCircuitVoltageMediumLow", + "shortCircuitVoltageHighLow", + "realPartShortCircuitVoltageHighMedium", + "realPartShortCircuitVoltageMediumLow", + "realPartShortCircuitVoltageHighLow", + "ironLosses", + "openLoopLosses" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The three winding transformer's id." + }, + "name": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/name", + "type": "string", + "title": "Name", + "description": "The three winding transformer's name." + }, + "highVoltageBus": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/highVoltageBus", + "$ref": "#/definitions/id", + "title": "High Voltage Bus", + "description": "The high voltage bus id to which the three winding transformer is connected." + }, + "mediumVoltageBus": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/midiumVoltageBus", + "$ref": "#/definitions/id", + "title": "Medium Voltage Bus", + "description": "The medium voltage bus id to which the three winding transformer is connected." + }, + "lowVoltageBus": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/lowVoltageBus", + "$ref": "#/definitions/id", + "title": "Low Voltage Bus", + "description": "The low voltage bus id to which the three winding transformer is connected." + }, + "ratedHighVoltage": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/ratedHighVoltage", + "type": "number", + "title": "Rated power high voltage", + "description": "Rated apparent power on high voltage side." + }, + "ratedMediumVoltage": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/ratedMediumVoltage", + "type": "number", + "title": "Rated power medium voltage", + "description": "Rated apparent power on medium voltage side." + }, + "ratedLowVoltage": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/ratedLowVoltage", + "type": "number", + "title": "Rated power low voltage", + "description": "Rated apparent power on low voltage side." + }, + "ratedPowerHighVoltage": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/ratedPowerHighVoltage", + "type": "number", + "title": "Rated power high voltage", + "description": "Rated apparent power on high voltage side." + }, + "ratedPowerMediumVoltage": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/ratedPowerMediumVoltage", + "type": "number", + "title": "Rated power medium voltage", + "description": "Rated apparent power on medium voltage side." + }, + "ratedPowerLowVoltage": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/ratedPowerLowVoltage", + "type": "number", + "title": "Rated power low voltage", + "description": "Rated apparent power on low voltage side." + }, + "shortCircuitVoltageHighMedium": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/shortCircuitVoltageHighMedium", + "type": "number", + "title": "Short circuit voltage high to medium", + "description": "Short circuit voltage from high to medium voltage." + }, + "shortCircuitVoltageMediumLow": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/shortCircuitVoltageMediumLow", + "type": "number", + "title": "Short circuit voltage medium to low", + "description": "Short circuit voltage from medium to low voltage." + }, + "shortCircuitVoltageHighLow": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/shortCircuitVoltageHighLow", + "type": "number", + "title": "Short circuit voltage high to low", + "description": "Short circuit voltage from high to low voltage." + }, + "realPartShortCircuitVoltageHighMedium": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/realPartShortCircuitVoltageHighMedium", + "type": "number", + "title": "Real part short circuit voltage high to medium", + "description": "Real part of short circuit voltage from high to medium voltage." + }, + "realPartShortCircuitVoltageMediumLow": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/realPartShortCircuitVoltageMediumLow", + "type": "number", + "title": "Real part short circuit voltage medium to low", + "description": "Real part of short circuit voltage from medium to low voltage." + }, + "realPartShortCircuitVoltageHighLow": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/realPartShortCircuitVoltageHighLow", + "type": "number", + "title": "Real part short circuit voltage high to low", + "description": "Real part of short circuit voltage from high to low voltage." + }, + "ironLosses": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/ironLosses", + "type": "number", + "title": "Iron losses", + "description": "Iron losses in kW." + }, + "openLoopLosses": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/openLoopLosses", + "type": "number", + "title": "Open loop losses", + "description": "Open loop losses in percent of rated current." + }, + "degreeMediumVoltage": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/degreeMediumVoltage", + "type": "number", + "title": "Degree medium voltage", + "description": "" + }, + "degreeLowVoltage": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/degreeLowVoltage", + "type": "number", + "title": "Degree low voltage", + "description": "" + }, + "tapPercent": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties//tapPercent", + "type": "number", + "title": "Tap percent", + "description": "" + }, + "tapDegree": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/tapDegree", + "type": "number", + "title": "Tap degree", + "description": "" + }, + "tapSide": { + "$id":"#/properties/elements/threeWindingTransformers/items/properties/tapSide", + "type": "string", + "title": "Tap side", + "description": "" + }, + "tapNeutral": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/tapNeutral", + "type": "integer", + "title": "Tap neutral", + "description": "" + }, + "tapMin": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/tapMin", + "type": "integer", + "title": "Tap minimum", + "description": "" + }, + "tapMax": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/tapMax", + "type": "integer", + "title": "Tap maximum", + "description": "" + }, + "currentTapPosition": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/currentTapPosition", + "type": "integer", + "title": "Current tap position", + "description": "Current tap position of the transformer. Defaults to the medium position (tap_neutral)." + }, + "tapStarPoint": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/tapStarPoint", + "type": "boolean", + "title": "Tap star point", + "description": "Whether tap changer is located at the star point of the 3W-transformer or at the bus." + }, + "inService": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "maxLoadingPercent": { + "$id": "#/properties/elements/threeWindingTransformers/items/properties/maxLoadingPercent", + "type": "number", + "title": "Maximum loading percent", + "description": "Maximum current loading (only needed for OPF)." + } + } + } + ] + } + }, + "generators": { + "$id": "#/properties/elements/generators", + "type": "array", + "title": "Generators", + "description": "Defines the network's generators.", + "items": { + "$id": "#/properties/elements/generators/items", + "type": "object", + "title": "Generator", + "description": "Defines a generator.", + "required": [ + "id", + "name", + "bus", + "activePower" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/generators/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The generator's id" + }, + "name": { + "$id": "#/properties/elements/generators/items/properties/name", + "type": "string", + "title": "Name", + "description": "The generator's name" + }, + "bus": { + "$id": "#/properties/elements/generators/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the generator is connected." + }, + "activePower": { + "$id": "#/properties/elements/generators/items/properties/activePower", + "type": "number", + "title": "Active power", + "description": "The active power of the generator (positive for generation!)." + }, + "voltage": { + "$id": "#/properties/elements/generators/items/properties/voltage", + "type": "number", + "title": "Voltage", + "description": "The voltage set point of the generator." + }, + "nominalPower": { + "$id": "#/properties/elements/generators/items/properties/nominalPower", + "type": "number", + "title": "Nominal power", + "description": "Nominal power of the generator." + }, + "type": { + "$id": "#/properties/elements/generators/items/properties/type", + "type": "string", + "title": "Type", + "description": "Type variable to classify generators." + }, + "scalling": { + "$id": "#/properties/elements/generators/items/properties/scalling", + "type": "number", + "title": "Scalling", + "description": "An OPTIONAL scaling factor to be set customly." + }, + "controllable": { + "$id": "#/properties/elements/generators/items/properties/controllable", + "type": "boolean", + "title": "Controllable", + "description": "States, whether a load is controllable or not. Only respected for OPF." + }, + "ratedVoltage": { + "$id": "#/properties/elements/generators/items/properties/ratedVoltage", + "type": "number", + "title": "Rated voltage", + "description": "" + }, + "generatorReactance": { + "$id": "#/properties/elements/generators/items/properties/generatorReactance", + "type": "number", + "title": "Generator reactance", + "description": "Rated voltage of the generator for short-circuit calculation." + }, + "generatorResistance": { + "$id": "#/properties/elements/generators/items/properties/generatorResistance", + "type": "number", + "title": "Generator resistance", + "description": "Subtransient generator reactance for short-circuit calculation." + }, + "cosinePhi": { + "$id": "#/properties/elements/generators/items/properties/cosinePhi", + "type": "number", + "title": "Cosine Phi", + "description": "Subtransient generator resistance for short-circuit calculation." + }, + "inService": { + "$id": "#/properties/elements/generators/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "maxActivePower": { + "$id": "#/properties/elements/generators/items/properties/maxActivePower", + "type": "number", + "title": "Maximum active power", + "description": "Maximum active power load - necessary for controllable loads in for OPF." + }, + "minActivePower": { + "$id": "#/properties/elements/generators/items/properties/minActivePower", + "type": "number", + "title": "Minimum active power", + "description": "Minimum active power load - necessary for controllable loads in for OPF." + }, + "maxReactivePower": { + "$id": "#/properties/elements/generators/items/properties/maxReactivePower", + "type": "number", + "title": "Maximum reactive power", + "description": "Maximum reactive power load - necessary for controllable loads in for OPF." + }, + "minReactivePower": { + "$id": "#/properties/elements/generators/items/properties/minReactivePower", + "type": "number", + "title": "Minimum reactive power", + "description": "Minimum reactive power load - necessary for controllable loads in OPF." + }, + "maxVoltage": { + "$id": "#/properties/elements/generators/items/properties/maxVoltage", + "type": "number", + "title": "Maximum voltage", + "description": "Minimum voltage magnitude. If not set the bus voltage limit is taken. - necessary for OPF." + }, + "minVoltage": { + "$id": "#/properties/elements/generators/items/properties/minVoltage", + "type": "number", + "title": "Minimum voltage", + "description": "Maximum voltage magnitude. If not set the bus voltage limit is taken. - necessary for OPF." + } + } + } + }, + "shunts": { + "$id": "#/properties/elements/shunts", + "type": "array", + "title": "Shunts", + "description": "Defines the network's shunts.", + "items": { + "$id": "#/properties/elements/shunts/items", + "type": "object", + "title": "Shunt", + "description": "Defines a shunt.", + "required": [ + "id", + "name", + "bus", + "activePower", + "susceptance" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/shunts/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The shunt's id" + }, + "name": { + "$id": "#/properties/elements/shunts/items/properties/name", + "type": "string", + "title": "Name", + "description": "The shunt's name" + }, + "bus": { + "$id": "#/properties/elements/shunts/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the shunt is connected." + }, + "activePower": { + "$id": "#/properties/elements/shunts/items/properties/activePower", + "type": "number", + "title": "Active power", + "description": "Shunt active power in MW at v= 1.0 p.u.." + }, + "susceptance": { + "$id": "#/properties/elements/shunts/items/properties/susceptance", + "type": "number", + "title": "Susceptance", + "description": "Shunt susceptance in MVAr at v= 1.0 p.u." + }, + "ratedVoltage": { + "$id": "#/properties/elements/shunts/items/properties/ratedVoltage", + "type": "number", + "title": "ratedVoltage", + "description": "Shunt susceptance in MVAr at v= 1.0 p.u." + }, + "step": { + "$id": "#/properties/elements/shunts/items/properties/step", + "type": "integer", + "title": "Step", + "description": "Step of shunt with which power values are multiplied." + }, + "maxStep": { + "$id": "#/properties/elements/shunts/items/properties/maxStep", + "type": "integer", + "title": "Maximum step", + "description": "Maximum step." + }, + "inService": { + "$id": "#/properties/elements/buses/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + } + } + } + }, + "impedances": { + "#id": "#/properties/elements/impedances", + "type": "array", + "title": "Impedances", + "description": "Defines the existing impedances in the network.", + "items": { + "$id": "#/properties/elements/impedances/items", + "type": "object", + "title": "mpedance", + "description": "Defines an impedance.", + "required": [ + "id", + "name", + "initialBus", + "finalBus", + "resistanceFromTo", + "reactanceFromTo", + "apparentPower" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/impedances/items/properties/id", + "$red": "#/definitions/id", + "title": "Id", + "description": "The impedance's id." + }, + "name": { + "$id": "#/properties/elements/impedances/items/properties/name", + "type": "string", + "title": "Name", + "description": "The impedance's name." + }, + "initialBus": { + "$id": "#/properties/elements/impedances/items/properties/initialBus", + "$ref": "#/definitions/id", + "title": "Initial Bus", + "description": "Defines the initial bus's identifier." + }, + "finalBus": { + "$id": "#/properties/elements/impedances/items/properties/finalBus", + "$ref": "#/definitions/id", + "title": "Final Bus", + "description": "Defines the final bus's identifier." + }, + "resistanceFromTo": { + "$id": "#/properties/elements/impedances/items/properties/resistanceFromTo", + "type": "number", + "title": "Resistance from to", + "description": "Resistance of the impedance from ‘from’ to ‘to’ bus [p.u]." + }, + "resistanceToFrom": { + "$id": "#/properties/elements/impedances/items/properties/resistanceToFrom", + "type": "number", + "title": "Resistance to from", + "description": "Resistance of the impedance from ‘to’ to ‘from’ bus [p.u]" + }, + "reactanceFromTo": { + "$id": "#/properties/elements/impedances/items/properties/reactanceFromTo", + "type": "number", + "title": "Reactance from to", + "description": "Reactance of the impedance from ‘from’ to ‘to’ bus [p.u]." + }, + "reactanceToFrom": { + "$id": "#/properties/elements/impedances/items/properties/reactanceToFrom", + "type": "number", + "title": "Reactance to from", + "description": "Reactance of the impedance from ‘to’ to ‘from’ bus [p.u]" + }, + "apparentPower": { + "$id": "#/properties/elements/impedances/items/properties/apparentPower", + "type": "number", + "title": "Apparent power", + "description": "Reference apparent power for the impedance per unit values [MVA]." + }, + "inService": { + "$id": "#/properties/elements/impedances/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + } + } + } + }, + "wards": { + "#id": "#/properties/elements/wards", + "type": "array", + "title": "Wards", + "description": "Defines the existing wards in the network.", + "items": { + "$id": "#/properties/elements/wards/items", + "type": "object", + "title": "Ward", + "description": "Defines a wards.", + "required": [ + "id", + "name", + "bus", + "activePowerPQ", + "reactivePowerPQ", + "activePowerImpedance", + "reactivePowerImpedance" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/wards/items/properties/id", + "$red": "#/definitions/id", + "title": "Id", + "description": "The ward's id." + }, + "name": { + "$id": "#/properties/elements/wards/items/properties/name", + "type": "string", + "title": "Name", + "description": "The ward's name." + }, + "bus": { + "$id": "#/properties/elements/wards/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the ward is connected." + }, + "activePowerPQ": { + "$id": "#/properties/elements/wards/items/properties/activePowerPQ", + "type": "number", + "title": "Active power PQ", + "description": "Active power of the PQ load." + }, + "reactivePowerPQ": { + "$id": "#/properties/elements/wards/items/properties/reactivePowerPQ", + "type": "number", + "title": "Reactive power PQ", + "description": "Reactive power of the PQ load." + }, + "activePowerImpedance": { + "$id": "#/properties/elements/wards/items/properties/activePowerImpedance", + "type": "number", + "title": "Active power impendace", + "description": "Active power of the impedance load in MW at 1.pu voltage." + }, + "reactivePowerImpedance": { + "$id": "#/properties/elements/wards/items/properties/reactivePowerImpedance", + "type": "number", + "title": "Reative power impedance", + "description": "Reactive power of the impedance load in MVar at 1.pu voltage." + }, + "inService": { + "$id": "#/properties/elements/wards/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + } + } + } + }, + "extendedWards": { + "#id": "#/properties/elements/extendedWards", + "type": "array", + "title": "Extended Wards", + "description": "Defines the existing extended Wards in the network.", + "items": { + "$id": "#/properties/elements/extendedWards/items", + "type": "object", + "title": "Extended Ward", + "description": "Defines an extended ward.", + "required": [ + "id", + "name", + "bus", + "activePowerPQ", + "reactivePowerPQ", + "activePowerImpedance", + "reactivePowerImpedance", + "internalResistance", + "internalReactance", + "voltageMagnitude" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/extendedWards/items/properties/id", + "$red": "#/definitions/id", + "title": "Id", + "description": "The extended ward's id." + }, + "name": { + "$id": "#/properties/elements/extendedWards/items/properties/name", + "type": "string", + "title": "Name", + "description": "The extended ward's name." + }, + "bus": { + "$id": "#/properties/elements/extendedWards/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the extended ward is connected." + }, + "activePowerPQ": { + "$id": "#/properties/elements/extendedWards/items/properties/activePowerPQ", + "type": "number", + "title": "Active power PQ", + "description": "Active power of the PQ load." + }, + "reactivePowerPQ": { + "$id": "#/properties/elements/extendedWards/items/properties/reactivePowerPQ", + "type": "number", + "title": "Reactive power PQ", + "description": "Reactive power of the PQ load." + }, + "activePowerImpedance": { + "$id": "#/properties/elements/extendedWards/items/properties/activePowerImpedance", + "type": "number", + "title": "Active power impendace", + "description": "Active power of the impedance load in MW at 1.pu voltage." + }, + "reactivePowerImpedance": { + "$id": "#/properties/elements/extendedWards/items/properties/reactivePowerImpedance", + "type": "number", + "title": "Reative power impedance", + "description": "Reactive power of the impedance load in MVar at 1.pu voltage." + }, + "internalResistance": { + "$id": "#/properties/elements/extendedWards/items/properties/internalResistance", + "type": "number", + "title": "Internal resistance", + "description": "Internal resistance of the voltage source." + }, + "internalReactance": { + "$id": "#/properties/elements/extendedWards/items/properties/internalReactance", + "type": "number", + "title": "Internal reactnce", + "description": "Internal reactance of the voltage source." + }, + "voltageMagnitude": { + "$id": "#/properties/elements/extendedWards/items/properties/voltageMagnitude", + "type": "number", + "title": "Voltage magnitude", + "description": "Voltage magnitude at the additional PV-node." + }, + "inService": { + "$id": "#/properties/elements/extendedWards/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + } + } + } + }, + "dcLines": { + "#id": "#/properties/elements/dcLines", + "type": "array", + "title": "DC Lines", + "description": "Defines the existing DC Lines in the network.", + "items": { + "$id": "#/properties/elements/dcLines/items", + "type": "object", + "title": "DC Line", + "description": "Defines a DC Line.", + "required": [ + "id", + "name", + "initialBus", + "finalBus", + "activePower", + "lossPercent", + "lossMW", + "voltageSetpointFrom", + "voltageSetpointTo" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/dcLines/items/properties/id", + "$red": "#/definitions/id", + "title": "Id", + "description": "The DC Line's id." + }, + "name": { + "$id": "#/properties/elements/dcLines/items/properties/name", + "type": "string", + "title": "Name", + "description": "The DC Line's name." + }, + "initialBus": { + "$id": "#/properties/elements/dcLines/items/properties/intialBus", + "$ref": "#/definitions/id", + "title": "Initial Bus", + "description": "ID of the bus on one side which the line will be connected with." + }, + "finalBus": { + "$id": "#/properties/elements/dcLines/items/properties/finalBus", + "$ref": "#/definitions/id", + "title": "Final Bus", + "description": " ID of the bus on the other side which the line will be connected with." + }, + "activePower": { + "$id": "#/properties/elements/dcLines/items/properties/activePower", + "type": "number", + "title": "Active Power", + "description": "Active power transmitted from ‘from_bus’ to ‘to_bus’." + }, + "lossPercent": { + "$id": "#/properties/elements/dcLines/items/properties/lossPercent", + "type": "number", + "title": "Losse percent", + "description": "Relative transmission loss in percent of active power transmission" + }, + "lossMW": { + "$id": "#/properties/elements/dcLines/items/properties/lossMW", + "type": "number", + "title": "Loss MW", + "description": "Total transmission loss in MW." + }, + "voltageSetpointFrom": { + "$id": "#/properties/elements/dcLines/items/properties/voltageSetpointFrom", + "type": "number", + "title": "Voltage setpoint from", + "description": "Voltage setpoint at from bus." + }, + "voltageSetpointTo": { + "$id": "#/properties/elements/dcLines/items/properties/voltageSetpointTo", + "type": "number", + "title": "Voltage setpit to", + "description": "Voltage setpoint at to bus." + }, + "inService": { + "$id": "#/properties/elements/dcLines/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "maxActivePower": { + "$id": "#/properties/elements/dcLines/items/properties/maxActivePower", + "type": "number", + "title": "Maximum active power", + "description": "Maximum active power flow. Only respected for OPF." + }, + "minReactivePowerFrom": { + "$id": "#/properties/elements/dcLines/items/properties/minReactivePowerFrom", + "type": "number", + "title": "Minimum reactive power from", + "description": "Minimum reactive power at from bus. Necessary for OPF." + }, + "minReactivePowerTo": { + "$id": "#/properties/elements/dcLines/items/properties/minReactivePowerTo", + "type": "number", + "title": "Minimum reactive power to", + "description": "Minimum reactive power at to bus. Necessary for OPF." + }, + "maxReactivePowerFrom": { + "$id": "#/properties/elements/dcLines/items/properties/maxReactivePowerFrom", + "type": "number", + "title": "Maximum reactive power from", + "description": "Maximum reactive power at from bus. Necessary for OPF." + }, + "maxReactivePowerTo": { + "$id": "#/properties/elements/dcLines/items/properties/maxReactivePowerTo", + "type": "number", + "title": "Maximum reactive power to", + "description": "Maximum reactive power at to bus. Necessary for OPF." + } + + + } + } + }, + "measurements": { + "$id": "#/properties/elements/measurements", + "type": "array", + "title": "Measurements", + "description": "Defines the network's measurements.", + "items": { + "$id": "#/properties/elements/measurements/items", + "type": "object", + "title": "Measurament", + "description": "Defines a measurament.", + "required": [ + "id", + "name", + "measType", + "elementType", + "value", + "standardDeviation", + "element" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/measurements/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The measurement's id" + }, + "name": { + "$id": "#/properties/elements/measurements/items/properties/name", + "type": "string", + "title": "Name", + "description": "The measurement's name" + }, + "measType": { + "$id": "#/properties/elements/measurements/items/properties/measType", + "type": "string", + "title": "Measurement type", + "description": "Type of measurement. “v”, “p”, “q”, “i”, “va”, “ia” are possible.", + "enum": [ + "v", + "p", + "q", + "i", + "va", + "ia" + ] + }, + "elementType": { + "$id": "#/properties/elements/measurements/items/properties/elementType", + "type": "string", + "title": "Element type", + "description": "Clarifies which element is measured. “bus”, “line”, “trafo”, and “trafo3w” are possible.", + "enum": [ + "bus", + "line", + "trafo", + "trafo3w" + ] + }, + "value": { + "$id": "#/properties/elements/measurements/items/properties/value", + "type": "number", + "title": "Value", + "description": "Measurement value. Units are “MW” for P, “MVar” for Q, “p.u.” for V, “kA” for I. Bus power measurement is in load reference system, which is consistent to the rest of pandapower." + }, + "standardDeviation": { + "$id": "#/properties/elements/measurements/items/properties/standardDeviation", + "type": "number", + "title": "Standard deviation", + "description": "Standard deviation in the same unit as the measurement." + }, + "element": { + "$id": "#/properties/elements/measurements/items/properties/element", + "type": "integer", + "title": "Element", + "description": "Index of the measured element (either bus index, line index, trafo index, trafo3w index)." + }, + "side": { + "$id": "#/properties/elements/measurements/items/properties/side", + "type": ["integer","string"], + "title": "Side", + "description": "", + "enum": [ + "from","to", + "hv","mv","lv" + ] + }, + "checkExisting": { + "$id": "#/properties/elements/measurements/items/properties/checkExisting", + "type": "boolean", + "title": "Check existing", + "description": "Check for and replace existing measurements for this bus, type and element_type. Set it to false for performance improvements which can cause unsafe behaviour." + } + } + } + }, + "storages": { + "$id": "#/properties/elements/storages", + "type": "array", + "title": "Storages", + "description": "Defines the network's storages.", + "items": { + "$id": "#/properties/elements/storages/items", + "type": "object", + "title": "Storage", + "description": "Defines a storage.", + "required": [ + "id", + "name", + "bus", + "activePower", + "maxEnergy" + ], + "additionalProperties": false, + "properties": { + "id": { + "$id": "#/properties/elements/storages/items/properties/id", + "$ref": "#/definitions/id", + "title": "Id", + "description": "The storage's id" + }, + "name": { + "$id": "#/properties/elements/storages/items/properties/name", + "type": "string", + "title": "Name", + "description": "The storage's name" + }, + "bus": { + "$id": "#/properties/elements/storages/items/properties/bus", + "$ref": "#/definitions/id", + "title": "Bus", + "description": "The bus id to which the storage is connected." + }, + "activePower": { + "$id": "#/properties/elements/storages/items/properties/activePower", + "type": "number", + "title": "Active power", + "description": "The momentary active power of the storage (positive for charging, negative for discharging)." + }, + "maxEnergy": { + "$id": "#/properties/elements/storages/items/properties/maxEnergy", + "type": "number", + "title": "Maximum energy", + "description": "The maximum energy content of the storage (maximum charge level)." + }, + "reactivePower": { + "$id": "#/properties/elements/storages/items/properties/reactivePower", + "type": "number", + "title": "Reactive power", + "description": "The reactive power of the storage." + }, + "nominalPower": { + "$id": "#/properties/elements/storages/items/properties/nominalPower", + "type": "number", + "title": "Nominal power", + "description": "Nominal power of the storage." + }, + "chargeState": { + "$id": "#/properties/elements/storages/items/properties/chargeState", + "type": "number", + "title": "Charge state", + "description": "" + }, + "minEnergy": { + "$id": "#/properties/elements/storages/items/properties/minEnergy", + "type": "number", + "title": "Minimum energy", + "description": "" + }, + "type": { + "$id": "#/properties/elements/storages/items/properties/type", + "type": "string", + "title": "Type", + "description": "" + }, + "scalling": { + "$id": "#/properties/elements/storages/items/properties/scalling", + "type": "number", + "title": "Scalling", + "description": "An OPTIONAL scaling factor to be set customly." + }, + "inService": { + "$id": "#/properties/elements/buses/items/properties/inService", + "type": "boolean", + "title": "In service", + "description": "True for in_service or False for out of service." + }, + "maxActivePower": { + "$id": "#/properties/elements/storages/items/properties/maxActivePower", + "type": "number", + "title": "Maximum active power", + "description": "Maximum active power load - necessary for controllable loads in for OPF." + }, + "minActivePower": { + "$id": "#/properties/elements/storages/items/properties/minActivePower", + "type": "number", + "title": "Minimum active power", + "description": "Minimum active power load - necessary for controllable loads in for OPF." + }, + "maxReactivePower": { + "$id": "#/properties/elements/storages/items/properties/maxReactivePower", + "type": "number", + "title": "Maximum reactive power", + "description": "Maximum reactive power load - necessary for controllable loads in for OPF." + }, + "minReactivePower": { + "$id": "#/properties/elements/storages/items/properties/minReactivePower", + "type": "number", + "title": "Minimum reactive power", + "description": "Minimum reactive power load - necessary for controllable loads in OPF." + }, + "controllable": { + "$id": "#/properties/elements/storages/items/properties/controllable", + "type": "boolean", + "title": "Controllable", + "description": "Whether this storage is controllable by the optimal powerflow. Defaults to False if “controllable” column exists in DataFrame." + } + } + } + } + } + } + } + }, + { + "required": [ + "grid" + ], + "additionalProperties": false, + "properties": { + "grid": { + "$id": "#/properties/grid", + "type": "string", + "title": "Grid", + "description": "Defines the name of a default grid already available by the pandapower.", + "enum": [ + "Simple_example_network", + "Multivoltage_example_network", + "Four_load_branch", + "Four_loads_with_branches_out", + "Four_bus_system", + "Medium_voltage_open_ring", + "High_voltage_transmission_network", + "Medium_voltage_distribution_network", + "Medium_voltage_distribution_network_with_PV_and_Wind_DER", + "Medium_voltage_distribution_network_with_all_DER_Note", + "Low_voltage_distribution_network", + "MV_Oberrhein", + "Case_4gs", + "Case_5", + "Case_6ww", + "Case_9", + "Case_14", + "Case_24_ieee_rts", + "Case_30", + "Case_IEEE30", + "Case_33bw", + "Case_39", + "Case_57", + "Case_89pegase", + "Case_118", + "Case_145", + "Case_case_illinois200", + "Case_300", + "Case_1354pegase", + "Case_1888rte", + "Case_2848rte", + "Case_2869pegase", + "Case_3120sp", + "Case_6470rte", + "Case_6495rte", + "Case_6515rte", + "Case_9241pegase", + "Case_GB_network", + "Case_GB_reduced network", + "Case_iceland" + ] + } + } + } + ] + }, + "powerflow": { + "$id": "#/properties/powerflow", + "type": "object", + "title": "Power Flow", + "description": "Defines the power flow algorithm to be executed.", + "oneOf": [ + { + "required": ["balancedAC"], + "additionalProperties": false, + "properties": { + "balancedAC": { + "$id": "#/properties/balancedAC", + "type": "object", + "title": "Balanced AC", + "description": "Runs a power flow.", + "additionalProperties": false, + "properties": { + "algorithm": { + "$id": "#/properties/balancedAC/algorithm", + "type": "string", + "title": "Algorithm", + "description": "Algorithm that is used to solve the power flow problem.", + "enum": [ + "nr","iwamoto_nr", + "bfsw","gs", + "fdbx", "fdxb" + ] + }, + "calculateVoltageAngles": { + "$id": "#/properties/balancedAC/calculateVoltageAngles", + "type": "boolean", + "title": "Calculate voltage angles", + "description": "Consider voltage angles in loadflow calculation.If True, voltage angles of ext_grids and transformer shifts are considered in the loadflow calculation. Considering the voltage angles is only necessary in meshed networks that are usually found in higher voltage levels. calculate_voltage_angles in “auto” mode defaults to: True, if the network voltage level is above 70 kV; False otherwise" + }, + "init": { + "$id": "#/properties/balancedAC/init", + "type": "string", + "title": "Init", + "description": "Initialization method of the loadflow pandapower supports four methods for initializing the loadflow: “auto” - init defaults to “dc” if calculate_voltage_angles is True or “flat” otherwise. “flat”- flat start with voltage of 1.0pu and angle of 0° at all PQ-buses and 0° for PV buses as initial solution, the slack bus is initialized with the values provided in net[“ext_grid”]. “dc” - initial DC loadflow before the AC loadflow. The results of the DC loadflow are used as initial solution for the AC loadflow. Note that the DC loadflow only calculates voltage angles at PQ and PV buses, voltage magnitudes are still flat started. “results” - voltage vector of last loadflow from net.res_bus is used as initial solution. This can be useful to accelerate convergence in iterative loadflows like time series calculations. Considering the voltage angles might lead to non-convergence of the power flow in flat start. That is why in “auto” mode, init defaults to “dc” if calculate_voltage_angles is True or “flat” otherwise.", + "enum": [ + "auto", + "flat", + "dc", + "results" + ] + }, + "maxIteration": { + "$id": "#/properties/balancedAC/maxIteration", + "type": "integer", + "title": "Max iteration", + "description": "Maximum number of iterations carried out in the power flow algorithm.In “auto” mode, the default value depends on the power flow solver: 10 for “nr”. For three phase calculations, its extended to 3 * max_iteration" + }, + "toleranceMva": { + "$id": "#/properties/balancedAC/toleranceMva", + "type": "integer", + "title": "Tolerance mva", + "description": "Loadflow termination condition referring to P / Q mismatch of node power in MVA." + }, + "trafoModel": { + "$id": "#/properties/balancedAC/trafoModel", + "type": "string", + "title": "Trafo model", + "description": "Transformer equivalent models.“t” - transformer is modeled as equivalent with the T-model. “pi” - This is not recommended, since it is less exact than the T-model. So, for three phase load flow, its not implemented", + "enum": [ + "t", + "pi" + ] + }, + "trafoLoading": { + "$id": "#/properties/balancedAC/trafoLoading", + "type": "string", + "title": "Trafo loading", + "description": "Mode of calculation for transformer loading.Transformer loading can be calculated relative to the rated current or the rated power. In both cases the overall transformer loading is defined as the maximum loading on the two sides of the transformer. “current”- transformer loading is given as ratio of current. flow and rated current of the transformer. This is the recommended setting, since thermal as well as magnetic effects in the transformer depend on the current. - “power” - transformer loading is given as ratio of apparent power flow to the rated apparent power of the transformer." + }, + "enforceQLims": { + "$id": "#/properties/balancedAC/enforceQLims", + "type": "boolean", + "title": "Enforce q lims", + "description": "Respect generator reactive power limits. If True, the reactive power limits in net.gen.max_q_mvar/min_q_mvar are respected in the loadflow. This is done by running a second loadflow if reactive power limits are violated at any generator, so that the runtime for the loadflow will increase if reactive power has to be curtailed. Enforce_q_lims only works if algorithm=”nr”" + }, + "checkConnectivity": { + "$id": "#/properties/balancedAC/checkConnectivity", + "type": "boolean", + "title": "Check connectivity", + "description": "Perform an extra connectivity test after the conversion from pandapower to PYPOWER. If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc." + }, + "voltageDependLoads": { + "$id": "#/properties/balancedAC/voltageDependLoads", + "type": "boolean", + "title": "Voltage depend loads", + "description": "Consideration of voltage-dependent loads. If False, net.load.const_z_percent and net.load.const_i_percent are not considered, i.e. net.load.p_mw and net.load.q_mvar are considered as constant-power loads." + }, + "considerLineTemperature": { + "$id": "#/properties/balancedAC/considerLineTemperature", + "type": "boolean", + "title": "Consider line temperature", + "description": "Adjustment of line impedance based on provided line temperature. If True, net.line must contain a column “temperature_degree_celsius”. The temperature dependency coefficient alpha must be provided in the net.line.alpha." + }, + "runControl": { + "$id": "#/properties/balancedAC/runControl", + "type": "boolean", + "title": "Run Control", + "description": "Run Control" + } + } + } + } + }, + { + "required": [ + "threePhasePowerFlow" + ], + "additionalProperties": false, + "properties": { + "threePhasePowerFlow": { + "$id": "#/properties/threePhasePowerFlow", + "type": "object", + "title": "Three phase power flow", + "description": "Performs Unbalanced/Asymmetric/Three Phase Load flow.", + "additionalProperties": false, + "properties": { + "calculateVoltageAngles": { + "$id": "#/properties/threePhasePowerFlow/calculateVoltageAngles", + "type": "boolean", + "title": "Calculate voltage angles", + "description": "Consider voltage angles in loadflow calculation.If True, voltage angles of ext_grids and transformer shifts are considered in the loadflow calculation. Considering the voltage angles is only necessary in meshed networks that are usually found in higher voltage levels. calculate_voltage_angles in “auto” mode defaults to: True, if the network voltage level is above 70 kV; False otherwise" + }, + "maxIteration": { + "$id": "#/properties/threePhasePowerFlow/maxIteration", + "type": "integer", + "title": "Max iteration", + "description": "Maximum number of iterations carried out in the power flow algorithm.In “auto” mode, the default value depends on the power flow solver: 10 for “nr”. For three phase calculations, its extended to 3 * max_iteration" + }, + "toleranceMva": { + "$id": "#/properties/threePhasePowerFlow/toleranceMva", + "type": "integer", + "title": "Tolerance mva", + "description": "Loadflow termination condition referring to P / Q mismatch of node power in MVA." + }, + "trafoModel": { + "$id": "#/properties/threePhasePowerFlow/trafoModel", + "type": "string", + "title": "Trafo model", + "description": "Transformer equivalent models.“t” - transformer is modeled as equivalent with the T-model. “pi” - This is not recommended, since it is less exact than the T-model. So, for three phase load flow, its not implemented", + "enum": [ + "t", + "pi" + ] + }, + "trafoLoading": { + "$id": "#/properties/threePhasePowerFlow/trafoLoading", + "type": "string", + "title": "Trafo loading", + "description": "Mode of calculation for transformer loading.Transformer loading can be calculated relative to the rated current or the rated power. In both cases the overall transformer loading is defined as the maximum loading on the two sides of the transformer. “current”- transformer loading is given as ratio of current. flow and rated current of the transformer. This is the recommended setting, since thermal as well as magnetic effects in the transformer depend on the current. - “power” - transformer loading is given as ratio of apparent power flow to the rated apparent power of the transformer." + }, + "enforceQLims": { + "$id": "#/properties/threePhasePowerFlow/enforceQLims", + "type": "boolean", + "title": "Enforce q lims", + "description": "Respect generator reactive power limits. If True, the reactive power limits in net.gen.max_q_mvar/min_q_mvar are respected in the loadflow. This is done by running a second loadflow if reactive power limits are violated at any generator, so that the runtime for the loadflow will increase if reactive power has to be curtailed. Enforce_q_lims only works if algorithm=”nr”" + }, + "checkConnectivity": { + "$id": "#/properties/threePhasePowerFlow/checkConnectivity", + "type": "boolean", + "title": "Check connectivity", + "description": "Perform an extra connectivity test after the conversion from pandapower to PYPOWER. If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc." + }, + "numba": { + "$id": "#/properties/threePhasePowerFlow/numba", + "type": "boolean", + "title": "Numba", + "description": "Activation of numba JIT compiler in the newton solver. If set to True, the numba JIT compiler is used to generate matrices for the powerflow, which leads to significant speed improvements." + }, + "switchRxRatio": { + "$id": "#/properties/threePhasePowerFlow/switchRxRatio", + "type": "number", + "title": "Switch RX Ratio", + "description": "Rx_ratio of bus-bus-switches. If impedance is zero, buses connected by a closed bus-bus switch are fused to model an ideal bus. Otherwise, they are modelled as branches with resistance defined as z_ohm column in switch table and this parameter." + }, + "deltaQ": { + "$id": "#/properties/threePhasePowerFlow/deltaQ", + "type": "number", + "title": "Delta Q", + "description": "Reactive power tolerance for option “enforce_q_lims” in kvar - helps convergence in some cases." + }, + "debug": { + "$id": "#/properties/threePhasePowerFlow/debug", + "type": "boolean", + "title": "Debug", + "description": "If True, voltage values in each newton-raphson iteration are logged in the ppc." + } + } + } + } + }, + { + "required": [ + "dcPowerFlow" + ], + "additionalProperties": false, + "properties": { + "dcPowerFlow": { + "$id": "#/properties/dcPowerFlow", + "type": "object", + "title": "DC power flow", + "description": "Runs PANDAPOWER DC Flow.", + "additionalProperties": false, + "properties": { + "trafoModel": { + "$id": "#/properties/dcPowerFlow/trafoModel", + "type": "string", + "title": "Trafo model", + "description": "Transformer equivalent models.“t” - transformer is modeled as equivalent with the T-model. “pi” - This is not recommended, since it is less exact than the T-model. So, for three phase load flow, its not implemented", + "enum": [ + "t", + "pi" + ] + }, + "trafoLoading": { + "$id": "#/properties/dcPowerFlow/trafoLoading", + "type": "string", + "title": "Trafo loading", + "description": "Mode of calculation for transformer loading.Transformer loading can be calculated relative to the rated current or the rated power. In both cases the overall transformer loading is defined as the maximum loading on the two sides of the transformer. “current”- transformer loading is given as ratio of current. flow and rated current of the transformer. This is the recommended setting, since thermal as well as magnetic effects in the transformer depend on the current. - “power” - transformer loading is given as ratio of apparent power flow to the rated apparent power of the transformer." + }, + "checkConnectivity": { + "$id": "#/properties/dcPowerFlow/checkConnectivity", + "type": "boolean", + "title": "Check connectivity", + "description": "Perform an extra connectivity test after the conversion from pandapower to PYPOWER. If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc." + }, + "switchRxRatio": { + "$id": "#/properties/dcPowerFlow/switchRxRatio", + "type": "number", + "title": "Switch RX Ratio", + "description": "Rx_ratio of bus-bus-switches. If impedance is zero, buses connected by a closed bus-bus switch are fused to model an ideal bus. Otherwise, they are modelled as branches with resistance defined as z_ohm column in switch table and this parameter." + }, + "trafo3wLosses": { + "$id": "#/properties/dcPowerFlow/trafo3wLosses", + "type": "string", + "title": "Trafo3w Losses", + "description": "Defines where open loop losses of three-winding transformers are considered. Valid options are “hv”, “mv”, “lv” for HV/MV/LV side or “star” for the star point.", + "enum": [ + "hv", + "mv", + "lv", + "star" + ] + } + } + } + } + }, + { + "required": ["ACOPF"], + "additionalProperties": false, + "properties": { + "ACOPF": { + "$id": "#/properties/ACOPF", + "type": "object", + "title": "AC OPF", + "description": "Runs the pandapower Optimal Power Flow.", + "additionalProperties": false, + "properties": { + "calculateVoltageAngles": { + "$id": "#/properties/ACOPF/calculateVoltageAngles", + "type": "boolean", + "title": "Calculate voltage angles", + "description": "Consider voltage angles in loadflow calculation.If True, voltage angles of ext_grids and transformer shifts are considered in the loadflow calculation. Considering the voltage angles is only necessary in meshed networks that are usually found in higher voltage levels. calculate_voltage_angles in “auto” mode defaults to: True, if the network voltage level is above 70 kV; False otherwise" + }, + "checkConnectivity": { + "$id": "#/properties/ACOPF/checkConnectivity", + "type": "boolean", + "title": "Check connectivity", + "description": "Perform an extra connectivity test after the conversion from pandapower to PYPOWER. If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc." + }, + "verbose": { + "$id": "#/properties/ACOPF/verbose", + "type": "boolean", + "title": "Verbose", + "description": "If True, some basic information is printed" + }, + "suppressWarnings": { + "$id": "#/properties/ACOPF/suppressWarnings", + "type": "boolean", + "title": "Suppress warnings", + "description": "Suppress warnings in pypower. If set to True, warnings are disabled during the loadflow. Because of the way data is processed in pypower, ComplexWarnings are raised during the loadflow. These warnings are suppressed by this option, however keep in mind all other pypower warnings are suppressed, too." + }, + "init": { + "$id": "#/properties/ACOPF/init", + "type": "string", + "title": "Init", + "description": "Init of starting opf vector. Options are “flat” or “pf”. Starting solution vector (x0) for opf calculations is determined by this flag. Options are: “flat” (default): starting vector is (upper bound - lower bound) / 2 “pf”: a power flow is executed prior to the opf and the pf solution is the starting vector. This may improve convergence, but takes a longer runtime (which are probably neglectible for opf calculations).", + "enum": [ + "flat","pf" + ] + }, + "delta": { + "$id": "#/properties/ACOPF/delta", + "type": "number", + "title": "Delta", + "description": "Power tolerance." + }, + "trafo3wLosses": { + "$id": "#/properties/ACOPF/trafo3wLosses", + "type": "string", + "title": "Trafo3w losses", + "description": "Defines where open loop losses of three-winding transformers are considered. Valid options are “hv”, “mv”, “lv” for HV/MV/LV side or “star” for the star point.", + "enum": ["hv","mv","lv","star"] + }, + "considerLineTemperatures": { + "$id": "#/properties/ACOPF/considerLineTemperatures", + "type": "boolean", + "title": "Consider line temperatures", + "description": " Adjustment of line impedance based on provided line temperature. If True, net.line must contain a column “temperature_degree_celsius”. The temperature dependency coefficient alpha must be provided in the net.line.alpha column, otherwise the default value of 0.004 is used." + } + } + } + } + }, + { + "required": ["DCOPF"], + "additionalProperties": false, + "properties": { + "DCOPF": { + "$id": "#/properties/DCOPF", + "type": "object", + "title": "DC OPF", + "description": "Runs the pandapower Optimal Power Flow.", + "additionalProperties": false, + "properties": { + "verbose": { + "$id": "#/properties/DCOPF/verbose", + "type": "boolean", + "title": "Verbose", + "description": "If True, some basic information is printed." + }, + "checkConnectivity": { + "$id": "#/properties/DCOPF/checkConnectivity", + "type": "boolean", + "title": "Check connectivity", + "description": "Perform an extra connectivity test after the conversion from pandapower to PYPOWER. If True, an extra connectivity test based on SciPy Compressed Sparse Graph Routines is perfomed. If check finds unsupplied buses, they are set out of service in the ppc." + }, + "suppressWarnings": { + "$id": "#/properties/DCOPF/suppressWarnings", + "type": "boolean", + "title": "Suppress warnings", + "description": "Suppress warnings in pypower." + }, + "delta": { + "$id": "#/properties/DCOPF/delta", + "type": "number", + "title": "Delta", + "description": "Power tolerance." + }, + "switchRxRatio": { + "$id": "#/properties/DCOPF/switchRxRatio", + "type": "number", + "title": "Switch RX Ratio", + "description": "Rx_ratio of bus-bus-switches. If impedance is zero, buses connected by a closed bus-bus switch are fused to model an ideal bus. Otherwise, they are modelled as branches with resistance defined as z_ohm column in switch table and this parameter." + }, + "trafo3wLosses": { + "$id": "#/properties/DCOPF/trafo3wLosses", + "type": "string", + "title": "Trafo3w Losses", + "description": "Defines where open loop losses of three-winding transformers are considered. Valid options are “hv”, “mv”, “lv” for HV/MV/LV side or “star” for the star point.", + "enum": [ + "hv", "mv", "lv", "star" + ] + } + } + } + } + } + ] + }, + "resultType": { + "$id": "#/properties/resultType", + "type": "string", + "title": "Result type", + "description": "The type of the result.", + "enum": [ + "excel", + "json" + ] + } + } +} \ No newline at end of file diff --git a/run-pfs/runpfs.py b/run-pfs/runpfs.py new file mode 100644 index 0000000..d574509 --- /dev/null +++ b/run-pfs/runpfs.py @@ -0,0 +1,109 @@ +import json +import jsonschema +import sys +import copy +import requests + + +INPUT_FILE_MARKET = "outputMarket.json" +INPUT_FILE_PBUS = "playersBuses.json" +INPUT_FILE_PFS = "inputPFS.json" +PBUS_SCHEMA = "resources/pbus_schema.json" +PFS_SCHEMA = "resources/pfs_schema.json" +OUTPUT_FILE = "outputPowerFlow.json" +URL = "https://pf.gecad.isep.ipp.pt/api/v1/networks/" +HEADERS = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'} + + +def read_file(inputFile): + f = open(inputFile, "r", encoding="utf8") + return f.read() + + +def write_file(output): + f = open(OUTPUT_FILE, "w") + json.dump(output, f, indent=4) + f.close() + + +def validate(file, schema): + try: + file_json = json.loads(file) + schema = json.loads(read_file(schema)) + jsonschema.validate(instance= file_json, schema= schema) + return file_json + except Exception as err: + print(str(err)) + sys.exit(1) + +def create_input_pfs(input_pfs, output_market, player_buses, i, id): + if "loads" not in input_pfs["network"]["elements"]: + input_pfs["network"]["elements"]["loads"]=[] + for index, player in enumerate(output_market["session"]["playersResult"]): + id+=1 + bus = -1 + for element in player_buses["playersBuses"]: + if element["player"] == player["playerId"]: + bus = element["bus"] + if bus == -1: + print("Player "+ player["playerId"] +"not found !") + sys.exit(1) + active_power = output_market["session"]["playersResult"][index]["playerPeriodsResult"][i]["satisfied"] if "satisfied" in output_market["session"]["playersResult"][index]["playerPeriodsResult"][i] else 0 + input_pfs["network"]["elements"]["loads"].append( + { + "id": id, + "name": "load " + str(id), + "bus": bus, + "activePower": active_power + } + ) + return input_pfs + + +def run_power_flow(input): + response = requests.post(URL, json= input, headers = HEADERS) + return response + + +def build_result(results, response, i): + if response.status_code != 200: + results["results"].append( + { + "period": i+1, + "error": response.json() + } + ) + else: + results["results"].append( + { + "period": i+1, + "result": response.json() + } + ) + + +if __name__ == "__main__": + output_market = json.loads(read_file(INPUT_FILE_MARKET)) + players_buses = validate(read_file(INPUT_FILE_PBUS),PBUS_SCHEMA) + input_pfs = validate(read_file(INPUT_FILE_PFS), PFS_SCHEMA) + input_pfs2 = copy.deepcopy(input_pfs) + if "loads" in input_pfs2["network"]["elements"]: + loads = input_pfs2["network"]["elements"]["loads"] + input_pfs2["network"]["elements"].clear() + input_pfs2["network"]["elements"]["loads"] = loads + else: + input_pfs2["network"]["elements"].clear() + max_p = max(result["period"] for result in output_market["session"]["periods"]) + max_id=-1 + for skip in input_pfs["network"]["elements"]: + temp = max(ids["id"] for ids in input_pfs["network"]["elements"][skip]) + max_id = temp if temp > max_id else max_id + results= {"results":[]} + for i in range(max_p): + if i > 0: + input = create_input_pfs(copy.deepcopy(input_pfs2), output_market, players_buses,i, max_id) + else: + input = create_input_pfs(copy.deepcopy(input_pfs), output_market, players_buses,i, max_id) + response = run_power_flow(input) + build_result(results, response,i) + write_file(results) diff --git a/scripts/INFO.md b/scripts/INFO.md deleted file mode 100644 index 293c33e..0000000 --- a/scripts/INFO.md +++ /dev/null @@ -1 +0,0 @@ -This folder can be used to store processing scripts and tool specifications used in the project. \ No newline at end of file