{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Hosting Capacity\n", "\n", "The term PV hosting capacity is defined as the maximum PV capacity which can be connected to a specific grid, while still complying with relevant grid codes and grid planning principles. \n", "\n", "Here we will introduce a basic algorithm to calculate PV hosting capacity with pandapower.\n", "\n", "The basic idea of calculating hosting capacity is to increase PV installation until a violation of any planning principle or constraint occurs. To analyse hosting capacity, we need three basic building blocks:\n", "1. Evaluting constraint violations\n", "2. Chosing connection points for new PV plants\n", "3. Defining the installed power of new PV plants " ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "### Evaluation of constraint violations\n", "\n", "Our example function that evaluates constraint violation is defined as:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandapower as pp\n", "\n", "def violations(net):\n", " pp.runpp(net)\n", " if net.res_line.loading_percent.max() > 50:\n", " return (True, \"Line \\n Overloading\")\n", " elif net.res_trafo.loading_percent.max() > 50:\n", " return (True, \"Transformer \\n Overloading\")\n", " elif net.res_bus.vm_pu.max() > 1.04:\n", " return (True, \"Voltage \\n Violation\")\n", " else:\n", " return (False, None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The function runs a power flow and then checks for line loading and transformer loading (both of which have to be below 50%) and for voltage rise (which has to be below 1.04 pu). The function returns a boolean flag to signal if any constraint is violated as well as a string that indicates the type of constraint violation." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Chosing a connection bus\n", "\n", "If new PV plants are installed, a connection bus has to be chosen. Here, we chose one random bus of each of the buses that have a load connection:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from numpy.random import choice\n", "\n", "def chose_bus(net):\n", " return choice(net.load.bus.values)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Chosing a PV plant size\n", "\n", "The function that returns a plant size is given as:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from numpy.random import normal\n", "\n", "def get_plant_size_kw():\n", " return normal(loc=500, scale=50)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This function returns a random value from a normal distribution with a mean of 500 kW and a standard deviation of 50 kW. Depending on the existing information, it would also possible to use other probability distributions, such as a Weibull distribution, or to draw values from existing plant sizes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Evaluating Hosting Capacity\n", "\n", "We now use these building blocks to evaluate hosting capacity in a generic network. We use the MV Oberrhein network from the pandapower networks package as an example:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandapower.networks as nw\n", "def load_network():\n", " return nw.mv_oberrhein(scenario=\"generation\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The hosting capacity is then evaluated like this:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandas as pd\n", "\n", "iterations = 50\n", "results = pd.DataFrame(columns=[\"installed\", \"violation\"])\n", "\n", "for i in range(iterations):\n", " net = load_network()\n", " installed_kw = 0\n", " while 1:\n", " violated, violation_type = violations(net)\n", " if violated:\n", " results.loc[i] = [installed_kw, violation_type]\n", " break\n", " else:\n", " plant_size = get_plant_size_kw()\n", " pp.create_sgen(net, chose_bus(net), p_kw=-plant_size, q_kvar=0)\n", " installed_kw += plant_size" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This algorithm adds new PV plants until a violation of any constraint occurs. Then, it saves the installed PV capacity. This is carried out for a number of iteration (here: 50) to get a distribution of hosting capacity values depending on connection points and plant sizes.\n", "\n", "The results can be visualized using pandas/matplotlib:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "D:\\Python\\Anaconda\\lib\\site-packages\\seaborn\\categorical.py:2171: UserWarning: The boxplot API has been changed. Attempting to adjust your arguments for the new API (which might not work). Please update your code. See the version 0.6 release notes for more info.\n", " warnings.warn(msg, UserWarning)\n" ] }, { "data": { "image/png": "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\nJASA06dPFzl37VhxDyMXL15k+fLl9O/fn1mzZhU6Z++09H/HcebMmSLHk5OTMRgMVfJAZI8b/ikp\nFAoefvhhvvvuOyZOnEhUVBTe3t6oVCp8fX1p0aIFTzzxBOvXr+fpp5+utqeSkri4XKmZW9xChWtT\nadzc3Cq9nRBCiKrlrdc6OgThQCqNDrWyB5n7ZNGtI/m6VM3+Pw0aNKBhw4Zs376dbdu20bZtW3x9\nfW8ci68vzZo1Y82aNSQkJNiOFxQUsHTpUrRabbGzSq4t5q1Xr16h4z/++CNnz54tNFXmWl57o2k7\nnTp14q+//io01x7gww8/RKFQ0LFjxxu+j6pi137GdevWZfLkyTV+hD4oKAgo/gksMTERT09P1Gp1\npbcTQghRtXw8nDknS55uaa4+4WRciETjdwHnupVXi13YL8i97JUS7RUbG8uCBQvIz89n5syZdl3z\nwgsvcN999zFw4EBGjBiBq6sr3377LceOHeOFF14odhA2MjKS4OBgPvzwQ/Lz8wkICODQoUN88803\n6HQ6srP/2VbP29sbq9XK559/TlJSEr179y7S36RJk9i4cSOTJ09m2LBh1K1bl59//plNmzbRvXt3\n/vOf/5T/Q6kAxw65VzIvLy+CgoKKrW5z7NgxWw3Tym4nhBCiavnqdbV6V0lROfTB7Undq8SYJk97\n1S0/M5dmdaOqrP/evXuTm5uLRqOha9euJba7fopWTEwMX3zxBc2aNWPp0qW89957ODs7s2DBAkaO\nHFnsdRqNho8++oiYmBiWLVvGW2+9xdGjR5kxYwZTpkzBYDBw9OhRANq1a8e9997Ljh07eOWVVzAa\njUXi0ev1rFy5kn79+rF+/XreeOMNzpw5w7Rp05gzZ05lfDTlorDWwN+YnTt3JjQ0lE8//bTENnff\nfTeRkZF8/PHHhY7PmjWLzz//nHXr1tlq1+/YsYOJEyfyxhtv2BZtVHa7kuzfv59WrVqV74MQtd64\nceNISjPgVj+22u5p+HMNfl5uLFmypNruKURV2/XzHl5aegitu5+jQxE1QPLZJYT0D0Spkt3kq0ve\niUxWPLO42MIjouaxa4pObTJx4kTWrFnD6NGjuf/++8nNzWXJkiXExMQUWrBR2e2EEEJUnTatW6D5\naDMgCb4Az6DhJG1aTkDPyq3JLkoWoPWW5L4WqbEJfmmr5P+9VfA1Pj4+LF++nNdff5333nsPV1dX\nevTowZQpU1CpVFXWTgghRNVRq9UE+ThzuWwlqsVNSqVxQUlnMn77GX3LGy/GLI+CzHyOz/uVwM4R\n+N1R9CHCnG8iYfvfZBxLoiAjD6VWhWsdPYGdInAOdC+1f7PRzPk1x8k8noyTixqfVsEE3F23SLtL\nm/4i7dBlGj/RDqXKsbOqq3L+vah8NTJD3bp1a6lttm/fXuK5evXqFdmhrDraCSGEqDohfq5cTii9\nnbg1uPlEkvH3BbS+CejCS0+q7WU2mvn7y8NY8ouvu28pMPPnkt/ISzDgEqZHH+VHQWY+GUcTyfoz\nlcixLXAN19/wHpc3/UXGkUS8YgIx55u5vPU0Ts4qfNuE2toUGIwk/3qe4B71HZ7cWy1WQjwkwa9N\nbqpFtkIIIW5edUO8sZgLHB2GqEH0oXeR/IuFgozKWXRrTM/lryW/kXMhs8Q2ST/Hk5dgwPeOMBqM\nb0Vw9/rUGdyUemNbYDVbOf/diVLvk3rgEt6tggnrG0XdIc1wj/QmZW/hHU8Td/yNylWNd0vH1FG/\nXm6CgfYt2jk6DFEGkuALIYSoFXp26YAx/ayjwxA1jFf4YBI2JWMxmUtvfANJu+M5MX8PeYkG3CJK\nrveeeSwZFAoCO0cUOu5W1xO3up7kJRgoyCq6f841pmwjlgIzzoH/lHB0DnLHmJ5re23MyCNl30UC\nOkWgUDp+Yy/nTCeaRDVxdBiiDEqcohMVVb5SSAqFwlZeSAghhKgsAQEBBHhYyHB0IKJGUSqVuPsP\nI3nrl/h3Cy39ghIk/xKPxsuZ0D6NyE/OwXAmrdh2Pm1C0BuMOGmLplCKq1NpLMaSHzacdFeus+T/\n08acbyrUX8L2M2i8dHg1DyzXe6lsQW7+Dt/MVJRNiQl+w4YNiyxivXTpEhkZGbi7u9O0aVP0ej05\nOTkcO3aM5ORkgoODy/1gIIQQQpQmPMCdw6mOjkLUNBqdG/lZHcj8fS8eMeVbdBsa2xi3SC8UCgX5\nyTkltvNuEVTscVNOAdln01FqnNB46kq8XuGkxDnIndQDl9A388eSbybjaBJuEZ4A5KfkkPb7ZcIH\nNi214Eh1CXTzd3QIooxKTPC//fbbQq/37dvHAw88wPjx43n88cfRaDS2cxaLhcWLFzN37lz++9//\nVl20Qgghbmn1Qr04mGxGqZT656Iwd79GpJ++gMY3FV1o0R1MS72+vneF7n/xh1NYjGZ82oSicLrx\naHdw9/qc+fwQx2bvBkDtoSWwSyQAl7edQevnimezf5Jqq9XqsGQ/PzOXmHqysWdtY/f3LW+9oJaB\n6gAAIABJREFU9RbR0dFMmTKlUHIPV74emzhxIm3btnXorl1CCCFubr263Y0p/YyjwxA1lGdoZ5J3\nFdxwDnxVSNh+hrTfL6Px1BF0T71S27tFeNHokTaE9G5EWL8oGj7cBq2XM7kJBtL/SLT1kfDj3/wx\naweHX97O3ysOY84rvrJPVdJegm4du1T7fUXF2J3gHz9+nNtuu/ETXP369TlzRn7xCiGEqBpBQYGE\n+9aMaQuiZvKqM5SEHxKwmKtn04TLW05zedsZVC5qIkY1t82xL43G0xnf20PwbhGEyll9pa+tp3EJ\ndsejkS+ZJ1O4vPU0fu3DqTO0GTnxmVxYf7Iq30qxIr3qyL4/tZDdCb6Pjw+//fZbiedNJhM///wz\nQUHFz00TQgghKkPDcC+sVqujwxA1lFKpxN13GCnbLlXpfawWK/Grj5Gw429Ubhrq3dcCnZ9rufvL\nuZBJ5vFkAq+O3qf+dhHnIHcC7qqLvrEffv8JJ+1QAuYS6vNXBVNeAdGhUj2nNrL7kax3794sWrSI\nGTNmMHnyZLy9/5mrdvnyZWbNmsWpU6eYMmVKlQQqRG1kMBiwFuRi+HNNtd3TWpCLwVBttxOi2vXt\ncRebX1+HxrOOo0MRNZTGxYO8xDswHD6I220Vm1tfHIvJwtkVf5B5MhmNlzP1xsSg9XauUJ+XNp/G\ntY4n7pFX4s1PyUHn/89aAq2PC1itGNPzcA4o+xqD8rCey6Pv032q5V6ictmd4D/yyCMcOHCAuLg4\nvv76a4KCgnB1dcVgMHDp0iWsVis9evTggQceqMp4hRBC3OIaNogk0N2IFNMRN+Lh35T0UxdR+WSg\nC67chPjcV0fIPJmMzt+NemNjULtpSr/oBgx/p2E4nUr9B1rajlktVqyWf76pspqqZ8rR9eq6heLi\n4lLt9xUVZ3eCr9Vq+fTTT1m1ahXr1q3jxIkTJCQkoNfr6dChA/3796dnz55VGasQtY6bmxu5BeBW\nP7ba7mn4cw1ubtUzuiOEozSq48XP5x0dhajpPEO7kvzTZwTcq6lwEn5N0i/xZBxLQuvtQuT9LVC5\nqCvc5+XNp3GP9Ma1jqftmNbXhdwLmbYKOtnxGSiUCjReFfumwF4Ws4XG/vWr5V6i8pVp1YRCoWDg\nwIEMHDiwquIRQgghStX97lZsX/gLWg9Z9yVuzCt8BAkbPyKkXxiKCm7WZDFZSNj+NwC6QFeSfy3+\nKdPn9hC7HygyT6WQHZ9Bg0mtC/fRMpgznx/i9CcH0Pq6kvrbRbxbBuOkqZ4SscazBgZO6Fct9xKV\nr8zLok0mE7t27eL48eNkZGQwdepUTpw4gaurK6Gh5d9BTgghhLBXyxbN8dX+QBaS4IsbUyqVuHoO\nIeXHb/DtFFyhvvKTszHnFgCQcTSJjKNJxbbTR/nZneBf3nIaj8a+uAR7FDru0ciXkF4NSdxxlpwL\nWXjeFkBQ9+obUQ9VB+DrW75Nw4TjlSnB//XXX3n22WdJSEiwfWU0depUNmzYwEcffcRTTz3FuHHj\nqipWIYQQArjyjXKjcC/2JTg6ElEb6Ny8yExsjeHIH7g1LX3RrXeLoGJ3rHUOdKf5S50rNbaGD95e\n4jnfNqH4tqn+wVOr1UoD74hqv6+oPHZ/V3Xs2DEmTpxIbm4ukyZNolu3brZzMTEx+Pr68vbbb7N1\n69YqCVQIIYS43t3tmmHMTnZ0GKKW8PCPJuuYN3mXsx0dSo2Xfz6LPnfLusrazO4Ef+7cuWi1Wlat\nWsWTTz5Jw4YNbec6duxIXFwcer2epUuXVkmgQgghxPXu/k87/FSS4Av7eYb3IHlHDgU5RkeHUqOF\nWwOpHykLbGszuxP8/fv306NHD0JCQoo97+/vT8+ePTl16lSlBSeEEEKURKFQ0LppIBaL2dGhiFrE\nK3w4iT9cLlSCUvyjIMfIfxq2dXQYooLsTvDz8/NLrYXq5OREfn5+hYMSQggh7HH/iH4osv50dBii\nFlEqVbjo+5P602VHh1IjOV+AQb0GFDk+bdo0GjduzMWLF294/fTp04mKiqqq8ISd7F5kGxkZya5d\nu7BYLCiLKTNVUFDATz/9RESELMoQQghRPfR6Pc3quHIk3dGRiNpE5+ZH5uUYso+fwLWxZ+kX3CKs\nVivR/lGoVEXTQ4VCgUKhKLWPYcOGceedd1ZFeKIM7B7BHzx4MKdOnWLatGmkpaUVOpeSksKUKVM4\ne/YsAwYUfeoTQgghqkrfbm0xGqScjigbj8AWZBxxJz9RFt1eU/B3NmN6j6hQH82bN6dPnz6VFJEo\nL7tH8IcPH86BAwdYs2YNa9euRavVAtC5c2cuX76MxWKhS5cujBw5ssqCFUIIIf6tXdvWhKzYThIB\njg5F1DJeYb1I3PY/gvpqUenKvDXQTaeBLpzg4IrtFSBqhjJt6fbmm2/y7rvvcuedd+Ls7IyTkxMG\ng4FWrVoxc+ZM5s2bZ9fXN0IIIURlahcdhrlA1oCJsvMOG07CDxewWm/tRbf5abl0a1HxGv/X5upf\n/7pnz54cPnyYUaNGERMTQ/v27Xn11VcxGgtXM0pISGDq1Km0a9eO6Oho+vfvz9q1aysc062ozI+r\nPXv2pGdPqY0qhBCi5hg9rC/rds3BrJbFfaJslCoNzi59Sdv9Pd7tAx0djsN4p7rQ5a6KJ/j/nquv\nUChITU1l/Pjx9OjRg759+7Jz504+++wzdDodU6ZMASAxMZFBgwahUCgYO3Ys7u7ubN26lWeeeYak\npCQeeOCBCsd2KynTCL4QQghRE+l0OqLr6R0dhqilnPWBGJObkn3y1lytbTGZaR0WXWWzMDIzM3n8\n8cd56aWXGDx4MHPnziUyMrLQ6Pzs2bMpKCjgm2++4cEHH2TkyJEsWbKEXr168d5775Gamlolsd2s\nShzB79+/f7k6VCgUrFq1qtwBCSGEEOUxdmgP9s1ajZNHPUeHImohfdDtpB28hMo7B63vjcuC33T+\nzmfsE6Oq9Bb/nv3RuHFjvv/+e+BK9Z4tW7Zwxx13oFQqCxVz6datG+vWrWP37t307t27SmO8mZSY\n4B87dqxcHcocfCGEEI4QWS+C5uFqDqdZ5f9Foly86sSSuHUpQX3VqLRqR4dTLaxWK830DXFzc6vS\n+3h7exd6rdFosFgsAKSlpZGVlcXmzZvZtGlTkWsVCkWp9fdFYSUm+MePH6/OOIQQQogKmzSmL4+8\nGofCI9LRoYhayjN0JIkbPyGod9gt8aBo+SuHhydOcGgMZvOV3ai7d+/O0KFDi20TFhZWnSHVelIT\nSgghxE2jbp0wmtfRcChVRvFF+ahUGrS6XmT8sgXPdv6ODqdKWS1Wmns1xt/Pse/T29sbZ2dnTCYT\n7dq1K3Tu0qVLHDlyBBeXW2zaVAWVmOBv2bKl3J3ec8895b4WYMaMGZw9e5ZPP/200PHz58/z+uuv\ns3fvXgA6duzIs88+W+RrH0e1E0II4XiP3D+ASS9+Afr6jg5F1FIu+hAyLjUk96+zOEfevIu3Ladz\neeShSY4OAycnJ+666y62bNnC8ePHC5XZnDVrFps2beK7776TvKsMSkzwH3nkkTKPflitV0ZMyjt/\nHyAuLo64uDjatGlT6Hh6ejpjxozBZDIxceJETCYTixcv5uTJk8TFxdm2VXZUOyGEEDVDSEgwLSOd\n+S1JRvFF+emD7iD1t0v4euai9XF2dDiVzmqx0MqnKT7ePvZfY7Uye/ZsXF1di5y79957adu2bbnj\nmTJlCr/++iujRo1i5MiRBAcHs23bNn788UeGDRtGZKRMuyuLSk3wK8JisbBgwQLmz59f7H2XLl1K\nYmIia9euJSIiAoDo6Gjuv/9+vvnmGwYPHuzQdkIIIWqOR8YNZtxzn4C+oaNDEbWYd53+JG5ZQnC/\nAJw0N9eAnuK0kUceLdvovUKhYN26dcWei4yMtCX4/87jSsonrz8eFhZGXFwc7733HnFxceTk5BAW\nFsb06dMZPXp0meIUoLDWgK3bjEYjgwYN4tSpU/Tr14/du3dTp06dQlN0unbtSlhYGB9//HGha3v2\n7ElgYCBLly51aLuS7N+/n1atWpXh0xA3k3HjxpGUZsCtfmy13dPw5xr8vNxYsmRJtd1TiJropTc/\nYO/lABQK2fJFlJ/JmIch41MC7715Ft2ajSY6WVvy6JiHHB2KqCKV/lvvl19+KfM1+fn55OTkMGfO\nHGbNmoWTk1Oh85mZmcTHx9O0adMi1zZp0oQjR444tJ0QQoia57HxQ3DKOuXoMEQtp9LoUCt7kLE3\nydGhVBrnszBp+HhHhyGqUJm+b1q+fDnfffcdqampmM1mrg3+W61WTCYTWVlZ5OXllXkOvru7Oxs3\nbkSpLP55IyEhAYCAgIAi5/z9/cnKysJgMDisXVXXjhVCCFF23t7edGjuz9aT+TiptY4OR9Rirj7h\nZFyMJPfMeZwjaveiW2NWPv1v645afWvU+b9V2Z3gf/nll7zyyivAlS3B8/Pz0Wg0wJUReAC9Xs+Q\nIUPKFUhJyT1Adna27b7/ptVe+aWdm5vrsHaS4AshRM30xKSR/Pbk22Spmzg6FFHL6YPbk7r3K/w8\n89B4Fc0LagvfRBeGjStfriZqD7un6KxcuRJnZ2fi4uL4/fffiYmJITY2loMHD7J582buvvtusrOz\n6dOnT6UHee2bghvNfVMoFA5rJ4QQomZSq9WM7nsnpuxER4cibgLedQeRsDkZc4HZ0aGUS8HFHMZ1\nHy25yy3A7gT/zJkzdO/endtuuw2AmJgY23z70NBQ5s6di6+vL4sWLar0IK9tbpCXl1fk3LVvD9zc\n3BzWTgghRM3Vs9vdNPDOoAbUlBA3Ac+gESRtvujoMMrMYjLTQtOIdq3KX8pS1B52J/hms7nQXPSI\niAguXLhATk4OcGXKSqdOnSpUA78kwcHBACQlFV3gkpiYiIeHBzqdzmHthBBC1GxTHhqO0vCno8MQ\nNwGVxgUnOpOxv3YtunU+bWXquKeqpG+j0cjSpUsZPHgwrVq1onXr1gwYMIAlS5ZgMBiq5J6l6dy5\nM2PGjHH4fUePHl3hDWDLw+45+AEBAVy6dMn2Ojw8HKvVysmTJ4mJiQGujLQXlwxXlLu7O6GhoRw9\nerTIuaNHj9KsWTOHthNCCFGzhYeF0LNtCGsPGHDSyjevomLcfCLJOHsBrV8CunB3R4dTqoLLOTzU\n+YEqGZRMSEhg/Pjx/PXXX3Tp0oX+/ftjtVo5cOAAs2fPZsWKFXz44Ye2vYRuNQ8//LBtMLw62T2C\nf+edd7Jp0ybbtJyoqCicnJxYs2YNAAUFBezatQsfH/t3RCuLbt26sXv3bs6cOWM7du11r169HN5O\nCCFEzTbp/qEEquMdHYa4SehD7yL5FwsFGUWn8dYkFrOFptYIOrW/u9L7Ligo4KGHHuLixYt88skn\nzJ07lxEjRjBy5EjefvttvvjiCzIyMpg0aZJtavOtpl27dg4Zwbc7wZ80aRJarda2g6ter6d37958\n8cUXDB48mN69e3PixAm6du1aJYGOHz8evV7P2LFj+eSTT/jggw944oknuO222wot7HVUOyGEEDWb\nUqnkyXGxWLP+dnQo4ibhFT6Yy5uSsJhq7qJbzV8mpk94pkr6/uabbzh69CjTpk2jTZs2Rc5HR0fz\nwgsvcO7cORYvXlwlMYji2Z3gBwcH89VXXzFkyBDq1KkDwHPPPUeHDh04fPgw8fHxdOvWjUcffbRS\nAvv3Cm9vb2+WL19OVFQUc+fOZdmyZXTt2pVFixYVquXqqHZCCCFqvuhmTbirmTvmglxHhyJuAkql\nEg//4SRvvVR6YwcwJuUyqv1gXF1dq6T/1atX4+rqSt++fUts06dPH3x9fVm7di0AL774Ik2bNiUt\nLa1Qu9zcXGJiYnj++edtxw4cOMD9999Py5YtadmyJePGjePQoUOFruvcuTMzZszg+eefp3nz5nTs\n2LFI39fs27eP++67jxYtWtCiRQvGjh3Lvn37irS7NnjdsmVLoqOj6dmzJx999FGRduvXr6dfv340\nb96cPn36sHXr1iJt/j0Hf/To0YwfP56dO3cycOBAoqOj6dixI/PmzSty7cGDBxkzZgwtW7bkrrvu\nYt68ecybN4/GjRsX+/6uV6aNrkJDQ3nppZdsrz08PFi0aBFZWVmo1epKm9tV3AcEULduXT788MNS\nr3dUOyGEEDXflEfv48RTr5NgbSLlAkWFaXRuGA0dyPx9Lx4xvo4Ox8ZqsdIwL4R7O/eokv4tFgt/\n/PEHzZs3t+2LVJK2bduyfv16UlJSiI2NZeXKlWzcuJGhQ4fa2mzbto38/HxiY2MB2LVrF5MmTaJJ\nkyY8+eSTGI1GVq1axahRo1i6dCmtWrWyXfvdd99Rv359nn/+eZKTk/Hy8ioSw5YtW3jssccIDw/n\nkUceASAuLo777ruP999/n06dOgHw7rvv8uGHHzJgwACGDBlCdnY23377Le+88w5ubm4MHz4cgFWr\nVvHcc8/RsmVLpk6dyt9//82TTz6JQqEgNDT0hp/HyZMnmTx5MkOGDGHYsGGsXbuWefPm4ePjY+v/\njz/+YOzYsfj5+fHoo4+Sk5PDsmXLAPtKtNud4I8ZM4YBAwbQr1+/Iufc3a8sMFm2bBnLly/n+++/\nt7dbIYQQoloplUpenno/j720jAK3Ro4OR9wE3HwbkX76AhrfVHShNWMRt9Of+Tz3WNVMzQFIT0/H\naDTi5+dXalt/f3/gSgXCVq1aERQUxPfff18owV+/fj3+/v60bdsWq9XKiy++SExMDJ999pmtzahR\no+jbty+vvfYaq1atsh03Go0sXLgQX9/iH7DMZjMvv/wygYGBrFq1ylYGfejQofTu3ZuXXnqJu+66\nC6vVyvLly+nduzczZ860XT9o0CDuvPNOdu7cyfDhw7FYLLzzzjs0b96cZcuW4eTkBEDTpk2ZNm1a\nqZ9HUlISH3zwAXfffWVdRN++fenQoQNr1661JfhvvfUWWq2WuLg4PD09AejSpQsDBgwotX+4wRSd\nvLw8DAYDBoOBrKws9uzZw5kzZ2zH/v2TmprKrl27uHix9tWGFUIIcWsJCQ5i/IA2mLMvOzoUcZPw\nDO1M8q4CCrIcv5i0IDGXUe0G2RLDqnQtub2Ra1Oar+1F0adPH/bu3UtqaioABoOBnTt32oqXHD16\nlPPnz3PPPfeQlpZm+8nJybGVZE9M/GfzuvDw8BKTe4AjR46QkJDAqFGjbMk9XBmgHjlyJAkJCfzx\nxx+oVCp2797Nyy+/XOj6tLQ03NzcbNVw/vjjD1JSUhgwYECh9x8bG4tery/189DpdLbkHkCj0RAR\nEUFycjIAmZmZ7N27l759+xb6M2zcuDHt27cvtX+4wQj+119/zauvvlro2KJFi0rdyKp58+Z23VgI\nIYRwpHu7d2T/oeP8HJ+Pk1rr6HDETcCrzlASflhMcP9QlE52L3OsVAXZRu7URdO7S9VW+vP29kal\nUpGSklJq22vJ+LWR/D59+vDhhx+yadMmhg4dyubNmzEajbbiJefOnQPgzTff5I033ijU17XpKZcu\nXbL1V1oFx/Pnz6NQKKhbt26Rc5GRkVitVi5cuEDz5s1Rq9Vs27aNrVu3cubMGc6ePUtGRgYKhQKL\nxQLAxYsXUSgUhIWFFepLqVTa1qneSHFTiNRqNWbzlcXa8fHxWCyWYvuqV68eP/30U6n3KDHBHz58\nOHv37rX9we3bt4+goCBCQkKKtFUoFKjVavz9/XnooYdKvakQQghRE0yfPJ4JT79JMk0dHYq4CSiV\nStx9h5GyLQ6/LkXzpapmtVgJueTBlOcmV8v9WrZsyeHDhzEajTech79//37CwsJso+z169enUaNG\nbNiwgaFDh7JhwwYiIiKIiooCsCXSTz75JNHR0cX2Wa9ePdt/K5Xlf5i69q3Ctfgfeughtm/fTuvW\nrWnZsiXDhw+ndevWhTavuvaQkZdXtETqtdhvpLQ59CaTqVBM19Nq7RuMKDHBVyqVzJkzx/a6cePG\nDBgwoNKq5AghhBCOplKpePGpUUyeuRKTWwNHhyNuAhoXD/IS7yDr0O+4R1fN3kAl0Z40M3PyS9W2\neLxfv37s2bOHlStXMmrUqGLbbN68mfj4+CL5Y58+fZgzZw7x8fHs3r3btvAVsA0mOzs7065du0LX\nHT58mIyMDLsT3Wv9Wa1WTp8+TefOnQudO336NAqFgsDAQPbt28f27dt59NFHC8VrNptJT0+3jdiH\nhYVhtVo5e/ZskXtduHCBBg0q9rvk2n2u34Ppmr///tuuPux+5Dl+/Lgk90IIIW46deuEM7Z3NObs\nxNIbC2EHD/+mZJ3yJ++iodruafk7l2lDnsTDw6Pa7tm/f39iYmJ455132LVrV5Hzx44d47///S/h\n4eGMGzeu0LnevXtjNpt57bXXMJlMhTYPbdasGX5+fixbtqzQLrAGg4EnnniC5557DpXK/kKQTZs2\nxc/Pj88//xyD4Z8/E4PBwOeff46/vz/NmjUjPT0dKPztAMCKFSvIzc21TaFp0qQJISEhfPHFF4U2\n8Pruu+9KLNFZFt7e3rRo0YJ169aRlZVlOx4fH8/OnTvt6qNMZTLNZjM//fSTbWGA0Wjk/fffZ9++\nfYSEhDBx4kQaNmxYli6FEEIIh+vXpxuHji3kl/O5OKmdHR2OuAl4hXUleedn+PdSo3Gr2jUeBUm5\njI7uS7Oo6p1qplAomD9/Pg8//DATJkygS5cu3HHHHTg5OfH777+zdu1aQkJCWLBgAc7Ohf9dBQYG\n0rp1a7Zv305MTEyh+ewqlYoXXniBp556iv79+zN48GC0Wi0rV67k8uXLvP3222WalnN9fwMHDmTw\n4MFYrVa++uorkpOTmTt3LgAtWrTAzc2NmTNncuHCBfR6Pb/++ivr169Hp9ORnZ1t63PGjBk8+uij\nDBkyhIEDB3L58mU+//zzSlvY/OyzzzJ69GgGDhzIsGHDyM/P57PPPrNNKSr1Pdt7o+TkZMaMGcOZ\nM2f46aef8PHx4dVXXyUuLg6r1cqBAwfYtm0bK1euJDIystxvSIibjbUgF8Ofa8p+ndkIgMLpxvWF\ni7sf1IwybULUJi9MmcTj09/iTH59lE5lGv8SolhedUaQuPEjQvqFoajAPPEbMeUU0EbVhAE9+1dJ\n/6Xx8fHhs88+Y/Xq1axatYq5c+diNpsJCwvjqaeeYsiQIbi5Ff//pNjYWPbt22dbXHu97t27s2TJ\nEj744AMWLlyIUqmkQYMGLFy4sFAFGih5Tvv1x6/1t2DBAubPn49araZ58+bMmjWLli1b2t7LRx99\nxNtvv80HH3yARqOhbt26vPvuuxw8eJBly5aRmpqKt7c3HTt25MMPP+T999/n3Xffxd/fn5kzZ7J8\n+fIbxmFvvDExMSxZsoTZs2fz3nvv4enpyZgxY/jzzz/ZuHFjsdcX6stq56PASy+9xBdffMHIkSOZ\nPHkyFouF9u3b4+/vz/Llyzl//jwTJkygU6dOzJ49254ubwn79+8vtBmDuLVMnTrVrgoDxblWLutG\npb9K4uPjw5tvvlmu+wpxK8vPz2fSlLdIVjeTTbBEpcgzpGFWfINvp+BK79tqseL7p5b5z79boYWm\nouZJSUkptjrQgw8+yMmTJ0vcFPYau4cofvzxRzp27MiMGTMAWLt2LQUFBQwYMIDAwEACAwPp2bMn\n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\nAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "plt.rc('xtick', labelsize=18) # fontsize of the tick labels\n", "plt.rc('ytick', labelsize=18) # fontsize of the tick labels\n", "plt.rc('legend', fontsize=18) # fontsize of the tick labels\n", "plt.rc('axes', labelsize=20) # fontsize of the tick labels\n", "plt.rcParams['font.size'] = 20\n", "\n", "import seaborn as sns\n", "sns.set_style(\"whitegrid\", {'axes.grid' : False})\n", "\n", "fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10,5))\n", "ax = axes[0]\n", "sns.boxplot(results, width=.1, ax=ax)\n", "ax.set_xticklabels([\"\"])\n", "ax.set_ylabel(\"Installed Capacity [kW]\")\n", "\n", "ax = axes[1]\n", "results.violation.value_counts().plot(kind=\"pie\", ax=ax, autopct=lambda x:\"%.0f %%\"%x)\n", "ax.set_ylabel(\"\")\n", "ax.set_xlabel(\"\")\n", "sns.despine()\n", "plt.tight_layout()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Note that this is only an example for a basic algorithm in order to demonstrate how such problems can be tackled with pandapower. Algorithms applied in real case studies might include Q-control of PV plants, transformer tap controllers, more sophisticated distribution of PV plants, probability distribution different buses, binary search for the hosting capacity evaluation etc." ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda root]", "language": "python", "name": "conda-root-py" }, "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.5.3" } }, "nbformat": 4, "nbformat_minor": 2 }