{ "cells": [ { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "path = \"/home/tezirg/Code/Grid2Op.BDonnot/grid2op/data/case14_realistic/case14_realistic.json\"\n", "import pandapower as pp\n", "import pandapower.networks as pn\n", "case = pp.from_json(path)\n", "ref = pn.case118()" ] }, { "cell_type": "code", "execution_count": 6, "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", "
namestd_typefrom_busto_buslength_kmr_ohm_per_kmx_ohm_per_kmc_nf_per_kmg_us_per_kmmax_i_kadfparalleltypein_servicemax_loading_percent
0NoneNone011.03.69072711.268335882.5226840.041.4186061.01olTrue100.0
\n", "
" ], "text/plain": [ " name std_type from_bus to_bus length_km r_ohm_per_km x_ohm_per_km \\\n", "0 None None 0 1 1.0 3.690727 11.268335 \n", "\n", " c_nf_per_km g_us_per_km max_i_ka df parallel type in_service \\\n", "0 882.522684 0.0 41.418606 1.0 1 ol True \n", "\n", " max_loading_percent \n", "0 100.0 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "case.line[np.all(case.line[[\"from_bus\", \"to_bus\"]]+1 == [1,2], axis=1)]" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "182.24999999999997" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "3.532005 / 0.01938" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "182.24999154977186" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "10.783732 / 0.05917" ] }, { "cell_type": "code", "execution_count": 9, "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", "
namestd_typefrom_busto_buslength_kmr_ohm_per_kmx_ohm_per_kmc_nf_per_kmg_us_per_kmmax_i_kadfparalleltypein_servicemax_loading_percent
1NoneNone041.010.28947342.475738822.3506830.041.4186061.01olTrue100.0
\n", "
" ], "text/plain": [ " name std_type from_bus to_bus length_km r_ohm_per_km x_ohm_per_km \\\n", "1 None None 0 4 1.0 10.289473 42.475738 \n", "\n", " c_nf_per_km g_us_per_km max_i_ka df parallel type in_service \\\n", "1 822.350683 0.0 41.418606 1.0 1 ol True \n", "\n", " max_loading_percent \n", "1 100.0 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "case.line[np.all(case.line[[\"from_bus\", \"to_bus\"]]+1 == [1,5], axis=1)]" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "182.2499907458819" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "9.846967 / 0.05403" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "182.25" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "40.64904 / 0.22304" ] }, { "cell_type": "code", "execution_count": 12, "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", "
namestd_typefrom_busto_buslength_kmr_ohm_per_kmx_ohm_per_kmc_nf_per_kmg_us_per_kmmax_i_kadfparalleltypein_servicemax_loading_percent
10NoneNone891.00.127240.3380.00.0285.7883831.01olTrue100.0
\n", "
" ], "text/plain": [ " name std_type from_bus to_bus length_km r_ohm_per_km x_ohm_per_km \\\n", "10 None None 8 9 1.0 0.12724 0.338 \n", "\n", " c_nf_per_km g_us_per_km max_i_ka df parallel type in_service \\\n", "10 0.0 0.0 285.788383 1.0 1 ol True \n", "\n", " max_loading_percent \n", "10 100.0 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "case.line[np.all(case.line[[\"from_bus\", \"to_bus\"]]+1 == [9,10], axis=1)]" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.00044011317195850365" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "0.000014 / 0.03181" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0004378698224852071" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "0.000037 / 0.0845" ] }, { "cell_type": "code", "execution_count": 15, "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", "
namestd_typefrom_busto_buslength_kmr_ohm_per_kmx_ohm_per_kmc_nf_per_kmg_us_per_kmmax_i_kadfparalleltypein_servicemax_loading_percent
11NoneNone8131.00.508441.081520.00.0285.7883831.01olTrue100.0
\n", "
" ], "text/plain": [ " name std_type from_bus to_bus length_km r_ohm_per_km x_ohm_per_km \\\n", "11 None None 8 13 1.0 0.50844 1.08152 \n", "\n", " c_nf_per_km g_us_per_km max_i_ka df parallel type in_service \\\n", "11 0.0 0.0 285.788383 1.0 1 ol True \n", "\n", " max_loading_percent \n", "11 100.0 " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "case.line[np.all(case.line[[\"from_bus\", \"to_bus\"]]+1 == [9,14], axis=1)]" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.0004326960900007867" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "0.000055 / 0.12711" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "454428.5714285714" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "200 / 0.00044011317195850365" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "757.201646090535" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "138000 / 182.25" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "pp.runpp(case)" ] }, { "cell_type": "code", "execution_count": 20, "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", "
namevn_kvtypezonein_servicemin_vm_pumax_vm_pu
01138.0b1True0.941.06
12138.0b1True0.941.06
23138.0b1True0.941.06
34138.0b1True0.941.06
45138.0b1True0.941.06
5620.0b1True0.941.06
6714.0b1True0.941.06
7812.0b1True0.941.06
8920.0b1True0.941.06
91020.0b1True0.941.06
101120.0b1True0.941.06
111220.0b1True0.941.06
121320.0b1True0.941.06
131420.0b1True0.941.06
\n", "
" ], "text/plain": [ " name vn_kv type zone in_service min_vm_pu max_vm_pu\n", "0 1 138.0 b 1 True 0.94 1.06\n", "1 2 138.0 b 1 True 0.94 1.06\n", "2 3 138.0 b 1 True 0.94 1.06\n", "3 4 138.0 b 1 True 0.94 1.06\n", "4 5 138.0 b 1 True 0.94 1.06\n", "5 6 20.0 b 1 True 0.94 1.06\n", "6 7 14.0 b 1 True 0.94 1.06\n", "7 8 12.0 b 1 True 0.94 1.06\n", "8 9 20.0 b 1 True 0.94 1.06\n", "9 10 20.0 b 1 True 0.94 1.06\n", "10 11 20.0 b 1 True 0.94 1.06\n", "11 12 20.0 b 1 True 0.94 1.06\n", "12 13 20.0 b 1 True 0.94 1.06\n", "13 14 20.0 b 1 True 0.94 1.06" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from numpy import array\n", "def case14():\n", " \"\"\"Power flow data for IEEE 14 bus test case.\n", " Please see L{caseformat} for details on the case file format.\n", " This data was converted from IEEE Common Data Format\n", " (ieee14cdf.txt) on 20-Sep-2004 by cdf2matp, rev. 1.11\n", " Converted from IEEE CDF file from:\n", " U{http://www.ee.washington.edu/research/pstca/}\n", " 08/19/93 UW ARCHIVE 100.0 1962 W IEEE 14 Bus Test Case\n", " @return: Power flow data for IEEE 14 bus test case.\n", " \n", " This function was originally foud in pypower.\n", " \n", " the voltages have been adapted to have a more relistic transmission grid in order to have:\n", " 138kV on high voltage (buses 1 to 4)\n", " 20kV on low voltage (bus 6, 9 to 14)\n", " 14 kV on bus 7\n", " 12 kV on bus 8\n", " \"\"\"\n", " ppc = {\"version\": '2'}\n", "\n", " ##----- Power Flow Data -----##\n", " ## system MVA base\n", " ppc[\"baseMVA\"] = 100.0\n", "\n", " ## bus data\n", " # bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin\n", " ppc[\"bus\"] = array([\n", " [1, 3, 0, 0, 0, 0, 1, 1.06, 0, 138, 1, 1.06, 0.94],\n", " [2, 2, 21.7, 12.7, 0, 0, 1, 1.045, -4.98, 138, 1, 1.06, 0.94],\n", " [3, 2, 94.2, 19, 0, 0, 1, 1.01, -12.72, 138, 1, 1.06, 0.94],\n", " [4, 1, 47.8, -3.9, 0, 0, 1, 1.019, -10.33, 138, 1, 1.06, 0.94],\n", " [5, 1, 7.6, 1.6, 0, 0, 1, 1.02, -8.78, 138, 1, 1.06, 0.94],\n", " [6, 2, 11.2, 7.5, 0, 0, 1, 1.07, -14.22, 20, 1, 1.06, 0.94],\n", " [7, 1, 0, 0, 0, 0, 1, 1.062, -13.37, 14, 1, 1.06, 0.94],\n", " [8, 2, 0, 0, 0, 0, 1, 1.09, -13.36, 12, 1, 1.06, 0.94],\n", " [9, 1, 29.5, 16.6, 0, 19, 1, 1.056, -14.94, 20, 1, 1.06, 0.94],\n", " [10, 1, 9, 5.8, 0, 0, 1, 1.051, -15.1, 20, 1, 1.06, 0.94],\n", " [11, 1, 3.5, 1.8, 0, 0, 1, 1.057, -14.79, 20, 1, 1.06, 0.94],\n", " [12, 1, 6.1, 1.6, 0, 0, 1, 1.055, -15.07, 20, 1, 1.06, 0.94],\n", " [13, 1, 13.5, 5.8, 0, 0, 1, 1.05, -15.16, 20, 1, 1.06, 0.94],\n", " [14, 1, 14.9, 5, 0, 0, 1, 1.036, -16.04, 20, 1, 1.06, 0.94]\n", " ])\n", "\n", " ## generator data\n", " # bus, Pg, Qg, Qmax, Qmin, Vg, mBase, status, Pmax, Pmin, Pc1, Pc2,\n", " # Qc1min, Qc1max, Qc2min, Qc2max, ramp_agc, ramp_10, ramp_30, ramp_q, apf\n", " ppc[\"gen\"] = array([\n", " [1, 232.4, -16.9, 10, 0, 1.06, 100, 1, 332.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n", " [2, 40, 42.4, 50, -40, 1.045, 100, 1, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n", " [3, 0, 23.4, 40, 0, 1.01, 100, 1, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n", " [6, 0, 12.2, 24, -6, 1.07, 100, 1, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n", " [8, 0, 17.4, 24, -6, 1.09, 100, 1, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n", " ])\n", "\n", " ## branch data\n", " # fbus, tbus, r, x, b, rateA, rateB, rateC, ratio, angle, status, angmin, angmax\n", " ppc[\"branch\"] = array([\n", " [1, 2, 0.01938, 0.05917, 0.0528, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [1, 5, 0.05403, 0.22304, 0.0492, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [2, 3, 0.04699, 0.19797, 0.0438, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [2, 4, 0.05811, 0.17632, 0.034, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [2, 5, 0.05695, 0.17388, 0.0346, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [3, 4, 0.06701, 0.17103, 0.0128, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [4, 5, 0.01335, 0.04211, 0, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [4, 7, 0, 0.20912, 0, 9900, 0, 0, 0.978, 0, 1, -360, 360],\n", " [4, 9, 0, 0.55618, 0, 9900, 0, 0, 0.969, 0, 1, -360, 360],\n", " [5, 6, 0, 0.25202, 0, 9900, 0, 0, 0.932, 0, 1, -360, 360],\n", " [6, 11, 0.09498, 0.1989, 0, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [6, 12, 0.12291, 0.25581, 0, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [6, 13, 0.06615, 0.13027, 0, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [7, 8, 0, 0.17615, 0, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [7, 9, 0, 0.11001, 0, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [9, 10, 0.03181, 0.0845, 0, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [9, 14, 0.12711, 0.27038, 0, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [10, 11, 0.08205, 0.19207, 0, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [12, 13, 0.22092, 0.19988, 0, 9900, 0, 0, 0, 0, 1, -360, 360],\n", " [13, 14, 0.17093, 0.34802, 0, 9900, 0, 0, 0, 0, 1, -360, 360]\n", " ])\n", "\n", " ##----- OPF Data -----##\n", " ## generator cost data\n", " # 1 startup shutdown n x1 y1 ... xn yn\n", " # 2 startup shutdown n c(n-1) ... c0\n", " ppc[\"gencost\"] = array([\n", " [2, 0, 0, 3, 0.0430293, 20, 0],\n", " [2, 0, 0, 3, 0.25, 20, 0],\n", " [2, 0, 0, 3, 0.01, 40, 0],\n", " [2, 0, 0, 3, 0.01, 40, 0],\n", " [2, 0, 0, 3, 0.01, 40, 0]\n", " ])\n", "\n", " return ppc\n", "\n", "ppc = case14()\n", "grid = pp.converter.from_ppc(ppc)\n", "grid.bus" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "pp.runpp(grid)" ] }, { "cell_type": "code", "execution_count": 22, "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", "
namestd_typehv_buslv_bussn_mvavn_hv_kvvn_lv_kvvk_percentvkr_percentpfe_kw...tap_mintap_maxtap_step_percenttap_step_degreetap_postap_phase_shifterparalleldfin_servicemax_loading_percent
0NoneNone369900.0138.014.02070.2880.00.0...NaNNaN2.2NaN-1.0False11.0True100.0
1NoneNone389900.0138.020.05506.1820.00.0...NaNNaN3.1NaN-1.0False11.0True100.0
2NoneNone459900.0138.020.02494.9980.00.0...NaNNaN6.8NaN-1.0False11.0True100.0
3NoneNone679900.014.012.01743.8850.00.0...NaNNaNNaNNaNNaNFalse11.0True100.0
4NoneNone869900.020.014.01089.0990.00.0...NaNNaNNaNNaNNaNFalse11.0True100.0
\n", "

5 rows × 24 columns

\n", "
" ], "text/plain": [ " name std_type hv_bus lv_bus sn_mva vn_hv_kv vn_lv_kv vk_percent \\\n", "0 None None 3 6 9900.0 138.0 14.0 2070.288 \n", "1 None None 3 8 9900.0 138.0 20.0 5506.182 \n", "2 None None 4 5 9900.0 138.0 20.0 2494.998 \n", "3 None None 6 7 9900.0 14.0 12.0 1743.885 \n", "4 None None 8 6 9900.0 20.0 14.0 1089.099 \n", "\n", " vkr_percent pfe_kw ... tap_min tap_max tap_step_percent \\\n", "0 0.0 0.0 ... NaN NaN 2.2 \n", "1 0.0 0.0 ... NaN NaN 3.1 \n", "2 0.0 0.0 ... NaN NaN 6.8 \n", "3 0.0 0.0 ... NaN NaN NaN \n", "4 0.0 0.0 ... NaN NaN NaN \n", "\n", " tap_step_degree tap_pos tap_phase_shifter parallel df in_service \\\n", "0 NaN -1.0 False 1 1.0 True \n", "1 NaN -1.0 False 1 1.0 True \n", "2 NaN -1.0 False 1 1.0 True \n", "3 NaN NaN False 1 1.0 True \n", "4 NaN NaN False 1 1.0 True \n", "\n", " max_loading_percent \n", "0 100.0 \n", "1 100.0 \n", "2 100.0 \n", "3 100.0 \n", "4 100.0 \n", "\n", "[5 rows x 24 columns]" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "grid.trafo" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "pp.to_json(grid, path)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "pp.runpp(case)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.9" } }, "nbformat": 4, "nbformat_minor": 2 }