{ "cells": [ { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEGCAYAAAB1iW6ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3deXhV5b328e8vCQmEAAETUAwYFUsZSgsEDFAVGUWowBEVrR6LKGqPUrStL7ZqD0rpW72KVY+WorZKq6CgVuSgEBBRyQ4liKJMGkUBGcMQEsOQ4Xn/IOQNIZDNzk7WHu7PdeXKHtZe+34C3Kw8ew3mnENERMJfjNcBREQkOFToIiIRQoUuIhIhVOgiIhFChS4iEiHivHrjlJQUl56eHtBrS0tLiYvzLHpQaSyhKVLGEinjAI3luNWrV+c751Jres6zn056ejq5ubkBvTY/P5+UlJQgJ/KGxhKaImUskTIO0FiOM7NvTvWcplxERCKECl1EJEKo0EVEIkRkfMIgIhHr6NGjfPnllxQXF/PNN6ecPg47tY0lMTGRCy+8kPj4eL/XqUIXkZD25ZdfkpycTMeOHYmJiY5JhfLycnbt2kVeXh6dO3f2+3XR8dMRkbBVXFxMmzZtoqbMAWJiYmjTpg3FxcVkZ2fj70kUo+cnJCJhK5rK/LiYmBjMjJycHL+nmjTlEgEKCgrIyclh06ZNFBYWEhcXR7t27ejRowcdO3bEzLyOKCIBMjMKCwv9WlaFHqaccyxdupTp06ezZMkSSkpKalyubdu2XHfdddx222106tSpgVOKRLf333+fSZMmsXbtWubMmcOYMWMqn3vxxReZOnUqAA888AA333xznd8v+n6PiQB5eXkMGjSIwYMHs2bNGiZNmsTSpUvZtWsXR48epbCwkM8++4yZM2fSu3dvnnrqKTp37sy1117Lxo0bvY4vEjXat2/PCy+8wA033HDC4/v27WPKlCmsXLmSf//730yZMoX9+/fX+f1U6GFm9uzZdOvWjdzcXJ566ik2b97Mo48+yoABA2jdujWNGjUiKSmJLl26cNttt/HGG2+wbds2HnjgAd5++21+8IMf8Nvf/pbDhw97PRSRsDJq1Ch69uxJly5dmDlzpl+vSU9Pp1u3bid9BrBo0SIGDx5Mq1ataNmyJYMHD+add96pc0ZNuYQJ5xxTpkxhypQpXHLJJcyZM4e2bdv69do2bdrwyCOPMHHiRH71q18xbdo0Xn/9dV555RW6detWz8lFgmfSpEl8/PHHQV3nj370I/785z/Xutzf/vY3WrVqxaFDh+jVqxdXX301P//5z9m0adNJy957773853/+5ynX9e2339KuXbvK+2lpaXz77beBDaCKWgvdzP4GjAB2O+e61vD8T4H/U3G3CLjTOfdJnZNJJeccDzzwANOmTWPcuHHMmDHjjA42OC41NZUXX3yRG264gXHjxnHxxRfzl7/8hZ/97GfBDy0SYZ588kneeOMNALZu3coXX3zBK6+8EtC6atoNMRg7L/izhf4C8D/ArFM8vxm4zDm338yGATOBi+ucTCo98cQTTJs2jdtvv51nnnmmzrtwDR06lDVr1nD99dczbtw4cnNzeeKJJ4iNjQ1SYpH64c+WdH147733WLJkCT6fj8TERPr378/hw4e57rrrAtpCT0tL47333qu8v23bNvr371/nnLUWunPufTNLP83z2VXu5gBpdU4llRYuXMgvf/lLRo8eHZQyP65NmzYsXryYyZMn86c//Ylt27bx8ssvk5iYGJT1i0SSgoICWrZsSWJiIhs3biQnJwcg4C30oUOH8pvf/Kbyg9DFixfzhz/8oc45gz2HPh54+1RPmtkEYAIc+x8qPz8/oDcpKCgI6HWh6HRj2bJlC2PHjqVLly48/vjj7Nu3L+jvP3nyZM466yx++9vfcumll/Lyyy/TqlWrgNYVLX8u4SRSxuG1K664ghkzZtCtWzc6duxIZmamX69btWoVo0ePZv/+/bz11lv87ne/Y926dbRq1YoHH3yQXr16AfDQQw+d8t/dkSNHKCgo8K8vnXO1fgHpwGe1LHM5sAE4y5919uzZ0wVqz549Ab821JxqLKWlpe7HP/6xa9asmdu8eXO953j99dddQkKC++EPfxjwzzca/lzCTSSMIzc31+sInsnNzXXTp093a9eurXwMyHWn6NWg/P5uZt2A54CRzrm9wVhntHv00Uf58MMPefrppwn0Un1nYvTo0cyfP59NmzYxYMAAdu/eXe/vKSLBVedCN7P2wOvATc65z+seSfLy8pgyZQpjxozhxhtvbLD3HTJkCAsWLCAvL4/LL7+cXbt2Ndh7i0jd1VroZjYb8AEdzWybmY03szvM7I6KRR4C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PDAWmF91ATPrDvwVuMo5tzv4MesuKyuL1NRUunXr5nUUEZF6UWuhO+dKgbuARcAG4FXn3Doze9jMrqpY7DEgCZhrZh+b2fxTrM4TzjmWLFnCwIEDdf1QEYlY/ky54JxbCCys9thDVW4PCnKuoFq3bh07duzQdIuIRLSo2FxduPDY/0VDhgzxOImISP2JikJ/66236N69O2lpIbl7vIhIUER8oe/du5fs7Gx+8pOfeB1FRKReRXyhv/3225SXlzNixAivo4iI1KuIL/S33nqLs88+m549e3odRUSkXkV0oZeUlPDOO+8wfPhw7a4oIgbZeAwAAAb4SURBVBEvolvugw8+4ODBg5puEZGoENGFPm/ePJo0aaL9z0UkKkRsoZeWljJv3jxGjBhB06ZNvY4jIlLvIrbQly9fzp49e7juuuu8jiIi0iAittBfeeUVkpKSuPLKK72OIiLSICKy0EtKSnjttde46qqraNKkiddxREQaREQW+qJFi9i3b5+mW0QkqkRkoT/33HO0adOGYcOGeR1FRKTBRFyh79ixgwULFnDzzTfTqFEjr+OIiDSYiCv0F198kbKyMsaPH+91FBGRBhVRhV5SUsKMGTO47LLL+N73vud1HBGRBuXXFYvCxdy5c/nmm2948sknvY4iItLgImYL3TnHY489xve//32du0VEolLEbKEvXLiQjz/+mOeee05nVhSRqBQRzVdaWsp9991Hhw4duOmmm7yOIyLiiYjYQv/rX//K+vXree2114iPj/c6joiIJ8J+C/3zzz/nvvvuY+jQoYwePdrrOCIinvGr0M3sCjPbZGZ5Zja5hucTzOyViudXmll6sIPW5MCBA4wZM4aEhASef/55zKwh3lZEJCTVWuhmFgs8DQwDOgPXm1nnaouNB/Y75zoAjwN/DHbQ6tatW8dll13Gxo0befXVVzn33HPr+y1FREKaP1vovYE859xXzrmjwBxgZLVlRgIvVtyeBwy0etpc/t///V969epF165d2bJlC2+99RaDBg2qj7cSEQkr/nwoei6wtcr9bcDFp1rGOVdqZgXAWUB+1YXMbAIwASAtLY38/HzOVHx8PJ06deKmm27ixhtvpFWrVgGtJ1QUFBR4HSFoNJbQEynjAI3FH/4Uek1b2i6AZXDOzQRmAmRkZLiUlBQ/3v5EgwcPpnv37gTy2lClsYSmSBlLpIwDNJba+DPlsg1oV+V+GrD9VMuYWRzQAtgXjIAiIuIffwp9FXCRmZ1vZvHAWGB+tWXmAzdX3B4DvOucO2kLXURE6k+tUy4Vc+J3AYuAWOBvzrl1ZvYwkOucmw88D/zDzPI4tmU+tj5Di4jIyfw6UtQ5txBYWO2xh6rcPgxcE9xoIiJyJsL+SFERETlGhS4iEiFU6CIiEUKFLiISIcyrvQvNbA/wTYAvT6HaUahhTGMJTZEylkgZB2gsx53nnEut6QnPCr0uzCzXOZfhdY5g0FhCU6SMJVLGARqLPzTlIiISIVToIiIRIlwLfabXAYJIYwlNkTKWSBkHaCy1Css5dBEROVm4bqGLiEg1KnQRkQgRdoVe2wWrw4WZ/c3MdpvZZ15nqQsza2dmy8xsg5mtM7NfeJ0pUGbW2Mz+bWafVIxliteZ6srMYs1sjZkt8DpLXZjZ12b2qZl9bGa5XucJlJklm9k8M9tY8W+mT1DXH05z6BUXrP4cGMyxi2qsAq53zq33NFgAzOxSoAiY5Zzr6nWeQJnZOcA5zrmPzKwZsBoYFaZ/JgY0dc4VmVkj4EPgF865HI+jBczM7gUygObOuRFe5wmUmX0NZDjnwvrAIjN7EfjAOfdcxfUlEp1zB4K1/nDbQvfngtVhwTn3PhFwVSfn3A7n3EcVtwuBDRy7xmzYcccUVdxtVPEVPls81ZhZGjAceM7rLAJm1hy4lGPXj8A5dzSYZQ7hV+g1XbA6LMsjEplZOtAdWOltksBVTFF8DOwGspxzYTsW4M/AfUC510GCwAGLzWx1xcXmw9EFwB7g7xXTYM+ZWdNgvkG4FbpfF6OWhmdmScBrwCTn3EGv8wTKOVfmnPsRx66d29vMwnI6zMxGALudc6u9zhIk/ZxzPYBhwH9VTFmGmzigB/AX51x34DsgqJ8Dhluh+3PBamlgFfPNrwEvOede9zpPMFT8KvwecIXHUQLVD7iqYu55DjDAzP7pbaTAOee2V3zfDbzBsenXcLMN2Fblt755HCv4oAm3QvfngtXSgCo+SHwe2OCcm+51nrows1QzS6643QQYBGz0NlVgnHP3O+fSnHPpHPt38q5z7kaPYwXEzJpWfOBOxRTFECDs9g5zzu0EtppZx4qHBgJB3XnAr2uKhopTXbDa41gBMbPZQH8gxcy2Ab9zzj3vbaqA9ANuAj6tmHsG+E3FdWjDzTnAixV7U8UArzrnwnp3vwjRBnjj2LYDccDLzrl3vI0UsLuBlyo2SL8CxgVz5WG126KIiJxauE25iIjIKajQRUQihApdRCRCqNBFRCKECl1EJEKo0EWqqDgb3s+9ziESCBW6yImSARW6hCUVusiJ/i9wYcV5tx/zOozImdCBRSJVVJwxckE4n6Neope20EVEIoQKXUQkQqjQRU5UCDTzOoRIIFToIlU45/YCK8zsM30oKuFGH4qKiEQIbaGLiEQIFbqISIRQoYuIRAgVuohIhFChi4hECBW6iEiEUKGLiESI/wcLRIhCSYTvtQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/plain": [ "1.2453754653766647" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from scipy.signal import lti,step2\n", "import control as ctl\n", "from control import (TransferFunction)\n", "\n", "\n", "y0 = [0,0]\n", "\n", "# fator de amortecimento entre 0 e 1\n", "plant_tf3 = TransferFunction(6, [1,2,6])\n", "\n", "t_ = np.linspace(0, 6, 1001)\n", "\n", "plt.figure(1)\n", "tout3, yout3 = ctl.step_response(plant_tf3, T=t_, X0=y0)\n", "plt.plot(tout3, yout3, 'k', linewidth=1.5, label='a=10')\n", "plt.legend(loc='best', shadow=True, framealpha=1)\n", "plt.grid(alpha=0.3)\n", "plt.xlabel('t')\n", "plt.show()\n", "\n", "yout3.max()\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ts= 4.0\n", "tp= 1.4049629462081454\n", "ms= 24.53761484012086\n" ] } ], "source": [ "wn = np.sqrt(6)\n", "fator = 2/(2*wn)\n", "# acomodação\n", "ts = 4/(fator*wn)\n", "print('ts=',ts)\n", "# pico\n", "tp = np.pi/(wn*np.sqrt(1-fator**2))\n", "print('tp=',tp)\n", "# oveshoot\n", "ms = np.exp(-fator*np.pi/(np.sqrt(1-fator**2)))*100\n", "print('ms=',ms)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OS: 24.420000%\n", "Mp: 1.245315\n", "Tp: 1.41\n", "Ts: 3.39\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#https://gist.github.com/kennethsinder/1e17f8b1c4aacffd996369a7a4346fe0\n", "\n", "tf = lti( # linear, time-invariant system, rational transfer function\n", " [6],\n", " [1, 2, 6],\n", ") \n", "\n", "t, y = step2(tf)\n", "\n", "plt.plot(t, y)\n", "plt.title('Step Response')\n", "plt.grid()\n", "plt.xlabel('time (s)')\n", "plt.ylabel('y(t)')\n", "\n", "info = \"OS: %f%s\"%(round((y.max()/y[-1]-1)*100,2),'%')\n", "info += \"\\nMp: %f\" % (y.max())\n", "\n", "try:\n", " Ts = round(t[next(len(y)-i for i in range(2,len(y)-1) if abs(y[-i]/y[-1])<0.98)]-t[0],2)\n", "except StopIteration:\n", " Ts = \"unknown\"\n", "\n", "try:\n", " Tp = round(t[next(len(y)-i for i in range(2,len(y)-1) if y[-i] == y.max())]-t[0],2)\n", "except StopIteration:\n", " Tp = \"unknown\"\n", "\n", "info +=\"\\nTp: %s\"%(Tp)\n", "info +=\"\\nTs: %s\"%(Ts)\n", "print(info) # print legend data to stdout as well\n", "plt.legend([info], loc=4)\n", "\n", "plt.show() # display the step response graph\n" ] } ], "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 }