diff --git a/Siobhan_scratch_testing.ipynb b/Siobhan_scratch_testing.ipynb index cbb0fea..dc75704 100644 --- a/Siobhan_scratch_testing.ipynb +++ b/Siobhan_scratch_testing.ipynb @@ -2,17 +2,5079 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ - "from config import get_config\n", - "from pp_network import NetModel\n", + "from virtual_microgrids.configs import get_config\n", + "from virtual_microgrids.powerflow.pp_network import NetModel\n", "from pandapower.plotting.plotly import simple_plotly\n", "import pandapower as pp\n", "import numpy as np" ] }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Storage applied on nodes: [10 22 9 20 24 19]\n", + "No loads or generation added to network\n" + ] + } + ], + "source": [ + "config = get_config('rural_1', algorithm='DDPG') # 'Six_Bus_MVP2', algorithm='DDPG')\n", + "env = NetModel(config=config)\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "There are no Power Flow results. A Newton-Raphson power flow will be executed.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "init_flow: -10.0 at bus: 3\n", + "init_flow: -10.5 at bus: 6\n", + "init_flow: 10.5 at bus: 4\n", + "init_flow: 10.0 at bus: 7\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No or insufficient geodata available --> Creating artificial coordinates. This may take some time\n" + ] + }, + { + "data": { + "text/html": [ + "" + ], + "text/vnd.plotly.v1+html": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,127.5)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "line0
I = 0.052 %
I_from = 0.0 kA
I_to = 0.0 kA
", + "type": "scatter", + "uid": "31761870-e982-4c7d-a4c5-6a138e6e71dd", + "x": [ + 0, + 0, + 0 + ], + "y": [ + 0, + 0.5, + 1 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,132.04545454545453)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "line1
I = 0.534 %
I_from = 0.001 kA
I_to = 0.001 kA
", + "type": "scatter", + "uid": "a8a70f49-7c10-419b-a036-d912490cfba3", + "x": [ + 0, + -0.5, + -1 + ], + "y": [ + 1, + 1.5, + 2 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,241.13636363636363)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "line2
I = 10.153 %
I_from = 0.014 kA
I_to = 0.014 kA
", + "type": "scatter", + "uid": "07d8773a-a15c-4616-8ff1-c92c693e10e2", + "x": [ + -1, + -1.25, + -1.5 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,250.22727272727272)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "line3
I = 10.687 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "type": "scatter", + "uid": "4bc4b678-3a71-42e7-a30d-08059bd17df3", + "x": [ + -1, + -0.75, + -0.5 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,132.04545454545453)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "line4
I = 0.482 %
I_from = 0.001 kA
I_to = 0.001 kA
", + "type": "scatter", + "uid": "9cb53051-b516-404e-855e-f0b4ef845b4f", + "x": [ + 0, + 0.5, + 1 + ], + "y": [ + 1, + 1.5, + 2 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,250.22727272727272)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "line5
I = 10.659 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "type": "scatter", + "uid": "e6a0636b-cf63-41f9-b6bf-1c362cea83c7", + "x": [ + 1, + 0.75, + 0.5 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,245.68181818181816)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "line6
I = 10.176 %
I_from = 0.014 kA
I_to = 0.014 kA
", + "type": "scatter", + "uid": "5b1b8dca-88e4-44e1-8e31-e401413e1da3", + "x": [ + 1, + 1.25, + 1.5 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "marker": { + "cmax": 100, + "cmin": 0.051695437689854205, + "color": "rgb(255,255,255)", + "colorbar": { + "thickness": 10, + "title": { + "text": "Line Loading [%]" + }, + "x": 1.1 + }, + "colorscale": "Jet", + "size": 0 + }, + "mode": "markers", + "type": "scatter", + "uid": "44f226d9-bf47-4e7d-8b43-159c53d9fdb3", + "x": [ + 0 + ], + "y": [ + 0 + ] + }, + { + "hoverinfo": "text", + "marker": { + "color": "rgb(128, 128, 128)", + "size": 1, + "symbol": "circle" + }, + "mode": "markers", + "name": "edge_center", + "text": [ + "line0
I = 0.052 %
I_from = 0.0 kA
I_to = 0.0 kA
", + "line1
I = 0.534 %
I_from = 0.001 kA
I_to = 0.001 kA
", + "line2
I = 10.153 %
I_from = 0.014 kA
I_to = 0.014 kA
", + "line3
I = 10.687 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "line4
I = 0.482 %
I_from = 0.001 kA
I_to = 0.001 kA
", + "line5
I = 10.659 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "line6
I = 10.176 %
I_from = 0.014 kA
I_to = 0.014 kA
" + ], + "type": "scatter", + "uid": "e7e47ffa-0a0c-4f65-b54c-4869b13a0e01", + "x": [ + 0 + ], + "y": [ + 0.5 + ] + }, + { + "hoverinfo": "text", + "marker": { + "color": "rgb(128, 128, 128)", + "size": 20, + "symbol": "square" + }, + "mode": "markers", + "name": "external_grid", + "text": [ + "bus0" + ], + "type": "scatter", + "uid": "ad64bbfd-e947-4321-b5e6-9ae2e8d2684f", + "x": [ + 0 + ], + "y": [ + 0 + ] + }, + { + "hoverinfo": "text", + "marker": { + "cmax": 1.1, + "cmin": 0.9, + "color": [ + 1, + 1.0000000004901675, + 0.9999367253044263, + 1.0011390965643445, + 0.998671095487345, + 1.000057102917361, + 1.001319364677862, + 0.9988519601956316 + ], + "colorbar": { + "thickness": 10, + "title": { + "text": "Bus Voltage [pu]" + }, + "x": 1 + }, + "colorscale": "Jet", + "size": 10, + "symbol": "circle" + }, + "mode": "markers", + "name": "buses", + "text": [ + "bus0
V_m = 1.0 pu
V_m = 20.0 kV
V_a = 0.0 deg", + "bus1
V_m = 1.0 pu
V_m = 0.4 kV
V_a = -0.0 deg", + "bus2
V_m = 1.0 pu
V_m = 0.4 kV
V_a = -0.0 deg", + "bus3
V_m = 1.001 pu
V_m = 0.4 kV
V_a = 0.008 deg", + "bus4
V_m = 0.999 pu
V_m = 0.399 kV
V_a = -0.01 deg", + "bus5
V_m = 1.0 pu
V_m = 0.4 kV
V_a = 0.0 deg", + "bus6
V_m = 1.001 pu
V_m = 0.401 kV
V_a = 0.01 deg", + "bus7
V_m = 0.999 pu
V_m = 0.4 kV
V_a = -0.008 deg" + ], + "type": "scatter", + "uid": "fe8385e7-cea4-46f9-a259-e8075e711aae", + "x": [ + 0, + 0, + -1, + -1.5, + -0.5, + 1, + 0.5, + 1.5 + ], + "y": [ + 0, + 1, + 2, + 3, + 3, + 2, + 3, + 3 + ] + } + ], + "layout": { + "autosize": true, + "height": 700, + "hovermode": "closest", + "margin": { + "b": 5, + "l": 5, + "r": 5, + "t": 5 + }, + "showlegend": false, + "title": { + "font": { + "size": 16 + } + }, + "width": 700, + "xaxis": { + "showgrid": false, + "showticklabels": false, + "zeroline": false + }, + "yaxis": { + "showgrid": false, + "showticklabels": false, + "zeroline": false + } + } + }, + "text/html": [ + "
" + ], + "text/vnd.plotly.v1+html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "config = get_config('Six_Bus_MVP2', algorithm='DDPG')\n", + "env = NetModel(config=config)\n", + "pp.plotting.plotly.pf_res_plotly(env.net)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "config = get_config('rural_1', algorithm='DDPG') # 'Six_Bus_MVP2', algorithm='DDPG')" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{3: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 8: array([-6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9]),\n", + " 9: array([-15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3]),\n", + " 10: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 11: array([-29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6]),\n", + " 19: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 20: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 21: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 22: array([-15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8]),\n", + " 23: array([-25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3]),\n", + " 24: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 25: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 7: array([7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9]),\n", + " 13: array([7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9])}" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "config.static_feeds" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "config.static_feeds_new" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "No loads or generation added to network\n" + ] + } + ], + "source": [ + "env = NetModel(config=config)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "env.config.static_feeds_new" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
namebusp_kwq_kvarconst_z_percentconst_i_percentsn_kvascalingin_servicetype
0None35.100.00.0NaN1.0TrueNone
1None85.100.00.0NaN1.0TrueNone
2None95.100.00.0NaN1.0TrueNone
3None105.100.00.0NaN1.0TrueNone
4None115.100.00.0NaN1.0TrueNone
5None195.100.00.0NaN1.0TrueNone
6None205.100.00.0NaN1.0TrueNone
7None215.100.00.0NaN1.0TrueNone
8None225.100.00.0NaN1.0TrueNone
9None235.100.00.0NaN1.0TrueNone
10None245.100.00.0NaN1.0TrueNone
11None255.100.00.0NaN1.0TrueNone
12None77.900.00.0NaN1.0TrueNone
13None137.900.00.0NaN1.0TrueNone
\n", + "
" + ], + "text/plain": [ + " name bus p_kw q_kvar const_z_percent const_i_percent sn_kva \\\n", + "0 None 3 5.1 0 0.0 0.0 NaN \n", + "1 None 8 5.1 0 0.0 0.0 NaN \n", + "2 None 9 5.1 0 0.0 0.0 NaN \n", + "3 None 10 5.1 0 0.0 0.0 NaN \n", + "4 None 11 5.1 0 0.0 0.0 NaN \n", + "5 None 19 5.1 0 0.0 0.0 NaN \n", + "6 None 20 5.1 0 0.0 0.0 NaN \n", + "7 None 21 5.1 0 0.0 0.0 NaN \n", + "8 None 22 5.1 0 0.0 0.0 NaN \n", + "9 None 23 5.1 0 0.0 0.0 NaN \n", + "10 None 24 5.1 0 0.0 0.0 NaN \n", + "11 None 25 5.1 0 0.0 0.0 NaN \n", + "12 None 7 7.9 0 0.0 0.0 NaN \n", + "13 None 13 7.9 0 0.0 0.0 NaN \n", + "\n", + " scaling in_service type \n", + "0 1.0 True None \n", + "1 1.0 True None \n", + "2 1.0 True None \n", + "3 1.0 True None \n", + "4 1.0 True None \n", + "5 1.0 True None \n", + "6 1.0 True None \n", + "7 1.0 True None \n", + "8 1.0 True None \n", + "9 1.0 True None \n", + "10 1.0 True None \n", + "11 1.0 True None \n", + "12 1.0 True None \n", + "13 1.0 True None " + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env.net.load" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "abc = {5: {0: [-2, -2, -2], 1: [3, 3, 3]}, 3: {0: [0,0,0]}}" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "abc = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [], + "source": [ + "for bus1, thing1 in abc.items():\n", + "# print(bus1)\n", + "# print(thing1)\n", + " for bus2, thing2 in thing1.items():\n", + " print(bus2)\n", + " print(thing2)" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [], + "source": [ + "abc = {}" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [], + "source": [ + "abc.update({5: {0: [-2, -2, -2]}})" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Yes\n" + ] + } + ], + "source": [ + "if 5 in abc:\n", + " print('Yes')" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{5: {0: [-2, -2, -2]}}" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "abc" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "if 5 in abc:\n", + " abc[5].update({1: [0, 0, 0]})\n", + "else:\n", + " abc.update({5: {1: [0, 0, 0]}})" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{5: {0: [-2, -2, -2], 1: [0, 0, 0]}}" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "abc" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Yes\n" + ] + } + ], + "source": [ + "if isinstance(abc, dict):\n", + " print('Yes')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "This pandapower network includes the following parameter tables:\n", + " - bus (26 elements)\n", + " - load (14 elements)\n", + " - sgen (5 elements)\n", + " - storage (6 elements)\n", + " - ext_grid (1 element)\n", + " - line (24 elements)\n", + " - trafo (1 element)\n", + " - bus_geodata (26 elements)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env.net" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namestd_typefrom_busto_buslength_kmr_ohm_per_kmx_ohm_per_kmc_nf_per_kmg_us_per_kmmax_i_kadfparalleltypein_service
0NoneNAYY 4x150 SE120.2600.2080.080261.00.00.2701.01csTrue
1NoneNAYY 4x50 SE230.0290.6420.083210.00.00.1421.01csTrue
2NoneNAYY 4x150 SE140.1330.2080.080261.00.00.2701.01csTrue
3NoneNAYY 4x150 SE450.1330.2080.080261.00.00.2701.01csTrue
4NoneNAYY 4x150 SE560.1330.2080.080261.00.00.2701.01csTrue
5NoneNAYY 4x150 SE670.1330.2080.080261.00.00.2701.01csTrue
6NoneNAYY 4x50 SE480.0290.6420.083210.00.00.1421.01csTrue
7NoneNAYY 4x50 SE590.0290.6420.083210.00.00.1421.01csTrue
8NoneNAYY 4x50 SE6100.0290.6420.083210.00.00.1421.01csTrue
9NoneNAYY 4x50 SE7110.0290.6420.083210.00.00.1421.01csTrue
10NoneNAYY 4x150 SE1120.0680.2080.080261.00.00.2701.01csTrue
11NoneNAYY 4x150 SE12130.0680.2080.080261.00.00.2701.01csTrue
12NoneNAYY 4x150 SE13140.0680.2080.080261.00.00.2701.01csTrue
13NoneNAYY 4x150 SE14150.0680.2080.080261.00.00.2701.01csTrue
14NoneNAYY 4x150 SE15160.0680.2080.080261.00.00.2701.01csTrue
15NoneNAYY 4x120 SE16170.0680.2250.080264.00.00.2421.01csTrue
16NoneNAYY 4x120 SE17180.0680.2250.080264.00.00.2421.01csTrue
17NoneNAYY 4x50 SE12190.0290.6420.083210.00.00.1421.01csTrue
18NoneNAYY 4x50 SE13200.0290.6420.083210.00.00.1421.01csTrue
19NoneNAYY 4x50 SE14210.0290.6420.083210.00.00.1421.01csTrue
20NoneNAYY 4x50 SE15220.0290.6420.083210.00.00.1421.01csTrue
21NoneNAYY 4x50 SE16230.0290.6420.083210.00.00.1421.01csTrue
22NoneNAYY 4x50 SE17240.0290.6420.083210.00.00.1421.01csTrue
23NoneNAYY 4x50 SE18250.0290.6420.083210.00.00.1421.01csTrue
\n", + "
" + ], + "text/plain": [ + " name std_type from_bus to_bus length_km r_ohm_per_km \\\n", + "0 None NAYY 4x150 SE 1 2 0.260 0.208 \n", + "1 None NAYY 4x50 SE 2 3 0.029 0.642 \n", + "2 None NAYY 4x150 SE 1 4 0.133 0.208 \n", + "3 None NAYY 4x150 SE 4 5 0.133 0.208 \n", + "4 None NAYY 4x150 SE 5 6 0.133 0.208 \n", + "5 None NAYY 4x150 SE 6 7 0.133 0.208 \n", + "6 None NAYY 4x50 SE 4 8 0.029 0.642 \n", + "7 None NAYY 4x50 SE 5 9 0.029 0.642 \n", + "8 None NAYY 4x50 SE 6 10 0.029 0.642 \n", + "9 None NAYY 4x50 SE 7 11 0.029 0.642 \n", + "10 None NAYY 4x150 SE 1 12 0.068 0.208 \n", + "11 None NAYY 4x150 SE 12 13 0.068 0.208 \n", + "12 None NAYY 4x150 SE 13 14 0.068 0.208 \n", + "13 None NAYY 4x150 SE 14 15 0.068 0.208 \n", + "14 None NAYY 4x150 SE 15 16 0.068 0.208 \n", + "15 None NAYY 4x120 SE 16 17 0.068 0.225 \n", + "16 None NAYY 4x120 SE 17 18 0.068 0.225 \n", + "17 None NAYY 4x50 SE 12 19 0.029 0.642 \n", + "18 None NAYY 4x50 SE 13 20 0.029 0.642 \n", + "19 None NAYY 4x50 SE 14 21 0.029 0.642 \n", + "20 None NAYY 4x50 SE 15 22 0.029 0.642 \n", + "21 None NAYY 4x50 SE 16 23 0.029 0.642 \n", + "22 None NAYY 4x50 SE 17 24 0.029 0.642 \n", + "23 None NAYY 4x50 SE 18 25 0.029 0.642 \n", + "\n", + " x_ohm_per_km c_nf_per_km g_us_per_km max_i_ka df parallel type \\\n", + "0 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "1 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "2 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "3 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "4 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "5 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "6 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "7 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "8 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "9 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "10 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "11 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "12 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "13 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "14 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "15 0.080 264.0 0.0 0.242 1.0 1 cs \n", + "16 0.080 264.0 0.0 0.242 1.0 1 cs \n", + "17 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "18 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "19 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "20 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "21 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "22 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "23 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "\n", + " in_service \n", + "0 True \n", + "1 True \n", + "2 True \n", + "3 True \n", + "4 True \n", + "5 True \n", + "6 True \n", + "7 True \n", + "8 True \n", + "9 True \n", + "10 True \n", + "11 True \n", + "12 True \n", + "13 True \n", + "14 True \n", + "15 True \n", + "16 True \n", + "17 True \n", + "18 True \n", + "19 True \n", + "20 True \n", + "21 True \n", + "22 True \n", + "23 True " + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env.net.line" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "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", + " \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", + " \n", + " \n", + " \n", + "
namebusp_kwq_kvarsn_kvascalingin_servicetype
0None8-6.90NaN1.0TrueNone
1None9-15.30NaN1.0TrueNone
2None11-29.60NaN1.0TrueNone
3None22-15.80NaN1.0TrueNone
4None23-25.30NaN1.0TrueNone
\n", + "
" + ], + "text/plain": [ + " name bus p_kw q_kvar sn_kva scaling in_service type\n", + "0 None 8 -6.9 0 NaN 1.0 True None\n", + "1 None 9 -15.3 0 NaN 1.0 True None\n", + "2 None 11 -29.6 0 NaN 1.0 True None\n", + "3 None 22 -15.8 0 NaN 1.0 True None\n", + "4 None 23 -25.3 0 NaN 1.0 True None" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env.net.sgen" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "There are no Power Flow results. A Newton-Raphson power flow will be executed.\n" + ] + }, + { + "data": { + "text/html": [ + "" + ], + "text/vnd.plotly.v1+html": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,154.77272727272728)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 2.73 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "0fe92d57-6626-4de1-b1d5-eece88fcbd2a", + "x": [ + 0, + -0.83333333335, + -1.6666666667 + ], + "y": [ + 1, + 1.5, + 2 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.191 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "073b00ec-f27a-4f98-b1d9-cd86042f9e03", + "x": [ + -1.6666666667, + -1.6666666667, + -1.6666666667 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,255.0)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 12.38 %
I_from = 0.033 kA
I_to = 0.033 kA
", + "type": "scatter", + "uid": "387dc7f9-676b-431e-ba14-486086035585", + "x": [ + 0, + -0.08333333335, + -0.1666666667 + ], + "y": [ + 1, + 1.5, + 2 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,255.0)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 11.422 %
I_from = 0.031 kA
I_to = 0.031 kA
", + "type": "scatter", + "uid": "b4a524dc-c6fd-4dd9-ae73-a476daf68cbe", + "x": [ + -0.1666666667, + -0.4166666667, + -0.6666666667000001 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,195.68181818181816)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 6.022 %
I_from = 0.016 kA
I_to = 0.016 kA
", + "type": "scatter", + "uid": "376823cc-5e44-4601-af48-323f36a3312e", + "x": [ + -0.6666666667000001, + -0.9166666667000001, + -1.1666666667 + ], + "y": [ + 3, + 3.5, + 4 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,227.49999999999997)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 8.722 %
I_from = 0.024 kA
I_to = 0.024 kA
", + "type": "scatter", + "uid": "714a3fa8-859a-4a6e-a9c5-8179d0b6312d", + "x": [ + -1.1666666667, + -1.4166666667, + -1.6666666667 + ], + "y": [ + 4, + 4.5, + 5 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,145.6818181818182)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 1.82 %
I_from = 0.003 kA
I_to = 0.003 kA
", + "type": "scatter", + "uid": "115f65c9-e871-4126-b149-e9f601f4f212", + "x": [ + -0.1666666667, + 0.08333333330000002, + 0.33333333330000003 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,245.68181818181816)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 10.268 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "type": "scatter", + "uid": "e0b35b43-a5bf-4da1-999b-d2cb56c691fc", + "x": [ + -0.6666666667000001, + -0.4166666667, + -0.1666666667 + ], + "y": [ + 3, + 3.5, + 4 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.133 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "943279bf-6c41-463c-9648-986bd496a528", + "x": [ + -1.1666666667, + -0.9166666667000001, + -0.6666666667000001 + ], + "y": [ + 4, + 4.5, + 5 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,120.5,255.0)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 24.508 %
I_from = 0.035 kA
I_to = 0.035 kA
", + "type": "scatter", + "uid": "d1d25359-fa9c-4879-b7bf-b22614c075be", + "x": [ + -1.6666666667, + -1.6666666667, + -1.6666666667 + ], + "y": [ + 5, + 5.5, + 6 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,141.13636363636363)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 1.418 %
I_from = 0.004 kA
I_to = 0.004 kA
", + "type": "scatter", + "uid": "8edec86f-45df-4ecc-8f3e-87bde434a193", + "x": [ + 0, + 0.9166666666500001, + 1.8333333333000001 + ], + "y": [ + 1, + 1.5, + 2 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,141.13636363636363)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 1.308 %
I_from = 0.004 kA
I_to = 0.004 kA
", + "type": "scatter", + "uid": "958dd8f7-0dd5-45d1-af1d-07a5d86a9454", + "x": [ + 1.8333333333000001, + 1.5833333333000001, + 1.3333333333000001 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,222.95454545454544)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 8.253 %
I_from = 0.022 kA
I_to = 0.022 kA
", + "type": "scatter", + "uid": "b3769cb6-aba5-4826-b968-f930a73a705c", + "x": [ + 1.3333333333000001, + 1.0833333333000001, + 0.8333333333 + ], + "y": [ + 3, + 3.5, + 4 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,254.77272727272725)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 10.975 %
I_from = 0.03 kA
I_to = 0.03 kA
", + "type": "scatter", + "uid": "bc56256a-29ac-4be4-9154-584f748531d7", + "x": [ + 0.8333333333, + 0.5833333333, + 0.33333333330000003 + ], + "y": [ + 4, + 4.5, + 5 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.285 %
I_from = 0.014 kA
I_to = 0.014 kA
", + "type": "scatter", + "uid": "c53a715a-7ac7-4a2e-b8d6-cc77f1244256", + "x": [ + 0.33333333330000003, + 0.08333333330000002, + -0.1666666667 + ], + "y": [ + 5, + 5.5, + 6 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,195.68181818181816)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 6.065 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "type": "scatter", + "uid": "a200ecfe-5b79-47a1-b6fa-749cc8276a60", + "x": [ + -0.1666666667, + -0.4166666667, + -0.6666666667000001 + ], + "y": [ + 6, + 6.5, + 7 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,159.3181818181818)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 3.033 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "69c40b20-4734-4bb6-a524-1d9f46994f21", + "x": [ + -0.6666666667000001, + -0.9166666667000001, + -1.1666666667 + ], + "y": [ + 7, + 7.5, + 8 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.184 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "946ea17f-8e22-47be-811c-ec6cbb3c1987", + "x": [ + 1.8333333333000001, + 2.0833333333, + 2.3333333333 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.183 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "5e669303-a9e0-4d5e-b000-0a268d6eb684", + "x": [ + 1.3333333333000001, + 1.5833333333000001, + 1.8333333333000001 + ], + "y": [ + 3, + 3.5, + 4 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.176 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "70450064-daa7-4935-b242-4c188225a75c", + "x": [ + 0.8333333333, + 1.0833333333000001, + 1.3333333333000001 + ], + "y": [ + 4, + 4.5, + 5 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,250.22727272727272)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 10.819 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "type": "scatter", + "uid": "f25983df-f8e0-4567-b698-2c02e6c13d78", + "x": [ + 0.33333333330000003, + 0.5833333333, + 0.8333333333 + ], + "y": [ + 5, + 5.5, + 6 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,80.5,255.0)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 20.385 %
I_from = 0.029 kA
I_to = 0.029 kA
", + "type": "scatter", + "uid": "a717595c-4031-4dc3-98db-e44b69425d39", + "x": [ + -0.1666666667, + 0.08333333330000002, + 0.33333333330000003 + ], + "y": [ + 6, + 6.5, + 7 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.167 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "65c8d8e0-da3f-467d-b15c-4bd959da28a8", + "x": [ + -0.6666666667000001, + -0.4166666667, + -0.1666666667 + ], + "y": [ + 7, + 7.5, + 8 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.169 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "c634e587-88eb-4791-bd6d-c674570134e9", + "x": [ + -1.1666666667, + -1.1666666667, + -1.1666666667 + ], + "y": [ + 8, + 8.5, + 9 + ] + }, + { + "marker": { + "cmax": 100, + "cmin": 1.308007025069575, + "color": "rgb(255,255,255)", + "colorbar": { + "thickness": 10, + "title": { + "text": "Line Loading [%]" + }, + "x": 1.1 + }, + "colorscale": "Jet", + "size": 0 + }, + "mode": "markers", + "type": "scatter", + "uid": "ae5d790a-ec27-4e05-8880-3d48d082a497", + "x": [ + 0 + ], + "y": [ + 0 + ] + }, + { + "hoverinfo": "text", + "marker": { + "color": "rgb(128, 128, 128)", + "size": 1, + "symbol": "circle" + }, + "mode": "markers", + "name": "edge_center", + "text": [ + "None
I = 2.73 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 5.191 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 12.38 %
I_from = 0.033 kA
I_to = 0.033 kA
", + "None
I = 11.422 %
I_from = 0.031 kA
I_to = 0.031 kA
", + "None
I = 6.022 %
I_from = 0.016 kA
I_to = 0.016 kA
", + "None
I = 8.722 %
I_from = 0.024 kA
I_to = 0.024 kA
", + "None
I = 1.82 %
I_from = 0.003 kA
I_to = 0.003 kA
", + "None
I = 10.268 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "None
I = 5.133 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 24.508 %
I_from = 0.035 kA
I_to = 0.035 kA
", + "None
I = 1.418 %
I_from = 0.004 kA
I_to = 0.004 kA
", + "None
I = 1.308 %
I_from = 0.004 kA
I_to = 0.004 kA
", + "None
I = 8.253 %
I_from = 0.022 kA
I_to = 0.022 kA
", + "None
I = 10.975 %
I_from = 0.03 kA
I_to = 0.03 kA
", + "None
I = 5.285 %
I_from = 0.014 kA
I_to = 0.014 kA
", + "None
I = 6.065 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "None
I = 3.033 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 5.184 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 5.183 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 5.176 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 10.819 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "None
I = 20.385 %
I_from = 0.029 kA
I_to = 0.029 kA
", + "None
I = 5.167 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 5.169 %
I_from = 0.007 kA
I_to = 0.007 kA
" + ], + "type": "scatter", + "uid": "032adc60-6b96-4324-ae81-6a1068a0a51e", + "x": [ + -0.83333333335 + ], + "y": [ + 1.5 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,236.59090909090907)", + "width": 3 + }, + "mode": "lines", + "name": "trafos", + "text": "None
I = 9.623 %
I_hv = 0.0 kA
I_lv = 0.022 kA
", + "type": "scatter", + "uid": "2f7ac487-a68f-44f9-bdc0-bd85121675b3", + "x": [ + 0, + 0, + 0 + ], + "y": [ + 0, + 0.5, + 1 + ] + }, + { + "hoverinfo": "text", + "marker": { + "color": "rgb(0.0,0.0,236.59090909090907)", + "size": 1, + "symbol": "circle" + }, + "mode": "markers", + "name": "edge_center", + "text": [ + "None
I = 9.623 %
I_hv = 0.0 kA
I_lv = 0.022 kA
" + ], + "type": "scatter", + "uid": "cfebe601-ba5b-4efc-8722-0284befac0c5", + "x": [ + 0 + ], + "y": [ + 0.5 + ] + }, + { + "hoverinfo": "text", + "marker": { + "color": "rgb(128, 128, 128)", + "size": 20, + "symbol": "square" + }, + "mode": "markers", + "name": "external_grid", + "text": [ + "bus0" + ], + "type": "scatter", + "uid": "d074f8be-c4d6-427b-9383-b55ca9c8bc91", + "x": [ + 0 + ], + "y": [ + 0 + ] + }, + { + "hoverinfo": "text", + "marker": { + "cmax": 1.1, + "cmin": 0.9, + "color": [ + 1, + 1.0008676632948064, + 0.999141344632132, + 0.9985470317087848, + 1.0048664480565133, + 1.008557666895689, + 1.0105035630073944, + 1.0133233452872892, + 1.0050748449381264, + 1.0097331144203225, + 1.0099159405498186, + 1.0161289122130623, + 1.0006320228320569, + 1.0008471850204042, + 1.002210956869953, + 1.0040251957177506, + 1.004898824542901, + 1.0039264071532708, + 1.0034401025588509, + 1.0000385963462886, + 1.0002538862632033, + 1.0016184664225332, + 1.0052637445569212, + 1.0072324261652394, + 1.0033349303318897, + 1.0028483387422 + ], + "colorbar": { + "thickness": 10, + "title": { + "text": "Bus Voltage [pu]" + }, + "x": 1 + }, + "colorscale": "Jet", + "size": 10, + "symbol": "circle" + }, + "mode": "markers", + "name": "buses", + "text": [ + "bus0
V_m = 1.0 pu
V_m = 20.0 kV
V_a = 0.0 deg", + "bus1
V_m = 1.001 pu
V_m = 0.4 kV
V_a = 0.21 deg", + "bus2
V_m = 0.999 pu
V_m = 0.4 kV
V_a = 0.172 deg", + "bus3
V_m = 0.999 pu
V_m = 0.399 kV
V_a = 0.168 deg", + "bus4
V_m = 1.005 pu
V_m = 0.402 kV
V_a = 0.299 deg", + "bus5
V_m = 1.009 pu
V_m = 0.403 kV
V_a = 0.38 deg", + "bus6
V_m = 1.011 pu
V_m = 0.404 kV
V_a = 0.423 deg", + "bus7
V_m = 1.013 pu
V_m = 0.405 kV
V_a = 0.485 deg", + "bus8
V_m = 1.005 pu
V_m = 0.402 kV
V_a = 0.301 deg", + "bus9
V_m = 1.01 pu
V_m = 0.404 kV
V_a = 0.389 deg", + "bus10
V_m = 1.01 pu
V_m = 0.404 kV
V_a = 0.419 deg", + "bus11
V_m = 1.016 pu
V_m = 0.406 kV
V_a = 0.505 deg", + "bus12
V_m = 1.001 pu
V_m = 0.4 kV
V_a = 0.205 deg", + "bus13
V_m = 1.001 pu
V_m = 0.4 kV
V_a = 0.21 deg", + "bus14
V_m = 1.002 pu
V_m = 0.401 kV
V_a = 0.24 deg", + "bus15
V_m = 1.004 pu
V_m = 0.402 kV
V_a = 0.28 deg", + "bus16
V_m = 1.005 pu
V_m = 0.402 kV
V_a = 0.3 deg", + "bus17
V_m = 1.004 pu
V_m = 0.402 kV
V_a = 0.28 deg", + "bus18
V_m = 1.003 pu
V_m = 0.401 kV
V_a = 0.27 deg", + "bus19
V_m = 1.0 pu
V_m = 0.4 kV
V_a = 0.201 deg", + "bus20
V_m = 1.0 pu
V_m = 0.4 kV
V_a = 0.206 deg", + "bus21
V_m = 1.002 pu
V_m = 0.401 kV
V_a = 0.236 deg", + "bus22
V_m = 1.005 pu
V_m = 0.402 kV
V_a = 0.289 deg", + "bus23
V_m = 1.007 pu
V_m = 0.403 kV
V_a = 0.317 deg", + "bus24
V_m = 1.003 pu
V_m = 0.401 kV
V_a = 0.275 deg", + "bus25
V_m = 1.003 pu
V_m = 0.401 kV
V_a = 0.266 deg" + ], + "type": "scatter", + "uid": "a41a98f8-bcfc-4ed0-9465-3a8e235203c1", + "x": [ + 0, + 0, + -1.6666666667, + -1.6666666667, + -0.1666666667, + -0.6666666667000001, + -1.1666666667, + -1.6666666667, + 0.33333333330000003, + -0.1666666667, + -0.6666666667000001, + -1.6666666667, + 1.8333333333000001, + 1.3333333333000001, + 0.8333333333, + 0.33333333330000003, + -0.1666666667, + -0.6666666667000001, + -1.1666666667, + 2.3333333333, + 1.8333333333000001, + 1.3333333333000001, + 0.8333333333, + 0.33333333330000003, + -0.1666666667, + -1.1666666667 + ], + "y": [ + 0, + 1, + 2, + 3, + 2, + 3, + 4, + 5, + 3, + 4, + 5, + 6, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ], + "layout": { + "autosize": true, + "height": 700, + "hovermode": "closest", + "margin": { + "b": 5, + "l": 5, + "r": 5, + "t": 5 + }, + "showlegend": false, + "title": { + "font": { + "size": 16 + } + }, + "width": 311.1111111111111, + "xaxis": { + "showgrid": false, + "showticklabels": false, + "zeroline": false + }, + "yaxis": { + "showgrid": false, + "showticklabels": false, + "zeroline": false + } + } + }, + "text/html": [ + "
" + ], + "text/vnd.plotly.v1+html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pp.plotting.plotly.pf_res_plotly(env.net)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namestd_typefrom_busto_buslength_kmr_ohm_per_kmx_ohm_per_kmc_nf_per_kmg_us_per_kmmax_i_kadfparalleltypein_service
0NoneNAYY 4x150 SE120.2600.2080.080261.00.00.2701.01csTrue
1NoneNAYY 4x50 SE230.0290.6420.083210.00.00.1421.01csTrue
2NoneNAYY 4x150 SE140.1330.2080.080261.00.00.2701.01csTrue
3NoneNAYY 4x150 SE450.1330.2080.080261.00.00.2701.01csTrue
4NoneNAYY 4x150 SE560.1330.2080.080261.00.00.2701.01csTrue
5NoneNAYY 4x150 SE670.1330.2080.080261.00.00.2701.01csTrue
6NoneNAYY 4x50 SE480.0290.6420.083210.00.00.1421.01csTrue
7NoneNAYY 4x50 SE590.0290.6420.083210.00.00.1421.01csTrue
8NoneNAYY 4x50 SE6100.0290.6420.083210.00.00.1421.01csTrue
9NoneNAYY 4x50 SE7110.0290.6420.083210.00.00.1421.01csTrue
10NoneNAYY 4x150 SE1120.0680.2080.080261.00.00.2701.01csTrue
11NoneNAYY 4x150 SE12130.0680.2080.080261.00.00.2701.01csTrue
12NoneNAYY 4x150 SE13140.0680.2080.080261.00.00.2701.01csTrue
13NoneNAYY 4x150 SE14150.0680.2080.080261.00.00.2701.01csTrue
14NoneNAYY 4x150 SE15160.0680.2080.080261.00.00.2701.01csTrue
15NoneNAYY 4x120 SE16170.0680.2250.080264.00.00.2421.01csTrue
16NoneNAYY 4x120 SE17180.0680.2250.080264.00.00.2421.01csTrue
17NoneNAYY 4x50 SE12190.0290.6420.083210.00.00.1421.01csTrue
18NoneNAYY 4x50 SE13200.0290.6420.083210.00.00.1421.01csTrue
19NoneNAYY 4x50 SE14210.0290.6420.083210.00.00.1421.01csTrue
20NoneNAYY 4x50 SE15220.0290.6420.083210.00.00.1421.01csTrue
21NoneNAYY 4x50 SE16230.0290.6420.083210.00.00.1421.01csTrue
22NoneNAYY 4x50 SE17240.0290.6420.083210.00.00.1421.01csTrue
23NoneNAYY 4x50 SE18250.0290.6420.083210.00.00.1421.01csTrue
\n", + "
" + ], + "text/plain": [ + " name std_type from_bus to_bus length_km r_ohm_per_km \\\n", + "0 None NAYY 4x150 SE 1 2 0.260 0.208 \n", + "1 None NAYY 4x50 SE 2 3 0.029 0.642 \n", + "2 None NAYY 4x150 SE 1 4 0.133 0.208 \n", + "3 None NAYY 4x150 SE 4 5 0.133 0.208 \n", + "4 None NAYY 4x150 SE 5 6 0.133 0.208 \n", + "5 None NAYY 4x150 SE 6 7 0.133 0.208 \n", + "6 None NAYY 4x50 SE 4 8 0.029 0.642 \n", + "7 None NAYY 4x50 SE 5 9 0.029 0.642 \n", + "8 None NAYY 4x50 SE 6 10 0.029 0.642 \n", + "9 None NAYY 4x50 SE 7 11 0.029 0.642 \n", + "10 None NAYY 4x150 SE 1 12 0.068 0.208 \n", + "11 None NAYY 4x150 SE 12 13 0.068 0.208 \n", + "12 None NAYY 4x150 SE 13 14 0.068 0.208 \n", + "13 None NAYY 4x150 SE 14 15 0.068 0.208 \n", + "14 None NAYY 4x150 SE 15 16 0.068 0.208 \n", + "15 None NAYY 4x120 SE 16 17 0.068 0.225 \n", + "16 None NAYY 4x120 SE 17 18 0.068 0.225 \n", + "17 None NAYY 4x50 SE 12 19 0.029 0.642 \n", + "18 None NAYY 4x50 SE 13 20 0.029 0.642 \n", + "19 None NAYY 4x50 SE 14 21 0.029 0.642 \n", + "20 None NAYY 4x50 SE 15 22 0.029 0.642 \n", + "21 None NAYY 4x50 SE 16 23 0.029 0.642 \n", + "22 None NAYY 4x50 SE 17 24 0.029 0.642 \n", + "23 None NAYY 4x50 SE 18 25 0.029 0.642 \n", + "\n", + " x_ohm_per_km c_nf_per_km g_us_per_km max_i_ka df parallel type \\\n", + "0 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "1 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "2 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "3 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "4 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "5 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "6 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "7 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "8 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "9 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "10 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "11 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "12 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "13 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "14 0.080 261.0 0.0 0.270 1.0 1 cs \n", + "15 0.080 264.0 0.0 0.242 1.0 1 cs \n", + "16 0.080 264.0 0.0 0.242 1.0 1 cs \n", + "17 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "18 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "19 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "20 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "21 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "22 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "23 0.083 210.0 0.0 0.142 1.0 1 cs \n", + "\n", + " in_service \n", + "0 True \n", + "1 True \n", + "2 True \n", + "3 True \n", + "4 True \n", + "5 True \n", + "6 True \n", + "7 True \n", + "8 True \n", + "9 True \n", + "10 True \n", + "11 True \n", + "12 True \n", + "13 True \n", + "14 True \n", + "15 True \n", + "16 True \n", + "17 True \n", + "18 True \n", + "19 True \n", + "20 True \n", + "21 True \n", + "22 True \n", + "23 True " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from pandapower.networks import create_synthetic_voltage_control_lv_network as mknet\n", + "net = mknet(network_class='rural_1')\n", + "net.line" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namestd_typehv_buslv_bussn_kvavn_hv_kvvn_lv_kvvsc_percentvscr_percentpfe_kw...tp_midtp_mintp_maxtp_st_percenttp_st_degreetp_postp_phase_shifterparalleldfin_service
0None0.16 MVA 20/0.4 kV vc01160.020.00.44.00.960.62...0-222.50.00False11.0True
\n", + "

1 rows × 23 columns

\n", + "
" + ], + "text/plain": [ + " name std_type hv_bus lv_bus sn_kva vn_hv_kv vn_lv_kv \\\n", + "0 None 0.16 MVA 20/0.4 kV vc 0 1 160.0 20.0 0.4 \n", + "\n", + " vsc_percent vscr_percent pfe_kw ... tp_mid tp_min tp_max \\\n", + "0 4.0 0.96 0.62 ... 0 -2 2 \n", + "\n", + " tp_st_percent tp_st_degree tp_pos tp_phase_shifter parallel df \\\n", + "0 2.5 0.0 0 False 1 1.0 \n", + "\n", + " in_service \n", + "0 True \n", + "\n", + "[1 rows x 23 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "net.trafo" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n", + "1\n" + ] + } + ], + "source": [ + "for idx, entry in net.trafo.iterrows():\n", + " print(entry.hv_bus)\n", + " print(entry.lv_bus)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namevn_kvtypezonein_service
0mv bus20.0bNoneTrue
1busbar0.4bNoneTrue
2None0.4mFeeder1True
3None0.4nFeeder1True
4None0.4mFeeder2True
5None0.4mFeeder2True
6None0.4mFeeder2True
7None0.4mFeeder2True
8None0.4nFeeder2True
9None0.4nFeeder2True
10None0.4nFeeder2True
11None0.4nFeeder2True
12None0.4mFeeder3True
13None0.4mFeeder3True
14None0.4mFeeder3True
15None0.4mFeeder3True
16None0.4mFeeder3True
17None0.4mFeeder3True
18None0.4mFeeder3True
19None0.4nFeeder3True
20None0.4nFeeder3True
21None0.4nFeeder3True
22None0.4nFeeder3True
23None0.4nFeeder3True
24None0.4nFeeder3True
25None0.4nFeeder3True
\n", + "
" + ], + "text/plain": [ + " name vn_kv type zone in_service\n", + "0 mv bus 20.0 b None True\n", + "1 busbar 0.4 b None True\n", + "2 None 0.4 m Feeder1 True\n", + "3 None 0.4 n Feeder1 True\n", + "4 None 0.4 m Feeder2 True\n", + "5 None 0.4 m Feeder2 True\n", + "6 None 0.4 m Feeder2 True\n", + "7 None 0.4 m Feeder2 True\n", + "8 None 0.4 n Feeder2 True\n", + "9 None 0.4 n Feeder2 True\n", + "10 None 0.4 n Feeder2 True\n", + "11 None 0.4 n Feeder2 True\n", + "12 None 0.4 m Feeder3 True\n", + "13 None 0.4 m Feeder3 True\n", + "14 None 0.4 m Feeder3 True\n", + "15 None 0.4 m Feeder3 True\n", + "16 None 0.4 m Feeder3 True\n", + "17 None 0.4 m Feeder3 True\n", + "18 None 0.4 m Feeder3 True\n", + "19 None 0.4 n Feeder3 True\n", + "20 None 0.4 n Feeder3 True\n", + "21 None 0.4 n Feeder3 True\n", + "22 None 0.4 n Feeder3 True\n", + "23 None 0.4 n Feeder3 True\n", + "24 None 0.4 n Feeder3 True\n", + "25 None 0.4 n Feeder3 True" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "net.bus" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "There are no Power Flow results. A Newton-Raphson power flow will be executed.\n" + ] + }, + { + "data": { + "text/html": [ + "" + ], + "text/vnd.plotly.v1+html": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.plotly.v1+json": { + "config": { + "linkText": "Export to plot.ly", + "plotlyServerURL": "https://plot.ly", + "showLink": false + }, + "data": [ + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,154.77272727272728)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 2.73 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "e9c24ea9-15bd-409f-add2-f76fa2394667", + "x": [ + 0, + -0.83333333335, + -1.6666666667 + ], + "y": [ + 1, + 1.5, + 2 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.191 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "24fed674-efa6-4b5d-abaf-b0f03a786cff", + "x": [ + -1.6666666667, + -1.6666666667, + -1.6666666667 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,255.0)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 12.38 %
I_from = 0.033 kA
I_to = 0.033 kA
", + "type": "scatter", + "uid": "31990299-703c-4651-a797-8810fdb51257", + "x": [ + 0, + -0.08333333335, + -0.1666666667 + ], + "y": [ + 1, + 1.5, + 2 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,255.0)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 11.422 %
I_from = 0.031 kA
I_to = 0.031 kA
", + "type": "scatter", + "uid": "03af63c8-2958-4d99-800c-6a831ef3e12f", + "x": [ + -0.1666666667, + -0.4166666667, + -0.6666666667000001 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,195.68181818181816)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 6.022 %
I_from = 0.016 kA
I_to = 0.016 kA
", + "type": "scatter", + "uid": "a0401556-42fa-4453-8f98-1848a99c84fb", + "x": [ + -0.6666666667000001, + -0.9166666667000001, + -1.1666666667 + ], + "y": [ + 3, + 3.5, + 4 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,227.49999999999997)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 8.722 %
I_from = 0.024 kA
I_to = 0.024 kA
", + "type": "scatter", + "uid": "895be367-5b36-408b-b428-9e174691c697", + "x": [ + -1.1666666667, + -1.4166666667, + -1.6666666667 + ], + "y": [ + 4, + 4.5, + 5 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,145.6818181818182)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 1.82 %
I_from = 0.003 kA
I_to = 0.003 kA
", + "type": "scatter", + "uid": "b2f2b75c-f882-400b-a0c0-c8bd45627f6b", + "x": [ + -0.1666666667, + 0.08333333330000002, + 0.33333333330000003 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,245.68181818181816)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 10.268 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "type": "scatter", + "uid": "b9f8ce6b-0757-4a89-bb91-b4f38ba59681", + "x": [ + -0.6666666667000001, + -0.4166666667, + -0.1666666667 + ], + "y": [ + 3, + 3.5, + 4 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.133 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "c0815eb1-06be-40cb-9055-18dc2033b2e0", + "x": [ + -1.1666666667, + -0.9166666667000001, + -0.6666666667000001 + ], + "y": [ + 4, + 4.5, + 5 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,120.5,255.0)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 24.508 %
I_from = 0.035 kA
I_to = 0.035 kA
", + "type": "scatter", + "uid": "2b70f585-f044-4757-aff0-5f1804427ca2", + "x": [ + -1.6666666667, + -1.6666666667, + -1.6666666667 + ], + "y": [ + 5, + 5.5, + 6 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,141.13636363636363)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 1.418 %
I_from = 0.004 kA
I_to = 0.004 kA
", + "type": "scatter", + "uid": "7e528381-8fa2-4d53-a511-9bb88fb2ba77", + "x": [ + 0, + 0.9166666666500001, + 1.8333333333000001 + ], + "y": [ + 1, + 1.5, + 2 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,141.13636363636363)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 1.308 %
I_from = 0.004 kA
I_to = 0.004 kA
", + "type": "scatter", + "uid": "2fb68883-9973-4f57-b2b4-f800b1f8760b", + "x": [ + 1.8333333333000001, + 1.5833333333000001, + 1.3333333333000001 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,222.95454545454544)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 8.253 %
I_from = 0.022 kA
I_to = 0.022 kA
", + "type": "scatter", + "uid": "40eb88ff-df45-4702-a696-8d475e0fbc4a", + "x": [ + 1.3333333333000001, + 1.0833333333000001, + 0.8333333333 + ], + "y": [ + 3, + 3.5, + 4 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,254.77272727272725)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 10.975 %
I_from = 0.03 kA
I_to = 0.03 kA
", + "type": "scatter", + "uid": "da775fd1-ade1-4afa-b6eb-b8e05d739d1d", + "x": [ + 0.8333333333, + 0.5833333333, + 0.33333333330000003 + ], + "y": [ + 4, + 4.5, + 5 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.285 %
I_from = 0.014 kA
I_to = 0.014 kA
", + "type": "scatter", + "uid": "951e2377-19ef-4762-8de6-a8d5111a4baa", + "x": [ + 0.33333333330000003, + 0.08333333330000002, + -0.1666666667 + ], + "y": [ + 5, + 5.5, + 6 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,195.68181818181816)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 6.065 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "type": "scatter", + "uid": "16f94d3d-3940-47fa-a1c1-b4d5eb443eda", + "x": [ + -0.1666666667, + -0.4166666667, + -0.6666666667000001 + ], + "y": [ + 6, + 6.5, + 7 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,159.3181818181818)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 3.033 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "5482a686-df37-497d-bf82-75ca1dd1799f", + "x": [ + -0.6666666667000001, + -0.9166666667000001, + -1.1666666667 + ], + "y": [ + 7, + 7.5, + 8 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.184 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "5ff3068e-b79c-46c2-a64f-e7e346cb2738", + "x": [ + 1.8333333333000001, + 2.0833333333, + 2.3333333333 + ], + "y": [ + 2, + 2.5, + 3 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.183 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "70ff7659-defd-4e5c-9d9b-77dd60ebe4ab", + "x": [ + 1.3333333333000001, + 1.5833333333000001, + 1.8333333333000001 + ], + "y": [ + 3, + 3.5, + 4 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.176 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "51401043-8cf5-466a-939d-75aecd2f497d", + "x": [ + 0.8333333333, + 1.0833333333000001, + 1.3333333333000001 + ], + "y": [ + 4, + 4.5, + 5 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,250.22727272727272)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 10.819 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "type": "scatter", + "uid": "fff11dce-fc58-467c-9b9c-f7ad9b03d1de", + "x": [ + 0.33333333330000003, + 0.5833333333, + 0.8333333333 + ], + "y": [ + 5, + 5.5, + 6 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,80.5,255.0)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 20.385 %
I_from = 0.029 kA
I_to = 0.029 kA
", + "type": "scatter", + "uid": "f7cde321-1c4e-4754-bab9-2d7fe4a62682", + "x": [ + -0.1666666667, + 0.08333333330000002, + 0.33333333330000003 + ], + "y": [ + 6, + 6.5, + 7 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.167 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "b92de130-ec7a-4236-8c03-d04aa1fbe2bd", + "x": [ + -0.6666666667000001, + -0.4166666667, + -0.1666666667 + ], + "y": [ + 7, + 7.5, + 8 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,186.5909090909091)", + "width": 2 + }, + "mode": "lines", + "name": "lines", + "text": "None
I = 5.169 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "type": "scatter", + "uid": "76b9145f-3870-42cc-804b-3cdff9df5f02", + "x": [ + -1.1666666667, + -1.1666666667, + -1.1666666667 + ], + "y": [ + 8, + 8.5, + 9 + ] + }, + { + "marker": { + "cmax": 100, + "cmin": 1.3080070250667393, + "color": "rgb(255,255,255)", + "colorbar": { + "thickness": 10, + "title": { + "text": "Line Loading [%]" + }, + "x": 1.1 + }, + "colorscale": "Jet", + "size": 0 + }, + "mode": "markers", + "type": "scatter", + "uid": "36721617-0b56-41a9-a39d-ba25a1fac8ff", + "x": [ + 0 + ], + "y": [ + 0 + ] + }, + { + "hoverinfo": "text", + "marker": { + "color": "rgb(128, 128, 128)", + "size": 1, + "symbol": "circle" + }, + "mode": "markers", + "name": "edge_center", + "text": [ + "None
I = 2.73 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 5.191 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 12.38 %
I_from = 0.033 kA
I_to = 0.033 kA
", + "None
I = 11.422 %
I_from = 0.031 kA
I_to = 0.031 kA
", + "None
I = 6.022 %
I_from = 0.016 kA
I_to = 0.016 kA
", + "None
I = 8.722 %
I_from = 0.024 kA
I_to = 0.024 kA
", + "None
I = 1.82 %
I_from = 0.003 kA
I_to = 0.003 kA
", + "None
I = 10.268 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "None
I = 5.133 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 24.508 %
I_from = 0.035 kA
I_to = 0.035 kA
", + "None
I = 1.418 %
I_from = 0.004 kA
I_to = 0.004 kA
", + "None
I = 1.308 %
I_from = 0.004 kA
I_to = 0.004 kA
", + "None
I = 8.253 %
I_from = 0.022 kA
I_to = 0.022 kA
", + "None
I = 10.975 %
I_from = 0.03 kA
I_to = 0.03 kA
", + "None
I = 5.285 %
I_from = 0.014 kA
I_to = 0.014 kA
", + "None
I = 6.065 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "None
I = 3.033 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 5.184 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 5.183 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 5.176 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 10.819 %
I_from = 0.015 kA
I_to = 0.015 kA
", + "None
I = 20.385 %
I_from = 0.029 kA
I_to = 0.029 kA
", + "None
I = 5.167 %
I_from = 0.007 kA
I_to = 0.007 kA
", + "None
I = 5.169 %
I_from = 0.007 kA
I_to = 0.007 kA
" + ], + "type": "scatter", + "uid": "7bbe7e2e-1a72-4c97-8d05-30207d1990db", + "x": [ + -0.83333333335 + ], + "y": [ + 1.5 + ] + }, + { + "hoverinfo": "text", + "line": { + "color": "rgb(0.0,0.0,236.59090909090907)", + "width": 3 + }, + "mode": "lines", + "name": "trafos", + "text": "None
I = 9.623 %
I_hv = 0.0 kA
I_lv = 0.022 kA
", + "type": "scatter", + "uid": "0ed2d647-2154-4584-929c-6939f5d3f9a8", + "x": [ + 0, + 0, + 0 + ], + "y": [ + 0, + 0.5, + 1 + ] + }, + { + "hoverinfo": "text", + "marker": { + "color": "rgb(0.0,0.0,236.59090909090907)", + "size": 1, + "symbol": "circle" + }, + "mode": "markers", + "name": "edge_center", + "text": [ + "None
I = 9.623 %
I_hv = 0.0 kA
I_lv = 0.022 kA
" + ], + "type": "scatter", + "uid": "94f7c014-af67-4ffc-94ad-e44461f4cdf0", + "x": [ + 0 + ], + "y": [ + 0.5 + ] + }, + { + "hoverinfo": "text", + "marker": { + "color": "rgb(128, 128, 128)", + "size": 20, + "symbol": "square" + }, + "mode": "markers", + "name": "external_grid", + "text": [ + "mv bus" + ], + "type": "scatter", + "uid": "2a7a48a5-cbfe-4252-8f01-68cbb2cc1a0e", + "x": [ + 0 + ], + "y": [ + 0 + ] + }, + { + "hoverinfo": "text", + "marker": { + "cmax": 1.1, + "cmin": 0.9, + "color": [ + 1, + 1.0008676632948053, + 0.9991413446321319, + 0.9985470317087848, + 1.0048664480565117, + 1.0085576668956868, + 1.010503563007392, + 1.0133233452872867, + 1.0050748449381246, + 1.00973311442032, + 1.0099159405498157, + 1.01612891221306, + 1.0006320228320555, + 1.0008471850204024, + 1.0022109568699515, + 1.004025195717749, + 1.0048988245428996, + 1.0039264071532694, + 1.0034401025588493, + 1.0000385963462872, + 1.000253886263201, + 1.0016184664225312, + 1.00526374455692, + 1.007232426165238, + 1.0033349303318886, + 1.0028483387421985 + ], + "colorbar": { + "thickness": 10, + "title": { + "text": "Bus Voltage [pu]" + }, + "x": 1 + }, + "colorscale": "Jet", + "size": 10, + "symbol": "circle" + }, + "mode": "markers", + "name": "buses", + "text": [ + "mv bus
V_m = 1.0 pu
V_m = 20.0 kV
V_a = 0.0 deg", + "busbar
V_m = 1.001 pu
V_m = 0.4 kV
V_a = 0.21 deg", + "None
V_m = 0.999 pu
V_m = 0.4 kV
V_a = 0.172 deg", + "None
V_m = 0.999 pu
V_m = 0.399 kV
V_a = 0.168 deg", + "None
V_m = 1.005 pu
V_m = 0.402 kV
V_a = 0.299 deg", + "None
V_m = 1.009 pu
V_m = 0.403 kV
V_a = 0.38 deg", + "None
V_m = 1.011 pu
V_m = 0.404 kV
V_a = 0.423 deg", + "None
V_m = 1.013 pu
V_m = 0.405 kV
V_a = 0.485 deg", + "None
V_m = 1.005 pu
V_m = 0.402 kV
V_a = 0.301 deg", + "None
V_m = 1.01 pu
V_m = 0.404 kV
V_a = 0.389 deg", + "None
V_m = 1.01 pu
V_m = 0.404 kV
V_a = 0.419 deg", + "None
V_m = 1.016 pu
V_m = 0.406 kV
V_a = 0.505 deg", + "None
V_m = 1.001 pu
V_m = 0.4 kV
V_a = 0.205 deg", + "None
V_m = 1.001 pu
V_m = 0.4 kV
V_a = 0.21 deg", + "None
V_m = 1.002 pu
V_m = 0.401 kV
V_a = 0.24 deg", + "None
V_m = 1.004 pu
V_m = 0.402 kV
V_a = 0.28 deg", + "None
V_m = 1.005 pu
V_m = 0.402 kV
V_a = 0.3 deg", + "None
V_m = 1.004 pu
V_m = 0.402 kV
V_a = 0.28 deg", + "None
V_m = 1.003 pu
V_m = 0.401 kV
V_a = 0.27 deg", + "None
V_m = 1.0 pu
V_m = 0.4 kV
V_a = 0.201 deg", + "None
V_m = 1.0 pu
V_m = 0.4 kV
V_a = 0.206 deg", + "None
V_m = 1.002 pu
V_m = 0.401 kV
V_a = 0.236 deg", + "None
V_m = 1.005 pu
V_m = 0.402 kV
V_a = 0.289 deg", + "None
V_m = 1.007 pu
V_m = 0.403 kV
V_a = 0.317 deg", + "None
V_m = 1.003 pu
V_m = 0.401 kV
V_a = 0.275 deg", + "None
V_m = 1.003 pu
V_m = 0.401 kV
V_a = 0.266 deg" + ], + "type": "scatter", + "uid": "da3ab2b4-a4c2-4492-9961-c2ee7e786ef8", + "x": [ + 0, + 0, + -1.6666666667, + -1.6666666667, + -0.1666666667, + -0.6666666667000001, + -1.1666666667, + -1.6666666667, + 0.33333333330000003, + -0.1666666667, + -0.6666666667000001, + -1.6666666667, + 1.8333333333000001, + 1.3333333333000001, + 0.8333333333, + 0.33333333330000003, + -0.1666666667, + -0.6666666667000001, + -1.1666666667, + 2.3333333333, + 1.8333333333000001, + 1.3333333333000001, + 0.8333333333, + 0.33333333330000003, + -0.1666666667, + -1.1666666667 + ], + "y": [ + 0, + 1, + 2, + 3, + 2, + 3, + 4, + 5, + 3, + 4, + 5, + 6, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 3, + 4, + 5, + 6, + 7, + 8, + 9 + ] + } + ], + "layout": { + "autosize": true, + "height": 700, + "hovermode": "closest", + "margin": { + "b": 5, + "l": 5, + "r": 5, + "t": 5 + }, + "showlegend": false, + "title": { + "font": { + "size": 16 + } + }, + "width": 311.1111111111111, + "xaxis": { + "showgrid": false, + "showticklabels": false, + "zeroline": false + }, + "yaxis": { + "showgrid": false, + "showticklabels": false, + "zeroline": false + } + } + }, + "text/html": [ + "
" + ], + "text/vnd.plotly.v1+html": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "pp.plotting.plotly.pf_res_plotly(net)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 3\n", + "1 8\n", + "2 9\n", + "3 10\n", + "4 11\n", + "5 19\n", + "6 20\n", + "7 21\n", + "8 22\n", + "9 23\n", + "10 24\n", + "11 25\n", + "12 7\n", + "13 13\n", + "Name: bus, dtype: uint32" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "net.load.bus" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "{3: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 8: array([-6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9]),\n", + " 9: array([-15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3]),\n", + " 10: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 11: array([-29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6]),\n", + " 19: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 20: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 21: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 22: array([-15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8]),\n", + " 23: array([-25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3]),\n", + " 24: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 25: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 7: array([7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9]),\n", + " 13: array([7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9])}" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "config.static_feeds" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env.action_dim" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([-0.15671982, 1.18836179, -0.95948352, -1.17904058, 0.67426191,\n", + " 0.69793659])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.random.randn(6)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
namebusp_kwq_kvarconst_z_percentconst_i_percentsn_kvascalingin_servicetype
0None35.100.00.0NaN1.0TrueNone
1None85.100.00.0NaN1.0TrueNone
2None95.100.00.0NaN1.0TrueNone
3None105.100.00.0NaN1.0TrueNone
4None115.100.00.0NaN1.0TrueNone
5None195.100.00.0NaN1.0TrueNone
6None205.100.00.0NaN1.0TrueNone
7None215.100.00.0NaN1.0TrueNone
8None225.100.00.0NaN1.0TrueNone
9None235.100.00.0NaN1.0TrueNone
10None245.100.00.0NaN1.0TrueNone
11None255.100.00.0NaN1.0TrueNone
12None77.900.00.0NaN1.0TrueNone
13None137.900.00.0NaN1.0TrueNone
\n", + "
" + ], + "text/plain": [ + " name bus p_kw q_kvar const_z_percent const_i_percent sn_kva \\\n", + "0 None 3 5.1 0 0.0 0.0 NaN \n", + "1 None 8 5.1 0 0.0 0.0 NaN \n", + "2 None 9 5.1 0 0.0 0.0 NaN \n", + "3 None 10 5.1 0 0.0 0.0 NaN \n", + "4 None 11 5.1 0 0.0 0.0 NaN \n", + "5 None 19 5.1 0 0.0 0.0 NaN \n", + "6 None 20 5.1 0 0.0 0.0 NaN \n", + "7 None 21 5.1 0 0.0 0.0 NaN \n", + "8 None 22 5.1 0 0.0 0.0 NaN \n", + "9 None 23 5.1 0 0.0 0.0 NaN \n", + "10 None 24 5.1 0 0.0 0.0 NaN \n", + "11 None 25 5.1 0 0.0 0.0 NaN \n", + "12 None 7 7.9 0 0.0 0.0 NaN \n", + "13 None 13 7.9 0 0.0 0.0 NaN \n", + "\n", + " scaling in_service type \n", + "0 1.0 True None \n", + "1 1.0 True None \n", + "2 1.0 True None \n", + "3 1.0 True None \n", + "4 1.0 True None \n", + "5 1.0 True None \n", + "6 1.0 True None \n", + "7 1.0 True None \n", + "8 1.0 True None \n", + "9 1.0 True None \n", + "10 1.0 True None \n", + "11 1.0 True None \n", + "12 1.0 True None \n", + "13 1.0 True None " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env.net.load" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "5.1\n", + "5.1\n", + "5.1\n", + "5.1\n", + "5.1\n", + "5.1\n", + "5.1\n", + "7.9\n", + "7.9\n" + ] + } + ], + "source": [ + "\n", + "new_loads = pd.Series(data=None, index=env.net.load.bus)\n", + "new_sgens = pd.Series(data=None, index=env.net.sgen.bus)\n", + "for bus, feed in env.config.static_feeds.items():\n", + " p_new = feed[env.time]\n", + "\n", + " if p_new > 0:\n", + " print(p_new)\n", + " new_loads[bus] = p_new\n", + " else:\n", + " new_sgens[bus] = p_new" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "bus\n", + "3 5.1\n", + "8 NaN\n", + "9 NaN\n", + "10 5.1\n", + "11 NaN\n", + "19 5.1\n", + "20 5.1\n", + "21 5.1\n", + "22 NaN\n", + "23 NaN\n", + "24 5.1\n", + "25 5.1\n", + "7 7.9\n", + "13 7.9\n", + "dtype: float64" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_loads" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "bus\n", + "8 -6.9\n", + "9 -15.3\n", + "11 -29.6\n", + "22 -15.8\n", + "23 -25.3\n", + "dtype: float64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "new_sgens" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{3: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 8: array([-6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9, -6.9,\n", + " -6.9, -6.9, -6.9, -6.9, -6.9]),\n", + " 9: array([-15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3, -15.3,\n", + " -15.3, -15.3, -15.3, -15.3, -15.3, -15.3]),\n", + " 10: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 11: array([-29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6, -29.6,\n", + " -29.6, -29.6, -29.6, -29.6, -29.6, -29.6]),\n", + " 19: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 20: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 21: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 22: array([-15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8, -15.8,\n", + " -15.8, -15.8, -15.8, -15.8, -15.8, -15.8]),\n", + " 23: array([-25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3, -25.3,\n", + " -25.3, -25.3, -25.3, -25.3, -25.3, -25.3]),\n", + " 24: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 25: array([5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1,\n", + " 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1, 5.1]),\n", + " 7: array([7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9]),\n", + " 13: array([7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9,\n", + " 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9, 7.9])}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env.config.static_feeds" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "25" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "env.observation_dim" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "25" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "14+5+6" + ] + }, { "cell_type": "markdown", "metadata": {}, diff --git a/scripts/run_ddpg.py b/scripts/run_ddpg.py index 28eb5ca..837bbfa 100644 --- a/scripts/run_ddpg.py +++ b/scripts/run_ddpg.py @@ -6,7 +6,8 @@ from virtual_microgrids.algorithms import DDPG if __name__ == '__main__': - config = get_config('Six_Bus_POC', algorithm='DDPG') + config = get_config('rural_1', algorithm='DDPG') + # config = get_config('Six_Bus_MVP2', algorithm='DDPG') env = NetModel(config=config) # train model model = DDPG(env, config) diff --git a/virtual_microgrids/algorithms/ddpg.py b/virtual_microgrids/algorithms/ddpg.py index a2d88fc..8fac166 100644 --- a/virtual_microgrids/algorithms/ddpg.py +++ b/virtual_microgrids/algorithms/ddpg.py @@ -180,7 +180,7 @@ def train(self): self.config.reasonable_max_episodes*self.config.max_ep_steps) critic_lr_schedule = LinearSchedule(self.config.critic_learning_rate_start, self.config.critic_learning_rate_end, self.config.reasonable_max_episodes*self.config.max_ep_steps) - noise_schedule = LogSchedule(0.5, 0.0001, self.config.reasonable_max_episodes*self.config.max_ep_steps) + noise_schedule = LogSchedule(1.0, 0.001, self.config.reasonable_max_episodes*self.config.max_ep_steps) # noise_schedule = LinearSchedule(0.5, 0.01, self.config.reasonable_max_episodes*self.config.max_ep_steps) @@ -199,6 +199,7 @@ def train(self): best_r = 0.0 best_reward_logical = None + optimal_action = None soc_track = np.zeros((self.config.max_ep_steps, self.env.net.storage.shape[0])) p_track = np.zeros((self.config.max_ep_steps, self.env.net.storage.shape[0])) @@ -252,6 +253,7 @@ def train(self): if done: if ep_reward > best_ep_reward: best_ep_reward = ep_reward + optimal_action = a total_rewards.append(ep_reward) ep_ave_max_q /= j ave_max_q.append(ep_ave_max_q) @@ -276,8 +278,10 @@ def train(self): msg2 = "Max single reward: "+str(best_r) msg3 = "Max reward happened on lines: "+str(best_reward_logical) + msg4 = "The optimal action was: "+str(optimal_action) end = "\n--------------------------------------------------------" self.logger.info(msg2) + self.logger.info(msg4) self.logger.info(msg3 + end) fig, ax = plt.subplots(nrows=3, sharex=True) diff --git a/virtual_microgrids/configs/six_bus_mvp1.py b/virtual_microgrids/configs/six_bus_mvp1.py index 8e6b8fb..a81dca2 100644 --- a/virtual_microgrids/configs/six_bus_mvp1.py +++ b/virtual_microgrids/configs/six_bus_mvp1.py @@ -44,4 +44,4 @@ def __init__(self, use_baseline, actor): # reward function self.reward_epsilon = 0.001 - self.cont_reward_lambda = 0.1 \ No newline at end of file + self.cont_reward_lambda = 0.1 diff --git a/virtual_microgrids/configs/standard_lv_network.py b/virtual_microgrids/configs/standard_lv_network.py index 5fbce09..34cd9ac 100644 --- a/virtual_microgrids/configs/standard_lv_network.py +++ b/virtual_microgrids/configs/standard_lv_network.py @@ -1,7 +1,9 @@ import numpy as np from pandapower.networks import create_synthetic_voltage_control_lv_network as mknet +from virtual_microgrids.configs.config_base import ConfigBase -class StandardLVNetwork(object): + +class StandardLVNetwork(ConfigBase): """The configurations for using any of the standard low voltage (LV) test networks shipped with pandapower. Options in this set up include choices to remove the generation and load elements built in to the test network, and @@ -18,38 +20,10 @@ class StandardLVNetwork(object): """ def __init__(self, env_name, use_baseline, actor): self.env_name = env_name + super().__init__(use_baseline, actor, self.env_name) - # output config - baseline_str = 'baseline' if use_baseline else 'no_baseline' - self.output_path = "results/{}-{}-{}/".format(self.env_name, baseline_str, actor) - self.model_output = self.output_path + "model.weights/" - self.log_path = self.output_path + "log.txt" - self.plot_output = self.output_path + "scores.png" - self.record_path = self.output_path - self.record_freq = 5 - self.summary_freq = 1 - self.summary_freq2 = 1000 - - # model and training - general - self.gamma = 0.9 # the discount factor - - # model and training config - PG - self.num_batches = 500 # number of batches trained on - self.batch_size = 1000 # number of steps used to compute each policy update - self.max_ep_len = 60 # maximum episode length - self.learning_rate = 3e-2 - self.use_baseline = use_baseline - self.normalize_advantage = True - - # model and training config - DDPG - self.tau = 0.001 - self.reward_epsilon = 0.001 - self.actor_learning_rate = 1e-3 - self.critic_learning_rate = 1e-2 - self.buffer_size = 1e6 - self.minibatch_size = 64 - self.max_episodes = 500 - self.max_ep_steps = self.max_ep_len + self.reasonable_max_episodes = 1000 + self.max_episodes = 2000 self.remove_q = True self.clear_loads_sgen = False @@ -65,38 +39,62 @@ def __init__(self, env_name, use_baseline, actor): self.static_feeds = {} else: self.static_feeds = self.static_feeds_new.copy() + + n = self.max_ep_len + 1 net = mknet(network_class=env_name) if not self.clear_loads_sgen: if net.load.shape[0] > 0: for idx, row in net.load.iterrows(): - self.static_feeds[row['bus']] = row['p_kw'] * np.ones(self.max_ep_len) + if row['bus'] in self.static_feeds: + self.static_feeds[row['bus']].update({0: row['p_kw'] * np.ones(n)}) + else: + self.static_feeds[row['bus']] = {0: row['p_kw'] * np.ones(n)} if net.sgen.shape[0] > 0: for idx, row in net.sgen.iterrows(): - self.static_feeds[row['bus']] = row['p_kw'] * np.ones(self.max_ep_len) + if row['bus'] in self.static_feeds: + self.static_feeds[row['bus']].update({1: row['p_kw'] * np.ones(n)}) + else: + self.static_feeds[row['bus']] = {1: row['p_kw'] * np.ones(n)} - self.battery_locations = None # Specify specific locations, or can pick options for random generation: + self.battery_locations = [19, 23, 24, 22, 8, 10] # None # Specify specific locations, or can pick options for random generation: self.percent_battery_buses = 0.5 # How many of the buses should be assigned batteries self.batteries_on_leaf_nodes_only = True # Action space - self.gen_p_min = -50.0 + self.gen_p_min = -10.0 self.gen_p_max = 0.0 - self.storage_p_min = -50.0 - self.storage_p_max = 50.0 + self.storage_p_min = -20.0 + self.storage_p_max = 20.0 - # Generation - self.gen_locations = [4] - self.gen_max_p_kw = [20.0] + # # Generation + self.gen_locations = None + # self.gen_locations = [4] + self.gen_max_p_kw = 20.0 self.init_soc = 0.5 - self.energy_capacity = 20.0 - - # parameters for the policy and baseline models - self.n_layers = 1 - self.layer_size = 16 - self.activation = None - - # since we start new episodes for each batch - assert self.max_ep_len <= self.batch_size - if self.max_ep_len < 0: - self.max_ep_len = self.batch_size \ No newline at end of file + self.energy_capacity = 50.0 + + # state space + self.with_soc = False + + # reward function + self.reward_epsilon = 0.01 + self.cont_reward_lambda = 0.1 + + self.moving = True + self.randomize_env = True # If this is true, fix the buses where the storage is + + if self.moving: + for bus, feed in self.static_feeds.items(): + if isinstance(feed, dict): + for idx, feed2 in feed.items(): + a = np.random.uniform(-1, 1) + scale = np.random.uniform(0.5, 2) + feed2 += a * np.sin(2 * np.pi * np.arange(n) * scale / n) + else: + a = np.random.uniform(-1, 1) + scale = np.random.uniform(0.5, 2) + feed += a * np.sin(2 * np.pi * np.arange(n) * scale / n) + + self.n_layers = 2 + self.layer_size = 128 diff --git a/virtual_microgrids/powerflow/network_generation.py b/virtual_microgrids/powerflow/network_generation.py index ffb619f..647b1fd 100644 --- a/virtual_microgrids/powerflow/network_generation.py +++ b/virtual_microgrids/powerflow/network_generation.py @@ -122,12 +122,21 @@ def six_bus(vn_high=20, vn_low=0.4, length_km=0.03, std_type='NAYY 4x50 SE', bat else: if len(static_feeds) > 0: for key, val in static_feeds.items(): - init_flow = val[0] - print('init_flow: ', init_flow, 'at bus: ', key) - if init_flow > 0: - pp.create_load(net, bus=key, p_kw=init_flow, q_kvar=0) + if isinstance(val, dict): + for key2, val2 in val.items(): + init_flow = val2[0] + print('init_flow: ', init_flow, 'at bus: ', key) + if init_flow > 0: + pp.create_load(net, bus=key, p_kw=init_flow, q_kvar=0) + else: + pp.create_sgen(net, bus=key, p_kw=init_flow, q_kvar=0) else: - pp.create_sgen(net, bus=key, p_kw=init_flow, q_kvar=0) + init_flow = val[0] + print('init_flow: ', init_flow, 'at bus: ', key) + if init_flow > 0: + pp.create_load(net, bus=key, p_kw=init_flow, q_kvar=0) + else: + pp.create_sgen(net, bus=key, p_kw=init_flow, q_kvar=0) return net @@ -186,6 +195,7 @@ def standard_lv(env_name, remove_q=True, static_feeds_new=None, clear_loads_sgen applied_battery_locations = np.random.choice(net.bus.shape[0], int(percent_battery_buses * net.bus.shape[0]), replace=False) if len(applied_battery_locations) > 0: + print('Storage applied on nodes: ', applied_battery_locations) num_batteries = len(applied_battery_locations) for idx, bus_number in enumerate(applied_battery_locations): energy_capacity_here = energy_capacity @@ -209,14 +219,24 @@ def standard_lv(env_name, remove_q=True, static_feeds_new=None, clear_loads_sgen if static_feeds_new is None: print('No loads or generation added to network') else: + print('Didnt think static_feeds_new was None') if len(static_feeds_new) > 0: for key, val in static_feeds_new.items(): - init_flow = val[0] - print('init_flow: ', init_flow, 'at bus: ', key) - if init_flow > 0: - pp.create_load(net, bus=key, p_kw=init_flow, q_kvar=0) + if isinstance(val, dict): + for key2, val2 in val.items(): + init_flow = val2[0] + print('init_flow: ', init_flow, 'at bus: ', key) + if init_flow > 0: + pp.create_load(net, bus=key, p_kw=init_flow, q_kvar=0) + else: + pp.create_sgen(net, bus=key, p_kw=init_flow, q_kvar=0) else: - pp.create_sgen(net, bus=key, p_kw=init_flow, q_kvar=0) + init_flow = val[0] + print('init_flow: ', init_flow, 'at bus: ', key) + if init_flow > 0: + pp.create_load(net, bus=key, p_kw=init_flow, q_kvar=0) + else: + pp.create_sgen(net, bus=key, p_kw=init_flow, q_kvar=0) # Name buses for plotting for i in range(net.bus.name.shape[0]): diff --git a/virtual_microgrids/powerflow/pp_network.py b/virtual_microgrids/powerflow/pp_network.py index 7a12cb1..b012fbc 100644 --- a/virtual_microgrids/powerflow/pp_network.py +++ b/virtual_microgrids/powerflow/pp_network.py @@ -45,9 +45,13 @@ def __init__(self, config=None, env_name='Six_Bus_POC', baseline=True, self.graph = Graph(len(self.net.bus)) for idx, entry in self.net.line.iterrows(): self.graph.addEdge(entry.from_bus, entry.to_bus) + for idx, entry in self.net.trafo.iterrows(): + self.graph.addEdge(entry.hv_bus, entry.lv_bus) + self.current_state = None self.last_state = None + def reset(self): """Reset the network and reward values back to how they were initialized.""" if not self.config.randomize_env: @@ -76,11 +80,19 @@ def step(self, p_set): new_loads = pd.Series(data=None, index=self.net.load.bus) new_sgens = pd.Series(data=None, index=self.net.sgen.bus) for bus, feed in self.config.static_feeds.items(): - p_new = feed[self.time] - if p_new > 0: - new_loads[bus] = p_new + if isinstance(feed, dict): + for idx, feed2 in feed.items(): + p_new = feed2[self.time] + if p_new > 0: + new_loads[bus] = p_new + else: + new_sgens[bus] = p_new else: - new_sgens[bus] = p_new + p_new = feed[self.time] + if p_new > 0: + new_loads[bus] = p_new + else: + new_sgens[bus] = p_new self.update_loads(new_p=new_loads.values) self.update_static_generation(new_p=new_sgens.values) # Update controllable resources @@ -301,7 +313,7 @@ def calculate_reward(self, eps=0.001, type=4): line_flow_values = np.maximum(np.abs(self.net.res_line.p_to_kw), np.abs(self.net.res_line.p_from_kw)) - self.net.res_line.pl_kw self.reward_val -= self.config.cont_reward_lambda * np.sum(np.minimum(np.abs(line_flow_values), - 1.0*np.ones(np.shape(line_flow_values)[0]))) + 3.0*np.ones(np.shape(line_flow_values)[0]))) # Costs for running batteries cap_costs = self.net.storage.cap_cost max_e = self.net.storage.max_e_kwh @@ -313,8 +325,9 @@ def calculate_reward(self, eps=0.001, type=4): return self.reward_val if __name__ == "__main__": - env1 = NetModel(env_name='Six_Bus_POC') - #env1 = NetModel(env_name='Six_Bus_MVP3') - env1.config.reward_epsilon = 0.1 - env1.reset() - env1.step([-0.02, -0.02]) + env1 = NetModel(env_name='rural_1') # 'Six_Bus_POC') + # env1.config.reward_epsilon = 0.1 + # env1.reset() + env1.step([-20.17500389, -20.46192559, -19.49983787, 19.80725726, 20.07191253, 20.18946847]) + # env1.step([-0.02, -0.02]) +