{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Pythonで学ぶ制御工学 Part3" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 今日の目標\n", "* 開ループ系の特性(安定余裕)をPythonでチェックできる\n", "* 状態空間モデルを記述でき,状態フィードバック制御器を設計できる" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from control.matlab import *\n", "import matplotlib.pyplot as plt\n", "import numpy as np" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ゲイン余裕,位相余裕,位相交差周波数,ゲイン交差周波数の計算" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARgAAAD0CAYAAABAfznBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2deXhdZbX/PytpxqbzBB1ooZRCGToySkUEBEQooihcHAAFURAvDj9FrwoqF6cLgkwyCV4VBFGZBcplaEunNLRNm6Zt0oQ0A03TpEnTzDnr98c5gZOcvc/e+5y9T6b38zz7yXm/7zprvTvr5M179rC2qCoGg8EQBGn9PQCDwTB0MROMwWAIDDPBGAyGwDATjMFgCAwzwRgMhsAY0d8DCJqJEyfqrFmz+nsYBsOQZsOGDXWqOimmQ1WH9DZv3jzty8aNG+O2U4Vfcb36cWvvZGfX70V3qwWNyUVyuQDy1eLvT3SIXwezePFi3bBhQy+tq6uLESNG2LZThV9xvfpxa+9kZ9fvRXerBY3JRXK5EJENqrqkrz7kvyK1t7fHaCUlJRx99NEA7NhzgF8/V8DoMWPsnTjMwX27+07asf3hn41NTYwePdreXnt+aK/3aZSuCs3NzYzMy+vVR9/3RI2t+eBBRo4cabkvAogIAhw82MzoUaNITxPSRBiRLoxISyMjXchIT6PlwH6mTZlEdmY6uRnpjM3NZExuBo211SycN4dDxmSTNSL9A9/Rv3evWtD4FdOrH7f2TnZ2/V70IHIx5CeYzMzMGG369OkfvG5s7WRbXRdSXx/Xj0j8OOE/SXv7vm8XEUKhEOkHGi0NJMqud7t3PBEIhaC+o8Xets97QqF02g92xIxJ+XBCCqnS3Z3G/vqW8OuQ0hVSurqVzu4Qnd0h2jq7ad3aaPn74MUqACaPymL6uBxmjM9l9vgs9o2o47ipYxiTmwH0zkUPVlrQ+BXTqx+39k52dv1e9CByMeQnmK6urhitrq6OvMh//BNnjecvl8+mPw4El5eX+xLXqx+39k525eXlzJw5k/auEAfbu9jf2sn+lk52lFeSPnIs1ftbqWpopWp/K/nlDTy7sRX+rwyAmRNyWTpnIsePh2WnziM748OVTnR+UoVfMb36cWvvZGfX70V3q3lhyE8waWmxZ+L7/sJS/WH2O65XP27tnezy8vIQEbIz0snOSGdCXhYAM0d2M3HixBj7kt011LSNoLCqkYL39vPMhir+3NnNrcurOP3IiVy6ZAYfP3pyv+RjKOQiWd2t5oUhP8FYHcTu7OyM204VfsX16setvZOdXb+dPnIELJ0ziaVzwmcz2zq7eSl/JwV7Onl16x5eLdrDtLE5LDt2HF/9+GjGj4z9ehsUwy0XVrpbzQvD8kK7UCgUt91f40iVH7f2TnZ2/W717Ix0Tj5sFL+4+HhW/eDj3H/FImaMz+G+VdWccvvr3PLcVvY1xx6kD4LhngsvmheG/ArG6itSbm5u3Haq8CuuVz9u7Z3s7Pq96D1aRnoa5x9/KOcffyj5O6p4evM+/rS6nKfzd3PNR4/gq0uPIC8ruI+ryYV7zQtDfgVjdZC3vs8Zo77tVOFXXK9+3No72dn1e9GttHHpbfzqsyfw6k1nsHTOJH63fCdn/PoNnsrfbfmV1w9MLtxrXhjyF9otWrRICwoKemmtra3k5OTYtlOFX3G9+nFr72Rn1+9Fd6O9W9HAbS9uI/+9Bk49YgL/fcnxHD7R+jqeRDG5cK9ZYXeh3ZBfwXR0dMRoZWVlcdupwq+4Xv24tXeys+v3orvRFh42jqe+dir//enj2VLdyLm/e5t73yiho8u/Y2cmF+41Lwz5FcySJUs0Pz+/lxYKhXodm+nbThV+xfXqx629k51dvxfdrdZDbVMbtz5fxIuFNRw/bQy/u2wBsyclf4rZ5MJ7LqIZtiuYlpaWGG3jxo1x26nCr7he/bi1d7Kz6/eiu9V6mDw6m3uvWMQDX1jE7oYWLrh7BX9e817Sx2ZMLrznwg2DbgUjIucBdwHpwMOq+st49lYrGMPQYE9TG999ehMrdtZx9jGT+dVnTvjgYj9DahkSKxgRSQfuBc4H5gGXi8i8eO+xWsH0vbu6bztV+BXXqx+39k52dv1edLeaFVNGZ/P4VSfx0wvn8fbOOj559wrWlSV21sPkIrlc2DGoVjAicipwi6qeG2nfDKCqt9u9x6xghgdF1U1c/9cCKupb+PY5R/H1M2aTluZwh6rBN4bECgaYBuyOaldGtF6IyLUiki8i+ZWVldTV1VFTU0NVVRUNDQ289dZbtLa2UlRURCgU4rXXXgM+nK0LCgoIhUIUFRXR2tpKaWkpDQ0NVFVVUVNTQ11dHeXl5TQ3N1NcXExXVxebNm3q5aPnZ2FhIe3t7ezcuZOmpiYqKiqora2ltraWFStW0NTUxM6dO2lvb6ewsNDSx6ZNm+jq6qK4uJjm5mbKy8t77dPq1aspLS3ttU89p+at9mndunWu9mn58uVx9+nNN9+M2aeKigrWrFljuU8FBQUx+/TGG2/E7NPKlStpaGjwtE+Hj8vg7gumcvbcCfzmle38xx9WUlJR4zpPr7/+um2eKioqXOcpPz/fNk9W++T2s7dy5cq4n73o3210ntavX+/6s2flY/ny5XE/ez37ZEdCKxgRuduFWZOq/pdn5/HjXgqcq6pfjbS/CJykqt+0e485i5S4/UA/c2GFqvKXtRX87IUiJo7M5L4vLGbBjLGO7zO5GFhnkZYBGxy2zyToOx6VwIyo9nSgOt4b2traYrTi4uK47VThV1yvftzaO9nZ9XvR3WpuERG+cMpMnrnuNESEzz2wmr+sdT7LZHLhfy6AxGryAv/ph00CcUcAu4DDgUxgE3BsvPcsXLgwpn5oS0tL3Haq8CuuVz9u7Z3s7Pq96G61RKhvbtcvPbJWZ37/Bf323zZqa0eXra3JRXK5wKYmb0IrGFX9nR82CcTtAm4AXgG2AU+p6tZ477G63by6ujpuO1X4FderH7f2TnZ2/V50t1oijBuZyaNXnsi3zprDMwWVXHLfO+yujz2r6GdMk4veJDTBiEi2iHxZRC6SMN8XkRdE5C4Ria005COq+pKqHqWqs1X1Nid7q4LF48ePj9tOFX7F9erHrb2TnV2/F92tlijpacJN5xzFo1cuobKhhQvvWcnbO/YGFtPkojeJHoP5E/AJ4GrgTeAw4B7gAPBYUiPyGat6Fn2vjbG6ViYV+BXXqx+39k52dv1edLdasnz86Ck8d8PpHDI6my//cR33vlHS67iMyUUwuUi0wMY8VT1OREYAlap6RkT/t4hsSmpEKaDvUfH+OIPkZ1yvftzaO9nZ9XvR3Wp+MGviSP7xjdP4/jOF/OaV7Wyu3M9vL53PqOwMkwsPmhcSfXcHfHBMpO+XtO6kRuQzYvE4gIyMjLjtVOFXXK9+3No72dn1e9Hdan6RmzmCuy9bwH9dcAzLt9Vy8b2rKKltNrnwoHkh0QlmuojcLSK/j3rd04658K0/sfqK1NzcHLedKvyK69WPW3snO7t+L7pbzU9EhK8uPYI/f+Vk9rd0suyelbxc6M9BXpOL3iT6Fel7Ua/7Xoc/oK7LtzrI27fivVUF/FTgV1yvftzaO9nZ9XvR3WpBcOrsCbxw4+lc9+cCfvzKbqrbM/nuJ+aSnsQtBiYXvUn0NPXj8bakRuQzVgWnKisr47ZThV9xvfpxa+9kZ9fvRXerBcWhY3J46muncP5Ro7j/zVKu/OM66g/GfmbcYnLRm0RvFXieOA9UVdWLkhmUn5hnUyduP9Cfh+wnXV1d/L2gmp88u5VJo7J44AuLOX56nMcJx/EzHHPh960CvwX+BygDWoGHIlszsCVBn4FgdavA1q1b47ZThV9xvfpxa+9kZ9fvRXerBc3WrVu57KTDePq6U1FVPvPAOzy1frfzGy38BGE/WHORVLkGEXlbVT/qpPUnplyDwSv7mtu58cl3WVWyj8tPmsFPLzy216NtDbEEVa5hkogcERXkcGBSkj59xRScStx+sBY5SoTomBPysvjT1SfzjY/N5ol1u7n0gdVUNri74MzkojfJrmDOAx4kfAMiwCzgWlV9NalR+YhZwRiS4dWt7/OdpzaRni787vML+Njcyf09pAFJICsYVf03MAf4VmSbO5AmFzArmGTsB+t/zUSwi/mJYw/h+W+GbzG46rH13PHaDrpD9v+UTS56k+hZpEWqWpCsTSowKxiDH7R2dPOjfxXyj4Iqls6ZyO8+v8AUGI/C7xXMH0VknIiMt9uAR5Ibsj+0trbGaD0lD+3aqcKvuF79uLV3srPr96K71YLGKWZOZjr/c+l8fnnJ8awtq+eCu1ey4b3YAuMmF71JdAVTDoSAeJc87lXVkxIcl29YXQfT3t5OVlaWbTtV+BXXqx+39k52dv1edLda0HiJuaWqkW/8pYDq/a18/7yj+erSwz+452245sLXFYyqzlLVI1T18Dhbv08uYH0lb0VFRdx2qvArrlc/bu2d7Oz6vehutaDxEvO4aWN4/punc9Yxk7ntpW1c86cNNLZ0evbjxX6w5mKwPVXAM1ZXIU6ZMiVuO1X4FderH7f2TnZ2/V50t1rQeI05JieDB76wmJ98ah5v7ajlk3evYOPu/SYXfRjyE0x3d2z1iP3798dtpwq/4nr149beyc6u34vuVguaRGKKCFeffjhPX3caAJc+8A5/eHOnp8fYDvVcDPkJxqpgTnZ2dtx2qvArrlc/bu2d7Oz6vehutaBJJuaCGWN56calnDl3Mve+8z5feTzf9Q2TQz0XSU8wIjJNRE4TkY/2bMn6NBgGG2NyM/jDFxfznTMPY+XOOj55V+KPsR1KJHXLqoj8Cvg8UMSHlewUeDvJcfmGVcGpvjdAWt0QmQr8iuvVj1t7Jzu7fi+6Wy1o/IgpIiw7ZgxnHncYN/y1gMseXM23zjqKGz5+pG2NmaGei2RXMBcTvnr3k6p6YWRLqlSDiPxGRIpFZLOI/FNExkb13SwiJSKyXUTOdeMvPT32JrWxY8fGbacKv+J69ePW3snOrt+L7lYLGj9zcdy0Mbxw41KWLZjGnct3cPlDa6jeH3s9lpe4gzUXyU4wuwC/C6i+BhynqicAO4CbAURkHnAZcCxwHnCfiDje4trV1RWj7dmzJ247VfgV16sft/ZOdnb9XnS3WtD4nYu8rBHc+fkF3PG5+WytauT8u1bw7y3vJxx3sOYi2ZsdnwHmA68D7T26qt6Y1Kg+9P9p4LOqeoWI3BzxfXuk7xXgFlVdHc+HudAucfuBfnGXnwSZi7K6g9z4xLsUVjVy+UmH8eNPHUNu5ghPcQd6LoIq1/Ac8HPgHXo/l9ovrgZejryeBkRXAKrEpsC4iFwrIvkikl9VVUVdXR01NTVUVVXR0NDA+vXraW1tpaioiFAoxMqVK4EPb+wqKCggFApRVFREa2srpaWlNDQ0UFVVRU1NDXV1dZSXl9Pc3ExxcTFdXV1s2rSpl4+en4WFhbS3t7Nz506ampqoqKigtraW2tpaNmzYQFNTEzt37qS9vf2Dy7L7+ti0aRNdXV0UFxfT3NxMeXl5r33avHkzpaWlvfapoKDAdp+Kiopc7dOqVavi7tO6deti9qmiooItW7ZY7tOOHTti9mnt2rUx+1RQUEBDQ4OnfUo2T++8845tnioqKlznqbi4OCZP2Z1N/H7ZTK48eSpPrqvggrtW8PyKdz199goKCuLuU/TvNjpP27Ztc/3Zs/KxatWquJ+9njzZkdQKJlFEZDlwiEXXj1T12YjNj4AlwCWqqiJyL7BaVf8c6X8EeElVn4kXy9zsaBhIvFNSx7ef2sS+g+1879y5fPX0I0hLosj4QMHXFYyIPBX5WRg5GNtrc3q/qp6tqsdZbD2Ty5eBTwFX6IczYCUwI8rNdGKfyRSDKdeQuP1gLRGQCKnKxWlHTuTlby3lrKOn8N8vFXPRncttDwB78TtQc5HozY6HqmqNiMy06lfV9xIeULiI1R3AGaq6N0o/FvgrcBIwlfBxnzmqGvdBb2YFYxiIqCpPb6jk1ue2kp4m/Pzi41i2YEA9UswTft/sWBP5+Z7VluRY7wFGAa+JyEYReSASayvwFOFrbv4NXO80uYBZwSRjP1j/ayZCqnMhInxuyQx+fdY45kwZxbee3MiNT7z7wU2TXv0O1FwkexbpFOD3wDFAJpAOHFTV0UmNykfMCsYw0OnqDnH/m6Xc9fpOJuZl8ZtLT2DpnAFV2tqRoM4i3QNcDuwEcoCvEp5wBgxWBad6ziTYtVOFX3G9+nFr72Rn1+9Fd6sFTX/mYkR6Gt88aw7/+MZp5GWP4IuPrOMnz26hpaOrl10icfs7F8muYPJVdYmIbI5cGIeIvKOqpyU1Kh8xD15L3H6gP+zLTwZKLto6u/nNK9t5ZGUZh08cyW8vnc/imeMGfC6CWsG0iEgmsFFEfi0iNwEjk/TpK+3t7TFaSUlJ3Haq8CuuVz9u7Z3s7Pq96G61oBkoucjOSOfHn5rHX685mY6uEJc+8A6/fLmYou07E4rb37lIdgUzE9hD+PjLTcAY4D5V7Z+/WAsWLVqkPRdo9dDc3ExeXp5tO1X4FderH7f2TnZ2/V50t1rQDMRcHGjr5LYXt/Hk+t0cOSmXOz+/yPZxtv2di6AeW/KeqrapapOq3qqq3x5IkwtY34tUV1cXt50q/Irr1Y9beyc7u34vulstaAZiLkZlZ/DLz5zAH686kf0HO7j4vlXc8ep2OrpiKwQM1FwkeqHdMhG5Pqq9VkR2RbbPJjUin7EqONV3Ru6P1Yufcb36cWvvZGfX70V3qwXNQM7FmXMn89TV81k2fyp3/18JF92zki1Vja789HcuEl3B/D/C9yH1kAWcCHwM+HpSI/IZq6+AnZ2dcdupwq+4Xv24tXeys+v3orvVgmag5yInXbnj8wt4+EtL2Hewg4vvXcUdr+34YDUzUHOR6ASTqarRNx6uVNV9qlrBADvIa0XfIlRWRan6Yxyp8uPW3snOrt+L7lYLmsGSi7PnTeG1mz7KRfOncvfrO7nonpVsrtw/YHOR6AQzLrqhqjdENQfUFUJWX5Fyc3PjtlOFX3G9+nFr72Rn1+9Fd6sFzWDKxdjcTO74/AIe+fISGlrCq5mH1u2lrTP2wvb+zkWiE8xaEbmmrygiXwPWJTUin7E6yFtfXx+3nSr8iuvVj1t7Jzu7fi+6Wy1oBmMuzjpmCq/edAaXLp7BY2ur+OTdK8gvd/fZTlUuEr3ZcTLwL8JFpnrOAS8mfCzmYlXtnxJxFlidpm5tbSUnJ8e2nSr8iuvVj1t7Jzu7fi+6Wy1oBnsulm+p4qcvbKe6sZUvnzqL7507l5FZI1KWC79vdqyNXK37c6A8sv1MVU8dSJMLWD/ZsaysLG47VfgV16sft/ZOdnb9XnS3WtAM9lxMTWvk1Zs+ypdPncXjq8v5xJ1v8+b22n7PRb8UnEolVjc7hkKhXsdm+rZThV9xvfpxa+9kZ9fvRXerBc1QysWG9+r5f3/fTOneg3x64VR+8qljGTcy09FfMrkI6laBAY9VuYaNGzfGbacKv+J69ePW3snOrt+L7lYLmqGUi8Uzx/PijUv55seP5LmN1Zx9x1s8u7Gq1yUbqcrFsFzBGAzDheL3m/jBM4Vs3L2fM+dO4hefPp5pY/0/vmVWMFGYglOm4FRQMQdaLg5W7eSZr5/GTy+cx9qyes654y0eXVnGOot/ugOu4NRgwKxgDIYwlQ0t/Ne/tvDm9r2cMH0Mv7zkBOZN9ac2nFnBRNH3tHXfdqrwK65XP27tnezs+r3obrWgGQ65mD4ulz9eeSJ3X76Q9/Ye4MJ7VnL7y9to7ei29ZHs72VYrmDMWSRzFqkvwy0X9c1t/PLf23kqv5IZ43P4xcXHs/TICeYsklesHt5dXFwct50q/Irr1Y9beyc7u34vulstaIZbLt6v2MWvPzufJ689hYz0NL786DquevBt9h5od/V+twzYFYyIfBf4DTBJVetERIC7gE8CLcCVquq4fjNX8iZub67kDd7PQMhFe1c3979Zyr1vlJCTkc4Pzj+Gy06cQVqa9M+VvEEjIjOAc4CKKPl8YE5kuxa4340vq9vNq6ur47ZThV9xvfpxa+9kZ9fvRXerBc1wzkXWiHT+8+yjeOiSWcybOpof/rOQS/+wmu3vH0j69zIgJxjgTsI1Z6KXV8uAP2mYNcBYETnUyZFVweLx48fHbacKv+J69ePW3snOrt+L7lYLGpMLmH/EoTxxzSn89tL57NrbzAV3r+CNithbbbww4CYYEbkIqFLVvs9LmAZE16CpjGhWPq4VkXwRyd+zZ0/Mw7rLysp6PVR969atQDAPVe95UHyyD1WP9wDy2tpaTw+K379/v6t92rZtW9x9Ki0ttdynuro6y31qaWmJ2aeSkpKYfaqsrPzgoepu9ynZPBUXF/uSpwMHDjg+KD6Rz15lZWXcfYr+3UbnqbGx0fU+tbS0UFBQwGcXT+eOs8dxyaJp5LbtjfvZ69knW1Q15RuwHNhisS0D1gJjInblwMTI6xeB06N8vA4sdop1wgknaF+qq6vjtlOFX3G9+nFr72Rn1+9Fd6sFjclFcrkA8tXi7y/1DwMCVPVsK11EjgcOBzaFj+kyHSgQkZMIr1hmRJlPBxy/IEb89CIjIyNuO1X4FderH7f2TnZ2/V50t1rQmFwEk4sBexYJQETKgSUaPot0AXAD4bNIJwN3q+pJLnw0En7yZDRjgOiqyROB/ni0QN9xpMqPW3snO7t+L7qV1h/5MLlILhczVTW2mqXVsmagbPT+iiTAvUApUEh44nHj40EnDZvlXQr2L2ZsqfDj1t7Jzq7fi26jpTwfJhfB5KJfviK5RVVnRb1W4Hp7a1ued6n1B36Nw6sft/ZOdnb9XnSTC3/sBmQuBvRXpFTR84zt/h6HIYzJx8Ah2VwMuNPU/cSD/T0AQy9MPgYOSeXCrGAMBkNgmBWMwWAIDDPBGAyGwDATjMFgCAwzwRgMhsAwE4wDInKEiDwiIn/v77EMR0RkpIg8LiIPicgV/T2e4UwifwtDeoIRkUdFpFZEtvTRzxOR7SJSIiI/iOdDVXep6leCHenwwmNeLgH+rqrXABelfLBDHC+5SORvYUhPMMBjwHnRgoikE77l4HxgHnC5iMwTkeNF5IU+2+TUD3lY8Bgu80L4ptaeMh3dKRzjcOEx3OfCMwP6VoFkUdW3RWRWH/kkoERVdwGIyJPAMlW9HfhUakc4PPGSF8J30U8HNjL0/yGmHI+5KPLqfzgmzHXhKgARmSAiDwALReTmoAc3jLHLyz+Az4jI/Qyc+5aGOpa5SORvYUivYGyILRDTuzRn7w7VfcB1wQ3HEMEyL6p6ELgq1YMZ5tjlwvPfwnBcwSRUuMoQOCYvAwffcjEcJ5j1wBwROVxEMoHLgOf6eUwGk5eBhG+5GNITjIg8AawG5opIpYh8RVW7CFfGewXYBjylqlv7c5zDDZOXgUPQuTB3UxsMhsAY0isYg8HQv5gJxmAwBIaZYAwGQ2CYCcZgMASGmWAMBkNgmAnGYDAEhplgDAZDYJgJxmAwBIaZYAwGQ2CYCcZgMASGmWAMBkNgmAnGYDAExpAvODVx4kSdNWtWfw/DYBjSbNiwoU5VJ8V0qOqQ3ubNm6d92bhxY9x2qvArrlc/bu2d7Oz6vehutaAxuUguF0C+Wvz9DflyDYsXL9YNGzb00rq6uhgxIrx46+oO0dHZRW52ZsrHFj2OVPpxa+9kZ9fvRXerBY3JRXK5EJENqrqkrz7kj8G0t7fHaCUlJR+8Xl/ewLxbXmPhz17lE3e+xRUPr+Gmv23k9pe38cdVZbxcWENBRQPvN7bRHfJ3Mo4eRyr9uLV3srPr96K71YLG5CKYXAz5YzCZmbErk+nTp3/weurYbG44YxaN7UrtgTb2HmhnXVk9ew+009Ed6vW+EWnClNHZTBubw/RxkW18LjPG5TJzQi6HjM4mLc2qXrI10eNIBq9+3No72dn1e9HdakFjchFMLob8BNPV1RWj1dXVkZeXB8DMCSP57DEj6XsgWFWpP9jB+01tvN/YRk1jG9X7W6lpbKOqoZU1u/ZR09RG9DfMzBFpzByfy8wJIzli0khmTxrJ7El5zJ6Ux7iRsRNd9DiSwasft/ZOdnb9XnS3WtCYXASTiyE/waSlxX4L7PsLs/oFiggT8rKYkJfFsVPHWPru6ApR09jK7vpW3qs/yHv7WiivO0j5voO8vXMvHV0froAm5mUyZ/Io5h4yijlT8jjm0NFMysxJcu/sx++HvZOdXb8X3a0WNH7FNLnozZCfYKwOYnd2dsZtuyVzRBozJ4xk5oSRnM7EXn3dIaWqoZXSvc2U7m1m555mtu85wNP5uznYEX4CqgCHTxrJsVPHcNzU0ZwwfSzHTx9DXpa3tHgdv1t7Jzu7fi+6Wy1o/IppctGbIT/BWBEKheK2/SA9TThsQi6HTcjlzKM/fMR1KKRU7W9lW00Ta7dXsbtZKXivgec3hR87IwJHTspj4WFjWTxzHItnjmf2pJGI2B/b8Tp+t/ZOdnb9XnS3WtD4FdPkojdDfoKx+oqUm5sbtx0kaWnCjPG5zBify4lTsxg3bhwA+5rb2VzVyObdjWyq3M9rRXt4Kr8SgHG5GZw4azynzp7AabMnctSUvF4Tjtfxu7V3srPr96K71YLGr5gmF70Z8hOM1UHe+vr6D/6wrdqpIjruhLwszpw7mTPnhlc7qkrp3oNseK+e/PIG1pbV82rRnrDtyExOO3IiZxw1iTOOmkSTx/G73V8nO7t+L7pbLWj8iunVz1DPxZC/0G7RokVaUFDQS2ttbSUnJ8e2nSq8xt1d38LqXftYXbqPFTvrqGsOX+Mz79BRnHXMFM499hCOnTo67tcpL3Gd7Oz6vehutaDxK6ZXP0MlF8P2QruOjo4YraysLG47VXiNO2N8Lp9bMoM7P7+AdT88ixe+eTrfO3cu0t3BvW+U8Knfr+T0X73Brc9vZV1ZPSGbCwPdxnWys+v3orvVgsavmF79DPVc2K5gRKTJ6b1AjaoeldQIAmbJkiWan5/fSwuFQr2OzfRtp+T+HXIAABtsSURBVAq/4oZCIRpaOnl9Wy2vbH2fFSV1dHSFmDY2hwvnT2XZgqkcc+hoz3Gd7Oz6vehutaDxMxde/AyVXCSygilV1dFxtlHAQcfI/UxLS0uMtnHjxrjtVOFX3I0bNzIhL4vPnTiDR648kXd/fA53XbaAuYeM4uEVuzj/rhWc97u3eWxVGY0tna7jOtnZ9XvR3WpB42cugrAfrLmIt4I5QlV3xX2zC5v+xmoFM5zY19zOS4U1PL2hks2VjWSNSOOTxx/KFScfxuKZ4xyP1xgMbvC8gnEzcQz0yQWsVzB9767u204VfsWN52dCXhZfPHUWz91wOi/eeDqfWzKDVwqr+ewDq7n43lU8t6mazm7rax2cxmfX70V3qwVNKnKRjP1gzYXjWSQROQD0NWoE8oHv+D3JiMgtwDXA3oj0Q1V9KdJ3M/AVoBu4UVVfcfI33FcwVrR0dPGPgioeXVnGrrqDTB2TzdWnH84VJ88kJzO9v4dnGIQkcxbpDuB7wDRgOvBd4CHgSeBRPwcZxZ2quiCy9Uwu84DLgGOB84D7RMTxr8FqBdP3tHXfdqrwK65XP8VbNvOFU2ay/Ntn8PCXljBjfC6/eHEbS3/9fzy8YhetkVsZnPza9XvR3WpB01+5cGs/WHPhZgWzVlVP7qOtUdVTRGSTqs5PagSx8W4BmlX1t330mwFU9fZI+xXgFlVdHc/fcDmLlOyZi/zyeu5cvoNVJfuYNCqLb3xsNpefOIPsTPtrMfv7zIWfDKRcJGLX37lIZgUTEpHPiUhaZPtcVF9QV+ndICKbReRREem5jHAasDvKpjKixSAi14pIvojkV1ZWUldXR01NDVVVVTQ0NLBmzRpaW1spKioiFArx5ptvAh9+3ywoKCAUClFUVERrayulpaU0NDRQVVVFTU0NdXV1lJeX09zcTHFxMV1dXWzatKmXj56fhYWFtLe3s3PnTpqamqioqKC2tpba2lrWrVtHU1MTO3fupL29ncLCQksfmzZtoquri+LiYpqbmykvL++1Txs3bqS0tLTXPvX857Hap8LCwph9mpUX4razD+HxL81n6kjh1ueL+NgvX+WN4lrbfXrnnXdi9qmiooJNmzZZ7lNxcXHMPq1atSpmn9avX09DQ4OnfUo2TytWrLDNU0VFhes8FRUV2ebJap/cfvbWr18fd5+if7fRedqyZYvrz56Vj7fffjvuZ69nn+xws4I5ArgLOJXwhLIGuAmoAhar6sq4Dqx9LgcOsej6UcR/XSTWz4FDVfVqEbkXWK2qf474eAR4SVWfiRdrKF3J65cfN/ZvFNdy6/NbKd/XwhlHTeLHnzqGIyePcuXHXMlrruTtwXEFo6q7VPVCVZ2oqpMir0tUtTWRySXi82xVPc5ie1ZV96hqt6qGCB/rOSnytkpgRpSb6UC1Uyyr282rq6vjtlOFX3G9+nFjf+bRk3lg2Qz+64JjKKho4Py7VnDX8p29atzY+fGiu9WCZiDnwo3dQM2F4wQjIkeJyOsisiXSPkFE/iupqPHjHRrV/DSwJfL6OeAyEckSkcOBOcA6J39WBYvHjx8ft50q/Irr1Y9b+ymTJvDVpUfwxnc/xiePP5Q7l+/gontWUljZGNePF92tFjQDPRdOdgM1F26OwTwE3Ax0AqjqZsJnc4Li1yJSKCKbgTMJfx1DVbcCTwFFwL+B61W128mZVT2LvmeWrM40pQK/4nr149a+x25iXhZ3XbaQh760hPqDHVx83yp+80oxTQesL+S282+lu9WCZrDkwmt/f+fCTbmGXFVd1+eKz9gaCD6hql+M03cbcFuyMfoeFe+PM0h+xvXqx619X7tz5k3hpFnj+fmLRdz7RilvFY/kwS9PYOrYnLjvi6e71YJmsOXCbX9/58LNu+tEZDaRM0Yi8lmgJqmoKcTqUviMjIy47VThV1yvftzaW9mNyc3gt5fO5/eXL6RsXysX3L2CN7bXuvJvpbvVgmYw5sJNf3/nws0Ecz3wB+BoEakC/hP4elJRU4jVV6Tm5ua47VThV1yvftzax7O7cP5UHrjkCKaMzuaqP67nN68Uf/DcKLv3WelutaAZzLmI19/fuXD8ihS5FeBsERkJpKnqgaQiphirg7wTJ06M204VfsX16setvZPdwiOn8a9jj+TW57dy7xul7NzTzF2XLbR9n5XuVguawZ4LL79zOz2IXNiuYETk29Eb8DXgmqj2oMCq4FRlZWXcdqrwK65XP27tnewqKyvJzkjn9ktO4JYL57F82x4ue3A1hTvLXftzqwXNUMhFsnoQuYhXruGnkZdzgRMJnyYGuBB4W1W/mlTkFOH0bGqrdqoYas9Dfq1oDzc+8S4TRmby2NUnxlyYZ55Nnbj9kHs2tareqqq3AhOBRar6HVX9DrCY8EVug4K2trYYbevWrXHbqcKvuF79uLV3suvbf868Kfzta6fQ3NbOJfe9Q0FFg6M/t1rQDLVcJKIHkQs3twoUA/NVtT3SzgI2qerRSUVOEaZcQ+rZXd/CFx5Zy77mDh676kSWzOqfCxkNqSOZmx3/F1gnIrdEvjatBR73e4BBMdwLTiVjn2iRo9qybfzt2lOZNCqLLz26jrW79tnam4JTw7zgFICILAKWRppvq+q7SUVNIWYF03/UNrVx+UNrqN7fxqNXnsipsyf095AMAZHUY0tUtUBV74psg2ZyAbOCScY+2f+ak0dn88S1pzB9XA5XPbaO//13bOkes4IZpisYESlQ1UVx3+zCpr8xK5j+p665nc/9YTV7D7Tz1NdO7fUIFcPQIJEVzDGRok92WyHhM0yJDOZSEdkqIiERWdKn72YRKRGR7SJybpR+XkQrEZEfuI3V2toao/UUDLJrpwq/4nr149beyc6uv68+MS+LP119EpmifOnRdeyub7G19TI+PxkuuYinB5GLeCuYmS7e362qnq/EEZFjgBDhWxC+q6r5EX0e8AThGjBTgeVAz4PddgDnEK4Lsx64XFWLnGJZXQfT3t5OVlaWbTtV+BXXqx+39k52dv12+pbd+7ji0Q2My83g6etOY9KoLEvb/sjHcMuF29+72/Elch3Mey62hC7zU9VtqrrdomsZ8KSqtqtqGVBCeLI5CSiJFL/qIFxwfJmbWFZX8lZUVMRtpwq/4nr149beyc6u307Paqvn0StPZE9TO1f+cR0H2jotbfsjH8MtF25/78n+Xgbas6nt6u66rsfbF6urEKdMmRK3nSr8iuvVj1t7Jzu7/nj64pnjuO8Liyh+/wA3/PVdJkyanPD4/GQ45iJRzQuBTTAislxEtlhs8VYeVo8Z1Di6XewPin6///77MUWKd+zY0avwct9C0Kkq+l1aWupL0e+qqipPBbJ7Yjvtk914evZp+/btlgWya2pqLPdp//79bNiwgTPnTua6xWN4a8defvC3fA4cONBrn8rKylJe9HvLli2+FP3et2+fp6Lfbj97ZWVlcfep53fbN0979+51/dmz85FM0W9U1XEDZgJnR17nAKPcvM+F3zeBJVHtm4Gbo9qvEC42firwip1dvG3+/Pnalz179sRtpwq/4nr149beyc6u361+24tFOvP7L+gjK3YlND4/Ge658KJZAeSrxd+fm5q81wB/J3xAFsL3If3L6X0JYld3dz0wR0QOF5FMwiU7n4vjxzAI+MF5R3PG7LH8/MUilhft6e/hGALAbcGpjwBNAKq6E4j94uwBEfm0iFQSXpm8GHmImm3dXVXtAm4gvKLZBjwVsXXEquBU3xsgrW6ITAV+xfXqx629k51dv1s9LU344cencdzUMdz45LtsrW70ND4/Ge658KJ5wc0E067hMzcAiMgIknzgmqr+U1Wnq2qWqk5R1XOj+m5T1dmqOldVX47SX1LVoyJ9ruvypqfHPl127Nixcdupwq+4Xv24tXeys+v3oh86aTyPfHkJY3Iy+Orj+dQeaOuXfJhcuNe84GaCeUtEfgjkiMg5wNPA80lFTSFdXbH1yffs2RO3nSr8iuvVj1t7Jzu7fi/6nj17mDw6m4e+tIT9LZ1c86cNVFSlvuSzyYV7zQtuyjWkAV8BPkH4bM4rwMPq9MYBgrnQLnH7VF/c9crW97nuzxv45LFTuOeKxZYF24PC5CLFF9r1oKohVX1IVS8FrgXWDpbJBay/Q+7YsSNuO1X4FderH7f2TnZ2/V70aO3cYw/h/517NC9u2cNdr+90NUa/MLlwr3nBzQrmTeAiwgXCNwJ7gbdUdVDU5TU3Ow4uVJXvPr2ZZwoqueuyBSxb4Op6SkM/k0y5hjGq2gRcAvxRVRcDZ/s9wKAw5RoSt++PEgEiwqWzOjnp8PF87+nNHxSrChqTi34qOBW5a/oThKvY/UhV14vIZlU9IanIKcKsYAYn+1s6+Mz971DX3MEzXz+NIyfn9feQDHFIZgXzM8IHdksik8sRQGq/ICeBWcEkbt+f/zXH5mby2FUnkZEuXPnHdew90O5ixIljctGPJTMHM2YFM7jZtHs/lz24hqOm5PHEtaeQm5n6x8sYnEl4BSMi2SJyvYjcJyKP9mzBDNN/rApO9dxgZtdOFX7F9erHrb2TnV2/F91Jmz9jLHdfvpDCqka+9r8baO/qjjumRDG5cK95wc0xmKeBYuA/CH9dugLYpqrfSipyijAPXkvcfiA97Ovp/N187++bOfuYKdz/hUVkpPtbCMDkIsUPXoviSFX9MXBQVR8HLgCOd/G+AUF7e+x395KSkrjtVOFXXK9+3No72dn1e9HdapcumcHPlx3L8m17uOlvG+kO+fvV3uTCveYFN1NtZ+TnfhE5DngfmJVU1BSSmZkZo02fPj1uO1X4FderH7f2TnZ2/V50txrAF0+dRUtHN7e/XExORjq/+swJpKX5c7WvyYW3XLjFzQrmQREZB/yYcImEIuDXyQS1K/otIrNEpFVENka2B6L6FotIYaTo993i8jpyq3uR6urq4rZThV9xvfpxa+9kZ9fvRXer9fC1M2bzrbPm8PSGSr7/zGa6umPvlk8EkwvvuXCD4wpGVR+OvHwLOCKpaB+yhfCFe3+w6CtV1QUW+v2Eb1VYA7wEnAe8bGHXi7S02Dk0Ly8vbjtV+BXXqx+39k52dv1edLdaNP959hwA7np9Jw0tndzzHwvJzoi9a94LJheJ5cIJxwkm8izqzxD+WvSBvar+LNGgqrot4tuVvYgcCoxW1dWR9p+Ai3ExwVgdxO7s7IzbThV+xfXqx629k51dvxfdrRaNiHDTOUcxMS+Tnzy3lS8+spaHv3wiY3Iy4r4vHiYXieXCCTdfkZ4lXMG/CzgYtQXF4SLyroi8JSI9j6udRrjQdw9xi35H1+Tdu3dvTA3RmpqaXnVRe2qKpromb21trS81eZuamjzVr21ra3O1T2VlZXH3qSd23/q1zc3NlvsUCoVi9qmysjJmn+rq6lzV5D02q567P7+AdysauPT+VazZXJxwnsrLy32pydvZ2empJq/bz17078Zqn6J/t4l+9qx8lJWVBVuTF9jiZGPzvuWEvwr13ZZF2bxJ75q8WcCEyOvFhJ8kMBo4EVgeZbcUeN7NOBYsWBBTP7S+vj5uO1X4FderH7f2TnZ2/V50t1o8Vu7cq/N+/LIu/vmr+k5Jnaf3JhrTLz9DJRckWpMXeEdEPJ+WVtWzVfU4i+3ZOO9pV9V9kdcbgFLCD16rJFwLuIfpQLWbcVgd5K2vr4/bThV+xfXqx629k51dvxfdrRaPjxw5kX9d/xHG5GRwxcNruO/NEkIeT2ObXPiTixisZp3whEQhsJnwWaNOYHukXQhstnufl43YFcwkID3y+gigChgfaa8HTiFc9Opl4JNuYixcuDBmtm1paYnbThV+xfXqx629k51dvxfdreaGA22dev1fNujM77+gX3lsve4/2OH6vSYXyeWCBFYwnwIuBM4HjiR8R/WFUXrC2BX9Bj4KbBaRTYSfZHCdqvZMoV8HHib8tMdSXBzgBesnO/YcW7Brpwq/4nr149beyc6u34vuVnNDXtYIfn/5Qn564Tze3F7LOXe+xb+3uCu/aXLhby56iPds6mzgOsKTSyHwiIar+w8qrG52DIVCvU5f922nCr/ievXj1t7Jzq7fi+5W88qWqka+/8xmtlY38Yl5U/jZsuM4ZEy2rb3JRXK5SORWgceBJYQnl/OB/3GMMgCxKtewcePGuO1U4Vdcr37c2jvZ2fV70d1qXjlu2hievf4j3Hz+0by1Yy/n3PEWD6/YRVun9c2SJhfB5CLeCqZQVY+PvB4BrFPVRUlF6wdMuQbDe/sO8uNnt/L2jr0cMjqbG8+aw6VLpvt+w+RwJpEVzAdX2AzGr0Y9mIJTidsP1iJHfZk5YSR/uvok/nrNyUwdm80P/1nI2Xe8xZPrKmjt6PY1pslFb+KtYLr58II6IfxM6pbIa1XV0UlFThFmBWOIRlV5Y3st//PqDrZWNzEmJ4NLF0/nC6fMZNbEkf09vEGL5xWMqqar6ujINkpVR0S9HhSTC1ivYHquCLVrpwq/4nr149beyc6u34vuVvMLEeHjR0/hhW+ezt+uPYXT50zksXfK+dhv3+Q/HlrDn9e8R11z4uU5TS56MyxLZpqzSEPjzIVf7Glq469r3+P5TTXsqjtImsApR0zgnHlT+MiRE5kzOc/1fXPDNRfJFJwa1Fg9eK24uDhuO1X4FderH7f2TnZ2/V50t1qQTBmdzbnTunn9O2fw8reWcv2ZR/J+Uxu3Pl/EJ+58mxNvW843n3iX/11dzrsVDbZnosDkoi9DfgWzaNEi7bvMa21tJScnx7adKvyK69WPW3snO7t+L7pbLWisYu6ub2H1rn2sLt3HqpI6aiNPNkhPE+ZMzuPoQ0Yxa+JIDp84klkTRnLY+FyypIvc3Nyk4iZil0gusrKyaevqpqWjm9aObuoPHETTMmjt6Ka1s4vWjhCHj8tg3oyJjuOzW8EM+RLtVrebV1dXM3v2bNt2qvArrlc/bu2d7Oz6vehutaCxijljfC4zxufyuSUzUFWqG9sorGxka3UjhVWNrC9v4NlN1UT/j85IFw4Zk82UUdlMGpXFmJwMxuRkMDqy5WSkk52RRk5GOlkj0tnzfjWHzZhOepqQLoLyYYmRkEJIla5uZXdVFZOmHEJnV4iO7hAdXeGtvStEe1c31XvqyB01hrbOEK2d3bR1hieNfY0HkIws2jo/nEhaO7tpae+krct5cfH1Uya7mmDsGPITjFXB4vHjx8dtpwq/4nr149beyc6u34vuVgsap5giwrSxOUwbm8N5xx3ygd7W2c17+1ooqztIZUMLu/c20tgBe5raKaltprG1k/2tnXR0xau8t9vlKOPbjUjbF57AMsOTWPaIdDLThVGZMGFkJtPHpZOTMYLczHQk1MnYUSPJzUwnNzOdnIx0Qh1tTBo/muyMdHIzR4R9aewhBi8M+QkmFIpNbEtLC+PGjbNtpwq/4nr149beyc6u34vuVguaRGNmZ6Qz95BRzD1kFABVVVVMmxZbqqits5umtk7aIyuM1o5u2rtCvF9by7jxE+gOKd0hRQQECV8MAmSkpZGeJjTU13HIlMlkpqeROSKNzPQ0MkakkT0ijeyMdOpq32fmjNj6uXbjsdLD2pQ+WpPn30k0Q36CsaLvUfH+OIPkZ1yvftzaO9nZ9XvR3WpBE3QusjPSLct61mS3c+ihkxz91uR2cOih9hNg0wjrkqH9nYshfxbJ6vRiRkZG3Haq8CuuVz9u7Z3s7Pq96G61oDG5CCYXQ/4skog0Evss7TFAY1R7ItAfjxboO45U+XFr72Rn1+9Ft9L6Ix8mF8nlYqaqxi7FrIrEDKUNeNBJw6ZYTn+MLRV+3No72dn1e9FttJTnw+QimFwM+a9IwPMutf7Ar3F49ePW3snOrt+LbnLhj92AzMWQ/4rkBhHJV4uLhAz9g8nHwCHZXAyHFYwbHuzvARh6YfIxcEgqF2YFYzAYAsOsYAwGQ2CYCcZgMASGmWAMBkNgmAnGYDAEhplgHBCRI0TkERH5e3+PZTgiIiNF5HEReUhErujv8QxnEvlbGNITjIg8KiK1IrKlj36eiGwXkRIR+UE8H6q6S1W/EuxIhxce83IJ8HdVvQa4KOWDHeJ4yUUifwtDeoIBHgPOixZEJB24l/DD5OYBl4vIPBE5XkRe6LNNTv2QhwWP4TIvwHQ+LIRiX6vSkCiP4T4XnhnS5RpU9W0RmdVHPgkoUdVdACLyJLBMVW8n/NxtQ8B4yQtQSXiS2cjQ/4eYcjzmosir/+GYsGn0Lg1WGdEsEZEJIvIAsFBEbg56cMMYu7z8A/iMiNzPwLlvaahjmYtE/haG9ArGBqvnT9hezqyq+4DrghuOIYJlXlT1IHBVqgczzLHLhee/heG4gqkEZkS1pwPV/TQWw4eYvAwcfMvFcJxg1gNzRORwEckELgOe6+cxGUxeBhK+5WJITzAi8gSwGpgrIpUi8hVV7QJuAF4BtgFPqerW/hzncMPkZeAQdC7M3dQGgyEwhvQKxmAw9C9mgjEYDIFhJhiDwRAYZoIxGAyBYSYYg8EQGGaCMRgMgWEmGIPBEBhmgjEYDIFhJhhDShCRWSLSKiIbk/Rzi4h8t4/2BxH5iIVtjohsFJEOEZmYTFxDYpgJxpBKSlV1QV9RwiTzWTwZWNNXVNXWSDxz02Q/YSYYQ1KIyEV9a7SKyNdF5G6H980SkW0ich9QAMwQkX+JyAYR2Soi10bZ/ihSvnE5MLePn2OAHUC2iLwoIptEZIuIfN63nTQkzHCsB2Pwl9uAy/topcBnXLx3LnCVqn4DQESuVtV6EckB1ovIM8AswnfzLiT8eS0ANkT5OB/4N+Gyj9WqekHE15iE98jgG2YFY0gYEZkPpKnqFhGZKSJfj3RlEKeIVxTvqWr0V5sbRWQT4a87M4A5wFLgn6raoqpNxJYNOJfwBFMInC0ivxKRparamMSuGXzCTDCGZFjAh6uJcwhPCBAuFL3JxfsP9rwQkY8BZwOnqup84F0gO9JtOVmJSC4wVlWrVXUHsJjwRHO7iPzE264YgsBMMIZkSAPyIlXoLwFGRb7eXAn81aOvMUCDqraIyNHAKRH9beDTkTNCo4ALo95zJvAGgIhMBVpU9c/Ab4FFCe6TwUfMBGNIhpeAIwhX/H8AOBbIBx5U1QKPvv4NjBCRzcDPiZwVivj5WyTGM8CKqPf0HH8BOB5YFzkN/iPgF4nskMFfTMEpQ0qIPBrjBVU9zkefBcDJqtrpYFcOLFHVOr9iG9xhVjCGVNENjEn2QrtoVHVRvMml50I7wgedQ37FNbjHrGAMBkNgmBWMwWAIDDPBGAyGwDATjMFgCAwzwRgMhsAwE4zBYAgMM8EYDIbAMBOMwWAIjP8P5kB7GaHgf48AAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "P = tf([1, 3],[1, 2, 2, 1])\n", "\n", "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", "\n", "gain, phase, w = bode(P, logspace(-1,1), Plot=False)\n", " \n", "ax[0].semilogx(w, 20*np.log10(gain))\n", "ax[1].semilogx(w, phase*180/np.pi)\n", "ax[0].grid(which=\"both\", ls=':')\n", "ax[0].set_ylabel('Gain [dB]')\n", "ax[1].grid(which=\"both\", ls=':')\n", "ax[1].set_xlabel('$\\omega$ [rad/s]')\n", "ax[1].set_ylabel('Phase [deg]')\n", "fig.tight_layout()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GM= 9.54242509439325\n", "PM= 21.932276766366414\n", "wpc= 2.23606797749979\n", "wgc= 1.4718399190801255\n" ] } ], "source": [ "GM, PM, wpc, wgc = margin(P)\n", "print('GM=', 20*np.log10(GM))\n", "print('PM=', PM)\n", "print('wpc=', wpc)\n", "print('wgc=', wgc)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", " \n", "ax[0].semilogx(w, 20*np.log10(gain))\n", "ax[1].semilogx(w, phase*180/np.pi)\n", "\n", "ax[0].grid(which=\"both\", ls=':')\n", "ax[0].set_ylabel('Gain [dB]')\n", "ax[1].grid(which=\"both\", ls=':')\n", "ax[1].set_xlabel('$\\omega$ [rad/s]')\n", "ax[1].set_ylabel('Phase [deg]')\n", "ax[1].set_yticks([-180, -90, 0])\n", "\n", "ax[0].scatter(wgc, 0)\n", "ax[0].axvline(wpc, ls='--', lw=1, c='k')\n", "ax[0].axhline(0, ls='--', lw=1, c='k')\n", "\n", "ax[1].scatter(wpc, -180)\n", "ax[1].axvline(wgc, ls='--', lw=1, c='k')\n", "ax[1].axhline(-180, ls='--', lw=1, c='k')\n", "\n", "fig.tight_layout()\n", "#fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ナイキスト線図" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "P = tf([1, 3],[1, 2, 2, 1])\n", "\n", "fig, ax = plt.subplots(figsize=(3, 3))\n", "\n", "x, y, _ = nyquist(P, logspace(-3,5,1000), Plot=False)\n", "ax.plot(x, y, color='k')\n", "ax.plot(x, -y, ls='--', color='k')\n", "ax.scatter(-1, 0, color='k')\n", "ax.set_xlim([-2, 1])\n", "ax.set_ylim([-1.5, 1.5])\n", "ax.grid(ls=':')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PID制御器の周波数特性\n", "### 並列表現" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARgAAAD1CAYAAACLI+pkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2dd3wcxdnHv6NiFUu2LMu9yL3igmV65w0toSUhCSUJpEFIDylAIJUkpBBCSQFCeUnykkCAADGmg7EpxlhCsmxZVrFkWcUqlmRJVtfN+8fdKeu92b25stKdvL/PZz878zy7z31ndmc02jIrpJS4cuXKlRNKGG0AV65cjV25HYwrV64ck9vBuHLlyjG5HYwrV64ck9vBuHLlyjG5HYwrV64cU9JoAwghEoHtQJ2U8kIhxHzgn0A2UAB8RkrZbxcjJydHzps3z3FWV65cqZWfn98ipZwS4JBSjuoC3AA8Bmzw5Z8ALvel7wOuDxYjLy9PFhYWSr/8abPNmNeV3T4qn9mm4lIxqpgj5YsHRiufDqMOq1OMdnzxwBjt9gJsl6r2rTKO1ALMBl4DzgY2AAJoAZJ8/pOAl4LFycvLkwMDA8OF9afNNmNeV3b7qHxmm4pLxahijpQvHhitfDqMOqxOMdrxxQNjtNuLVQcz2tdg7gK+D3h8+clAu5Ry0JevBWbpBKqoqAhIG21Pv1XMJfe8SVffYMC+unF1fGabikvFqGKOlC8eGK18Oow6rE4x2vHFA2Ow+nz1/V189N432XfwcEiMZo1aByOEuBBoklLmG82KTZXvMgghrhVCbBdCbG9oaGD8+PE0NDRQV1dHZmYmlZWV5OTkUFJSgsfjYbC3m11NvfzoH28BUFBQgMfjoaSkhJ6eHiorK2lra6Ouro6GhgZaWlqorq4mOzub0tJSBgcHKSoqAiA/34t86NAhAIqLi+nr66O8vJysrCxqampoamqiqamJxMREOjo6KC8vZ+rUqRQXFx+xr3/d1dXF4OAg/f39dHV1UV1dTUtLy3CZ2traqKyspKenZ7hMBQUFzJ49e5hHVabMzMygZTLGMJZp6tSpR5QpLS0toEx9fX3DZfLH8K+LioqClklKGVAmI4e/TL29vQFlSklJCSjT9OnTA8rkXxuPU0dHh+VxMpfJGMuqTCkpKUccJ/+5N3PmzIAydXR0BJRJde51dXVZHidzmYaGhoKWqbu7W1km87lXVVXFg/ntVLf3093eYnnuGTkspRrWjMQC3I53hFINHAC6gf8jzH+Rqqqqhodr/rTZ9qWHtsjFt2yUNQcPaw/9jDF0fGabikvFqGKOlC8eGK18Oow6rE4x2vHFA6Md16slB2TujRvkHc9t12Yj1v5FklLeLKWcLaWcB1wOvC6lvAp4A7jMt9nVwLM68TIyMgLSZts3z5pPgoBfvViqzWmMoeMz21RcKkYVc6R88cBo5dNh1GF1itGOLx4YrbgGhjz84vnd5GanctXxc0LiU2m0r8GodCNwgxCiAu81mYd0dhoYGAhIm23ZqQlcd/pCnt/RwPbqVi0YYwwdn9mm4lIxqpgj5YsHRiufDqMOq1OMdnzxwGjF9bd397G35TBfP3UW0jMUEp9KMdHBSCk3SSkv9KX3SimPl1IuklJ+QkrZpxPD4/EEpM02j8fDdWcsYPqEVH62oQSPJ/hUFcYYOj6zTcWlYlQx6yjY9rHOaOXTYdRhdYrRji8eGFXptsP93P1aOactzuHEuRkh86kUEx1MNJSenh6QNtvS09NJH5fE989fyo7aQ/z7g7qQ4ur4zDYVl4pRxayjYNvHOqOVT4dRh9UpRju+eGBUpf/6QQudvQPc+pEVjB8/PmQ+lcZMB9Pa2hqQNtv8+UvXzmLN7In85qVSDge5bW2MoeMz21RcKkYVs46CbR/rjFY+HUYdVqcY7fjigdGcrmjq5ImCA1x5wlyWTs88or1EJNWV33hb8vLyZHd39/AVbX/abDPmt1cflLk3bpC/e6nU9uq4cR8dn9mm4lIxqph1FGz7WGe08ukw6rA6xWjHFw+M5vTVD78nV/7oBdnS2TtsC4WPWLuLFG1VVVUFpM02Yz4vN5uL1szk/s17qWvv0Yqr4zPbVFwqRhWzjoJtH+uMVj4dRh1Wpxjt+OKB0Zh+4q1dbNrTzOXHTGRyRsqwP1Q+lYS384lvrV+/Xm7bto2EBG9/6fF4SEhIGF77bcBwHqCuvYez79jEuSunc+8VxypjG2Po+Mw2M4MVo4pZR8G2j3VGK58Oow6rU4x2fPHA6E8PDHk4/67NeCS88I1TSR2XNOwHtPmEEPlSyvVm+5gZwRQWFgakzTZjHmBWVhrXnb6A/xTVW962Nu8TzGe2qbhUjCpmHQXbPtYZrXw6jDqsTjHa8cUDoz/99637qGw+zC0fXk7Jzh1H+EPlU2nMjGC2b98e1r7d/YOcfcebTJ2QwjNfOYWEBNXbCq5cjT21He7nzDs2sXr2RP76+eMRIvxzf8yPYIzvRJjf1/CnVe9NpI9L4sYLvLetn1bctrZ710LlM9tUXCpGFbOOgm0f64xWPh1GHVanGO344oExPz+f379aRmfvAB+bLxFCaLWXUHXUj2AAPB7Jx/78DvXtPbzx3TMZnzLq83C5cuWoyho7ueDuLVx5/Fxuu/SYiOM5MoIRQtyjsfw8kt/Qlf/tTmPabDPmjUpIEPz4ohU0dfbxp01HvuJutY+Vz2xTcakYVcw6CrZ9rDNa+XQYdVidYrTji3VGKSXff2wr48cl8u1zloTcXkJRRCMYIcQ+4EdBNrtJSrk87B/RULh3kcy64fFCNhQ38Oq3z2Du5PQjYqkU63do4oHRvYs08oyvlDTypb9u50cXruDzp84Pu70Y5dQ1mN9LKR+1W4D7I/wNLZWWlgakzTZjXqXvn7+MpATBLzfuVsa1+00rm4pLxahi1lGw7WOd0cqnw6jD6hSjHV8sM/YNDvHz50uYMzGZz5yUa8saKp9Sqqfv4m0J50leK/3h9XKZe+MG+XZ5c0AMs2L9Kdl4YHSf5B1Zxj9vqpC5N26QL+/YH5R11J/kFUKkCiGuFkJcLLy6UQixQQhxtxAiJ/LuT1/19fUBabPNmLfSF06dz5zsNH76nxIGhzy2+6h8ZpuKS8WoYtZRsO1jndHKp8Oow+oUox1frDIWV9Rw72vlfGj5VBak9wVsF057CaZI/0X6K3Au8HlgEzAX+APQCfxvhLFDUnZ2dkDabDPmrZSanMgtH17BnsZO/rGtxnYflc9sU3GpGFXMOgq2fawzWvl0GHVYnWK044tVxr8XHaJ/yMOtH1kRtfYSTJF2MCukdxa6y4ClUsqvSilflFLeCkQ+HVYI8s83akybbca8nc5bOY2TF07md6+UcaC1Q+s3rWwqLhWjillHwbaPdUYrnw6jDqtTjHZ8schYuL+d53Y28/lT5zMvZ3xU24udIu1g+gGk9ysA5vFU5NNhhSDj1W5/2mwL4Yo4P7poBR09Azz4XqPWb1rZVFwqRhWzjoJtH+uMVj4dRh1Wpxjt+GKN0eOR/OS5XWSnJ/G1sxYF5fKnQ+VTKdInymYLIe7B+zUAfxpfXutzI9FScnJyQFpl09Wy6RP49Im5/H3rPr5Q38GKmRNsf9PKZsVgZlQx6yjY9rHOaOXTYdRhdYrRji/WGJ8qqKVwfzs/Pn8BmanBucJhs1KkXdT3gHy8n371p/3570cYOyR1dXUFpM02Y15HN5yzhMyURH7y3C7/lxAsf9PKpuJSMaqYdRRs+1hntPLpMOqwOsVoxxdLjB29A/z6xVKOnZvFGbmpyu2j1V6UUt1airclLy9PdnZ2Dt8y86fNNmNeV4+8WSZzb9wgn/mgNsCnime2qbhUjCpmHQXbPtYZrXw6jDqsTjHa8cUS48/+s0vOu2mD3LG/Xfs4+9Oh8OHQber/CCGes1oi7/70VVtbG5A224x5XR2XM8iqWRP55cbdAdNrquKZbSouFaOKWUfBto91RiufDqMOq1OMdnyxwvj2zr08+k41lx83h1WzJ2ofZ386nPZiVqSvCpzhS34MmA783Ze/AqiWUv4gMjw9rV+/Xm7dupWkJO8lpcHBQZKSkobXfhswnNfV4OAgO+o7+dif3uHLZyzkpguWHeEzxzPbzAxWjCpmXT677WOd0cqnw6jD6hSjHV8sMEopueovW9nV0Mkb3z2T7PHjtI+z3wb67cWRVwWklG9KKd8EjpVSfkpK+R/fciVwaiSxQ9WuXbsC0mabMR9K3HVzJ3FZ3mweemsve5u7jvDZcVhxqRhVzLp8ofpjidHKp8Oow+oUox1fLDC+uPMA7+xt5TvnLiF7/DhLFjvWcNqLWVGZrkEIsRv4iJRyry8/H9goHX7J0a9Ip2vQUXNnH2ffsYljcyfx6OeOi2hyHleunFR3/yDn3LmZzNQkNnz9VJISnZ/2yekJp74NbBJCbBJCbML7+ddvRim2lsKdcEo37pTMFL59zhI2lzXz0q4DAfFVHFZcKkZ3wqnQGWN1MqfRZvzD6xXUtffw6eXJR3QuusfZn46pCaeEECmA/wJFqdT8ImM0NBIjGIDBIQ8X/eFt2rv7efWGM9yJqVzFnCqavBNJXbJ2Fnd8Ys2I/a5TE06t86ellH1SyiLf0qfaxkk5PYIBSEpM4OeXHkPDoV7uea085kcHVv5YYnRHMNFjlFLyw2d2kT4uiZsvWBb2cfanR30EI4QoAs7E++SulV6TUqq/CRIljdQIxq8bn9zBUwW1bPzmaSyZljliv+vKlZ2eLazjm/8s5BcfPYarTsgd0d926hrMRP779K7VMmABlCqE2CaEKBJC7BJC/NRnny+EeE8IUS6EeFwIMU4HpLi4OCBtthnzulLtc+MFy8hITeLb//dewBO+5u1VXCpGFXO4fMH8scRo5dNh1GF1itGObzQYt+YXcduG3ayZPZHLj5sblNGp9hIg1dN3I7HgHfVk+NLJwHvAicATwOU++33A9cFi5eXlyd7e3uGnCv1ps82Y15XVPo+9t0/m3rhBPpW/33Z7FZeKUcUcCZ+dP5YYrXw6jDqsTjHa8Y0G461PFw0/savDGO32Qqx9OtbH5X+oJNm3SOBs4Emf/VHgUp14NTU1AWmzzZjXldU+n1o/h2VTUvnF87tp7+633F7FpWJUMUfCZ+ePJUYrnw6jDqtTjHZ8I81YXHuI/9u2n8+cmMuq2RO1GJ1qL2aNWgcDIIRIFEIUAk3AK0Al0C690z8A1KL5Vva0adMC0mabMa8rq30SEgS3Xbyc9p6BI+bwNW+v4lIxqpgj4bPzxxKjlU+HUYfVKUY7vpFkHBzycNPTO5g8fhzfOXepNqNT7cWsUe1gpJRDUsq1wGzgeED1YJ7yKrQQ4lohxHYhxPaGhgZqa2tpaGigrq6Ouro6KisraWpqoqSkBI/HQ1FREe3t7cNXxgsKCvB4PJSUlNDT00NlZSVtbW3U1dXR0NBAS0sL1dXVHDhwgNLSUgYHBykqKgL+e7W9p6GCL522gCe21/JmaQPl5eU0NDRQU1NDU1MTTU1NVFZW0tHRQXl5Oc3NzcP/15o/H1pcXMzg4CC7d++mq6uL6upqWlpahsvU1tZGZWUlPT09w2UqKCgIWiZ/fdiVyRjDyNPc3HxEmfzlMpapr69vuEzmuxFFRUVBy1RWVhZQJiOHXZn27dsXUKaDBw8GlMm/Li4upq+vj/Lycjo6OiyPk7lMxlhWZdq3b98Rx8l/7rW1tQWUqaioSOvc6+rqsjxO/vUvnnyXXfUdfPaYVMRAj22Zdu7cqSyT6tyrra0NKJPqOAW906T6vymcBe9I42TgdP8S4v4/xjvlQwuQ5LOdBLwUbN+8vDzZ2Ng4/P+gP222GfO6stunsbFR9vQPytN/87o84zevy57+wYDtVVwqRhVzpHxW/lhitPLpMOqwOsVoxzdSjPtaDsult26UX3z0fXngwIGQGKPdXnDyGowQ4tfA28Ctvk7ie8B3g+wzRQiR5UunAR8CduN9Cvgy32ZXA89Gg9EppSYn8suPrqL6YDf3vFY+2jiujhJJKfnBv4tJSkjgtkuOidlXV6L1KOqleOfkDeXp3RnAo0KIRLz/qj0hpdwghCgB/un7IuQHwEM6wXp7ewPSKluostvP7ztlUQ6X5c3m/s17WT9VcPbUqbZcKkYVc6R8Vn6zbTQZrXw6jDqsTjHa8Y0E49MFdbxV0cJtl6xk+sRUamqaQmJ0qr2YFa0OZi/eu0DaHYyUcgcQ8ACe9L4weXyoAFlZWQFplS2SuHa+Wz68nDdKm7hzywHOWLuExARhy2BmVDFHymflN9tGk9HKp8Oow+oUox2f04wHu/r4+fMlrJubNfxAXTSPczhsVorWRd5uoFAIcb/xu9RRiq2lxsbGgLTZZsyHE9fON2n8OH588Up2NnTxwOa9tlwqRhVzpHxWfrNtNBmtfDqMOqxOMdrxOckopeSHz+6kq2+QX318NQm+P2TRPM7+dDjtJUCqCzOhLnivlQQs0Yits4zGg3Yqn8fjkdc+uk0u/sFGubvhkJLBitF90C50xqPxQbtnPqiVuTdukH98ozwixrh60E5af5d6xFRWVhaQNtuM+XDiBvMJIfjM8mQmpCXxnSeK6B/0KLlUjCrmSPms/GbbaDJa+XQYdVidYrTjc4rx3cISfvTsLo6dm8W1py2IiNGp9mJWpC87PiGl/KQQohjF8ypSytWRwOlqpF92DKaXdh3gur/l842zF3GD6eEnV67CkZSSz/3v+2zde5CN3ziNBVMyRhvpCDn1sqN/UqkLgYsUy4hpJKZr0PHl5+dz3srpfGzdLP64qZLHX9mqxehO1xA649E0XcPj7+9n055mbjp/mbJzieZx9qdHfbqGWFGsjWAADvUMcP5dm0kfl8jz3ziN1OTE0UZyFafa39rN+XdtZs2cLP7+hROGL+zGkhydMlMIcaIQ4n0hRJcQol8IMSSEsP6oswOKpREMwMS0ZH5z2Woqmw/zsw0lQRndEUzojEfDCKZ/0MM3/vmB9/re0gTLzmVMj2CEENuBy4F/AeuBzwKLpJS3RBxcQ7E4gvHr9hd2c/+be7n78rVcsnZEv6bragzoF8+X8JctVfzxynV8ZPWM0caxlNOTfiOlrAASpfcFxkeAs6IVW0f+FxGNabPNmA8nro7PbDt3eh/rcyfxg6eLeX7L9oDtrNbR4NNlVNXdSDFa+XQYdVidYrTjixbjKyWN/GVLFZ89KZePrJ4RVUan2otZ0RrBbMb7LtGDwAGgAbhGSjkisw47/eG1SD/I1Xx4gA/fvYVpE1J45qunkpqc6H54LYjvaP/w2v7Wbj5yzxbmTk7nqetPJiUpMaqMcfHhNYM+44v1NeAwMAf4eJRia6mioiIgbbYZ8+HE1fGZbRUVFcyYmMadn1pL6YEufvqfXUpGFXOkfKEw2qWdZLTy6TDqsDrFaMcXKWP/oIev/eMDpIQ/XrmOlKTEqDM61V4CpHr6Lt6WvLy8qH/M2xxL12f3UfSfPVskc2/cIJ94v2ZEPiwfDqPOx9qd/mi7LuNof1heJx8O4w+fKZa5N26QG3fUO8YY7faCE0/yCiEuEUJ81ZB/Twix17dcZrdvtNXS0hKQNtuM+XDi6vjMNmP+imMyOWXRZG5+upiXi6qVrKEyBts+VEa7enSC0cqnw6jD6hSjHV8kjA+/VcVf393Hl06bzwWrjryoG01Gp9qLWZH+i/R94DlDPgU4Du+nTK6PMHZIysjICEibbcZ8OHF1fGabMZ81IZM/XZXH/Jzx/OjlWsobOwNYQ2UMtn2ojHb16ASjlU+HUYfVKUY7vnAZX951gNueL+H8ldO5+YLAyR2jyehUezEr0g5mnJRyvyH/lpTyoJSyBhgfYeyQNDAwEJA224z5cOLq+Mw2M8PEtGQe+dxxpCQKrnnkfQ60d1syR8oXLqM5bbWOBqOVT4dRh9UpRju+cBiL9rfzjX9+wJrZWfz+U2uVz7tE+1wMxhpOezEr0g5mkjEjpfyaITslwtghyePxBKTNNmM+nLg6PrNNxTV7Ujq/vnABrYf7+e5zFXT3DyqZI+WLhNGYtlpHg9HKp8Oow+oUox1fqIz7W7v5wqPvMyUzhQevXk/aOPVT306ci3as4bQXsyLtYN4TQnzJbBRCXAdsizB2SEpPTw9Im23GfDhxdXxmm4oLIG9+DvdecSxlzT1c97d8RHJK0N8LlS9SRnM9quo1UkYrnw6jDqtTjHZ8oTDWt/fw2Ye3MTAkeeSa48nJSBkRRqfai1mRdjDfBj4nhHhDCPE737IJuAb4VqRwoai1tTUgbbYZ8+HE1fGZbSouf/pDK6bxndOn83ZFC9c9toPO3oGQGYNtHymj3ToajFY+HUYdVqcY7fh0GXdWH+AT971LS2cfD19zHIum2l/zcPJcVNnCaS8BUt1aCnXB+7G0r/uWs6MRM5QlLy9Pdnd3D98y86fNNmNeV3b7qHxmm4rLzPhcYZ1cePPz8uJ7t8j6g4eixhdNRtU6GoxWPh1GHVanGO34dBjLDnTI9be9LNf+9CVZXNsudTQS56LRFkod4vCEU69LKe/1La9HI2aoqqqqCkibbcZ8OHF1fGabisvMeNGamfzgjCnsbujkige20typP3d6sDJFi1G1jgajlU+HUYfVKUY7vmCMr24v5VMPbGVwaIjHrzuJY2ZNREcjcS4abeG0F7PGzHQN27ZtIyHB2196PB4SEhKG134bMJzXlTGGjs9sMzNYMXo8Ht6pbOVLf93O5Ixx/OHKdaydE3ziZTs+JxjN9aqjUOtQl1GH1SlGOz47xo07D3DTUzuYmDaOv33hOBZMyRwVRp36BP324vjLjqMt/1fzjGmzzZgPJ66Oz2xTcakYCwsLOXVxDj85PQsp4RP3vcNDb1UR7A9AsDJFm1HnN0NhtPLpMOqwOsVox6fi6B0Y4vqH3uRrj33ArIwE/vXlk2jfH9p3tEbqXPSnw2kvZo2ZEUysTtcQjtq7+/nuv3bw6u5Gzlkxjd9etpqs9HGjjeUqTO1t7uKrj33A7oYOrjtjAd89dynJiWPmbztwFIxgYm3CKTsuFaNxnZU+jr98No8fXriCTXuaOP+uLTyVX4vHE/jHwJ1wyp7VKUadCad6+oe4+e9vcuG9b3HgUA8/ODWLmy9Yzo7CD0adMa4mnBptjbURjFE7atv54TM7Kao9xIoZE7j1I8s5eVHOaGO5spHHI3n6gzrueGkPBzp6OXfFNH5y8UpmZqWNNppjGvMjmIKCgoC02WbMhxNXx2e2qbhUjCpmgNWzs/j3V07h7svXcqhngCsffI9rHtnGpj1NDHlk0DKNBGMwhVqHuow6rE4xqvh6B4b49we1XHjvW3z3X0VMm5DCz8+azAOfXc/MrLSYYLRLR6O9mDVmRjBj4S5SsLsfvQND/O871fxl814OHu5nVlYal+XN4pPHzWWWxV9H9y6SM4xGW0l9B//Yto9nCuvp7B1kfs54vvk/i7h4zSxAxgSjOT/m7yIJIeb4ngDeLYTYJYT4ps+eLYR4RQhR7ltPChYLoLS0NCBtthnzurLbR+Uz21RcKkYVs1mpyYl8+YyFvHvz//Cnq9axYMp47nmtglN+9TofuWcLt7+wm7fKW+gdGBo1RpVCrUNdRh1WJxgPdQ/w0Ev53PLvYs747Rt8+J4t/HPbfs5eNpV/fOlEXv/OGSxJ6SAhQYwao8qme5z96XDai1mjNoIRQswAZkgpC4QQmUA+cCne1wxapZS/EkLcBEySUt5oF2v9+vVyy5YtpKV5/4r39PSQlpY2vPbbgOG8rowxdHxmm5nBilHFrKOKhlZe3H2QLeUtFNS0MTAkGZeUwPLpmSydnsnCyWmsmpPNvJzxTM1MISkxYcQZQ61Dld2Oy441Esa+wSEOHOqlpLaVqrY+Shs62XOgk/KmTjwSxo9L5MQFkzlz6RQ+tDSbGdkTAuI5zWjnC/c4+22g316sRjChTVAbRUkpG/DO3YuUslMIsRuYBVyCdz4ZgEeBTYBtBwNQX1/PwoULj0ibbcBwXlfGGDo+s03FpWJUMetIdLfxtbMX87WzF3O4b5BtVa28U9lCSUMHr+1u4onD/cPbJiYIpk9IZVIKzJ06kaz0cUxKT2awu4OFs2cwPiWJQ61NLMqdQ/q4RBob6lg0P5eGuv0sWbiA/TX7WbJwIfv217F08UKE0Ps+T6h1qFuPKlttXR1z582ncl8tc3LnMTDkoX/Qu/QNeugbHKK7f4ju/kG6+obo7hukvWeAqromGDeetu5+Gjt6qT/UG/BE9aysNJZNz+T8Y6YzP72Pj5y4cvh2c2VlJRg6GDvGcI/1SJ2LfhuE3l7MGrUOxighxDzgWOA9YJqv80FK2SCEmKoTIzs7OyCtsoUqu/1UPrPNisHMqGIOlW98ShJnLZvKWcv+W2UVtY009CSwv7WH+vYe6g/1UNPSSVljF+3d/bR1DzDkkfBesyFqrSHtf1y80rf2Pxy2ByEgUQgSEoR3LSBBCISAhASBwPu9bik9JCbsBbw+o6T0kCC8v2EcS0uPB0QVIJEShjweEJXDaUEFQ9KDlOUMSYnHIxmSpXgH5Ht8UfS/rZycKJiUfphJ6eOYOiGF5TMmMGNiGjOzUpmc4iFv0UwmpiUPb9/W1nbEsyxWx13nmOtqpM7FcNisNOodjBAiA3gK+JaUskP3r6IQ4lrgWoCZM2fS2NhIb28vHo+Hrq4uWltbSUhIoKGhgWXLlrFr1y7mz5/P3r17ycvLo6CggLVr11JaWsr8+fOpr68nOzub7u5uEhISSE5Opquri6GhIRobG1m0aBG7du1izZo15Ofnk5eXx86dOznttNMoLi5myZIl1NTUANDZ2UlqaioADQ0NJCYm0tjYSHJyMrW1taxatWp4X/969+7dHH/88VRUVLB8+XJaWlrIyMhgYGAAj8dDeno6ra2tzJw5k6qqKpYtW0ZhYSHTpk2zLdPQ4CALMjJYlJFM8sJ0X5kyGRgYYNGiRezcuZO0CdnsrW1g4dIVvP3edpasWEVJWSVJ41Lp6R9kYMiDRyRyuLePlNR02js6yJyQRWdXFxmZE2g5eJDsyTk0HGhk6tRpHFFsrycAACAASURBVGhsJGfKFJpbWpg0KZvm5hayJmXR29NLUnKy9wKilCQmJdHZ2UFW1iQ6OzvJysri4MGD5OTkcOBAA9OnT+NgSws5OZNpaW4mJ2cy3YcPg5SMSxlHf18fmePHMzjoG6V5PKSmJDPQ18uEjPF0H+5ifu5cDtTtZ8mi+TTW1zFvziy62g8ya1oOg72HycpIY0JqEm3NjSxYsIDGxkbmzp1LWVkZq1YtJj8/n+nZ06ko2UFeXh5FRUWsXLky4Dg1NjbS3d09fJz8596ECROoqqpi3bp1w8d6165dnHzyyZSVlbF69WrLcy8nJ4fa2trhcy8nJ2f4WPvPQf+5V1lZyZIlS2hvb1eee3PnzqW0tJSTTjrJW6bp04djqc693t5ehoaGjiiT+dxbt27dMIelVG9AjtQCJAMvATcYbHvwXpsBmAHsCRYnLy9P1tf/d4Jkf9psM+Z1ZbePyme2qbhUjCrmSPnigdHKp8Oow+oUox1fPDBGu73g5NvU4Uh4hyoPAbullHcaXM8BV/vSVwPP6sRLTk4OSJttxryu7PZR+cw2FZeKUcUcKV88MFr5dBh1WJ1itOOLB0an2otZo3kX6VRgC1AM+Ofm+wHe6zBPAHOBGuATUkrbmW+EEM1AO3DIZ5roS0802ZKBUKdKN8bQ8ZltZgYrRv86J0RGO754YLTy6TDa2ZxmtOOLB0ad+gylveRKKQOnyVUNa+JxAR4wp802LIZxunF1fGabikvFaFiHxGjHFw+MVj4dxiCsjjLa8cUDo1PtxbyMmVcFgP8o0ipbJHF1fGabFYOZ0Qk+K38sMVr5dBiD2UJRNI+zFU8sMTrVXo7QmHhVQFdCiO1S8TBQLMlljI5cxsgVDb6xNILR0QOjDaAhlzE6chkjV8R8R9UIxpUrVyOro20E48qVqxGU28G4cuXKMbkdjCtXrhyT28H4JIS4VAjxFyHEs0KIc0ebRyUhxAIhxENCiCdHm8UoIcR4IcSjvvq7arR5zIrVejMqTs6/5UKI+4QQTwohrtfaKdIHaWJhAR4GmoCdJvv5eN9tqgBu0ow1CXgoxhmfjKU6BT4DXORLPx6rx3wk6i0KjI6cf1FmTNBlHLHKdriSTgfWGSsJSMQ7x8ACYBxQBKwAVgEbTMtUw36/A9bFOONIdDCh8N4MrPVt81isHfORrLcoMDpy/kWLEbgYeAe4Uif+qE/XEA1JKTf75pQx6nigQkq5F0AI8U/gEinl7cCF5hi+ly9/BbwgpYx8tmMHGEdSofDinUBmNlDICP3bHSJfyUgwmRUKo2/CNcfOv2gwAiVSyueA54QQzwOPBYs/lq/BzAL2G/K1PpuVvg58CLhMCPFlJ8EMColRCDFZCHEfcKwQ4man4RSy4n0a+LgQ4s9E6RHzMKXki4F6M8qqDkfj/LOSVT2eKYS4RwhxP7BRJ9CYGMFYSDVzleVThVLKe4B7nMNRKlTGg8BonnxKXinlYeBzIw2jkBXfaNebUVaMo3H+WcmKcRPeKWy1NZZHMLXAHEN+NlA/SixWigdGo2KdN9b54ChjHMsdzPvAYiHEfCHEOOByvJNZxZLigdGoWOeNdT442hhH8qq6g1fC/4H3CwUDeHvfL/jsH8Y783MlcIvLOHZ4Y53PZfQu7suOrly5ckxj+V8kV65cjbLcDsaVK1eOye1gXLly5ZjcDsaVK1eOye1gXLly5ZjcDsaVK1eOye1gXLly5ZjcDsaVK1eOye1gXLly5ZjcDsaVK1eOye1gXLly5ZjcDsaVK1eOye1gXLly5ZjGxIx2OTk5ct68eaON4crVUav8/PwWKeWUAMdozkURrSUvL08WFhZKv/xps82Y15XdPiqf2abiUjGqmCPliwdGK58Oow6rU4x2fPHAGO32AmyXY3U+mPXr18utW7eSlOQdkA0ODpKUlDS89tuA4byujDF0fGabmcGKUcUcKV88MFr5dBh1WJ1itOOLB0ad+jzcN0hmWgoJCaopeo+UECJfSrnebB8z12AqKioC0mabMR9OXB2f2abiUjGqmCPliwdGK58Oow6rU4x2fPHAaEwXlZSxraqVO/+Tz4+f3cmnH3yPE3/5Kmtue436Qz0hMZo1ZkYwmzZtIiMjA4Curi4yMjKG134bMJzXlTGGjs9sMzNYMaqYI+WLB0Yrnw6jDqtTjHZ8scyYlj6ekvoOtuxpoKSxm131HVS1HB7eJiMliYVTxjN3UirzJ6fxmVMWMSUzJSib1QhmTFzkBWhpaRmuTH/abIPQOxhjDB2f2abiUjGqmCPliwdGK58Oow6rU4x2fLHGWNncxWu7G3mtuJaSpl46+7yXC2ZlpbFq1kTOmj+e01bmkjF4iPUrFyGEoLq6GkCrc7HTmOlgjJXrT6tskcTV8ZltVgxmRhVzpHzxwGjl02HUYXWK0Y5vtBk9Hkl+TRvPbj/IO09Ws9c3QpmXncpFa2dywvxsFk8UrJg/E/B2RDk5ObS0JOD9wGn47cWsMdPBDAwMBKRVtkji6vjMNisGM6OKOVK+eGC08ukw6rA6xWjHN1qMNQe7eaqglqc/qGV/aw9JCYKTFk7mmlPmcfayqST2HmLGjBkANDQ0aLFGqjHTwXg8noC0yhZJXB2f2WbFYGZUMUfKFw+MVj4dRh1Wpxjt+EaSccgjeaXkAPe/sYcP6g4jBJyyMIcbzlnCyiwPS+bPHd62rq5NGSua7cWsMdPBpKenB6RVtkji6vjMNisGM6OKOVK+eGC08ukw6rA6xWjHNxKM3f2D/Gt7LQ+/XcW+g93MmpjC985bykePncXMrDQA2traLPd3qr2YNWZuU7e2tgakzTZjPpy4Oj6zTcWlYlQxR8oXD4xWPh1GHVanGO34nGTs7h/kj29UcNLtr/Pj53Yxefw4/nzVOh65bB5fPWvRcOcSjNGp9hIg1dN38bbk5eXJ7u7u4acK/WmzzZjXld0+Kp/ZpuJSMaqYI+WLB0Yrnw6jDqtTjHZ8TjD2DQzJB98sk3m3vSJzb9wgP//INrm9+mDYjNFuL1g8yWs5ghFCdARZOoUQZZF3cdFRVVVVQNpsM+bDiavjM9tUXCpGFXOkfPHAaOXTYdRhdYrRji+ajFJKXihu4EN3vsltG8tYkDOep64/iYeuOY683OywGZ1qL2ZZPmgnhPhASnms7c4a24yE1q9fL7dt20ZCgre/9Hg8JCQkDK/9NmA4rytjDB2f2WZmsGJUMUfKFw+MVj4dRh1Wpxjt+KLFWN1ymB8/t4s3y5pZNj2T75+3lLOWTR2+lRwJo059gn57CedVgY9rxNXZZkRUWFgYkDbbjPlw4ur4zDYVl4pRxRwpXzwwWvl0GHVYnWK044uUsXdgiDtfKePcuzaTv6+NH124gg1fP5Wsnjpl5xIOo1PtxaxRfVVACFENdAJDwKCUcr0QIht4HJgHVAOflFK2WcUA7whm+/btzsK6cjUCyt/Xyvf+tYO9LYe5ZO1MbvnwcqZOSB1trKAK+2VH37UW8/WX/UKIfwshFkSB7Swp5VoD3E3Aa1LKxcBrvnxQ5efnB6TNNmNeV3b7qHxmm4pLxahijpQvHhitfDqMOqxOMdrxhcPYOzDEzzeUcNl979I36OHvXziBuy8/9ojOZaTORX86nPZiVtARjBDip0A98BgggMuB6cAe4Hop5Zlh/7h3BLNeStlisO0BzpRSNgghZgCbpJRL7eK4IxhX8SzjqOXTJ87lpguWk5ESX4+oRTJdw/lSyvullJ1Syg4p5QPAh6WUjwOTIuSSwMtCiHwhxLU+2zQpZQOAbz1VJ1BBQUFA2mwz5nVlt4/KZ7apuFSMKuZI+eKB0cqnw6jD6hSjHZ8u43vv5/Pbl0r5hG/U8tgXT+Dnl66y7FxG6lz0p8NpL2bpdDAeIcQnhRAJvuWTBl+kF3BOkVKuAy4AviqEOF13RyHEtUKI7UKI7Q0NDcyZM4eGhgbq6urIzc2lsrKSpUuXUlJSgsfjQUrJ2rVrh4d9BQUFeDweSkpK6OnpobKykra2Nurq6mhoaKClpYXq6moWLVpEaWkpg4ODFBUVAf8dSvqvtBcXF9PX10d5eTkLFiygpqaGpqYmmpqamDx5Mh0dHZSXl7N8+XKKi4uP2Nd4tX5wcJC0tDS6urqorq6mpaVluExtbW1UVlbS09MzXKaCgoKgZcrNzQ1aJmMMY5mWL19+RJlmzpwZUKa+vr7hMpmH2kVFRUHLNGHChIAyGTn8ZUpJSQko0/Tp0wPKdMwxxwSUyb82HqeOjg7L42QukzGWVZmmT59+xHHyn3urV68OKJOUkj0Nh/jBG6388Y1KzlsykcevWU1uWt8Rx6mrq8vyOJnLlJGREbRM/smkzGVSnXtz5swJKJPqOAX9N0r1cIxxARYA/wFagGZfehGQBpwabH/dBfgJ8F28/3rN8NlmAHuC7ZuXlyd37do1/NCPP222GfO6sttH5TPbVFwqRhVzpHzxwGjl02HUYXWK0Y7PjnFoyCN/+eQ7csktG+WqH22UL+5sGBXGaLcXLB60G7Wnb4HxQKYh/Q5wPvBb4Caf/SbgN8FiuU/yhuaPJcaj6UneioZWecUD7w4/iVvT1D5qjKP+JK9fQoglQojXhBA7ffnVQohbg+2noWnAW0KIImAb8LyU8kXgV8A5Qohy4BxfPqjq6+sD0mabMa8ru31UPrNNxaViVDFHyhcPjFY+HUYdVqcY7fjMHFJKni6o5eI/bqVofzs3nDadB69eT39HC6FopM5Ffzqc9mKWzqXqvwDfA+4HkFLuEEI8Bvw8kh+WUu4F1ijsB4H/CTVednZ2QFpliySujs9ss2IwM6qYI+WLB0Yrnw6jDqtTjHZ8xrxMyeD6vxfw4q4DHDs7k7uvWE9mQh9CiFFldKq9mKVzkTddSrnNZBuMyq9HUd3d3QFps82YDyeujs9sU3GpGFXMkfLFA6OVT4dRh9UpRjs+gMOHD/NUfi0f/csHvF7axE0XLOPuSxYwd3J6TDA61V7M0hnBtAghFuK7YySEuAxosN9l5GV8Z8KfVtkiiavjM9usGMyMKuZI+eKB0cqnw6jD6hSjHd/+1m6++9xe3qvpZNWM8fz+ijwWTc0cnkUuFhidai9m6XQwXwUeAJYJIeqAKuDTUfn1KCo5OTkgrbJFElfHZ7ZZMZgZVcyR8sUDo5VPh1GH1SlGFV/f4BAPv1XNva+XI6Xkpxev5ILF45k6JTNmGO3S0WgvZgXtpqSUe6WUHwKmAMuklKdKKauj8utRlP+zJMa02WbMhxNXx2e2qbhUjCrmSPnigdHKp8Oow+oUo9EmpeTlnQ2c9/vN/PrFUk5eOJlHPrmQq0+eR/fhwwH7jAajOe9UezHLcgQjhLjBwg6AlPLOiH89isrJyQlIq2yRxNXxmW1WDGZGFXOkfPHAaOXTYdRhdYrRbys90MEvN5ayuayZhVPG8+jnj+eMJVOGG2csMKryTrUXs+xGMJm+ZT1wPTDLt3wZWBGVX4+iamtrA9JmmzEfTlwdn9mm4lIxqpgj5YsHRiufDqMOq1OMW4or+cr/5XP+XVv4oKaN646bzIvfOp0zlkyJGcZwj7M/HU57MUvnZceXgY9LKTt9+UzgX1LK8yP+9SjJ/Ta1+23qkWLcWXeIP2+q5PniBjJSkvj8KfP4/KnzyRiXMOa+TQ367SWSlx3nAv2GfD/euVpiSrt27QpIm23GfDhxdXxmm4pLxahijpQvHhitfDqMOqzRYCzcsZPniuq57M/vcOG9b/FmWTOfXJnJWzeexQ3nLiUrfZwl70gxRvM4+9PhtBezdEYwtwCfBP6N91b1R4HHpZS3R/zrUZI7XYMrJ1TW2MmzhXU8sb2W5s4+cien85kTc/lE3hwmpkfnLstYUdgjGCnlL4DPAW1AO/C5WOpc/HInnIpPxlibcKrmYDd/fKOC8+/azLm/38yfN1UyNwP+93PH8cZ3zuSLpy1gYnpy1CecCoVR1xcXE07Fg9wRjKtw1TswxLaqVjbtaWZTWRN7m723ldfNzeKStbP48KoZEX8A/mhQyCMYIUTQ2WZ0thkpuSOY+GQc6RHMoZ4B3tjTxB0v7eFT97/L2p+9zGcf3sbf3q1iVlYaP7xwBVu+fxZPf+UUrj55HlMyU0ZkykwdjakRjBCiByi32xeYKKWca7NN+GBCnA/cDSQCD0opLd+qdkcwrszyeCT1h3oob+yipKGDkvoOdtUfovqg9/2axATBypkTyMudxGmLczhxwWTSx8XXNJWxJKsRjN18Lbkay2yr/SNZ8HYqlXgnuxoHFAErrLbPy8uTO3bsGJ6bwp8224x5Xdnto/KZbSouFaOKOVK+eGC08ukwflBYJPe3HpZvVzTL3/37HXnHS6XyM396XV5w12a5+AfPy9wbNwwvp//mdfnlv22X975WJt+uaJaH+wYiYrTjM+Z16lNXI3Uu+tOh8GExH0xMXoMRQpwE/ERKeZ4vfzOAtLi4vH79evn222+TkuL9X7mvr4+UlJThtd8GDOd1ZYyh4zPbzAxWjCrmSPnigVHlk1LS2N5FZz80dfbR2NFLfdthWruHONDRQ31bD40+u8dw+iYImJmVxuKpGczLTmPJjIksnJLBshmZTEi1v+sTzeNszOvUp65G6lz020C/vUTyHMxoaBaw35Cv9dksVVNTE5A224x5Xdnto/KZbSouFaOKOVK+WGL0eCQHu/ooPdDBW+UtPPNBHQ9u2csPn8znO08Ucc0j27jw3i2c+MvXWHzLC5z4682c8/vNXPXge9zwRBF3vFLBP9+vofRAJ8IzwCmLcrhiTTa3f2wV//fFE/jrJ+ax5+cX8MjH5vDI547nyhWpXHH8XI6fnx20cwlWplDr0JjXqU9djdS56E+H017MitV/OlWfrztiqOX7CsG1ADNnziQlJYWGhgY8Hg9paWlUVlYyceJESkpKWLZsGa2trSxfvpz8/Hzy8vKGJ8wuLS1l/vz51NfXk52dTXd3NwkJCSQnJ9PV1UVmZialpaUsWrSIXbt2sWbNmuEYBw8eZPHixRQXF7NkyRJqamoYP348NTU1pKZ6v2fj8Xjo6OigsbGRSZMmUVxczKpVq4b39a/b29sZHByku7ubrq4uWlpayMjIYGBgAI/HQ3p6Oq2trcycOZOqqiqWLVtGYWEhixYtsi1TWloadXV1tmWaP3++skwzZsygvLx8uEzJyck0NTUdUaa5c+eya/cesmcvZNP7RWROnUv+7krE+GzKapvoZRz1rYc51FfOoCdwtJyUAFMyuslIlszKmcjU5AGWrVtA18EG1h+zlEMN+zhp3TE0VZdx7KoV1NfXk5KSghCCvr4+JkxIp6uri9RZk6ksL2Pq1KkUFRUdUSb/2nicpk2bRnt7u/I4zZ07l7KyMlatWkV+fj6LFy8ejlFUVMTKlSsDjlNiYiJ1dXXDx8l/7s2cOZOCggLWrVs3XLetra14PB66urro6emxPPdycnKora1VHidzmXp7e+no6LAtU0dHB0BAmVTnXkpKCoODg0eUyXzurVu3bjiGZUPW+RdJCJELLJZSviqESAOSpO/VAScUzr9ITz/9NHPneq8319TUMHfu3OG13wYM53VljKHjM9vMDFaMKuZI+aLJOGPWbN7bWUlP8gTyy2s52J9ETWs3tW09NBzqwdx3TEpPZtqEVKZOSCUjYZD5M7KZkpHClMxUcjLGkZOZQk5GCu1N9eTm5gbltqs7u/qMRj2GWofxwKhTn6DfXqz+RQo6ghFCfAnvSCEbWAjMBu4jjGktQ9D7wGIhxHygDu/H3q6028HfaxvTKluosttP5TPbrBjMjCrmSPnCZezuH6S49hDbyg6x770idtS0UtW6k4Gh//YiUzJTyM1O54T52czOTmfOpDRmTUpjxsQ0ZkxMJTU5cXjbpqYmpk5Vf96qLy1Ni1v3+DpRj6HWYTwwOtVezNKdcOp44D0AKWW5EELrY2jhSko5KIT4GvAS3jtKD0spI38xwpVS7T0DbC9u4P3qVrZWNFHW3MOQb0iSk5HC4pxUzl4xg2lpHo5dOJMJdLNgzsxRpnYVD9LpYPqklP3+eWCEEElE/sG1oJJSbgQ26m7f29sbkFbZQpXdfiqf2WbFYGZUMUfKZ+U/3N1DQU0bm/Y08+aeJnbUHkICqckJLJ+SxvVnLCQvdxJZdHLssoVHDqHnZFFT0xE1RiufTj3q1KdTjHZ88cDoVHsxS6eDeVMI8QMgTQhxDvAVvB9fiyllZWUFpFW2SOLq+Mw2KwYzo4o5Uj6jX0rJB/vbea6wng1FdbQcHkAIWDsni+tPm8uHVs3mmJkT6e3uYsKECQB0dKQ6zmjl06lHnfp0itGOLx4YnWovZuncpr4J7xcdi4Hr8I4qovFdpKiqsbExIG22GfPhxNXxmW0qLhWjijlSPoCde2u58+U9nPHbTXzsT+/w2LYaluakcPflaym49Rz+/ZVT+OiSVNbNncS4pIQRZ7Ty6dSjDqtTjHZ88cDoVHsxK6QH7YQQ2Xif3t0R8S9HUe6DdoEPqm3d28pf363m5ZJGPFJy6qIcLl4zk/OOmU6K8Iw6YzCfTj3G6kNs8cAYMw/aCSE2CSEm+DqXQuARIURMzccLUFZWFpA224z5cOLq+Mw2FZeKUcUcKp/HI9mwo54L7t7CFX/Zyrt7D3Lpsgw2f+8s/vaFE/jE+jlMSE0eVUZdnw6jDqtTjHZ88cDoVHsxS2fCqQ+klMcKIb4IzJFS/lgIsUNKuTriX4+SjvaXHT0eyQs7D3D3a2WUNXaxaGoG1562gIvXzjzidrErV04pklcFkoQQM/DOarch6mRR0tE6XcODz7/DBXdv4auPFTDkkdxzxbG89K3T+eRxc0hNTowJxliariFajO50DXrSGcF8Avgh8JaU8itCiAXAb6WUH4/416Oko3EEU9VymF88X8Kru5vInZzODecs4cLVM0lMUL1l4cqVs4pkysx/SSlXSym/4svvjaXOxa+jZQRzuG+Q21/Yzbm/f5N3Kw/ymVUZvPzt07lk7Sxl5+KOYJxhdEcwetIZwaQCXwBWAsPPD0spPx/xr0dJR8sI5s2yZn7wdDF17T1cljeb75+/lKmZ0Xmk25WrSBTJNZi/AdOB84A38b6L5NiLjuGqqKgoIG22GfPhxNXxmW0qLhWjitmvtsP93PBEIVc/vI3U5ASe/PJJ3PGJNUzNTA1appFiDJUhmE+HUYfVKUY7vnhgdKq9mBXKXaQdUsrVQohk4CUp5dkR/3qUNJY/vPbizgZufWYn7d0DXH/mQr561qIj7gy5H16LvY+axQNjLH14bcC3bhdCHANMJAY/vFZRURGQNtuM+XDi6vjMNhWXitG8PtQzwA2PF/LlvxcwfWIqz33tVL5z7tKA287ByuQko65CrUNdRh1Wpxjt+OKB0an2EiDVPJryyPlxvwhMAs4A9gJNwJeD7TeSS15enuzs7ByeH9SfNtuMeV3Z7aPymW0qLhWjcf1WebM86ZevygU3Py/vfHmP7B8cCovPScZQFGod6jLqsDrFaMcXD4zRbi9YzMmrcxfpQSllm5TyTSnlAinlVCnlfZF0akKInwgh6oQQhb7lwwbfzUKICiHEHiHEeboxW1paAtJmmzEfTlwdn9mm4lIxtrS00DswxI+fLeaqB98jNTmRp64/mW+fs4TkROvDFKxM0WbU+c1QGK18Oow6rE4x2vHFA6NT7cUsnQmnUoCP4/23aHh7KeXPIvzt30sp7zD91gq8k0utBGYCrwohlkgph4IFy8jICEirbKHKbj+Vz2yzYjAz1h4WfPHet6ho6uLqk3K56YLlpI0L/hRusHJFk1FVrzoKtQ51GXVYnWK044sHRqfai1k6V3CeBQ4B+UBfVH7VWpcA/5RS9gFVQogKvJNdvRtsx4GBgYC0yhaq7PZT+cw2KwZ/urevnz++UcGdr+whJyOFuy5dxKUnLo0KX7QYrdbRYLTy6TDqsDrFaMcXD4xOtRezdDqY2VLK86Pya0fqa0KIzwLbge9IKdvwfjlgq2GboF8T8Mvj8QSkVbZQZbefyme2WTF4PB72NnfxzSfLKG44zNmLsrjzyuM43NYcNb5oMNqto8Fo5dNh1GF1itGOLx4YnWovZuncRXpHCLEq1MBCiFeFEDsVyyXAn/HO77sWaAB+599NEUp5H10Ica0QYrsQYntDQwP9/f00NDRQV1fH4OAglZWVJCQkUFJSgsfjYf/+/aSnpw8/nVhQUIDH46GkpISenh4qKytpa2ujrq6OhoYGWlpaqK6uRghBaWkpg4ODw88F+GP4J0YuLi6mr6+P8vJypJTU1NTQ1NREU1MTHR0ddHR0UF5eTlJSEsXFxQx5JH9+fQ8X3L2FvS3d3PWptVy3KomMcQk0NzfT1dVFdXU1LS0tw2Vqa2ujsrKSnp6e4TIVFBQELZN/Zni7MhljGMuUlJR0RJl6e3sDytTX10dxcfER9eJfFxUVMTg4aFumtra2gDIZOfxlamxsDChTT09PQJlSUlICyuRfG49TR0eH5XEyl8kYy6pMPT09Rxwn/7mXlpYWUKb9+/cHlEl17nV1dVkeJ3OZDh48GLRMDQ0NyjL524yxTP39/QFlUh2noE/7qq78ei8KUwzsAErw3qre48sXAzus9gt1wXttZ6cvfTNws8H3EnBSsBh5eXmyoqJi+Iq2P222GfO6sttH5TPbzAyVTZ3yY396W+beuEF+4X+3yfd2lFoyR8oXLqM5bbWOBqOVT4dRh9UpRju+eGCMdnvB4i6SXcO3/Wys1X46CzDDkP423usu4L24WwSkAPPx3hZPDBYvLy9Pdnd3DxfWnzbbjHld2e2j8plt/nxP/6D87Qu75JJbNspVP35R/uPdSunxeAJYQ2UMtn0ojFZpJxmtfDqMOqxOMdrxxQNjtNuLVQdj9y9SI/BR4HvA+UCdlHKff7EfFwXVb4QQtabusQAACk1JREFUxUKIHcBZvk4G6f1ywBN4R00vAl+VGneQAKqqqgLSZpsxryu7fVQ+s62qqopNe5o4/67N/GFTFeesmMYrN5zB6gm9CCECWENlDLa9LqNd2klGK58Oow6rU4x2fPHA6FR7McvyVQEhxON4/zXaAlwA7JNSfjPiX3RA69evl9u2bSMhwdtfejweEhIShtd+GzCc15Uxho7PaNt38DC3b9zNi7saWZAznp9cvILTl0xVMqqYI+XTYTTnVWknGa18Oow6rE4x2vHFA6NOfYJ+ewnnVYEVUspPSynvBy4DTtP6pVFSYWFhQNpsM+bDiavjKywspKmjl1ufKeZ/fvcmr5c28r3zlvLCt04jo6vWklHFHCmfHaNV3q4enWC08ukw6rA6xWjHFw+MTrUXs+xGMAVSynVW+VhSrEzX0Hq4nwe37OXht6sYHJJccfxcvn72IqZOcKdUcDW2Fc4IZo0QosO3dAKr/WkhRGhf3hoBjeaEU3ubu7jl38Wc/KvX+NOmSs5bOZ3XvnMGt116DPvLdwVsr2J0YhIiK7874VTkjO6EU3oK6bMlsarRGMEMeSRvV7Twt637eHV3I8kJCXz02Fl88bT5LJ6WOaIsrlyNtiKZriEu5H/wx5g224z5cOICVDR18qsXSjnlV6/z2Ye3sb26la+ftYi3bzqbX1+2ms668qBcKkYVczh8On6zbTQZrXw6jDqsTjHa8cUDo1PtxawxM4Jx6i7S4OAQJQc6eXV3E6+WNFLS0EFiguDMJVP46LEzOWfldFKS/vtSYizdobHyxxKjexfp6L2LFFcqLS0NSJttxrydatu6ebqglhuf3MEJv3iFi//wNn94vZzxKYnc+pHlbL35f3jomuNYkHzoiM7F/JtWXCpGFbOOgm2v8scSo5VPh1GH1SlGO754YIxme7HTmBnBbNmyhbS0NAB6enpIS0sbXvttwHDer47eAUrqO9hV30FxbTvvV7dR1+7ddkJqEifOn8R5x8zkrGVTyR4/7oh9jfGtbGYGK0YVs46CbR/rjFY+HUYdVqcY7fjigVGnPiGwvVhpzI9g6uvrA9JGW3n1fl4uqODx92u4feNuvvjo+5zx2zdY/ZOXufyBrdy2oYR3Kg+yZs5EfnLRCjZ+4zQKf3QuN546mY/nzQ7oXMzxrWwqLhWjijnUcuv6Y4nRyqfDqMPqFKMdXzww6tRnqHwqhTYDdgwrOzs7IG20fdAs+fFG79us45ISWJAznmNmTuST6+ewcuYEVs6cyJTMwA99G2Po+Mw2FZeKUcWso2DbxzqjlU+HUYfVKUY7vnhg1K3PSDVmRjDd3d0BaaNtzbQUfnvRAjZ/7yx2/+x8XvzW6fzxqnV89axFnLl0qrJzMcfQ8ZltKi4Vo4pZR8G2j3VGK58Oow6rU4x2fPHAqFOfofKpNGZGMMar3f600TZtQgrTJqQwY3J62HF1fGabikvFqGKOlC8eGK18Oow6rE4x2vHFA6NufUaqMdPBJCcnB6RVtkji6vjMNisGM6OKOVK+eGC08ukw6rA6xWjHFw+MTrUXs8bEXSQhRDPQjnfuYPB+u+mQYe23JQOhTpVujKHjM9vMDFaM/nVOiIx2fPHAaOXTYbSzOc1oxxcPjDr1GUp7yZVSTgmwqiaJiccFeMCcNtuwmBRHN66Oz2xTcakYDeuQGO344oHRyqfDGITVUUY7vnhgdKq9mJcxc5EX+I8irbJFElfHZ7ZZMZgZneCz8scSo5VPhzGYLRRF8zhb8cQSo1Pt5QiNiX+RdCWE2C4VDwPFklzG6MhljFzR4BtLIxgdPTDaABpyGaMjlzFyRcx3VI1gXLlyNbI62kYwrly5GkG5HYwrV64ck9vBuHLlyjG5HYxPQohLhRB/EUI8K4Q4d7R5VBJCLBBCPCSEeHK0WYwSQowXQjzqq7+rRpvHrFitN6Pi5PxbLoS4TwjxpBDieq2dIn2QJhYW4GGgCd8naA328/F+8rYCuEkz1iTgoRhnfDKW6hT4DHCRL/14rB7zkai3KDA6cv5FmTFBl3HEKtvhSjodWGesJCARqAQWAOPwfpJ2BbAK2GBaphr2+x2wLsYZR6KDCYX3ZmCtb5vHYu2Yj2S9RYHRkfMvWozAxcA7wJU68cfEy45Sys1CiHkm8/FAhZRyL4AQ4p/AJVLK24ELzTGEEAL4FfCClDLy2Y4dYBxJhcIL1AKzgUJG6N/uEPlKRoLJrFAYhRC7cfD8iwYjUCKlfA54TgjxPPBYsPhj+RrMLGC/IV/rs1np68CHgMuEEF92EsygkBiFEJOFEPcBxwohbnYaTiEr3qeBjwsh/kyUHjEPU0q+GKg3o6zqcDTOPytZ1eOZQoh7hBD3Axt1Ao2JEYyFhMJm+VShlPIe4B7ncJQKlfEgMJonn5JXSnkY+NxIwyhkxTfa9WaUFeNonH9WsmLcBGwKJdBYHsHUAnMM+dlA5JOMRlfxwGhUrPPGOh8cZYxjuYN5H1gshJgvhBgHXA48N8pMZsUDo1GxzhvrfHC0MY7kVXUHr4T/A2gABvD2vl/w2T8MlOG9In6Lyzh2eGOdz2X0Lu7Ljq5cuXJMY/lfJFeuXI2y3A7GlStXjsntYFy5cuWY3A7GlStXjsntYFy5cuWY3A7GlStXjsntYFy5cuWY3A7GlStXjsntYFw5JiHEPCFEjxCiMMI4PxFCfNdku18IcYpi2zQhRKEQol8IkRPJ77qKXG4H48ppVUop15qNwqtIzr8TgK1mo5Syx/d7sfYC4VEpt4NxFbKEEBeb57cVQlwvhLCdbsA3otkthPgTUADMEUI8I4TIF0LsEkJca9j2FiHEHiHEq8BSU5zleN+TSRVCPC+EKBJC7BRCfCpqhXQVFY3l+WBcOadfAFeYbJXAxzX2XQp8Tkr5FQAhxOellK1CiDTgfSHEU8A8vG/wHov3HC0A8g0xLgBexDtvbL2U8iO+WBPDLpErR+SOYFyFJCHEGiBBSrlTCJFrmF0+GZvJsgzaJ6U0/mvzDSFEEd5/d+YAi4HTgH9LKbullB0EThVwHt4Ophj4kBDi10KI06SUhyIomisH5HYwrkLVWv47mjgHb4cA3sm/izT2P+xPCCHOxDtN5ElSyjXAB0Cqz63srIQQ6UCWlLJeSlkG5OHtaG4XQvwotKK4clpuB+MqVCUAGUKIROBjQKbv35tr0JgE2qSJQJuUslsIsQw40WffDHzUd0coE7jIsM9ZwBsAQoiZQLeU8u/AHXhnx3cVQ3I7GFehaiPez1kUAvcBK4HtwAMy9NnwXwSShBA7gNvw3RXyxXnc9xtPAVsM+/ivv4D38y7bfLfBbwF+Hk6BXDknd8IpV47J9zmMDVLKY6IYswA4QUo5EGS7amC9lLIlWr/tKnS5IxhXTmoImBjpg3ZGSSnX2XUu/gft8F509kTrd12FJ3cE48qVK8fkjmBcuXLlmNwOxpUrV47J7WBcuXLlmNwOxpUrV47J7WBcuXLlmNwOxpUrV47J7WBcuXLlmNwOxpUrV47p/wEqQZUr/rgpnAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "kp = 10\n", "ki = 1\n", "kd = 0.1\n", "C = tf([kd, kp, ki], [1, 0])\n", "\n", "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", "\n", "gain, phase, w = bode(C, logspace(-2,3), Plot=False)\n", " \n", "ax[0].semilogx(w, 20*np.log10(gain))\n", "ax[1].semilogx(w, phase*180/np.pi)\n", "ax[0].grid(which=\"both\", ls=':')\n", "ax[0].set_ylabel('Gain [dB]')\n", "ax[1].grid(which=\"both\", ls=':')\n", "ax[1].set_xlabel('$\\omega$ [rad/s]')\n", "ax[1].set_ylabel('Phase [deg]')\n", "fig.tight_layout()\n", "fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 直列表現" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "T1 = 0.01\n", "T2 = 10\n", "kp = 0.01\n", "s = tf('s')\n", "C = kp*(1+1/(T1*s))*(1+T2*s)\n", "\n", "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", "\n", "gain, phase, w = bode(C, logspace(-2,3), Plot=False)\n", " \n", "ax[0].semilogx(w, 20*np.log10(gain))\n", "ax[1].semilogx(w, phase*180/np.pi)\n", "ax[0].grid(which=\"both\", ls=':')\n", "ax[0].set_ylabel('Gain [dB]')\n", "ax[1].grid(which=\"both\", ls=':')\n", "ax[1].set_xlabel('$\\omega$ [rad/s]')\n", "ax[1].set_ylabel('Phase [deg]')\n", "fig.tight_layout()\n", "fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 位相遅れ・進み補償の周波数特性" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARgAAAD1CAYAAACLI+pkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydeXwV1fn/3yc7SSAQAsi+yOIGAgm4gku1aqtV6651t1j3blbpamtr/dXaxdqq+HWhWkVrXZG6g6LsxIRACCSBEEgCISQQsufmnt8fyU2HuWfuPffOndx7cT6v17zmnOeZee77nJlzcjLLGSGlxJUrV66cUEK0AVy5cnX4yu1gXLly5ZjcDsaVK1eOye1gXLly5ZjcDsaVK1eOye1gXLly5Zii3sEIIRKFEF8KIRb35McLIVYLIUqFEK8IIVKizejKlavwJKL9HIwQ4odAHjBASnm+EOJV4HUp5SIhxJNAoZTyiUAxcnJy5Lhx4/qA1pUrVyqtX7++Tko5xM8hpYzaAowCPgbOBBYDAqgDknr8JwHvB4uTm5srCwoKpE++tNlmzOsq0D4qn9mm4lIxqpjt8sUDo5VPh1GH1SnGQHzxwBjp9gKsk4q2GdURjBDiNeD3QH/gx8ANwCop5cQe/2jgv1LK4wLFycvLk6tWrSIpKQkAj8dDUlJS7xpgc/V+Pt5cS1pKEsmJCT2LIC05sWdJoF9yIhmpSfRPS6J/WjKZqUlIb1dvDLOM8a1sxrwqbbXWVbDtY53RyqfDqMPqFGMgvlhlbG3voM0DB9s8NDS30d4FbZ1dNLd10OGF1nYPXUCnx0tbp4cOj+S6k8cxMD34VQohxHopZZ7Zrl+6CEsIcT5QK6VcL4Q43WdWbKrsAYUQ84B5ACNGjGDDhg0MHz4cr9dLbW0tAwYMoKWlhcTERI466ijeWLqWBUUdIXNmpiSQ3S+REdn9Se5q5Zhxw6G5jtNmHE311gK+fe7X2LRpI5MnT6ayspKWlhYGDRpEWloaANu3b+foo49mz549tLe3I6Vk6tSpfPbZZ5x55pm9688//5xTTz2VVatWMX36dOrq6sjMzKSzsxOv10t6ejr19fWMGDGC7du3c9RRR1FQUEB6ejrNzc3k5uaSn5/P9OnTKSkpYfz48VRXV9PY2MjQoUNJSEggOTmZpqYmGhsbSUlJYeLEiWzatInU1NTeGD6eoqIihBCkpqb2lmnv3r2MHj36kDKNGTOGrVu3MnXqVNavX09ubm7vurCwkGOPPTZgmUpKSpg+ffohZZo5cybLly/njDPO6C3TypUrycvLO6RMNTU1jBs37pAyeb1eOjs7DymTj6eoqKj3OA0bNoz9+/crj5O5TBkZGb2xrMpUUVHB8OHDe4+T79wTQtDa2npImZYvX85pp512SJmys7NpaWk55Djl5OSwa9cu5XEyl2nVmrVkj57E5p117Gnxsmt/GxV79tORkMaexlYOtHtpbu8K+fzPOyKRo0dmK8+9mTNn9nJYKWojGCHE74FrAQ+QBgwA3gDOAY6QUnqEECcBD0gpzwkUKy8vTy5btozMzEwAmpqayMzM7F0DNB48SGeXJCWtH54uSWeXl3aPl3ZPF60dXto8XbR0dNHc7uFgWycH2zwcbPNQe6CZ/W1e6pra2XuwneoDbXR4vL2/nZGSyNRRWcwYM4gZowcyeXAK447I7vUbGVRpq7Wugm2v8ptt0WS08ukw6rA6xRiIz2lGKSU761vJr2ygYOd+vqxsYFN1Ix7v/9pyRkoiwwakMnRAGkP6p5GTmUJGEgwekE5mahLJdDE4K4P0lES8ne1kZ/Wnq72NgVmZpCQm0NHWSnKiYOCA/gih+rt/qGJuBCOlnA/MB+gZwfxYSnmNEOLfwKXAIuB64C2deL6/JMa00Va/bx8AoV4MrqioOGQfr1dS09jGjrpm1m2tpK4zhYKd+3n6s229B3jGmIGcd9wRnHfccLoa/blUjCrmUMut6zfbVFx9xWjl02HUYXWKMRCfE4xSSlZs3klhveC/G3ezbW8zAOkpiUwblcVl07LJnTSKcYPTGZeTweCMFHbs2HHIuWs8l7vTQ/6XHjKcioo6hvbP6bbVVgMwKGuAFp+VotbBBNB9wCIhxG+BL4FndHYyHihfWmULVeb9EhIEIwf2Y+TAfkweCDk53QekrbOLTdUH+KhoJ8u3N/LQkhIeWlLClKHp3DQngYtmjAzIqGIOh0/Hb7ZZ1VNfMFr5dBh1WJ1iDMQXScYDLZ28sKqCV9btZGd9K4kJghMnZHP9SeOYPT6bSUMzSUpMoK6urvdc1GF0qr2YFRMdjJRyGbCsJ70NmB1qjM7OTr+0ymYnbiBfWnIiuWOzGZHSzn3nH8/O+hbe27ibV9dUcN9/ivjTh1u5/Pgcbj1rIJmpSX6MKma7fFZ+s82qnvqC0cqnw6jD6hRjIL5IMO5pbOOZz7fzr1U7aO7oYs6kHK6dOYRLT5pCdob/RddIHudgbKEoJjqYSMjr9fqlVTY7cXV8Ptvo7HS+O3cC501IYVtLKk9+Ws7fllexcO0e7jlrMmePTVayhsoZbPtAjKp8oHp0gtHKp8Oow+oUYyA+O4zN7R7++MEW/rWqEo/XywXHj+DWuUdyzIgBVFVVKTuXcBidai9mHTYdTHp6ul9aZbMTV8dntmVkZDB31CDmTh7C58WVPL1qNw8uLubN4Zk8emUWQ0ysoXIG216H0aqezExOMFr5dBh1WJ1iDMQXLuOnW/fy09eLqD7QypWzRnP76RMZna13DkfyOAf7rVAU9VcFIqX6+nq/tNlmzIcTV8dnthnzw1M7ef7GWfz1yulUNrTyzceW85cPt9Lh8SqZ7fKFwxioHp1gtPLpMOqwOsUYiC9UxobmDn74agHXP7uGtOQEXvveSfz+29MO6VwizehUe/GT6um7eFtyc3NlS0tL71OFvrTZZszrKtA+Kp/ZpuKSUspde/fLu1/Ol2PvWywvfPxzWVm7P+jvhcpnl9Fcj6p6tcto5dNh1GF1ijEQXyiMm6oOyBMf+kgeOf9d+cf3S2Rrh6dPGCPdXrB4kvewGcFs377dL222GfPhxNXxmW0qLoADtVX89coZ/PS0oZTsbuSSJ1exZffBkBmDbW+H0VyPqnq1y2jl02HUYXWKMRCfLuOi5Zu49MkVALx5xyn86OtTSEtO7BNGp9qLWVF/2TESysvLk2vWrCEhobu/9Hq9JCQk9K59NqA3rytjDB2f2WZmUDFuqj7IzQvX0tLRxeNXTef0o4ZFhC+SjKp1JBitfDqMOqxOMQbiC8bY1dXFwpWV/PbdYo4dkcUz1+cxdEBanzLq1CfotxerB+0OmxFMQUGBX9psM+bDiavjM9tUXGbGqaOy+O1pWYzOTuemhet4aXVlRPgiyahaR4LRyqfDqMPqFGMgvkCMXq/kzuc+4zeLi8kbkcort56o1blEmtGp9mLWYTOCWbduXbQxbKup3cNdL+WzdMte/nDpNC7PGx1tJFcRlJSSB97exMKVO/junPHMP+9oEhKCP4YfDzrsRzDr16/3S5ttxnw4cXV8ZpuKS8W4fv16MlOTuPXYBOZMyuH+/2zg3Q01tvicYNT5zVAYrXw6jDqsTjEG4rPi+NHCT1m4cgffmpzOT79xNF9+mR81Rqfai1m2RjBCiMc0NmuUUv487B/R0OEygvGppcPDdc+soXDXfhZcm8cZRw2NNpIrm/rHsjL+8N4Wrpo9hocuPk7rBcJ4klMjmAuB9UGWS2z+hpby8/P90mabMR9OXB2f2abiUjEa1+kpSTx74yymHNGf7724nlXb9oXF5yRjKAq1DnUZdVidYgzEZ+Z4YWUFf3hvC3PGpPHbi47jyy+/jDqjU+3FLLsjmO9LKf9idxu7ive7SFZ3P/Y1tXPFglXsOdDGG3ecwsSh/i+guXeRYvsu0gebapj3Qj5nHT2Mv189ndTkpJhgjIu7SDodh9Odi08lJSV+abPNmA8nro7PbFNxqRhVzIMzU1l402xSkhKY98I6Gtv8X0ALVianGXUUah3qMuqwOsUYiM+XL6s9yD2LvmTaqCwev3oG5aVbY4bRqfbiJ9XTd7oL3RNFXQ98i+7Z6O6je27dvwI5dmKHssTjk7yhPCW7qrxOHjn/XXnTc2tkV5dXm68vGUNlCOaL9yd5d9cfkKc/slTO/M37snp/dOrxcHiS95/A14Gb6J5uYQzwOHAQeN5m7JBUXV3tlzbbjPlw4ur4zDYVl4pRxezTCRMG88sLjuHjklr+8tFWbb6+ZAyVIZhPh1GH1SnGQHxdXsndL+Wzs76Fn58xnOFZ/WKO0an2Ypbdt6mPkVIeJ4RIAnZJKU/rsb8nhCi0GTskZWdn+6VVNjtxdXxmmxWDmVHFbNS1J45lY9UBHvukjGNGDODc44YH5etrxlAYgvl0GHVYnWIMxPfnD7eyemczD150HKdPGeC3TSwwOtVezLI7gukAkFJ6AHN3F/oMwzbU0tLilzbbjPlw4ur4zDYVl4pRxWyUEILfXHgc00cP5IevFlK+tykoX18zhsIQzKfDqMPqFKMV34fFe3h8aRkXHJPNd04YE5OMVulItBez7HYwo4QQjwkh/mZI+/IjbdOFIOPVbl/abAv1DpI5ho7PbFNxqRhVzGalJSfyxHdmkpKUwD2LvqTDE/wuRF8z6jIE8+kw6rA6xaji232gjXtfK+TYEQP48RljEELEHGOgdCTai1l2/0W615A2P+nWp0++JScn+6VVNjtxdXxmmxWDmVHFrNLwrH78v0umcesL6/njB1uYN9v/Y3rRZtRhCObTYdRhdYrRbEtITOIHrxbQ3unlsatmkCHaYo5R9ziHw2Ylu7epFwZaIkKoqaamJr+02WbMhxNXx2e2qbhUjCpmK51z7BFcc8IYFny2jWWbdwfcNlqMwRiC+XQYdVidYjTbnvmighXl+3jgW8dw5JDMmGTUPc6+dDjtxSxbIxghxDtYfBgNQEr5LTvxQ5FxRnVfWmWzE1fHZ7ZZMZgZVcyB9PNvHsOa7fU8/GkNZ8yYxODM1JhjDMQQzKfDqMPqFKPRVrhzP8+u3cs3pw7vfUE11hitWIKx2pXdf7L+CDwKbAdagad7liZgo83YIWnXrl1+abPNmA8nro7PbFNxqRhVzIHULyWRx66awYGWTu59bYPvuaSYYgzEEMynw6jD6hSjz9bU7uHuRV8yqF8iD108tfcdo1hiVOWdai9+Uj0cE+oCfKZjc2rJzc2VnZ2dvQ/9+NJmmzGvq0D7qHxmm4pLxahi1tH/fVYmx963WL6wsiJmGUOtQ11GHVanGH22n/y7UI6/f7FcUVqr9McCoyof6faCw1NmDhFCTPBlhBDjgcBXHyOsTZs2+aXNNmM+nLg6PrNNxaViVDHrKLf/QU6dmMNDSzazs97/tmIsMIZah7qMOqxOMW7atImlJbW8sm4n8+YeSXpztXKfaDNa5Z1qL2ZFZMIpIcS5wAJgW49pHDBPSvmB7eAaOtymawhVVftbOffPn3HMiAG8/N0TD5tJjGJZB1o6+fpfPiWrXzLv3HUqqUnWc+l+FeTohFNSyveAScA9PcuUvupcfDocJpwK9ntWDCMH9uMX5x/D6u31LFxZEZOMofpifcKpuxd+Rl1TB49eNp3UpEStCadiaVKseJlwaqaUMuCkETrb2NVXfQQD3dfSbnp+LSu37WPJ3XOYMCQy3xZ25a8PNu1m3gvruftrk/jh2ZOjjRMTcmoE85wQYpAQIttqQfPj9Xb1VR7BQPerBA9fMo2UxATufW0DXV4Zc4yh+GJ1BFPf3MFP3yhi/MAk7jxjYlBedwRjbwRTAXjpnqrBSnullCF/zD4UuSOY/+mNL3fxg1cK+dk3jua7cycE38FVSLrzpXze37Sbt+88laOHDwi+w1dETk04NU5KOUFKOT7AouxchBBpQog1QohCIcQmIcSve+zjhRCrhRClQohXhBDqr32bVFRU5Jc224x5XQXaR+Uz21RcKkYVczh8F00fydnHDOOPH2xhe11zTDLq+HQYdVgjyfjext0s3lDDXWdOwlO3Q4u3rxl1mIJx+dLhtBc/qe5d98VC96gnsyedDKwGTgReBa7ssT8J3BYsVm5urmxra+u9J+9Lm23GvK4C7aPymW0qLhWjijlcvj0HWuXUX70nL3tihWxpaY1JxmA+HUYd1kgxNjS3y9wHP5Tn/eUz2eHpCsgXLcZgNt3j7EuHwkesfTq2h8v3skNyzyKBM4HXeuwLgYt04lVWVvqlzTZjXleB9lH5zDYVl4pRxRwu39ABafzygmNZU1HP4x9siEnGYD4dRh3WSDH+ZnEx+1s6eOSyaSQnJgTkixZjMJvucfalw2kvZkWtgwEQQiQKIQqAWuBDoBzYL7vnlwHYhea0D8OGDfNLm23GvK4C7aPymW0qLhWjitkO3yUzR3La5CE8u26f3wN4scIYyKfDqMMaCcYtB5N5Pb+K204/kmNHZAXliwZjJM9FXzqc9mJWxDoYIcRIIcTJQoi5viXYPlLKLinldGAUMBs4WrWZxe/NE0KsE0Ksq6mpYdeuXdTU1FBVVUVVVRXl5eXU1tZSXFyM1+ulsLCQ/fv3914Zz8/Px+v1UlxcTGtrK+Xl5TQ0NFBVVUVNTQ11dXVUVFSwe/duSkpK8Hg8FBZ2T9Lni+H7tGZRURHt7e2UlpZSU1NDZWUltbW11NbWUl5eTmNjI6Wlpezdu7f3/1rz5zqLiorweDxs3ryZpqYmKioqqKur6y1TQ0MD5eXltLa29pYpPz/fskxtbW18L3cAIPn+S2uprq62LJMxhpFn7969h5TJVy5jmdrb23vLZL4bUVhYGLRMW7du9SuTkUN1nHzHeMeOHX5l2rdvn1+ZfGvjcWpsbLQ8TsYyfbZqLb9+dwujByRx55kTLcu0Y8eOQ46T79xraGjwK1NhYaHWudfU1GR5nMxl2rJlS9Aybdy4sXdfYyzVubdr1y6/MqmOU9A7Tar/m0JdgP8HVABLgHd6lrdDjPEruueXqQOSemwnAe8H2zc3N1fu2bOn9/9BX9psM+Z1FWgflc9sU3GpGFXMdvmklPLJD4vk2PsWy3+t2hGTjFY+HUYdVruM973W/a7Rl5UN2nx9zWjlC/c4+9Kh8GFxDcbuhFM+XUT307vtujsIIYYAnVLK/UKIfsBZPR3VUuBSYBHdXyx4K0KMX0ldNHUIn25v4qElmzltyhBGDuwXbaS40Wdb97Jo7U6+k3cE00cPjDZOXCpS/yJto/sibSgaDiwVQmwA1gIfSikX0/3pkx8KIcqAwWg+qNfW1uaXNtuMeV0F2kflM9tUXCpGFbNdPoD29nb+3yXT8ErJ/f/pntYhlhitfDqMOqzhMh5s6+T+/2zgyCEZXD9zcEh8fcUYzBfucfalw2kvZkVqBNMCFAghPgZ6RzFSyrutdpBSbgBmKOzb6L4eE5IGDhzol1bZ7MTV8ZltVgxmRhWzXT6ff8CAdOZ/42h+8eZGFq3dyTePih1GK59OPeqwhsv40JISdje28dptJzNsoP+LjIH4+ooxmC/cczEcNitFagTzNvAgsIJDv0vdZ9qzZ49f2mwz5sOJq+Mz21RcKkYVs10+o/+a2WM4+cjB/O7dzRSV71JuEw1GK59OPeqwhsO4vHQvL6+p5LtzJjBzzKCQj3NfMOr4wj0Xfelw2oufVBdm4m1xH7TT81fua5ZH/+K/8uoFK6TX61Vu81V/0K6xtUOe/PuP5Rl/XCpbOzyWsdwH7Q4VTjxoJ4R4tWddJITYYF7sd3/62rp1q1/abDPmw4mr4zPbVFwqRhWzXT6zf3R2979KX5TXs2jtzphgtPLp1KMOa6iMDy0poeZAK3+87HjSkhMtYwXic5pR1xfuuehLh9NezLL7suNwKWWNEGKsyi+l3KGyR1ruy4768nol33lmNYU79/Pfe+YyZnB6tJFiRktLarnx+bXMmzuBn35D9UiWKys59bJjTc96h2qxEztUfdWna9D1JyQIrjsqgYQEwQ9eLcDT5XWnawA+WbGWe1/bwFFH9Peb4yXU4+wU41duuobeIEKcCPyN7idxU4BEoFlK2Sfvs7sjmND15pdVfP+VAn789cnceeakaONEVVJKbn1hPcu27OWtO09xp2EIQ45OmQk8DlwFlAL9gFvo7nD6TO4IJjTGC6eP4Pxpw/nLR6W88uGqqDHGwgjm3+t28UHxHn58zmRl5+KOYMJXpEYw66SUeUKIDVLKaT22FVLKk20H15A7gglPB1o6Oecvn5Gemsi7d82hX8pXb+LqHfuaOe+vy5k2KouXbnEnTA9XTo9gWnomhioQQvxBCPEDICNCsbXkexHRmDbbjPlw4ur4zDYVl4pRxWyXLxhjVnoyj15+PNv2NvO7JcVRYbTy6dSjDmsgebq8/OCVAhITBLccl2LZuYR6nCPJGIwjXEan2oufVPeuQ12AsUAaMIDulxb/BEyMRGyd5av84bVg2+swPvBW9wuR7xRWfaU+vPbQkmI59r7F8s0vd0X0OEeSMRhHuIxx9eE12X3XqE1K2Sil/LWU8odSyrJIxNZVWVmZX9psM+bDiavjM9tUXCpGFbNdPl3Gbx+ZyIwxA7nvtQ0sXVfcp4xWPp161KlPK32waTdPfbqNq2aP4cLpIyN6nCPFqMMRLqNT7cVPql5HdwEuBO4w5FfT/eLjNuBSO7FDWXJzc+XBgwd7e1Nf2mwz5nUVaB+Vz2xTcakYVcx2+UJhrGpokTN+84H82h8/kc3tnX3GaOXTqUed+lSpoq5JHver9+Q3H/us92ndSB7nSDDqcoTLGOn2gkMjmJ/Q/R6ST6nALOB04DabsUNSXV2dX9psM+bDiavjM9tUXCpGFbNdvlAYRwzsx1+vnE753hZ+9sZGpJR9wmjl06lHnfo0q62zi9tezCdBCJ64Jrf3ad1IHme7jKFwhMvoVHsxy+7b1ClSyp2G/OdSyn3APiFEn17kzczM9EurbHbi6vjMNisGM6OK2S5fqIxzJg3h1lNG8eQXu8gdO4hzJzrPaOXTqUed+jTrV29torimkWdvyGN0drrf/rqMgfjsMobCES6jU+3FLLsjmEHGjJTyTkN2iM3YIamzs9MvbbYZ8+HE1fGZbSouFaOK2S5fOIzX5g7h9ClD+M07xazeXu84o5VPpx516tOohSsqeGXdTu48YyJnHnXofLORPM52GAOpr85FXzqc9mKW3Q5mtRDiu2ajEOJWYI3N2CHJ6/X6pc02Yz6cuDo+s03FpWJUMdvlC4cRKfnrFTMYMzid+94pZ8vug44yWvl06lGnPn16b2MND7yzibOOHsYPFJ97jeRxDpcxmPrqXPSlw2kvZtntYH4A3CiEWCqEeLRnWQbcAHzfLlwoSk9P90ubbcZ8OHF1fGabikvFqGK2yxcuY1Z6Ms/fOIu0lERueG4NBz2JjjFa+XTqUac+AdZW1HP3ogKmjx7I366aQaLieZdIHudwGHXUV+eiLx1OezHL7suOtbL7ad0H6Z70uwL4jZTyJCllBGar0Vd9fb1f2mwz5sOJq+Mz21RcKkYVs10+O4yjBqXz0NdHcrDNw22vbKSxrdMRRiufDqNOfZbVHuSWhesYObAfz1w/y/Jp5Uge51AZddVX56IvHU578ZPq1lK8Lbm5ubKlpaX3lpkvbbYZ87oKtI/KZ7apuFSMKma7fJFg/Lx0r5w4/115xVMrZEPjwYgzWvl0GIPV5+4DrfLk338scx/8UO6oa44oYyC+UBhDUV+di750KHzE2pcdI63t27f7pc02Yz6cuDo+s03FpWJUMdvliwTjKRNz+P7JOazaVs91/7eag22dEWW08ukwBrJ9UbiVS59cwf6WDp67YVbQeW8ieZx1GZ2ux3DPRV86nPZiVkRedoy28vLy5Jo1a0hI6O4vvV4vCQkJvWufDejN68oYQ8dntpkZrBhVzHb5Isn4zoYafvRqIVOO6M+z1+cxLEv/8yeh1qEuo5WtuOYg1z+7Bq+UPH/jbI7X+ORIJI+zDmOkj3Ukz0WfDfTbi9MvO0Zdvq/mGdNmmzEfTlwdn9mm4lIxqpjt8kWS8cLpI7n/lIFs29vMRX/71O9ztOEyWvl0GFW2f32wmqsWrEJID//+3slanUs4jIH4gjE6cawjeS760uG0F7MOmxGMO11D32j9jgZuen4tKUkJLLg2lxljBgXfqY/0VkEV9762gTHZ6bxw82yGhzDKcmVPh/0Ixp1wqm8Yc8cO4oE5A0hJTODSJ1fyl4+24ukK/LyE0xNONbZ1ct0/PuaeRQWMz0rk37eeRHVZMaEoksdZxaiyuRNOxYncEUzf60BrJ796ayNvFlQzffRA/nzFdMbn9OnbIQCs2raPH71ayO7GNu46cyJ3nDGR5MTD5u9m3OiwH8Hk5+f7pc02Yz6cuDo+s03FpWJUMdvlc5Ixq18yf7lyBn+7agbb9jbxjb8u58lPy2lu94TEaOULxljb2MZt/7eUq55eRXKi4HdnZPP9syZTVFgQ9DdD4bDyBeIz5nXqMxqMTrUXsw6bEYx7F0nfH2nGmgOt/OyNjXxSUsug9GRumTOB604aS/+05KCMod5Fqt7fypPLylm0biddXsnVs8cw/xtHkZaUEDN3aIx59y7SYaKSkhK/tNlmzIcTV8dntqm4VIwqZrt8fcU4PKsfz94wi9dvP5npowfyyPtbOOXhT3hoyWbWVdSzqXhzyPxGe1tnF//8KJ8f/7uQ0x5Zyr9W7+DbM0ay4MKRPHjRcaSnJDlaj6HWoRVHLDE61V7MOmxGMMuXL6dfv+67Bq2trfTr16937bMBvXldGWPo+Mw2M4MVo4rZLl+0GDfs2s/jn5TxSUktHq8kOz2Zrx09jFMn5XDkkEzG52SQkZqkZJFS0tDSSUlVPZX7O1i6pZbPttbR2tlFRkoiF84YyU0njmTi8Gwt1kjUY6h1qOKJNcZAXD4b6LeXmBvBCCFG97wkuVkIsUkIcU+PPVsI8aEQorRnrXUftLq62i9tthnzugq0j8pntqm4VIwqZrt80WKcNmogC67LI/+XZ/PYVTOYPrwf723azT2LCjj/b59z7K/eZ/bvPuKiv3/BpXb3aY8AACAASURBVE+u5JInVnDJEyu44G+fM/03HzLzwQ+5+tn13P96EYU7D3BJ7kgePncU+b88m4cunopoadBm1VUkj7MVRywxOtVezLI74ZQdeYAfSSnzhRD9gfVCiA/pfhP7Yynlw0KI+4H7gfuCBcvOzvZLq2yhKtB+Kp/ZZsVgZlQx2+WLNuOAtGS+dfwI5ozpR+aALMpqm6ioa2ZbXTMVdc3sbmyjI0GS3DOrXGZqEtNGZTE+J4MhaZKp44YxPicDIQQNDQ2kJiVacjhZj6HWYTwwOtVezIraCEZKWSOlzO9JHwQ2AyPpnud3Yc9mC4GLdOK1tLT4pc02Y15XgfZR+cw2FZeKUcVsly+WGJMTEzh6+ADOmzqcO86YyCOXHc8LN5/An741nhdvOYEXbzmBhTfN5ncXT+WWORPIG5HGhCGZCCGCckWKMRRfoDqMB0an2otZ0RzB9EoIMQ6YQfek4cPk/755XSOEGKoTw3i125dW2UJVoP1UPrPNisHMqGK2yxcPjFY+HUYdVqcYA/HFA6NT7cWPISJRbEgIkQn8B/i+lLIxhP3mCSHWCSHW1dTU0NLSQk1NDVVVVbS1tVFeXt794ltxMV6vl4qKCpKTk3ufTszPz+/1t7a2Ul5eTkNDA1VVVdTU1FBXV0dFRQUej4eSkhI8Hk/vh6h8MXxvmxYVFdHe3k5paSkdHR1UVlZSW1tLbW0tDQ0NNDY2Ulpa2rutcV/furKyEo/HQ01NDU1NTVRUVFBXV9dbpoaGBsrLy2ltbe0tU35+ftAytbW1BS2TMYaxTMAhZWpqavIrU3t7e++25idCCwsLg5Zp7969fmUycvjKVFVV5VemxsZGvzIlJCT4lcm3Nh6nxsZGy+NkLpMxllWZGhsbDzlOvuOQlJTkV6aKigq/MqnOvaamJsvjZC7Tnj17gpZp586dyjKpzr2Wlha/MqmOU7CnfaN6F0kIkQwsBt6XUv6px7YFOL1n9DIcWCalnBIkzl5gP3Cgx5TVk84y2ZKBUKdKN8bQ8ZltZgYrRt86J0TGQHzxwGjl02EMZHOaMRBfPDDq1Gco7WWslNJ/Hm7VJDF9sQAC+CfwF5P9EeD+nvT9wB804y0wp802LCbF0Y2r4zPbVFwqRsM6JMZAfPHAaOXTYQzC6ihjIL54YHSqvZiXaP6LdApwLXCmEKKgZ/kG8DBwthCiFDi7J6+jdxRplS1UBdpP5TPbrBjMjE7wWfljidHKp8MYzBaKInmcrXhiidGp9nKIDosH7XQlhFgnFQ8DxZJcxsjIZbSvSPBF/SJvH2tBtAE05DJGRi6jfdnm+0qNYFy5ctW3+qqNYFy5ctWHcjsYV65cOSa3g+mREOIiIcTTQoi3hBBfjzaPSkKICUKIZ4QQr0WbxSghRIYQYmFP/V0TbR6zYrXejIqT8+9oIcSTQojXhBC3ae1k9z53LCzAs0AtsNFkPxfYApTR82yNRqxBwDMxzvhaLNUp3Y8bXNCTfiVWj3lf1FsEGB05/yLMmKDL2GeV7XAlzQVmGisJSATKgQlAClAIHANMpfvpYeMy1LDfo8DMGGfsiw4mFN75wPSebV6KtWPel/UWAUZHzr9IMQLfAlYAV+vEj4mXHe1KSvlZzwuTRs0GyqSU2wCEEIuAC6WUvwfON8cQ3a/tPgz8V/a85R1rjH2pUHiBXcAooIA++rc7RL7QPjEQIYXCKITYjIPnXyQYgWIp5dvA20KId4GXgsU/nK/BjAR2GvK7emxWugs4C7hUCPE9J8EMColRCDFYCPEkMEMIMd9pOIWseF8HLhFCPEGEngANU0q+GKg3o6zqMBrnn5Ws6vF0IcRjQoingCU6gQ6LEYyFhMJm+dCPlPIx4DHncJQKlXEfEM2TT8krpWwGbuxrGIWs+KJdb0ZZMUbj/LOSFeMyYFkogQ7nEcwuYLQhPwqwPwdgZBUPjEbFOm+s88FXjPFw7mDWApOEEOOFECnAlcDbUWYyKx4YjYp13ljng68aY19eVXfwSvjLQA3QSXfve3OP/RvAVrqviP/MZTx8eGOdz2XsXtx3kVy5cuWYDud/kVy5chVluR2MK1euHJPbwbhy5coxuR2MK1euHJPbwbhy5coxuR2MK1euHJPbwbhy5coxuR2MK1euHJPbwbhy5coxuR2MK1euHJPbwbhy5coxuR2MK1euHJPbwbhy5coxHRYz2uXk5Mhx48ZFG8OVq6+s1q9fXyelHOLniOZcFJFacnNzZUFBgfTJlzbbjHldBdpH5TPbVFwqRhWzXb54YLTy6TDqsDrFGIgvHhgj3V6AdTLW5oMRQlQAB4EuwCOlzBNCZAOvAOOACuByKWVDoDh5eXly1apVJCV1D8g8Hg9JSUm9a58N6M3ryhhDx2e2mRmsGFXMdvnigdHKp8Oow+oUYyC+eGDUqU/Qby9CiPVSyjyzPRauwZwhpZxugLsf+FhKOQn4uCcfVGVlZX5ps82Y11WgfVQ+s03FpWJUMdvliwdGK58Oow5rOIyeLi/rdzTw2MelXP7USub8v4859f99wsm//5gTHvqIc/78Gfe8sJK3CqqoOdAakNcpRh1fuMfZlw6nvZgVCyOYPCllncG2BThdSlkjhBgOLJNSTgkUJy8vTy5btozMzEwAmpqayMzM7F37bEBvXlfGGDo+s83MYMWoYrbLFw+MVj4dRh3WUBirmyWPf1LG0i21HGzzIAQcNyKLMQNTSU1JJiFBkCgEuxvbWFdRT3NHFwBHDsngO7NGcPXJR5KalOgoY1+ciz4b6LcXqxFMtC/ySuADIYQEnpJSLgCGSSlrAHo6maE6gerq6norw5c22yD0DsYYQ8dntqm4VIwqZrt88cBo5dNh1GHV0Y59zfz2zQI+KjtARkoS35w6nDmTczj5yByyM1KoqKjAfBOhbNt22lKzWb29nrcKqvj1klKeWF7JLXPGc/UJYyPOGKiurHzhHmefDUJvL2ZF+1+kU6SUM4HzgDuEEHN1dxRCzBNCrBNCrKupqaGrq4uamhqqqqqQUlJeXk5ycjLFxcV4vV5qamrIzMxk/fr1AOTn5+P1eikuLqa1tZXy8nIaGhqoqqqipqaGuro6KioqSExMpKSkBI/HQ2FhIUBvjOrq7i85FBUV0d7eTmlpKUIIKisrqa2tpba2lpaWFhobGyktLSU1NZWioqJD9vWt9+zZg8fjob6+nqamJioqKqirq+stU0NDA+Xl5bS2tvaWKT8/P2iZpJRBy2SMYSxTamrqIWXq7Oz0K1N7e3tvmXwxfOvCwsKgZWpsbPQrk5HDV6a6ujq/MrW3t/uVqV+/fn5l8q2Nx6mxsZHNZdv50ctrOPPRT/l0WyPXnzCKhZeO5TcXTGGs2Ed2Rgrr168/JJavTI37GxiXlcjXRgmeuWIKvz9nBKOzknloSQknPfQhH5YdZNOmTWRkZPiVqaamxq9MqnOvqanJ8jiZy7R//34aGxstz7329nZqa2t79zXGUp17XV1dtLe3Bzz3jByWUl35jcYCPAD8mO4Pbg/vsQ0HtgTbNzc3V1ZXV/de0falzTZjXleB9lH5zDYVl4pRxWyXLx4YrXw6jDqsVtpYtV+e/shSOf7+xfLnbxTJwq0VITFa8X1Z2SAvfeILOfa+xfLG59YcErev6zHc4+xLh8KHxV2kqI1ghBAZQoj+vjTwdWAj3d9fub5ns+uBt3Tieb1ev7TZZszrKtA+Kp/ZpuJSMaqY7fLFA6OVT4dRh9UsKSX/Wr2Di/+xgpYOD4vmncSDFx3H4HTrqwWh1OH00QNZNO8k7p4zghXldVzz4mb+s34XUso+r8dwj7MvHU57MSua12CGAW90f3OeJOAlKeV7Qoi1wKtCiJuBSuAynWDp6el+aZUtVAXaT+Uz26wYzIwqZrt88cBo5dNh1GE1qqXDw33/KeKdwmrmTh7Cny8/nsGZqWExBuJLTBDcePI4Lj5hMj94eT0/+nchX5TVce8Zo4IyBlJfnYvhsFkpaiMYKeU2KeXxPcuxUsrf9dj3SSm/JqWc1LOu14lXX1/vlzbbjHldBdpH5TPbVFwqRhWzXb54YLTy6TDqsPp0oKWTa59Zw7sbqrn3nCk8f8Os3s4lHMZAfL78+JwM/nDuCH5w1mRe/7KKG/5ZSPX+1j6rx3CPsy8dTnvxk+r/pnhbcnNzZUtLS+//g7602WbM6yrQPiqf2abiUjGqmO3yxQOjlU+HUYdVSilrG9vkOX/+VE786bvyv0Xq6wqRPM4qjg827ZbH/OK/MvfBD+Tykuqgv+k0Y6TbC6FegxFCNAZZDgohttrv4iKj7du3+6XNNmM+nLg6PrNNxaViVDHb5YsHRiufDqMO666GFi5/aiU79rXwzPWzOPe44RFhDMSn4jj7mGE8eu4R9E9L5vrn83llbaXj9Rjucfalw2kvZlk+aCeE+FJKOSPgzhrb9IXy8vLkmjVrSEjo7i+9Xi8JCQm9a58N6M3ryhhDx2e2mRmsGFXMdvnigdHKp8MYjHVHfSvXPL2KpnYPz904i9yx2RFjDMQXiPFgexd3vZTPZ6V13HXGkfzw61PouQ4ZVH11LvpsoN9ewnlV4BKNuDrb9IkKCgr80mabMR9OXB2f2abiUjGqmO3yxQOjlU+HMZDtoxXruebpVbR7vCyad1LAziUcxkB8gRiz+iVz5/FJXJE3mr8tLedHrxbS4dG7W9NX56IvHU57MSuqrwpESnl5eXLdunXRxnAVI6praufyp1ayt7Gdl+edyHEjs6KN5Ccpu19LePTDrZwycTBPfCeXAWnJ0cYKW2G/7NhzrcV8/WWnEOINIcQEZ3BDl/GJQvPTjr500KcOg8TV8ZltKi4Vo4rZLl88MFr5dBhVts9WreX6Z9ewq76ZZ2+cpd25RPI4B2Ncv349QghOHtjIo5cdz+pt9Vz+5MreFyf7gtGp9mJW0BGMEOLXQDXwEiCAK4Ej6H7i9jYp5em2KWzKHcG4Amjt6OL6Z9eQX9nA09fnccYUrdfYoq4vyur43gvryUhN4rkbZ3H08AHRRgpZdqZrOFdK+ZSU8qCUslF2v5D4DSnlK8CgiJOGKd+7Eca02WbMhxNXx2e2qbhUjCpmu3zxwGjl02E02tauW89dL+eztqKeP18xnazmXY4yBuKzYrSqx1Mm5vDv204C4LInV7K8dK/jjE61Fz+p7l0bF2AlcDndnVFCT3pVj68g2P59seTm5squrq7ee/K+tNlmzOsq0D4qn9mm4lIxqpjt8sUDo5VPh9G39nq98mevb5Bj71ssn/t8W58wBuJTMaps5n2q97fIc/78qTxy/rvylbWVjjJGur1g412ka4BrgVpgT0/6O0KIfsCd9ru4yKikpMQvbbYZ8+HE1fGZbSouFaOK2S5fPDBa+XQYfeunl2/jxdWV3Dp3ArMHtfYJYyA+FaPKZt5neFY/Xv3eSZw4YTA/eW0DDy3ZTJdX+u0fCUan2oufVL1OvC3uk7yh+WOJ0e6TvO8UVsmx9y2Wt/5zjezq8vYZY6hP8qpsVr/Z4emSv3yzSI69b7G87pnVcn9LR8QZo/4kr09CiMlCiI+FEBt78tOEED+337VFVr65Noxps82YDyeujs9sU3GpGFXMdvnigdHKp8P4fn4ZP3ylkFnjBnHP7IEkJIg+YwzEZ8zr1KdZyYkJ/PrC43jo4ql8UVbHxf/4gm17m/rsXPSlw2kvZun8i/Q0MB/oBJBSbqD7TlJMKTs72y9tthnz4cTV8ZltKi4Vo4rZLl88MFr5gjFu29vErz6sZlR2P56+Lo8jhub0KWMgPiuOUOvx6hPG8K9bTmB/SycXPv4F6/ZYP5AXyePsS4fTXszS6WDSpZRrTDaP7V+OsFpaWvzSZpsxH05cHZ/ZpuJSMaqY7fLFA6OVLxBj9b5Gbnp+LULA8zfMZmB6Sp8zBuKz4giH8YQJg3n7zlOYOCyT+97eyv3/2UBLh3/zi+Rx9qXDaS9m6XQwdUKII+mePxchxKVAje1fjrCM70z40mZbqO8hmWPo+Mw2FZeKUcVsly8eGK18VoxtnV3Mf3c71Qfa+MMFExgzOD0qjIHq0IojXMZRg9J59daTuC5vGK+s28kFf/uc4upGW4xOtRc/Bo1t7gCeAo4SQlQB3wdus/3LEVZycrJf2mwz5sOJq+Mz21RcKkYVs12+eGC08qkYpZT85LUNbKhp5k+XH8/MMYP8tu8rxkB1aMVhhzE5MYG7Tx/HizefwME2Dxf9/Qv++lEp7Z6usBidai9mBe1gZPfEUGcBQ4CjpJSnSikrbP9yhOX7zIIxbbYZ8+HE1fGZbSouFaOK2S5fPDBa+VSMf/5wK28XVvPdE4Zy/rQRWqxOMQaqQyuOSDCeMjGH/94zh68fO4w/f7SV8/66nJXl+yJ6nH3pcNqLWZZTZgohfmhhB0BK+Sfbvx5B5eTk+KVVNjtxdXxmmxWDmVHFbJcvHhitfGb751UeHvukjMvzRnH3WRO0WZ1iDFSHVhyRYhycmcrjV8/k0txafvHWRq56ehUXThvGz7KPYOiANC1Gp9qLWYFGMP17ljy6/yUa2bN8DzgmIr8eQe3atcsvbbYZ8+HE1fGZbSouFaOK2S5fPDBa+Yz2L8rq+NXiLZw6MYffXTyVqqoqbVanGAPVoRVHpBlPnzKUD75/GreffiSLi/Yw95Gl/H7JZhqaO4IyOtVezNJ52fED4BIp5cGefH/g31LKc23/eoTkfpv68P02demeg3z7iRUcMSCN/9x+MgPSkmP+u88qHqcZy/Yc4PGl23irsJqMlCRuPnU81504msH9+yn3j6VvU48BOgz5Dro/TB9T2rRpk1/abDPmw4mr4zPbVFwqRhWzXb54YLTybdq0idqDbdzw3FrSkhP5yYmZvfOlWB3fvmQMVIfRYGzeXcFfrpzB+9+fy6kTc/jrx6Wc/PBS5r9eRMnuRkuWQKzhtBezdEYwP6P7Bcc36L5VfTHwipTy97Z/PUJyp2s4/NTS4eHKBaso3dPEq7eexNRRsTdpVCyruLqR51ds562Cato9Xk6ckM1Vs8dw1tHDyEiN/NeKwh7ByO7PidwINAD7gRtjqXPxyZ1wKj4ZVT5Pl5frnljGxqoDPHbVDKaOytKecKqvGO1OOOU04zEjBnDFeA+r5n+N+887ip31rdyzqIDc337IHf/K5+9vfUFbZ1dA1j6ZcCoe5I5gDh9JKfnFWxt5cVUlD154LNeeNC7aSIeFvF7Juh0NvFNYzZKiGvY1d5CalMAJEwYzd1IOcyYNYfKwTO0JyM0KeQQjhAg624zONn0ldwQTn4xm35OfbuPFVZVcNCXjkM7FHcHYY0xIECTWb+fBi45j9U+/xi/nDuLqE8ZQvb+V3767mXP+8hkzHniPef9cxxPLyvnneyv5YvXakPhUCvTZklagNNC+QJaUcoxtCvXvnwv8FUgE/k9K+bDVtu4I5vDQWwVV3LOogAuOH8Ffr5hOQkJ4f01dhabq/a18XlrHym37+LKygYp93e8gJSYIFt91qtYUnuFcgzkKuCDAcj5wcqiF0ZEQIhH4O3Ae3c/cXCWECPjsTVFRkV/abDPmdRVoH5XPbFNxqRhVzHb54oHR51u1bR/3/nsDs8dn88fLprFp08agjDqskWQMZLPKxyqjMb1vZxmXzxrNTccksuzeM8j/xdn88vQhXHpMfyYMyQiJ0U+qSWKivQAnAe8b8vOB+Vbb5+bmyra2tt7Jb3xps82Y11WgfVQ+s03FpWJUMdvliwfGtrY2uWV3ozzuV+/Jrz26TO5v7tBm1GGNFGMwm1U+Vhkj3V6wMWVmNDQS2GnI7+qxWaqystIvbbYZ87oKtI/KZ7apuFSMKma7fPHAmL+5nBueXUNaciLP3ziLrPRkbUYd1kgwhlqH8cDoVHsxK1Y7GNU/34dcLBJCzBNCrBNCrKupqSE1NZWamhqqqqro168f5eXlZGVlUVxcjNfrpb6+nmHDhvVe+MrPz8fr9VJcXExrayvl5eU0NDRQVVVFTU0NdXV1VFRU0L9/f0pKSvB4PBQWFgL/u3i2b98+oHu42d7eTmlpKRkZGVRWVlJbW0ttbS1er5fGxkZKS0sZNGhQ79DUt69vvX//fjweDy0tLTQ1NVFRUUFdXV1vmRoaGigvL6e1tbW3TPn5+UHL1K9fv6BlMsYwlmnQoEGHlCk5OdmvTO3t7b1lMl+8LCwsDFimnbv38tP3q9jf2skv5w5mRFZa70z2Pg5fmZqamvzKlJiY6FemwYMH+5XJtzYep8bGRsvjZC6TMZZVmRITEw85Tr5zb8iQIX5lqq+v9yuT6txramqyPE7mMrW1tQUtU2Njo7JMqnMvNTXVr0zmc8/IYSnVsMa8AGOBs3rS/YD+OvuFuxDGv0g7duzoHa750mabMa+rQPuofGabikvFqGK2yxfLjO2dXfKap1fJCfMXy0+31IbFqMNqhzGQLxBfPDBGur1gY07e7wKv0T0nDMAo4M1g+9nUWmCSEGK8ECKF7ik63w60Q1paml/aaCMxmTYZ+hOMh8TQ8JltKi4Vo5LZJl+sMkopuf/1DXxeVsfPzh7P3MlDwmLUYQ2XMZgvEF88MOrUZ6h8Kum0uDuA2cBqACllqRDC0U/mSSk9Qog7gffpvk39rJTS1osRX2w/wPzF5YzP2cqMMQOZMWYQM0YP5OjhA0h0b4f2qf784VZez6/iB2dN5vxj3VcADmfpdDDtUsoO3xN+QogkTNdDnJCUcgmwRHf7trY2v7TRNmZAIvNOHMb2Rvhs615ez+9+5X9QejKnTMxh7qQhnDophxED+1nGDfSbVjYVl4pRxayjYNvHGuOiNZU89kkZV+SN5u6vTWTnzp1B9wnGFWlGHV8gvnhg1K1Pu9LpYD4VQvwU6CeEOBu4HXgnIr8eQQ0cONAvbbRNHTeMqeOGMWDAAKSU7GpoZd2Oej4v3cfy0r0s3tA9zfDUkVlccPxwvjltBCMH9jskRqDftLKpuFSMKmYdBds+lhiXbanlZ29uZO7kIfz24uMQQljG0mHUYQ2VUdcXiC8eGHXr06507iLdD+wFioBb6R5VxNx3kfbs2eOXNtt8eSEEo7PTuXjGKB69/HhW//RrvPf9Odx/3lEIAQ8tKeGUhz/h0idW8NynW5SzuJvjW9lUXCpGFbOOgm0fK4wbqw5wx7/ymTKsP/+4ZibJiQkBY+kw6rCGwhiKLxBfPDCG0l7sKKSXHYUQ2cAo2f1tpJhRXl6e/OKLL0hNTQWgvb2d1NTU3rXPBvTmA6mirpnFG6p5u7CarXuaGJCWxBWzRnPtieN6Z7E3/o5RZpuZwYpRxayjYNvHAmNF7QEuf3otSQmCN+44hWGGaR2tYukw6rDqKtD2odZhPDDq1CfotRewMV2DEGKZEGJAT+dSADwnhIip+XgBtm7d6pc224z5QBqXk8GdZ07i/e/P5eGzhzJ38hCe+6KC0/64lHn/XMfmmka/+CoOKy4Vo4pZR8G2jzbjwbZObnh2Na0dXTx34+xDOpdAsXQYdVh1FWj7UOswHhgj2V4CSWfCqS+llDOEELcAo6WUvxJCbJBSTrP96xFSX7zsuPtAG/9avYPnV1TQ1O7h/Gkj+MFZk5gwJNPR341ndXZ5uen5taws38fzN87m1EmRmUjaVezJzpSZSUKI4XTParc44mQRktPTNRyRlcaPvj6F5T85g9tOO5KPivdw1p8+5f7/bKC+ucNv+0BcKsbDbboGKSW/eHMjy0vrmDezv2XnYhVLhzFWpkIIlI9VRqfai1k6I5jLgF8An0spbxdCTAAekVJeYvvXI6RoTNew92A7/1hWxgsrd9A/LYn53ziay3JHhT1hz+Gmvy8t45H3t3DnGRP58TlToo3jymHZmTLz31LKaVLK23vy22Kpc/GpryecGtI/lfNHtPHu3XM4ckgmP3ltA1cuWMVbS1cH5VIxHk4jmHcKq3nk/S186/gR/Ojrk0P+y6vLGKujg3hgjKURTBpwM3As0HuFTkp5k+1fj5CiPeGU1yt5Zd1Ofr9kM22dXu4/7yhuPGXcV3I0s35HPVc9vZrjR2Xxws0nkJacGG0kV30gO9dgXgCOAM4BPqX7XaSDkcWzL9+bzsa02WbMhxPXypeQILhq9hg+/tHpHH9ECr9ZXMzNC9exr6ldyaViVDHb5bPym22RYqzc18J3/7meEVlpPHVtXm/nolOH4TDqsOoqVMZAfPHA6FR7MSuUu0gbpJTThBDJdL/pfKbtX4+QYunDa52dnfxrzS4eWlLCwPRkHr1sKnMmD/Pb/nD78NqBlk4ufuIL6ps7eOP2Uxifk2H5ezr8Oozuh9fCZ4ylD6919qz3CyGOA7KIwQ+vlZWV+aXNNmM+nLg6vvLycm44ZTxv3HEymWlJXPfsOv6xrAwpZUBGFbNdPiu/2abiCoWxw+Pl1hfXsau+lQXX5h3SuQRjtPLpMOqw6ipUxkB88cDoVHvxk2oOB3no3Cy3AIOA04BtQC3wvWD79eWSm5srDx482Ds3hS9tthnzugq0j8pntDW3d8rvLVwtx963WN71Ur7cW7/fklHFbJdPh9GcD1SPKkav1yvveTlfjr1vsXwjf1fIjFY+HUYdVl3ZOc6B8rHKGOn2QrjzwUgp/09K2SCl/FRKOUFKOVRK+aT9ri2yqqur80ubbcZ8OHF1fEZbekoSP5kzhHvPmcI7G6q5+tl11BxoVTKqmO3y6TCa84HqUcX46AdbebOgmnvPmcJFM9SzmoZah7qMOqy6snOcA+VjldGp9mJW0H+whBCpwCV0/1vUu72U8je2fz2CyszM9EurbHbi6vjMtv79+3PHGTlMGdafu1/O51uPf8HT1+UxysSoYrbLp8toVU9WbL71y2sqeXxpGVfOGs3tpx8ZFqOVT4dRh1VXdo+zVT5WGZ1qL2bpXIN5C7gQ8ADNhiWm1NnZ6Zc224z5cOLqRoQu1AAADq1JREFU+Mw2X/6sY4bx9BVTSEtO4MoFK/lky14la6iMwbYPhdEqrVov3VLLz9/cyGmTh/DgRccFvCUfah3qMuqw6ipSxzleGJ1qL2bpXCIeJaU81/YvOSyv1+uXVtnsxNXxmW3G/LhBqbxx+ync/Pxa7l+8jbaEfnxtTLIls12+cBgD1aNvvbH6IPe8tY0pw/rzd8PUC+EwWvl0GHVYdRXJ4xwPjE61F7N0RjArhBBTI/JrDio9Pd0vbbYZ8+HE1fGZbWaGnMxUXp53IqceOYhfvrWJBatr8XqlktkuX7iM5rRxvXXPQX78znYGZ6bw3I2zyEwN/jcq1DrUZQzGGooieZzjgdGp9mJWoG9TFwkhNgCnAvlCiC1CiA0Ge0ypvr7eL222GfPhxNXxmW0qrvSUJH5+2lCuPXEsC9dUc9eiL9ldWxf090Lls8NoTPvWmyp2c+0zq0kUkhdvPsFv6oVwGK18OoyBbJGsx1DrMB4YnWovflLdWpL/+1SJ5WK1XzSW3Nxc2dLS0nvLzJc224x5XQXaR+Uz21RcvrTX65V/+3CzHHvfYvntvy+XDc3tITMG294uo2+950CrPPXhj+S0B96XBRX+nxkJl9HKp8MYyBbJegy1DuOBMdLthTBuU+8BLgbuBc4FqqSUO3yL/a4tstq+fbtf2mwz5sOJq+Mz21RcvrQQgjNHeHnsqhkU7jrAt59YwcoNoU3yE6xMdhkBCjaXce0za9h7sJ3nb5xFcvPeiDFa+XQYA9lCPdaRPM7xwOhUezHL8lUBIcQrdD/Fu5zuj9DvkFLeY/sXHVBeXp5cs2YNCQnd/aXX6yUhIaF37bMBvXldGWPo+Mw2M4MV46ryOua9sJ6UpASevWEW00bpTbociC8SjLUHO7j2mdVU1rfwf9flMmfy0KC/GQqjlU+HMZDNacZAfPHAqFOfoN9ewnlV4Bgp5XeklE8BlwJztH4pSiooKPBLm23GfDhxdXxmm4pLxZhyoJLXbz8Z4e3i8qdW8lZBlW0+u4zvfb6OS59cwc76Zp6/cTYZTbu0fjMURiufDmMgm9OMgfjigdGp9mJWoBFMvpRyplU+lhTt6Roiqbqmdm5/MZ81FfXcOncCPzn3qKh8GG7L7oN855nVdHZ5WXjjbI4fHZnPWLg6PBXOCOZ4IURjz3IQmOZLCyEanUMNT3094ZSVz+5kTju2bOTFW07g2hPH8tRn27jhuTUcaLF+4MmJCadWb9vHFQtW4uns5NVbT8JTW65k1ZU74VTsMcbMhFNOSAjxAPBdur+3BPBT2f0lR4QQ8+me4KoLuFtK+X6weIfTCMaoRWsq+cVbGzkiK41HLj2eEycMdvT3vF7JE5+W8+gHWxg7OIOFN84+5DMtrlxZyc50DU7pz1LK6T2Lr3M5hu4P3R9L952rfwghtKZEy8/P90ubbca8rgLto/KZbSouFaOK+crZY1g07yQEgisXrOKBtzf5fQQuWJl0Gfc1tXPD82t55P0tfGPqcN6+8xTqdpQEZdRRqHVoxWhO69SnU4yB+OKB0an2YlY0RzBNUso/muzzAaSUv+/Jvw88IKVcGSje4XAXKdCdhZYOD394bwvPr6hg7OB0/nDJNE7oGc3YvYskpeTjzXv42ZsbaWjp5JffPJprThyLECIkxkBy7yLFHmMs3EVyWnf2PBn8rBBiUI9tJGD8GvquHltQlZSU+KXNNmNeV4H2UfnMNhWXilHF7FN6ShIPfOtYFs07ESnhigWruP7ZNazeto/NmzeHzO+zrd62j8ueXMkt/1xPRkoSb9x+MjOzWnpfXAyFMVSGYD6detSpT6cYA/HFA6NT7cUsxzoYIcRHQoiNiuVC4AngSGA6UAM86ttNEUo5xBJCzBNCrBNCrKupqSErK4uamhqqqqrIzs6mvLyc4cOHU1xcjNfrpbm5mfHjx/deuMrPz8fr9VJcXExrayvl5eU0NDRQVVVFTU0NdXV1VFRUMHToUEpKSvB4PL1zlPpiNDU1AVBUVER7ezulpaXk5ORQWVlJbW0ttbW1pKSk0NjYSGlpKSNHjqSoqOiQfX3r1tZWPB4PXq+XpqYmKioqqKur6y1TQ0MDQ+R+3rh1FtfPGMTGqgNcsWAVP1/WwJPvfEG7p0tZpuzs7EPKtKVsG9taUvn2Y59wxYJVbKs9wK++OYWHTsvk2BFZh5Rp5MiRh5Spf//+fmVqb2/vLZP5YmFhYWHQMiUkJNDa2tp7nHzDch+Hr0wej8evTBkZGX7HafTo0RQWFh5yrH1r43FqbGy0PE7mMhljWZUpIyOjt0zGc2/s2LF+ZWpubvYrk+rca2pqOuTcC1QmIGiZfNuZy6Q697KysvzKpDpOQS8Eqx7v7cuF7nlmNvak5wPzDb73gZOCxcjNzZVlZWW9jy370mabMa+rQPuofGabikvFqGIOpNYOj1y4Yruc9eB7cux9i+Xkny2Rlz+5Qj76fon8dEut/LKyQa6rqJdvfr5Briirkws+LZfXPrNaTvn5Ejn2vsVy+q/flws+LZetHR7HGFUxdX069ajD6hRjIL54YIx0e8HiVYHQZsCOkIQQw6WUNT3Zi4GNPem3gZd6vn09ApgErNGJmZ2d7ZdW2UJVoP1UPrPNisHMqGIOpLTkRK47aRznTupPYa2HVdv2sWZ7PY8vLcPrN+arBGDi0EyunDWGGcPTOPv4saSnJDnKqIqp69OpRx1WpxgD8cUDo1PtxayodDDAH4QQ0+n+96cCuBVASrlJCPEqUEz3BFd3SCm7dAK2tLQwaNCgQ9JmG9Cb15Uxho7PbFNxqRhVzDrqbG/j7GNGcvYx3V8uONjWSdGuA7R5ukgQgob6eoYNyWH8kAyGZ/UDoKqqqrdz6QvGUOtQZdc5vn3JGIgvHhidai9mRaWDkVJeG8D3O+B3ocY0Xu32pVU2O3F1fGabFYOZUcUcDl//tGROnvi/70DX1HQxfHhOwH36mlHHp8Oow+oUYyC+eGB0qr2YFa0RTMSVnJzsl1bZ7MTV8ZltVgxmRhWzXb54YLTy6TDqsDrFGIgvHhidai9mReU5mEhLCLEX2A8c6DFl9aSzTLZkINSp0o0xdHxmm5nBitG3zgmRMRBfPDBa+XQYA9mcZgzEFw+MOvUZSnsZK6Uc4mdVXfmNxwVYYE6bbVhc6daNq+Mz21RcKkbDOiTGQHzxwGjl02EMwuooYyC+eGB0qr2Yl2g+aBdpvaNIq2x24ur4zDYrBjOjE3xW/lhitPLpMAazhaJIHmcrnlhidKq9HKLD4l8kXQkh1knF48yxJJcxMnIZ7SsSfIfTCEZHC6INoCGXMTJyGe3LNt9XagTjypWrvtVXbQTjypWrPpTbwbhy5coxuR2MK1euHJPbwfRICHGREOJpIcRbQoivR5tHJSHEBCHEM0KI16LNYpQQIkMIsbCn/q6JNo9ZsVpvRsXJ+Xe0EOJJIcRrQojbtHay+yBNLCzAs0AtPdM+GOznAluAMuB+zViDgGdinPG1WKpT4Frggp70K7F6zPui3iLA6Mj5F2HGBF3GPqtshytpLjDTWElAIlAOTABSgELgGGAqsNi0DDXs9ygwM8YZ+6KDCYV3PjC9Z5uXYu2Y92W9RYDRkfMvUozAt4AVwNU68Q+Llx2llJ8JIcaZzLOBMinlNgAhxCLgQtk93+/55hiie57Ih4H/Sintz3bsAGNfKhReuqc2HQUU0Ef/dofIV9wXTGaFwiiE2IyD518kGIFiKeXbwNtCiHeBl4LFP5yvwYQ6v+9dwFnApUKI7zkJZlBIjEKIwUKIJ4EZvgnS+1hWvK8DlwghniBCj5iHKSVfDNSbUVZ1GI3zz0pW9Xi6EOIxIcRTwBKdQIfFCMZC2vP7AkgpHwMecw5HqVAZ9wHRPPmUvFLKZuDGvoZRyIov2vVmlBVjNM4/K1kxLgOWhRLocB7B7AJGG/KjgOoosVgpHhiNinXeWOeDrxjj4dzBrAUmCSHGCyFS6P6g29tRZjIrHhiNinXeWOeDrxpjX15Vd/BK+Mt0f/6kk+7e9+Ye+zeArXRfEf+Zy3j48MY6n8vYvbgvO7py5coxHc7/Irly5SrKcjsYV65cOSa3g3HlypVjcjsYV65cOSa3g3HlypVjcjsYV65cOSa3g3HlypVjcjsYV65cOSa3g3HlmIQQ44QQrUKIAptxHhBC/Nhke0oIcYpi235CiAIhRIcQIsfO77qyL7eDceW0yqWU081G0S07598JwCqzUUrZ2vN7sfYC4VdSbgfjKmQJIb5lnt9WCHGbECLgdAM9I5rNQoh/APn/v737edEpiuM4/v74UUOmsVYTGw1R41dhMUWRJAssZIeFhYV/YMoGSfkDZG1jMbFAs1CKHWYYxoJSbGYlosxGfCzOndyGxjwzzynp81o93XvPOZ16+nTur+8F+iXdljQm6ZWkM61jhyW9lnQfGJjVz0bKezI9ku5KmpA0Kel41yYZXfE/14OJei4BJ2Ztewscm0fbAeCU7bMAkk7b/ihpBfBE0giwjvIG71bKf3QcGGv1cRAYpdSNnbJ9qOmrb8EziiqygomOSBoEltielLS2VV1+OXMUy2p5b7t9anNO0gTldKcfWA8MAbdsT9v+wu+lAg5QAuYlsE/SFUlDtj8vYmpRQQImOrWFX6uJ/ZRAgFL8e2Ie7b/O/JC0h1ImcrftQeAZ0NPs/mNYSVoJrLY9ZfsNsJ0SNJclne9sKlFbAiY6tQRYJWkpcBTobU5vTjKPItCz9AGfbE9L2gDsarY/BI40d4R6gcOtNnuBBwCS1gDTtm8AVynV8eMfkoCJTt2jfM7iOXAN2AQ8Ba6782r4o8AySS+ACzR3hZp+bjZjjACPWm1mrr9A+bzL4+Y2+DBwcSETinpScCqqaT6Hccf25i72OQ7stP3tL8e9A3bY/tCtsaNzWcFETd+BvsU+aNdme9tc4TLzoB3lovOPbo0bC5MVTERUkxVMRFSTgImIahIwEVFNAiYiqknAREQ1CZiIqCYBExHVJGAiopqfQSjDG3L9/eAAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "alpha = 10\n", "T1 = 1\n", "K1 = tf([alpha*T1, alpha], [alpha*T1, 1])\n", "\n", "beta = 0.1\n", "T2 = 0.1\n", "K2 = tf([T2, 1],[beta*T2, 1])\n", "\n", "k = 10\n", "\n", "C = k * K1 * K2\n", "\n", "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", "\n", "gain, phase, w = bode(C, logspace(-2,3), Plot=False)\n", " \n", "ax[0].semilogx(w, 20*np.log10(gain))\n", "ax[1].semilogx(w, phase*180/np.pi)\n", "ax[0].grid(which=\"both\", ls=':')\n", "ax[0].set_ylabel('Gain [dB]')\n", "ax[1].grid(which=\"both\", ls=':')\n", "ax[1].set_xlabel('$\\omega$ [rad/s]')\n", "ax[1].set_ylabel('Phase [deg]')\n", "fig.tight_layout()\n", "fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## ループ整形の例題\n", "\n", "垂直駆動アームに対して,以下の仕様を満たす位相進み・遅れ補償を設計せよ\n", "\n", "* ゲイン交差周波数を 40 rad/s\n", "* 位相余裕を 60°\n", "* 定常偏差を改善(定常偏差 0.02 以下)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "g = 9.81 # 重力加速度[m/s^2]\n", "l = 0.2 # アームの長さ[m]\n", "M = 0.5 # アームの質量[kg]\n", "mu = 1.5e-2 # 粘性摩擦係数\n", "J = 1.0e-2 # 慣性モーメント\n", "\n", "P = tf( [0,1], [J, mu, M*g*l] )\n", "\n", "ref = 30 # 目標角度 [deg]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARgAAAD0CAYAAABAfznBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO29eXgcxbnv/3kla5cXeTcYYYMNThzAwQbCYgh5DMGAMYeAw3II5OaGQxLyS84lJJCQhRsDCUvgh0lOIGSBBMJhSSABYk4IBgw2XmQsCwsvki3LsmUZIWtfR1P3j1kYtXu6p2dqNIvq+zz1TL1Lv1X97VKpZrr7LVFKYWBgYJAM5KS6AwYGBtkLM8EYGBgkDWaCMTAwSBrMBGNgYJA0mAnGwMAgaRiV6g4kGxMnTlQzZsxIdTcMDLIaFRUVzUqpSYcZlFJZXebPn69C2Lx5s2tdB7zGc/N3stvZrDovsk4uDA/R20rENx15ADYqm78/UVn+HMyCBQvUxo0bAfD5fIwaNcqxrgNe47n5O9ntbFadF1knF4aH2Pru1TcdeRCRCqXUAqt+RP0GU1NT41rX3Y4Ofye7nc2q8yLr5CKTeGhububRRx9lxYoV3HLLLSxZsoTHH388lm7HBC9cZNV4sFvWZFOJ/IrU0dHhWtcBr/Hc/J3sdjarzousk4tM4aGzs1OVl5crQAGqoKBAjRkzRk2cOFH19/fH2n1HeOEiE8cDUb4ijagVTHNzs2tddzs6/J3sdjarzousk4tM4eHee++lvr6eFStWcODAAXp6erj//vtpbm5m5cqVsXbfEV64yKbxMKImmNLSUte67nZ0+DvZ7WxWnRdZJxeZwMPevXu55557WLZsGVdeeSVTpkxBRLjooouYOHEif/zjHz2cQXx99+qbSeNhRE0wAwMDrnXd7ejwd7Lb2aw6L7JOLjKBh9tuuw2/38/Pf/7zw+xXXnklf/vb32htbXXruiu8cJFN42FETTB+v9+1rrsdHf5OdjubVedF1slFuvOwYcMGnnzySW6++WZmzJhxGA/XXnstfX19PPfcc7F03xFeuMim8TCiJpji4mLXuu52dPg72e1sVp0XWScX6cyDUoqf/vSnTJ06lVtvvfUwe3FxMaeccgrHHXeclq9JXrjIpvEwoiaYlpYW17rudnT4O9ntbFadF1knF+nMw9NPP83GjRu5++67GT169GH2lpYWRIRrr72Wt956i7q6ulhOIa6+e/XNqPFgd2spm0rkberu7m7Xug54jefm72S3s1l1XmSdXKQrD++9956aOHGimjdvnhocHLT1D9V3796tALV8+XL3E4iz715903E8YG5Tw+7du13rutvR4e9kt7NZdV5knVykIw9r1qzhs5/9LEVFRdx1113k5OTY+ofqM2bMYOHChfzxj39EJfDUuxcusmo82M062VQiVzCR/62i1XXAazw3fye7nc2q8yLr5CLdeHj11VdVcXGxmj17ttqzZ0/MPDz66KMKUOvXr3fsnxO8cJGJ4wGzgoHNmze71nW3o8PfyW5ns+q8yDq5SCcenn/+eS6++GJmzZrF6tWrKS8vj5mHK664goKCAp544gnXc4in7159M2o82M062VQiVzAGIw/bt29XS5cuVYA67bTTVEtLS1xxrr76alVSUqIOHDiguYfZAcwKBioqKlzrutvR4e9kt7NZdV5knVykkoeWlhauvvpq5s6dy7/+9S/uuusu7r//fsrKyqIe48TDj3/8Y3p7e1m+fLnreXjtu1ffjBoPdrNONhWzghk58Pl86rXXXlPXXXedKikpUTk5OeqGG27Qtuq44YYbVF5enqqtrdUSL5uAWcHApk2bXOu629Hh72S3s1l1XmSdXAwHDx0dHaxcuZJrr72WGTNmsGjRIv76179y1VVX8dRTT/HII48wZcoU2+O98vDjH/+YUaNG8cMf/jDmc3KKF69vJo2HuBJOichDMbi1K6Vu994lvYhMOOX3+8O3JaPVdcBrPDd/J7udzarzIuvkQjcPPT09bN++naqqKiorK1m9ejUVFRUMDg6Sl5fHeeedx3XXXceSJUsoKipKCg+33XYbP/vZz3jvvfeYN2+etnPz4puO40F3wqmlQIVL+UKcsR0hIheIyHYRqRGRW70cu23bNte6DniN5+bvZLezWXVeZJ1ceImllGL9+vVs376dN998k//+7//mnnvu4etf/zoXXnghc+bMYfTo0Xz605/mS1/6EitWrCA/P5/bbruN1157jbVr1/Lyyy+zbNkyioqKbNvXwcP3vvc9ysrK+P73vx/zuTnFi8c3k8ZDvCuYbyulHkzUJ452c4EdwHlAA7ABuEopVR3tmMgVTE9PT3jwRavrgNd4bv5Odjub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uwTeQwqhADgF+CzwtYR6lEQMDAy41nW3o8PfyW5ns+q8yDq5MDxEbysRX6t98eLFvPPOO4waNYolS5bwwgsvOPoPJw/xTjD5SqnIx/bfVkp9pJSqJ41/5PX7/a513e3o8Hey29msOi+yTi4MD9HbSsTXzn7iiSeybt065syZw2WXXcY999wT+p00pTzEO8EMeV5ZKXVThDgp/u4kF8XFxa513e3o8Hey29msOi+yTi4MD9HbSsQ3mn3q1Km89NJLLFu2jO9973t85Stfob+/P6U8xDvBrBORr1qVIvIfwPqEepREtLS0uNZ1t6PD38luZ7PqvMg6uTA8RG8rEV8ne09PD0899RQ/+tGP+P3vf89555132K3mYeXB7taSWwEmE8gBswq4P1jeANYCU+KJmawSeZu6u7vbta4DXuO5+TvZ7WxWnRdZJxeGh+htJeIbKw9PPvmkKigoUDNnzlRbt26NerwOHtB5m1opdVApdQaBZFN1wfJ/lVKnK6X05hrUiN27d7vWdbejw9/Jbmez6rzIOrkwPERvKxHfWHm4+uqrefPNN2lvb+f0009n5cqVtscnk4e40jVkEiLTNfj9fnJychzrOuA1npu/k93OZtV5kXVyYXiIre9efb3yUFdXx6WXXkpVVRW/+MUvuOmmm8jNzY16TDw8aE3XkKnYvHmza113Ozr8nex2NqvOi6yTC8ND9LYS8fXKQ0tLC2+//TZLlizh29/+NldccQX9/f1Rj9HJw4hawRgYjGT4/X5uv/127r77bs455xyef/55JkyYoCW2WcFgEk7FIpuEU7H1xSviSTgVj92Jh5ycHO666y5++tOf8u6773LqqaeydevWpPJgVjAGBiMQ7777Lpdeeind3d38+c9/5qKLLkoonlnBQDjBslNddzs6/J3sdjarzouskwvDQ/S2EvHVwcNnPvMZNmzYwKxZs1iyZAn33Xdf+MlfnTyMqBWMuYvkLpu7SKkfE8PJQ1dXF9dffz3PPfcc1113HY888gh5eXnmLlI82LZtm2tddzs6/J3sdjarzouskwvDQ/S2EvHVyUNJSQk/+clPuOOOO3j88cc599xzWb16dcx9cYXd03fpUIDvAAqYGJSFwNa0NQS2lT05ljjmSV7zJG88cjY8yRtNF01+9tlnVXFxsTryyCPVpk2bYupLCCQpZWZSICJHAecB9RHq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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", "\n", "gain, phase, w = bode(P, logspace(-1,2), Plot=False)\n", " \n", "ax[0].semilogx(w, 20*np.log10(gain), color='k')\n", "ax[1].semilogx(w, phase*180/np.pi, color='k')\n", "ax[0].grid(which=\"both\", ls=':')\n", "ax[0].set_ylabel('Gain [dB]')\n", "ax[1].grid(which=\"both\", ls=':')\n", "ax[1].set_xlabel('$\\omega$ [rad/s]')\n", "ax[1].set_ylabel('Phase [deg]')\n", "\n", "fig.tight_layout()\n", "#fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "制御対象のボード線図. 低周波ゲインが0[dB]なので,このままフィードバック系を構築しても定常偏差が残る." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 位相遅れ補償の設計\n", "\n", "定常偏差を小さくするために,位相遅れ補償から設計する\n", "\n", "低周波ゲインを上げるために,$\\alpha=20$ とする.\n", "そして,ゲインを上げる周波数は,$T_1$ で決めるが,\n", "最終的なゲイン交差周波数(ゲイン交差周波数の設計値)の10分の1程度を$1/T_1$\n", "にするために,$T_1=0.25$ とする($1/T_1=40/10=4$)." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "K1= \n", "5 s + 20\n", "--------\n", "5 s + 1\n", "\n", "-----------------------\n", "phase at 40rad/s = 176.8635987273622\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "alpha = 20\n", "T1 = 0.25\n", "K1 = tf([alpha*T1, alpha], [alpha*T1, 1])\n", "print('K1=', K1)\n", "\n", "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", "H1 = P*K1\n", "gain, phase, w = bode(P, logspace(-1,2), Plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain))\n", "ax[1].semilogx(w, phase*180/np.pi)\n", "\n", "gain, phase, w = bode(H1, logspace(-1,2), Plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain))\n", "ax[1].semilogx(w, phase*180/np.pi)\n", "\n", "ax[0].grid(which=\"both\", ls=':')\n", "ax[0].set_ylabel('Gain [dB]')\n", "ax[1].grid(which=\"both\", ls=':')\n", "ax[1].set_xlabel('$\\omega$ [rad/s]')\n", "ax[1].set_ylabel('Phase [deg]')\n", "fig.tight_layout()\n", "\n", "[[[mag]]], [[[phase]]], omega = freqresp(H1, [40])\n", "phaseH1at40 = phase * (180/np.pi)\n", "print('-----------------------')\n", "print('phase at 40rad/s =', phaseH1at40)\n", "\n", "#fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "最終的にゲイン補償によって,ゲイン交差周波数を設計値の40[rad/s]まで上げるが,あげてしまうと,位相余裕が60[dB]を下回る.実際, 40[rad/s]における位相は -176[deg]なので,位相余裕は 4[deg]程度になってしまう.したがって,40[rad/s]での位相を -120[deg] まであげておく." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 位相進み補償の設計\n", "\n", "40[rad/s]において位相を進ませる量は 60 - (180-176) = 56[deg]程度とする." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "K2= \n", " 0.1047 s + 1\n", "--------------\n", "0.005971 s + 1\n", "\n", "-----------------------\n", "gain at 40rad/s = -11.058061395752677\n", "phase at 40rad/s = -119.99999999999997\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "phim = (60- (180 + phaseH1at40 ) ) * np.pi/180\n", "beta = (1-np.sin(phim))/(1+np.sin(phim))\n", "T2 = 1/40/np.sqrt(beta)\n", "K2 = tf([T2, 1],[beta*T2, 1])\n", "print('K2=', K2)\n", "\n", "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", "\n", "gain, phase, w = bode(H1, logspace(-1,2), Plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain))\n", "ax[1].semilogx(w, phase*180/np.pi)\n", "\n", "H2 = P*K1*K2\n", "gain, phase, w = bode(H2, logspace(-1,2), Plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain))\n", "ax[1].semilogx(w, phase*180/np.pi)\n", "ax[0].grid(which=\"both\", ls=':')\n", "ax[0].set_ylabel('Gain [dB]')\n", "ax[1].grid(which=\"both\", ls=':')\n", "ax[1].set_xlabel('$\\omega$ [rad/s]')\n", "ax[1].set_ylabel('Phase [deg]')\n", "\n", "fig.tight_layout()\n", "\n", "[[[mag]]], [[[phase]]], omega = freqresp(H2, [40])\n", "magH2at40 = mag\n", "phaseH2at40 = phase * (180/np.pi)\n", "print('-----------------------')\n", "print('gain at 40rad/s =', 20*np.log10(magH2at40))\n", "print('phase at 40rad/s =', phaseH2at40)\n", "\n", "#fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "位相進み補償により,40[rad/s]での位相が -120[deg]となっている. あとは,ゲイン補償により,40[rad/s]のゲインを 0[dB] にすればよい." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ゲイン補償の設計\n", "\n", "40[rad/s] におけるゲインが0[dB]となるようにk=1/magH2at40\n", " をゲイン補償とする. これにより,40[rad/s]がゲイン交差周波数になり,位相余裕もPM=60[deg]となる." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "k= 3.571931073029087\n", "-----------------\n", "(GM, PM, wpc, wgc)\n", "(inf, 60.00000000000003, nan, 40.000000000000014)\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", "\n", "k = 1/magH2at40\n", "print('k=', k)\n", "\n", "gain, phase, w = bode(P, logspace(-1,2), Plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain), ls='--', label='P')\n", "ax[1].semilogx(w, phase*180/np.pi, ls='--', label='P')\n", "\n", "H = P*k*K1*K2\n", "gain, phase, w = bode(H, logspace(-1,2), Plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain), label='H')\n", "ax[1].semilogx(w, phase*180/np.pi, label='H')\n", "\n", "gm, pm, wcp, wgc = margin(P)\n", "ax[0].scatter(wgc,0)\n", "\n", "gm, pm, wpc, wgc = margin(H)\n", "ax[0].scatter(wgc,0)\n", "\n", "ax[0].grid(which=\"both\", ls=':')\n", "ax[0].set_ylabel('Gain [dB]')\n", "ax[1].grid(which=\"both\", ls=':')\n", "ax[1].set_xlabel('$\\omega$ [rad/s]')\n", "ax[1].set_ylabel('Phase [deg]')\n", "ax[1].set_ylim(-210,10)\n", "ax[1].set_yticks([-180,-90,0])\n", "ax[1].legend()\n", "fig.tight_layout()\n", "\n", "print('-----------------')\n", "print('(GM, PM, wpc, wgc)')\n", "print(margin(H))\n", "\n", "fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 閉ループ系の応答" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "error= 0.49520444220090865\n", "------------------\n", "error= 0.013546052578222278\n", "------------------\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(3, 2.3))\n", "\n", "Gyr_P = feedback(P, 1)\n", "y, t = step(Gyr_P, np.arange(0,2,0.01))\n", "pltargs = {'ls': '--', 'label': 'Before'}\n", "ax.plot(t, y, **pltargs)\n", " \n", "e_std = 1 - dcgain(Gyr_P)\n", "print('error=', e_std) \n", "print('------------------')\n", "\n", "Gyr_H = feedback(H, 1)\n", "y, t = step(Gyr_H, np.arange(0,2,0.01))\n", "\n", "ax.plot(t,y, label='After')\n", "\n", "e_std = 1 - dcgain(Gyr_H)\n", "print('error=', e_std) \n", "print('------------------')\n", "\n", "ax.set_xlim(0,2)\n", "ax.grid(ls=':')\n", "ax.legend()\n", "\n", "fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'RiseTime': 0.031341050098324,\n", " 'SettlingTime': 0.8486192026623113,\n", " 'SettlingMin': 0.8748763490545179,\n", " 'SettlingMax': 1.1217616048803796,\n", " 'Overshoot': 13.741171664614088,\n", " 'Undershoot': 0.0,\n", " 'Peak': 1.1217616048803796,\n", " 'PeakTime': 0.07473635023446491,\n", " 'SteadyStateValue': 0.9862405920945597}" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "stepinfo(Gyr_H)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "直流ゲイン = -5.937689510770942\n", "------------------\n", "直流ゲイン = -0.11846369931437545\n", "------------------\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", "\n", "gain, phase, w = bode(Gyr_P, logspace(-1,2), Plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain), **pltargs)\n", "ax[1].semilogx(w, phase*180/np.pi, **pltargs)\n", "\n", "print('直流ゲイン =', 20*np.log10(Gyr_P.dcgain())) \n", "print('------------------')\n", "\n", "gain, phase, w = bode(Gyr_H, logspace(-1,2), Plot=False)\n", "ax[0].semilogx(w, 20*np.log10(gain), label='After')\n", "ax[1].semilogx(w, phase*180/np.pi, label='After')\n", "\n", "print('直流ゲイン =', 20*np.log10(Gyr_H.dcgain())) \n", "print('------------------')\n", "\n", "ax[0].grid(which=\"both\", ls=':')\n", "ax[0].set_ylabel('Gain [dB]')\n", "ax[1].grid(which=\"both\", ls=':')\n", "ax[1].set_xlabel('$\\omega$ [rad/s]')\n", "ax[1].set_ylabel('Phase [deg]')\n", "ax[1].set_ylim(-210,10)\n", "ax[1].set_yticks([-180,-90,0])\n", "ax[1].legend()\n", "\n", "fig.tight_layout()\n", "#fig.savefig(\"loop_leadlag_fbbode.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 状態空間モデルに基づく設計" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 状態空間モデルの時間応答" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "A = [[0, 1],[-4, -5]]\n", "B = [[0], [1]]\n", "C = np.eye(2)\n", "D = np.zeros([2, 1])\n", "P = ss(A, B, C, D)\n", "\n", "Td = np.arange(0, 5, 0.01)\n", "Ud = 1*(Td>0) #ステップ入力\n", "X0 = [-0.3, 0.4]\n", "\n", "xst, t = step(P, Td) #ゼロ状態応答(ステップ入力)\n", "xin, _ = initial(P, Td, X0) #ゼロ入力応答\n", "x, _, _ = lsim(P, Ud, Td, X0) \n", "\n", "fig, ax = plt.subplots(1, 2, figsize=(6, 2.3)) \n", "for i in [0, 1]:\n", " ax[i].plot(t, x[:,i], label='response')\n", " ax[i].plot(t, xst[:,i], ls='--', label='zero state')\n", " ax[i].plot(t, xin[:,i], ls='-.', label='zero input')\n", " ax[i].grid(ls=':')\n", "\n", "ax[0].set_xlabel('t')\n", "ax[0].set_ylabel('$x_1$')\n", "ax[1].set_xlabel('t')\n", "ax[1].set_ylabel('$x_2$')\n", "ax[1].legend()\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ゼロ状態応答とゼロ入力応答を足すと,完全応答になる" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 可制御性,可観測性" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "A = [[ 0. 1.]\n", " [-4. 5.]]\n", "\n", "B = [[0.]\n", " [1.]]\n", "\n", "C = [[1. 0.]]\n", "\n", "D = [[0.]]\n", "\n" ] } ], "source": [ "A = [[0, 1], [-4, 5]]\n", "B = [[0], [1]]\n", "C = [1, 0]\n", "D = [0]\n", "P = ss(A, B, C, D)\n", "print(P)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Uc=\n", " [[0. 1.]\n", " [1. 5.]]\n", "det(Uc)= -1.0\n", "rank(Uc)= 2\n" ] } ], "source": [ "Uc = ctrb(P.A, P.B)\n", "print('Uc=\\n',Uc)\n", "print('det(Uc)=', np.linalg.det(Uc))\n", "print('rank(Uc)=', np.linalg.matrix_rank(Uc))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ucがフルランク(正則)であるので,(A,B)は可制御" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Uo=\n", " [[1. 0.]\n", " [0. 1.]]\n", "det(Uo)= 1.0\n", "rank(Uo)= 2\n" ] } ], "source": [ "Uo = obsv(P.A, P.C)\n", "print('Uo=\\n', Uo)\n", "print('det(Uo)=', np.linalg.det(Uo))\n", "print('rank(Uo)=', np.linalg.matrix_rank(Uo))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Uoがフルランク(正則)であるので,(A,C)は可観測" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 状態フィードバック" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1. 4.]\n" ] } ], "source": [ "A = [[0, 1], [-4, 5]]\n", "B = [[0], [1]]\n", "C = np.eye(2)\n", "D = np.zeros((2,1))\n", "P = ss(A, B, C, D)\n", "print(P.pole())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "極配置による設計" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "F= [[ 3. -7.]]\n", "[-1. -1.]\n" ] } ], "source": [ "Pole = [-1, -1]\n", "F = -acker(P.A, P.B, Pole)\n", "print('F=',F)\n", "print(np.linalg.eigvals(P.A+P.B*F))" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Acl = P.A + P.B*F\n", "Pfb = ss(Acl, P.B, P.C, P.D)\n", "\n", "Td = np.arange(0, 5, 0.01)\n", "X0 = [-0.3, 0.4]\n", "x, t = initial(Pfb, Td, X0) #ゼロ入力応答\n", "\n", "fig, ax = plt.subplots(figsize=(3, 2.3))\n", "ax.plot(t, x[:,0], label = '$x_1$')\n", "ax.plot(t, x[:,1], ls = '-.', label = '$x_2$')\n", "ax.set_xlabel('t')\n", "ax.set_ylabel('x')\n", "ax.legend()\n", "ax.grid(ls=':')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "最適レギュレータ" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "--- フィードバックゲイン ---\n", "[[ -6.77032961 -11.28813639]]\n", "--- 閉ループ極 ---\n", "[-3.14406819+0.94083198j -3.14406819-0.94083198j]\n" ] } ], "source": [ "Q = [ [100, 0], [0, 1]]\n", "R = 1\n", "\n", "F, _, _ = lqr(P.A, P.B, Q, R)\n", "F = -F\n", "\n", "print('--- フィードバックゲイン ---')\n", "print(F)\n", "print('--- 閉ループ極 ---')\n", "print(np.linalg.eigvals(P.A+P.B*F))" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Acl = P.A + P.B*F\n", "Pfb = ss(Acl, P.B, P.C, P.D)\n", "\n", "tdata = np.arange(0, 5, 0.01)\n", "xini, tini = initial(Pfb, tdata, [-0.3, 0.4]) #ゼロ入力応答\n", "\n", "fig, ax = plt.subplots(figsize=(3, 2.3))\n", "\n", "ax.plot(tini, xini[:,0], label = '$x_1$')\n", "ax.plot(tini, xini[:,1], ls = '-.', label = '$x_2$')\n", "\n", "ax.set_xlabel('t')\n", "ax.set_ylabel('x')\n", "ax.legend()\n", "ax.grid(ls=':')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 4 }