From e5150166c481f4b9a2516c914e5effb0e9c15dd5 Mon Sep 17 00:00:00 2001 From: Siobhan Date: Mon, 18 Mar 2019 18:02:49 -0700 Subject: [PATCH 1/6] Rework of lv config file --- Siobhan_scratch_testing.ipynb | 1168 ++++++++++++++++- scripts/run_ddpg.py | 2 +- virtual_microgrids/configs/six_bus_mvp1.py | 2 +- .../configs/standard_lv_network.py | 63 +- .../powerflow/network_generation.py | 1 + 5 files changed, 1185 insertions(+), 51 deletions(-) diff --git a/Siobhan_scratch_testing.ipynb b/Siobhan_scratch_testing.ipynb index cbb0fea..9796e5f 100644 --- a/Siobhan_scratch_testing.ipynb +++ b/Siobhan_scratch_testing.ipynb @@ -6,13 +6,1177 @@ "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": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "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": 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": null, + "metadata": {}, + "outputs": [], + "source": [ + "{5: {0: [-2, -2, -2], 1: [3, 3, 3]}}" + ] + }, + { + "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": 19, + "metadata": {}, + "outputs": [], + "source": [ + "from pandapower.networks import create_synthetic_voltage_control_lv_network as mknet\n", + "net = mknet(network_class='rural_1')" + ] + }, + { + "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 8f7d49a..3653928 100644 --- a/scripts/run_ddpg.py +++ b/scripts/run_ddpg.py @@ -6,7 +6,7 @@ from virtual_microgrids.algorithms import DDPG if __name__ == '__main__': - config = get_config('Six_Bus_MVP2', algorithm='DDPG') + config = get_config('rural_1', algorithm='DDPG') # 'Six_Bus_MVP2', algorithm='DDPG') env = NetModel(config=config) # train model model = DDPG(env, config) 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..fdc622f 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,7 @@ class StandardLVNetwork(object): """ def __init__(self, env_name, use_baseline, actor): self.env_name = 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 + super().__init__(use_baseline, actor, self.env_name) self.remove_q = True self.clear_loads_sgen = False @@ -79,24 +50,22 @@ def __init__(self, env_name, use_baseline, actor): 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 = -10.0 + self.storage_p_max = 10.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 + # state space + self.with_soc = False - # 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 + # reward function + self.reward_epsilon = 0.001 + self.cont_reward_lambda = 0.1 diff --git a/virtual_microgrids/powerflow/network_generation.py b/virtual_microgrids/powerflow/network_generation.py index ffb619f..714d920 100644 --- a/virtual_microgrids/powerflow/network_generation.py +++ b/virtual_microgrids/powerflow/network_generation.py @@ -209,6 +209,7 @@ 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] From 57051dfa28c5328e18bd66a22eaf20e7c179bc97 Mon Sep 17 00:00:00 2001 From: Siobhan Date: Mon, 18 Mar 2019 21:15:25 -0700 Subject: [PATCH 2/6] Got it running --- Siobhan_scratch_testing.ipynb | 115 +++++++++++++++++- .../configs/standard_lv_network.py | 18 ++- .../powerflow/network_generation.py | 26 ++-- virtual_microgrids/powerflow/pp_network.py | 13 +- 4 files changed, 146 insertions(+), 26 deletions(-) diff --git a/Siobhan_scratch_testing.ipynb b/Siobhan_scratch_testing.ipynb index 9796e5f..b0c9e59 100644 --- a/Siobhan_scratch_testing.ipynb +++ b/Siobhan_scratch_testing.ipynb @@ -446,11 +446,122 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ - "{5: {0: [-2, -2, -2], 1: [3, 3, 3]}}" + "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": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{5: {0: [-2, -2, -2], 1: [0, 0, 0]}}" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "abc" ] }, { diff --git a/virtual_microgrids/configs/standard_lv_network.py b/virtual_microgrids/configs/standard_lv_network.py index fdc622f..f76f2c0 100644 --- a/virtual_microgrids/configs/standard_lv_network.py +++ b/virtual_microgrids/configs/standard_lv_network.py @@ -40,10 +40,16 @@ def __init__(self, env_name, use_baseline, actor): 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(self.max_ep_len + 1)}) + else: + self.static_feeds[row['bus']] = {0: row['p_kw'] * np.ones(self.max_ep_len + 1)} 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(self.max_ep_len + 1)}) + else: + self.static_feeds[row['bus']] = {1: row['p_kw'] * np.ones(self.max_ep_len + 1)} self.battery_locations = 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 @@ -52,8 +58,8 @@ def __init__(self, env_name, use_baseline, actor): # Action space self.gen_p_min = -10.0 self.gen_p_max = 0.0 - self.storage_p_min = -10.0 - self.storage_p_max = 10.0 + self.storage_p_min = -20.0 + self.storage_p_max = 20.0 # # Generation self.gen_locations = None @@ -67,5 +73,5 @@ def __init__(self, env_name, use_baseline, actor): self.with_soc = False # reward function - self.reward_epsilon = 0.001 - self.cont_reward_lambda = 0.1 + self.reward_epsilon = 0.01 + self.cont_reward_lambda = 1.0 diff --git a/virtual_microgrids/powerflow/network_generation.py b/virtual_microgrids/powerflow/network_generation.py index 714d920..669b194 100644 --- a/virtual_microgrids/powerflow/network_generation.py +++ b/virtual_microgrids/powerflow/network_generation.py @@ -122,12 +122,13 @@ 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) - else: - pp.create_sgen(net, bus=key, p_kw=init_flow, q_kvar=0) + 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) return net @@ -212,12 +213,13 @@ def standard_lv(env_name, remove_q=True, static_feeds_new=None, clear_loads_sgen 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) - else: - pp.create_sgen(net, bus=key, p_kw=init_flow, q_kvar=0) + 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) # 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 7c25f9d..57f3564 100644 --- a/virtual_microgrids/powerflow/pp_network.py +++ b/virtual_microgrids/powerflow/pp_network.py @@ -65,11 +65,12 @@ 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 - else: - new_sgens[bus] = p_new + 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 self.update_loads(new_p=new_loads.values) self.update_static_generation(new_p=new_sgens.values) # Update controllable resources @@ -289,7 +290,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]))) + 0.5*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 From e24e9f70a4aa38fece538bd936f4818e9a209f34 Mon Sep 17 00:00:00 2001 From: Siobhan Date: Tue, 19 Mar 2019 08:33:14 -0700 Subject: [PATCH 3/6] Fixed bugs so it works whether or not you have multiple dicts per bus. Now it seems to work okay on the LV network, but I cant see how its getting that reward --- Siobhan_scratch_testing.ipynb | 1564 ++++++++++++++++- scripts/run_ddpg.py | 3 +- .../configs/standard_lv_network.py | 2 +- .../powerflow/network_generation.py | 25 +- virtual_microgrids/powerflow/pp_network.py | 13 +- 5 files changed, 1596 insertions(+), 11 deletions(-) diff --git a/Siobhan_scratch_testing.ipynb b/Siobhan_scratch_testing.ipynb index b0c9e59..ab78545 100644 --- a/Siobhan_scratch_testing.ipynb +++ b/Siobhan_scratch_testing.ipynb @@ -546,7 +546,7 @@ }, { "cell_type": "code", - "execution_count": 64, + "execution_count": 66, "metadata": {}, "outputs": [ { @@ -555,7 +555,7 @@ "{5: {0: [-2, -2, -2], 1: [0, 0, 0]}}" ] }, - "execution_count": 64, + "execution_count": 66, "metadata": {}, "output_type": "execute_result" } @@ -564,6 +564,24 @@ "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, @@ -592,6 +610,1548 @@ "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": 69, + "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": "40509991-53ef-4826-9768-d8902f72b988", + "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": "15a63f2d-7dc2-4d51-a4b0-1b11cb177a7a", + "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": "48b04090-0057-49c1-a58a-0064f265af88", + "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": "d831e01a-f2ee-4359-938a-b9d56cef24c7", + "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": "3517b719-1741-4fdf-8a55-2b19bc8e603f", + "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": "53a6fc40-5819-438e-8ed7-1f122dcdd5a5", + "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": "594971f4-696f-4cb7-b311-6560d577134a", + "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": "cab56305-6367-429a-ab21-2842f2d46466", + "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": "f40dde4f-1ad4-4799-99cd-612295d9244b", + "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": "1b81ab2c-a0c9-4e22-9f86-b55536f63cf1", + "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": "3418359f-5863-4360-9787-9e803f641a96", + "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": "550e3333-ecc9-4448-b28f-d2210e5de0af", + "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": "b6f726c1-fb67-47f2-8bcc-4dea965b2ce6", + "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": "61138f6a-902d-4384-8442-a50137ed61f6", + "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": "9ab06058-7be0-4180-9c90-ae5ea6ebbf5f", + "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": "b57ebec2-b0d2-4b03-b26a-492fa8fe3774", + "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": "a12156de-6886-4a90-82e5-d80e18ad3c8c", + "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": "3a5dae27-b987-48de-a377-c3fbfc5595d5", + "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": "b41743ed-2662-4ad5-8b14-a1020071b7a0", + "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": "08ed7e10-101d-4049-a36f-dca5d9c5a04d", + "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": "0c9259cf-00e2-4215-971e-9a7c32c697bd", + "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": "481cf79f-b7ee-4228-ad86-a7b87514e5d1", + "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": "6b3a47d9-800d-4290-9f99-364c11aa5f04", + "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": "0a7606ee-1517-4315-ad31-14404db714ad", + "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": "d283debf-b8ca-4735-ba0a-c51636d35b3c", + "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": "18329875-fa77-4568-90a1-2342f3427a43", + "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": "067f1b6e-72f5-45c6-b8e9-6d820ba33159", + "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": "ca920d40-5b23-4085-8fce-5718f03a36af", + "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": "a9489d8e-2f51-42ad-821a-accb9332813f", + "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": [ + "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": "a80113e4-a536-48f8-968a-f7bd984c0df2", + "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": 19, diff --git a/scripts/run_ddpg.py b/scripts/run_ddpg.py index 3653928..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('rural_1', algorithm='DDPG') # 'Six_Bus_MVP2', 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/configs/standard_lv_network.py b/virtual_microgrids/configs/standard_lv_network.py index f76f2c0..5eb8972 100644 --- a/virtual_microgrids/configs/standard_lv_network.py +++ b/virtual_microgrids/configs/standard_lv_network.py @@ -67,7 +67,7 @@ def __init__(self, env_name, use_baseline, actor): self.gen_max_p_kw = 20.0 self.init_soc = 0.5 - self.energy_capacity = 20.0 + self.energy_capacity = 50.0 # state space self.with_soc = False diff --git a/virtual_microgrids/powerflow/network_generation.py b/virtual_microgrids/powerflow/network_generation.py index 669b194..647b1fd 100644 --- a/virtual_microgrids/powerflow/network_generation.py +++ b/virtual_microgrids/powerflow/network_generation.py @@ -122,8 +122,16 @@ 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(): - for key2, val2 in val.items(): - init_flow = val2[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: + 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) @@ -187,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 @@ -213,8 +222,16 @@ def standard_lv(env_name, remove_q=True, static_feeds_new=None, clear_loads_sgen print('Didnt think static_feeds_new was None') if len(static_feeds_new) > 0: for key, val in static_feeds_new.items(): - for key2, val2 in val.items(): - init_flow = val2[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: + 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) diff --git a/virtual_microgrids/powerflow/pp_network.py b/virtual_microgrids/powerflow/pp_network.py index 57f3564..f99d33f 100644 --- a/virtual_microgrids/powerflow/pp_network.py +++ b/virtual_microgrids/powerflow/pp_network.py @@ -65,8 +65,15 @@ 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(): - for idx, feed2 in feed.items(): - p_new = feed2[self.time] + 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: + p_new = feed[self.time] if p_new > 0: new_loads[bus] = p_new else: @@ -290,7 +297,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), - 0.5*np.ones(np.shape(line_flow_values)[0]))) + 1.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 From 7750ca1ef4607f24f4a75b86386560a1f19a9317 Mon Sep 17 00:00:00 2001 From: Siobhan Date: Tue, 19 Mar 2019 22:11:06 -0700 Subject: [PATCH 4/6] Small changes to get it working --- Siobhan_scratch_testing.ipynb | 3557 ++++++++++++++--- virtual_microgrids/algorithms/ddpg.py | 6 +- .../configs/standard_lv_network.py | 4 +- virtual_microgrids/powerflow/pp_network.py | 8 +- 4 files changed, 2905 insertions(+), 670 deletions(-) diff --git a/Siobhan_scratch_testing.ipynb b/Siobhan_scratch_testing.ipynb index ab78545..dc75704 100644 --- a/Siobhan_scratch_testing.ipynb +++ b/Siobhan_scratch_testing.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -15,13 +15,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "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" ] } @@ -34,585 +35,2524 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 10, "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": "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": [ - "No loads or generation added to network\n" + "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" ] - } - ], - "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": [ + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No or insufficient geodata available --> Creating artificial coordinates. This may take some time\n" + ] + }, { "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 " + "text/vnd.plotly.v1+html": [ + "" ] }, - "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": [ + "output_type": "display_data" + }, { "data": { - "text/plain": [ - "{5: {0: [-2, -2, -2]}}" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" + "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": [ - "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]}})" + "env.net.line" ] }, { "cell_type": "code", - "execution_count": 66, + "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": [ - "{5: {0: [-2, -2, -2], 1: [0, 0, 0]}}" + " 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": 66, + "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "abc" + "env.net.sgen" ] }, { "cell_type": "code", - "execution_count": 68, + "execution_count": 4, "metadata": {}, "outputs": [ { - "name": "stdout", + "name": "stderr", "output_type": "stream", "text": [ - "Yes\n" + "There are no Power Flow results. A Newton-Raphson power flow will be executed.\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)" + "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": [ + "
" ] }, - "execution_count": 3, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ - "env.net" + "pp.plotting.plotly.pf_res_plotly(env.net)" ] }, { "cell_type": "code", - "execution_count": 70, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -1118,45 +3058,171 @@ "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 " + " 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": 70, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "env.net.line" + "net.trafo" ] }, { "cell_type": "code", - "execution_count": 71, + "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": [ { @@ -1181,96 +3247,267 @@ " \n", " \n", " name\n", - " bus\n", - " p_kw\n", - " q_kvar\n", - " sn_kva\n", - " scaling\n", - " in_service\n", + " vn_kv\n", " type\n", + " zone\n", + " in_service\n", " \n", " \n", " \n", " \n", " 0\n", + " mv bus\n", + " 20.0\n", + " b\n", " None\n", - " 8\n", - " -6.9\n", - " 0\n", - " NaN\n", - " 1.0\n", " True\n", - " None\n", " \n", " \n", " 1\n", + " busbar\n", + " 0.4\n", + " b\n", " None\n", - " 9\n", - " -15.3\n", - " 0\n", - " NaN\n", - " 1.0\n", " True\n", - " None\n", " \n", " \n", " 2\n", " None\n", - " 11\n", - " -29.6\n", - " 0\n", - " NaN\n", - " 1.0\n", + " 0.4\n", + " m\n", + " Feeder1\n", " True\n", - " None\n", " \n", " \n", " 3\n", " None\n", - " 22\n", - " -15.8\n", - " 0\n", - " NaN\n", - " 1.0\n", + " 0.4\n", + " n\n", + " Feeder1\n", " True\n", - " None\n", " \n", " \n", " 4\n", " None\n", - " 23\n", - " -25.3\n", - " 0\n", - " NaN\n", - " 1.0\n", + " 0.4\n", + " m\n", + " Feeder2\n", + " True\n", + " \n", + " \n", + " 5\n", + " None\n", + " 0.4\n", + " m\n", + " Feeder2\n", + " True\n", + " \n", + " \n", + " 6\n", + " None\n", + " 0.4\n", + " m\n", + " Feeder2\n", + " True\n", + " \n", + " \n", + " 7\n", + " None\n", + " 0.4\n", + " m\n", + " Feeder2\n", + " True\n", + " \n", + " \n", + " 8\n", + " None\n", + " 0.4\n", + " n\n", + " Feeder2\n", + " True\n", + " \n", + " \n", + " 9\n", + " None\n", + " 0.4\n", + " n\n", + " Feeder2\n", + " True\n", + " \n", + " \n", + " 10\n", + " None\n", + " 0.4\n", + " n\n", + " Feeder2\n", + " True\n", + " \n", + " \n", + " 11\n", + " None\n", + " 0.4\n", + " n\n", + " Feeder2\n", " True\n", + " \n", + " \n", + " 12\n", + " None\n", + " 0.4\n", + " m\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 13\n", + " None\n", + " 0.4\n", + " m\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 14\n", + " None\n", + " 0.4\n", + " m\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 15\n", + " None\n", + " 0.4\n", + " m\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 16\n", + " None\n", + " 0.4\n", + " m\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 17\n", + " None\n", + " 0.4\n", + " m\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 18\n", + " None\n", + " 0.4\n", + " m\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 19\n", + " None\n", + " 0.4\n", + " n\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 20\n", + " None\n", + " 0.4\n", + " n\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 21\n", + " None\n", + " 0.4\n", + " n\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 22\n", + " None\n", + " 0.4\n", + " n\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 23\n", + " None\n", + " 0.4\n", + " n\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 24\n", + " None\n", + " 0.4\n", + " n\n", + " Feeder3\n", + " True\n", + " \n", + " \n", + " 25\n", " None\n", + " 0.4\n", + " n\n", + " Feeder3\n", + " True\n", " \n", " \n", "\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" + " 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": 71, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "env.net.sgen" + "net.bus" ] }, { "cell_type": "code", - "execution_count": 69, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -1323,7 +3560,7 @@ "name": "lines", "text": "None
I = 2.73 %
I_from = 0.007 kA
I_to = 0.007 kA
", "type": "scatter", - "uid": "40509991-53ef-4826-9768-d8902f72b988", + "uid": "e9c24ea9-15bd-409f-add2-f76fa2394667", "x": [ 0, -0.83333333335, @@ -1345,7 +3582,7 @@ "name": "lines", "text": "None
I = 5.191 %
I_from = 0.007 kA
I_to = 0.007 kA
", "type": "scatter", - "uid": "15a63f2d-7dc2-4d51-a4b0-1b11cb177a7a", + "uid": "24fed674-efa6-4b5d-abaf-b0f03a786cff", "x": [ -1.6666666667, -1.6666666667, @@ -1367,7 +3604,7 @@ "name": "lines", "text": "None
I = 12.38 %
I_from = 0.033 kA
I_to = 0.033 kA
", "type": "scatter", - "uid": "48b04090-0057-49c1-a58a-0064f265af88", + "uid": "31990299-703c-4651-a797-8810fdb51257", "x": [ 0, -0.08333333335, @@ -1389,7 +3626,7 @@ "name": "lines", "text": "None
I = 11.422 %
I_from = 0.031 kA
I_to = 0.031 kA
", "type": "scatter", - "uid": "d831e01a-f2ee-4359-938a-b9d56cef24c7", + "uid": "03af63c8-2958-4d99-800c-6a831ef3e12f", "x": [ -0.1666666667, -0.4166666667, @@ -1411,7 +3648,7 @@ "name": "lines", "text": "None
I = 6.022 %
I_from = 0.016 kA
I_to = 0.016 kA
", "type": "scatter", - "uid": "3517b719-1741-4fdf-8a55-2b19bc8e603f", + "uid": "a0401556-42fa-4453-8f98-1848a99c84fb", "x": [ -0.6666666667000001, -0.9166666667000001, @@ -1433,7 +3670,7 @@ "name": "lines", "text": "None
I = 8.722 %
I_from = 0.024 kA
I_to = 0.024 kA
", "type": "scatter", - "uid": "53a6fc40-5819-438e-8ed7-1f122dcdd5a5", + "uid": "895be367-5b36-408b-b428-9e174691c697", "x": [ -1.1666666667, -1.4166666667, @@ -1455,7 +3692,7 @@ "name": "lines", "text": "None
I = 1.82 %
I_from = 0.003 kA
I_to = 0.003 kA
", "type": "scatter", - "uid": "594971f4-696f-4cb7-b311-6560d577134a", + "uid": "b2f2b75c-f882-400b-a0c0-c8bd45627f6b", "x": [ -0.1666666667, 0.08333333330000002, @@ -1477,7 +3714,7 @@ "name": "lines", "text": "None
I = 10.268 %
I_from = 0.015 kA
I_to = 0.015 kA
", "type": "scatter", - "uid": "cab56305-6367-429a-ab21-2842f2d46466", + "uid": "b9f8ce6b-0757-4a89-bb91-b4f38ba59681", "x": [ -0.6666666667000001, -0.4166666667, @@ -1499,7 +3736,7 @@ "name": "lines", "text": "None
I = 5.133 %
I_from = 0.007 kA
I_to = 0.007 kA
", "type": "scatter", - "uid": "f40dde4f-1ad4-4799-99cd-612295d9244b", + "uid": "c0815eb1-06be-40cb-9055-18dc2033b2e0", "x": [ -1.1666666667, -0.9166666667000001, @@ -1521,7 +3758,7 @@ "name": "lines", "text": "None
I = 24.508 %
I_from = 0.035 kA
I_to = 0.035 kA
", "type": "scatter", - "uid": "1b81ab2c-a0c9-4e22-9f86-b55536f63cf1", + "uid": "2b70f585-f044-4757-aff0-5f1804427ca2", "x": [ -1.6666666667, -1.6666666667, @@ -1543,7 +3780,7 @@ "name": "lines", "text": "None
I = 1.418 %
I_from = 0.004 kA
I_to = 0.004 kA
", "type": "scatter", - "uid": "3418359f-5863-4360-9787-9e803f641a96", + "uid": "7e528381-8fa2-4d53-a511-9bb88fb2ba77", "x": [ 0, 0.9166666666500001, @@ -1565,7 +3802,7 @@ "name": "lines", "text": "None
I = 1.308 %
I_from = 0.004 kA
I_to = 0.004 kA
", "type": "scatter", - "uid": "550e3333-ecc9-4448-b28f-d2210e5de0af", + "uid": "2fb68883-9973-4f57-b2b4-f800b1f8760b", "x": [ 1.8333333333000001, 1.5833333333000001, @@ -1587,7 +3824,7 @@ "name": "lines", "text": "None
I = 8.253 %
I_from = 0.022 kA
I_to = 0.022 kA
", "type": "scatter", - "uid": "b6f726c1-fb67-47f2-8bcc-4dea965b2ce6", + "uid": "40eb88ff-df45-4702-a696-8d475e0fbc4a", "x": [ 1.3333333333000001, 1.0833333333000001, @@ -1609,7 +3846,7 @@ "name": "lines", "text": "None
I = 10.975 %
I_from = 0.03 kA
I_to = 0.03 kA
", "type": "scatter", - "uid": "61138f6a-902d-4384-8442-a50137ed61f6", + "uid": "da775fd1-ade1-4afa-b6eb-b8e05d739d1d", "x": [ 0.8333333333, 0.5833333333, @@ -1631,7 +3868,7 @@ "name": "lines", "text": "None
I = 5.285 %
I_from = 0.014 kA
I_to = 0.014 kA
", "type": "scatter", - "uid": "9ab06058-7be0-4180-9c90-ae5ea6ebbf5f", + "uid": "951e2377-19ef-4762-8de6-a8d5111a4baa", "x": [ 0.33333333330000003, 0.08333333330000002, @@ -1653,7 +3890,7 @@ "name": "lines", "text": "None
I = 6.065 %
I_from = 0.015 kA
I_to = 0.015 kA
", "type": "scatter", - "uid": "b57ebec2-b0d2-4b03-b26a-492fa8fe3774", + "uid": "16f94d3d-3940-47fa-a1c1-b4d5eb443eda", "x": [ -0.1666666667, -0.4166666667, @@ -1675,7 +3912,7 @@ "name": "lines", "text": "None
I = 3.033 %
I_from = 0.007 kA
I_to = 0.007 kA
", "type": "scatter", - "uid": "a12156de-6886-4a90-82e5-d80e18ad3c8c", + "uid": "5482a686-df37-497d-bf82-75ca1dd1799f", "x": [ -0.6666666667000001, -0.9166666667000001, @@ -1697,7 +3934,7 @@ "name": "lines", "text": "None
I = 5.184 %
I_from = 0.007 kA
I_to = 0.007 kA
", "type": "scatter", - "uid": "3a5dae27-b987-48de-a377-c3fbfc5595d5", + "uid": "5ff3068e-b79c-46c2-a64f-e7e346cb2738", "x": [ 1.8333333333000001, 2.0833333333, @@ -1719,7 +3956,7 @@ "name": "lines", "text": "None
I = 5.183 %
I_from = 0.007 kA
I_to = 0.007 kA
", "type": "scatter", - "uid": "b41743ed-2662-4ad5-8b14-a1020071b7a0", + "uid": "70ff7659-defd-4e5c-9d9b-77dd60ebe4ab", "x": [ 1.3333333333000001, 1.5833333333000001, @@ -1741,7 +3978,7 @@ "name": "lines", "text": "None
I = 5.176 %
I_from = 0.007 kA
I_to = 0.007 kA
", "type": "scatter", - "uid": "08ed7e10-101d-4049-a36f-dca5d9c5a04d", + "uid": "51401043-8cf5-466a-939d-75aecd2f497d", "x": [ 0.8333333333, 1.0833333333000001, @@ -1763,7 +4000,7 @@ "name": "lines", "text": "None
I = 10.819 %
I_from = 0.015 kA
I_to = 0.015 kA
", "type": "scatter", - "uid": "0c9259cf-00e2-4215-971e-9a7c32c697bd", + "uid": "fff11dce-fc58-467c-9b9c-f7ad9b03d1de", "x": [ 0.33333333330000003, 0.5833333333, @@ -1785,7 +4022,7 @@ "name": "lines", "text": "None
I = 20.385 %
I_from = 0.029 kA
I_to = 0.029 kA
", "type": "scatter", - "uid": "481cf79f-b7ee-4228-ad86-a7b87514e5d1", + "uid": "f7cde321-1c4e-4754-bab9-2d7fe4a62682", "x": [ -0.1666666667, 0.08333333330000002, @@ -1807,7 +4044,7 @@ "name": "lines", "text": "None
I = 5.167 %
I_from = 0.007 kA
I_to = 0.007 kA
", "type": "scatter", - "uid": "6b3a47d9-800d-4290-9f99-364c11aa5f04", + "uid": "b92de130-ec7a-4236-8c03-d04aa1fbe2bd", "x": [ -0.6666666667000001, -0.4166666667, @@ -1829,7 +4066,7 @@ "name": "lines", "text": "None
I = 5.169 %
I_from = 0.007 kA
I_to = 0.007 kA
", "type": "scatter", - "uid": "0a7606ee-1517-4315-ad31-14404db714ad", + "uid": "76b9145f-3870-42cc-804b-3cdff9df5f02", "x": [ -1.1666666667, -1.1666666667, @@ -1858,7 +4095,7 @@ }, "mode": "markers", "type": "scatter", - "uid": "d283debf-b8ca-4735-ba0a-c51636d35b3c", + "uid": "36721617-0b56-41a9-a39d-ba25a1fac8ff", "x": [ 0 ], @@ -1902,7 +4139,7 @@ "None
I = 5.169 %
I_from = 0.007 kA
I_to = 0.007 kA
" ], "type": "scatter", - "uid": "18329875-fa77-4568-90a1-2342f3427a43", + "uid": "7bbe7e2e-1a72-4c97-8d05-30207d1990db", "x": [ -0.83333333335 ], @@ -1920,7 +4157,7 @@ "name": "trafos", "text": "None
I = 9.623 %
I_hv = 0.0 kA
I_lv = 0.022 kA
", "type": "scatter", - "uid": "067f1b6e-72f5-45c6-b8e9-6d820ba33159", + "uid": "0ed2d647-2154-4584-929c-6939f5d3f9a8", "x": [ 0, 0, @@ -1945,7 +4182,7 @@ "None
I = 9.623 %
I_hv = 0.0 kA
I_lv = 0.022 kA
" ], "type": "scatter", - "uid": "ca920d40-5b23-4085-8fce-5718f03a36af", + "uid": "94f7c014-af67-4ffc-94ad-e44461f4cdf0", "x": [ 0 ], @@ -1963,10 +4200,10 @@ "mode": "markers", "name": "external_grid", "text": [ - "bus0" + "mv bus" ], "type": "scatter", - "uid": "a9489d8e-2f51-42ad-821a-accb9332813f", + "uid": "2a7a48a5-cbfe-4252-8f01-68cbb2cc1a0e", "x": [ 0 ], @@ -2021,35 +4258,35 @@ "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" + "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": "a80113e4-a536-48f8-968a-f7bd984c0df2", + "uid": "da3ab2b4-a4c2-4492-9961-c2ee7e786ef8", "x": [ 0, 0, @@ -2138,10 +4375,10 @@ } }, "text/html": [ - "
" + "
" ], "text/vnd.plotly.v1+html": [ - "
" + "
" ] }, "metadata": {}, @@ -2149,17 +4386,7 @@ } ], "source": [ - "pp.plotting.plotly.pf_res_plotly(env.net)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "from pandapower.networks import create_synthetic_voltage_control_lv_network as mknet\n", - "net = mknet(network_class='rural_1')" + "pp.plotting.plotly.pf_res_plotly(net)" ] }, { diff --git a/virtual_microgrids/algorithms/ddpg.py b/virtual_microgrids/algorithms/ddpg.py index 6cdcc7f..90716e5 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(0.7, 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/standard_lv_network.py b/virtual_microgrids/configs/standard_lv_network.py index 5eb8972..e72d3e9 100644 --- a/virtual_microgrids/configs/standard_lv_network.py +++ b/virtual_microgrids/configs/standard_lv_network.py @@ -22,6 +22,8 @@ def __init__(self, env_name, use_baseline, actor): self.env_name = env_name super().__init__(use_baseline, actor, self.env_name) + self.reasonable_max_episodes = 1000 + self.remove_q = True self.clear_loads_sgen = False self.clear_gen = True @@ -74,4 +76,4 @@ def __init__(self, env_name, use_baseline, actor): # reward function self.reward_epsilon = 0.01 - self.cont_reward_lambda = 1.0 + self.cont_reward_lambda = 0.1 diff --git a/virtual_microgrids/powerflow/pp_network.py b/virtual_microgrids/powerflow/pp_network.py index f99d33f..70301de 100644 --- a/virtual_microgrids/powerflow/pp_network.py +++ b/virtual_microgrids/powerflow/pp_network.py @@ -43,6 +43,8 @@ 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) def reset(self): """Reset the network and reward values back to how they were initialized.""" @@ -297,7 +299,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 @@ -309,5 +311,5 @@ def calculate_reward(self, eps=0.001, type=4): return self.reward_val if __name__ == "__main__": - env1 = NetModel(env_name='Six_Bus_POC') - env1.step([-0.02, -0.02]) + env1 = NetModel(env_name='rural_1') # 'Six_Bus_POC') + env1.step([-20.17500389, -20.46192559, -19.49983787, 19.80725726, 20.07191253, 20.18946847]) From 817843b3c2158499135344be649dd2a27e52e041 Mon Sep 17 00:00:00 2001 From: Siobhan Date: Tue, 19 Mar 2019 22:38:28 -0700 Subject: [PATCH 5/6] Added in moving loads with sinusoid --- .../configs/standard_lv_network.py | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/virtual_microgrids/configs/standard_lv_network.py b/virtual_microgrids/configs/standard_lv_network.py index e72d3e9..4747437 100644 --- a/virtual_microgrids/configs/standard_lv_network.py +++ b/virtual_microgrids/configs/standard_lv_network.py @@ -38,20 +38,22 @@ 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(): if row['bus'] in self.static_feeds: - self.static_feeds[row['bus']].update({0: row['p_kw'] * np.ones(self.max_ep_len + 1)}) + 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(self.max_ep_len + 1)} + 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(): if row['bus'] in self.static_feeds: - self.static_feeds[row['bus']].update({1: row['p_kw'] * np.ones(self.max_ep_len + 1)}) + 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(self.max_ep_len + 1)} + 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.percent_battery_buses = 0.5 # How many of the buses should be assigned batteries @@ -77,3 +79,18 @@ def __init__(self, env_name, use_baseline, actor): # reward function self.reward_epsilon = 0.01 self.cont_reward_lambda = 0.1 + + self.moving = True + self.randomize_env = False + + 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) From 7e570a97e1d0897ede9d7bb35210c9b7739190e5 Mon Sep 17 00:00:00 2001 From: Siobhan Date: Tue, 19 Mar 2019 23:55:54 -0700 Subject: [PATCH 6/6] Working now! With time varying loads and randomized load shapes.. but its still struggling --- virtual_microgrids/algorithms/ddpg.py | 2 +- virtual_microgrids/configs/standard_lv_network.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/virtual_microgrids/algorithms/ddpg.py b/virtual_microgrids/algorithms/ddpg.py index fdf03c4..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.7, 0.001, 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) diff --git a/virtual_microgrids/configs/standard_lv_network.py b/virtual_microgrids/configs/standard_lv_network.py index 4747437..34cd9ac 100644 --- a/virtual_microgrids/configs/standard_lv_network.py +++ b/virtual_microgrids/configs/standard_lv_network.py @@ -23,6 +23,7 @@ def __init__(self, env_name, use_baseline, actor): super().__init__(use_baseline, actor, self.env_name) self.reasonable_max_episodes = 1000 + self.max_episodes = 2000 self.remove_q = True self.clear_loads_sgen = False @@ -55,7 +56,7 @@ def __init__(self, env_name, use_baseline, actor): 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 @@ -81,7 +82,7 @@ def __init__(self, env_name, use_baseline, actor): self.cont_reward_lambda = 0.1 self.moving = True - self.randomize_env = False + 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(): @@ -94,3 +95,6 @@ def __init__(self, env_name, use_baseline, actor): 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