{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Pythonで学ぶ制御工学 Part2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 今日の目標\n", "* 閉ループ系の安定性をPythonでチェックできる\n", "* PID制御系の応答特性(時間・周波数)のグラフをPythonで描ける" ] }, { "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": [ "## フィードバック系の安定性\n", "\n", "$G_{yr}$ などのフィードバック系を求めてpoleで極を計算する\n", "\n", "ただし, $G_{ud}$ はインプロパーになることがあり,伝達関数をPython上で記述できない場合がある\n", "\n", "P と C の間に不安定な極零相殺がないばあいには,$G_{yr}$ の極を調べれば良い" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-1.35300549+2.89375856j -1.35300549-2.89375856j -0.29398903+0.j ]\n", "2 states have been removed from the model\n", "[-1.35300549+2.89375856j -1.35300549-2.89375856j -0.29398903+0.j ]\n", "[-1.35300549+2.89375856j -1.35300549-2.89375856j -0.29398903+0.j ]\n" ] } ], "source": [ "P = tf([0, 1],[1, 1 ,1])\n", "C = tf([2, 10, 3],[1, 0])\n", "\n", "Gyr = feedback(P*C, 1)\n", "print(Gyr.pole())\n", "\n", "Gyd = minreal(P*feedback(1, P*C))\n", "print(Gyd.pole())\n", "\n", "Gud = -feedback(1, P*C)\n", "print(Gud.pole())\n", "\n", "#Gur = C*feedback(1, P*C) #インプロパー\n", "#print(Gur.pole())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "特性多項式を計算し,その根を求める" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[-1.35300549+2.89375856j -1.35300549-2.89375856j -0.29398903+0.j ]\n" ] } ], "source": [ "[[Np]], [[Dp]] = tfdata(P)\n", "[[Nc]], [[Dc]] = tfdata(C)\n", "\n", "f1 = np.poly1d(Np)\n", "f2 = np.poly1d(Nc)\n", "g1 = np.poly1d(Dp)\n", "g2 = np.poly1d(Dc)\n", "\n", "print(np.roots( f1*f2 + g1*g2 ))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## フィードバック系のステップ応答" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "P = tf([0, 1],[1, 1 ,1])\n", "C = tf([2, 10, 3],[1, 0])\n", "Gyr = feedback(P*C, 1)\n", "\n", "y,t = step(Gyr,np.arange(0, 10, 0.01))\n", "\n", "fig, ax = plt.subplots(figsize=(3, 2.3))\n", "ax.plot(t,y)\n", "ax.set_xlabel('t')\n", "ax.set_ylabel('y')\n", "ax.grid(ls=':')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "ステップ応答の解析" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'RiseTime': 0.38134794663607546, 'SettlingTime': 2.526430146464, 'SettlingMin': 0.8889281055929367, 'SettlingMax': 1.2108759926728154, 'Overshoot': 21.096814935683064, 'Undershoot': 0.0, 'Peak': 1.2108759926728154, 'PeakTime': 0.8580328799311698, 'SteadyStateValue': 0.9999238983419472}\n" ] } ], "source": [ "Info = stepinfo(Gyr, SettlingTimeThreshold=0.05)\n", "print(Info)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "print(type(Info))\n", "# 辞書形式" ] }, { "cell_type": "code", "execution_count": 7, "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(figsize=(3, 2.3))\n", "ax.plot(t,y)\n", "ax.set_xlabel('t')\n", "ax.set_ylabel('y')\n", "ax.axvline(Info['PeakTime'], lw=1, ls='--', c='k')\n", "ax.axhline(Info['Peak'], lw=1, ls='--', c='k')\n", "ax.axvline(Info['SettlingTime'], lw=1, ls='--', c='k')\n", "ax.grid(ls=':')\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": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "P = tf([0, 1],[1, 1 ,1])\n", "C = tf([2, 10, 3],[1, 0])\n", "Gyr = feedback(P*C, 1)\n", "\n", "gain, phase, w = bode(Gyr, logspace(-2,2), Plot=False)\n", "\n", "fig, ax = plt.subplots(2,1, figsize=(4, 3.5))\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", "#fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mp= [1.37509769]\n", "wb= 4.941713361323833\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAARcAAACyCAYAAABodYs9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO19e3xcRdn/99nc0zZN26QtTdvQ0gstll7CD7kUhIKCiCCKVblp9X1bQBD9iS8geHkVVMQLKr/KRcVLVZBbxaqAIm2RQkuTJqSNoUmaNM0mNE2TdrvNdbPz+2P3LJOTM+ec2TmbvXS+n8/59Dnf55nZ55uZM53dM2cOMcagoaGh4TV8yU5AQ0MjM6EHFw0NjYRADy4aGhoJgR5cNDQ0EgI9uGhoaCQEenDR0NBICLKTnYAXKCkpYSeffHKy09DIALS3t2PGjBnJTiNtUFlZ2cUYK7V0MsbS/qioqGCMMdbd3c0MWNk8Fw/clBfFWPFmzil/3lbRoqJD5JPVIvLLwus2iVwS4ph00jIW/QvATia4LjPqa1F3d7etzXOq9cvGWPFmzil/3lbRoqJD5JPVIvLLwus2cYpJJy3J6l8xiEaddDqMmUtvb29sRLWyeS4euCkvirHizZxT/rytokVFh8gnq0Xkl4Wo7IYNjJWXM0bE2KxZw2zDBndl16xZYxuTDC1uYpLVv3CizFyam5ttbZ5TrV82xoo3c07587aKFhUdIp+sFpFfFlZlf/97YO1aYP9+gDHgwAEf1q6N8E5lb7/9dtuYsdbiNiaV+pcBYhnwbNEZZ5zBdu7ciXA4DJ8vMl5a2TwXD9yUF8VY8WbOKX+vtKjo8EqLyK+iJRxm2Nt5DCuXFeLwwdH3KsrLgZYWex0VFRWorKyU0pUILbIxyepfRFTJGDvDypdRM5fq6mpbm+dU65eNseLNnFP+vK2iRUWHyCerReSXRXV1NY4PhPDTlxtwxn3/xKUPvorDB7MsY1tb7XMGgKqqKtuYRGuJNyaV+peBjJq5aJxYGAyF8ccdrfjZvxrQFRzExYum4pLTpuNLV5XB3zb6/82JpYPoaMtCQa714AMARIRMuCbGCifMzIWfzlrZPKdav2yMFW/mnPLnbRUtKjpEPlktIr8bhIbDeLqyDRf/aAu+8fwezJs6Hs/dfA5+8en/g4+fMQv3f8+HwsKRZXLywsg5aw++8fxu288tKSmR1qWixe6zZGJSqX8Z0DMXjbRBaDiM53b58dArjdh/uBenzSjCVy5ZiPctKAURjYj9/e+Bu++OfBWaPRu47z6gddJ/8MjWfXjmpnNQUT4pSSoyC2k5cyGiS4nobSJqJKI73ZThvy9b2ebv07JwU14UY8WbOaf8eVtFi4oOkU9Wi8hvhSO9g/jNthZc9KMt+MrTb2F8XjYeu+EMbLp1JYqOt40aWADg2msjP96Gw8Czz1bh2muBL1w0H9OL8vG1jbsRGg5bfu66deukdclosUOm9C8DKTlzIaIsAHsBvB9AG4A3AXyKMVZnFa/vFo2dDq+0ON1hGQ4zbGvqwp92tuHFPe9gMBTG0pkTceuq+bho0dTYgCKr5a9vdeDzf6jC/15xGq4/a/aosubfXPTdInuk48zlTACNjLF9jLFBAE8AuNKpUH19va3Nc/HATXlRjBVv5pzy520VLSo6RD5ZLVbcO0f78dTOA/jCH3fhzPv+iet/uQNb9x7CNWfOxqZbV+LPt6zExYunjZipyGq5bMl0rJxXgh+89DZe37VHqqyMlniQKf3LQKrOXK4GcClj7L+i59cDeC9j7BareGPm0tfXh4KCAgAYZR88HsbO5kPIzc21/2wb3+DgIPLyRpenaCmiaEz0M969BghDQxGeKBLt8xn15cFHBF+0bEFeHogIQ0MDKMzPBxEhNDSIcQX58EX5cQUFGB4awLjCAmT7fMjOIuRk+ZCb5UNOFiHLR5ZfFQzwf5t4Yqx8Zs6uLXJy89DSeQT7jwzhPx0B7G47grc7j6O56zgAoGR8Hs6bX4KLFk3FxYumIT9HfHcnHi1Nh4K49MGtuOw90/CTT1WMiDXPXNzoEmmVhUq7qLaJnSY72M1cUvWpaKsrY8QoSERrAawFgBkzZqCrqwsHDhzA1KlTUVhYiIaGBixZsgTNzc3Izc3FU1UdeKQqMBa5Jx0EIDfbh2wfkJ+ThRxf5Dw/JwvZxJBNDHnZPkyZOAH9x49hxrQSBLq7UD7zJHR3HsTc8lloa23GglPm4NiRHpROmYTB/l4U5uUhK4tw+FAnymfPQnd3N6ZOnYYDBw4gJy8PRwJBzDp5Lur3NiI7rwCHj/WhYOIUNOz3I6ugCG3dx9ERGEB33zDCXGtOH5+NuZNz8YlLF6I0fBhXXXAmdu2qQsXpM1BVVYVly5ahvr4ec+bMQXt7OyZPnoze3l74fD4cOnQIRUVFKCkpQVtbG+bNm4c9e/Zg6dKlqKysREVFBbZv344LLrgAtbW1WLBgAcJHOnDDe2fil9sO4LKFTVg+cwL6+/tRXFyMxx9/HAMDA9i7dy+WLFkSK2vUtXPnTpx99tlobGxEOBxGYWEhAoEASktLEQ6H0d3djcLCQsyYMQPNzc049dRTUV1djRUrVsTqEGlqbm7GSSedhJycHASDQUtN5nwMTTU1NVi8eDGOHDmC/Px8AEBraysWLFiAgwcPYvbs2aisrMTKlStRWVmJ4uJiHDlyxJWmwsJCdHd3W2qy7YcpOnM5G8A3GWOXRM/vAgDG2Het4o2ZS09PDyZNitwFMNu+vPFoau9EUdFEm0+2/1scORrAxKIiyxLGn/Fo4CiKiopi54wBDAyBQAATJhTFzhkDjgYCGD9hQoRjDEcDxzBu/HiEGUMgag+HGQLHjqGg8F07v3AcjgaOIa+gEKFhhlA4jKFhhqHhMIZCYQwOhzEYCmMgdgxH/h0aRv9QGMG+AYRA6B8Ko39oOHqE0Tc0jOGwt/3BR8CEvGxMGpeL6RPzUVKYhTlTJ6I4h+H0OVNx6vQJCPUFY20lC76dZWJ6B0O48IFXMGvyODx90zkx/pVXXsGFF14oLGvVx0T9bqy0iHg3ubvRZId0nLm8CWA+Ec0B4AfwSQDXOBXq7e2N/UHMdtmkSZhWAJRNHR93Uv6hAMqmTbCPGQ6gbHrRaJ4FUVY2cmDz+4+jrGwSd96HsrIpUXsAZWWlUXsIZWXTovYwyspmwO/3o6ysLD4dNmWHhiODzP4DfkwunYaBocjANDQcGcCGwwzvHOzEpClTQCAQRWZKhw93Ycb0acjL9iE/x4eerkNYMGcWJuRlo6OjPfZ5xmdH/p0c4Q73xn1B8u0sE1OYm41rlpfix1v92NHcjTPnRHJZtWrViK9F5rJWfUzU78ZKi4h3k7sbTfEiJQcXxliIiG4B8CKALAC/Yow5/vrG/7ptZavcKXJbXhRjxZs5p/x5W0WLXdmcLB9ysnwoGZ+Hk4qtv3N35A/gpJNG7g/UMW4IJ530bmfsGA5iYkGOq/wTpcUp5or3lOK3lYewfnMjzpxzpquyqaollfpXrC7lGhIExtjfGGMLGGOnMMbuc1MmJyfH1ua5eOCmvCjGijdzTvnztooWFR0in6wWkV8WKlomFObhsyvnYPPbh7Dbf9RV2VTVkkr9y0DKDi7xIBgM2to8p1q/bIwVb+ac8udtFS0qOkQ+WS0ivyxU2+S6s8oxPi8bP9/SBAC47bbbbMumshYnbqz6l4GMGlz450KsbPNzIyr1y8ZY8WbOKX/eVtGiokPkk9Ui8stCtU0mFuTgurPK8ffaDjR3Hce9995rWzaVtThxY9W/DGTU4NLW1mZr85xq/bIxVryZc8qft1W0qOgQ+WS1iPyy8KJNPrvyZGRn+fDIlibMnTvXtmyqa7Hjxqp/GUjJW9GyMG5Fh0IhZGdHfqO2snkuHrgpL4qx4s2cU/5eaVHR4ZUWkX8stfD81zbuxhNvtqLxOx8acbfIja5U0yKTuxtNdkjH5f9xYc+ePbY2z6nWLxtjxZs5p/x5W0WLig6RT1aLyC8Lr9pk7flzYbXEx42uVNMi4saqfxnIqJmLhoYKvvRkNR7+4sfR3rgHk8bZPyaiEcEJM3PRm0W5Q7pvFuU2T6cYM3/TBadg2qcfxK+3tQhj0kWLFac3i4oDeuai4RUWXXAVci+8Ca/duQrj81JyjWlKQc9c9MzFVY5uYzJ15gIA9Vs24mjfEP6wfb9lTDpp0TMXD6BnLhpegYhwzWOvo+FgEFv/50Lb7R40TqCZS21tra3Nc6r1y8ZY8WbOKX/eVtGiokPkk9Ui8svC6zYBgM9fMA+dxwbwTFWbK12pqiVZ/SsG0asY0+kwXufa398fe82klc1z8cBNeVGMFW/mnPLnbRUtKjpEPlktIr8svG6Tffv2sXA4zK546N9s5f0vs+DxXmGZVNcyFv0LJ8rrXFu5t15Z2a3mt2Ip1C8bY8WbOaf8eVtFi4oOkU9Wi8gvC6/b5KWXXgIR4fMXnIID3X343ZY6YZlU15Ks/mUgowaXadOm2do8p1q/bIwVb+ac8udtFS0qOkQ+WS0ivyy8bpMbb7wRAHDxomlYMG08ntoTQJhbXZdOWpLVvwxk1OBy5MgRW5vnVOuXjbHizZxT/rytokVFh8gnq0Xkl4XXbWLA5yPcsmo+mrp6sam2w7JMqmtJVv8ykFGDi7F3qMjmOdX6ZWOseDPnlD9vq2hR0SHyyWoR+WXhdZvwuHzJSThlSgEe/MdehIbDo8qkupZk9S8DGTW4aGio4oEHHojZPh9h3bll2Nd1HM/t8icxq/RERg0u/f39tjbPqdYvG2PFmzmn/HlbRYuKDpFPVovILwuv22T16tUjzt9blo8lZRPxk5cbMBgKp5WWZPUvAxk1uBQXF9vaPKdav2yMFW/mnPLnbRUtKjpEPlktIr8svG6T8vLyEeeTJk3C//3AArT19OGpygNppSVZ/ctARg0uBw8etLV5TrV+2Rgr3sw55c/bKlpUdIh8slpEfll43SZWMRcsKEVF+ST87OVGHPB3jPCZ60klLcnqXzGIFsCk06EX0clBL6IT85FLYnTMa42HWPkdm9gjr+wd5UtVLSm9iI6IfuriuNeujrHE3r17bW2eU61fNsaKN3NO+fO2ihYVHSKfrBaRXxZet8n5559vGXPOKSU4e+4UrN/ciOMDoRG+VNWSrP5lwPbBRSLaD+DrDnXcyRhbJPWhRB8H8E0AiwCcyRjbyfnuAvA5AMMAvsAYe9GpPv3gosZYYFdrD65avw23rpqHL39gYbLTSQmoPLj4Y8bYb+wOAI/EkdNuAB8FsNWU6GJE3q54GoBLAawnItePpeotF9xBb7kg5s0zFz5m+exJWDkrH49u3Yf2I30pr+WE3nKBiDYDuN2YuZjfCU1ELyLyzujX7erRMxcNr0BEsLsm/Ef6sOoHm/HB90zHg59cPoaZpSbinrkQUT4RfZqIrqAI7iCiTUT0EyJSf7HJaJQBOMCdt0U5V9AzF3fQM5f4y77TVIf/Om8ONla344l/vD4qJpW0JHvm4vS16LcAPgDgswA2A5gN4CEAxwD82q4gEf2TiHZbHFfaFbPgLP8bIaK1RLSTiHZ2dHSgq6sLM2ZEXtDe09OD4uJi9PX1oa6uDsuXL0dVVRUqKipif7SqqiqEw2HU1dWhr68PTU1N6Onpgd/vh1FfS0sLgsEg6uvrR7xqwdwAtbW1GBgYQENDA+bPn4/W1lZ0dnais7MTra2tCAQCKCoqwsDAQGyfjMrKyhH51NTUYOnSpaivr0cwGMSUKVPQ1dWFjo4OTJ8+HT09PWhqasLixYtHaOLzcKtp4cKFMU01NTWWmnJzc2OaAoHACE2lpaUIBAJoaGiIaeK1GNpqamoQCoUwbtw4BINBtLS0oLy8XKgpHA5LayovLx/VTmZNBvh2CgQCKC0tHdVOAEa0kwGjruzsbPz3ypMxKT8LT74dQnNzc0yT3+/H3Llz0dTUFOt7MpqmT58u7HuGJnM+hqaioiLHdsrNzbXse8arROrr67Fw4cIR7WRcTyJNthDdRopODXdH/80G8I7JV2NX1s2ByIB1Bnd+F4C7uPMXAZztVI9xK7q6ujp2i8zK5rl44Ka8KMaKN3NO+fO2ihYVHSKfrBaRXxZj2Sb8+R+372fld2xim2ra01KLV/0LNreinS7+Kivb6jyew2JwOQ1ADYA8AHMA7AOQ5VSPMbgMDQ3FRFvZPBcP3JQXxVjxZs4pf95W0aKiQ+ST1SLyy8LrNlm/fr1tjHEeGg6zS368mZ37vZdZsLdfGC+DdOxfdoOL09eimdG1LD/jbOPc9W8hZhDRVUTUBuBsAH+N/nALxtgeAH8CUAfgBQCfZ4wNu623sbHR1ua5eOCmvCjGijdzTvnztooWFR0in6wWkV8WXrfJzTffbBtjnGf5CJ9ZOgFtPX34zsZKYbwMMqV/xSAadSKDEj5td9iVHcvDmLkcO3YsNqJa2TwXD9yUF8VY8WbOKX/eVtGiokPkk9Ui8svC6zaBaYWuk65b/1DF5n31r2zfoaDrfGTzdBOTrP6FeGcuzHmNS0qhq6vL1uY51fplY6x4M+eUP2+raFHRIfLJahH5ZeF1mzjFmPO+5/JFyM0ifG3jbjDGUkpLsvqXAdu3PhHRXyC4WwMAjLErlDPwEOPHj7e1eU61ftkYK97MOeXP2ypaVHSIfLJaRH5ZeN0mGzZssI0x510yIR+fP28Wvv/yfvzlrQ6cU5Y6WpLVvww4/ebyAwA/BNAMoA/AY9EjiMgq25TC0NCQrc1zqvXLxljxZs4pf95W0aKiQ+ST1SLyy8LrNlm8eLFtjFXeVyyejNNnTsS3N9WhJxj/PiiZ0r8MOH0t2sIY2wJgOWPsE4yxv0SPawCsVP50jxEOh21tnlOtXzbGijdzTvnztooWFR0in6wWkV8WXrfJihUrbGOs8iYw3PeRJTgcHMDD2+LfsS5T+pcBt/u5lBLRXOOEiOYAKFX+dI9RWFhoa/Ocav2yMVa8mXPKn7dVtKjoEPlktYj8svC6TZxiRFqWzJyI688qx7NvdaH6QHybW2dK/zLgdnD5EoDNRLQ5+jzQKwBuU/50j9Hd3W1r85xq/bIxVryZc8qft1W0qOgQ+WS1iPyy8LpNnGLstHz5koWYMi4bX3mqBgMh1ysolPKx45PVv2IQ3UYyH4gsbFsaPfLclhuLw7gV3dv77tvxrGyeiwduyotirHgz55Q/b6toUdEh8slqEfll4XWbrFmzxjbGScvfa1pZ+R2b2AMv1Dvm5TZPNzHJ6l9Q2Cwq9gWUMTbAGKuJHgNWMclGc3Ozrc1zqvXLxljxZs4pf95W0aKiQ+ST1SLyy8LrNrn99tttY5y0zM4+ho+tmImfb2nCbv9Rx9zc5OkmJpX6lwGnzaJqAFwA6wcKDbzMGEvqs+fGlgvhcBg+X2S8tLJ5Lh64KS+KseLNnFP+XmlR0eGVFpF/LLVY8fwDfW51mblj/cN4/4+3YPK4XDx/y0rkZrvTlo79S2WzqIkAKh0O9XtWHqG6utrW5jnV+mVjrHgz55Q/b6toUdEh8slqEfll4XWbmJ/2daPLzE0szMF3rlqC+neO4f+94n4Zfab0LwNJ3SzKK+jNojS8gtNmUTL44hO7sOmtDvz5lnNx2oyJntSZalCZuaQV9GZR7qA3ixLzJSUltjEyWr7x4dMwaVwuvvRkNfqHnO8eZUr/MqBnLhoaCcQrb3dizeNv4nMr5+Brly92LpBmOGFmLvz3ZSvb1e5ZLuuXjbHizZxT/rytokVFh8gnq0Xkl4XXbbJu3TrbGFktFy6cihvOLscv/92M1xrtHwbMlP5lwPXMhYjKAJSDe9iRMbZVXGLsoO8WjZ0Or7Sk6t0i828u8dwtMtfZNziMy3/2Ko4PDOOFL56H4sLcMdGS6neLjAruB/AagHsAfCV63G5bKAmor6+3tXlOtX7ZGCvezDnlz9sqWlR0iHyyWkR+WXjdJk4x8WgpyM3Cg59Yjq7gAO6Jbs3gVT52fLL6Vwyi1XX8AeBtpNiqXP7QK3TloFfoinmYNouSXaFrl89D/2pg5XdsYs9WHZDK001M2q3Q5bAPQI76UJZYtLe329o8p1q/bIwVb+ac8udtFS0qOkQ+WS0ivyy8bpONGzfaxqhoufF9p+DMkyfjnud2o6XruOs83cSkUv8y4HZw6QVQTUSP8O+JVv50jzF58mRbm+dU65eNseLNnFP+vK2iRUWHyCerReSXhddtUlRUZBujoiXLR3jwk8uQneXDrX/chcHQyG0NMqV/GXA7uDwP4NsAtmHk6tyUQm9vr63Nc6r1y8ZY8WbOKX/eVtGiokPkk9Ui8svC6zZZtWqVbYyqlhnFBfj+1aej1n8U339h5O8amdK/DNhuc2mApeB+uVbgf922slXuFLktL4qx4s2cU/68raJFRYfIJ6tF5JeF123iFOOFlktOm44bzi7HL/7djHPnleDCU6fGnY8dn6z+FavLzklEf4r+W0tEb5kP5U/3GDk5ObY2z6nWLxtjxZs5p/x5W0WLig6RT1aLyC8Lr9vEKcYrLV+9bBFOnT4BX36qBgcD/XHnY8cnq38ZcBqejA2hLgfwYYsjLhDRA0RUHx2kniOiYs53FxE1EtHbRHSJTL3BYNDW5rl44Ka8KMaKN3NO+fO2ihYVHSKfrBaRXxZet8ltt91mG+OVlvycLDx0zQr0DQ7jtid2YTjMMqZ/xSC6jZTIA5H3T2dH7fsB3B+1F2PkGxebIPHGRf3eInfQ7y0S83Y6zOdeaHlq5wFWfscm9oMX69Oyf0H1VjQRnUVEbxJRkIgGiWiYiAIKA9pLjLFQ9PQNADOj9pUAnmCRjamaATQCONNtvW1tbbY2z8UDN+VFMVa8mXPKn7dVtKjoEPlktYj8svC6TebOnWsb47WWqytmYvUZM/HQK43YuH2vY3w69K8YRKMOGznT2AlgHoBdALIArAFwn5uyLur+C4DrovZDhh09/yWAq53q0O+KloN+V7SYh2kRnRtdqlp6B0Lskh9vYcv+90XWfsR+8Vqq9S94sIgOjLFGRL6iDDPGHgdwoV08Ef2TiHZbHFdyMXcDCAH4vUFZfbSg/rVEtJOIdnZ0dKCrqwtvvvkm/H4/enp68Prrr6Ovrw91dXXYvXs3qqqqsGfPntij5FVVVQiHw6irq0NfXx+amprQ09MDv98Po76WlhYEg0HU19cjFAph69bIo1Tmx9Jra2sxMDCAhoYG7Nq1C62trejs7ERnZydaW1sRCASwbds2DAwMoLa2NlaWz6empga1tbWor69HMBjEG2+8ga6uLnR0dGDHjh3o6elBU1MTampqRmji83Crqbq6OqappqbGUtOrr74a0xQIBEZo2r59OwKBABoaGmKaeC2GtpqaGoRCIbz22msIBoNoaWlBZWWlUFM4HJbWVFlZOaqdzJo2b948qp0CgQC2b98+qp0AjGgno6xR19atWxEKhVBfX4/q6uoRmvx+P6qqqtDU1BTre240tR9owXcvn4e+gSGs+/V2vHOwU6jJnI+hadu2bY7t9Oqrr1r2PSdNRjtZabKDqwcXiWgrgIsB/ALAOwA6AHyGMbbUsbC4zk8DuBHARYyx3ih3FwAwxr4bPX8RwDcZY6/b1aW3XNDwCuZtLscSf67247YnqrH2/Ln46mWLkpKDLLzYcuH6aOwtAI4DmAXgYwoJXQrgDgBXGANLFM8D+CQR5UXfjTQfwA639erNotxBbxYl5h999FHbmERqmTn8Dq47azYe3boPL+x+x3XOIv6E3CyKiBoRuSN0OEq9wRi7Meq7G8BnEfm69EXG2N+d6tMzFw2vsHbt2lEDzFhiIDSM1Q+/jqZDx/H8Ledibqn6O5sTibhnLkR0JRF9njvfTkT7osfV8SbEGJvHGJvFGFsWPW7kfPcxxk5hjC10M7Dw0DMXd9AzFzH/2GOP2cYkWktedhbWX1eBnCzCTRuq0DsYGhUjKuvEpdTMhYheA/BJxtiB6Hk1gIsAjAPwOGPsIuUMPICeuWh4BS836FbB1r2H8OnHd+Ajy8rwo9VLQWT3dp/kQeU3l1xjYIni34yxw4yxVkQGmJSC8Qu/yOY51fplY6x4M+eUP2+raFHRIfLJahH5ZeF1mzjFjJWW8xeU4ksXL8Bzu/zYsL3Vsf5U6l8xiO5RR0fvRhtfk13ZsTyMdS79/f2x++9WNs/FAzflRTFWvJlzyp+3VbSo6BD5ZLWI/LLwuk327dtnGzOWWoaHw+wzv9rO5n31r6xyf7dt/cnqX1BY57KdiP7bTBLROkjcxRkrtLa22to8p1q/bIwVb+ac8udtFS0qOkQ+WS0ivyy8bpOXXnrJNmYstfh8hB9/YhmmT8zHzRuqcOjYQFr0rxhEo05kUMJURPZweQXAD6PHZgCvA5hmV3YsD2PmcvTo0diIamXzXDxwU14UY8WbOaf8eVtFi4oOkU9Wi8gvC6/bBKYVum50JVrLHv9RtvCev7HVD29jXd09rsuORf9CvDMXxlgnY+wcRDaKaoke32KMnc0YO6g+tHmLI0eO2No8p1q/bIwVb+ac8udtFS0qOkQ+WS0ivyy8bhOnmGRoWTyjCN/96BJsb+7G/S9Yb5ydSv3LgNvNov4F4F/Kn5Zg5Ofn29o8p1q/bIwVb+ac8udtFS0qOkQ+WS0ivyy8bhOnmGRpuWr5TNQcOIpfb2vBuYv8uHJZmWPZZPUvA+rbTWloZBAeeOCBZKcgxN0fWoSlZeNx5zO1+E9H3JsSjBkyanDp7++3tXlOtX7ZGCvezDnlz9sqWlR0iHyyWkR+WXjdJqtXr7aNSaaWnCwfvvn+mSgqyMa631XiSO+gbdlk9S8DGTW4FBcX29o8p1q/bIwVb+ac8udtFS0qOkQ+WS0ivyy8bpPy8nLbmGRrOWVGKX5+XQU6jvbhC09UYzjMhGWT1b8MZNTgcvDgQVub51Trl42x4s2cU/68raJFRYfIJ6tF5JeF123iFJMKWlbMnoRvXfkebN17CD946W1h2WT1rxhEt5HS6dCL6OSgF9GJeZhuRSdzEZ1TzF3PvsXK79jENtW0p+UiurTC3r17bW2eU61fNsaKN3NO+WqZqNkAAA3fSURBVPO2ihYVHSKfrBaRXxZet8n5559vG5NKWr7x4cVYMbsYX3m6Bv/YsduxvrHqXwaSsuWC19APLmqcqDgY6MflP/s3CnKy8Pwt56K4MHdMP9+LzaLSAnrLBXfQWy6IefPMZay3XJCNmVaUj4evq0B7Ty9u/eOu2A+8VrEpteVCukDPXDS8QqpsuSCLJ3a04s5na7HufXNx1wfHbotMPXPRMxdXObqNyeSZi1NMqmqZn3UI1501G49s2Yfna9otY/XMJQ7omYuGV0jXmQsADIbCuPYXb6DWfxTP3HQOTpsxMeGfecLMXIzXL4hsnlOtXzbGijdzTvnztooWFR0in6wWkV8WXrdJdXW1bUwqa8nN9mH9tRUoLsjF2t9WYuv2KmHZRF8rADJrnYt+KZo76Jeiifn169fbxqSDlpoDPWz+3X9jqx9+jQ2Ghi1jUuqlaOmAxsZGW5vnVOuXjbHizZxT/rytokVFh8gnq0Xkl4XXbXLzzTfbxqSDltNnFuN7H12C7c09uO+v/7GMSfS1AiCzZi76RfTuoF9EL+ZhWqGb6BfRu8nTTYwV//Vnq1n5HZvYk2+2jopJmRfRew0i+jYRvUVE1UT0EhHNiPJERD8losaof4VMvV1dXbY2z8UDN+VFMVa8mXPKn7dVtKjoEPlktYj8svC6TZxi0knL9UuLcN78Etzz3G5UtfaMWf8ykKyvRQ8wxk5njC0DsAnA16P8BxF5y+J8AGsB/Fym0vHjx9vaPBcP3JQXxVjxZs4pf95W0aKiQ+ST1SLyy8LrNtmwYYNtTDppKS6agJ99ajmmT8zHjb+rRB9yLeMTca0ASRpcGGP8Tjfj8O7L5q8E8NvojOsNAMVEdJLbeoeGhmxtnosHbsqLYqx4M+eUP2+raFHRIfLJahH5ZeF1myxevNg2Jp20DA0NobgwF4/dcAaCAyF8+bm30T80PCo+EdcKkMRb0UR0HxEdAHAt3p25lAHg35PUFuVcIRwO29o8Fw/clBfFWPFmzil/3lbRoqJD5JPVIvLLwus2WbFihW1MOmkxuIXTJ+BHq5eh7mAv7n5uNxhjCb9WgAQOLkT0TyLabXFcCQCMsbsZY7MA/B6RF9wDgNVr5SxXNBHRWiLaSUQ7Ozo60NXVhb6+Pvj9fvT09KCnpwd9fX2oq6tDQUEBqqqqUFhYGFt5WFVVhXA4jLq6OvT19aGpqQk9PT3w+/0w6mtpaUEwGER9fT1CoRD8fj+A0asYa2trMTAwgIaGBjDG0Nrais7OTnR2dqK1tRWBQACHDx/GwMBA7GVTlZWVI/KpqalBXl4e6uvrEQwGcfToUXR1daGjowPBYBA9PT1oamqCz+cboYnPw60mIoppMtYzmDV1dHTENAUCgRGaAoEAAoEAGhoaYpp4LYa2mpoahEIhHDp0CMFgEC0tLRgcHBRqCofD0poGBwdHtZNZk/GaDL6dDA3mdgIwop2MskZdfr8foVAI9fX1IKIRmgxfU1NTrO/JaAoGg8K+Z2gy52NoOnz4sG07XTh/ElYvHodnqtrwrSdeHdFeTpqMdrLSZAvRL71jdQAoB7A7aj8C4FOc720AJznVYdwtamxsjP2KbWXzXDxwU14UY8WbOaf8eVtFi4oOkU9Wi8gvC6/bBKa7RW50paoWM7e3oYGt/e2bbM6dm9iTW2os42T7F2zuFiVrQJnP2bcCeDpqfwjA3xGZwZwFYIeb+ozBpbe3Nybayua5eOCmvCjGijdzTvnztooWFR0in6wWkV8WXrfJmjVrbGPSSYtV7sf6h9gHfrSFnf6NF1hLV3BUnGz/shtckvWby/eiX5HeAvABALdF+b8B2AegEcBjAG4WlLdEc3Ozrc1z8cBNeVGMFW/mnPLnbRUtKjpEPlktIr8svG6T22+/3TYmnbRY5T4+LxuP3XAGwuEw/vu3OxEcCCXkWgEy7MHFcDgMny8yXlrZPBcP3JQXxVjxZs4pf6+0qOjwSovIP5ZarPiKiooRTwS70ZWqWuxyf3VvJz7z651YdepU/Pya5cjOzhJqssMJ8+Ai/9CZlW1+KE2lftkYK97MOeXP2ypaVHSIfLJaRH5ZeN0m5h8q3ehKVS12uY8LtuGeDy3CP+oO4q4//HtUjOq1AmTYzEVDQxXpvOWCLBhj+J+n38JTlW1Yf+0KXLbE9ZKyGE6YmYveLMod9GZRYr6kpMQ2Jp20OOVORLj3qvdg4ZQcfPlPNahrD+jNoszQMxcNjfjRGejHFQ+9hiwf4flbzsWU8Xmuy54wMxf++7KV7Wrhj8v6ZWOseDPnlD9vq2hR0SHyyWoR+WXhdZusW7fONiadtLhtk7bGOjxyfQUOBQdwwyNbMTTscpGcAzJq5qLvFiVeh1daUvUOi/k3l0y9W2Rlb9zlxxefrMZ1Z83Gt644Td8t4lFfX29r85xq/bIxVryZc8qft1W0qOgQ+WS1iPyy8LpNnGLSSYtsm3xkeRmuPm0iNrzRih89v8NVzrYQra5Lp0Ov0JWDXqEr5mFa/p9pK3Sd7GPB4+wzv9rO5n/1b+zg0T7HfJCCK3QTgvb2dlub51Trl42x4s2cU/68raJFRYfIJ6tF5JeF122yceNG25h00hJP/zr4Tgd+8qnluO+SMkwtynfMxw4ZNbhMnjzZ1uY51fplY6x4M+eUP2+raFHRIfLJahH5ZeF1mxQVFdnGpJOWePtXUX4OLl4yyzEXJ2TU4NLb22tr85xq/bIxVryZc8qft1W0qOgQ+WS1iPyy8LpNVq1aZRuTTlqS1b8MZNTgwv+6bWWr3ClyW14UY8WbOaf8eVtFi4oOkU9Wi8gvC6/bxCkmnbQkq3/F6lKuIYWQk5Nja/Ocav2yMVa8mXPKn7dVtKjoEPlktYj8svC6TZxi0klLsvqXgYxY50JEhwDsBzARwNEobWWXAFDZ1pyvUzbGijdzTvnztooWFR0in6wWnkuWFlkd5vN01uJV/ypnjJVaekS3kdLxAPConQ2b22ay9cvGWPFmzil/r7So6PBKi4lLihZZHZmkJdHXCmMZdisawF9c2F7VLxtjxZs5N/l7oUVFh8gnqyUd28R8ns5aEn2tZMbXIrcgop1MsFQ53aC1pCYyRYsXOjJt5uKER5OdgIfQWlITmaJFWccJNXPR0NAYO5xoMxcNDY0xgh5cNDQ0EgI9uGhoaCQEenCJgog+QkSPEdGfiegDyc5HBUQ0l4h+SURPJzsXWRDROCL6TbQtrk12PipI53YwI67rQ3WhTCocAH4FoBPR18Jy/KWIvBK2EcCdLuuaBOCXGaLl6WS3jawmANcD+HDUfjLZuXvRPqnSDh5pcX19JF2gR3+k8wGs4P9IALIANAGYCyAXQA2AxQCWANhkOqZy5X4IYEWGaEmJTi2p6S4Ay6Ixf0h27ipaUq0dPNLi+vrIRgaAMbaViE420WcCaGSM7QMAInoCwJWMse8CuNxcBxERgO8B+DtjTH134jjhhZZUg4wmAG0AZgKoRgp+bZfUUje22clBRgsR/QeS10fKNZ6HKANwgDtvi3Ii3ArgYgBXE9GNiUwsDkhpIaIpRPQwgOVEdFeik4sTIk3PAvgYEf0cHi5FTzAstaRJO5ghahfp6yMjZi4CkAUnXDHIGPspgJ8mLh0lyGo5DCDVBkgzLDUxxo4DWDPWyShCpCUd2sEMkRbp6yOTZy5tAPi9+mYCUNtEN3nIJC0GMkmT1mKBTB5c3gQwn4jmEFEugE8CeD7JOcWLTNJiIJM0aS1WSPYv1h796v1HAB0AhhAZeT8X5S8DsBeRX7/vTnaeJ5qWTNSktbg/9IOLGhoaCUEmfy3S0NBIIvTgoqGhkRDowUVDQyMh0IOLhoZGQqAHFw0NjYRADy4aGhoJgR5cNDQ0EgI9uGhoaCQEenDRSAiI6GQi6iOiasV6vklEt5u4R4joXIvYAiKqJqJBIipR+VwNdejBRSORaGKMLTOTFIFK33svgDfMJGOsL/p56frQYEZBDy4aUiCiK8x7whLRTURk+zh+dCbzHyJaD6AKwCwi2khElUS0h4jWcrF3E9HbRPRPAAtN9SxC5LmXfCL6KxHVENFuIvqEZyI1PEEm7+eikRjcB+BTJq4JwMdclF0IYA1j7GYAIKLPMsa6iagAwJtE9AyAkxF5Enc5Iv2zCkAlV8cHAbyAyD6v7YyxD0Xrmhi3Io2EQM9cNFyDiJYC8DHGdhNRORHdFHXlwGbzKg77GWP815kvEFENIl9xZgGYD+A8AM8xxnoZYwGMftz/EkQGl1oAFxPR/UR0HmPsqII0jQRADy4aMliGd2cR70dkMAAiG2vXuCh/3DCI6AJEtk08mzG2FMAuAPlRt+VARUSFAIoZY+2Msb0AKhAZZL5LRF+Xk6KRaOjBRUMGPgDjiSgLwEcBTIh+pfkMgD9I1jURQA9jrJeITgVwVpTfCuCq6J2fCQA+zJW5EMArAEBEMwD0MsY2APgBIrvYa6QQ9OCiIYO/IfLKiWoADwM4DcBOAI8y+TcmvAAgm4jeAvBtRO/+ROt5MvoZzwB4lStj/N4CRF6rsiN6q/tuAPfGI0gjcdCbRWkkBNFXVmxijL3HwzqrALyXMTbkENcC4AzGWJdXn60hDz1z0UgUhgFMVF1Ex4MxtsJuYDEW0SHyA3PYq8/ViA965qKhoZEQ6JmLhoZGQqAHFw0NjYRADy4aGhoJgR5cNDQ0EgI9uGhoaCQEenDR0NBICPTgoqGhkRDowUVDQyMh+P/77b3oIKXdZQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy import signal\n", "\n", "gain, phase, w = bode(Gyr, logspace(-2,2), Plot=False)\n", "\n", "fig, ax = plt.subplots(figsize=(4, 2.3))\n", "ax.semilogx(w, 20*np.log10(gain))\n", "\n", "# ピークゲイン\n", "[maxId] = signal.argrelmax(gain)\n", "ax.plot(w[maxId], 20*np.log10(gain[maxId]), 'bo')\n", "print('Mp=', gain[maxId])\n", "\n", "# バンド幅(近似値)\n", "idx = np.abs( np.asarray(gain) - Gyr.dcgain()/np.sqrt(2) ).argmin()\n", "ax.axvline( w[idx], ls='--', c='k', lw = 1)\n", "print('wb=', w[idx]) \n", "\n", "ax.set_ylabel('Gain [dB]')\n", "ax.set_xlabel('$\\omega$ [rad/s]')\n", "ax.grid(which=\"both\", ls=':')\n", "\n", "fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## PIDゲインチューニング" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 限界感度法" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "g = 9.81 # 重力加速度[m/s^2]\n", "l = 0.2 # アームの長さ[m]\n", "m = 0.5 # アームの質量[kg]\n", "c = 1.5e-2 # 粘性摩擦係数[kg*m^2/s]\n", "J = 1.0e-2 # 慣性モーメント[kg*m^2]\n", "\n", "P = tf( [0,1], [J, c, m*g*l] )\n", "\n", "ref = 30 # 目標角度 [deg]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "無駄時間要素の追加\n", "\n", "2次遅れ系はP制御では不安定にならない.\n", "また,現実の制御対象には無駄時間がある" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/latex": [ "$$\\frac{-s + 400}{0.01 s^3 + 4.015 s^2 + 6.981 s + 392.4}$$" ], "text/plain": [ "\n", " -s + 400\n", "--------------------------------------\n", "0.01 s^3 + 4.015 s^2 + 6.981 s + 392.4" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num_delay, den_delay = pade( 0.005, 1)\n", "Pdelay = P * tf(num_delay, den_delay)\n", "Pdelay" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "安定限界を調べる" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy import signal\n", "\n", "fig, ax = plt.subplots(figsize=(3, 2.3))\n", "\n", "kp0 = 2.9\n", "C = tf([0, kp0], [0, 1])\n", "Gyr = feedback(Pdelay*C, 1)\n", "y,t = step(Gyr, np.arange(0, 2, 0.01))\n", "\n", "[maxId] = signal.argrelmax(y)\n", "\n", "ax.plot(t, y*ref, color='k')\n", "ax.plot(t[maxId], y[maxId]*ref, 'bo')\n", "\n", "ax.axhline(ref, color='k', linewidth=0.5) \n", "ax.set_xlim(0, 2)\n", "ax.set_ylim(0, 50)\n", "ax.grid(ls=':')\n", "\n", "#fig.savefig(\"tune_zn.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "チューニング" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "T0= 0.31999999999999995\n", "kP0= 2.9\n" ] } ], "source": [ "kp = [0, 0]\n", "ki = [0, 0]\n", "kd = [0, 0]\n", "Rule = ['', '']\n", "\n", "T0 = t[maxId[1]]-t[maxId[0]]\n", "print('T0=', T0)\n", "print('kP0=', kp0)\n", "\n", "# Classic ZN\n", "Rule[0] = 'Classic'\n", "kp[0] = 0.6 * kp0\n", "ki[0] = kp[0] / (0.5 * T0)\n", "kd[0] = kp[0] * (0.125 * T0)\n", "\n", "# No overshoot\n", "Rule[1] = 'No Overshoot'\n", "kp[1] = 0.2 * kp0\n", "ki[1] = kp[1] / (0.5 * T0)\n", "kd[1] = kp[1] * (0.33 * T0)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Classic\n", "kP= 1.74\n", "kI= 10.875000000000002\n", "kD= 0.0696\n", "------------------\n", "No Overshoot\n", "kP= 0.58\n", "kI= 3.6250000000000004\n", "kD= 0.06124799999999999\n", "------------------\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMoAAACcCAYAAAA+sjRCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO2dd3hcxbmH35G06r1acpPkblkFuVJsbAg1MYRmU4Ixl0BIwLnkYgKBhB5sAjeU0C6E6lAMhA6hBRsDxkWSJVfZstWs3qWVtNo694+zWqvsrna1kvZEz77Po0e755w953dm9zsz88033wgpJT58+HCOn7cF+PDxn4DPUHz4cAGfofjw4QI+Q/HhwwV8huLDhwv4DMWHDxcIGMuLxcfHy9TU1LG8pA8fLpGfn98kpUxwtH9MDSU1NZW8vDy7+1pbW4mJiRlLOS6jVm0+Xe7hTJcQosLZZ1XT9GppafG2BIeoVZtPl3t4oks1hpKSkuJtCQ5RqzafLvfwRJdqDKWsrMyt4y0WSeHxNpo79aOk6ATuahsrfLrcwxNdYixjvRYsWCAd9VEsFgt+fq7b7UOfHeL5baVEhWj44pZlTIgKHimZHmsbK3y63MOZLiFEvpRygaPPquZuCgsLXT62rKmL57eVMm9iJD1GMw9/XjyKytzTNpb4dLmHJ7pUYyi5ubkuH/tRYQ1CwAtrFrB64WQ+21eLtseoCm1jiU+Xe3iiSzWGkp+f7/Kxn+2rZVFqLMlRIVyYk4LeZOHLA/Wq0DaW+HS5hye6VGMo8+fPd+m4tm4Dh+u1LJupjA3lTokhPjyI70oava5trPHpcg9PdKnGUAoKClw6bk9lGwDzpyoDR0IIlqTHsqO0hdFyTPTVpjeZqWnTjdq13MHVMhtrxqMu1RhKTk6OS8flV7QS4CfInhRt27YkPY66jh7Km7tHVdv+6naWPryFUzZ+w1V/30mn3jQq13NXl9oYj7pUYyjFxa55rg7UtDMjKYKQQH/btoWpsQDsqWwdNW1dehPXv5aHxt+Pm1ZMY2dZC3e+t29UrueOLjUyHnWpxlDS0tJcOu5IfSezksL7bZuWEEaIxp991e2jIY20tDRe2V5ObXsPT16Rw23nzObmFdP5qKiGXWXeC9dwtczGmvGoSzWGUlNTM+Qx2h4j1W06ZiRF9Nse4O/H3JRI9lWNjqEcr6rmle3lnD4zgflTldrr18unERcWyHPfHhuVa7qCK2XmDcajLtUYSmxs7JDHHKnvBGDWAEMByJwYxYGaDsyWke9kF7f70ajVc+XiKbZtwRp/1pycyjfFDRxvGZ2+0VC4UmbeYDzqUo2hdHcP/WM71qAYyowBTS+AOckR6IxmqlpH/kf72f46okM1rJiV2G/7xbkTAfh4r3eeoK6UmTcYj7pUYyiuxAaVN3cR4CeYGB0yaN/0RKWWKbHWOiOF2SLZUaFlxaxEAgP6a5wcG0rulGg+KvSOoagxngrGpy7V3JFGoxnymIqWbibFhBDgP1h2by1T0jCyhlJ4vI02nYkVsxPt7r8gO4XiOi0l9doRvW5fLBZJQWUr24409nNJu1Jm3mA86lKNoXR2Dv0Dr2zuZnJsqN19kcEaJkQGU9Iwsj/Y7UebAFg6Pd7u/vOzkvET8PHe2hG9bi/VbTp+/swPXPzMdta8tItTN37Dp9ZruVJm3mA86lKNocTH2/8h9qWiuYupcfYNBZRaZaSbXjvKmpmZGEZMWKDd/YkRwcyfGsOW4oYRvS4o4TpXPL+DsqYu/nJJFpuuW8S0hDBueqOAD/ZUu1Rm3mA86lKNoVRVVTnd39ZtoKPHxNTYMIfHzEiM4GhDJ5YR8nwZTBbyK1qZE+c8tcDpMxPYV91O0whPIvvThweobdfxyrWLWLVwMktnJPDG9UtYkh7L7f/cy4/7S0f0eiPFUN+lt/BEl2oMZfr06U73V7XqAJgcO7gj38uMpHB0RjPVbboR0VRc10GP0cIZWalOjzt9ptJ/+b6kaUSuC1BQ2crHRTX8Zvl0W1wbKG7pJ684idBAf/62ux2T2TJi1xwphvouvYUnulRjKAcOHHC6v8b640+x4/HqZUai0qE/OkId+qLjSgBmSLfzEP6MlEjiwgL59sjIRDBLKXno00MkRARxw7L0QfsTI4J58OeZ7K3u4JXt5SNyTXsa8ita+Pt3pTz37TG+L2lyuaYe6rv0Fp7oGtN0Rc7Izs52ut81Q1FcxEfqtQ69VO5QVNVObFggZ53ifMKPn59g6Yx4th1pxGKR+PkJj677/dEm8ipa+fNF8wgLsv8V/TQrmbfzEnjy3yVcOn8S0aH2+1DD4WiDlt9tLhoUEpSeEMZtZ8/ivMxkp58f6rv0Fp7oUk2NMtSkmpr2HgID/Ihz0KkGiArVEB8eRGlj14ho2lvVRvakKJfCs0+flUBzl4EDNR0eX/et3ceJCdVw6fxJTo+7MNWCVm/i6S1HPb5mL5/vr+OCp36gtl3Hw5dkUvCns9h779k8ecVJBPr78evXC/j9u0X0GM0OzzEeJ24NWaMIIYKBbUCQ9fh3pZT3CCHSgLeAWKAAuFpKaRiukKEm1dS06UiJCkYI50/r9Pgwypo8N5QuvYmjDZ2cNy+Z+fNnDnn80hnKRLJtJY1kTooa9nVbuwx8daCeq5ZMISjA3+mxF5+xhB+bi3h1ewVrTk516Dp3lW+K67n5jQIyJ0Xx7FXz+yXsuCA7hfPmTeCJr0t4eutRypu7+fs1C4gMHjw2MdwJUvuq2vlkbw17Ktuo1/ZgtkhSokPInBjFmbMTWZweh78HtfVoT9zSA2dIKbOBHOBcIcQS4GHgMSnlDKAVuG7YKnChRmnTOW129ZIWH0bpCBjK/up2LBKyJ0e59CSKDw9i3sRIth72zE38YWE1BrOFy+ZPHvLY/Px8/ufsmfj5waNfHvbouvur2/n1PwqYkxzJa/+1yG5WG42/H+vPmcUTl5/EnspWVv/fDhq0PXZ1ucOO0mYueuYHVj71PS//UI7RYiFncjQLpsZgtkg27ajgyr/vZPmjW3hhWyntuuHlRxjVGkUqU/l6e8ca658EzgCutG5/FbgXeHa4Qoay9tr2Hk6ZNrQfPD0hjM15ejp6jHafdq6y1xqJnDUpmvjwJJc+c/rMBJ77ttSja7+dV0XmxCjmpkQOeWxvmV13WhpPbznG9UvTmTfR/dqso8fIb14vIC4skFeuXUjEENovyE4hOkTDrzblc+mzP7LpukVMjTvhtndnWvd9Hx/k/T3VJEcFc98FGfz8pIlEhfS/frfBxL8PNbDpxwr+/NkhHv/6CKsXTuHaU92rRT2pUVzqzAsh/IF8YDrwNHAMaJNS9sZTVAETh60C2LdvH5mZmXb3WSySRq2epMigIc+TFq98YWWNXWRPjh7iaCd6qttJiQomPjzIqba+LJuRwNNbjrH9aBPnznPe4bXH/up2DtZ28MCFGa5ptOr61enTeGNnJRv/Vcw/frnYrWtKi5k/b95KcFs5j63KJK7rGJijICQaNKHgoKm7bGYCb1y/mP96ZTeXPPsjr/7XQjJSovrpcsaXB+q47718wnQ1/DU3kJWpZjTa7fB5DfS0ga4Netqhp51QYzcrpYWV0oI5wozJZKYnzx9DXgAtmmBCw8IICgpGBASBfxAEBIG/BvwDwS8A/APRWfwoizmduWf9wq3y6cWtBHhCiGjgfeBu4GUp5XTr9snAZ1LKQaUjhLgBuAEgOjp6/vXXX4/ZbEZKiUajQafTERERQUtLC4mJidTV1ZGcnExNTQ0pKSnU1tYSGRvPC9+VsXR6HGmRgpCQEIxGI0II/P39MRgMhIaG0tHRAUHh/GNnJedmTCBSdpKSkmI7V319PXFxcbS3txMeHk5PTw8BAcqzwmQyERwcTGdnJ1FRUWz6sYLYiGAWJgoSExNpaGggJSWFuro6EhMTaWlpITIyku7ubgIDAzGbzZgtktcLGkiNCeTsjGTa2tqIj4+3e08TJkygqamJ6OhotFotISEhbDvazJEGHb9YmIywmGz3FBsbS0NDAxMmTLCdo6amhsTERJqbm4mLi2NHST151V2cPTPa9nQfeE/Nzc0kRYXQVlpAtOjE1FKJn7ETP+x3zKXwR2pCITAck38wAaHR6Mz+hMYk0dJlIG7CFErqtWyrEfQYzfw0K5kwqXyfus4OQjQCU48Wf2M3/sZOLLpW/IxddLW3EGTuJFT0H6CVCERQBEY0BASHYZR++AeFYZICPz9/EAKLReIfEICupwet3kx7lw4/aSHIz0J4oMBfGgkO8MNsMuAnBGaTEWmxgDTTnHgy8VPmDPrttbW18cwzzzhNgOd2pkghxD1AN3A7MEFKaRJCnAzcK6U8x9lnnWWKLCkpYcaMGXb3Hart4LwnvuOZq3I5fwjXpN5kZs6fPufmM2bwP2cN3Ql3dI6Mu7/gV6enc9s5s51qG8ivNuWxv7qD729fMaTjoS89RjOLH/o3y2Ym8LcrTnLpM3116U1mzvzfb4kI1vDJutP6d3pNBtj3NhS8Bsd3KtvCEmiPy2FzWTBhCVO5YnkOfv4akBbrk7wNulugsx60dcpfZ52ybwDST0OHDMZikQQHCIIw4GceHKVgFhqOy3iOWxKISZnG7NkZBMRMgejJEDUZIpLB370RC22PkY+LavnyYB35Fa1oe/rnMYgNCyRrUhSL0mKZF2lgWe5cu+cZKlOkK16vBMAopWwTQoQAP0HpyG8BLkXxfF0DfOjqzdkjKclxP6BBqxR6QsTQTa+gAH8mxYR65Pk61tCFySKZNSFySG0DWTYzgS8O1HOssYvpiX3mzZhNgFSaBHb46mA97TojqxY4dwn3pa+uoAB/7jhvNje/sYeXfyjjl0vTwdgDezbBD09A+3FImAMr/ghzL6AtNJWVT/+AOVTy6XVL8XPidu+HUWc1mnrQ1oK2HqGtJUzXQV5lG8V1nUj/QJKSUoiJT0IfEMUBbQgfVWg40h3KydMSeODn85iWMHhO0XCICNZw5eIpXLl4ClJK6jv0tOkMCAQxYRoSwoNsD6yOjuG77l0x32TgVWs/xQ94W0r5iRDiIPCWEOJBYA/w4rBVAG1tbURG2u/ANnQonpVEFwwFlH5KWdPwR+cP1ysFOmdCxJDaBrLM6ib+9kgj00U15L8Chz+DtuMgzRAaBxMXwIyzIPMypS8AvJ13nInRIS45LHoZqOunmcm8P7uaZ74s4pKeD4gpek75QU9eDD97DKb/BITAbJGse3kX9e163vrVEocBn3bRhEBsmvLXhwBgCRBZ08Ff/7WXvOpu2ioV71RkcABLZyRw/8lTWZwe5/q13EQIwYSoYId5qN35HgfiitdrLzCoLSClLAUWDeuqdggOdpxku7dGSYxwLRF3WnwYeeVKni93mj+9FNdqCfT3I9XqGHCmbSCTY0OZHR9I4q6N8M27IPyUH+i8S5XapL0KKrZDyRfw5R8h4yIaMq7l+6NNrDtjhlvjBAN1CX0Hj6d8jansaWJ+0GJOXYb/JS9C6mm2TrnFIrn7w/18V9LExoszyZ0ysgv+zE2J5KGVM4mPT6CxU4+/nyAmNNCj8Y+Rwp3vcSCqCWFxRqNWT0RQQL8URc5ITwijy2CmUasnMdL9wimu0zI9MRyNnQliQ9LTwTNiA+kd+ZiyryLg7PshzE4tUVMIBa/C3rdJLHqTNzVzmBZzO1img7sz8bT1sOt52PUCEfp2miYu59KKFYRZTuG5ifMJsRqJ0Wzh7g/38+au49x4+jQuXzRliBMPHz8/QdIwyl6tqMZQenoGD1z10qjVk+CCa7iXXhdxaVPXMA2lg1P7TNRypq0fhm7YdBGpnUX8zvBrzp/1O86yZyQAKTmQkoPljHt49rF7WG35lPhP1sL2abDk15B5KYQ4edpbzMiy72D7N0pH3WyEOSth2Xrik7O5dFclf3h/Hz/923dcvWQqAiU0prhOy00rprH+7Fkul4e7uFxeY4wnulRjKNHRjsc8GrQ9LvdPoM9YSlMXS9xsE7d2Gajv0DN7wolML8602bBY4IMboTofy2Wv8c27wci9NZw117kjYGetmUe0ZzPpst9xYVA+bH8KPlsP/7pd6Vukngpx0yEoAswG6KiF2iIo3UJSZ70y1pF7jWJccdNs57180RRSokN48NOD3PfxQUCpaZ/7xXzOnTfBrTJxF5fKywt4oks1hlJfX++4M6/VkzXJ9ZtMiQohMMBvWJ6v4jplKvHsCSe0ONNm48e/wcEP4ewHCci4gHMP7eWTvTX0GM0Eaxw3Gd/aXUlEcABnZ06GwFTIuBiqC+Dwp1DyJXz3v4rLti/hSTDlZGpjF5O8dA0E2fcgLZuZwBczllHfoUcimRA5dKzcSOBSeXkBT3SpxlCmTLHfXpZS0tChd6tG8fMTpMWFDSuKuLhO8Xj1rVEcabNRtx++eRDmXAAn3wzAz7KT2Zx3nK2HGx0+wRs6evhsXy2/WDL1RP9LCJg0X/k7824w6RWPmbFLGWUOT1I8Z0IQq9dDkPNy6fUEjSVDlpeX8ESXasLsjxw5Ynd7l8GMzmh2y1Bg+C7iw3VaYsMC+43ZONIGKOMj798IwdHws8dt3qWT0+OICdXwcZHjVEav76zEZJFcc3Kq4/MHBEH8dEjOhqQMxTFgvYZTXV5kPOpSjaE4ig2yjaG40ZkHSEsIo7Kl2+2psofqtMxKiujXRHEat7T7BajfBz/9Xwg70R8K8Pfj5ydN5MuDdXYjbPUmM2/sqmT5zASbG9pdXIk/8wbjUZdqDMVRCLS7Yyi9pMWHYTRLt+bPWyySI3VaZif3T9nqMDxbWw9bHlLGSeasHLT76iVTMZolm36sGLTvrV3HadTque60wVN9XWU8TpAaTcb1ilsnDMW9GiW9j4vYVSpbutEZzcyZ0L/D5zA8e+sGJaTjvL/YjbJNTwjn/MwJvPR9Wb8MLa1dBp78dwmL02I5dfrwR6rH48pWo8m4WHHLkbU3uhHn1Ze+4fau0tuRnzXBhRqlpVSJo5q/tp9bdiC3nj0Lo1lyxz/3YrZIzBbJ7/+5l3adkXtWZnjkhRqPT+7RZFQnbo0Vjqy9pUtPgJ8YNJmnH01HoWaP0ulNUaJtYsMCiQwOcMtFXFynRQiYOSBbvl1tWzeCnwaWrXd6zmkJ4dx5/mzu/fgglz63HSmVNK33rpzr0uQsZ4zHJ/doMi5qlKKiIrvbmzsNxIQFOn7ybn0Ynl4I7/0Snl8Ob10FPe0IIUhLCKfUDc9Xca2W1LiwQaEyg7TVH4S9b8PiGyBi6MG7taemsfHiTNq6jXT0GHnk0izWnur5YjuOyszbjEddqqlRMjLsz+pr7jI4zryS9xJsfQgyV8FptygDdN88CP+4BNZ8SHp8GDtLm13WcLC2g0w7U2kHadvyZ2Wk/NRbXD735YumjHhslaMy8zbjUZdqapSjR+2n3GnpMhBrz1A6auHLP0H6CrjoOWWM4bTfwWWvQFUefH4HafFh1LT3oDM4Tq3Ti7bHSGVLN3MGeLwGaavOh+JPlIHFUO8umOOozLzNeNSlGkOZNMn+hCWHhvLD42DqgZ/9Ffz6NJXmrFRql4LXOEX/A6CsqzIUvaEr9voN/bR98yCExCqxVV7GUZl5m/GoSzWG0tRkP29vc6ee+PABHi9dK+S/ClmrIdbOOMTyOyHlJHL23kcknS6Fshy0Jq6bmzy46WXTVv49HPtGqbmCvR/L5KjMvM141KUaQwkPHxzYZzBZ6OgxDa5R9r0LJh0s/pX9kwUEwson8de38T8B/+Rw3dBTQA/WdBAbFmg300t4eDhICf9+QJnXveh6l+5ptLFXZmpgPOpSjaEYjYOTmrV2K4knBxlK4RuQlKnEPzkiOQsx/1quDviK9oqhvR0HazuYkxxh17tmNBoVR8HxHYo7WDN0Ir6xwF6ZqYHxqEs1hmKxDI7Jau5UDKWf10tbBzUFkPHzoU96xh/p8QvnwprHlRrBASazhcP1WuYm229OWcwm+Po+iElT5n6oBHtlpgbGoy7VGEpo6OCMfy1ddmqUkq+U/zOdZkaynjSWvGk3kSsP0L3nXYeHHWvswmCyMMeBoUQf/xoaDsAZf3SYRcUb2CszNTAedanGUFpaWgZta+5SwlfiwvsaypcQkQJJ81w6ryX3Gg5YpuL/9Z/AYL9Tv6eyFYAce5klTQYCf3hEaeplXOzSNccKe2WmBsajriENRQgxWQixRQhxSAhxQAjx39btsUKIr4QQJdb/HqXzSElJGbTtRNPL2sE2GeDYFiXVj4sxUnMnxnCP8RqCumvh+8ftHpNf0UpMqMYWH9aPXc+j6ayGn9zjftKHUcZemamB8ajLlW/eBNwqpZyDkrrpJiHEXOAO4N/WbPb/tr4fNmVlZYO2tXQZ8O8b53V8Bxi0rjW7rCRGBFEWmsWeqJ8oieBaBl8nv7KV3CkxgzvyHbWwdQPa5FOUUHqVYa/M1MB41DWkoUgpa6WUBdbXWuAQSkLuC1Gy2GP970Lv2jGzZ88etK25y0BMqObEClbl3yt5slKXunxeIQRzkiN5XFyt9C8+/q2SCMJKa5eB0sYucqfaqRC/uBPMRsIuecrlGmwssVdmamA86nKrLSGESEVJhrcTSJJS1oJiTIDdteCEEDcIIfKEEHm1tbU0NTVRW1tLdXU1ra2tHDt2DJ1Ox9atW7FYLLbVrfLz82np0hPiZ8FisXDw4EHMFTvQR0+jVWemurqa3vOVl5fT2dlJcXExJpPJFvzWG1Yd769je2Mg5XNuhLJtNHy2gY6ODiorK9myrxyAycEGOjo6KCkpQa/Xc/yTR+DAe1RPv5LCynbbuYqKijCZTBQXF9PZ2Ul5ebnDezp48OCgewIoKCiw3ZNOp+PYsWO0tra6dU/5+fkUFhayb98+9Ho9JSUltntqaGigoaGBysrKfve0b9++QecYjXvKy8sb9j0Bo3ZPO3bscHhPQyKldOkPCEdZ+uFi6/u2AftbhzrH/PnzpTtc+uwPcvX/bVfemM1SPjRJyo/+261zSCnl1wfr5NTbP5E7jjZK+dpFUj6QKGXlLimllH/5/JBM/8OnsltvOvGBxiNS/jlFyhfPldJscnBWH+MJIE86+e26VKMIITTAP4HXpZTvWTfXCyGSrfuTAY+WmrI3qUaJHLZ25BuLQd+h5Lpyk97lp3dXtMLFzyuj629eDs3H2FXWQkZK5InQ+pYyePUCCAhWjvXzH5cTkUaT8ajLFa+XQEnAfUhK+dc+uz5CyWIPI5DN3t6kmuZOwwnXcNUu5f9k99MdR4cGMntCBD8cbVaymFz1LkgLlr+fRfzxL1k2PU4ZkDzyJbx8nhIes+ZDZTkCB9rUgE+Xe4z2xK1TgauBM4QQhda/84GNwFlCiBLgLOv7YTNw5V2j2UK7znhisPH4LiWflb0gSBdYPiuR3eUtdPQYlZmQ131FpyaOZzWPccue8+CRafDGZRAYBtd8AhNOjNO4siqwN/Dpcg9PdLmSzf57wJHL58xhX3kAOTk5/d73xnnZwleqdsOkhcP2Pv1kTiLPfXuMLcUNXJgzEeKnc1vs34jr/JwHM1qUbIyppymDigH9Y8sGalMLPl3u4Yku1YygFRcX93t/InwlSBlRbyqxzYcfDidNiWFidAhv7qoElHxhXx9pIWLhavwueBIufAqyLx9kJPa0qQWfLvfwRJdqDCUtrf8c8pbOPnFe9QcB6XLYij38/QRXnzyVHaUt/HismUe+OIwArlg49PTcgdrUgk+Xe3iiSzWGUlPTP/Vok7VGiQsPhPr9ysYJwzcUUBLSpceHccULO3gnv4rrTktzKUvjQG1qwafLPTzRpZrkErGx/eeft1gTxik1yn4IioToqR5dIywogFeuXcSL35cyOTaUtaekDkubWvDpcg9PdKmmRunu7u73vqXLgBAQExqoZItPyhiRMJIpcaHcd+E8frk0nQAXV9QaqE0t+HS5hye6VGMofgMic5U4r0D8kVB/wKP+iacM1KYWfLrcwxNdqrkjjab/hChb9pW2CiVi2MP+iScM1KYWfLrcwxNdqjGUzs7+GR2bO62GUn9A2ZDkvaUEBmpTCz5d7uGJLtUYSnx8/0VBm7v0ymBjgzWyM9F7odsDtakFny738ESXagylqqqq33tb06vpCERNUUJLvMRAbWrBp8s9PNGlGkOZPn267bXZImnTGZUapfEwJMz0orL+2tSET5d7eKJLNYZy4MAB2+vWbgNSQmxoADQfhfjRWxPdFfpqUxM+Xe7hiS7VGEp29olkdr1xXpP8W8DYDfEzvCUL6K9NTfh0uYcnulRjKH0n1fRmX0kxHlc2JHi3RhmPE5FGk/GoSzWG0ndSTW+NEtdTrmyI924fZTxORBpNxqMu1RhKX2tvsSa+i+wsU5ZYCPOuu3E8PiFHk/GoSzWG0tfam6xNr6C2o15vdsH4fEKOJuNRl2oMpTftDChNr6gQDX7NJV7vyEN/bWrCp8s9PNGlGkOZOfNEP6Sly8CUUCN0NUKc933yfbWpCZ8u9/BEl2oMpbKy0va6uUvP7CDrIqUx3p8t11ebmvDpcg9PdKnGUJKSkmyvW7oMTA9oVN7Eet9Q+mpTEz5d7uGJLlfyer0khGgQQuzvs21EM9kDtLW12V63dBmY6levvIlJ9fTUHtNXm5rw6XIPT3S5MhX4FeAp4LU+23oz2W8UQtxhfX/7sFUAwcHBAFgsktZuIymWOghLVNZz9zK92lzFaDRSVVVFT0/PKClSMJvNHDp0aFSvMRzUrKusrIxJkya5PTfFlbxe26zJuftyIbDc+vpVYCseGkov7TojZosk3lijimbXcKiqqiIiIoLU1FS7a0KOFEajUZWTpNSqy2BQErFXVVW5nZFluH0UlzLZg+vZ7EtLS7FYLHy3uxCA8M5yiEkbsczvMPws6T09PW5lfu/s7CQmJoaenh6klHR1KSt99f0vpUSn02GxWOjp6cFkMmEwGDAYDBiNRvR6PWazGZ1Oh5TSNt+77zksFgvd3d22c5jNZvR6PUajsd85enp6bMcOPAcoc8l79fQ9R68ek8lkO0evHmf31HvN4dxTr57RuCez2UxERARdXV2jk80eSAX293nvdiZ7OYT4kvEAAA4KSURBVEQ2+/b2dimllDtLm+WM29+XlnuipNyywYP85CNHrzZXOXjw4Cgp6Y/JpM5M+2rXZe/7YSSy2dthRDPZA9TXK5335k49k0UDAqkK1zCc0KY2hloOuq6ujssvv5xp06Yxd+5czj//fI4cOcK8eSOXf+Duu+/m66+/dkuXt/BE13DzevVmst/ICGSyB5gyRcnY2NxlYIqw2p1K+ii92tRGYODg9K+9SCm56KKLuOaaa3jrrbcAKCwsHHGjv//++93S5U080eWKe/hN4EdglhCiSghxHSOcyR7gyJEjgOIaThV1ysZhZq4faXq1qQ1nXrUtW7ag0Wi48cYbbdtycnKYPHmy7X15eTlLly4lNzeX3Nxctm/fDkBtbS3Lli0jJyeHefPm8d1332E2m1m7di3z5s0jMzOTxx57DIC1a9fy7rvK0uS7d+/mlFNOITs7m0WLFqHVakfjtoeNJ15IV7xeVzjYNWKZ7AEyM5UsKy1dBmYENEJghLLMgwro1TYc7vv4AAdrOkZQDcxNieSelRlO103fv3//kEGAiYmJfPXVVwQHB1NSUsIVV1xBXl4eb7zxBueccw533XUXZrOZ7u5uCgsLqa6uZv9+ZTht4JiEwWBg9erVbN68mYULF9LR0UFISIjnNzuCjIt15nu9Ss1dBtIDGiE2VTULjKo1bLzXwzNcjEYj119/PZmZmVx22WU278/ChQt5+eWXuffee9m3bx8RERGkp6dTWlrKunXr+Pzzz4mMjOx3rsOHD5OcnMzChQvp6uoiMjKSgADVZOwFPCsv1dxJ79OvpUvPZOohJtfLik7gSXj2PSszRlBJf8LCHGemycjIsDWJHPHYY4+RlJREUVERFovFNrC6bNkytm3bxqeffsrVV1/Nbbfdxpo1aygqKuKLL77g6aef5u233+all16ynUtKaRszcqbLm3iiS3U1SqtWR5K5XjUdefjPrFHOOOMM9Ho9L7zwgm3b7t27qaiosL1vb28nOTkZPz8/Nm3ahNlsBqCiooLExESuv/56rrvuOgoKCmhqasJisXDJJZfwwAMPDFq9avbs2dTU1LB79266urrQarWYTKYRvmPPGFc1SkBXLRqMqunIg3onIjl7QgoheP/997nlllvYuHEjwcHBpKam8vjjj9uO+c1vfsMll1zCO++8w4oVK2zn27p1K4888ggajYbw8HBee+01qqurufbaa7FYLABs2LCh3/UCAwPZvHkz69atQ6fTERISwtdff014ePgo3Pnw8KimczbIMtJ/zgYcCwsLpcVikb+462Ep74mU8tjW4YwpjQqFhYVuHT9WA45dXV1jch13UbuusRxwHHEyMjJo1xmZKK1+fhU1vTIyRq+f4Qlq8yr1Mh51qcZQjh49SoNWz1RRj0VoIHKityXZOHr0qLcl2GW0o5OHy3jUpRpDmTRpEg0diqHoIyaBn7+3JdmYNGmStyXYZTyOgI8mozoyP1Y0NTXRoO1hqqhHqiTGq5empiZvS7CL2rxKvYxHXaoxlPDwcBo6epgiGgiIn+ZtOf1Qk+emL+NxZavRxBNdqnEPG41GOlvqiRA6SFCXoag1GlZx1qiP8ahLNaZvsVigtUx5o7KmV+/YwX8SQghuvfVW2/tHH32Ue++9161zfPDBB2RlZTF79mwyMzP54IMPRlhlf1555RVuvvnmETnXQw89NCLn6UU1hhIaGkpQR7nyRkWuYfAsmG40cdaUCAoK4r333ht2/6qoqIj169fz4YcfUlxczEcffcT69evZu3evR7pgbPow9gxlXCx22tLSQriuCgvC4/XkR5qWlhZvS7CLsx9cQEAAN9xwgy0cvi8VFRWceeaZZGVlceaZZ9rNd/Xoo49y55132uaWp6Wl8Yc//IFHHnmEQ4cOsWjRItux5eXlZGVlAUq4z4oVK5g/fz7nnHMOtbW1ACxfvpw777yT008/nSeeeIJ33nmHefPmkZ2dzbJly2znqqmp4dxzz2XGjBn8/ve/t21/8803yczMZN68edx+++1Ot99xxx3odDpycnK46qqrXCqvoVBNHyUlJYVYfRXawESiNO5lPRltUlJShv/hf90BdSOcYnRCJpy3cUh350033URWVla/HxzAzTffzJo1a7jmmmt46aWX+O1vfzuoWXXgwAHWr1/fb9uCBQt4+umnmTNnDgaDgdLSUtLT09m8eTOrVq3CaDSybt063n//fZKSkti8eTN33XWXLXiyra2Nb7/9FlCmLnzxxRdMnDixX8h+YWEhe/bsISgoiFmzZrFu3Tr8/f25/fbbyc/PJyYmhrPPPpsPPviARYsW2d2+ceNGnnrqKQoLC/vpHxfu4YNHjjFR1tMZNnnog8eYsrIyb0uwi16vd7o/MjKSNWvW8OSTT/bb/uOPP3LllVcCcPXVV/P9998P+qzsEw1sb9uqVat4++23Adi8eTOrV6/m8OHD7N+/n7POOoucnBwefPDBfusmrl692vb61FNPZe3atbzwwgu2YEyAM888k6ioKIKDg5k7dy4VFRXs3r2b5cuXk5CQQEBAAFdddRXbtm1zuH245eUM1dQo0clTiRR1dEZ6b5lsR8ye7cGKxOd5PPnTIa7kG7vlllvIzc3l2muvdXiMvZRKGRkZ5OXl2ZpUAAUFBcydOxdQfvSXXXYZF198MUIIZsyYwb59+8jIyGD79u12z9k3KPG5555j586dfPrpp+Tk5Nie/kFBQbZj/P39MZlMDr1V7nqx3M3P1hfV1Ci78naRIDpUkRlyIAOrcLXQm6rHGbGxsaxatYoXX3zRtu2UU06xzaN//fXXOe200wZ9bv369WzYsIHy8nJA6Yc89NBDNk/atGnT8Pf354EHHrDVFLNmzaKxsZEtW7YAilvd0bqJx44dY/Hixdx///3Ex8dz/Phxh/ewePFivv32W5qamjCbzbz55pucfvrpDrcDaDSaQW59V8rLEaoxlJRw5QkUlOD97PUDyc1VzySyvrgaNn7rrbf28349+eSTvPzyy2RlZbFp0yaeeOKJQZ/Jycnh4YcfZuXKlcyePZuVK1fyl7/8hZycHNsxq1ev5h//+AerVq0ClD7Au+++y7333kt2djY5OTm2efgDue2222yd8GXLljldXzE5OZkNGzawYsUKsrOzyc3N5cILL3S4HeCGG24gKyurX2d+XITZv/V/G6S8J1K2H9vlbvT0qJOXl+fW8WMVZt/Z2Tkm13EXtev6jw6zj/dXMnZEJHt/4aCB/CdO3PIm41GXR4YihDhXCHFYCHHUmqx72PjXFtIsYhEh0Z6cZlQYOO1VLXiaXGK0GI+6hm0oQgh/4GngPGAucIUQYu5wzmU0mZhn3Ed19ILhyhlV+rbL1YRaIwbGoy5PapRFwFEpZamU0gC8hZLl3m3KD+QRL9oxpy33QM7oUVxc7PZn5BgEBo7HCVKjSW/S9OHgiaFMBPr69Kqs2/rhSjb79rqjNBHFhOyzbc2c3swnashmn5aW5lY2e4vFQmNjoy2j+mhlsw8KClJlNnuNRqPKbPZ+fn62lLLuZrMXw7UwIcRlwDlSyl9a318NLJJSrnP0mQULFsi8vDy7+46WlDB9hvo68qD4/KdNcz30f6wWElLrOiRq1WUymQgPD7e7kJAQIl9K6bDt78nIfBXQN95kElAz3JPFxcd7IGV0iY2Ndet4jUbj9kI1w6G1tZWYGI9XBRxxxqMuT5peu4EZQog0IUQgcDlKlvth4cmo6WijVm0+Xe7hia5h1yhSSpMQ4mbgC8AfeElKaT9ewQXUOn0U1KvNp8s9vDYVWEr5GfCZJ+foRY1t2l7Uqs2nyz080TXszvywLiZEI1DhYHc8oM50J+rV5tPlHs50TZVSJjj64JgaijOEEHnOvA7eRK3afLrcwxNd6mxM+vChMnyG4sOHC6jJUJ73tgAnqFWbT5d7DFuXavooPnyoGTXVKD58qJYxN5Sh5rAIIYKEEJut+3cKIVJVomutEKJRCFFo/fvlGOl6SQjRIITY72C/EEI8adW9VwgxJvOWXdC1XAjR3qe87h4jXZOFEFuEEIeEEAeEEP9t5xj3y8zZ9MeR/kMZwT8GpAOBQBEwd8AxvwGes76+HNisEl1rgafGsrys110G5AL7Hew/H/gXIIAlwE6V6FoOfOKF8koGcq2vI4Ajdr5Lt8tsrGsUV+awXAi8an39LnCmsJf7Zux1eQUp5TbAWarKC4HXpMIOIFoIkawCXV5BSlkrpSywvtYChxg8/cPtMhtrQ3FlDovtGCmlCWgH4lSgC+ASa1X9rhBCLZn6XNXuDU4WQhQJIf4lhBjz9f2szfaTgJ0DdrldZmNtKPZqhoFuN1eOGWlcuebHQKqUMgv4mhO1nrfxRnm5QgFKWEg28DdgdFPhD0AIEQ78E7hFStkxcLedjzgts7E2FFfmsNiOEUIEAFGMfhU/pC4pZbOUsjcn5wuAWlKzjOi8oJFCStkhpey0vv4M0AghxmTSkRBCg2Ikr0sp37NziNtlNtaG4soclo+Aa6yvLwW+kdYemDd1DWjDXoDS9lUDHwFrrJ6cJUC7lLLW26KEEBN6+5ZCiEUov7XmMbiuAF4EDkkp/+rgMPfLzAteifNRPBHHgLus2+4HLrC+DgbeAY4Cu4B0lejaABxA8YhtAWaPka43gVrAiPIkvA64EbjRul+gZMM5BuwDFqhE1819ymsHcMoY6ToNpRm1Fyi0/p3vaZn5RuZ9+HAB38i8Dx8u4DMUHz5cwGcoPny4gM9QfPhwAZ+h+PDhAj5D8eHDBXyG4sOHC/gMxYcPF/h/W7nvkDsYubQAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots(figsize=(3, 2.3))\n", "\n", "for i in range(2):\n", " C = tf([kd[i], kp[i], ki[i]], [1, 0])\n", " Gyr = feedback(Pdelay*C, 1)\n", " y, t = step(Gyr, np.arange(0, 2, 0.01))\n", " \n", " ax.plot(t, y*ref, label=Rule[i])\n", " \n", " print(Rule[i])\n", " print('kP=', kp[i])\n", " print('kI=', ki[i])\n", " print('kD=', kd[i])\n", " print('------------------')\n", "\n", "ax.axhline(ref, color=\"k\", linewidth=0.5) \n", "ax.legend()\n", "ax.grid(ls=':')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ステップ応答法" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0.68493029, -0.10034948])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# 台車系のモデル\n", "a = 6.25\n", "b = 4.36\n", "P = tf([0, b], [1, a, 0])\n", "\n", "y, t = step(P, np.arange(0, 1, 0.01))\n", "\n", "# ある程度時間が経過したあとの応答を1次関数で近似する\n", "yslice = y[40::]\n", "tslice = t[40::]\n", "p = np.polyfit(tslice, yslice, 1)\n", "p" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "無定位系の応答を1次関数で近似する" ] }, { "cell_type": "code", "execution_count": 16, "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(figsize=(3, 2.3))\n", "y, t = step(P, np.arange(0, 1, 0.01) )\n", "ax.plot(t, y)\n", "ax.plot(t, np.poly1d( p )(t))\n", "ax.set_xlabel('t')\n", "ax.set_ylabel('y')\n", "ax.grid(ls=':')\n", "\n", "#fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.6849302927315275 0.14651050231691773\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "uref = 1\n", "R = p[0]/uref\n", "L = -p[1]/p[0]\n", "print(R, L)\n", "\n", "kp = [0, 0]\n", "ki = [0, 0]\n", "kd = [0, 0]\n", "Rule = ['', '']\n", "\n", "# P Controller\n", "Rule[0] = 'P Controller'\n", "kp[0] = 1/(R*L)\n", "\n", "# PID Controller\n", "Rule[1] = 'PID Controller'\n", "kp[1] = 1.2/(R*L)\n", "ki[1] = kp[1] / (2 * L)\n", "kd[1] = kp[1] * (0.5 * L)\n", "\n", "fig, ax = plt.subplots(figsize=(3, 2.3))\n", "for i in range(2):\n", " C = tf([kd[i], kp[i], ki[i]], [1, 0])\n", " Gyr = feedback(P*C, 1)\n", " y, t = step(Gyr, np.arange(0, 3, 0.01))\n", " ax.plot(t, y, label=Rule[i])\n", " \n", "ax.legend()\n", "ax.grid(ls=':')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### モデルマッチング法" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "制御系設計の例題\n", "* 定常偏差が生じない\n", "* オーバーシュートが10%以下\n", "* 整定時間が0.5秒以下" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "g = 9.81 # 重力加速度[m/s^2]\n", "l = 0.2 # アームの長さ[m]\n", "m = 0.5 # アームの質量[kg]\n", "c = 1.5e-2 # 粘性摩擦係数[kg*m^2/s]\n", "J = 1.0e-2 # 慣性モーメント[kg*m^2]\n", "\n", "ref = 30\n", "\n", "P = tf( [0,1], [J, c, m*g*l] )" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{J s^{3}}{k_{i}} + s^{2} \\left(\\frac{c}{k_{i}} + \\frac{k_{d}}{k_{i}}\\right) + s \\left(\\frac{k_{p}}{k_{i}} + \\frac{mgl}{k_{i}}\\right) + 1$" ], "text/plain": [ " 3 \n", "J⋅s 2 ⎛c k_d⎞ ⎛kₚ mgl⎞ \n", "──── + s ⋅⎜── + ───⎟ + s⋅⎜── + ───⎟ + 1\n", " kᵢ ⎝kᵢ kᵢ⎠ ⎝kᵢ kᵢ⎠ " ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import sympy as sp\n", "s = sp.Symbol('s')\n", "kp, kd, ki = sp.symbols('k_p k_d k_i')\n", "mgl, c, J = sp.symbols('mgl c J')\n", "sp.init_printing()\n", "\n", "T = ki/(J*s**3 +(c+kd)*s**2 + (mgl + kp)*s + ki)\n", "sp.series(1/T, s, 0, 4)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\frac{\\alpha_{1} s}{\\omega_{n}} + \\frac{\\alpha_{2} s^{2}}{\\omega_{n}^{2}} + 1 + \\frac{s^{3}}{\\omega_{n}^{3}}$" ], "text/plain": [ " 2 3\n", "α₁⋅s α₂⋅s s \n", "──── + ───── + 1 + ───\n", " ωₙ 2 3\n", " ωₙ ωₙ " ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a1, a2, wn = sp.symbols('alpha_1, alpha_2, omega_n')\n", "M = wn**3/(s**3 +a2*wn*s**2 + a1*wn**2*s + wn**3)\n", "sp.series(1/M, s, 0, 4)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ k_{d} : J \\alpha_{2} \\omega_{n} - c, \\ k_{i} : J \\omega_{n}^{3}, \\ k_{p} : J \\alpha_{1} \\omega_{n}^{2} - mgl\\right\\}$" ], "text/plain": [ "⎧ 3 2 ⎫\n", "⎨k_d: J⋅α₂⋅ωₙ - c, kᵢ: J⋅ωₙ , kₚ: J⋅α₁⋅ωₙ - mgl⎬\n", "⎩ ⎭" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "f1 = J/ki-1/wn**3\n", "f2 = (c+kd)/ki-a2/wn**2\n", "f3 = (kp+mgl)/ki - a1/wn\n", "sp.solve([f1, f2, f3],[kp, kd, ki])" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "g = 9.81 # 重力加速度[m/s^2]\n", "l = 0.2 # アームの長さ[m]\n", "m = 0.5 # アームの質量[kg]\n", "c = 1.5e-2 # 粘性摩擦係数[kg*m^2/s]\n", "J = 1.0e-2 # 慣性モーメント[kg*m^2]" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "alpha1 = 2\n", "alpha2 = 2\n", "omega_n = 12\n", "\n", "kp = J*alpha1*omega_n**2-m*g*l\n", "ki = J*omega_n**3\n", "kd = J*alpha2*omega_n - c\n", "\n", "C1 = tf([kd, kp, ki], [1, 0])\n", "C2 = tf([0, ki], [kd, kp, ki])" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'RiseTime': 0.19152485819152504,\n", " 'SettlingTime': 0.4963296629963302,\n", " 'SettlingMin': 0.9028806549649726,\n", " 'SettlingMax': 1.0814649583429348,\n", " 'Overshoot': 8.097897144500802,\n", " 'Undershoot': 0.0,\n", " 'Peak': 1.0814649583429348,\n", " 'PeakTime': 0.40990990990991033,\n", " 'SteadyStateValue': 1.0004495803440812}" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Gyz = feedback(P*C1, 1)\n", "\n", "Td = np.arange(0, 2, 0.01)\n", "r = 1*(Td>0)\n", "\n", "#z, t, _ = lsim(C2, r, Td, 0)\n", "#y, _, _ = lsim(Gyz, z, Td, 0)\n", "\n", "fig, ax = plt.subplots(figsize=(3, 2.3))\n", "\n", "y, t = step(Gyz*C2, Td)\n", "ax.plot(t, y*ref, label='I-PD')\n", "\n", "ax.axhline(ref, linewidth=0.5)\n", "ax.axhline(ref*1.05, linewidth=0.5, c='r') \n", "ax.axhline(ref*0.95, linewidth=0.5, c='r') \n", "ax.axhline(ref*1.1, linewidth=0.5, c='g') \n", "ax.grid(ls=':')\n", "\n", "ax.set_xlim(0, 2)\n", "ax.set_ylim(0,40)\n", "\n", "stepinfo(Gyz*C2, SettlingTimeThreshold=0.05)\n", "\n", "#fig.savefig(\"test.pdf\", transparent=True, bbox_inches=\"tight\", pad_inches=0.0)" ] }, { "cell_type": "code", "execution_count": 25, "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", "gain, phase, w = bode(P/(1+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(C2*Gyz, 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", "ax[1].set_ylim(-190,10)\n", "ax[1].set_yticks([-270,-180,-90,0])\n", "\n", "fig.tight_layout()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "開ループ系の周波数特性" ] }, { "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": [ "fig, ax = plt.subplots(2, 1, figsize=(4, 3.5)) \n", "\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(P*C1, 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", "ax[1].set_ylim(-190,10)\n", "ax[1].set_yticks([-270,-180,-90,0])\n", "\n", "fig.tight_layout()" ] }, { "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 }