{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "# Internal Datastructure: Bus branch model, Admittance and Jacobian Matrix\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This jupyter notebooks explains how to access and interpret the internal datastructure with relevant matrices." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Internal Datastructure\n", "\n", "We use the simple example network from the create_simple tutorial as an example for how to access internal calculation parameters:\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "This pandapower network includes the following parameter tables:\n", " - bus (7 elements)\n", " - load (1 element)\n", " - sgen (1 element)\n", " - gen (1 element)\n", " - switch (8 elements)\n", " - shunt (1 element)\n", " - ext_grid (1 element)\n", " - line (4 elements)\n", " - trafo (1 element)\n" ] } ], "source": [ "import pandapower as pp\n", "import pandapower.networks as nw\n", "\n", "net = nw.example_simple()\n", "print(net)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we run a power flow in this network:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "pp.runpp(net)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When a power flow is carried out, the element based grid model is translated into a bus-branch model. That bus-branch model is stored in a data structure that is based on the PYPOWER/MATPOWER casefile (with some extensions). This ppc can be accesed after power flow:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "{'baseMVA': 1,\n", " 'version': 2,\n", " 'bus': array([[ 0.00000000e+00, 3.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, 1.02000000e+00, 0.00000000e+00,\n", " 1.10000000e+02, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 1.00000000e+00, 1.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 9.60000000e-01,\n", " 1.00000000e+00, 1.02082951e+00, 3.24135661e-02,\n", " 1.10000000e+02, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 2.00000000e+00, 1.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, 1.02456241e+00, 1.80284793e+00,\n", " 2.00000000e+01, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 3.00000000e+00, 2.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, 1.03000000e+00, 1.87045457e+00,\n", " 2.00000000e+01, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 4.00000000e+00, 1.00000000e+00, -8.00000000e-01,\n", " 2.90000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, 1.02320534e+00, 1.95222438e+00,\n", " 2.00000000e+01, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 5.00000000e+00, 1.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, 1.03000700e+00, 1.86983253e+00,\n", " 2.00000000e+01, 1.00000000e+00, 1.10000000e+00,\n", " 9.00000000e-01, 0.00000000e+00, 0.00000000e+00],\n", " [ 6.00000000e+00, 4.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, nan, nan,\n", " 1.10000000e+02, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 7.00000000e+00, 4.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, nan, nan,\n", " 2.00000000e+01, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]]),\n", " 'branch': array([[ 0.00000000e+00+0.j , 1.00000000e+00+0.j ,\n", " 4.95867769e-05+0.j , 1.19008264e-04+0.j ,\n", " 5.47391104e+00+0.j , 2.50000000e+02+0.j ,\n", " 2.50000000e+02+0.j , 2.50000000e+02+0.j ,\n", " 1.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 1.00000000e+00+0.j , -3.60000000e+02+0.j ,\n", " 3.60000000e+02+0.j , -6.74111530e+00+0.j ,\n", " -7.14688297e+00+0.j , 6.74416214e+00+0.j ,\n", " 1.45450502e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j ],\n", " [ 2.00000000e+00+0.j , 3.00000000e+00+0.j ,\n", " 6.10000000e-04+0.j , 5.60000000e-04+0.j ,\n", " 7.64035333e-02+0.j , 2.50000000e+02+0.j ,\n", " 2.50000000e+02+0.j , 2.50000000e+02+0.j ,\n", " 1.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 1.00000000e+00+0.j , -3.60000000e+02+0.j ,\n", " 3.60000000e+02+0.j , -5.97238973e+00+0.j ,\n", " -3.48162502e+00+0.j , 5.99999998e+00+0.j ,\n", " 3.42634241e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j ],\n", " [ 3.00000000e+00+0.j , 5.00000000e+00+0.j ,\n", " 5.19662500e-03+0.j , 3.25500000e-03+0.j ,\n", " 4.17831823e-03+0.j , 2.50000000e+02+0.j ,\n", " 2.50000000e+02+0.j , 2.50000000e+02+0.j ,\n", " 1.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 1.00000000e+00+0.j , -3.60000000e+02+0.j ,\n", " 3.60000000e+02+0.j , 2.40626638e-08+0.j ,\n", " -4.43279288e-03+0.j , 5.75627463e-14+0.j ,\n", " 3.11693679e-14+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j ],\n", " [ 4.00000000e+00+0.j , 2.00000000e+00+0.j ,\n", " 7.62500000e-04+0.j , 7.00000000e-04+0.j ,\n", " 9.55044167e-02+0.j , 2.50000000e+02+0.j ,\n", " 2.50000000e+02+0.j , 2.50000000e+02+0.j ,\n", " 1.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 1.00000000e+00+0.j , -3.60000000e+02+0.j ,\n", " 3.60000000e+02+0.j , 8.00000000e-01+0.j ,\n", " -2.90000000e+00+0.j , -7.93618189e-01+0.j ,\n", " 2.80573774e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j ],\n", " [ 1.00000000e+00+0.j , 2.00000000e+00+0.j ,\n", " 1.63923679e-04+0.j , 4.79726336e-03+0.j ,\n", " -1.05000908e-02-0.01399964j, 2.50000000e+02+0.j ,\n", " 2.50000000e+02+0.j , 2.50000000e+02+0.j ,\n", " 1.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 1.00000000e+00+0.j , -3.60000000e+02+0.j ,\n", " 3.60000000e+02+0.j , -6.74416214e+00+0.j ,\n", " -4.54095852e-01+0.j , 6.76600792e+00+0.j ,\n", " 6.75887284e-01+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j ]]),\n", " 'gen': array([[ 0.00000000e+00, -6.74111530e+00, -7.14688297e+00,\n", " 0.00000000e+00, 0.00000000e+00, 1.02000000e+00,\n", " 1.00000000e+00, 1.00000000e+00, 1.00000000e+09,\n", " -1.00000000e+09, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 3.00000000e+00, 6.00000000e+00, 3.42190962e+00,\n", " 3.00000000e+00, -3.00000000e+00, 1.03000000e+00,\n", " nan, 1.00000000e+00, 1.00000000e+09,\n", " -1.00000000e+09, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]]),\n", " 'internal': {'Ybus': <6x6 sparse matrix of type ''\n", " \twith 16 stored elements in Compressed Sparse Row format>,\n", " 'Yf': <5x6 sparse matrix of type ''\n", " \twith 10 stored elements in Compressed Sparse Row format>,\n", " 'Yt': <5x6 sparse matrix of type ''\n", " \twith 10 stored elements in Compressed Sparse Row format>,\n", " 'branch_is': array([ True, True, True, True, True]),\n", " 'gen_is': array([ True, True]),\n", " 'DLF': array([], dtype=complex128),\n", " 'buses_ord_bfs_nets': array([], dtype=float64),\n", " 'ref_gens': array([0]),\n", " 'J': <9x9 sparse matrix of type ''\n", " \twith 41 stored elements in Compressed Sparse Row format>,\n", " 'Vm_it': None,\n", " 'Va_it': None,\n", " 'bus': array([[ 0.00000000e+00, 3.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, 1.02000000e+00, 0.00000000e+00,\n", " 1.10000000e+02, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 1.00000000e+00, 1.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 9.60000000e-01,\n", " 1.00000000e+00, 1.02082951e+00, 3.24135661e-02,\n", " 1.10000000e+02, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 2.00000000e+00, 1.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, 1.02456241e+00, 1.80284793e+00,\n", " 2.00000000e+01, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 3.00000000e+00, 2.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, 1.03000000e+00, 1.87045457e+00,\n", " 2.00000000e+01, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 4.00000000e+00, 1.00000000e+00, -8.00000000e-01,\n", " 2.90000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, 1.02320534e+00, 1.95222438e+00,\n", " 2.00000000e+01, 1.00000000e+00, 2.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 5.00000000e+00, 1.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 1.00000000e+00, 1.03000700e+00, 1.86983253e+00,\n", " 2.00000000e+01, 1.00000000e+00, 1.10000000e+00,\n", " 9.00000000e-01, 0.00000000e+00, 0.00000000e+00]]),\n", " 'gen': array([[ 0.00000000e+00, -6.74111530e+00, -7.14688297e+00,\n", " 0.00000000e+00, 0.00000000e+00, 1.02000000e+00,\n", " 1.00000000e+00, 1.00000000e+00, 1.00000000e+09,\n", " -1.00000000e+09, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],\n", " [ 3.00000000e+00, 6.00000000e+00, 3.42190962e+00,\n", " 3.00000000e+00, -3.00000000e+00, 1.03000000e+00,\n", " nan, 1.00000000e+00, 1.00000000e+09,\n", " -1.00000000e+09, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 0.00000000e+00]]),\n", " 'branch': array([[ 0.00000000e+00+0.j , 1.00000000e+00+0.j ,\n", " 4.95867769e-05+0.j , 1.19008264e-04+0.j ,\n", " 5.47391104e+00+0.j , 2.50000000e+02+0.j ,\n", " 2.50000000e+02+0.j , 2.50000000e+02+0.j ,\n", " 1.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 1.00000000e+00+0.j , -3.60000000e+02+0.j ,\n", " 3.60000000e+02+0.j , -6.74111530e+00+0.j ,\n", " -7.14688297e+00+0.j , 6.74416214e+00+0.j ,\n", " 1.45450502e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j ],\n", " [ 2.00000000e+00+0.j , 3.00000000e+00+0.j ,\n", " 6.10000000e-04+0.j , 5.60000000e-04+0.j ,\n", " 7.64035333e-02+0.j , 2.50000000e+02+0.j ,\n", " 2.50000000e+02+0.j , 2.50000000e+02+0.j ,\n", " 1.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 1.00000000e+00+0.j , -3.60000000e+02+0.j ,\n", " 3.60000000e+02+0.j , -5.97238973e+00+0.j ,\n", " -3.48162502e+00+0.j , 5.99999998e+00+0.j ,\n", " 3.42634241e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j ],\n", " [ 3.00000000e+00+0.j , 5.00000000e+00+0.j ,\n", " 5.19662500e-03+0.j , 3.25500000e-03+0.j ,\n", " 4.17831823e-03+0.j , 2.50000000e+02+0.j ,\n", " 2.50000000e+02+0.j , 2.50000000e+02+0.j ,\n", " 1.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 1.00000000e+00+0.j , -3.60000000e+02+0.j ,\n", " 3.60000000e+02+0.j , 2.40626638e-08+0.j ,\n", " -4.43279288e-03+0.j , 5.75627463e-14+0.j ,\n", " 3.11693679e-14+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j ],\n", " [ 4.00000000e+00+0.j , 2.00000000e+00+0.j ,\n", " 7.62500000e-04+0.j , 7.00000000e-04+0.j ,\n", " 9.55044167e-02+0.j , 2.50000000e+02+0.j ,\n", " 2.50000000e+02+0.j , 2.50000000e+02+0.j ,\n", " 1.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 1.00000000e+00+0.j , -3.60000000e+02+0.j ,\n", " 3.60000000e+02+0.j , 8.00000000e-01+0.j ,\n", " -2.90000000e+00+0.j , -7.93618189e-01+0.j ,\n", " 2.80573774e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j ],\n", " [ 1.00000000e+00+0.j , 2.00000000e+00+0.j ,\n", " 1.63923679e-04+0.j , 4.79726336e-03+0.j ,\n", " -1.05000908e-02-0.01399964j, 2.50000000e+02+0.j ,\n", " 2.50000000e+02+0.j , 2.50000000e+02+0.j ,\n", " 1.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 1.00000000e+00+0.j , -3.60000000e+02+0.j ,\n", " 3.60000000e+02+0.j , -6.74416214e+00+0.j ,\n", " -4.54095852e-01+0.j , 6.76600792e+00+0.j ,\n", " 6.75887284e-01+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j , 0.00000000e+00+0.j ,\n", " 0.00000000e+00+0.j ]]),\n", " 'baseMVA': 1,\n", " 'V': array([1.02 +0.j , 1.02082934+0.00057751j,\n", " 1.02405525+0.03223318j, 1.0294512 +0.03361899j,\n", " 1.02261145+0.03485667j, 1.02945856+0.03360804j]),\n", " 'pv': array([3]),\n", " 'pq': array([1, 2, 4, 5]),\n", " 'ref': array([0]),\n", " 'Sbus': array([0. +0.j , 0. +0.j , 0. +0.j , 6. +0.j , 0.8-2.9j, 0. +0.j ])},\n", " 'success': True,\n", " 'et': 1.1613223552703857,\n", " 'iterations': 3}" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "net._ppc" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For information on how this datastructure is defined, please refer to the MATPOWER documentation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note:** For linear power flow (DC load flow) 'Ybus' is no longer created, but 'Bbus' as a new 'internal' key." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 8402.77777778+0.j, -8402.77777778+0.j, 0. +0.j,\n", " 0. +0.j, 0. +0.j, 0. +0.j],\n", " [-8402.77777778+0.j, 8611.22995659+0.j, -208.45217882+0.j,\n", " 0. +0.j, 0. +0.j, 0. +0.j],\n", " [ 0. +0.j, -208.45217882+0.j, 3422.7378931 +0.j,\n", " -1785.71428571+0.j, -1428.57142857+0.j, 0. +0.j],\n", " [ 0. +0.j, 0. +0.j, -1785.71428571+0.j,\n", " 2092.93394777+0.j, 0. +0.j, -307.21966206+0.j],\n", " [ 0. +0.j, 0. +0.j, -1428.57142857+0.j,\n", " 0. +0.j, 1428.57142857+0.j, 0. +0.j],\n", " [ 0. +0.j, 0. +0.j, 0. +0.j,\n", " -307.21966206+0.j, 0. +0.j, 307.21966206+0.j]])" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pp.rundcpp(net)\n", "net._ppc['internal']['Bbus'].A" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Nodal Point Admittance Matrix\n", "\n", "The nodal point admittance matrix is saved in the ppc and can be accessed directly:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matrix([[ 2983.234714 -7157.02635809j, -2983.234714 +7159.76331361j,\n", " 0. +0.j , 0. +0.j ,\n", " 0. +0.j , 0. +0.j ],\n", " [-2983.234714 +7159.76331361j, 2990.35626947-7364.28068082j,\n", " -7.11455564 +208.20907269j, 0. +0.j ,\n", " 0. +0.j , 0. +0.j ],\n", " [ 0. +0.j , -7.11455564 +208.20907269j,\n", " 1608.40491554-1678.15899439j, -889.60186671 +816.68368091j,\n", " -711.68149336 +653.34694473j, 0. +0.j ],\n", " [ 0. +0.j , 0. +0.j ,\n", " -889.60186671 +816.68368091j, 1027.81021222 -903.21268537j,\n", " 0. +0.j , -138.20834551 +86.56929539j],\n", " [ 0. +0.j , 0. +0.j ,\n", " -711.68149336 +653.34694473j, 0. +0.j ,\n", " 711.68149336 -653.29919252j, 0. +0.j ],\n", " [ 0. +0.j , 0. +0.j ,\n", " 0. +0.j , -138.20834551 +86.56929539j,\n", " 0. +0.j , 138.20834551 -86.56720623j]])" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pp.runpp(net)\n", "net._ppc[\"internal\"][\"Ybus\"].todense()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that the nodal point admittance matrix is given in per unit values." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Jacobian Matrix\n", "\n", "The jacobian Matrix J in the last iteration step is also stored in the ppc and can be accessed:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "matrix([[ 9.54796437e+02, 0.00000000e+00, -8.62952855e+02,\n", " 0.00000000e+00, -9.18435819e+01, 0.00000000e+00,\n", " -9.15296717e+02, 0.00000000e+00, -1.42353628e+02],\n", " [ 0.00000000e+00, 7.67426447e+03, -2.17432759e+02,\n", " 0.00000000e+00, 0.00000000e+00, 3.05264392e+03,\n", " -1.38258923e+01, 0.00000000e+00, 0.00000000e+00],\n", " [-8.60737361e+02, -2.17892547e+02, 1.76161072e+03,\n", " -6.82980812e+02, 0.00000000e+00, -6.95203313e-01,\n", " 1.64791123e+03, -7.30904816e+02, 0.00000000e+00],\n", " [ 0.00000000e+00, 0.00000000e+00, -6.86871047e+02,\n", " 6.86871047e+02, 0.00000000e+00, 0.00000000e+00,\n", " -7.26450958e+02, 7.28978162e+02, 0.00000000e+00],\n", " [-9.18403982e+01, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, 9.18403982e+01, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 1.42355564e+02],\n", " [ 0.00000000e+00, -3.11622898e+03, 1.41654896e+01,\n", " 0.00000000e+00, 0.00000000e+00, 7.51767502e+03,\n", " -2.12220120e+02, 0.00000000e+00, 0.00000000e+00],\n", " [ 9.39812512e+02, 7.09684055e-01, -1.68838791e+03,\n", " 7.47865712e+02, 0.00000000e+00, -2.13446561e+02,\n", " 1.71937864e+03, -6.67491446e+02, 0.00000000e+00],\n", " [ 0.00000000e+00, 0.00000000e+00, 7.44294349e+02,\n", " -7.44294349e+02, 0.00000000e+00, 0.00000000e+00,\n", " -6.70404297e+02, 6.65624993e+02, 0.00000000e+00],\n", " [ 1.46627228e+02, 0.00000000e+00, 0.00000000e+00,\n", " 0.00000000e+00, -1.46627228e+02, 0.00000000e+00,\n", " 0.00000000e+00, 0.00000000e+00, 8.91648289e+01]])" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "net._ppc[\"internal\"][\"J\"].todense()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The jacobian matrix is also given in per unit values." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mapping the Buses\n", "\n", "The pandapower indices are not equal to the ppc indices for several reasons. Some buses are fused together in case of closed bus-bus switches and auxiliary buses are created for elements like extended wards or three winding transformers.\n", "See here for more details: https://pandapower.readthedocs.io/en/latest/elements/switch.html\n", "\n", "There is however a mapping between pandapower indices and ppc indices that is created during the conversion to keep track of the dependencies that is also stored in the net:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0, 1, 1, 2, 2, 3, 4])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "net._pd2ppc_lookups[\"bus\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To get a ppc index from the pandapower index, simply call the lookup like this:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\n" ] } ], "source": [ "pandapower_bus_idx = 3\n", "ppc_index = net._pd2ppc_lookups[\"bus\"][pandapower_bus_idx]\n", "print(ppc_index)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As you can see, pandapower bus index 3 corresponds to ppc bus index 2. So if we would like to find the diagonal entry of the Ybus matrix for bus 2, we could now access it with that internal index:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(2990.356269470474-7364.280680821408j)" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Ybus = net._ppc[\"internal\"][\"Ybus\"]\n", "int_idx = net._pd2ppc_lookups[\"bus\"][ppc_index]\n", "Ybus[int_idx, int_idx]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also see that some buses are mapped to the same internal bus, such as bus 1 and bus 2:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1\n", "1\n" ] } ], "source": [ "print(net._pd2ppc_lookups[\"bus\"][1])\n", "print(net._pd2ppc_lookups[\"bus\"][2])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That is because buses 1 and 2 are connected by a closed bus-bus switch and are therefore represented internally as the same bus:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "bus 1\n", "element 2\n", "et b\n", "type CB\n", "closed True\n", "name None\n", "z_ohm 0\n", "Name: 0, dtype: object" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "net.switch.loc[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## \n", "\n", "The pandapower indices are not equal to the ppc indices for several reasons. Some buses are fused together in case of closed bus-bus switches and auxiliary buses are created for elements like extended wards or three winding transformers. There is however a mapping between pandapower indices and ppc indices that is created during the conversion to keep track of the dependencies that is also stored in the net:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Obtaining Jacobian Entries of Generators\n", "\n", "As an example we show how to obtain the Jacobian entries of generator buses using the pandapower -> ppc bus mapping. First we get buses of the in-service generators:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pandapower gen bus: [5]\n" ] } ], "source": [ "gen_buses = net.gen.loc[net.gen.in_service.values, \"bus\"].values\n", "print(f\"pandapower gen bus: {gen_buses}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Second, we geht the Jacobian matrix:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Jacobian shape: (9, 9)\n" ] } ], "source": [ "J = net._ppc[\"internal\"][\"J\"]\n", "print(f\"Jacobian shape: {J.shape}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Why has the Jacobian the shape 9x9?\n", "It consists of the partial derivatives J11 = dP_dVa, J12 = dP_Vm, J21 = dQ_dVa, J22 = dQ_dVm. Except the reference bus, all PV- and PQ-buses are included in J. Vm is constant for PV nodes and dS/dVm is 0 for PV-buses (gens in pandapower) and Q is a variable. \n", "\n", "In our case we have 1 reference bus (at bus 0), 1 gen at bus 5, and 3 pq buses (at buses 1, 2, 4)\n", "\n", "This is the reason why J11 to J22 have these shapes:\n", "\n", "J11 = pvpq x pvpq (dP_dVa)\n", "\n", "J12 = pvpq x pq (dP_dVm)\n", "\n", "J21 = pq x pvpq (dQ_dVa)\n", "\n", "J22 = pq x pq (dQ_dVm)\n", "\n", "Only J11 contains values relevant for gens." ] }, { "cell_type": "raw", "metadata": {}, "source": [ "Now we get the \"internal\" ppc buses with the lookup:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pandapower to ppc lookup: [0 1 1 2 2 3 4]\n", "pandapower gen bus: [5] maps to ppc gen bus: [3]\n" ] } ], "source": [ "bus_lookup = ppc_index = net._pd2ppc_lookups[\"bus\"]\n", "print(f\"pandapower to ppc lookup: {bus_lookup}\")\n", "ppc_gen_buses = bus_lookup[gen_buses]\n", "print(f\"pandapower gen bus: {gen_buses} maps to ppc gen bus: {ppc_gen_buses}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we need the pv and pq entries in J to obtain the Jacobian sub-matrices:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pv and pq nodes as in the newtonpf() function\n", "pv buses: [3]\n", "pq buses: [1 2 4 5]\n", "pvpq buses: [3 1 2 4 5]\n", "shape of J sub-matrices:\n", "j11 = (5, 5)\n", "j12 = (5, 4)\n", "j21 = (4, 5)\n", "j22 = (4, 4)\n" ] } ], "source": [ "import numpy as np\n", "\n", "# get pv and pq values from newtonpf()\n", "pv = net._ppc[\"internal\"][\"pv\"]\n", "pq = net._ppc[\"internal\"][\"pq\"]\n", "# stack these as done in newtonpf()\n", "pvpq = np.hstack((pv, pq))\n", "\n", "print(\"pv and pq nodes as in the newtonpf() function\")\n", "print(f\"pv buses: {pv}\\npq buses: {pq}\\npvpq buses: {pvpq}\")\n", "\n", "# get len of pv and pq\n", "n_pvpq = len(pvpq)\n", "n_pq = len(pq)\n", "n_pv = len(pv)\n", "# get J11, J12, J21, and J22\n", "j11 = J[:n_pvpq, :n_pvpq]\n", "j12 = J[:n_pvpq, n_pvpq:]\n", "j21 = J[n_pvpq:, :n_pvpq]\n", "j22 = J[n_pvpq:, n_pvpq:]\n", "\n", "print(\"shape of J sub-matrices:\")\n", "print(f\"j11 = {j11.shape}\")\n", "print(f\"j12 = {j12.shape}\")\n", "print(f\"j21 = {j21.shape}\")\n", "print(f\"j22 = {j22.shape}\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we finally get the generator entries in J:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "J11 indices: m = [ True False False False False], n = [ True False False False False]\n", "pandapower gen [5] entries (ppc PV nodes [3]) in J11 (=dP/dVa): [[954.7964366]]\n" ] } ], "source": [ "# j11 gen entries\n", "m = np.isin(pvpq, pv)\n", "n = m\n", "\n", "j11_gen_entries = j11[m, n]\n", "print(f\"J11 indices: m = {m}, n = {n}\")\n", "print(f\"pandapower gen {gen_buses} entries (ppc PV nodes {ppc_gen_buses}) in J11 (=dP/dVa): {j11_gen_entries}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Visiualizing the Matrices\n", "You can easily visualize the matrices with matplotlib and the plot function spy(). Let's look at an example.\n", "\n", "First, we define a plot function to visiualize the sparse Ybus matrix (works also with any other matrix like J) including some labels:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as mpl\n", "import numpy as np\n", "\n", "import pandapower as pp\n", "import pandapower.networks as nw\n", "import pandapower.plotting as plt\n", "from pandapower.plotting import get_collection_sizes\n", "\n", "def plot_ybus(net=None, ax=None, ybus=None):\n", " if ax is None:\n", " fig, ax = mpl.subplots(1, 2)\n", " if ybus is None:\n", " ybus = net._ppc[\"internal\"][\"Ybus\"]\n", " ax.spy(ybus)\n", " ax.set_title(\"Ybus shape {}\\n\".format(str(ybus.shape)))\n", " ax.set_xticks(np.arange(ybus.shape[0]))\n", " ax.set_xticklabels(np.arange(ybus.shape[0]))\n", " ax.set_yticklabels(np.arange(ybus.shape[1]))\n", " ax.set_yticks(np.arange(ybus.shape[1]))\n", "\n", " ax.grid(which=\"both\", linestyle=\"dotted\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Second, we define a function to plot the power system including some bus labels and other collections:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "def plot_net(net, ax=None):\n", " if ax is None:\n", " fig, ax = mpl.subplots(1, 1, figsize=(10, 8))\n", "\n", " sizes = get_collection_sizes(net)\n", "\n", " # create collections for elements\n", " collections = list()\n", " collections.append(plt.create_bus_collection(net, size=sizes[\"bus\"]))\n", " collections.append(plt.create_line_collection(net, use_bus_geodata=True))\n", " collections.append(plt.create_trafo_collection(net, size=sizes[\"trafo\"]))\n", " collections.append(plt.create_ext_grid_collection(net, size=sizes[\"ext_grid\"], orientation=1.5))\n", " collections.append(plt.create_bus_bus_switch_collection(net, size=sizes[\"switch\"]))\n", " collections.append(\n", " plt.create_line_switch_collection(net, distance_to_bus=sizes[\"switch_distance\"], size=sizes[\"switch\"]))\n", " collections.append(plt.create_load_collection(net, size=sizes[\"load\"]))\n", "\n", " # add labels for each bus\n", " for idx in net.bus_geodata.index:\n", " x = net.bus_geodata.loc[idx, \"x\"]\n", " y = net.bus_geodata.loc[idx, \"y\"] + sizes[\"bus\"] * 1.\n", " ax.text(x, y, str(idx), fontsize=12, color=\"r\")\n", "\n", " plt.draw_collections(collections, ax=ax)\n", " mpl.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Third, we create a plot function with three subplots. The first subplots shows the power system including the bus labels. The second and third plot shows the Ybus matrix with different settings. If you just call runpp() the buses are fused internally and the Ybus matrix has a lower dimension. You can also use the parameter `r_switch` to set impedance values for switches. In this case, the buses are not fused and the Ybus matrix has a higher dimension. This also changes your power flow result." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "def plot_overview(net):\n", " fig, axes = mpl.subplots(1, 3, figsize=(16, 8))\n", " pp.runpp(net)\n", " plot_net(net, ax=axes[0])\n", " # plot y bus with max. const shape (no fused switches)\n", " pp.runpp(net, check_connectivity=False, r_switch=0.1, init=\"flat\", neglect_open_switch_branches=True)\n", " plot_ybus(net, ax=axes[1])\n", " # plot ybus for power flow (with fused switches)\n", " pp.runpp(net)\n", " plot_ybus(net, ax=axes[2])\n", " mpl.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we call the overview function with the cigre example power system:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABHAAAAIjCAYAAABrvOy5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzde3xcdZ3/8denTdMLLbSlgpRSgkBFLgJtVbyDiqJFdBW833ZX8bfrdVd3jcpPUdndqrvefntxXXXxtih4WZV6QwUUL0gbG0LTQBqJoWkkxqaEoWlKmM/vj3OmTKeTZi7fmTkz5/18PPpoO5m8cs6cTC7f73fOMXdHRERERERERESSa06jN0BERERERERERA5PAzgiIiIiIiIiIgmnARwRERERERERkYTTAI6IiIiIiIiISMJpAEdEREREREREJOE0gCMiIiIiIiIiknAawBERERERERERSTgN4IiIiIiIiIiIJJwGcEREREREREREEk4DOCIiIiIiIiIiCacBHBERERERERGRhNMAjoiIiIiIiIhIwmkAR0REREREREQk4TSAIyIiIiIiIiKScBrAERERERERERFJOA3giIiIiIiIiIgknAZwREREREREREQSTgM4IiIiIiIiIiIJpwEcEREREREREZGE0wCOiIiIiIiIiEjCaQBHRERERERERCThNIAjIiIiIiIiIpJwGsAREREREREREUk4DeCIiIiIiIiIiCScBnBERERERERERBJOAzgiIiIiIiIiIgmnARwRERERERERkYTTAI6IiIiIiIiISMJpAEdEREREREREJOE0gCMiIiIiIiIiknAawBERERERERERSTgN4IiIiIiIiIiIJJwGcEREREREREREEk4DOCIiIiIiIiIiCacBHBERERERERGRhNMAjoiIiIiIiIhIwmkAR0REREREREQk4TSAIyIiIiIiIiKScBrAERERERERERFJOA3giIiIiIiIiIgknAZwRJLObDlm38LsAcx+j9krGr1JIiIiIiIiUl9tjd4AEZnVvwH7gWOBc4BNmHXjvq2xmyUiIiIiIiL1Yu7e6G0QkZmYHQGMA2fifld825eAYdw7G7lpIiIiIiIiUj9agSOSbGuAhw4M3kS6gafn38nMDFgCLD/Mn6OJXjZ5pbvfXftNFxERERERkVA0gCOS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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "net = nw.create_cigre_network_mv()\n", "plot_overview(net)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each dot in the spy plot is ea" ] } ], "metadata": { "anaconda-cloud": {}, "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.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }