{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 111 代数計算機を用いた逆ラプラス変換" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## モジュールの読み込み" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sympy as sy\n", "sy.init_printing()\n", "\n", "import numpy as np\n", "\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "import warnings\n", "warnings.filterwarnings(\"ignore\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 変数の定義" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "s = sy.Symbol('s')\n", "t = sy.Symbol('t', real=True)\n", "T_p, K_p, T_i = sy.symbols('T_p K_p T_i', positive=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 式の定義" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "tf_dict = {}\n", "tf_dict['step'] = 1/s\n", "tf_dict['plant'] = 1/ ((T_p*s)+1)\n", "tf_dict['p_controller'] = K_p\n", "tf_dict['pi_controller'] = K_p*(1+1/(T_i*s))\n", "tf_dict['p_controller_plant'] = tf_dict['p_controller'] * tf_dict['plant']\n", "tf_dict['pi_controller_plant'] = tf_dict['pi_controller'] * tf_dict['plant']\n", "tf_dict['fb_p_controller_plant'] = tf_dict['p_controller_plant'] / (1 + tf_dict['p_controller_plant'])\n", "tf_dict['fb_pi_controller_plant'] = tf_dict['pi_controller_plant'] / (1 + tf_dict['pi_controller_plant'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 逆ラプラス変換" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Processing ... step\n", "Processing ... plant\n", "Processing ... p_controller\n", "Processing ... pi_controller\n", "Processing ... p_controller_plant\n", "Processing ... pi_controller_plant\n", "Processing ... fb_p_controller_plant\n", "Processing ... fb_pi_controller_plant\n" ] } ], "source": [ "res_dict = {}\n", "t_dict = {}\n", "for key, value in tf_dict.items():\n", " print('Processing ... {}'.format(key))\n", " var_list = [t]\n", " if key in ['step']:\n", " res_dict[key] = sy.inverse_laplace_transform(tf_dict[key], s, t, )\n", " t_dict[key] = sy.Lambda(var_list, res_dict[key])\n", " continue\n", " elif key in ['plant']:\n", " var_list.append(T_p)\n", " elif key in ['p_controller']:\n", " var_list.append(K_p)\n", " elif key in ['pi_controller']:\n", " var_list.append(K_p)\n", " var_list.append(T_i)\n", " elif key in ['p_controller_plant', 'fb_p_controller_plant']:\n", " var_list.append(T_p)\n", " var_list.append(K_p)\n", " elif key in ['pi_controller_plant', 'fb_pi_controller_plant']:\n", " var_list.append(T_p)\n", " var_list.append(K_p)\n", " var_list.append(T_i)\n", " else:\n", " import sys\n", " sys.exit('ERROR: something worng {}'.format(key))\n", " res_dict[key] = sy.inverse_laplace_transform(tf_dict[key]*tf_dict['step'], s, t, plane=0)\n", " t_dict[key] = sy.Lambda(var_list, res_dict[key])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## S領域・T領域それぞれにおける関数の表示" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "step\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAsAAAAqBAMAAACXcryGAAAALVBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOrOgAAAADnRSTlMAVO8Qq5l2zWaJMkS7Iprs\nFfgAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABbSURBVBgZY2CAASEDIIvZ1Q9EMTDkUYMK0StpAJtG\nFvEOBB6QpRWbpmkZC4DC7Bt4AoDUPQYukAftVDcASQbuc2+AJK8Ac94FoAoFBj4gj+cCQxpIMK1N\ngIEBAFcvGLBa1y4IAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{1}{s}$$" ], "text/plain": [ "1\n", "─\n", "s" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFkAAAAUCAMAAADRE2EvAAAANlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHL6OuAAAAEXRSTlMAIma7zZnd\ndlTvRIkQqzLz5Q7bAUoAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAGTSURBVDgRlVUBkoQgDKsioIje\n8f/PXgsttLJzszKzBpGkNAUWAGBZ8fGi5VUTFHtdmorg4l6o4tTk8u47xbAvlmbc2msOPNxJnzv3\nkQEK/loz7Ly1wYYrx9+LTP4fA1lRdp70YJ+xjVeUpXqO99SNNpX1oAlFnH6wc/0KQLgElgrnU7O9\nK09pIFCKt6x5Ym+psRBjNSNdrriLUwFbUgldKakQNdYndZ7sk71FdJyXttlowa4DXeXCdkhNJvbK\nniIGroW22SpDdH0nQKjMIjWZ2DtzEQ82Rtv88xtMK5I8lo6q0W2e2Tdng8jKeZCxSmONZG4KHB1r\nXkvneQfAzFbKnE+iWCJo3bg3GSdlClKk1OLlYCfmInINTnRuv2mF2Kwyn7L2iVI8x/eJrSrI28Rf\nkPtK5BhUscT7qCn7CMsxzs7E9nwqEHn5izMXWJOpTy+Z1Lfsox/mzOyNZxPK+VRiL7oPtpzJinKn\nvJBTUx9scyOBG7Ypyrddw7a3KJi7+1vBPs+wJYyg+r/phO87ii3/UhX/AMWXCpZ/V2mSAAAAAElF\nTkSuQmCC\n", "text/latex": [ "$$\\left( t \\mapsto \\theta\\left(t\\right) \\right)$$" ], "text/plain": [ "t ↦ Heaviside(t)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "plant\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEQAAAAxBAMAAACR0hLzAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAVO8Qq5l2zWYiu4nd\nRDKd3laQAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABMUlEQVQ4EWNgIB0wKhPSYxLymZASBrZRJVjD\niCrhwur03QOr6aOCGCHwnyDA0DLIBTg/LfH/5VK/AY8zuTcwMB1gYG3ArgScw1kYGOYHMHBcQFHC\nmADhQnL4CwaGfgEGNgOsSiA5/AEDg78BAy+KCgaYKfBCQAcuvy0DqAMI0JVwfgULAwn2C1wBYDa6\nEo6PMCXzGfggbkJXwgIvdOxVQR7jLi+vUS8vdwBphGY8YLBAAe/6XxAWuinAYIEATgHm/AlgJroS\nYLAwcES0+TGwKzDwYzdlvQFQyf0Lbxi4JjCkYVPCvfx/SQLD5BSG+QycaW1AA0EAZhFKDndjEILI\noihBEmJg0GNwReIzQ1yNJMLAwPmT7zCKACaHsSwV6Gi8gHUDXmmQJA/UK3gUxjvjlgQAma5se3YN\n9J8AAAAASUVORK5CYII=\n", "text/latex": [ "$$\\frac{1}{T_{p} s + 1}$$" ], "text/plain": [ " 1 \n", "────────\n", "Tₚ⋅s + 1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAREAAAAmCAMAAADUQl8dAAAANlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHL6OuAAAAEXRSTlMAZnbNRO8Q\nMqsimd27VInz5Vah3oMAAAAJcEhZcwAADsQAAA7EAZUrDhsAAATOSURBVGgF5VqLlpwgDBVUBF8t\n//+zDZBAQF3BntnOTj2nIyLkhpDcRLZdFy4hsPERN6Obl6GKKbJvFvHOE4Rs127ITDCMql3E+87Y\nl/mBy0vmJWqc3nd5TzRbnkzq+mRGzazzSNabTVJZAFQrZyxFymRN9awfMXCbu7TdDRpHz+g/zEU6\no+WjPZ7QScynuUiDVxRD+5Cj5mc8VAj7R4/bSpfjAHu42tQSox8/8uRtHgVgxBUN3qqyqpABtwiJ\nyKEh+n23897vRX9XB2bsABONZanXrKWoq2djx1Vra+Gnt0kBXW2SYVXAgHRlwPVCaDrdQeAE+6z4\nJrt3tWCjW4mwJA7ufViQWm4XtnsrjD7iWD1UnfgmVxTGdJcDVwthmofmBuuBPKHYJrsX1WDa5W1O\nIwI3beNWCljlr89PxvoJwvkaXnu5PfSiuC8uPC2swF8FcK0QnJ3d9IkC1WDSLXxhgUKuMd+WOJPn\nGxGWJKmyAXEqkFOmpH/IE2LgMEusVQBfCjmKPfQshX/AgHqwzeXdsM1esKGssyRiOCCGjgCrg9sz\nF4HAy57SdEYa0Lk455rIRw7AV0KSuKuWCu4tZil28sB6MK+RTV4mfQwMegW+TL1X2NAfaCQfsGPk\nQS/zPngic7vhgyd16X/h8QDMhLjhx0vtUs5nZIefsJvcO4WIDWAKvNb9o2vFZgWN+ClIIzQ93EWK\nOG6DrtuYgbTVcI1EVwdgJiSXjk+DCzNz4sl7j/69Tt2EmrSAgX8YZpEF3eyeRnDx5PVc6y3ZIbX8\nALlGvlm8spaMdwBmQrhsapsRNFXzkTFoALhv1+24wS1gUEjEWAZhI1LAPY0EZKSRpIZrTbTxXffr\n95JdlqKk8xVMgj4AJyGqTyJ6MoEehZQi2jdXwD+ZBQZgfz2YZ9WJ+QgqpqLiJ1C864xGuEWWXOdh\nIdJV3rnmmJYOwMkiHC+27e23qUgR1QQGeeYkaga3y/lioi68EWlEzEJIjRs4pFhJLTdt6qPMYPPE\n6Rg1CZgJ4YjUZkUydeV3w2qKFjAFklXSq0OC2yG8N3LQHCl7wmoE8r1j8wnXz0gxtwjWw16Ec4o9\nvT4AMyEZJD74YhtS1Nm7Y18DmPcPZm/MebP2HwYqEt8RxPesdJyg3BGlQf6Yk79SIPvRQ8rKUCgD\npY8peebAMJwJOQP3B+XqNPueDG8A89Q2pphEXzVr+CpdCh7IwPa1t7bHssXdNmSFSH/ZcFgk9zo1\nyznGEJQnwV0IGMo8PrgQ5B4lFGCZvU/GxK4GMF+6rJQCQQIV0yhsS7sYxZ823Mm1Dj4Qy8/TgVed\nBfAzIVfCy/4vwIRz+z0yPhAC92x4Vcq6eHancBM61LOPtBK4kiEu9Lnp/gLMG2NLn+RQd3OvOJwy\nXCFtPZTUIQiefsjnwMxtrzD/pv8abHEUwsv4Lju4qQ5UxoMZWIPWGfBTIbV4l2BoizVRK2SMajMw\neCrCIey4j7ER900G/FzIPUwYcQXmDwPo9KBW2Mm42WqWN04G/Jgu/KALVe6P0fqVio4YIR/2HwOe\nm0zGtPtpfwh/ahNyEWCSF2e7pxp+8zweK/jXvW/W4M3g+IcWnEjefEe8mfKvUEelGsKJN0Wt/wrI\nN5dJZ72kpvnfnUTR+d4f+pIiau++XYsAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left( \\left ( t, \\quad T_{p}\\right ) \\mapsto \\theta\\left(t\\right) - e^{- \\frac{t}{T_{p}}} \\theta\\left(t\\right) \\right)$$" ], "text/plain": [ " -t \n", " ─── \n", " Tₚ \n", "(t, Tₚ) ↦ Heaviside(t) - ℯ ⋅Heaviside(t)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "p_controller\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABsAAAAUBAMAAACOrFuzAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdqvNEDJUuyJEiWaZ\n3e/xv6KKAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAq0lEQVQYGWNgYBD6b+TAoP85gAEKPgPp9AYY\nj/MXAwN3AozHwPWTgWUFnMfA/IEhCsFj4DfgPoDEnb9g/QUk7nopnm9IXPsNHCCrYOA7A0M93A0M\nnB8ZGOYrAK0+vVEVqILrKwMD7xcgd/6EWCCX9wMDAyPQYS1CDP0MDE72nwQYZP9XMDAoMuTBjAPR\nTxl0kLgcP1ivIHHZDGUckLg8C5A4QBsSULjnVYBcAA1xJcWcwa97AAAAAElFTkSuQmCC\n", "text/latex": [ "$$K_{p}$$" ], "text/plain": [ "Kₚ" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAL4AAAAVCAMAAADPcaSCAAAANlBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHL6OuAAAAEXRSTlMAIma7zZnd\ndlTvRIkQqzLz5Q7bAUoAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAL+SURBVEgNnVfZ2q0gCLVBbdD+\nw/u/7EEFEs39tXcXgQaLFeJkjDHTjK9KltaP73n60VG7hZlI5W5miA3BZ2VaiidLjTNo+QiwxoBf\nk3JVVvE1/zGGOZawWQFVzASflJXikQzuXXxYC/y2aPtA/RL8gzLCuHZMDKTk5EcxE/yizPSXLDdg\nr4/ygDN/n7fW7PRtz6g9xHCpcoCRG2aCnxVONkv7LnsnHBginDr1iWjY07t/fGc6wpgzAnD1N8wE\nPymTK4FYGley2ofXPWsapOvRdk0/1j9VMdPHEYZLBXFx9jtmgo+Kp9op8ogLLPHN6Key5VFtqJ4y\n6WhRoO+UqNt6gHHkgfX5jcYdM8FHZaEhYvlF6Z/QEcrUZik//X3Tf2NS6T9hRIj47DwHO2aCj4qj\nCcLyden701ge3zuhSduEtSjFwC+ymKSOE54xXP59XpWEoTATfFR2KlSWr0sfR22SEIUevS/Om/n7\n59QDXBDZck2T8wEjr2lS+sJQmAk+KkybZFABFCvVgFwIC9QbFhsIvHEq2+ZwalIPMEIeUyvrV8dM\n8FHhoiF5pMzpoMyqlgfk6X1ALL2znWcf6V8OqRlRstW1KuARRslgCZD8OmaCjwpPDJIn1t32lNJC\nk98npd3R1jin1eIitjK1jKbP2zuBDDFSus/btWMm+KjwKkTSRhMwseG5qpm9cVTevuy9U/A4DBN1\nWtkNeOPJfoespwVmiGG9mfZ7j9PM0FfwUeGRIDkt5ajnmrIV4qiEuALkzcE7gHLkSc2NylWd4G5H\nWw/qJ4xgva3KrGFmjOAnhbdklhRvu3//ZjDWdkSKJb2yS46tn79UGMqgYSb4WeGtkyV5SgEopFFj\ngglLv6RMjlQj40F/jaFMWmZ8KCiB+MDLMrumCfDFs62eB1wOtF+4Z9MKo3HVzHhPp0B8GWCZfdWk\na9AemjKbjFGxHkyHXRVGY6OYCT4rfBVj2Ti/afLuUV3m3rgpmxtDdadGxYzviPetsbP+usNCvjd+\n7Vc7/ITxH5z5F2jltp4nAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\left( \\left ( t, \\quad K_{p}\\right ) \\mapsto K_{p} \\theta\\left(t\\right) \\right)$$" ], "text/plain": [ "(t, Kₚ) ↦ Kₚ⋅Heaviside(t)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "pi_controller\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAH8AAAAyBAMAAACHVRmSAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdqvNEDJUuyJEiWaZ\n3e/xv6KKAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADRUlEQVRIDZVWzWsTQRR/bb4232nxpJWmftwK\nqc1V6BJQPJkcRZCuePBWiycPanPwnvgXNH6AH5e0eBBPWXqTHlpQ8CJSRC2CYrVVWxXim9mdmTeb\n2ZDMYef3+703v2R23swsgLE9Maq6WNGpxlKuRs0kOWPWmXo/PEQizwjWYfyDzjW2YAuaaAkU7M83\ng4rk0emSLUj0k0DB/mZQoHzSlmxBIh3E93SuM2KQbekhwbKuQKaeGMT3TQkAnbpZ91RiAG/NiW/M\nsq9Sg45tSo0dmFSpUYNqQcoEZLYI6YXUIGIsxlyxdxRRqMGI8S3Or5D0XkgNrL+9cYDJukmVGjWA\n91Im4DbBvXDt2yz5h7dYwnh31obSbk0kbwswQN/mObv4vFoX6dF/HlK7TkQMfaeJYvIPQNqR0dh3\nBsmuuyxDvWC+gFrqAKKPVSz+y8PyZfUzqLqYHNmBi2o8pH8OYZAvYnJ+Ju16Y/hTFMdA/yC/iGOW\nW+1NYpDyq2sgg9wMjmwfzvjT5jYZ/zgZzID99NyKxRZStNEdD3kGD8rld+XyLJPyXa3xrOwWdr8B\nlmqc8odugFK/VWAGSVz35SKWwvrqSeYw1BSyOIUULlsW551ebl5iBkO/xCzOeQSL8c44NJjByDB1\nkFuEytyPAhzt3gCYAn7Op70TTe26fu8g77Lf9NtHmGYoHjwSpUFj+1j3+nH8s6pVWwpb+7HXjHmb\nSelwTuCnAF8B1gVlPd9MvhA/NWFz6G9nXyZdESyMvSAKXHMUy7R8/EppGoqtQBpL9hAV23XFso6P\nN5SmoRjAKC53k4olQjZO+KRjE1WHOawb3u4dqfHeePzNO16S4dlwUZzAI6SZYAgsfnoxRFuuSJmG\nOw7SC4AVF7NZQJwdDKuWwdIMaeLrpPrFexMJMSUtPxmsJBXFMuAtuYRbGJv5cg279XHKWAZwF8vB\niXrXlzx0uJ18hC4DKwN4uAeRLcjzbOPNBpBzpZcOElgG1tlNSNRhjEXCPnHCPrIeze1OASQKYI2t\nOswg4rKnoZ02aFKqnpEw9PZr1GROL7iSElr0s0DBPm5cXj+rIq9BrxqDgzlfM6pB8XlQUHy0oHAo\n6ve5Dy9Dh6lAxWb4P+m1vDV7q13FAAAAAElFTkSuQmCC\n", "text/latex": [ "$$K_{p} \\left(1 + \\frac{1}{T_{i} s}\\right)$$" ], "text/plain": [ " ⎛ 1 ⎞\n", "Kₚ⋅⎜1 + ────⎟\n", " ⎝ Tᵢ⋅s⎠" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nTkSuQmCC\n", "text/latex": [ "$$\\left( \\left ( t, \\quad K_{p}, \\quad T_{i}\\right ) \\mapsto \\frac{K_{p} \\theta\\left(t\\right)}{T_{i}} \\left(T_{i} + t\\right) \\right)$$" ], "text/plain": [ " Kₚ⋅(Tᵢ + t)⋅Heaviside(t)\n", "(t, Kₚ, Tᵢ) ↦ ────────────────────────\n", " Tᵢ " ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "p_controller_plant\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEQAAAAwBAMAAABajsFWAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdqvNEDJUuyJEiWaZ\n3e/xv6KKAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABpElEQVQ4Ec2TO0/CUBTH/7z7Qh6jj4hGJ40o\nnQ0NX0BmjUk3Nwdd3OjgDt+AurkBn0Di6iCDH8BE3TRBUVFjrPe2lF7aCw4mxjM05/zur/fenvQA\nTGStgoZ8r8ygQNojZM8IYAaIH4CsMyCYSu+IngYxSyJdbLM1J0+ty20OZlHdbHTYmpM3ppVXDmZR\nsSnQz54UfaAysW8QH4F6jrTmorU8ZifpBUg+E6Ve2x2jJLtAiDT4OIsqXykVn9KYs46ABezzFY/e\nYdUruJnwFrviLngwvjGreRU3U0wuZmFSZytufrnExb+E1o/xywP+/HXh6yDfXyyaEw6WTEx1oDT5\nSvyW8DBQbUOujSjxtFOWzsl/ih3gTEdI4yoIUaUM5DWIIwbcXRyFrD0M109myBsk/Irw6SqRWqJt\n535FHs5xFTGNq4TplezYuqcfJqnq5o2q5iiyrwvalkGIFTLVNPwHkbY4Yyzo0XmDGgGFtMUZ48g1\nUrYRUCraYIwTBjI8RTq0CmlnjIVMi2xIw72LstZbcQh5jo6xqwyXSeIb46jBLjr5vxjjb/DlgdfS\nO7OWAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{K_{p}}{T_{p} s + 1}$$" ], "text/plain": [ " Kₚ \n", "────────\n", "Tₚ⋅s + 1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/latex": [ "$$\\left( \\left ( t, \\quad T_{p}, \\quad K_{p}\\right ) \\mapsto K_{p} \\theta\\left(t\\right) - K_{p} e^{- \\frac{t}{T_{p}}} \\theta\\left(t\\right) \\right)$$" ], "text/plain": [ " -t \n", " ─── \n", " Tₚ \n", "(t, Tₚ, Kₚ) ↦ Kₚ⋅Heaviside(t) - Kₚ⋅ℯ ⋅Heaviside(t)" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "pi_controller_plant\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHkAAABCBAMAAACBaWQUAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdqvNEDJUuyJEiWaZ\n3e/xv6KKAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADqUlEQVRIDd1WTU8TQRh+S7fttl1oQePBL0Dx\nomgLnA0b4sUDgcSDiR+hntSDkkhivLEHvRnb+AOk3DwJnElsY2I8GGNj/IoXiMrFjwRFBdRY35nZ\nmZ1ZdkrXAwfnMPM+z/M+u7Mzs7svQECbD+BUakiFMorkZRQYJ/Upd+xAh0J2KEgCxpIEdGF0VqO0\ndGkEmTa/yUiKxxwJ+MITAu8TkRr0q1BGZw4LNGaLUA7MNRn54ksCR7MilAOrJiNf7LnTiz6Jwbbg\nizLRc5vrjOmo99uQWxl1r1XkgYuVwXPDB1dYwfG8w7MqNIi/51gZJfd+JiR/AqQLIukJiYYe8P2M\nKw8iuTuZI7UOxl1hhlc0jGzqHndoYnQZTnlm+N3IfdlLHCvQOJNPVz0SvtA4+N43F7pF5sgsDafK\nMzXBgfGrgdtLA8iwBZnZaf3waLNpd5maBmdNsmdui7ErsZmnBgaOvhsY6EItU5cayc1USQ+rAJOj\nNCJdrOl7V0l6Epdpqgu3/PHcAYTamd/vnezNsZUiNhgpkz71HaAVdzc9VTqL0NCteQ9UIF0iDtaK\n9EqtywARPG7XO6BIeAyxbdgxIwuPIO5QkXZ0v4cGv2ZhT/0aQDfQs/CWaNaRlUMskZ/UmA1vIMk4\n2k9J80BiCXoJPUE10XE3PpP7Tk7voGLFFjkYmGux5wTfk0n0OBwnydHPg1U6SRk1L9632yb0OO1J\n5GupGhI2JK4eo8IzRbbKDLrnV9EoSHTRIZbDTcI5sXNBKexaCyxykzjtjRnconNZuIDLiy2ufjyf\n9rBEzecOYGwU4GIVXsBDkmjlWbqvN6RXRpZuLxwESIzC/FyJ0G04k6C2LYh0uWGx43s1WW04Q11r\n2c6VjzzwjengJ1Kz9P/4PjUxEN1yAmkkhxtM3fUYL3VmMF9rJS4kNCtO9Bs8STse1ypbJ0hfytDh\n8tZN8/+9k/nnSm5132D5354wVYa2GliaY6ipZcStWgCKVeV/gxL/onu1jMhXg9MAlQJEbIXlbu/v\npMgewFczZyv/G9SadmPuZ3Gt6V14MWwh3CYrmdAULSWqxBzGnRbf4yLgbzOku4X86mgb+VTCUapc\nNl01/MjXXDMkJ7GgIS3Ec+N2swrGLBidDjGHceN2swomuggZag7jnrTdCibhQHtId2qi3p9lFYzZ\nPofTII0/t1fLMF7XuxWMK3O3LtvH8wrGpQ3HpzeGvIJpnKVTrbJOaYbnFUwzuRtzeAWzUfEzfwFr\nLwqMf9MurgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{K_{p} \\left(1 + \\frac{1}{T_{i} s}\\right)}{T_{p} s + 1}$$" ], "text/plain": [ " ⎛ 1 ⎞\n", "Kₚ⋅⎜1 + ────⎟\n", " ⎝ Tᵢ⋅s⎠\n", "─────────────\n", " Tₚ⋅s + 1 " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nLfoPMZNfWDfmzDQAAAAASUVORK5CYII=\n", "text/latex": [ "$$\\left( \\left ( t, \\quad T_{p}, \\quad K_{p}, \\quad T_{i}\\right ) \\mapsto \\frac{K_{p} \\theta\\left(t\\right)}{T_{i}} \\left(T_{i} e^{\\frac{t}{T_{p}}} - T_{i} - T_{p} e^{\\frac{t}{T_{p}}} + T_{p} + t e^{\\frac{t}{T_{p}}}\\right) e^{- \\frac{t}{T_{p}}} \\right)$$" ], "text/plain": [ " ⎛ t t t ⎞ -t \n", " ⎜ ── ── ──⎟ ─── \n", " ⎜ Tₚ Tₚ Tₚ⎟ Tₚ \n", " Kₚ⋅⎝Tᵢ⋅ℯ - Tᵢ - Tₚ⋅ℯ + Tₚ + t⋅ℯ ⎠⋅ℯ ⋅Heaviside(t)\n", "(t, Tₚ, Kₚ, Tᵢ) ↦ ────────────────────────────────────────────────────────\n", " Tᵢ " ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "fb_p_controller_plant\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAMgAAABABAMAAACtlSUYAAAAMFBMVEX///8AAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAv3aB7AAAAD3RSTlMAdqvNEDJUuyJEiWaZ\n3e/xv6KKAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEyUlEQVRYCc1YTYgcRRR+M9M90/M/u4IHE90x\niSC6OJPtgx7UbRYPeogz4EFQZCcnPWXFiAQ8bB+UnOIMIgiCziyCCP7s7C0YcYcF8SDBQfzDg1nU\nHNRIVtdkEw2u71V1V3fXdvdMD7RsHarez/feVz9dVVMDEKVM784ZUNtuRomJjt3GkKfN6HFRIrJ/\nA+RbUSImwOaug/LuBHGRQlJb8ESkgEnA5Xp+MElcpJhub3UYKWAS8OothauTxEWKme9r9BHHW3YA\nlmPeiZD9A6Bbxa3y+dodsY0mdwWg+BeSdDtPxUZS3AJI4KZ/aRracZEszP9ZgVt3TwHcDifiInHy\nXoRZR4lJ0q6pX8WU2kmbPnrQcLSYpEIvpsTutMWWW4tJ/uJITIn3f9rd/6Hs/1nYhz08F6VPC1HA\nDjZRd+TRUjYSWuR7yxDi6zstmH9eqL7CtK91hFG56AASm6Dd6ai+Uqrvaw43JquOP/ksHHc0f0nD\nGzhyWTSdkFIl0XG0AOlQgD3MPOdyNl570aUFiItGgCPYrF1z+ZbeuNelBYipSoAj2FwYunyr/W7T\npfqL+U1/e4i15O7X/VCshmC5S7tutf2RUDjLIW13169CGmfv4wPvhIb/yr2nQfv3udrOofleMDpp\nMt+6C6EiwyWA471jLqNbPGGQdpib7oNcD0pDKASMKP0zgFJn2PM8gtUf3DDTlweQaT7mMqJo7R1l\ntmaQY4YqwAdREqA9gHyH6XaVrnBpYYM21ApTvrWdTluC9xyFJLFBZwxSl0yqiyY8CbDegoRBqig2\nCSSI5FFmvyG8QjgzJU2ARLLYIugZgCYAji0rApngJUmxYeJ7QC4fyQaJpMH6cJChfhfYlQPIicVL\nkhugSfmHHJ6i7ZlBiaRcITw7GzQxEalOZsDSeEnydTRqe0kY1FPJJD3yfkNVXjwi26AaZJFGkh6i\nSWWocsCPli1EvK3rP+g6P+H4wpcHaIZfqEqKI7lxqYN6Ttcf+EnXq+RjC69SCnWSkQwoByPBbWKV\n7DI+Kal4p4uRWNP1yezybK3PUXat1m1Jmq5GjxxsutoDnDJ6Q2otZcYks0SSpV4o/Os6AuvyplI3\nRC8lkjbrDVv49RaS0BsytQllopBJ2MIDPgKRqgKfQdokkRXcyogOIuH75H3CLBvWGzJjwhQZZJJC\nj2w/UoUfxvfuTZUh416SjctzNIhuh9xv4jKf3J2r8DekNrXWIqtDUrhn+26AVJNsJ6nCsVjnN6zc\njFoACUPiUWKQUDSppuJ9Q4qFZz48F7B8yGrIWt9iofM4GiSShznGrnlIfmDp0htSMS07a1ZYvWSw\nJjdkDWReeAgFiYS7RP0ll05ZhrA3pHXUN/oMm6nyELV2BQ7rD+p6xbUmVjarsU+i05bO19aLsTX8\nHqhY2cvIRTfiM/hXwIiR0OVJRePdg7A35FkOzW+ydrHJb8Sv4VPU+XRxD3O7q0LdrQGM8YZU2OH1\n6oW7MDXeiOfWOpiCSLTz+DeHXyn1/azhtpuE27kR2UiEXRJuk/Rx1FLTRjk3YijJbzY+QstPFwpw\nbkQtJD7ac8ZOdNQS9t6INsLTvmJ61DGVY2K+xglQ2BE/DtKD0b7zqCOUzATfFqV8eURej/sRjzaO\n8h9aFHYHmUahKgAAAABJRU5ErkJggg==\n", "text/latex": [ "$$\\frac{K_{p}}{\\left(\\frac{K_{p}}{T_{p} s + 1} + 1\\right) \\left(T_{p} s + 1\\right)}$$" ], "text/plain": [ " Kₚ \n", "─────────────────────────\n", "⎛ Kₚ ⎞ \n", "⎜──────── + 1⎟⋅(Tₚ⋅s + 1)\n", "⎝Tₚ⋅s + 1 ⎠ " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nRK5CYII=\n", "text/latex": [ "$$\\left( \\left ( t, \\quad T_{p}, \\quad K_{p}\\right ) \\mapsto \\frac{K_{p} \\theta\\left(t\\right)}{K_{p} + 1} \\left(e^{\\frac{t}{T_{p}} \\left(K_{p} + 1\\right)} - 1\\right) e^{- \\frac{t}{T_{p}} \\left(K_{p} + 1\\right)} \\right)$$" ], "text/plain": [ " ⎛ t⋅(Kₚ + 1) ⎞ -t⋅(Kₚ + 1) \n", " ⎜ ────────── ⎟ ──────────── \n", " ⎜ Tₚ ⎟ Tₚ \n", " Kₚ⋅⎝ℯ - 1⎠⋅ℯ ⋅Heaviside(t)\n", "(t, Tₚ, Kₚ) ↦ ───────────────────────────────────────────────\n", " Kₚ + 1 " ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "fb_pi_controller_plant\n" ] }, { "data": { "image/png": "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\nZu/FBu/jf9x2deISHc0TAAAAAElFTkSuQmCC\n", "text/latex": [ "$$\\frac{K_{p} \\left(1 + \\frac{1}{T_{i} s}\\right)}{\\left(T_{p} s + 1\\right) \\left(\\frac{K_{p} \\left(1 + \\frac{1}{T_{i} s}\\right)}{T_{p} s + 1} + 1\\right)}$$" ], "text/plain": [ " ⎛ 1 ⎞ \n", " Kₚ⋅⎜1 + ────⎟ \n", " ⎝ Tᵢ⋅s⎠ \n", "──────────────────────────────\n", " ⎛ ⎛ 1 ⎞ ⎞\n", " ⎜Kₚ⋅⎜1 + ────⎟ ⎟\n", " ⎜ ⎝ Tᵢ⋅s⎠ ⎟\n", "(Tₚ⋅s + 1)⋅⎜───────────── + 1⎟\n", " ⎝ Tₚ⋅s + 1 ⎠" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for key, value in tf_dict.items():\n", " print(key)\n", " display(value)\n", " if key == 'fb_pi_controller_plant':\n", " continue\n", " display(t_dict[key])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## システム状態の時間発展" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "param_dict = {'T_p':7.05, 'K_p':2.0, 'T_i':1.0}\n", "\n", "T_MIN = -5\n", "T_MAX = 30\n", "OFFSET = 5\n", "trange = np.linspace(T_MIN, T_MAX, 100)\n", "for key, value in t_dict.items():\n", " var_list = []\n", " if key in ['step']:\n", " pass\n", " elif key in ['plant']:\n", " var_list.append(param_dict['T_p'])\n", " elif key in ['p_controller']:\n", " var_list.append(param_dict['K_p'])\n", " elif key in ['pi_controller']:\n", " var_list.append(param_dict['K_p'])\n", " var_list.append(param_dict['T_i'])\n", " elif key in ['p_controller_plant', 'pi_controller_plant']:\n", " continue\n", " elif key in ['fb_p_controller_plant']:\n", " var_list.append(param_dict['T_p'])\n", " var_list.append(param_dict['K_p'])\n", " elif key in ['fb_pi_controller_plant']: \n", " var_list.append(param_dict['T_p'])\n", " var_list.append(param_dict['K_p']) \n", " var_list.append(param_dict['T_i'])\n", " else:\n", " import sys\n", " sys.exit('ERROR: something worng {}'.format(key))\n", " plt.plot(trange, [value(tt, *var_list).evalf(chop=True)+OFFSET for tt in trange], label = '{}'.format(key)) #桁落ち対応 evalf(chop=True)\n", "\n", "plt.xlabel('Time s')\n", "plt.ylabel('y(t) V')\n", "plt.ylim(-1+OFFSET, 5+OFFSET)\n", "plt.xlim(T_MIN, T_MAX)\n", "plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left', borderaxespad=0, fontsize=10)\n", "plt.grid()\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python [conda env:py3.6]", "language": "python", "name": "conda-env-py3.6-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.4" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 1 }