From 8cb191374b0c53fac281bc7ab25cd6cf2f49e324 Mon Sep 17 00:00:00 2001 From: Geoffroy Jamgotchian Date: Mon, 19 Jun 2023 23:05:34 +0200 Subject: [PATCH 1/4] OLF fast restart notebook Signed-off-by: Geoffroy Jamgotchian --- olf_fast_restart.ipynb | 881 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 881 insertions(+) create mode 100644 olf_fast_restart.ipynb diff --git a/olf_fast_restart.ipynb b/olf_fast_restart.ipynb new file mode 100644 index 0000000..1cfd1ae --- /dev/null +++ b/olf_fast_restart.ipynb @@ -0,0 +1,881 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "collapsed": true, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.553548Z", + "start_time": "2023-06-19T21:03:51.221942Z" + } + }, + "outputs": [], + "source": [ + "import pypowsybl as pp" + ] + }, + { + "cell_type": "markdown", + "source": [ + "Configure logger to show information" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 2, + "outputs": [], + "source": [ + "import logging\n", + "logging.basicConfig()\n", + "logging.getLogger('powsybl').setLevel(logging.INFO)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.555071Z", + "start_time": "2023-06-19T21:03:51.553784Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Create an IEEE 14 network instance" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 3, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:powsybl:Using platform configuration provider classic\n", + "INFO:powsybl:Platform configuration defined by .properties files of directory /Users/geo/.itools\n" + ] + } + ], + "source": [ + "n = pp.network.create_ieee14()" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.584007Z", + "start_time": "2023-06-19T21:03:51.555220Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Configure load flow parameters to fast restart mode. In this mode, many load flow context data are saved between two run to allow faster restart." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 4, + "outputs": [], + "source": [ + "p = pp.loadflow.Parameters(provider_parameters={'networkCacheEnabled': 'true'})" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.584178Z", + "start_time": "2023-06-19T21:03:51.562089Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Run first load flow, flat start mode (this is the default behaviours). It converges in 3 iterations. We can see thanks to the log \"Network cache created for network 'ieee14cdf'\" that cache is first initialized for this network." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 5, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:powsybl:loadflow provider used is : OpenLoadFlow\n", + "INFO:powsybl:LocalComputationConfig [localDir=/var/folders/fb/0cwcb1dd7l583x387c1snt4w0000gn/T, availableCore=1]\n", + "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.2.1, gitVersion=aa11c35697cd789191bf66265ed8f546cc429dae, gitBranch=v1.2.1, buildTimestamp=2023-06-07T20:14:23.956+02:00}\n", + "INFO:powsybl:Parameters:\n", + "┌──────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", + "│ Name │ Value │\n", + "├──────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", + "│ voltageInitMode │ UNIFORM_VALUES │\n", + "│ transformerVoltageControlOn │ false │\n", + "│ useReactiveLimits │ true │\n", + "│ phaseShifterRegulationOn │ false │\n", + "│ twtSplitShuntAdmittance │ false │\n", + "│ shuntCompensatorVoltageControlOn │ false │\n", + "│ readSlackBus │ true │\n", + "│ writeSlackBus │ false │\n", + "│ dc │ false │\n", + "│ distributedSlack │ true │\n", + "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", + "│ dcUseTransformerRatio │ true │\n", + "│ countriesToBalance │ │\n", + "│ computedConnectedComponentScope │ MAIN │\n", + "│ hvdcAcEmulation │ true │\n", + "│ dcPowerFactor │ 1.0 │\n", + "│ slackBusSelectionMode │ MOST_MESHED │\n", + "│ slackBusesIds │ [] │\n", + "│ throwsExceptionInCaseOfSlackDistributionFailure │ false │\n", + "│ voltageRemoteControl │ true │\n", + "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", + "│ loadPowerFactorConstant │ false │\n", + "│ plausibleActivePowerLimit │ 5000.0 │\n", + "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", + "│ slackBusPMaxMismatch │ 1.0 │\n", + "│ maxActivePowerMismatch │ 0.01 │\n", + "│ maxReactivePowerMismatch │ 0.01 │\n", + "│ maxVoltageMismatch │ 1.0E-4 │\n", + "│ maxAngleMismatch │ 1.0E-5 │\n", + "│ maxRatioMismatch │ 1.0E-5 │\n", + "│ maxSusceptanceMismatch │ 1.0E-4 │\n", + "│ voltagePerReactivePowerControl │ false │\n", + "│ reactivePowerRemoteControl │ false │\n", + "│ maxNewtonRaphsonIterations │ 15 │\n", + "│ maxOuterLoopIterations │ 20 │\n", + "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", + "│ voltageInitModeOverride │ NONE │\n", + "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ minPlausibleTargetVoltage │ 0.8 │\n", + "│ maxPlausibleTargetVoltage │ 1.2 │\n", + "│ minRealisticVoltage │ 0.5 │\n", + "│ maxRealisticVoltage │ 2.0 │\n", + "│ reactiveRangeCheckMode │ MAX │\n", + "│ lowImpedanceThreshold │ 1.0E-8 │\n", + "│ networkCacheEnabled │ true │\n", + "│ svcVoltageMonitoring │ true │\n", + "│ stateVectorScalingMode │ NONE │\n", + "│ maxSlackBusCount │ 1 │\n", + "│ debugDir │ │\n", + "│ incrementalTransformerVoltageControlOuterLoopMaxTapShift │ 3 │\n", + "│ secondaryVoltageControl │ false │\n", + "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", + "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", + "│ alwaysUpdateNetwork │ false │\n", + "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", + "│ reportedFeatures │ [] │\n", + "│ slackBusCountryFilter │ [] │\n", + "│ actionableSwitchesIds │ [] │\n", + "│ asymmetrical │ false │\n", + "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", + "└──────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", + "INFO:powsybl:Outer loops: [Distributed slack on generation, Voltage monitoring, Reactive limits]\n", + "INFO:powsybl:Network cache created for network 'ieee14cdf' and variant 'InitialState'\n", + "WARNING:powsybl:Network {CC0 SC0}: 3 generators have been discarded from active power control because of a targetP equals 0\n", + "WARNING:powsybl:Network {CC0 SC0}: 5 generators have been discarded from active power control because of maxP not plausible\n", + "INFO:powsybl:Network {CC0 SC0} has 14 buses and 20 branches\n", + "INFO:powsybl:Network {CC0 SC0} balance: active generation=272.4 MW, active load=258.99999999999994 MW, reactive generation=0.0 MVar, reactive load=73.5 MVar\n", + "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", + "INFO:powsybl:Network {CC0 SC0}, slack buses are [VL1_0] (method='Network extension bus')\n", + "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=0, newtonRaphsonIterations=3, newtonRaphsonStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=-0.006730108617958308, distributedActivePower=0.0))\n", + "INFO:powsybl:Load flow ran in 10 ms\n" + ] + }, + { + "data": { + "text/plain": "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, iteration_count=3, slack_bus_id='VL1_0', slack_bus_active_power_mismatch=-0.006730108617958308, distributed_active_power=0.0)]" + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pp.loadflow.run_ac(n, p)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.612644Z", + "start_time": "2023-06-19T21:03:51.564406Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Change section count of shunt compensator 'B9-SH' from 1 to 0 (so this is like a shunt disconnection)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 6, + "outputs": [ + { + "data": { + "text/plain": " section_count\nid \nB9-SH 0", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
section_count
id
B9-SH0
\n
" + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "n.update_shunt_compensators(id='B9-SH', section_count=0)\n", + "n.get_shunt_compensators().filter(items=['section_count'])" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.613241Z", + "start_time": "2023-06-19T21:03:51.583641Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Re-run the load flow. It converges in 3 iterations. We can see that previous created cache for this network has been reused \"Network cache reused for network 'ieee14cdf'\"" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 7, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:powsybl:loadflow provider used is : OpenLoadFlow\n", + "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.2.1, gitVersion=aa11c35697cd789191bf66265ed8f546cc429dae, gitBranch=v1.2.1, buildTimestamp=2023-06-07T20:14:23.956+02:00}\n", + "INFO:powsybl:Parameters:\n", + "┌──────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", + "│ Name │ Value │\n", + "├──────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", + "│ voltageInitMode │ UNIFORM_VALUES │\n", + "│ transformerVoltageControlOn │ false │\n", + "│ useReactiveLimits │ true │\n", + "│ phaseShifterRegulationOn │ false │\n", + "│ twtSplitShuntAdmittance │ false │\n", + "│ shuntCompensatorVoltageControlOn │ false │\n", + "│ readSlackBus │ true │\n", + "│ writeSlackBus │ false │\n", + "│ dc │ false │\n", + "│ distributedSlack │ true │\n", + "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", + "│ dcUseTransformerRatio │ true │\n", + "│ countriesToBalance │ │\n", + "│ computedConnectedComponentScope │ MAIN │\n", + "│ hvdcAcEmulation │ true │\n", + "│ dcPowerFactor │ 1.0 │\n", + "│ slackBusSelectionMode │ MOST_MESHED │\n", + "│ slackBusesIds │ [] │\n", + "│ throwsExceptionInCaseOfSlackDistributionFailure │ false │\n", + "│ voltageRemoteControl │ true │\n", + "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", + "│ loadPowerFactorConstant │ false │\n", + "│ plausibleActivePowerLimit │ 5000.0 │\n", + "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", + "│ slackBusPMaxMismatch │ 1.0 │\n", + "│ maxActivePowerMismatch │ 0.01 │\n", + "│ maxReactivePowerMismatch │ 0.01 │\n", + "│ maxVoltageMismatch │ 1.0E-4 │\n", + "│ maxAngleMismatch │ 1.0E-5 │\n", + "│ maxRatioMismatch │ 1.0E-5 │\n", + "│ maxSusceptanceMismatch │ 1.0E-4 │\n", + "│ voltagePerReactivePowerControl │ false │\n", + "│ reactivePowerRemoteControl │ false │\n", + "│ maxNewtonRaphsonIterations │ 15 │\n", + "│ maxOuterLoopIterations │ 20 │\n", + "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", + "│ voltageInitModeOverride │ NONE │\n", + "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ minPlausibleTargetVoltage │ 0.8 │\n", + "│ maxPlausibleTargetVoltage │ 1.2 │\n", + "│ minRealisticVoltage │ 0.5 │\n", + "│ maxRealisticVoltage │ 2.0 │\n", + "│ reactiveRangeCheckMode │ MAX │\n", + "│ lowImpedanceThreshold │ 1.0E-8 │\n", + "│ networkCacheEnabled │ true │\n", + "│ svcVoltageMonitoring │ true │\n", + "│ stateVectorScalingMode │ NONE │\n", + "│ maxSlackBusCount │ 1 │\n", + "│ debugDir │ │\n", + "│ incrementalTransformerVoltageControlOuterLoopMaxTapShift │ 3 │\n", + "│ secondaryVoltageControl │ false │\n", + "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", + "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", + "│ alwaysUpdateNetwork │ false │\n", + "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", + "│ reportedFeatures │ [] │\n", + "│ slackBusCountryFilter │ [] │\n", + "│ actionableSwitchesIds │ [] │\n", + "│ asymmetrical │ false │\n", + "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", + "└──────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", + "INFO:powsybl:Outer loops: [Distributed slack on generation, Voltage monitoring, Reactive limits]\n", + "INFO:powsybl:Network cache reused for network 'ieee14cdf' and variant 'InitialState'\n", + "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", + "INFO:powsybl:1 buses switched PV -> PQ (4 bus remains PV)\n", + "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=1, newtonRaphsonIterations=3, newtonRaphsonStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=0.15687212390882443, distributedActivePower=-0.006101882689879545))\n", + "INFO:powsybl:Load flow ran in 4 ms\n" + ] + }, + { + "data": { + "text/plain": "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, iteration_count=3, slack_bus_id='VL1_0', slack_bus_active_power_mismatch=0.15687212390882443, distributed_active_power=-0.006101882689879545)]" + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pp.loadflow.run_ac(n, p)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.613689Z", + "start_time": "2023-06-19T21:03:51.589312Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Update generator 'B1-G' target voltage to 144 Kv" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 8, + "outputs": [ + { + "data": { + "text/plain": " target_v\nid \nB1-G 144.000\nB2-G 141.075\nB3-G 136.350\nB6-G 12.840\nB8-G 21.800", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
target_v
id
B1-G144.000
B2-G141.075
B3-G136.350
B6-G12.840
B8-G21.800
\n
" + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "n.update_generators(id='B1-G', target_v=144)\n", + "n.get_generators().filter(items=['target_v'])" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.613881Z", + "start_time": "2023-06-19T21:03:51.598676Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Re-run the load flow. It converges in 1 iterations. Again, we can see that previous created cache for this network has been reused thanks to the log \"Network cache reused for network 'ieee14cdf'\"" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 9, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:powsybl:loadflow provider used is : OpenLoadFlow\n", + "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.2.1, gitVersion=aa11c35697cd789191bf66265ed8f546cc429dae, gitBranch=v1.2.1, buildTimestamp=2023-06-07T20:14:23.956+02:00}\n", + "INFO:powsybl:Parameters:\n", + "┌──────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", + "│ Name │ Value │\n", + "├──────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", + "│ voltageInitMode │ UNIFORM_VALUES │\n", + "│ transformerVoltageControlOn │ false │\n", + "│ useReactiveLimits │ true │\n", + "│ phaseShifterRegulationOn │ false │\n", + "│ twtSplitShuntAdmittance │ false │\n", + "│ shuntCompensatorVoltageControlOn │ false │\n", + "│ readSlackBus │ true │\n", + "│ writeSlackBus │ false │\n", + "│ dc │ false │\n", + "│ distributedSlack │ true │\n", + "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", + "│ dcUseTransformerRatio │ true │\n", + "│ countriesToBalance │ │\n", + "│ computedConnectedComponentScope │ MAIN │\n", + "│ hvdcAcEmulation │ true │\n", + "│ dcPowerFactor │ 1.0 │\n", + "│ slackBusSelectionMode │ MOST_MESHED │\n", + "│ slackBusesIds │ [] │\n", + "│ throwsExceptionInCaseOfSlackDistributionFailure │ false │\n", + "│ voltageRemoteControl │ true │\n", + "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", + "│ loadPowerFactorConstant │ false │\n", + "│ plausibleActivePowerLimit │ 5000.0 │\n", + "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", + "│ slackBusPMaxMismatch │ 1.0 │\n", + "│ maxActivePowerMismatch │ 0.01 │\n", + "│ maxReactivePowerMismatch │ 0.01 │\n", + "│ maxVoltageMismatch │ 1.0E-4 │\n", + "│ maxAngleMismatch │ 1.0E-5 │\n", + "│ maxRatioMismatch │ 1.0E-5 │\n", + "│ maxSusceptanceMismatch │ 1.0E-4 │\n", + "│ voltagePerReactivePowerControl │ false │\n", + "│ reactivePowerRemoteControl │ false │\n", + "│ maxNewtonRaphsonIterations │ 15 │\n", + "│ maxOuterLoopIterations │ 20 │\n", + "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", + "│ voltageInitModeOverride │ NONE │\n", + "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ minPlausibleTargetVoltage │ 0.8 │\n", + "│ maxPlausibleTargetVoltage │ 1.2 │\n", + "│ minRealisticVoltage │ 0.5 │\n", + "│ maxRealisticVoltage │ 2.0 │\n", + "│ reactiveRangeCheckMode │ MAX │\n", + "│ lowImpedanceThreshold │ 1.0E-8 │\n", + "│ networkCacheEnabled │ true │\n", + "│ svcVoltageMonitoring │ true │\n", + "│ stateVectorScalingMode │ NONE │\n", + "│ maxSlackBusCount │ 1 │\n", + "│ debugDir │ │\n", + "│ incrementalTransformerVoltageControlOuterLoopMaxTapShift │ 3 │\n", + "│ secondaryVoltageControl │ false │\n", + "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", + "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", + "│ alwaysUpdateNetwork │ false │\n", + "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", + "│ reportedFeatures │ [] │\n", + "│ slackBusCountryFilter │ [] │\n", + "│ actionableSwitchesIds │ [] │\n", + "│ asymmetrical │ false │\n", + "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", + "└──────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", + "INFO:powsybl:Outer loops: [Distributed slack on generation, Voltage monitoring, Reactive limits]\n", + "INFO:powsybl:Network cache reused for network 'ieee14cdf' and variant 'InitialState'\n", + "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", + "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=0, newtonRaphsonIterations=1, newtonRaphsonStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=-0.024038566896456004, distributedActivePower=0.0))\n", + "INFO:powsybl:Load flow ran in 3 ms\n" + ] + }, + { + "data": { + "text/plain": "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, iteration_count=1, slack_bus_id='VL1_0', slack_bus_active_power_mismatch=-0.024038566896456004, distributed_active_power=0.0)]" + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pp.loadflow.run_ac(n, p)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.614589Z", + "start_time": "2023-06-19T21:03:51.603944Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "We are now going to demonstrate how to change a switch position in fast restart mode.\n", + "First, let's extend the IEEE 14 with an additionnal bus with just a load connected to the initial network with a switch (initially open)" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 10, + "outputs": [], + "source": [ + "n.create_buses(id='B', voltage_level_id='VL10')\n", + "n.create_loads(id='LD', voltage_level_id='VL10', bus_id='B', p0=10, q0=5)\n", + "n.create_switches(id='SW', voltage_level_id='VL10', bus1_id='B10', bus2_id='B', open=True)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.622127Z", + "start_time": "2023-06-19T21:03:51.614826Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "To be able to operate a switch in fast restart mode, we need to specify the list of switch IDs that might be open or closed in advance" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 11, + "outputs": [], + "source": [ + "p = pp.loadflow.Parameters(provider_parameters={'networkCacheEnabled': 'true', 'actionableSwitchesIds': 'SW'})" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.622365Z", + "start_time": "2023-06-19T21:03:51.617156Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "We can now re-run the load flow. We can see that because we have changed the network structure (adding new elements) and also changed the load flow parameters, the cache has been invalidated \"Network cache evicted...\" and a new one has been created \"Network cache created for network 'ieee14cdf'\"." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 12, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:powsybl:loadflow provider used is : OpenLoadFlow\n", + "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.2.1, gitVersion=aa11c35697cd789191bf66265ed8f546cc429dae, gitBranch=v1.2.1, buildTimestamp=2023-06-07T20:14:23.956+02:00}\n", + "INFO:powsybl:Parameters:\n", + "┌──────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", + "│ Name │ Value │\n", + "├──────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", + "│ voltageInitMode │ UNIFORM_VALUES │\n", + "│ transformerVoltageControlOn │ false │\n", + "│ useReactiveLimits │ true │\n", + "│ phaseShifterRegulationOn │ false │\n", + "│ twtSplitShuntAdmittance │ false │\n", + "│ shuntCompensatorVoltageControlOn │ false │\n", + "│ readSlackBus │ true │\n", + "│ writeSlackBus │ false │\n", + "│ dc │ false │\n", + "│ distributedSlack │ true │\n", + "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", + "│ dcUseTransformerRatio │ true │\n", + "│ countriesToBalance │ │\n", + "│ computedConnectedComponentScope │ MAIN │\n", + "│ hvdcAcEmulation │ true │\n", + "│ dcPowerFactor │ 1.0 │\n", + "│ slackBusSelectionMode │ MOST_MESHED │\n", + "│ slackBusesIds │ [] │\n", + "│ throwsExceptionInCaseOfSlackDistributionFailure │ false │\n", + "│ voltageRemoteControl │ true │\n", + "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", + "│ loadPowerFactorConstant │ false │\n", + "│ plausibleActivePowerLimit │ 5000.0 │\n", + "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", + "│ slackBusPMaxMismatch │ 1.0 │\n", + "│ maxActivePowerMismatch │ 0.01 │\n", + "│ maxReactivePowerMismatch │ 0.01 │\n", + "│ maxVoltageMismatch │ 1.0E-4 │\n", + "│ maxAngleMismatch │ 1.0E-5 │\n", + "│ maxRatioMismatch │ 1.0E-5 │\n", + "│ maxSusceptanceMismatch │ 1.0E-4 │\n", + "│ voltagePerReactivePowerControl │ false │\n", + "│ reactivePowerRemoteControl │ false │\n", + "│ maxNewtonRaphsonIterations │ 15 │\n", + "│ maxOuterLoopIterations │ 20 │\n", + "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", + "│ voltageInitModeOverride │ NONE │\n", + "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ minPlausibleTargetVoltage │ 0.8 │\n", + "│ maxPlausibleTargetVoltage │ 1.2 │\n", + "│ minRealisticVoltage │ 0.5 │\n", + "│ maxRealisticVoltage │ 2.0 │\n", + "│ reactiveRangeCheckMode │ MAX │\n", + "│ lowImpedanceThreshold │ 1.0E-8 │\n", + "│ networkCacheEnabled │ true │\n", + "│ svcVoltageMonitoring │ true │\n", + "│ stateVectorScalingMode │ NONE │\n", + "│ maxSlackBusCount │ 1 │\n", + "│ debugDir │ │\n", + "│ incrementalTransformerVoltageControlOuterLoopMaxTapShift │ 3 │\n", + "│ secondaryVoltageControl │ false │\n", + "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", + "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", + "│ alwaysUpdateNetwork │ false │\n", + "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", + "│ reportedFeatures │ [] │\n", + "│ slackBusCountryFilter │ [] │\n", + "│ actionableSwitchesIds │ [SW] │\n", + "│ asymmetrical │ false │\n", + "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", + "└──────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", + "INFO:powsybl:Outer loops: [Distributed slack on generation, Voltage monitoring, Reactive limits]\n", + "INFO:powsybl:Network cache evicted because of parameters change\n", + "INFO:powsybl:Network cache created for network 'ieee14cdf' and variant 'InitialState'\n", + "WARNING:powsybl:Network {CC0 SC0}: 3 generators have been discarded from active power control because of a targetP equals 0\n", + "WARNING:powsybl:Network {CC0 SC0}: 5 generators have been discarded from active power control because of maxP not plausible\n", + "WARNING:powsybl:Network {CC0 SC0}: 1 branches are non impedant\n", + "INFO:powsybl:Network {CC0 SC0} has 15 buses and 21 branches\n", + "INFO:powsybl:Network {CC0 SC0} balance: active generation=272.4 MW, active load=268.99999999999994 MW, reactive generation=0.0 MVar, reactive load=78.5 MVar\n", + "INFO:powsybl:Network {CC0 SC0}, slack buses are [B1] (method='Network extension bus')\n", + "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", + "INFO:powsybl:1 buses switched PV -> PQ (4 bus remains PV)\n", + "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=1, newtonRaphsonIterations=4, newtonRaphsonStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=0.016927725231896673, distributedActivePower=-0.0034933533142211814))\n", + "INFO:powsybl:Load flow ran in 8 ms\n" + ] + }, + { + "data": { + "text/plain": "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, iteration_count=4, slack_bus_id='B1', slack_bus_active_power_mismatch=0.016927725231896673, distributed_active_power=-0.0034933533142211814)]" + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pp.loadflow.run_ac(n, p)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.637757Z", + "start_time": "2023-06-19T21:03:51.619469Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "Now, we can update close the switch" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 13, + "outputs": [], + "source": [ + "n.update_switches(id='SW', open=False)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.685515Z", + "start_time": "2023-06-19T21:03:51.632415Z" + } + } + }, + { + "cell_type": "markdown", + "source": [ + "And once again, re-run the load low and see that we restart from the cache \"Network cache reused for network 'ieee14cdf'\"" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "markdown", + "source": [ + "HACK: new connected bus has no voltage defined and NR v init failed. This is to fix in next OLF version. As a temporary workaround manually set voltage to new bus." + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 14, + "outputs": [], + "source": [ + "n.update_buses(id='VL10_0', v_mag=12, v_angle=0)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.685691Z", + "start_time": "2023-06-19T21:03:51.634806Z" + } + } + }, + { + "cell_type": "code", + "execution_count": 15, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:powsybl:loadflow provider used is : OpenLoadFlow\n", + "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.2.1, gitVersion=aa11c35697cd789191bf66265ed8f546cc429dae, gitBranch=v1.2.1, buildTimestamp=2023-06-07T20:14:23.956+02:00}\n", + "INFO:powsybl:Parameters:\n", + "┌──────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", + "│ Name │ Value │\n", + "├──────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", + "│ voltageInitMode │ UNIFORM_VALUES │\n", + "│ transformerVoltageControlOn │ false │\n", + "│ useReactiveLimits │ true │\n", + "│ phaseShifterRegulationOn │ false │\n", + "│ twtSplitShuntAdmittance │ false │\n", + "│ shuntCompensatorVoltageControlOn │ false │\n", + "│ readSlackBus │ true │\n", + "│ writeSlackBus │ false │\n", + "│ dc │ false │\n", + "│ distributedSlack │ true │\n", + "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", + "│ dcUseTransformerRatio │ true │\n", + "│ countriesToBalance │ │\n", + "│ computedConnectedComponentScope │ MAIN │\n", + "│ hvdcAcEmulation │ true │\n", + "│ dcPowerFactor │ 1.0 │\n", + "│ slackBusSelectionMode │ MOST_MESHED │\n", + "│ slackBusesIds │ [] │\n", + "│ throwsExceptionInCaseOfSlackDistributionFailure │ false │\n", + "│ voltageRemoteControl │ true │\n", + "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", + "│ loadPowerFactorConstant │ false │\n", + "│ plausibleActivePowerLimit │ 5000.0 │\n", + "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", + "│ slackBusPMaxMismatch │ 1.0 │\n", + "│ maxActivePowerMismatch │ 0.01 │\n", + "│ maxReactivePowerMismatch │ 0.01 │\n", + "│ maxVoltageMismatch │ 1.0E-4 │\n", + "│ maxAngleMismatch │ 1.0E-5 │\n", + "│ maxRatioMismatch │ 1.0E-5 │\n", + "│ maxSusceptanceMismatch │ 1.0E-4 │\n", + "│ voltagePerReactivePowerControl │ false │\n", + "│ reactivePowerRemoteControl │ false │\n", + "│ maxNewtonRaphsonIterations │ 15 │\n", + "│ maxOuterLoopIterations │ 20 │\n", + "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", + "│ voltageInitModeOverride │ NONE │\n", + "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ minPlausibleTargetVoltage │ 0.8 │\n", + "│ maxPlausibleTargetVoltage │ 1.2 │\n", + "│ minRealisticVoltage │ 0.5 │\n", + "│ maxRealisticVoltage │ 2.0 │\n", + "│ reactiveRangeCheckMode │ MAX │\n", + "│ lowImpedanceThreshold │ 1.0E-8 │\n", + "│ networkCacheEnabled │ true │\n", + "│ svcVoltageMonitoring │ true │\n", + "│ stateVectorScalingMode │ NONE │\n", + "│ maxSlackBusCount │ 1 │\n", + "│ debugDir │ │\n", + "│ incrementalTransformerVoltageControlOuterLoopMaxTapShift │ 3 │\n", + "│ secondaryVoltageControl │ false │\n", + "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", + "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", + "│ alwaysUpdateNetwork │ false │\n", + "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", + "│ reportedFeatures │ [] │\n", + "│ slackBusCountryFilter │ [] │\n", + "│ actionableSwitchesIds │ [SW] │\n", + "│ asymmetrical │ false │\n", + "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", + "└──────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", + "INFO:powsybl:Outer loops: [Distributed slack on generation, Voltage monitoring, Reactive limits]\n", + "INFO:powsybl:Network cache reused for network 'ieee14cdf' and variant 'InitialState'\n", + "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n" + ] + }, + { + "ename": "PyPowsyblError", + "evalue": "com.powsybl.commons.PowsyblException: Voltage magnitude is undefined for bus 'B'", + "output_type": "error", + "traceback": [ + "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", + "\u001B[0;31mPyPowsyblError\u001B[0m Traceback (most recent call last)", + "Cell \u001B[0;32mIn[15], line 1\u001B[0m\n\u001B[0;32m----> 1\u001B[0m \u001B[43mpp\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mloadflow\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mrun_ac\u001B[49m\u001B[43m(\u001B[49m\u001B[43mn\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mp\u001B[49m\u001B[43m)\u001B[49m\n", + "File \u001B[0;32m~/PycharmProjects/pypowsybl/pypowsybl/loadflow.py:265\u001B[0m, in \u001B[0;36mrun_ac\u001B[0;34m(network, parameters, provider, reporter)\u001B[0m\n\u001B[1;32m 252\u001B[0m \u001B[38;5;250m\u001B[39m\u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 253\u001B[0m \u001B[38;5;124;03mRun an AC loadflow on a network.\u001B[39;00m\n\u001B[1;32m 254\u001B[0m \n\u001B[0;32m (...)\u001B[0m\n\u001B[1;32m 262\u001B[0m \u001B[38;5;124;03m A list of component results, one for each component of the network.\u001B[39;00m\n\u001B[1;32m 263\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 264\u001B[0m p \u001B[38;5;241m=\u001B[39m parameters\u001B[38;5;241m.\u001B[39m_to_c_parameters() \u001B[38;5;28;01mif\u001B[39;00m parameters \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m \u001B[38;5;28;01melse\u001B[39;00m _pypowsybl\u001B[38;5;241m.\u001B[39mLoadFlowParameters()\n\u001B[0;32m--> 265\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m [ComponentResult(res) \u001B[38;5;28;01mfor\u001B[39;00m res \u001B[38;5;129;01min\u001B[39;00m \u001B[43m_pypowsybl\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mrun_loadflow\u001B[49m\u001B[43m(\u001B[49m\u001B[43mnetwork\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_handle\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mp\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mprovider\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mNone\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mif\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mreporter\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;129;43;01mis\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mNone\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[38;5;28;43;01melse\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mreporter\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_reporter_model\u001B[49m\u001B[43m)\u001B[49m]\n", + "\u001B[0;31mPyPowsyblError\u001B[0m: com.powsybl.commons.PowsyblException: Voltage magnitude is undefined for bus 'B'" + ] + } + ], + "source": [ + "pp.loadflow.run_ac(n, p)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2023-06-19T21:03:51.738531Z", + "start_time": "2023-06-19T21:03:51.637341Z" + } + } + }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "start_time": "2023-06-19T21:03:51.692400Z" + } + } + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From 108f1e34c6a138de8edc06980fd64da414bb7b9c Mon Sep 17 00:00:00 2001 From: Geoffroy Jamgotchian Date: Wed, 12 Jun 2024 09:26:10 +0200 Subject: [PATCH 2/4] Add supported modifications Signed-off-by: Geoffroy Jamgotchian --- olf_fast_restart.ipynb | 999 ++++++++++++++++++++++++----------------- 1 file changed, 597 insertions(+), 402 deletions(-) diff --git a/olf_fast_restart.ipynb b/olf_fast_restart.ipynb index 1cfd1ae..2540147 100644 --- a/olf_fast_restart.ipynb +++ b/olf_fast_restart.ipynb @@ -2,18 +2,18 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.553548Z", - "start_time": "2023-06-19T21:03:51.221942Z" + "end_time": "2024-06-12T07:13:50.353436Z", + "start_time": "2024-06-12T07:13:49.982142Z" } }, - "outputs": [], "source": [ "import pypowsybl as pp" - ] + ], + "outputs": [], + "execution_count": 2 }, { "cell_type": "markdown", @@ -26,8 +26,6 @@ }, { "cell_type": "code", - "execution_count": 2, - "outputs": [], "source": [ "import logging\n", "logging.basicConfig()\n", @@ -36,10 +34,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.555071Z", - "start_time": "2023-06-19T21:03:51.553784Z" + "end_time": "2024-06-12T07:13:51.917037Z", + "start_time": "2024-06-12T07:13:51.911874Z" } - } + }, + "outputs": [], + "execution_count": 3 }, { "cell_type": "markdown", @@ -52,32 +52,41 @@ }, { "cell_type": "code", - "execution_count": 3, + "source": [ + "n = pp.network.create_ieee14()" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-06-12T07:13:54.261364Z", + "start_time": "2024-06-12T07:13:54.236238Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:powsybl:Using platform configuration provider classic\n", - "INFO:powsybl:Platform configuration defined by .properties files of directory /Users/geo/.itools\n" + "INFO:powsybl:Platform configuration defined by YAML file /home/jamgotchiangeo/.itools/config.yml\n" ] } ], - "source": [ - "n = pp.network.create_ieee14()" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.584007Z", - "start_time": "2023-06-19T21:03:51.555220Z" - } - } + "execution_count": 4 }, { "cell_type": "markdown", "source": [ - "Configure load flow parameters to fast restart mode. In this mode, many load flow context data are saved between two run to allow faster restart." + "Configure load flow parameters to fast restart mode. In this mode, many load flow context data are saved between two run to allow faster restart.\n", + "\n", + "Supported modifications in fast restart are:\n", + " - target voltage of generators.\n", + " - section count of shunt compensators.\n", + " - open/close of switches.\n", + " - target voltage and tap position of transformers (2 and 3 windings).\n", + " - secondary voltage control pilot point target voltage and control units participation.\n", + "\n", + "All others modifications wil result by a full cache cleaning and so on normal execution performances. " ], "metadata": { "collapsed": false @@ -85,18 +94,18 @@ }, { "cell_type": "code", - "execution_count": 4, - "outputs": [], "source": [ "p = pp.loadflow.Parameters(provider_parameters={'networkCacheEnabled': 'true'})" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.584178Z", - "start_time": "2023-06-19T21:03:51.562089Z" + "end_time": "2024-06-12T07:13:57.412331Z", + "start_time": "2024-06-12T07:13:57.409514Z" } - } + }, + "outputs": [], + "execution_count": 5 }, { "cell_type": "markdown", @@ -109,82 +118,111 @@ }, { "cell_type": "code", - "execution_count": 5, + "source": [ + "pp.loadflow.run_ac(n, p)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-06-12T07:14:06.649111Z", + "start_time": "2024-06-12T07:14:06.627210Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:powsybl:loadflow provider used is : OpenLoadFlow\n", - "INFO:powsybl:LocalComputationConfig [localDir=/var/folders/fb/0cwcb1dd7l583x387c1snt4w0000gn/T, availableCore=1]\n", - "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.2.1, gitVersion=aa11c35697cd789191bf66265ed8f546cc429dae, gitBranch=v1.2.1, buildTimestamp=2023-06-07T20:14:23.956+02:00}\n", + "INFO:powsybl:LocalComputationConfig [localDir=/tmp, availableCore=1]\n", + "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.9.0, gitVersion=3b3973fa5b771f67791a12d741c38a8f22e67f94, gitBranch=UNKNOWN, buildTimestamp=2024-04-04T10:35:32.204Z}\n", "INFO:powsybl:Parameters:\n", - "┌──────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", - "│ Name │ Value │\n", - "├──────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", - "│ voltageInitMode │ UNIFORM_VALUES │\n", - "│ transformerVoltageControlOn │ false │\n", - "│ useReactiveLimits │ true │\n", - "│ phaseShifterRegulationOn │ false │\n", - "│ twtSplitShuntAdmittance │ false │\n", - "│ shuntCompensatorVoltageControlOn │ false │\n", - "│ readSlackBus │ true │\n", - "│ writeSlackBus │ false │\n", - "│ dc │ false │\n", - "│ distributedSlack │ true │\n", - "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", - "│ dcUseTransformerRatio │ true │\n", - "│ countriesToBalance │ │\n", - "│ computedConnectedComponentScope │ MAIN │\n", - "│ hvdcAcEmulation │ true │\n", - "│ dcPowerFactor │ 1.0 │\n", - "│ slackBusSelectionMode │ MOST_MESHED │\n", - "│ slackBusesIds │ [] │\n", - "│ throwsExceptionInCaseOfSlackDistributionFailure │ false │\n", - "│ voltageRemoteControl │ true │\n", - "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", - "│ loadPowerFactorConstant │ false │\n", - "│ plausibleActivePowerLimit │ 5000.0 │\n", - "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", - "│ slackBusPMaxMismatch │ 1.0 │\n", - "│ maxActivePowerMismatch │ 0.01 │\n", - "│ maxReactivePowerMismatch │ 0.01 │\n", - "│ maxVoltageMismatch │ 1.0E-4 │\n", - "│ maxAngleMismatch │ 1.0E-5 │\n", - "│ maxRatioMismatch │ 1.0E-5 │\n", - "│ maxSusceptanceMismatch │ 1.0E-4 │\n", - "│ voltagePerReactivePowerControl │ false │\n", - "│ reactivePowerRemoteControl │ false │\n", - "│ maxNewtonRaphsonIterations │ 15 │\n", - "│ maxOuterLoopIterations │ 20 │\n", - "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", - "│ voltageInitModeOverride │ NONE │\n", - "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", - "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", - "│ minPlausibleTargetVoltage │ 0.8 │\n", - "│ maxPlausibleTargetVoltage │ 1.2 │\n", - "│ minRealisticVoltage │ 0.5 │\n", - "│ maxRealisticVoltage │ 2.0 │\n", - "│ reactiveRangeCheckMode │ MAX │\n", - "│ lowImpedanceThreshold │ 1.0E-8 │\n", - "│ networkCacheEnabled │ true │\n", - "│ svcVoltageMonitoring │ true │\n", - "│ stateVectorScalingMode │ NONE │\n", - "│ maxSlackBusCount │ 1 │\n", - "│ debugDir │ │\n", - "│ incrementalTransformerVoltageControlOuterLoopMaxTapShift │ 3 │\n", - "│ secondaryVoltageControl │ false │\n", - "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", - "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", - "│ alwaysUpdateNetwork │ false │\n", - "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", - "│ reportedFeatures │ [] │\n", - "│ slackBusCountryFilter │ [] │\n", - "│ actionableSwitchesIds │ [] │\n", - "│ asymmetrical │ false │\n", - "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", - "└──────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", - "INFO:powsybl:Outer loops: [Distributed slack on generation, Voltage monitoring, Reactive limits]\n", + "┌───────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", + "│ Name │ Value │\n", + "├───────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", + "│ voltageInitMode │ UNIFORM_VALUES │\n", + "│ transformerVoltageControlOn │ false │\n", + "│ useReactiveLimits │ true │\n", + "│ phaseShifterRegulationOn │ false │\n", + "│ twtSplitShuntAdmittance │ false │\n", + "│ shuntCompensatorVoltageControlOn │ false │\n", + "│ readSlackBus │ true │\n", + "│ writeSlackBus │ true │\n", + "│ dc │ false │\n", + "│ distributedSlack │ true │\n", + "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", + "│ dcUseTransformerRatio │ true │\n", + "│ countriesToBalance │ │\n", + "│ computedConnectedComponentScope │ MAIN │\n", + "│ hvdcAcEmulation │ true │\n", + "│ dcPowerFactor │ 1.0 │\n", + "│ slackBusSelectionMode │ MOST_MESHED │\n", + "│ slackBusesIds │ [] │\n", + "│ slackDistributionFailureBehavior │ LEAVE_ON_SLACK_BUS │\n", + "│ voltageRemoteControl │ true │\n", + "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", + "│ loadPowerFactorConstant │ false │\n", + "│ plausibleActivePowerLimit │ 5000.0 │\n", + "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", + "│ slackBusPMaxMismatch │ 1.0 │\n", + "│ maxActivePowerMismatch │ 0.01 │\n", + "│ maxReactivePowerMismatch │ 0.01 │\n", + "│ maxVoltageMismatch │ 1.0E-4 │\n", + "│ maxAngleMismatch │ 1.0E-5 │\n", + "│ maxRatioMismatch │ 1.0E-5 │\n", + "│ maxSusceptanceMismatch │ 1.0E-4 │\n", + "│ voltagePerReactivePowerControl │ false │\n", + "│ generatorReactivePowerRemoteControl │ false │\n", + "│ transformerReactivePowerControl │ false │\n", + "│ maxNewtonRaphsonIterations │ 15 │\n", + "│ maxOuterLoopIterations │ 20 │\n", + "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", + "│ voltageInitModeOverride │ NONE │\n", + "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ minPlausibleTargetVoltage │ 0.8 │\n", + "│ maxPlausibleTargetVoltage │ 1.2 │\n", + "│ minRealisticVoltage │ 0.5 │\n", + "│ maxRealisticVoltage │ 2.0 │\n", + "│ reactiveRangeCheckMode │ MAX │\n", + "│ lowImpedanceThreshold │ 1.0E-8 │\n", + "│ networkCacheEnabled │ true │\n", + "│ svcVoltageMonitoring │ true │\n", + "│ stateVectorScalingMode │ NONE │\n", + "│ maxSlackBusCount │ 1 │\n", + "│ debugDir │ │\n", + "│ incrementalTransformerRatioTapControlOuterLoopMaxTapShift │ 3 │\n", + "│ secondaryVoltageControl │ false │\n", + "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", + "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", + "│ alwaysUpdateNetwork │ false │\n", + "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", + "│ reportedFeatures │ [] │\n", + "│ slackBusCountryFilter │ [] │\n", + "│ actionableSwitchesIds │ [] │\n", + "│ actionableTransformersIds │ [] │\n", + "│ asymmetrical │ false │\n", + "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", + "│ reactivePowerDispatchMode │ Q_EQUAL_PROPORTION │\n", + "│ outerLoopNames │ │\n", + "│ useActiveLimits │ true │\n", + "│ disableVoltageControlOfGeneratorsOutsideActivePowerLimits │ false │\n", + "│ lineSearchStateVectorScalingMaxIteration │ 10 │\n", + "│ lineSearchStateVectorScalingStepFold │ 1.3333333333333333 │\n", + "│ maxVoltageChangeStateVectorScalingMaxDv │ 0.1 │\n", + "│ maxVoltageChangeStateVectorScalingMaxDphi │ 0.17453292519943295 │\n", + "│ linePerUnitMode │ IMPEDANCE │\n", + "│ useLoadModel │ false │\n", + "│ dcApproximationType │ IGNORE_R │\n", + "│ simulateAutomationSystems │ false │\n", + "│ acSolverType │ NEWTON_RAPHSON │\n", + "│ maxNewtonKrylovIterations │ 100 │\n", + "│ newtonKrylovLineSearch │ false │\n", + "│ referenceBusSelectionMode │ FIRST_SLACK │\n", + "│ writeReferenceTerminals │ true │\n", + "│ voltageTargetPriorities │ [GENERATOR, TRANSFORMER, SHUNT] │\n", + "└───────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", + "INFO:powsybl:Outer loops: [DistributedSlack, VoltageMonitoring, ReactiveLimits]\n", "INFO:powsybl:Network cache created for network 'ieee14cdf' and variant 'InitialState'\n", "WARNING:powsybl:Network {CC0 SC0}: 3 generators have been discarded from active power control because of a targetP equals 0\n", "WARNING:powsybl:Network {CC0 SC0}: 5 generators have been discarded from active power control because of maxP not plausible\n", @@ -192,29 +230,23 @@ "INFO:powsybl:Network {CC0 SC0} balance: active generation=272.4 MW, active load=258.99999999999994 MW, reactive generation=0.0 MVar, reactive load=73.5 MVar\n", "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", "INFO:powsybl:Network {CC0 SC0}, slack buses are [VL1_0] (method='Network extension bus')\n", - "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=0, newtonRaphsonIterations=3, newtonRaphsonStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=-0.006730108617958308, distributedActivePower=0.0))\n", - "INFO:powsybl:Load flow ran in 10 ms\n" + "INFO:powsybl:Network {CC0 SC0}, reference bus is VL1_0 (method='First slack')\n", + "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=0, newtonRaphsonIterations=3, solverStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=-0.006730108618313579, distributedActivePower=0.0))\n", + "INFO:powsybl:Load flow ran in 8 ms\n" ] }, { "data": { - "text/plain": "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, iteration_count=3, slack_bus_id='VL1_0', slack_bus_active_power_mismatch=-0.006730108617958308, distributed_active_power=0.0)]" + "text/plain": [ + "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, status_text=CONVERGED, iteration_count=3, reference_bus_id='VL1_0', slack_bus_results=[SlackBusResult(id='VL1_0', active_power_mismatch=-0.006730108618313579)], distributed_active_power=0.0)]" + ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], - "source": [ - "pp.loadflow.run_ac(n, p)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.612644Z", - "start_time": "2023-06-19T21:03:51.564406Z" - } - } + "execution_count": 6 }, { "cell_type": "markdown", @@ -227,18 +259,6 @@ }, { "cell_type": "code", - "execution_count": 6, - "outputs": [ - { - "data": { - "text/plain": " section_count\nid \nB9-SH 0", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
section_count
id
B9-SH0
\n
" - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "n.update_shunt_compensators(id='B9-SH', section_count=0)\n", "n.get_shunt_compensators().filter(items=['section_count'])" @@ -246,10 +266,60 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.613241Z", - "start_time": "2023-06-19T21:03:51.583641Z" + "end_time": "2024-06-12T07:14:13.529836Z", + "start_time": "2024-06-12T07:14:13.517985Z" } - } + }, + "outputs": [ + { + "data": { + "text/plain": [ + " section_count\n", + "id \n", + "B9-SH 0" + ], + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
section_count
id
B9-SH0
\n", + "
" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 7 }, { "cell_type": "markdown", @@ -262,107 +332,129 @@ }, { "cell_type": "code", - "execution_count": 7, + "source": [ + "pp.loadflow.run_ac(n, p)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-06-12T07:14:31.735563Z", + "start_time": "2024-06-12T07:14:31.718084Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:powsybl:loadflow provider used is : OpenLoadFlow\n", - "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.2.1, gitVersion=aa11c35697cd789191bf66265ed8f546cc429dae, gitBranch=v1.2.1, buildTimestamp=2023-06-07T20:14:23.956+02:00}\n", + "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.9.0, gitVersion=3b3973fa5b771f67791a12d741c38a8f22e67f94, gitBranch=UNKNOWN, buildTimestamp=2024-04-04T10:35:32.204Z}\n", "INFO:powsybl:Parameters:\n", - "┌──────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", - "│ Name │ Value │\n", - "├──────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", - "│ voltageInitMode │ UNIFORM_VALUES │\n", - "│ transformerVoltageControlOn │ false │\n", - "│ useReactiveLimits │ true │\n", - "│ phaseShifterRegulationOn │ false │\n", - "│ twtSplitShuntAdmittance │ false │\n", - "│ shuntCompensatorVoltageControlOn │ false │\n", - "│ readSlackBus │ true │\n", - "│ writeSlackBus │ false │\n", - "│ dc │ false │\n", - "│ distributedSlack │ true │\n", - "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", - "│ dcUseTransformerRatio │ true │\n", - "│ countriesToBalance │ │\n", - "│ computedConnectedComponentScope │ MAIN │\n", - "│ hvdcAcEmulation │ true │\n", - "│ dcPowerFactor │ 1.0 │\n", - "│ slackBusSelectionMode │ MOST_MESHED │\n", - "│ slackBusesIds │ [] │\n", - "│ throwsExceptionInCaseOfSlackDistributionFailure │ false │\n", - "│ voltageRemoteControl │ true │\n", - "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", - "│ loadPowerFactorConstant │ false │\n", - "│ plausibleActivePowerLimit │ 5000.0 │\n", - "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", - "│ slackBusPMaxMismatch │ 1.0 │\n", - "│ maxActivePowerMismatch │ 0.01 │\n", - "│ maxReactivePowerMismatch │ 0.01 │\n", - "│ maxVoltageMismatch │ 1.0E-4 │\n", - "│ maxAngleMismatch │ 1.0E-5 │\n", - "│ maxRatioMismatch │ 1.0E-5 │\n", - "│ maxSusceptanceMismatch │ 1.0E-4 │\n", - "│ voltagePerReactivePowerControl │ false │\n", - "│ reactivePowerRemoteControl │ false │\n", - "│ maxNewtonRaphsonIterations │ 15 │\n", - "│ maxOuterLoopIterations │ 20 │\n", - "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", - "│ voltageInitModeOverride │ NONE │\n", - "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", - "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", - "│ minPlausibleTargetVoltage │ 0.8 │\n", - "│ maxPlausibleTargetVoltage │ 1.2 │\n", - "│ minRealisticVoltage │ 0.5 │\n", - "│ maxRealisticVoltage │ 2.0 │\n", - "│ reactiveRangeCheckMode │ MAX │\n", - "│ lowImpedanceThreshold │ 1.0E-8 │\n", - "│ networkCacheEnabled │ true │\n", - "│ svcVoltageMonitoring │ true │\n", - "│ stateVectorScalingMode │ NONE │\n", - "│ maxSlackBusCount │ 1 │\n", - "│ debugDir │ │\n", - "│ incrementalTransformerVoltageControlOuterLoopMaxTapShift │ 3 │\n", - "│ secondaryVoltageControl │ false │\n", - "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", - "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", - "│ alwaysUpdateNetwork │ false │\n", - "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", - "│ reportedFeatures │ [] │\n", - "│ slackBusCountryFilter │ [] │\n", - "│ actionableSwitchesIds │ [] │\n", - "│ asymmetrical │ false │\n", - "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", - "└──────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", - "INFO:powsybl:Outer loops: [Distributed slack on generation, Voltage monitoring, Reactive limits]\n", + "┌───────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", + "│ Name │ Value │\n", + "├───────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", + "│ voltageInitMode │ UNIFORM_VALUES │\n", + "│ transformerVoltageControlOn │ false │\n", + "│ useReactiveLimits │ true │\n", + "│ phaseShifterRegulationOn │ false │\n", + "│ twtSplitShuntAdmittance │ false │\n", + "│ shuntCompensatorVoltageControlOn │ false │\n", + "│ readSlackBus │ true │\n", + "│ writeSlackBus │ true │\n", + "│ dc │ false │\n", + "│ distributedSlack │ true │\n", + "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", + "│ dcUseTransformerRatio │ true │\n", + "│ countriesToBalance │ │\n", + "│ computedConnectedComponentScope │ MAIN │\n", + "│ hvdcAcEmulation │ true │\n", + "│ dcPowerFactor │ 1.0 │\n", + "│ slackBusSelectionMode │ MOST_MESHED │\n", + "│ slackBusesIds │ [] │\n", + "│ slackDistributionFailureBehavior │ LEAVE_ON_SLACK_BUS │\n", + "│ voltageRemoteControl │ true │\n", + "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", + "│ loadPowerFactorConstant │ false │\n", + "│ plausibleActivePowerLimit │ 5000.0 │\n", + "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", + "│ slackBusPMaxMismatch │ 1.0 │\n", + "│ maxActivePowerMismatch │ 0.01 │\n", + "│ maxReactivePowerMismatch │ 0.01 │\n", + "│ maxVoltageMismatch │ 1.0E-4 │\n", + "│ maxAngleMismatch │ 1.0E-5 │\n", + "│ maxRatioMismatch │ 1.0E-5 │\n", + "│ maxSusceptanceMismatch │ 1.0E-4 │\n", + "│ voltagePerReactivePowerControl │ false │\n", + "│ generatorReactivePowerRemoteControl │ false │\n", + "│ transformerReactivePowerControl │ false │\n", + "│ maxNewtonRaphsonIterations │ 15 │\n", + "│ maxOuterLoopIterations │ 20 │\n", + "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", + "│ voltageInitModeOverride │ NONE │\n", + "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ minPlausibleTargetVoltage │ 0.8 │\n", + "│ maxPlausibleTargetVoltage │ 1.2 │\n", + "│ minRealisticVoltage │ 0.5 │\n", + "│ maxRealisticVoltage │ 2.0 │\n", + "│ reactiveRangeCheckMode │ MAX │\n", + "│ lowImpedanceThreshold │ 1.0E-8 │\n", + "│ networkCacheEnabled │ true │\n", + "│ svcVoltageMonitoring │ true │\n", + "│ stateVectorScalingMode │ NONE │\n", + "│ maxSlackBusCount │ 1 │\n", + "│ debugDir │ │\n", + "│ incrementalTransformerRatioTapControlOuterLoopMaxTapShift │ 3 │\n", + "│ secondaryVoltageControl │ false │\n", + "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", + "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", + "│ alwaysUpdateNetwork │ false │\n", + "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", + "│ reportedFeatures │ [] │\n", + "│ slackBusCountryFilter │ [] │\n", + "│ actionableSwitchesIds │ [] │\n", + "│ actionableTransformersIds │ [] │\n", + "│ asymmetrical │ false │\n", + "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", + "│ reactivePowerDispatchMode │ Q_EQUAL_PROPORTION │\n", + "│ outerLoopNames │ │\n", + "│ useActiveLimits │ true │\n", + "│ disableVoltageControlOfGeneratorsOutsideActivePowerLimits │ false │\n", + "│ lineSearchStateVectorScalingMaxIteration │ 10 │\n", + "│ lineSearchStateVectorScalingStepFold │ 1.3333333333333333 │\n", + "│ maxVoltageChangeStateVectorScalingMaxDv │ 0.1 │\n", + "│ maxVoltageChangeStateVectorScalingMaxDphi │ 0.17453292519943295 │\n", + "│ linePerUnitMode │ IMPEDANCE │\n", + "│ useLoadModel │ false │\n", + "│ dcApproximationType │ IGNORE_R │\n", + "│ simulateAutomationSystems │ false │\n", + "│ acSolverType │ NEWTON_RAPHSON │\n", + "│ maxNewtonKrylovIterations │ 100 │\n", + "│ newtonKrylovLineSearch │ false │\n", + "│ referenceBusSelectionMode │ FIRST_SLACK │\n", + "│ writeReferenceTerminals │ true │\n", + "│ voltageTargetPriorities │ [GENERATOR, TRANSFORMER, SHUNT] │\n", + "└───────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", + "INFO:powsybl:Outer loops: [DistributedSlack, VoltageMonitoring, ReactiveLimits]\n", "INFO:powsybl:Network cache reused for network 'ieee14cdf' and variant 'InitialState'\n", "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", "INFO:powsybl:1 buses switched PV -> PQ (4 bus remains PV)\n", - "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=1, newtonRaphsonIterations=3, newtonRaphsonStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=0.15687212390882443, distributedActivePower=-0.006101882689879545))\n", - "INFO:powsybl:Load flow ran in 4 ms\n" + "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=1, newtonRaphsonIterations=3, solverStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=0.15687212390895766, distributedActivePower=0.0))\n", + "INFO:powsybl:Load flow ran in 9 ms\n" ] }, { "data": { - "text/plain": "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, iteration_count=3, slack_bus_id='VL1_0', slack_bus_active_power_mismatch=0.15687212390882443, distributed_active_power=-0.006101882689879545)]" + "text/plain": [ + "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, status_text=CONVERGED, iteration_count=3, reference_bus_id='VL1_0', slack_bus_results=[SlackBusResult(id='VL1_0', active_power_mismatch=0.15687212390895766)], distributed_active_power=0.0)]" + ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], - "source": [ - "pp.loadflow.run_ac(n, p)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.613689Z", - "start_time": "2023-06-19T21:03:51.589312Z" - } - } + "execution_count": 8 }, { "cell_type": "markdown", @@ -375,18 +467,6 @@ }, { "cell_type": "code", - "execution_count": 8, - "outputs": [ - { - "data": { - "text/plain": " target_v\nid \nB1-G 144.000\nB2-G 141.075\nB3-G 136.350\nB6-G 12.840\nB8-G 21.800", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
target_v
id
B1-G144.000
B2-G141.075
B3-G136.350
B6-G12.840
B8-G21.800
\n
" - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ "n.update_generators(id='B1-G', target_v=144)\n", "n.get_generators().filter(items=['target_v'])" @@ -394,10 +474,80 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.613881Z", - "start_time": "2023-06-19T21:03:51.598676Z" + "end_time": "2024-06-12T07:14:50.560383Z", + "start_time": "2024-06-12T07:14:50.548955Z" } - } + }, + "outputs": [ + { + "data": { + "text/plain": [ + " target_v\n", + "id \n", + "B1-G 144.000\n", + "B2-G 141.075\n", + "B3-G 136.350\n", + "B6-G 12.840\n", + "B8-G 21.800" + ], + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
target_v
id
B1-G144.000
B2-G141.075
B3-G136.350
B6-G12.840
B8-G21.800
\n", + "
" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "execution_count": 9 }, { "cell_type": "markdown", @@ -410,106 +560,128 @@ }, { "cell_type": "code", - "execution_count": 9, + "source": [ + "pp.loadflow.run_ac(n, p)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-06-12T07:14:55.311522Z", + "start_time": "2024-06-12T07:14:55.285856Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:powsybl:loadflow provider used is : OpenLoadFlow\n", - "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.2.1, gitVersion=aa11c35697cd789191bf66265ed8f546cc429dae, gitBranch=v1.2.1, buildTimestamp=2023-06-07T20:14:23.956+02:00}\n", + "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.9.0, gitVersion=3b3973fa5b771f67791a12d741c38a8f22e67f94, gitBranch=UNKNOWN, buildTimestamp=2024-04-04T10:35:32.204Z}\n", "INFO:powsybl:Parameters:\n", - "┌──────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", - "│ Name │ Value │\n", - "├──────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", - "│ voltageInitMode │ UNIFORM_VALUES │\n", - "│ transformerVoltageControlOn │ false │\n", - "│ useReactiveLimits │ true │\n", - "│ phaseShifterRegulationOn │ false │\n", - "│ twtSplitShuntAdmittance │ false │\n", - "│ shuntCompensatorVoltageControlOn │ false │\n", - "│ readSlackBus │ true │\n", - "│ writeSlackBus │ false │\n", - "│ dc │ false │\n", - "│ distributedSlack │ true │\n", - "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", - "│ dcUseTransformerRatio │ true │\n", - "│ countriesToBalance │ │\n", - "│ computedConnectedComponentScope │ MAIN │\n", - "│ hvdcAcEmulation │ true │\n", - "│ dcPowerFactor │ 1.0 │\n", - "│ slackBusSelectionMode │ MOST_MESHED │\n", - "│ slackBusesIds │ [] │\n", - "│ throwsExceptionInCaseOfSlackDistributionFailure │ false │\n", - "│ voltageRemoteControl │ true │\n", - "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", - "│ loadPowerFactorConstant │ false │\n", - "│ plausibleActivePowerLimit │ 5000.0 │\n", - "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", - "│ slackBusPMaxMismatch │ 1.0 │\n", - "│ maxActivePowerMismatch │ 0.01 │\n", - "│ maxReactivePowerMismatch │ 0.01 │\n", - "│ maxVoltageMismatch │ 1.0E-4 │\n", - "│ maxAngleMismatch │ 1.0E-5 │\n", - "│ maxRatioMismatch │ 1.0E-5 │\n", - "│ maxSusceptanceMismatch │ 1.0E-4 │\n", - "│ voltagePerReactivePowerControl │ false │\n", - "│ reactivePowerRemoteControl │ false │\n", - "│ maxNewtonRaphsonIterations │ 15 │\n", - "│ maxOuterLoopIterations │ 20 │\n", - "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", - "│ voltageInitModeOverride │ NONE │\n", - "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", - "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", - "│ minPlausibleTargetVoltage │ 0.8 │\n", - "│ maxPlausibleTargetVoltage │ 1.2 │\n", - "│ minRealisticVoltage │ 0.5 │\n", - "│ maxRealisticVoltage │ 2.0 │\n", - "│ reactiveRangeCheckMode │ MAX │\n", - "│ lowImpedanceThreshold │ 1.0E-8 │\n", - "│ networkCacheEnabled │ true │\n", - "│ svcVoltageMonitoring │ true │\n", - "│ stateVectorScalingMode │ NONE │\n", - "│ maxSlackBusCount │ 1 │\n", - "│ debugDir │ │\n", - "│ incrementalTransformerVoltageControlOuterLoopMaxTapShift │ 3 │\n", - "│ secondaryVoltageControl │ false │\n", - "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", - "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", - "│ alwaysUpdateNetwork │ false │\n", - "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", - "│ reportedFeatures │ [] │\n", - "│ slackBusCountryFilter │ [] │\n", - "│ actionableSwitchesIds │ [] │\n", - "│ asymmetrical │ false │\n", - "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", - "└──────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", - "INFO:powsybl:Outer loops: [Distributed slack on generation, Voltage monitoring, Reactive limits]\n", + "┌───────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", + "│ Name │ Value │\n", + "├───────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", + "│ voltageInitMode │ UNIFORM_VALUES │\n", + "│ transformerVoltageControlOn │ false │\n", + "│ useReactiveLimits │ true │\n", + "│ phaseShifterRegulationOn │ false │\n", + "│ twtSplitShuntAdmittance │ false │\n", + "│ shuntCompensatorVoltageControlOn │ false │\n", + "│ readSlackBus │ true │\n", + "│ writeSlackBus │ true │\n", + "│ dc │ false │\n", + "│ distributedSlack │ true │\n", + "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", + "│ dcUseTransformerRatio │ true │\n", + "│ countriesToBalance │ │\n", + "│ computedConnectedComponentScope │ MAIN │\n", + "│ hvdcAcEmulation │ true │\n", + "│ dcPowerFactor │ 1.0 │\n", + "│ slackBusSelectionMode │ MOST_MESHED │\n", + "│ slackBusesIds │ [] │\n", + "│ slackDistributionFailureBehavior │ LEAVE_ON_SLACK_BUS │\n", + "│ voltageRemoteControl │ true │\n", + "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", + "│ loadPowerFactorConstant │ false │\n", + "│ plausibleActivePowerLimit │ 5000.0 │\n", + "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", + "│ slackBusPMaxMismatch │ 1.0 │\n", + "│ maxActivePowerMismatch │ 0.01 │\n", + "│ maxReactivePowerMismatch │ 0.01 │\n", + "│ maxVoltageMismatch │ 1.0E-4 │\n", + "│ maxAngleMismatch │ 1.0E-5 │\n", + "│ maxRatioMismatch │ 1.0E-5 │\n", + "│ maxSusceptanceMismatch │ 1.0E-4 │\n", + "│ voltagePerReactivePowerControl │ false │\n", + "│ generatorReactivePowerRemoteControl │ false │\n", + "│ transformerReactivePowerControl │ false │\n", + "│ maxNewtonRaphsonIterations │ 15 │\n", + "│ maxOuterLoopIterations │ 20 │\n", + "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", + "│ voltageInitModeOverride │ NONE │\n", + "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ minPlausibleTargetVoltage │ 0.8 │\n", + "│ maxPlausibleTargetVoltage │ 1.2 │\n", + "│ minRealisticVoltage │ 0.5 │\n", + "│ maxRealisticVoltage │ 2.0 │\n", + "│ reactiveRangeCheckMode │ MAX │\n", + "│ lowImpedanceThreshold │ 1.0E-8 │\n", + "│ networkCacheEnabled │ true │\n", + "│ svcVoltageMonitoring │ true │\n", + "│ stateVectorScalingMode │ NONE │\n", + "│ maxSlackBusCount │ 1 │\n", + "│ debugDir │ │\n", + "│ incrementalTransformerRatioTapControlOuterLoopMaxTapShift │ 3 │\n", + "│ secondaryVoltageControl │ false │\n", + "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", + "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", + "│ alwaysUpdateNetwork │ false │\n", + "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", + "│ reportedFeatures │ [] │\n", + "│ slackBusCountryFilter │ [] │\n", + "│ actionableSwitchesIds │ [] │\n", + "│ actionableTransformersIds │ [] │\n", + "│ asymmetrical │ false │\n", + "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", + "│ reactivePowerDispatchMode │ Q_EQUAL_PROPORTION │\n", + "│ outerLoopNames │ │\n", + "│ useActiveLimits │ true │\n", + "│ disableVoltageControlOfGeneratorsOutsideActivePowerLimits │ false │\n", + "│ lineSearchStateVectorScalingMaxIteration │ 10 │\n", + "│ lineSearchStateVectorScalingStepFold │ 1.3333333333333333 │\n", + "│ maxVoltageChangeStateVectorScalingMaxDv │ 0.1 │\n", + "│ maxVoltageChangeStateVectorScalingMaxDphi │ 0.17453292519943295 │\n", + "│ linePerUnitMode │ IMPEDANCE │\n", + "│ useLoadModel │ false │\n", + "│ dcApproximationType │ IGNORE_R │\n", + "│ simulateAutomationSystems │ false │\n", + "│ acSolverType │ NEWTON_RAPHSON │\n", + "│ maxNewtonKrylovIterations │ 100 │\n", + "│ newtonKrylovLineSearch │ false │\n", + "│ referenceBusSelectionMode │ FIRST_SLACK │\n", + "│ writeReferenceTerminals │ true │\n", + "│ voltageTargetPriorities │ [GENERATOR, TRANSFORMER, SHUNT] │\n", + "└───────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", + "INFO:powsybl:Outer loops: [DistributedSlack, VoltageMonitoring, ReactiveLimits]\n", "INFO:powsybl:Network cache reused for network 'ieee14cdf' and variant 'InitialState'\n", "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", - "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=0, newtonRaphsonIterations=1, newtonRaphsonStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=-0.024038566896456004, distributedActivePower=0.0))\n", - "INFO:powsybl:Load flow ran in 3 ms\n" + "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=0, newtonRaphsonIterations=1, solverStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=-0.02403856689623396, distributedActivePower=0.0))\n", + "INFO:powsybl:Load flow ran in 13 ms\n" ] }, { "data": { - "text/plain": "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, iteration_count=1, slack_bus_id='VL1_0', slack_bus_active_power_mismatch=-0.024038566896456004, distributed_active_power=0.0)]" + "text/plain": [ + "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, status_text=CONVERGED, iteration_count=1, reference_bus_id='VL1_0', slack_bus_results=[SlackBusResult(id='VL1_0', active_power_mismatch=-0.02403856689623396)], distributed_active_power=0.0)]" + ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], - "source": [ - "pp.loadflow.run_ac(n, p)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.614589Z", - "start_time": "2023-06-19T21:03:51.603944Z" - } - } + "execution_count": 10 }, { "cell_type": "markdown", @@ -523,8 +695,6 @@ }, { "cell_type": "code", - "execution_count": 10, - "outputs": [], "source": [ "n.create_buses(id='B', voltage_level_id='VL10')\n", "n.create_loads(id='LD', voltage_level_id='VL10', bus_id='B', p0=10, q0=5)\n", @@ -533,10 +703,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.622127Z", - "start_time": "2023-06-19T21:03:51.614826Z" + "end_time": "2024-06-12T07:15:05.096474Z", + "start_time": "2024-06-12T07:15:05.088219Z" } - } + }, + "outputs": [], + "execution_count": 11 }, { "cell_type": "markdown", @@ -549,18 +721,18 @@ }, { "cell_type": "code", - "execution_count": 11, - "outputs": [], "source": [ "p = pp.loadflow.Parameters(provider_parameters={'networkCacheEnabled': 'true', 'actionableSwitchesIds': 'SW'})" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.622365Z", - "start_time": "2023-06-19T21:03:51.617156Z" + "end_time": "2024-06-12T07:15:10.050033Z", + "start_time": "2024-06-12T07:15:10.044704Z" } - } + }, + "outputs": [], + "execution_count": 12 }, { "cell_type": "markdown", @@ -573,81 +745,110 @@ }, { "cell_type": "code", - "execution_count": 12, + "source": [ + "pp.loadflow.run_ac(n, p)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-06-12T07:15:12.336724Z", + "start_time": "2024-06-12T07:15:12.306678Z" + } + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:powsybl:loadflow provider used is : OpenLoadFlow\n", - "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.2.1, gitVersion=aa11c35697cd789191bf66265ed8f546cc429dae, gitBranch=v1.2.1, buildTimestamp=2023-06-07T20:14:23.956+02:00}\n", + "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.9.0, gitVersion=3b3973fa5b771f67791a12d741c38a8f22e67f94, gitBranch=UNKNOWN, buildTimestamp=2024-04-04T10:35:32.204Z}\n", "INFO:powsybl:Parameters:\n", - "┌──────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", - "│ Name │ Value │\n", - "├──────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", - "│ voltageInitMode │ UNIFORM_VALUES │\n", - "│ transformerVoltageControlOn │ false │\n", - "│ useReactiveLimits │ true │\n", - "│ phaseShifterRegulationOn │ false │\n", - "│ twtSplitShuntAdmittance │ false │\n", - "│ shuntCompensatorVoltageControlOn │ false │\n", - "│ readSlackBus │ true │\n", - "│ writeSlackBus │ false │\n", - "│ dc │ false │\n", - "│ distributedSlack │ true │\n", - "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", - "│ dcUseTransformerRatio │ true │\n", - "│ countriesToBalance │ │\n", - "│ computedConnectedComponentScope │ MAIN │\n", - "│ hvdcAcEmulation │ true │\n", - "│ dcPowerFactor │ 1.0 │\n", - "│ slackBusSelectionMode │ MOST_MESHED │\n", - "│ slackBusesIds │ [] │\n", - "│ throwsExceptionInCaseOfSlackDistributionFailure │ false │\n", - "│ voltageRemoteControl │ true │\n", - "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", - "│ loadPowerFactorConstant │ false │\n", - "│ plausibleActivePowerLimit │ 5000.0 │\n", - "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", - "│ slackBusPMaxMismatch │ 1.0 │\n", - "│ maxActivePowerMismatch │ 0.01 │\n", - "│ maxReactivePowerMismatch │ 0.01 │\n", - "│ maxVoltageMismatch │ 1.0E-4 │\n", - "│ maxAngleMismatch │ 1.0E-5 │\n", - "│ maxRatioMismatch │ 1.0E-5 │\n", - "│ maxSusceptanceMismatch │ 1.0E-4 │\n", - "│ voltagePerReactivePowerControl │ false │\n", - "│ reactivePowerRemoteControl │ false │\n", - "│ maxNewtonRaphsonIterations │ 15 │\n", - "│ maxOuterLoopIterations │ 20 │\n", - "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", - "│ voltageInitModeOverride │ NONE │\n", - "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", - "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", - "│ minPlausibleTargetVoltage │ 0.8 │\n", - "│ maxPlausibleTargetVoltage │ 1.2 │\n", - "│ minRealisticVoltage │ 0.5 │\n", - "│ maxRealisticVoltage │ 2.0 │\n", - "│ reactiveRangeCheckMode │ MAX │\n", - "│ lowImpedanceThreshold │ 1.0E-8 │\n", - "│ networkCacheEnabled │ true │\n", - "│ svcVoltageMonitoring │ true │\n", - "│ stateVectorScalingMode │ NONE │\n", - "│ maxSlackBusCount │ 1 │\n", - "│ debugDir │ │\n", - "│ incrementalTransformerVoltageControlOuterLoopMaxTapShift │ 3 │\n", - "│ secondaryVoltageControl │ false │\n", - "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", - "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", - "│ alwaysUpdateNetwork │ false │\n", - "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", - "│ reportedFeatures │ [] │\n", - "│ slackBusCountryFilter │ [] │\n", - "│ actionableSwitchesIds │ [SW] │\n", - "│ asymmetrical │ false │\n", - "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", - "└──────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", - "INFO:powsybl:Outer loops: [Distributed slack on generation, Voltage monitoring, Reactive limits]\n", + "┌───────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", + "│ Name │ Value │\n", + "├───────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", + "│ voltageInitMode │ UNIFORM_VALUES │\n", + "│ transformerVoltageControlOn │ false │\n", + "│ useReactiveLimits │ true │\n", + "│ phaseShifterRegulationOn │ false │\n", + "│ twtSplitShuntAdmittance │ false │\n", + "│ shuntCompensatorVoltageControlOn │ false │\n", + "│ readSlackBus │ true │\n", + "│ writeSlackBus │ true │\n", + "│ dc │ false │\n", + "│ distributedSlack │ true │\n", + "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", + "│ dcUseTransformerRatio │ true │\n", + "│ countriesToBalance │ │\n", + "│ computedConnectedComponentScope │ MAIN │\n", + "│ hvdcAcEmulation │ true │\n", + "│ dcPowerFactor │ 1.0 │\n", + "│ slackBusSelectionMode │ MOST_MESHED │\n", + "│ slackBusesIds │ [] │\n", + "│ slackDistributionFailureBehavior │ LEAVE_ON_SLACK_BUS │\n", + "│ voltageRemoteControl │ true │\n", + "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", + "│ loadPowerFactorConstant │ false │\n", + "│ plausibleActivePowerLimit │ 5000.0 │\n", + "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", + "│ slackBusPMaxMismatch │ 1.0 │\n", + "│ maxActivePowerMismatch │ 0.01 │\n", + "│ maxReactivePowerMismatch │ 0.01 │\n", + "│ maxVoltageMismatch │ 1.0E-4 │\n", + "│ maxAngleMismatch │ 1.0E-5 │\n", + "│ maxRatioMismatch │ 1.0E-5 │\n", + "│ maxSusceptanceMismatch │ 1.0E-4 │\n", + "│ voltagePerReactivePowerControl │ false │\n", + "│ generatorReactivePowerRemoteControl │ false │\n", + "│ transformerReactivePowerControl │ false │\n", + "│ maxNewtonRaphsonIterations │ 15 │\n", + "│ maxOuterLoopIterations │ 20 │\n", + "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", + "│ voltageInitModeOverride │ NONE │\n", + "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ minPlausibleTargetVoltage │ 0.8 │\n", + "│ maxPlausibleTargetVoltage │ 1.2 │\n", + "│ minRealisticVoltage │ 0.5 │\n", + "│ maxRealisticVoltage │ 2.0 │\n", + "│ reactiveRangeCheckMode │ MAX │\n", + "│ lowImpedanceThreshold │ 1.0E-8 │\n", + "│ networkCacheEnabled │ true │\n", + "│ svcVoltageMonitoring │ true │\n", + "│ stateVectorScalingMode │ NONE │\n", + "│ maxSlackBusCount │ 1 │\n", + "│ debugDir │ │\n", + "│ incrementalTransformerRatioTapControlOuterLoopMaxTapShift │ 3 │\n", + "│ secondaryVoltageControl │ false │\n", + "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", + "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", + "│ alwaysUpdateNetwork │ false │\n", + "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", + "│ reportedFeatures │ [] │\n", + "│ slackBusCountryFilter │ [] │\n", + "│ actionableSwitchesIds │ [SW] │\n", + "│ actionableTransformersIds │ [] │\n", + "│ asymmetrical │ false │\n", + "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", + "│ reactivePowerDispatchMode │ Q_EQUAL_PROPORTION │\n", + "│ outerLoopNames │ │\n", + "│ useActiveLimits │ true │\n", + "│ disableVoltageControlOfGeneratorsOutsideActivePowerLimits │ false │\n", + "│ lineSearchStateVectorScalingMaxIteration │ 10 │\n", + "│ lineSearchStateVectorScalingStepFold │ 1.3333333333333333 │\n", + "│ maxVoltageChangeStateVectorScalingMaxDv │ 0.1 │\n", + "│ maxVoltageChangeStateVectorScalingMaxDphi │ 0.17453292519943295 │\n", + "│ linePerUnitMode │ IMPEDANCE │\n", + "│ useLoadModel │ false │\n", + "│ dcApproximationType │ IGNORE_R │\n", + "│ simulateAutomationSystems │ false │\n", + "│ acSolverType │ NEWTON_RAPHSON │\n", + "│ maxNewtonKrylovIterations │ 100 │\n", + "│ newtonKrylovLineSearch │ false │\n", + "│ referenceBusSelectionMode │ FIRST_SLACK │\n", + "│ writeReferenceTerminals │ true │\n", + "│ voltageTargetPriorities │ [GENERATOR, TRANSFORMER, SHUNT] │\n", + "└───────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", + "INFO:powsybl:Outer loops: [DistributedSlack, VoltageMonitoring, ReactiveLimits]\n", "INFO:powsybl:Network cache evicted because of parameters change\n", "INFO:powsybl:Network cache created for network 'ieee14cdf' and variant 'InitialState'\n", "WARNING:powsybl:Network {CC0 SC0}: 3 generators have been discarded from active power control because of a targetP equals 0\n", @@ -656,31 +857,25 @@ "INFO:powsybl:Network {CC0 SC0} has 15 buses and 21 branches\n", "INFO:powsybl:Network {CC0 SC0} balance: active generation=272.4 MW, active load=268.99999999999994 MW, reactive generation=0.0 MVar, reactive load=78.5 MVar\n", "INFO:powsybl:Network {CC0 SC0}, slack buses are [B1] (method='Network extension bus')\n", + "INFO:powsybl:Network {CC0 SC0}, reference bus is B1 (method='First slack')\n", "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", "INFO:powsybl:1 buses switched PV -> PQ (4 bus remains PV)\n", - "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=1, newtonRaphsonIterations=4, newtonRaphsonStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=0.016927725231896673, distributedActivePower=-0.0034933533142211814))\n", - "INFO:powsybl:Load flow ran in 8 ms\n" + "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=1, newtonRaphsonIterations=4, solverStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=0.01692772523167463, distributedActivePower=0.0))\n", + "INFO:powsybl:Load flow ran in 20 ms\n" ] }, { "data": { - "text/plain": "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, iteration_count=4, slack_bus_id='B1', slack_bus_active_power_mismatch=0.016927725231896673, distributed_active_power=-0.0034933533142211814)]" + "text/plain": [ + "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, status_text=CONVERGED, iteration_count=4, reference_bus_id='B1', slack_bus_results=[SlackBusResult(id='B1', active_power_mismatch=0.01692772523167463)], distributed_active_power=0.0)]" + ] }, - "execution_count": 12, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], - "source": [ - "pp.loadflow.run_ac(n, p)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.637757Z", - "start_time": "2023-06-19T21:03:51.619469Z" - } - } + "execution_count": 13 }, { "cell_type": "markdown", @@ -693,18 +888,18 @@ }, { "cell_type": "code", - "execution_count": 13, - "outputs": [], "source": [ "n.update_switches(id='SW', open=False)" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.685515Z", - "start_time": "2023-06-19T21:03:51.632415Z" + "end_time": "2024-06-12T07:15:21.665898Z", + "start_time": "2024-06-12T07:15:21.659159Z" } - } + }, + "outputs": [], + "execution_count": 14 }, { "cell_type": "markdown", From 1a0ce0ac3b79d1d0c239f75b6bf29ff086c568d8 Mon Sep 17 00:00:00 2001 From: Geoffroy Jamgotchian Date: Wed, 12 Jun 2024 09:32:32 +0200 Subject: [PATCH 3/4] Clean Signed-off-by: Geoffroy Jamgotchian --- olf_fast_restart.ipynb | 318 ++++++++++++++++++++--------------------- 1 file changed, 159 insertions(+), 159 deletions(-) diff --git a/olf_fast_restart.ipynb b/olf_fast_restart.ipynb index 2540147..d9926e6 100644 --- a/olf_fast_restart.ipynb +++ b/olf_fast_restart.ipynb @@ -5,15 +5,15 @@ "metadata": { "collapsed": true, "ExecuteTime": { - "end_time": "2024-06-12T07:13:50.353436Z", - "start_time": "2024-06-12T07:13:49.982142Z" + "end_time": "2024-06-12T07:31:04.610530Z", + "start_time": "2024-06-12T07:31:04.259961Z" } }, "source": [ "import pypowsybl as pp" ], "outputs": [], - "execution_count": 2 + "execution_count": 1 }, { "cell_type": "markdown", @@ -34,12 +34,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:13:51.917037Z", - "start_time": "2024-06-12T07:13:51.911874Z" + "end_time": "2024-06-12T07:31:04.614374Z", + "start_time": "2024-06-12T07:31:04.611625Z" } }, "outputs": [], - "execution_count": 3 + "execution_count": 2 }, { "cell_type": "markdown", @@ -58,8 +58,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:13:54.261364Z", - "start_time": "2024-06-12T07:13:54.236238Z" + "end_time": "2024-06-12T07:31:04.659648Z", + "start_time": "2024-06-12T07:31:04.615098Z" } }, "outputs": [ @@ -72,7 +72,7 @@ ] } ], - "execution_count": 4 + "execution_count": 3 }, { "cell_type": "markdown", @@ -100,12 +100,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:13:57.412331Z", - "start_time": "2024-06-12T07:13:57.409514Z" + "end_time": "2024-06-12T07:31:04.671330Z", + "start_time": "2024-06-12T07:31:04.661758Z" } }, "outputs": [], - "execution_count": 5 + "execution_count": 4 }, { "cell_type": "markdown", @@ -124,8 +124,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:14:06.649111Z", - "start_time": "2024-06-12T07:14:06.627210Z" + "end_time": "2024-06-12T07:31:04.696214Z", + "start_time": "2024-06-12T07:31:04.672583Z" } }, "outputs": [ @@ -241,12 +241,12 @@ "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, status_text=CONVERGED, iteration_count=3, reference_bus_id='VL1_0', slack_bus_results=[SlackBusResult(id='VL1_0', active_power_mismatch=-0.006730108618313579)], distributed_active_power=0.0)]" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 6 + "execution_count": 5 }, { "cell_type": "markdown", @@ -266,8 +266,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:14:13.529836Z", - "start_time": "2024-06-12T07:14:13.517985Z" + "end_time": "2024-06-12T07:31:04.706057Z", + "start_time": "2024-06-12T07:31:04.696847Z" } }, "outputs": [ @@ -314,12 +314,12 @@ "" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 7 + "execution_count": 6 }, { "cell_type": "markdown", @@ -338,8 +338,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:14:31.735563Z", - "start_time": "2024-06-12T07:14:31.718084Z" + "end_time": "2024-06-12T07:31:04.721728Z", + "start_time": "2024-06-12T07:31:04.707181Z" } }, "outputs": [ @@ -440,7 +440,7 @@ "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", "INFO:powsybl:1 buses switched PV -> PQ (4 bus remains PV)\n", "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=1, newtonRaphsonIterations=3, solverStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=0.15687212390895766, distributedActivePower=0.0))\n", - "INFO:powsybl:Load flow ran in 9 ms\n" + "INFO:powsybl:Load flow ran in 5 ms\n" ] }, { @@ -449,12 +449,12 @@ "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, status_text=CONVERGED, iteration_count=3, reference_bus_id='VL1_0', slack_bus_results=[SlackBusResult(id='VL1_0', active_power_mismatch=0.15687212390895766)], distributed_active_power=0.0)]" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 8 + "execution_count": 7 }, { "cell_type": "markdown", @@ -474,8 +474,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:14:50.560383Z", - "start_time": "2024-06-12T07:14:50.548955Z" + "end_time": "2024-06-12T07:31:04.729048Z", + "start_time": "2024-06-12T07:31:04.722550Z" } }, "outputs": [ @@ -542,12 +542,12 @@ "" ] }, - "execution_count": 9, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 9 + "execution_count": 8 }, { "cell_type": "markdown", @@ -566,8 +566,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:14:55.311522Z", - "start_time": "2024-06-12T07:14:55.285856Z" + "end_time": "2024-06-12T07:31:04.746552Z", + "start_time": "2024-06-12T07:31:04.729807Z" } }, "outputs": [ @@ -667,7 +667,7 @@ "INFO:powsybl:Network cache reused for network 'ieee14cdf' and variant 'InitialState'\n", "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=0, newtonRaphsonIterations=1, solverStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=-0.02403856689623396, distributedActivePower=0.0))\n", - "INFO:powsybl:Load flow ran in 13 ms\n" + "INFO:powsybl:Load flow ran in 6 ms\n" ] }, { @@ -676,12 +676,12 @@ "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, status_text=CONVERGED, iteration_count=1, reference_bus_id='VL1_0', slack_bus_results=[SlackBusResult(id='VL1_0', active_power_mismatch=-0.02403856689623396)], distributed_active_power=0.0)]" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 10 + "execution_count": 9 }, { "cell_type": "markdown", @@ -703,12 +703,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:15:05.096474Z", - "start_time": "2024-06-12T07:15:05.088219Z" + "end_time": "2024-06-12T07:31:04.752028Z", + "start_time": "2024-06-12T07:31:04.748158Z" } }, "outputs": [], - "execution_count": 11 + "execution_count": 10 }, { "cell_type": "markdown", @@ -727,12 +727,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:15:10.050033Z", - "start_time": "2024-06-12T07:15:10.044704Z" + "end_time": "2024-06-12T07:31:04.763467Z", + "start_time": "2024-06-12T07:31:04.752911Z" } }, "outputs": [], - "execution_count": 12 + "execution_count": 11 }, { "cell_type": "markdown", @@ -751,8 +751,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:15:12.336724Z", - "start_time": "2024-06-12T07:15:12.306678Z" + "end_time": "2024-06-12T07:31:04.813904Z", + "start_time": "2024-06-12T07:31:04.764430Z" } }, "outputs": [ @@ -861,7 +861,7 @@ "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", "INFO:powsybl:1 buses switched PV -> PQ (4 bus remains PV)\n", "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=1, newtonRaphsonIterations=4, solverStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=0.01692772523167463, distributedActivePower=0.0))\n", - "INFO:powsybl:Load flow ran in 20 ms\n" + "INFO:powsybl:Load flow ran in 35 ms\n" ] }, { @@ -870,12 +870,12 @@ "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, status_text=CONVERGED, iteration_count=4, reference_bus_id='B1', slack_bus_results=[SlackBusResult(id='B1', active_power_mismatch=0.01692772523167463)], distributed_active_power=0.0)]" ] }, - "execution_count": 13, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], - "execution_count": 13 + "execution_count": 12 }, { "cell_type": "markdown", @@ -894,12 +894,12 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2024-06-12T07:15:21.665898Z", - "start_time": "2024-06-12T07:15:21.659159Z" + "end_time": "2024-06-12T07:31:04.818568Z", + "start_time": "2024-06-12T07:31:04.815165Z" } }, "outputs": [], - "execution_count": 14 + "execution_count": 13 }, { "cell_type": "markdown", @@ -910,146 +910,146 @@ "collapsed": false } }, - { - "cell_type": "markdown", - "source": [ - "HACK: new connected bus has no voltage defined and NR v init failed. This is to fix in next OLF version. As a temporary workaround manually set voltage to new bus." - ], - "metadata": { - "collapsed": false - } - }, { "cell_type": "code", - "execution_count": 14, - "outputs": [], "source": [ - "n.update_buses(id='VL10_0', v_mag=12, v_angle=0)" + "pp.loadflow.run_ac(n, p)" ], "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.685691Z", - "start_time": "2023-06-19T21:03:51.634806Z" + "end_time": "2024-06-12T07:31:04.838910Z", + "start_time": "2024-06-12T07:31:04.819707Z" } - } - }, - { - "cell_type": "code", - "execution_count": 15, + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "INFO:powsybl:loadflow provider used is : OpenLoadFlow\n", - "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.2.1, gitVersion=aa11c35697cd789191bf66265ed8f546cc429dae, gitBranch=v1.2.1, buildTimestamp=2023-06-07T20:14:23.956+02:00}\n", + "INFO:powsybl:Version: {repositoryName=powsybl-open-loadflow, mavenProjectVersion=1.9.0, gitVersion=3b3973fa5b771f67791a12d741c38a8f22e67f94, gitBranch=UNKNOWN, buildTimestamp=2024-04-04T10:35:32.204Z}\n", "INFO:powsybl:Parameters:\n", - "┌──────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", - "│ Name │ Value │\n", - "├──────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", - "│ voltageInitMode │ UNIFORM_VALUES │\n", - "│ transformerVoltageControlOn │ false │\n", - "│ useReactiveLimits │ true │\n", - "│ phaseShifterRegulationOn │ false │\n", - "│ twtSplitShuntAdmittance │ false │\n", - "│ shuntCompensatorVoltageControlOn │ false │\n", - "│ readSlackBus │ true │\n", - "│ writeSlackBus │ false │\n", - "│ dc │ false │\n", - "│ distributedSlack │ true │\n", - "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", - "│ dcUseTransformerRatio │ true │\n", - "│ countriesToBalance │ │\n", - "│ computedConnectedComponentScope │ MAIN │\n", - "│ hvdcAcEmulation │ true │\n", - "│ dcPowerFactor │ 1.0 │\n", - "│ slackBusSelectionMode │ MOST_MESHED │\n", - "│ slackBusesIds │ [] │\n", - "│ throwsExceptionInCaseOfSlackDistributionFailure │ false │\n", - "│ voltageRemoteControl │ true │\n", - "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", - "│ loadPowerFactorConstant │ false │\n", - "│ plausibleActivePowerLimit │ 5000.0 │\n", - "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", - "│ slackBusPMaxMismatch │ 1.0 │\n", - "│ maxActivePowerMismatch │ 0.01 │\n", - "│ maxReactivePowerMismatch │ 0.01 │\n", - "│ maxVoltageMismatch │ 1.0E-4 │\n", - "│ maxAngleMismatch │ 1.0E-5 │\n", - "│ maxRatioMismatch │ 1.0E-5 │\n", - "│ maxSusceptanceMismatch │ 1.0E-4 │\n", - "│ voltagePerReactivePowerControl │ false │\n", - "│ reactivePowerRemoteControl │ false │\n", - "│ maxNewtonRaphsonIterations │ 15 │\n", - "│ maxOuterLoopIterations │ 20 │\n", - "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", - "│ voltageInitModeOverride │ NONE │\n", - "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", - "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", - "│ minPlausibleTargetVoltage │ 0.8 │\n", - "│ maxPlausibleTargetVoltage │ 1.2 │\n", - "│ minRealisticVoltage │ 0.5 │\n", - "│ maxRealisticVoltage │ 2.0 │\n", - "│ reactiveRangeCheckMode │ MAX │\n", - "│ lowImpedanceThreshold │ 1.0E-8 │\n", - "│ networkCacheEnabled │ true │\n", - "│ svcVoltageMonitoring │ true │\n", - "│ stateVectorScalingMode │ NONE │\n", - "│ maxSlackBusCount │ 1 │\n", - "│ debugDir │ │\n", - "│ incrementalTransformerVoltageControlOuterLoopMaxTapShift │ 3 │\n", - "│ secondaryVoltageControl │ false │\n", - "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", - "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", - "│ alwaysUpdateNetwork │ false │\n", - "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", - "│ reportedFeatures │ [] │\n", - "│ slackBusCountryFilter │ [] │\n", - "│ actionableSwitchesIds │ [SW] │\n", - "│ asymmetrical │ false │\n", - "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", - "└──────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", - "INFO:powsybl:Outer loops: [Distributed slack on generation, Voltage monitoring, Reactive limits]\n", + "┌───────────────────────────────────────────────────────────┬──────────────────────────────────┐\n", + "│ Name │ Value │\n", + "├───────────────────────────────────────────────────────────┼──────────────────────────────────┤\n", + "│ voltageInitMode │ UNIFORM_VALUES │\n", + "│ transformerVoltageControlOn │ false │\n", + "│ useReactiveLimits │ true │\n", + "│ phaseShifterRegulationOn │ false │\n", + "│ twtSplitShuntAdmittance │ false │\n", + "│ shuntCompensatorVoltageControlOn │ false │\n", + "│ readSlackBus │ true │\n", + "│ writeSlackBus │ true │\n", + "│ dc │ false │\n", + "│ distributedSlack │ true │\n", + "│ balanceType │ PROPORTIONAL_TO_GENERATION_P_MAX │\n", + "│ dcUseTransformerRatio │ true │\n", + "│ countriesToBalance │ │\n", + "│ computedConnectedComponentScope │ MAIN │\n", + "│ hvdcAcEmulation │ true │\n", + "│ dcPowerFactor │ 1.0 │\n", + "│ slackBusSelectionMode │ MOST_MESHED │\n", + "│ slackBusesIds │ [] │\n", + "│ slackDistributionFailureBehavior │ LEAVE_ON_SLACK_BUS │\n", + "│ voltageRemoteControl │ true │\n", + "│ lowImpedanceBranchMode │ REPLACE_BY_ZERO_IMPEDANCE_LINE │\n", + "│ loadPowerFactorConstant │ false │\n", + "│ plausibleActivePowerLimit │ 5000.0 │\n", + "│ newtonRaphsonStoppingCriteriaType │ UNIFORM_CRITERIA │\n", + "│ slackBusPMaxMismatch │ 1.0 │\n", + "│ maxActivePowerMismatch │ 0.01 │\n", + "│ maxReactivePowerMismatch │ 0.01 │\n", + "│ maxVoltageMismatch │ 1.0E-4 │\n", + "│ maxAngleMismatch │ 1.0E-5 │\n", + "│ maxRatioMismatch │ 1.0E-5 │\n", + "│ maxSusceptanceMismatch │ 1.0E-4 │\n", + "│ voltagePerReactivePowerControl │ false │\n", + "│ generatorReactivePowerRemoteControl │ false │\n", + "│ transformerReactivePowerControl │ false │\n", + "│ maxNewtonRaphsonIterations │ 15 │\n", + "│ maxOuterLoopIterations │ 20 │\n", + "│ newtonRaphsonConvEpsPerEq │ 1.0E-4 │\n", + "│ voltageInitModeOverride │ NONE │\n", + "│ transformerVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ shuntVoltageControlMode │ WITH_GENERATOR_VOLTAGE_CONTROL │\n", + "│ minPlausibleTargetVoltage │ 0.8 │\n", + "│ maxPlausibleTargetVoltage │ 1.2 │\n", + "│ minRealisticVoltage │ 0.5 │\n", + "│ maxRealisticVoltage │ 2.0 │\n", + "│ reactiveRangeCheckMode │ MAX │\n", + "│ lowImpedanceThreshold │ 1.0E-8 │\n", + "│ networkCacheEnabled │ true │\n", + "│ svcVoltageMonitoring │ true │\n", + "│ stateVectorScalingMode │ NONE │\n", + "│ maxSlackBusCount │ 1 │\n", + "│ debugDir │ │\n", + "│ incrementalTransformerRatioTapControlOuterLoopMaxTapShift │ 3 │\n", + "│ secondaryVoltageControl │ false │\n", + "│ reactiveLimitsMaxPqPvSwitch │ 3 │\n", + "│ phaseShifterControlMode │ CONTINUOUS_WITH_DISCRETISATION │\n", + "│ alwaysUpdateNetwork │ false │\n", + "│ mostMeshedSlackBusSelectorMaxNominalVoltagePercentile │ 95.0 │\n", + "│ reportedFeatures │ [] │\n", + "│ slackBusCountryFilter │ [] │\n", + "│ actionableSwitchesIds │ [SW] │\n", + "│ actionableTransformersIds │ [] │\n", + "│ asymmetrical │ false │\n", + "│ minNominalVoltageTargetVoltageCheck │ 20.0 │\n", + "│ reactivePowerDispatchMode │ Q_EQUAL_PROPORTION │\n", + "│ outerLoopNames │ │\n", + "│ useActiveLimits │ true │\n", + "│ disableVoltageControlOfGeneratorsOutsideActivePowerLimits │ false │\n", + "│ lineSearchStateVectorScalingMaxIteration │ 10 │\n", + "│ lineSearchStateVectorScalingStepFold │ 1.3333333333333333 │\n", + "│ maxVoltageChangeStateVectorScalingMaxDv │ 0.1 │\n", + "│ maxVoltageChangeStateVectorScalingMaxDphi │ 0.17453292519943295 │\n", + "│ linePerUnitMode │ IMPEDANCE │\n", + "│ useLoadModel │ false │\n", + "│ dcApproximationType │ IGNORE_R │\n", + "│ simulateAutomationSystems │ false │\n", + "│ acSolverType │ NEWTON_RAPHSON │\n", + "│ maxNewtonKrylovIterations │ 100 │\n", + "│ newtonKrylovLineSearch │ false │\n", + "│ referenceBusSelectionMode │ FIRST_SLACK │\n", + "│ writeReferenceTerminals │ true │\n", + "│ voltageTargetPriorities │ [GENERATOR, TRANSFORMER, SHUNT] │\n", + "└───────────────────────────────────────────────────────────┴──────────────────────────────────┘\n", + "INFO:powsybl:Outer loops: [DistributedSlack, VoltageMonitoring, ReactiveLimits]\n", "INFO:powsybl:Network cache reused for network 'ieee14cdf' and variant 'InitialState'\n", - "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n" + "INFO:powsybl:Start AC loadflow on network {CC0 SC0}\n", + "WARNING:powsybl:Failed to distribute slack bus active power mismatch, 11.350486157029849 MW remains\n", + "INFO:powsybl:1 buses switched PV -> PQ (3 bus remains PV)\n", + "WARNING:powsybl:Failed to distribute slack bus active power mismatch, 11.353082185766317 MW remains\n", + "INFO:powsybl:Ac loadflow complete on network {CC0 SC0} (result=AcLoadFlowResult(outerLoopIterations=1, newtonRaphsonIterations=3, solverStatus=CONVERGED, outerLoopStatus=STABLE, slackBusActivePowerMismatch=11.353082185766317, distributedActivePower=0.0))\n", + "INFO:powsybl:Load flow ran in 6 ms\n" ] }, { - "ename": "PyPowsyblError", - "evalue": "com.powsybl.commons.PowsyblException: Voltage magnitude is undefined for bus 'B'", - "output_type": "error", - "traceback": [ - "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", - "\u001B[0;31mPyPowsyblError\u001B[0m Traceback (most recent call last)", - "Cell \u001B[0;32mIn[15], line 1\u001B[0m\n\u001B[0;32m----> 1\u001B[0m \u001B[43mpp\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mloadflow\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mrun_ac\u001B[49m\u001B[43m(\u001B[49m\u001B[43mn\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mp\u001B[49m\u001B[43m)\u001B[49m\n", - "File \u001B[0;32m~/PycharmProjects/pypowsybl/pypowsybl/loadflow.py:265\u001B[0m, in \u001B[0;36mrun_ac\u001B[0;34m(network, parameters, provider, reporter)\u001B[0m\n\u001B[1;32m 252\u001B[0m \u001B[38;5;250m\u001B[39m\u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 253\u001B[0m \u001B[38;5;124;03mRun an AC loadflow on a network.\u001B[39;00m\n\u001B[1;32m 254\u001B[0m \n\u001B[0;32m (...)\u001B[0m\n\u001B[1;32m 262\u001B[0m \u001B[38;5;124;03m A list of component results, one for each component of the network.\u001B[39;00m\n\u001B[1;32m 263\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 264\u001B[0m p \u001B[38;5;241m=\u001B[39m parameters\u001B[38;5;241m.\u001B[39m_to_c_parameters() \u001B[38;5;28;01mif\u001B[39;00m parameters \u001B[38;5;129;01mis\u001B[39;00m \u001B[38;5;129;01mnot\u001B[39;00m \u001B[38;5;28;01mNone\u001B[39;00m \u001B[38;5;28;01melse\u001B[39;00m _pypowsybl\u001B[38;5;241m.\u001B[39mLoadFlowParameters()\n\u001B[0;32m--> 265\u001B[0m \u001B[38;5;28;01mreturn\u001B[39;00m [ComponentResult(res) \u001B[38;5;28;01mfor\u001B[39;00m res \u001B[38;5;129;01min\u001B[39;00m \u001B[43m_pypowsybl\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mrun_loadflow\u001B[49m\u001B[43m(\u001B[49m\u001B[43mnetwork\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_handle\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mFalse\u001B[39;49;00m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mp\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mprovider\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mNone\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mif\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mreporter\u001B[49m\u001B[43m \u001B[49m\u001B[38;5;129;43;01mis\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[38;5;28;43;01mNone\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[38;5;28;43;01melse\u001B[39;49;00m\u001B[43m \u001B[49m\u001B[43mreporter\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43m_reporter_model\u001B[49m\u001B[43m)\u001B[49m]\n", - "\u001B[0;31mPyPowsyblError\u001B[0m: com.powsybl.commons.PowsyblException: Voltage magnitude is undefined for bus 'B'" - ] + "data": { + "text/plain": [ + "[ComponentResult(connected_component_num=0, synchronous_component_num=0, status=CONVERGED, status_text=CONVERGED, iteration_count=3, reference_bus_id='B1', slack_bus_results=[SlackBusResult(id='B1', active_power_mismatch=11.353082185766317)], distributed_active_power=0.0)]" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" } ], - "source": [ - "pp.loadflow.run_ac(n, p)" - ], - "metadata": { - "collapsed": false, - "ExecuteTime": { - "end_time": "2023-06-19T21:03:51.738531Z", - "start_time": "2023-06-19T21:03:51.637341Z" - } - } + "execution_count": 14 }, { "cell_type": "code", - "execution_count": null, - "outputs": [], "source": [], "metadata": { "collapsed": false, "ExecuteTime": { - "start_time": "2023-06-19T21:03:51.692400Z" + "end_time": "2024-06-12T07:31:04.841892Z", + "start_time": "2024-06-12T07:31:04.840073Z" } - } + }, + "outputs": [], + "execution_count": 14 } ], "metadata": { From 909814488abe1b5b17eab22e0755d723084bd587 Mon Sep 17 00:00:00 2001 From: Geoffroy Jamgotchian Date: Wed, 12 Jun 2024 09:38:31 +0200 Subject: [PATCH 4/4] Add link Signed-off-by: Geoffroy Jamgotchian --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cbe6c87..c904e95 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,4 @@ - Network, load flow calculation, security analysis and sensitivity analysis [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/powsybl/pypowsybl-notebooks/main?labpath=pypowsybl_lf_security_sensitivity_analysis.ipynb) - Operator strategy notebook: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/powsybl/pypowsybl-notebooks/main?labpath=operator_strategy.ipynb) - Computation using Dynaflow : [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/powsybl/pypowsybl-notebooks/main?labpath=dynaflow/pypowsybl_dynaflow.ipynb) - +- OpenLoadFlow fast restart : [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/powsybl/pypowsybl-notebooks/main?labpath=olf_fast_restart.ipynb)