{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Short-Circuit Calculation Considering Renewable Energy Resources\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the 2016 revision of the standard, the contribution of full converter elements like wind parks of photovoltaic or wind power plants, which was previously neglected, has been integrated. \n", "\n", "In the paper [Short Circuit Calculation with Fullsize Converters According to IEC 60909](https://www.researchgate.net/publication/309430459_SHORT-CIRCUIT_CALCULATION_WITH_FULLSIZE_CONVERTERS_ACCORDING_TO_IEC_60909), the process is explained and an example is given. This example is used here to validate the correct implementation of the 2016 revision of the standard in pandapower." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Example Network\n", "\n", "The following network is introduced as example in the paper:\n", " \n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This network can be modeled in pandapower with the line parameters given in the paper as:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandapower as pp\n", "import pandapower.shortcircuit as sc\n", "import numpy as np\n", "\n", "net = pp.create_empty_network()\n", "for i in range(4):\n", " pp.create_bus(net, vn_kv=110., index=i+1)\n", " \n", "pp.create_ext_grid(net, 1, s_sc_max_mva=20*110*np.sqrt(3), rx_max=0.1)\n", "pp.create_std_type(net, {\"r_ohm_per_km\": 0.120, \"x_ohm_per_km\": 0.393, \"c_nf_per_km\": 0.19,\n", " \"max_i_ka\": 0.6}, \"example_type\")\n", "\n", "for fb, tb, length in [(1, 2, 100), (1, 3, 50), (2, 3, 50), (3, 4, 25)]:\n", " pp.create_line(net, from_bus=fb, to_bus=tb, length_km=length, std_type=\"example_type\")\n", "\n", "for b, p in [(2, 100), (3, 50), (4, 50)]:\n", " pp.create_sgen(net, b, p_mw=p, sn_mva=p, k=1.2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Short Circuits Without Windparks\n", "\n", "First, we disable the static generators that represent the wind parks and run a short circuit calculation without the wind park contribution:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "net.sgen.in_service = False\n", "sc.calc_sc(net, ip=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result given in the paper without wind park contribution for a fault at bus 2 is Ikss = 2.9133 kA and ip = 5.9746 kA. Checking the results table shows that pandapower gives the same results:" ] }, { "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", "
ikss_kaskss_mwip_kark_ohmxk_ohm
120.0000003810.51177749.3843900.3475633.475634
22.913118555.0236165.9742406.34756323.125634
33.706618706.2055177.6585684.84756318.213134
42.399375457.1424254.8971677.84756328.038134
\n", "
" ], "text/plain": [ " ikss_ka skss_mw ip_ka rk_ohm xk_ohm\n", "1 20.000000 3810.511777 49.384390 0.347563 3.475634\n", "2 2.913118 555.023616 5.974240 6.347563 23.125634\n", "3 3.706618 706.205517 7.658568 4.847563 18.213134\n", "4 2.399375 457.142425 4.897167 7.847563 28.038134" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "net.res_bus_sc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Minor deviations in the results can be explained since the values in the paper are obtained from rounded intermediate results in the paper." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Short Circuits With Windparks\n", "\n", "We now activate the three wind parks and run the short circuit calculation again:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "net.sgen.in_service = True\n", "sc.calc_sc(net, ip=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The result given in the paper with wind park contribution for a fault at bus 2 is Ikss = 3.9034 kA and ip = 7.3746 kA. Checking the results table shows that pandapower results yields the same result:" ] }, { "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", "
ikss_kaskss_mwip_kark_ohmxk_ohm
121.2596733810.51177751.1658370.3475633.475634
23.903126675.0236167.3743216.34756323.125634
34.794773766.2055179.1974524.84756318.213134
43.214790517.1424256.0503377.84756328.038134
\n", "
" ], "text/plain": [ " ikss_ka skss_mw ip_ka rk_ohm xk_ohm\n", "1 21.259673 3810.511777 51.165837 0.347563 3.475634\n", "2 3.903126 675.023616 7.374321 6.347563 23.125634\n", "3 4.794773 766.205517 9.197452 4.847563 18.213134\n", "4 3.214790 517.142425 6.050337 7.847563 28.038134" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "net.res_bus_sc" ] } ], "metadata": { "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": 4 }