{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Create Networks - Advanced" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This tutorial shows how to create a more complex pandapower network step by step. The network includes every element which is availiable in the pandapower framework.\n", "\n", "The final network looks like this:\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The structural information about this network are stored in csv tables in the example_advanced folder.\n", "\n", "For a better overview the creation of the individual components is divided in three steps. Each step handles one of the three voltage levels: high, medium and low voltage. We star by initializing an empty pandapower network:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "#import the pandapower module\n", "import pandapower as pp\n", "import pandas as pd\n", "\n", "#create an empty network \n", "net = pp.create_empty_network()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## High voltage level" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Buses\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "There are two 380 kV and five 110 kV busbars (type=\"b\"). The 380/110 kV substation is modeled in detail with all nodes and switches, which is why we need additional nodes (type=\"b\") to connect the switches." ] }, { "cell_type": "code", "execution_count": 2, "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", "
namevn_kvtypezonein_service
0Double Busbar 1380.0bNoneTrue
1Double Busbar 2380.0bNoneTrue
2Bus DB T0380.0nNoneTrue
3Bus DB T1380.0nNoneTrue
4Bus DB T2380.0nNoneTrue
5Bus DB T3380.0nNoneTrue
6Bus DB T4380.0nNoneTrue
7Bus DB T5380.0nNoneTrue
8Bus DB T6380.0nNoneTrue
9Bus DB T7380.0nNoneTrue
10Bus DB T8380.0nNoneTrue
11Bus DB T9380.0nNoneTrue
12Bus DB 1380.0nNoneTrue
13Bus DB 2380.0nNoneTrue
14Bus DB 3380.0nNoneTrue
15Bus DB 4380.0nNoneTrue
16Single Busbar110.0bNoneTrue
17Bus SB 1110.0nNoneTrue
18Bus SB 2110.0nNoneTrue
19Bus SB 3110.0nNoneTrue
20Bus SB 4110.0nNoneTrue
21Bus SB 5110.0nNoneTrue
22Bus SB T1.1110.0nNoneTrue
23Bus SB T1.2110.0nNoneTrue
24Bus SB T2.1110.0nNoneTrue
25Bus SB T2.2110.0nNoneTrue
26Bus SB T3.1110.0nNoneTrue
27Bus SB T3.2110.0nNoneTrue
28Bus SB T4.1110.0nNoneTrue
29Bus SB T4.2110.0nNoneTrue
30Bus SB T5.1110.0nNoneTrue
31Bus SB T5.2110.0nNoneTrue
32Bus HV1110.0nNoneTrue
33Bus HV2110.0nNoneTrue
34Bus HV3110.0nNoneTrue
35Bus HV4110.0nNoneTrue
\n", "
" ], "text/plain": [ " name vn_kv type zone in_service\n", "0 Double Busbar 1 380.0 b None True\n", "1 Double Busbar 2 380.0 b None True\n", "2 Bus DB T0 380.0 n None True\n", "3 Bus DB T1 380.0 n None True\n", "4 Bus DB T2 380.0 n None True\n", "5 Bus DB T3 380.0 n None True\n", "6 Bus DB T4 380.0 n None True\n", "7 Bus DB T5 380.0 n None True\n", "8 Bus DB T6 380.0 n None True\n", "9 Bus DB T7 380.0 n None True\n", "10 Bus DB T8 380.0 n None True\n", "11 Bus DB T9 380.0 n None True\n", "12 Bus DB 1 380.0 n None True\n", "13 Bus DB 2 380.0 n None True\n", "14 Bus DB 3 380.0 n None True\n", "15 Bus DB 4 380.0 n None True\n", "16 Single Busbar 110.0 b None True\n", "17 Bus SB 1 110.0 n None True\n", "18 Bus SB 2 110.0 n None True\n", "19 Bus SB 3 110.0 n None True\n", "20 Bus SB 4 110.0 n None True\n", "21 Bus SB 5 110.0 n None True\n", "22 Bus SB T1.1 110.0 n None True\n", "23 Bus SB T1.2 110.0 n None True\n", "24 Bus SB T2.1 110.0 n None True\n", "25 Bus SB T2.2 110.0 n None True\n", "26 Bus SB T3.1 110.0 n None True\n", "27 Bus SB T3.2 110.0 n None True\n", "28 Bus SB T4.1 110.0 n None True\n", "29 Bus SB T4.2 110.0 n None True\n", "30 Bus SB T5.1 110.0 n None True\n", "31 Bus SB T5.2 110.0 n None True\n", "32 Bus HV1 110.0 n None True\n", "33 Bus HV2 110.0 n None True\n", "34 Bus HV3 110.0 n None True\n", "35 Bus HV4 110.0 n None True" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Double busbar\n", "pp.create_bus(net, name='Double Busbar 1', vn_kv=380, type='b')\n", "pp.create_bus(net, name='Double Busbar 2', vn_kv=380, type='b')\n", "for i in range(10):\n", " pp.create_bus(net, name='Bus DB T%s' % i, vn_kv=380, type='n')\n", "for i in range(1, 5):\n", " pp.create_bus(net, name='Bus DB %s' % i, vn_kv=380, type='n')\n", "\n", "# Single busbar\n", "pp.create_bus(net, name='Single Busbar', vn_kv=110, type='b')\n", "for i in range(1, 6):\n", " pp.create_bus(net, name='Bus SB %s' % i, vn_kv=110, type='n')\n", "for i in range(1, 6):\n", " for j in [1, 2]:\n", " pp.create_bus(net, name='Bus SB T%s.%s' % (i, j), vn_kv=110, type='n')\n", "\n", "# Remaining buses\n", "for i in range(1, 5):\n", " pp.create_bus(net, name='Bus HV%s' % i, vn_kv=110, type='n')\n", "\n", "# show bustable\n", "net.bus" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Lines\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The information about the 6 HV lines are stored in a csv file that we load from the hard drive:" ] }, { "cell_type": "code", "execution_count": 3, "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", "
line_namefrom_busto_busstd_typelengthparallel
0HV Line1Bus SB 2Bus HV1184-AL1/30-ST1A 110.0301
1HV Line2Bus HV1Bus HV2184-AL1/30-ST1A 110.0201
2HV Line3Bus HV2Bus HV4184-AL1/30-ST1A 110.0301
3HV Line4Bus HV1Bus HV4184-AL1/30-ST1A 110.0151
4HV Line5Bus HV3Bus HV4184-AL1/30-ST1A 110.0251
5HV Line6Bus SB 3Bus HV3184-AL1/30-ST1A 110.0302
\n", "
" ], "text/plain": [ " line_name from_bus to_bus std_type length parallel\n", "0 HV Line1 Bus SB 2 Bus HV1 184-AL1/30-ST1A 110.0 30 1\n", "1 HV Line2 Bus HV1 Bus HV2 184-AL1/30-ST1A 110.0 20 1\n", "2 HV Line3 Bus HV2 Bus HV4 184-AL1/30-ST1A 110.0 30 1\n", "3 HV Line4 Bus HV1 Bus HV4 184-AL1/30-ST1A 110.0 15 1\n", "4 HV Line5 Bus HV3 Bus HV4 184-AL1/30-ST1A 110.0 25 1\n", "5 HV Line6 Bus SB 3 Bus HV3 184-AL1/30-ST1A 110.0 30 2" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hv_lines = pd.read_csv('example_advanced/hv_lines.csv', sep=';', header=0, decimal=',')\n", "hv_lines" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and use to create all lines:" ] }, { "cell_type": "code", "execution_count": 4, "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", "
namestd_typefrom_busto_buslength_kmr_ohm_per_kmx_ohm_per_kmc_nf_per_kmg_us_per_kmmax_i_kadfparalleltypein_service
0HV Line1184-AL1/30-ST1A 110.0183230.00.15710.48.80.00.5351.01olTrue
1HV Line2184-AL1/30-ST1A 110.0323320.00.15710.48.80.00.5351.01olTrue
2HV Line3184-AL1/30-ST1A 110.0333530.00.15710.48.80.00.5351.01olTrue
3HV Line4184-AL1/30-ST1A 110.0323515.00.15710.48.80.00.5351.01olTrue
4HV Line5184-AL1/30-ST1A 110.0343525.00.15710.48.80.00.5351.01olTrue
5HV Line6184-AL1/30-ST1A 110.0193430.00.15710.48.80.00.5351.02olTrue
\n", "
" ], "text/plain": [ " name std_type from_bus to_bus length_km r_ohm_per_km \\\n", "0 HV Line1 184-AL1/30-ST1A 110.0 18 32 30.0 0.1571 \n", "1 HV Line2 184-AL1/30-ST1A 110.0 32 33 20.0 0.1571 \n", "2 HV Line3 184-AL1/30-ST1A 110.0 33 35 30.0 0.1571 \n", "3 HV Line4 184-AL1/30-ST1A 110.0 32 35 15.0 0.1571 \n", "4 HV Line5 184-AL1/30-ST1A 110.0 34 35 25.0 0.1571 \n", "5 HV Line6 184-AL1/30-ST1A 110.0 19 34 30.0 0.1571 \n", "\n", " x_ohm_per_km c_nf_per_km g_us_per_km max_i_ka df parallel type \\\n", "0 0.4 8.8 0.0 0.535 1.0 1 ol \n", "1 0.4 8.8 0.0 0.535 1.0 1 ol \n", "2 0.4 8.8 0.0 0.535 1.0 1 ol \n", "3 0.4 8.8 0.0 0.535 1.0 1 ol \n", "4 0.4 8.8 0.0 0.535 1.0 1 ol \n", "5 0.4 8.8 0.0 0.535 1.0 2 ol \n", "\n", " in_service \n", "0 True \n", "1 True \n", "2 True \n", "3 True \n", "4 True \n", "5 True " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create lines\n", "for _, hv_line in hv_lines.iterrows():\n", " from_bus = pp.get_element_index(net, \"bus\", hv_line.from_bus)\n", " to_bus = pp.get_element_index(net, \"bus\", hv_line.to_bus)\n", " pp.create_line(net, from_bus, to_bus, length_km=hv_line.length,std_type=hv_line.std_type, name=hv_line.line_name, parallel=hv_line.parallel)\n", "\n", "# show line table\n", "net.line" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Transformer\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The 380/110 kV transformer connects the buses \"Bus DB 1\" and \"Bus DB 2\". We use the get_element_index function from the pandapower toolbox to find the bus indices of the buses with these names and create a transformer by directly specifying the parameters:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
namestd_typehv_buslv_bussn_mvavn_hv_kvvn_lv_kvvk_percentvkr_percentpfe_kw...tap_mintap_maxtap_step_percenttap_step_degreetap_postap_phase_shifterparalleldfin_servicetp_pos
0EHV-HV-TrafoNone1317300.0380.0110.08.00.060.0...NaNNaNNaNNaNNaNFalse11.0True0.0
\n", "

1 rows × 24 columns

\n", "
" ], "text/plain": [ " name std_type hv_bus lv_bus sn_mva vn_hv_kv vn_lv_kv \\\n", "0 EHV-HV-Trafo None 13 17 300.0 380.0 110.0 \n", "\n", " vk_percent vkr_percent pfe_kw ... tap_min tap_max tap_step_percent \\\n", "0 8.0 0.06 0.0 ... NaN NaN NaN \n", "\n", " tap_step_degree tap_pos tap_phase_shifter parallel df in_service \\\n", "0 NaN NaN False 1 1.0 True \n", "\n", " tp_pos \n", "0 0.0 \n", "\n", "[1 rows x 24 columns]" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hv_bus = pp.get_element_index(net, \"bus\", \"Bus DB 2\")\n", "lv_bus = pp.get_element_index(net, \"bus\", \"Bus SB 1\")\n", "pp.create_transformer_from_parameters(net, hv_bus, lv_bus, sn_mva=300, vn_hv_kv=380, vn_lv_kv=110, vkr_percent=0.06,\n", " vk_percent=8, pfe_kw=0, i0_percent=0, tp_pos=0, shift_degree=0, name='EHV-HV-Trafo')\n", "\n", "net.trafo # show trafo table" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Switches\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we create the switches to connect the buses in the transformer station. The switch configuration is stored in the following csv table:" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
bus_namefrom_busto_bustypeetclosed
0DB DS0Double Busbar 2Bus DB T0DSbTrue
1DB DS1Double Busbar 1Bus DB T1DSbTrue
2DB DS2Double Busbar 2Bus DB T3DSbTrue
3DB DS3Double Busbar 1Bus DB T3DSbFalse
4DB DS4Double Busbar 2Bus DB T5DSbTrue
5DB DS5Double Busbar 1Bus DB T5DSbFalse
6DB DS6Double Busbar 2Bus DB T7DSbTrue
7DB DS7Double Busbar 1Bus DB T7DSbFalse
8DB DS8Double Busbar 2Bus DB T9DSbTrue
9DB DS9Double Busbar 1Bus DB T9DSbFalse
10DB DS10Bus DB T2Bus DB 1DSbTrue
11DB DS11Bus DB T4Bus DB 2DSbTrue
12DB DS12Bus DB T6Bus DB 3DSbTrue
13DB DS13Bus DB T8Bus DB 4DSbTrue
14DB CB0Bus DB T0Bus DB T1CBbTrue
15DB CB1Bus DB T3Bus DB T2CBbTrue
16DB CB2Bus DB T5Bus DB T4CBbTrue
17DB CB3Bus DB T7Bus DB T6CBbTrue
18DB CB4Bus DB T9Bus DB T8CBbTrue
19SB DS1.1Bus SB T1.1Bus SB 1DSbTrue
20SB DS1.2Single BusbarBus SB T1.2DSbTrue
21SB DS2.1Bus SB T2.1Bus SB 2DSbTrue
22SB DS2.2Single BusbarBus SB T2.2DSbTrue
23SB DS3.1Bus SB T3.1Bus SB 3DSbTrue
24SB DS3.2Single BusbarBus SB T3.2DSbTrue
25SB DS4.1Bus SB T4.1Bus SB 4DSbTrue
26SB DS4.2Single BusbarBus SB T4.2DSbTrue
27SB DS5.1Bus SB T5.1Bus SB 5DSbTrue
28SB DS5.2Single BusbarBus SB T5.2DSbTrue
29SB CB1Bus SB T1.2Bus SB T1.1CBbTrue
30SB CB2Bus SB T2.2Bus SB T2.1CBbTrue
31SB CB3Bus SB T3.2Bus SB T3.1CBbTrue
32SB CB4Bus SB T4.2Bus SB T4.1CBbTrue
33SB CB5Bus SB T5.2Bus SB T5.1CBbTrue
\n", "
" ], "text/plain": [ " bus_name from_bus to_bus type et closed\n", "0 DB DS0 Double Busbar 2 Bus DB T0 DS b True\n", "1 DB DS1 Double Busbar 1 Bus DB T1 DS b True\n", "2 DB DS2 Double Busbar 2 Bus DB T3 DS b True\n", "3 DB DS3 Double Busbar 1 Bus DB T3 DS b False\n", "4 DB DS4 Double Busbar 2 Bus DB T5 DS b True\n", "5 DB DS5 Double Busbar 1 Bus DB T5 DS b False\n", "6 DB DS6 Double Busbar 2 Bus DB T7 DS b True\n", "7 DB DS7 Double Busbar 1 Bus DB T7 DS b False\n", "8 DB DS8 Double Busbar 2 Bus DB T9 DS b True\n", "9 DB DS9 Double Busbar 1 Bus DB T9 DS b False\n", "10 DB DS10 Bus DB T2 Bus DB 1 DS b True\n", "11 DB DS11 Bus DB T4 Bus DB 2 DS b True\n", "12 DB DS12 Bus DB T6 Bus DB 3 DS b True\n", "13 DB DS13 Bus DB T8 Bus DB 4 DS b True\n", "14 DB CB0 Bus DB T0 Bus DB T1 CB b True\n", "15 DB CB1 Bus DB T3 Bus DB T2 CB b True\n", "16 DB CB2 Bus DB T5 Bus DB T4 CB b True\n", "17 DB CB3 Bus DB T7 Bus DB T6 CB b True\n", "18 DB CB4 Bus DB T9 Bus DB T8 CB b True\n", "19 SB DS1.1 Bus SB T1.1 Bus SB 1 DS b True\n", "20 SB DS1.2 Single Busbar Bus SB T1.2 DS b True\n", "21 SB DS2.1 Bus SB T2.1 Bus SB 2 DS b True\n", "22 SB DS2.2 Single Busbar Bus SB T2.2 DS b True\n", "23 SB DS3.1 Bus SB T3.1 Bus SB 3 DS b True\n", "24 SB DS3.2 Single Busbar Bus SB T3.2 DS b True\n", "25 SB DS4.1 Bus SB T4.1 Bus SB 4 DS b True\n", "26 SB DS4.2 Single Busbar Bus SB T4.2 DS b True\n", "27 SB DS5.1 Bus SB T5.1 Bus SB 5 DS b True\n", "28 SB DS5.2 Single Busbar Bus SB T5.2 DS b True\n", "29 SB CB1 Bus SB T1.2 Bus SB T1.1 CB b True\n", "30 SB CB2 Bus SB T2.2 Bus SB T2.1 CB b True\n", "31 SB CB3 Bus SB T3.2 Bus SB T3.1 CB b True\n", "32 SB CB4 Bus SB T4.2 Bus SB T4.1 CB b True\n", "33 SB CB5 Bus SB T5.2 Bus SB T5.1 CB b True" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hv_bus_sw = pd.read_csv('example_advanced/hv_bus_sw.csv', sep=';', header=0, decimal=',')\n", "hv_bus_sw" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
buselementettypeclosednamez_ohmin_ka
012bDSTrueDB DS00.0NaN
103bDSTrueDB DS10.0NaN
215bDSTrueDB DS20.0NaN
305bDSFalseDB DS30.0NaN
417bDSTrueDB DS40.0NaN
507bDSFalseDB DS50.0NaN
619bDSTrueDB DS60.0NaN
709bDSFalseDB DS70.0NaN
8111bDSTrueDB DS80.0NaN
9011bDSFalseDB DS90.0NaN
10412bDSTrueDB DS100.0NaN
11613bDSTrueDB DS110.0NaN
12814bDSTrueDB DS120.0NaN
131015bDSTrueDB DS130.0NaN
1423bCBTrueDB CB00.0NaN
1554bCBTrueDB CB10.0NaN
1676bCBTrueDB CB20.0NaN
1798bCBTrueDB CB30.0NaN
181110bCBTrueDB CB40.0NaN
192217bDSTrueSB DS1.10.0NaN
201623bDSTrueSB DS1.20.0NaN
212418bDSTrueSB DS2.10.0NaN
221625bDSTrueSB DS2.20.0NaN
232619bDSTrueSB DS3.10.0NaN
241627bDSTrueSB DS3.20.0NaN
252820bDSTrueSB DS4.10.0NaN
261629bDSTrueSB DS4.20.0NaN
273021bDSTrueSB DS5.10.0NaN
281631bDSTrueSB DS5.20.0NaN
292322bCBTrueSB CB10.0NaN
302524bCBTrueSB CB20.0NaN
312726bCBTrueSB CB30.0NaN
322928bCBTrueSB CB40.0NaN
333130bCBTrueSB CB50.0NaN
34180lLBSTrueSwitch Bus SB 2 - HV Line10.0NaN
35320lLBSTrueSwitch Bus HV1 - HV Line10.0NaN
36321lLBSTrueSwitch Bus HV1 - HV Line20.0NaN
37331lLBSTrueSwitch Bus HV2 - HV Line20.0NaN
38332lLBSTrueSwitch Bus HV2 - HV Line30.0NaN
39352lLBSTrueSwitch Bus HV4 - HV Line30.0NaN
40323lLBSTrueSwitch Bus HV1 - HV Line40.0NaN
41353lLBSTrueSwitch Bus HV4 - HV Line40.0NaN
42344lLBSTrueSwitch Bus HV3 - HV Line50.0NaN
43354lLBSTrueSwitch Bus HV4 - HV Line50.0NaN
44195lLBSTrueSwitch Bus SB 3 - HV Line60.0NaN
45345lLBSTrueSwitch Bus HV3 - HV Line60.0NaN
46130tLBSTrueSwitch DB2 - EHV-HV-Trafo0.0NaN
47170tLBSTrueSwitch SB1 - EHV-HV-Trafo0.0NaN
\n", "
" ], "text/plain": [ " bus element et type closed name z_ohm in_ka\n", "0 1 2 b DS True DB DS0 0.0 NaN\n", "1 0 3 b DS True DB DS1 0.0 NaN\n", "2 1 5 b DS True DB DS2 0.0 NaN\n", "3 0 5 b DS False DB DS3 0.0 NaN\n", "4 1 7 b DS True DB DS4 0.0 NaN\n", "5 0 7 b DS False DB DS5 0.0 NaN\n", "6 1 9 b DS True DB DS6 0.0 NaN\n", "7 0 9 b DS False DB DS7 0.0 NaN\n", "8 1 11 b DS True DB DS8 0.0 NaN\n", "9 0 11 b DS False DB DS9 0.0 NaN\n", "10 4 12 b DS True DB DS10 0.0 NaN\n", "11 6 13 b DS True DB DS11 0.0 NaN\n", "12 8 14 b DS True DB DS12 0.0 NaN\n", "13 10 15 b DS True DB DS13 0.0 NaN\n", "14 2 3 b CB True DB CB0 0.0 NaN\n", "15 5 4 b CB True DB CB1 0.0 NaN\n", "16 7 6 b CB True DB CB2 0.0 NaN\n", "17 9 8 b CB True DB CB3 0.0 NaN\n", "18 11 10 b CB True DB CB4 0.0 NaN\n", "19 22 17 b DS True SB DS1.1 0.0 NaN\n", "20 16 23 b DS True SB DS1.2 0.0 NaN\n", "21 24 18 b DS True SB DS2.1 0.0 NaN\n", "22 16 25 b DS True SB DS2.2 0.0 NaN\n", "23 26 19 b DS True SB DS3.1 0.0 NaN\n", "24 16 27 b DS True SB DS3.2 0.0 NaN\n", "25 28 20 b DS True SB DS4.1 0.0 NaN\n", "26 16 29 b DS True SB DS4.2 0.0 NaN\n", "27 30 21 b DS True SB DS5.1 0.0 NaN\n", "28 16 31 b DS True SB DS5.2 0.0 NaN\n", "29 23 22 b CB True SB CB1 0.0 NaN\n", "30 25 24 b CB True SB CB2 0.0 NaN\n", "31 27 26 b CB True SB CB3 0.0 NaN\n", "32 29 28 b CB True SB CB4 0.0 NaN\n", "33 31 30 b CB True SB CB5 0.0 NaN\n", "34 18 0 l LBS True Switch Bus SB 2 - HV Line1 0.0 NaN\n", "35 32 0 l LBS True Switch Bus HV1 - HV Line1 0.0 NaN\n", "36 32 1 l LBS True Switch Bus HV1 - HV Line2 0.0 NaN\n", "37 33 1 l LBS True Switch Bus HV2 - HV Line2 0.0 NaN\n", "38 33 2 l LBS True Switch Bus HV2 - HV Line3 0.0 NaN\n", "39 35 2 l LBS True Switch Bus HV4 - HV Line3 0.0 NaN\n", "40 32 3 l LBS True Switch Bus HV1 - HV Line4 0.0 NaN\n", "41 35 3 l LBS True Switch Bus HV4 - HV Line4 0.0 NaN\n", "42 34 4 l LBS True Switch Bus HV3 - HV Line5 0.0 NaN\n", "43 35 4 l LBS True Switch Bus HV4 - HV Line5 0.0 NaN\n", "44 19 5 l LBS True Switch Bus SB 3 - HV Line6 0.0 NaN\n", "45 34 5 l LBS True Switch Bus HV3 - HV Line6 0.0 NaN\n", "46 13 0 t LBS True Switch DB2 - EHV-HV-Trafo 0.0 NaN\n", "47 17 0 t LBS True Switch SB1 - EHV-HV-Trafo 0.0 NaN" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Bus-bus switches\n", "for _, switch in hv_bus_sw.iterrows():\n", " from_bus = pp.get_element_index(net, \"bus\", switch.from_bus)\n", " to_bus = pp.get_element_index(net, \"bus\", switch.to_bus)\n", " pp.create_switch(net, from_bus, to_bus, et=switch.et, closed=switch.closed, type=switch.type, name=switch.bus_name)\n", "\n", "# Bus-line switches\n", "hv_buses = net.bus[(net.bus.vn_kv == 380) | (net.bus.vn_kv == 110)].index\n", "hv_ls = net.line[(net.line.from_bus.isin(hv_buses)) & (net.line.to_bus.isin(hv_buses))]\n", "for _, line in hv_ls.iterrows():\n", " pp.create_switch(net, line.from_bus, line.name, et='l', closed=True, type='LBS', name='Switch %s - %s' % (net.bus.name.at[line.from_bus], line['name']))\n", " pp.create_switch(net, line.to_bus, line.name, et='l', closed=True, type='LBS', name='Switch %s - %s' % (net.bus.name.at[line.to_bus], line['name']))\n", "\n", "# Trafo-line switches\n", "pp.create_switch(net, pp.get_element_index(net, \"bus\", 'Bus DB 2'), pp.get_element_index(net, \"trafo\", 'EHV-HV-Trafo'), et='t', closed=True, type='LBS', name='Switch DB2 - EHV-HV-Trafo')\n", "pp.create_switch(net, pp.get_element_index(net, \"bus\", 'Bus SB 1'), pp.get_element_index(net, \"trafo\", 'EHV-HV-Trafo'), et='t', closed=True, type='LBS', name='Switch SB1 - EHV-HV-Trafo')\n", "\n", "# show switch table\n", "net.switch" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### External Grid\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We equip the high voltage side of the transformer with an external grid connection:" ] }, { "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", "
namebusvm_puva_degreeslack_weightin_services_sc_max_mvarx_minrx_max
0External grid01.030.01.0True10000.00.10.1
\n", "
" ], "text/plain": [ " name bus vm_pu va_degree slack_weight in_service \\\n", "0 External grid 0 1.03 0.0 1.0 True \n", "\n", " s_sc_max_mva rx_min rx_max \n", "0 10000.0 0.1 0.1 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pp.create_ext_grid(net, pp.get_element_index(net, \"bus\", 'Double Busbar 1'), vm_pu=1.03, va_degree=0, name='External grid',\n", " s_sc_max_mva=10000, rx_max=0.1, rx_min=0.1)\n", "\n", "net.ext_grid # show external grid table" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loads\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The five loads in the HV network are defined in the following csv file:" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", "
load_namebuspq
0MV Net 0Bus SB 4386
1MV Net 1Bus HV1386
2MV Net 2Bus HV2386
3MV Net 3Bus HV3386
4MV Net 4Bus HV4386
\n", "
" ], "text/plain": [ " load_name bus p q\n", "0 MV Net 0 Bus SB 4 38 6\n", "1 MV Net 1 Bus HV1 38 6\n", "2 MV Net 2 Bus HV2 38 6\n", "3 MV Net 3 Bus HV3 38 6\n", "4 MV Net 4 Bus HV4 38 6" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hv_loads = pd.read_csv('example_advanced/hv_loads.csv', sep=';', header=0, decimal=',')\n", "hv_loads" ] }, { "cell_type": "code", "execution_count": 10, "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", "
namebusp_mwq_mvarconst_z_percentconst_i_percentsn_mvascalingin_servicetype
0MV Net 02038.06.00.00.0NaN1.0Truewye
1MV Net 13238.06.00.00.0NaN1.0Truewye
2MV Net 23338.06.00.00.0NaN1.0Truewye
3MV Net 33438.06.00.00.0NaN1.0Truewye
4MV Net 43538.06.00.00.0NaN1.0Truewye
\n", "
" ], "text/plain": [ " name bus p_mw q_mvar const_z_percent const_i_percent sn_mva \\\n", "0 MV Net 0 20 38.0 6.0 0.0 0.0 NaN \n", "1 MV Net 1 32 38.0 6.0 0.0 0.0 NaN \n", "2 MV Net 2 33 38.0 6.0 0.0 0.0 NaN \n", "3 MV Net 3 34 38.0 6.0 0.0 0.0 NaN \n", "4 MV Net 4 35 38.0 6.0 0.0 0.0 NaN \n", "\n", " scaling in_service type \n", "0 1.0 True wye \n", "1 1.0 True wye \n", "2 1.0 True wye \n", "3 1.0 True wye \n", "4 1.0 True wye " ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "for _, load in hv_loads.iterrows():\n", " bus_idx = pp.get_element_index(net, \"bus\", load.bus)\n", " pp.create_load(net, bus_idx, p_mw=load.p, q_mvar=load.q, name=load.load_name)\n", "\n", "# show load table\n", "net.load" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Generator\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The voltage controlled generator is created with an active power of 100 MW (negative for generation) and a voltage set point of 1.03 per unit:" ] }, { "cell_type": "code", "execution_count": 11, "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", "
namebusp_mwvm_pusn_mvamin_q_mvarmax_q_mvarscalingslackin_serviceslack_weighttypepower_station_trafo
0Gas turbine35100.01.03NaNNaNNaN1.0FalseTrue0.0NoneNaN
\n", "
" ], "text/plain": [ " name bus p_mw vm_pu sn_mva min_q_mvar max_q_mvar scaling \\\n", "0 Gas turbine 35 100.0 1.03 NaN NaN NaN 1.0 \n", "\n", " slack in_service slack_weight type power_station_trafo \n", "0 False True 0.0 None NaN " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pp.create_gen(net, pp.get_element_index(net, \"bus\", 'Bus HV4'), vm_pu=1.03, p_mw=100, name='Gas turbine')\n", "\n", "# show generator table\n", "net.gen" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Static generators\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We create this wind park with an active power of 20 MW (negative for generation) and a reactive power of -4 Mvar. To classify the generation as a wind park, we set type to \"WP\":" ] }, { "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", "
namebusp_mwq_mvarsn_mvascalingin_servicetypecurrent_source
0Wind Park2120.04.045.01.0TrueWPTrue
\n", "
" ], "text/plain": [ " name bus p_mw q_mvar sn_mva scaling in_service type \\\n", "0 Wind Park 21 20.0 4.0 45.0 1.0 True WP \n", "\n", " current_source \n", "0 True " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pp.create_sgen(net, pp.get_element_index(net, \"bus\", 'Bus SB 5'), p_mw=20, q_mvar=4, sn_mva=45, \n", " type='WP', name='Wind Park')\n", "\n", "# show static generator table\n", "net.sgen" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Shunt\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 13, "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", "
busnameq_mvarp_mwvn_kvstepmax_stepin_service
032Shunt0.960.0110.011True
\n", "
" ], "text/plain": [ " bus name q_mvar p_mw vn_kv step max_step in_service\n", "0 32 Shunt 0.96 0.0 110.0 1 1 True" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pp.create_shunt(net, pp.get_element_index(net, \"bus\", 'Bus HV1'), p_mw=0, q_mvar=0.960, name='Shunt')\n", "\n", "# show shunt table\n", "net.shunt" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### External network equivalents\n", "\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The two remaining elements are impedances and extended ward equivalents:" ] }, { "cell_type": "code", "execution_count": 14, "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", "
namefrom_busto_busrft_puxft_purtf_puxtf_pusn_mvain_service
0Impedance34320.0748730.1988720.0748730.198872100.0True
\n", "
" ], "text/plain": [ " name from_bus to_bus rft_pu xft_pu rtf_pu xtf_pu \\\n", "0 Impedance 34 32 0.074873 0.198872 0.074873 0.198872 \n", "\n", " sn_mva in_service \n", "0 100.0 True " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Impedance\n", "pp.create_impedance(net, pp.get_element_index(net, \"bus\", 'Bus HV3'), pp.get_element_index(net, \"bus\", 'Bus HV1'), \n", " rft_pu=0.074873, xft_pu=0.198872, sn_mva=100, name='Impedance')\n", "\n", "# show impedance table\n", "net.impedance" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", "
namebusps_mwqs_mvarqz_mvarpz_mwr_ohmx_ohmvm_puslack_weightin_service
0XWard 13423.942-12.2418700.02.8145710.012.189511.0261600.0True
1XWard 2323.776-7.7699790.09.1749170.050.562171.0240010.0True
\n", "
" ], "text/plain": [ " name bus ps_mw qs_mvar qz_mvar pz_mw r_ohm x_ohm \\\n", "0 XWard 1 34 23.942 -12.241870 0.0 2.814571 0.0 12.18951 \n", "1 XWard 2 32 3.776 -7.769979 0.0 9.174917 0.0 50.56217 \n", "\n", " vm_pu slack_weight in_service \n", "0 1.026160 0.0 True \n", "1 1.024001 0.0 True " ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# xwards\n", "pp.create_xward(net, pp.get_element_index(net, \"bus\", 'Bus HV3'), ps_mw=23.942, qs_mvar=-12.24187, pz_mw=2.814571, \n", " qz_mvar=0, r_ohm=0, x_ohm=12.18951, vm_pu=1.02616, name='XWard 1')\n", "pp.create_xward(net, pp.get_element_index(net, \"bus\", 'Bus HV1'), ps_mw=3.776, qs_mvar=-7.769979, pz_mw=9.174917, \n", " qz_mvar=0, r_ohm=0, x_ohm=50.56217, vm_pu=1.024001, name='XWard 2')\n", "\n", "# show xward table\n", "net.xward" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Medium voltage level" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Buses\n", "\n", "" ] }, { "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", "
namevn_kvtypezonein_service
36Bus MV0 20kV20.0nNoneTrue
37Bus MV010.0nNoneTrue
38Bus MV110.0nNoneTrue
39Bus MV210.0nNoneTrue
40Bus MV310.0nNoneTrue
41Bus MV410.0nNoneTrue
42Bus MV510.0nNoneTrue
43Bus MV610.0nNoneTrue
44Bus MV710.0nNoneTrue
\n", "
" ], "text/plain": [ " name vn_kv type zone in_service\n", "36 Bus MV0 20kV 20.0 n None True\n", "37 Bus MV0 10.0 n None True\n", "38 Bus MV1 10.0 n None True\n", "39 Bus MV2 10.0 n None True\n", "40 Bus MV3 10.0 n None True\n", "41 Bus MV4 10.0 n None True\n", "42 Bus MV5 10.0 n None True\n", "43 Bus MV6 10.0 n None True\n", "44 Bus MV7 10.0 n None True" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pp.create_bus(net, name='Bus MV0 20kV', vn_kv=20, type='n')\n", "for i in range(8):\n", " pp.create_bus(net, name='Bus MV%s' % i, vn_kv=10, type='n')\n", "\n", "#show only medium voltage bus table\n", "mv_buses = net.bus[(net.bus.vn_kv == 10) | (net.bus.vn_kv == 20)]\n", "mv_buses" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Lines\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 17, "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", "
namestd_typefrom_busto_buslength_kmr_ohm_per_kmx_ohm_per_kmc_nf_per_kmg_us_per_kmmax_i_kadfparalleltypein_service
6MV Line1NA2XS2Y 1x185 RM/25 12/20 kV37381.50.1610.117273.00.00.3621.01csTrue
7MV Line2NA2XS2Y 1x185 RM/25 12/20 kV38391.50.1610.117273.00.00.3621.01csTrue
8MV Line3NA2XS2Y 1x185 RM/25 12/20 kV39401.50.1610.117273.00.00.3621.01csTrue
9MV Line4NA2XS2Y 1x185 RM/25 12/20 kV40411.50.1610.117273.00.00.3621.01csTrue
10MV Line5NA2XS2Y 1x185 RM/25 12/20 kV41421.50.1610.117273.00.00.3621.01csTrue
11MV Line6NA2XS2Y 1x185 RM/25 12/20 kV42431.50.1610.117273.00.00.3621.01csTrue
12MV Line7NA2XS2Y 1x185 RM/25 12/20 kV43441.50.1610.117273.00.00.3621.01csTrue
13MV Line8NA2XS2Y 1x185 RM/25 12/20 kV37441.50.1610.117273.00.00.3621.01csTrue
\n", "
" ], "text/plain": [ " name std_type from_bus to_bus length_km \\\n", "6 MV Line1 NA2XS2Y 1x185 RM/25 12/20 kV 37 38 1.5 \n", "7 MV Line2 NA2XS2Y 1x185 RM/25 12/20 kV 38 39 1.5 \n", "8 MV Line3 NA2XS2Y 1x185 RM/25 12/20 kV 39 40 1.5 \n", "9 MV Line4 NA2XS2Y 1x185 RM/25 12/20 kV 40 41 1.5 \n", "10 MV Line5 NA2XS2Y 1x185 RM/25 12/20 kV 41 42 1.5 \n", "11 MV Line6 NA2XS2Y 1x185 RM/25 12/20 kV 42 43 1.5 \n", "12 MV Line7 NA2XS2Y 1x185 RM/25 12/20 kV 43 44 1.5 \n", "13 MV Line8 NA2XS2Y 1x185 RM/25 12/20 kV 37 44 1.5 \n", "\n", " r_ohm_per_km x_ohm_per_km c_nf_per_km g_us_per_km max_i_ka df \\\n", "6 0.161 0.117 273.0 0.0 0.362 1.0 \n", "7 0.161 0.117 273.0 0.0 0.362 1.0 \n", "8 0.161 0.117 273.0 0.0 0.362 1.0 \n", "9 0.161 0.117 273.0 0.0 0.362 1.0 \n", "10 0.161 0.117 273.0 0.0 0.362 1.0 \n", "11 0.161 0.117 273.0 0.0 0.362 1.0 \n", "12 0.161 0.117 273.0 0.0 0.362 1.0 \n", "13 0.161 0.117 273.0 0.0 0.362 1.0 \n", "\n", " parallel type in_service \n", "6 1 cs True \n", "7 1 cs True \n", "8 1 cs True \n", "9 1 cs True \n", "10 1 cs True \n", "11 1 cs True \n", "12 1 cs True \n", "13 1 cs True " ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mv_lines = pd.read_csv('example_advanced/mv_lines.csv', sep=';', header=0, decimal=',')\n", "for _, mv_line in mv_lines.iterrows():\n", " from_bus = pp.get_element_index(net, \"bus\", mv_line.from_bus)\n", " to_bus = pp.get_element_index(net, \"bus\", mv_line.to_bus)\n", " pp.create_line(net, from_bus, to_bus, length_km=mv_line.length, std_type=mv_line.std_type, name=mv_line.line_name)\n", "\n", "# show only medium voltage lines\n", "net.line[net.line.from_bus.isin(mv_buses.index)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3 Winding Transformer\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The three winding transformer transforms its high voltage level to two different lower voltage levels, in this case from 110 kV to 20 kV and 10 kV." ] }, { "cell_type": "code", "execution_count": 18, "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_busmv_buslv_bussn_hv_mvasn_mv_mvasn_lv_mvavn_hv_kvvn_mv_kv...tap_postap_at_star_pointin_servicevk0_hv_percentvk0_mv_percentvk0_lv_percentvkr0_hv_percentvkr0_mv_percentvkr0_lv_percentvector_group
0HV-MV-MV-TrafoNone33363740.015.025.0110.020.0...0FalseTrueNaNNaNNaNNaNNaNNaNNaN
\n", "

1 rows × 37 columns

\n", "
" ], "text/plain": [ " name std_type hv_bus mv_bus lv_bus sn_hv_mva sn_mv_mva \\\n", "0 HV-MV-MV-Trafo None 33 36 37 40.0 15.0 \n", "\n", " sn_lv_mva vn_hv_kv vn_mv_kv ... tap_pos tap_at_star_point in_service \\\n", "0 25.0 110.0 20.0 ... 0 False True \n", "\n", " vk0_hv_percent vk0_mv_percent vk0_lv_percent vkr0_hv_percent \\\n", "0 NaN NaN NaN NaN \n", "\n", " vkr0_mv_percent vkr0_lv_percent vector_group \n", "0 NaN NaN NaN \n", "\n", "[1 rows x 37 columns]" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hv_bus = pp.get_element_index(net, \"bus\", \"Bus HV2\")\n", "mv_bus = pp.get_element_index(net, \"bus\", \"Bus MV0 20kV\")\n", "lv_bus = pp.get_element_index(net, \"bus\", \"Bus MV0\")\n", "pp.create_transformer3w_from_parameters(net, hv_bus, mv_bus, lv_bus, vn_hv_kv=110, vn_mv_kv=20, vn_lv_kv=10, \n", " sn_hv_mva=40, sn_mv_mva=15, sn_lv_mva=25, vk_hv_percent=10.1, \n", " vk_mv_percent=10.1, vk_lv_percent=10.1, vkr_hv_percent=0.266667, \n", " vkr_mv_percent=0.033333, vkr_lv_percent=0.04, pfe_kw=0, i0_percent=0, \n", " shift_mv_degree=30, shift_lv_degree=30, tap_side=\"hv\", tap_neutral=0, tap_min=-8, \n", " tap_max=8, tap_step_percent=1.25, tap_pos=0, name='HV-MV-MV-Trafo')\n", "\n", "# show transformer3w table\n", "net.trafo3w" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Switches" ] }, { "cell_type": "code", "execution_count": 19, "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", "
buselementettypeclosednamez_ohmin_ka
48376lLBSTrueSwitch Bus MV0 - MV Line10.0NaN
49386lLBSTrueSwitch Bus MV1 - MV Line10.0NaN
50387lLBSTrueSwitch Bus MV1 - MV Line20.0NaN
51397lLBSTrueSwitch Bus MV2 - MV Line20.0NaN
52398lLBSTrueSwitch Bus MV2 - MV Line30.0NaN
53408lLBSTrueSwitch Bus MV3 - MV Line30.0NaN
54409lLBSTrueSwitch Bus MV3 - MV Line40.0NaN
55419lLBSTrueSwitch Bus MV4 - MV Line40.0NaN
564110lLBSTrueSwitch Bus MV4 - MV Line50.0NaN
574210lLBSFalseSwitch Bus MV5 - MV Line50.0NaN
584211lLBSTrueSwitch Bus MV5 - MV Line60.0NaN
594311lLBSTrueSwitch Bus MV6 - MV Line60.0NaN
604312lLBSTrueSwitch Bus MV6 - MV Line70.0NaN
614412lLBSTrueSwitch Bus MV7 - MV Line70.0NaN
623713lLBSTrueSwitch Bus MV0 - MV Line80.0NaN
634413lLBSTrueSwitch Bus MV7 - MV Line80.0NaN
\n", "
" ], "text/plain": [ " bus element et type closed name z_ohm in_ka\n", "48 37 6 l LBS True Switch Bus MV0 - MV Line1 0.0 NaN\n", "49 38 6 l LBS True Switch Bus MV1 - MV Line1 0.0 NaN\n", "50 38 7 l LBS True Switch Bus MV1 - MV Line2 0.0 NaN\n", "51 39 7 l LBS True Switch Bus MV2 - MV Line2 0.0 NaN\n", "52 39 8 l LBS True Switch Bus MV2 - MV Line3 0.0 NaN\n", "53 40 8 l LBS True Switch Bus MV3 - MV Line3 0.0 NaN\n", "54 40 9 l LBS True Switch Bus MV3 - MV Line4 0.0 NaN\n", "55 41 9 l LBS True Switch Bus MV4 - MV Line4 0.0 NaN\n", "56 41 10 l LBS True Switch Bus MV4 - MV Line5 0.0 NaN\n", "57 42 10 l LBS False Switch Bus MV5 - MV Line5 0.0 NaN\n", "58 42 11 l LBS True Switch Bus MV5 - MV Line6 0.0 NaN\n", "59 43 11 l LBS True Switch Bus MV6 - MV Line6 0.0 NaN\n", "60 43 12 l LBS True Switch Bus MV6 - MV Line7 0.0 NaN\n", "61 44 12 l LBS True Switch Bus MV7 - MV Line7 0.0 NaN\n", "62 37 13 l LBS True Switch Bus MV0 - MV Line8 0.0 NaN\n", "63 44 13 l LBS True Switch Bus MV7 - MV Line8 0.0 NaN" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Bus-line switches\n", "mv_buses = net.bus[(net.bus.vn_kv == 10) | (net.bus.vn_kv == 20)].index\n", "mv_ls = net.line[(net.line.from_bus.isin(mv_buses)) & (net.line.to_bus.isin(mv_buses))]\n", "for _, line in mv_ls.iterrows():\n", " pp.create_switch(net, line.from_bus, line.name, et='l', closed=True, type='LBS', name='Switch %s - %s' % (net.bus.name.at[line.from_bus], line['name']))\n", " pp.create_switch(net, line.to_bus, line.name, et='l', closed=True, type='LBS', name='Switch %s - %s' % (net.bus.name.at[line.to_bus], line['name']))\n", "\n", "# open switch\n", "open_switch_id = net.switch[(net.switch.name == 'Switch Bus MV5 - MV Line5')].index\n", "net.switch.closed.loc[open_switch_id] = False\n", "\n", "#show only medium voltage switch table\n", "net.switch[net.switch.bus.isin(mv_buses)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loads\n", "\n", "" ] }, { "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", "
namebusp_mwq_mvarconst_z_percentconst_i_percentsn_mvascalingin_servicetype
5Further MV-Rings376.02.000.00.0NaN1.0Truewye
6Industry Load3618.04.000.00.0NaN1.0Truewye
7LV Net 1380.40.100.00.0NaN1.0Truewye
8LV Net 2390.40.060.00.0NaN1.0Truewye
9LV Net 3400.40.060.00.0NaN1.0Truewye
10LV Net 5420.40.060.00.0NaN1.0Truewye
11LV Net 6430.40.060.00.0NaN1.0Truewye
12LV Net 7440.40.060.00.0NaN1.0Truewye
\n", "
" ], "text/plain": [ " name bus p_mw q_mvar const_z_percent const_i_percent \\\n", "5 Further MV-Rings 37 6.0 2.00 0.0 0.0 \n", "6 Industry Load 36 18.0 4.00 0.0 0.0 \n", "7 LV Net 1 38 0.4 0.10 0.0 0.0 \n", "8 LV Net 2 39 0.4 0.06 0.0 0.0 \n", "9 LV Net 3 40 0.4 0.06 0.0 0.0 \n", "10 LV Net 5 42 0.4 0.06 0.0 0.0 \n", "11 LV Net 6 43 0.4 0.06 0.0 0.0 \n", "12 LV Net 7 44 0.4 0.06 0.0 0.0 \n", "\n", " sn_mva scaling in_service type \n", "5 NaN 1.0 True wye \n", "6 NaN 1.0 True wye \n", "7 NaN 1.0 True wye \n", "8 NaN 1.0 True wye \n", "9 NaN 1.0 True wye \n", "10 NaN 1.0 True wye \n", "11 NaN 1.0 True wye \n", "12 NaN 1.0 True wye " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mv_loads = pd.read_csv('example_advanced/mv_loads.csv', sep=';', header=0, decimal=',')\n", "for _, load in mv_loads.iterrows():\n", " bus_idx = pp.get_element_index(net, \"bus\", load.bus)\n", " pp.create_load(net, bus_idx, p_mw=load.p, q_mvar=load.q, name=load.load_name)\n", "\n", "# show only medium voltage loads\n", "net.load[net.load.bus.isin(mv_buses)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Static generators\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 21, "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", "
namebusp_mwq_mvarsn_mvascalingin_servicetypecurrent_source
1Biogas plant430.50.00750.01.0TrueSGENTrue
2Further MV Generator370.50.051000.01.0TrueSGENTrue
3Industry Generator3615.03.0020000.01.0TrueSGENTrue
4PV Park422.00.105000.01.0TruePVTrue
\n", "
" ], "text/plain": [ " name bus p_mw q_mvar sn_mva scaling in_service \\\n", "1 Biogas plant 43 0.5 0.00 750.0 1.0 True \n", "2 Further MV Generator 37 0.5 0.05 1000.0 1.0 True \n", "3 Industry Generator 36 15.0 3.00 20000.0 1.0 True \n", "4 PV Park 42 2.0 0.10 5000.0 1.0 True \n", "\n", " type current_source \n", "1 SGEN True \n", "2 SGEN True \n", "3 SGEN True \n", "4 PV True " ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mv_sgens = pd.read_csv('example_advanced/mv_sgens.csv', sep=';', header=0, decimal=',')\n", "for _, sgen in mv_sgens.iterrows():\n", " bus_idx = pp.get_element_index(net, \"bus\", sgen.bus)\n", " pp.create_sgen(net, bus_idx, p_mw=sgen.p, q_mvar=sgen.q, sn_mva=sgen.sn, type=sgen.type, name=sgen.sgen_name)\n", "\n", "# show only medium voltage static generators\n", "net.sgen[net.sgen.bus.isin(mv_buses)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Low voltage level" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Busses\n", "\n", "" ] }, { "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", "
namevn_kvtypezonein_service
45Bus LV00.4nNoneTrue
46Bus LV1.10.4mNoneTrue
47Bus LV1.20.4mNoneTrue
48Bus LV1.30.4mNoneTrue
49Bus LV1.40.4mNoneTrue
50Bus LV1.50.4mNoneTrue
51Bus LV2.10.4mNoneTrue
52Bus LV2.20.4mNoneTrue
53Bus LV2.30.4mNoneTrue
54Bus LV2.40.4mNoneTrue
55Bus LV2.2.10.4mNoneTrue
56Bus LV2.2.20.4mNoneTrue
\n", "
" ], "text/plain": [ " name vn_kv type zone in_service\n", "45 Bus LV0 0.4 n None True\n", "46 Bus LV1.1 0.4 m None True\n", "47 Bus LV1.2 0.4 m None True\n", "48 Bus LV1.3 0.4 m None True\n", "49 Bus LV1.4 0.4 m None True\n", "50 Bus LV1.5 0.4 m None True\n", "51 Bus LV2.1 0.4 m None True\n", "52 Bus LV2.2 0.4 m None True\n", "53 Bus LV2.3 0.4 m None True\n", "54 Bus LV2.4 0.4 m None True\n", "55 Bus LV2.2.1 0.4 m None True\n", "56 Bus LV2.2.2 0.4 m None True" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pp.create_bus(net, name='Bus LV0', vn_kv=0.4, type='n')\n", "for i in range(1, 6):\n", " pp.create_bus(net, name='Bus LV1.%s' % i, vn_kv=0.4, type='m')\n", "for i in range(1, 5):\n", " pp.create_bus(net, name='Bus LV2.%s' % i, vn_kv=0.4, type='m')\n", "pp.create_bus(net, name='Bus LV2.2.1', vn_kv=0.4, type='m')\n", "pp.create_bus(net, name='Bus LV2.2.2', vn_kv=0.4, type='m')\n", "\n", "# show only low voltage buses\n", "lv_buses = net.bus[net.bus.vn_kv == 0.4]\n", "lv_buses" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Lines\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 23, "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", "
namestd_typefrom_busto_buslength_kmr_ohm_per_kmx_ohm_per_kmc_nf_per_kmg_us_per_kmmax_i_kadfparalleltypein_service
14LV Line1.1NAYY 4x120 SE45460.080.22500.08264.00.00.2421.01csTrue
15LV Line1.2NAYY 4x120 SE46470.080.22500.08264.00.00.2421.01csTrue
16LV Line1.3NAYY 4x120 SE47480.080.22500.08264.00.00.2421.01csTrue
17LV Line1.4NAYY 4x120 SE48490.080.22500.08264.00.00.2421.01csTrue
18LV Line1.6NAYY 4x120 SE49500.080.22500.08264.00.00.2421.01csTrue
19LV Line2.1NAYY 4x120 SE45510.120.22500.08264.00.00.2421.01csTrue
20LV Line2.2NAYY 4x120 SE51520.120.22500.08264.00.00.2421.01csTrue
21LV Line2.315-AL1/3-ST1A 0.452530.121.87690.3511.00.00.1051.01olTrue
22LV Line2.415-AL1/3-ST1A 0.453540.121.87690.3511.00.00.1051.01olTrue
23LV Line2.2.115-AL1/3-ST1A 0.452550.121.87690.3511.00.00.1051.01olTrue
24LV Line2.2.215-AL1/3-ST1A 0.455560.121.87690.3511.00.00.1051.01olTrue
\n", "
" ], "text/plain": [ " name std_type from_bus to_bus length_km \\\n", "14 LV Line1.1 NAYY 4x120 SE 45 46 0.08 \n", "15 LV Line1.2 NAYY 4x120 SE 46 47 0.08 \n", "16 LV Line1.3 NAYY 4x120 SE 47 48 0.08 \n", "17 LV Line1.4 NAYY 4x120 SE 48 49 0.08 \n", "18 LV Line1.6 NAYY 4x120 SE 49 50 0.08 \n", "19 LV Line2.1 NAYY 4x120 SE 45 51 0.12 \n", "20 LV Line2.2 NAYY 4x120 SE 51 52 0.12 \n", "21 LV Line2.3 15-AL1/3-ST1A 0.4 52 53 0.12 \n", "22 LV Line2.4 15-AL1/3-ST1A 0.4 53 54 0.12 \n", "23 LV Line2.2.1 15-AL1/3-ST1A 0.4 52 55 0.12 \n", "24 LV Line2.2.2 15-AL1/3-ST1A 0.4 55 56 0.12 \n", "\n", " r_ohm_per_km x_ohm_per_km c_nf_per_km g_us_per_km max_i_ka df \\\n", "14 0.2250 0.08 264.0 0.0 0.242 1.0 \n", "15 0.2250 0.08 264.0 0.0 0.242 1.0 \n", "16 0.2250 0.08 264.0 0.0 0.242 1.0 \n", "17 0.2250 0.08 264.0 0.0 0.242 1.0 \n", "18 0.2250 0.08 264.0 0.0 0.242 1.0 \n", "19 0.2250 0.08 264.0 0.0 0.242 1.0 \n", "20 0.2250 0.08 264.0 0.0 0.242 1.0 \n", "21 1.8769 0.35 11.0 0.0 0.105 1.0 \n", "22 1.8769 0.35 11.0 0.0 0.105 1.0 \n", "23 1.8769 0.35 11.0 0.0 0.105 1.0 \n", "24 1.8769 0.35 11.0 0.0 0.105 1.0 \n", "\n", " parallel type in_service \n", "14 1 cs True \n", "15 1 cs True \n", "16 1 cs True \n", "17 1 cs True \n", "18 1 cs True \n", "19 1 cs True \n", "20 1 cs True \n", "21 1 ol True \n", "22 1 ol True \n", "23 1 ol True \n", "24 1 ol True " ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# create lines\n", "lv_lines = pd.read_csv('example_advanced/lv_lines.csv', sep=';', header=0, decimal=',')\n", "for _, lv_line in lv_lines.iterrows():\n", " from_bus = pp.get_element_index(net, \"bus\", lv_line.from_bus)\n", " to_bus = pp.get_element_index(net, \"bus\", lv_line.to_bus)\n", " pp.create_line(net, from_bus, to_bus, length_km=lv_line.length, std_type=lv_line.std_type, name=lv_line.line_name)\n", "\n", "# show only low voltage lines\n", "net.line[net.line.from_bus.isin(lv_buses.index)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Transformer\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 24, "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_mvavn_hv_kvvn_lv_kvvk_percentvkr_percentpfe_kw...tap_mintap_maxtap_step_percenttap_step_degreetap_postap_phase_shifterparalleldfin_servicetp_pos
1MV-LV-TrafoNone41450.410.00.44.01.3250.95...-2.02.02.5NaN0.0False11.0True0.0
\n", "

1 rows × 24 columns

\n", "
" ], "text/plain": [ " name std_type hv_bus lv_bus sn_mva vn_hv_kv vn_lv_kv \\\n", "1 MV-LV-Trafo None 41 45 0.4 10.0 0.4 \n", "\n", " vk_percent vkr_percent pfe_kw ... tap_min tap_max tap_step_percent \\\n", "1 4.0 1.325 0.95 ... -2.0 2.0 2.5 \n", "\n", " tap_step_degree tap_pos tap_phase_shifter parallel df in_service \\\n", "1 NaN 0.0 False 1 1.0 True \n", "\n", " tp_pos \n", "1 0.0 \n", "\n", "[1 rows x 24 columns]" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hv_bus = pp.get_element_index(net, \"bus\", \"Bus MV4\")\n", "lv_bus = pp.get_element_index(net, \"bus\",\"Bus LV0\")\n", "pp.create_transformer_from_parameters(net, hv_bus, lv_bus, sn_mva=.4, vn_hv_kv=10, vn_lv_kv=0.4, vkr_percent=1.325, vk_percent=4, pfe_kw=0.95, i0_percent=0.2375, tap_side=\"hv\", tap_neutral=0, tap_min=-2, tap_max=2, tap_step_percent=2.5, tp_pos=0, shift_degree=150, name='MV-LV-Trafo')\n", "\n", "#show only low voltage transformer\n", "net.trafo[net.trafo.lv_bus.isin(lv_buses.index)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Switches" ] }, { "cell_type": "code", "execution_count": 25, "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", "
buselementettypeclosednamez_ohmin_ka
644514lLBSTrueSwitch Bus LV0 - LV Line1.10.0NaN
654614lLBSTrueSwitch Bus LV1.1 - LV Line1.10.0NaN
664615lLBSTrueSwitch Bus LV1.1 - LV Line1.20.0NaN
674715lLBSTrueSwitch Bus LV1.2 - LV Line1.20.0NaN
684716lLBSTrueSwitch Bus LV1.2 - LV Line1.30.0NaN
694816lLBSTrueSwitch Bus LV1.3 - LV Line1.30.0NaN
704817lLBSTrueSwitch Bus LV1.3 - LV Line1.40.0NaN
714917lLBSTrueSwitch Bus LV1.4 - LV Line1.40.0NaN
724918lLBSTrueSwitch Bus LV1.4 - LV Line1.60.0NaN
735018lLBSTrueSwitch Bus LV1.5 - LV Line1.60.0NaN
744519lLBSTrueSwitch Bus LV0 - LV Line2.10.0NaN
755119lLBSTrueSwitch Bus LV2.1 - LV Line2.10.0NaN
765120lLBSTrueSwitch Bus LV2.1 - LV Line2.20.0NaN
775220lLBSTrueSwitch Bus LV2.2 - LV Line2.20.0NaN
785221lLBSTrueSwitch Bus LV2.2 - LV Line2.30.0NaN
795321lLBSTrueSwitch Bus LV2.3 - LV Line2.30.0NaN
805322lLBSTrueSwitch Bus LV2.3 - LV Line2.40.0NaN
815422lLBSTrueSwitch Bus LV2.4 - LV Line2.40.0NaN
825223lLBSTrueSwitch Bus LV2.2 - LV Line2.2.10.0NaN
835523lLBSTrueSwitch Bus LV2.2.1 - LV Line2.2.10.0NaN
845524lLBSTrueSwitch Bus LV2.2.1 - LV Line2.2.20.0NaN
855624lLBSTrueSwitch Bus LV2.2.2 - LV Line2.2.20.0NaN
87451tLBSTrueSwitch LV0 - MV-LV-Trafo0.0NaN
\n", "
" ], "text/plain": [ " bus element et type closed name z_ohm \\\n", "64 45 14 l LBS True Switch Bus LV0 - LV Line1.1 0.0 \n", "65 46 14 l LBS True Switch Bus LV1.1 - LV Line1.1 0.0 \n", "66 46 15 l LBS True Switch Bus LV1.1 - LV Line1.2 0.0 \n", "67 47 15 l LBS True Switch Bus LV1.2 - LV Line1.2 0.0 \n", "68 47 16 l LBS True Switch Bus LV1.2 - LV Line1.3 0.0 \n", "69 48 16 l LBS True Switch Bus LV1.3 - LV Line1.3 0.0 \n", "70 48 17 l LBS True Switch Bus LV1.3 - LV Line1.4 0.0 \n", "71 49 17 l LBS True Switch Bus LV1.4 - LV Line1.4 0.0 \n", "72 49 18 l LBS True Switch Bus LV1.4 - LV Line1.6 0.0 \n", "73 50 18 l LBS True Switch Bus LV1.5 - LV Line1.6 0.0 \n", "74 45 19 l LBS True Switch Bus LV0 - LV Line2.1 0.0 \n", "75 51 19 l LBS True Switch Bus LV2.1 - LV Line2.1 0.0 \n", "76 51 20 l LBS True Switch Bus LV2.1 - LV Line2.2 0.0 \n", "77 52 20 l LBS True Switch Bus LV2.2 - LV Line2.2 0.0 \n", "78 52 21 l LBS True Switch Bus LV2.2 - LV Line2.3 0.0 \n", "79 53 21 l LBS True Switch Bus LV2.3 - LV Line2.3 0.0 \n", "80 53 22 l LBS True Switch Bus LV2.3 - LV Line2.4 0.0 \n", "81 54 22 l LBS True Switch Bus LV2.4 - LV Line2.4 0.0 \n", "82 52 23 l LBS True Switch Bus LV2.2 - LV Line2.2.1 0.0 \n", "83 55 23 l LBS True Switch Bus LV2.2.1 - LV Line2.2.1 0.0 \n", "84 55 24 l LBS True Switch Bus LV2.2.1 - LV Line2.2.2 0.0 \n", "85 56 24 l LBS True Switch Bus LV2.2.2 - LV Line2.2.2 0.0 \n", "87 45 1 t LBS True Switch LV0 - MV-LV-Trafo 0.0 \n", "\n", " in_ka \n", "64 NaN \n", "65 NaN \n", "66 NaN \n", "67 NaN \n", "68 NaN \n", "69 NaN \n", "70 NaN \n", "71 NaN \n", "72 NaN \n", "73 NaN \n", "74 NaN \n", "75 NaN \n", "76 NaN \n", "77 NaN \n", "78 NaN \n", "79 NaN \n", "80 NaN \n", "81 NaN \n", "82 NaN \n", "83 NaN \n", "84 NaN \n", "85 NaN \n", "87 NaN " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lv_buses\n", "# Bus-line switches\n", "lv_ls = net.line[(net.line.from_bus.isin(lv_buses.index)) & (net.line.to_bus.isin(lv_buses.index))]\n", "for _, line in lv_ls.iterrows():\n", " pp.create_switch(net, line.from_bus, line.name, et='l', closed=True, type='LBS', name='Switch %s - %s' % (net.bus.name.at[line.from_bus], line['name']))\n", " pp.create_switch(net, line.to_bus, line.name, et='l', closed=True, type='LBS', name='Switch %s - %s' % (net.bus.name.at[line.to_bus], line['name']))\n", "\n", "# Trafo-line switches\n", "pp.create_switch(net, pp.get_element_index(net, \"bus\", 'Bus MV4'), pp.get_element_index(net, \"trafo\", 'MV-LV-Trafo'), et='t', closed=True, type='LBS', name='Switch MV4 - MV-LV-Trafo')\n", "pp.create_switch(net, pp.get_element_index(net, \"bus\", 'Bus LV0'), pp.get_element_index(net, \"trafo\", 'MV-LV-Trafo'), et='t', closed=True, type='LBS', name='Switch LV0 - MV-LV-Trafo')\n", "\n", "# show only low vvoltage switches\n", "net.switch[net.switch.bus.isin(lv_buses.index)]\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Loads\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 26, "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", "
namebusp_mwq_mvarconst_z_percentconst_i_percentsn_mvascalingin_servicetype
13Further LV-Feeders Load450.100.100.00.0NaN1.0Truewye
14Residential Load460.010.030.00.0NaN1.0Truewye
15Residential Load(1)470.010.030.00.0NaN1.0Truewye
16Residential Load(2)480.010.030.00.0NaN1.0Truewye
17Residential Load(3)490.010.030.00.0NaN1.0Truewye
18Residential Load(4)500.010.030.00.0NaN1.0Truewye
19Rural Load510.010.030.00.0NaN1.0Truewye
20Rural Load(1)520.010.030.00.0NaN1.0Truewye
21Rural Load(2)530.010.030.00.0NaN1.0Truewye
22Rural Load(3)540.010.030.00.0NaN1.0Truewye
23Rural Load(4)550.010.030.00.0NaN1.0Truewye
24Rural Load(5)560.010.030.00.0NaN1.0Truewye
\n", "
" ], "text/plain": [ " name bus p_mw q_mvar const_z_percent \\\n", "13 Further LV-Feeders Load 45 0.10 0.10 0.0 \n", "14 Residential Load 46 0.01 0.03 0.0 \n", "15 Residential Load(1) 47 0.01 0.03 0.0 \n", "16 Residential Load(2) 48 0.01 0.03 0.0 \n", "17 Residential Load(3) 49 0.01 0.03 0.0 \n", "18 Residential Load(4) 50 0.01 0.03 0.0 \n", "19 Rural Load 51 0.01 0.03 0.0 \n", "20 Rural Load(1) 52 0.01 0.03 0.0 \n", "21 Rural Load(2) 53 0.01 0.03 0.0 \n", "22 Rural Load(3) 54 0.01 0.03 0.0 \n", "23 Rural Load(4) 55 0.01 0.03 0.0 \n", "24 Rural Load(5) 56 0.01 0.03 0.0 \n", "\n", " const_i_percent sn_mva scaling in_service type \n", "13 0.0 NaN 1.0 True wye \n", "14 0.0 NaN 1.0 True wye \n", "15 0.0 NaN 1.0 True wye \n", "16 0.0 NaN 1.0 True wye \n", "17 0.0 NaN 1.0 True wye \n", "18 0.0 NaN 1.0 True wye \n", "19 0.0 NaN 1.0 True wye \n", "20 0.0 NaN 1.0 True wye \n", "21 0.0 NaN 1.0 True wye \n", "22 0.0 NaN 1.0 True wye \n", "23 0.0 NaN 1.0 True wye \n", "24 0.0 NaN 1.0 True wye " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lv_loads = pd.read_csv('example_advanced/lv_loads.csv', sep=';', header=0, decimal=',')\n", "for _, load in lv_loads.iterrows():\n", " bus_idx = pp.get_element_index(net, \"bus\", load.bus)\n", " pp.create_load(net, bus_idx, p_mw=load.p, q_mvar=load.q, name=load.load_name)\n", " \n", "# show only low voltage loads\n", "net.load[net.load.bus.isin(lv_buses.index)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Static generators\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 27, "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", "
namebusp_mwq_mvarsn_mvascalingin_servicetypecurrent_source
5PV460.060.00.0121.0TruePVTrue
6PV(1)480.050.00.0101.0TruePVTrue
7PV(2)530.050.00.0101.0TruePVTrue
8PV(3)540.050.00.0101.0TruePVTrue
9PV(4)550.050.00.0101.0TruePVTrue
10PV(5)560.050.00.0101.0TruePVTrue
\n", "
" ], "text/plain": [ " name bus p_mw q_mvar sn_mva scaling in_service type current_source\n", "5 PV 46 0.06 0.0 0.012 1.0 True PV True\n", "6 PV(1) 48 0.05 0.0 0.010 1.0 True PV True\n", "7 PV(2) 53 0.05 0.0 0.010 1.0 True PV True\n", "8 PV(3) 54 0.05 0.0 0.010 1.0 True PV True\n", "9 PV(4) 55 0.05 0.0 0.010 1.0 True PV True\n", "10 PV(5) 56 0.05 0.0 0.010 1.0 True PV True" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lv_sgens = pd.read_csv('example_advanced/lv_sgens.csv', sep=';', header=0, decimal=',')\n", "for _, sgen in lv_sgens.iterrows():\n", " bus_idx = pp.get_element_index(net, \"bus\", sgen.bus)\n", " pp.create_sgen(net, bus_idx, p_mw=sgen.p, q_mvar=sgen.q, sn_mva=sgen.sn, type=sgen.type, name=sgen.sgen_name)\n", "\n", "# show only low voltage static generators\n", "net.sgen[net.sgen.bus.isin(lv_buses.index)]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run a Power Flow" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "This pandapower network includes the following parameter tables:\n", " - bus (57 elements)\n", " - load (25 elements)\n", " - sgen (11 elements)\n", " - gen (1 element)\n", " - switch (88 elements)\n", " - shunt (1 element)\n", " - ext_grid (1 element)\n", " - line (25 elements)\n", " - trafo (2 elements)\n", " - trafo3w (1 element)\n", " - impedance (1 element)\n", " - xward (2 elements)\n", " and the following results tables:\n", " - res_bus (57 elements)\n", " - res_line (25 elements)\n", " - res_trafo (2 elements)\n", " - res_trafo3w (1 element)\n", " - res_impedance (1 element)\n", " - res_ext_grid (1 element)\n", " - res_load (25 elements)\n", " - res_sgen (11 elements)\n", " - res_shunt (1 element)\n", " - res_gen (1 element)\n", " - res_xward (2 elements)\n", " - res_switch (88 elements)" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pp.runpp(net, calculate_voltage_angles=True, init=\"dc\")\n", "net" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.13" } }, "nbformat": 4, "nbformat_minor": 1 }