{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Control en Espacio de Estados\n", "\n", "***Describir los sistemas en el espacio de estados y encontrar un controlador para esta representación.***" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "A subdirectory or file diagrams already exists.\n" ] } ], "source": [ "# Importamos librerias que utilizaremos en el notebook\n", "\n", "%matplotlib inline\n", "\n", "import control\n", "import matplotlib.pyplot as plt\n", "from matplotlib.animation import FuncAnimation\n", "import numpy\n", "import sympy\n", "import ipywidgets as widgets\n", "\n", "sympy.init_printing()\n", "\n", "!mkdir diagrams;" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Repaso sobre Control de Sistemas Mecatrónicos\n", "\n", "Podemos definir un _sistema_ como algo que cambia en el tiempo, _control_ es influenciar ese cambio. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Elementos básicos de un sistema de control \n", "\n", "| Elemento | Descripción |\n", "|:-----------:|:------------|\n", "| Estado | Es la representación del sistema en un momento dado |\n", "| Dinámica | Descripción de cómo el estado del sistema evoluciona |\n", "| Referencia | Es el cambio que queremos generar en el sistema |\n", "| Salida | Es la medida de algun aspecto del sistema que queremos influenciar |\n", "| Entrada | Es la señal que necesitamos manipular para lograr que la salida sea lo más cercana a la referencia |\n", "| Realimentación | Lo que nos permite relacionar las salidas con las entradas | \n", "\n", "\n", "La ***realimentación*** es la clave para poder hacer un buen control." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Objetivos a la hora de hacer control\n", "\n", "|Objetivo | Descripción |\n", "|:-----------:|------------:|\n", "|Estabilidad | Es lograr que el sistema no explote | \n", "|Seguimiento | Es lograr que el sistema cumpla con mi deseo | \n", "|Robutez | Es lograr que a pesar de perturbación el sistema siga siendo estable | \n", "|Inmunidad a perturbaciones | Es lograr que el sistema cumpla con mi deseo a pesar de los obstaculos | \n", "|Optimo | Hacer el control de la mejor manera posible | \n", "\n", "Las estrategias de control eficaz se basan en modelos predictivos" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Implementando un controlador\n", "\n", "Los controladores actualmente se programan dentro de un computador el cual discretiza el tiempo con su tiempo de reloj. En cambio las leyes física están en tiempo continuo. Por lo que para controlar elemento físico debemos generar una discretización de los controladores que vamos a implementar. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Control de la velocidad crucero (Ejemplo)\n", "\n", "Queremos que un vehículo vaya a una velocidad deseada $r = 70$. \n", "\n", "- Para diseñar el controlador de este sistema, necesitamos conocer primero el modelo del sistema, de Newton sabemos que: \n", "\n", " $$F = m\\, a$$\n", "\n", "- Aquí, podemos conocer todo lo que queremos saber del sistema conociendo su velocidad $x$ (el uso de la variable $x$ es la generalidad para las variables de estado).\n", "\n", " $$F = m\\, \\dot{x}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "- Una señal de entrada que nos permita controlar la velocidad del vehículo sería la presión sobre el accelerador del vehiculo. Esta señal de entrada podemos suponer esta directamente relacionada con la fuerza que el vehículo puede generar. \n", "\n", " $$F = c\\, u$$\n", "\n", " aquí, $u$ es la señal del acelerador y $c$ un coeficiente de relación. Luego\n", " \n", " $$\\dot{x} = \\frac{c}{m}u$$\n", "\n", "- Para diseñar el controlador:\n", " - asumimos que podemos medir la velocidad con un tacometro $y=x$. \n", " - tenemos que la señal de control debe ser función de la referencia y la medida $u=f(r,y)=f(r-y)=f(e)$\n", " \n", "A veces modelos simples funcionan...\n", "\n", "[DARPA Urban Challenge (2007)](https://youtu.be/aHYRtOvSx-M)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Propiedades de un buen controlador o señal de control\n", "\n", "1. Un error $e$ pequeño generará una señal de control $u$ pequeña. \n", "2. La señal de control no debería cambiar de forma violenta. \n", "3. No se debe depender de conocer todos los parámetros del sistema. \n", "\n", "En el ejemplo anterior queremos que:\n", "\n", "- $x$ tienda a $r$ cuanto $t$ tienda a $\\infty$\n", "- o lo que es lo mismo que $r-y = e$ tiena a $0$ " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Intento #1 de control de velocidad \n", "\n", "Supongamos una señal de control:\n", "\n", "$$ \n", "u = \n", "\\left\\{\n", "\\begin{array}{ll}\n", " u_{max} & \\quad e > 0 \\\\\n", " -u_{max} & \\quad e < 0 \\\\\n", " 0 & \\quad e = 0\n", "\\end{array}\n", "\\right. \n", "$$\n", "\n", "Con este controlador estamos dañando el carro.\n", "\n", "**Problema:** El controlador sobre reacciona a pequeños errores" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Intento #2 de control de velocidad \n", "### Regulador P\n", "\n", "Supongamos una señal de control: \n", "\n", "$$u = k\\,e$$\n", "\n", "siendo $k$ la ganancia de controlador, un control lineal. \n", "\n", "- Un control donde pequeños errores generar pequeñas señales de control \n", "- Un control suave\n", "- Control proporcional " ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "c = 60\n", "m = 10 \n", "gamma = 1\n", "\n", "vehiculo = control.tf(c/m,[1,gamma])\n", "\n", "K = 1\n", "closedLoop = control.feedback(vehiculo*K,1)\n", "\n", "t,y = control.step_response(70*closedLoop);\n", "plt.plot(t,y,[t[0],t[-1]],[70,70]);\n", "plt.legend([\"salida: velocidad\",\"referencia\"]);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "**Problema:** La referencia llega a 70 y la salida llega a 60. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "En estado estacionario : \n", "\n", "$$0 = \\dot{x} = \\frac{c}{m}u - \\gamma x = \\frac{c}{m}K(r-x) - \\gamma x$$\n", "\n", "entonces,\n", "\n", "$$x = \\frac{cK}{cK+m\\gamma}r < r$$\n", "\n", "$\\gamma r$ es la resistencia del viento" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Modelo del vehículo\n", "\n", "$$\\dot{x} = \\frac{c}{m}u - \\gamma x$$\n", "\n", "Recordemos que un controlador deberia:\n", "\n", "- Ser estable\n", "- Seguir la referencia \n", "- Ser robusto" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Intento #3 de control de velocidad \n", "\n", "Supongamos una señal de control: \n", "\n", "$$u = k\\,e+\\gamma \\frac{m}{c}x$$\n", "\n", "con este nuevo controlador tendremos un estado estacionario :\n", "\n", "$$\\dot{x} = 0 = \\frac{c}{m}K(r-x)+\\gamma x - \\gamma x$$\n", "\n", "lo que significa que $x=r$ en estado estacionario!\n", "\n", "Este tercer intento es estable, sigue la referencia pero no es robusto, porque, nosotros no conocemos perfectamente y todo el tiempo los valores de $\\gamma$, $m$ y $c$. Estos valores pueden variar. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Análisis de regulador P" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(t,y,[t[0],t[-1]],[70,70],t,70-y);\n", "plt.legend([\"salida: velocidad\",\"referencia\",\"error\"]);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "para el regulador P, la señal del error llevo al vehículo hasta la velocidad final mostrada, se necesita otro medio para acercarlo a la referencia. Y este medio es la integral del error, que se va a ir acumulando hasta generar una señal lo suficientemente fuerte para llegar al objetivo. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Intento #4 de control de velocidad\n", "\n", "Supongamos una señal de control: \n", "\n", "$$u(t)=K_p\\,e(t)+K_I \\int_o^t e(\\tau)d\\tau$$\n", "\n", "Para este sistema este controlador es **estable**, **sigue la referencia** y es **robusto**" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAAD4CAYAAAD1jb0+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAfjklEQVR4nO3de3RU5b3/8fc3IRDC/RIxQjFoURS5aYpQLUU9UlDrpcWCPbboQvGn1co6tV5aPSr1tBZdnnNc7VJZgvJrOQJSb/irFvBIUZeiCYSLgIKIErkkAgnkfvv+/phJTCAhk5Bksmc+r7WyZvaevfd8GfDjk2ee/Tzm7oiISPAkRLsAERFpGQW4iEhAKcBFRAJKAS4iElAKcBGRgOrUnm/Wv39/T09Pb8+3FBEJvKysrK/dPfXo/e0a4Onp6WRmZrbnW4qIBJ6ZfdHQfnWhiIgElAJcRCSgFOAiIgGlABcRCSgFuIhIQDUZ4GZ2ppll1/k5bGazzayvma00s+3hxz7tUbCIiIQ0GeDu/om7j3b30cB5QDHwMnAv8Ja7DwXeCm+LiEg7ae448EuAz9z9CzO7CpgY3r8QWA3c03ql1fHGvbBvU5tcui04TmW1UxX+qXanuhqq3XGHakKP7o4DoRl9w/vqXsfrX7PORkNPRaSDyut2Bqf+65P0696lVa/b3ACfDrwQfj7A3fcCuPteMzupoRPMbBYwC2Dw4MEtrbNDqXanqLySkvIqyiqrKa2ooryymooqp6KqmirNsS4idWw5mE/P4opWD3CLdEEHM+sM7AGGu/t+M8t39951Xj/k7sftB8/IyPAg3olZWVXNh7sOsuLj/WR+cZBte49QWR363BITjFN6J3NKr67079GF1O5d6JPSmR7JnejZNYnuXRJJTkqka1IiXZIS6ZyYQOdORqeEBDolGkmJCSSYkZhgJJqRkAAJZiSYYRZ6/5rn4U3MrM7z0LaIxC4zy3L3jKP3N6cFPgVY5+77w9v7zSwt3PpOA3Jbo9COZNfXRcx7ZydvbNrLoeIKunRKICO9D7MmnMbIQb0ZdnIPBvbpSlKiBvOISPtrToBfxzfdJwCvATOAR8OPr7ZiXVG1I7eQP7+9g1ezvyIpMYHJ55zMlHNOZsIZqaR0btfpY0REGhVRGplZCnApcEud3Y8CS81sJvAlcG3rl9e+3J35737Oo29sIykxgZkXDuHmCadxUo/kaJcmInKMiALc3YuBfkftO0BoVEpMyC8u564XN7Bqay4/GD6A/7hmBP1b+QsHEZHWpP4AYPfBYqbP+4C8I2U8fOVwfj7+VH0xKCIdXtwHeEFxBTc89yFHSitYdut4Rg7q3fRJIiIdQFwHeFllFTf/JZPdB0v4y8yxCm8RCZS4DfDqaueuFzfy4ecHefK6MZx/Wr+mTxIR6UDidgDzy+u/YvmGPdwzeRhXjjol2uWIiDRbXAZ4UVklf3xzG6O+1ZtbJpwW7XJERFokLgP8qdWfkXukjAd/eDYJCRptIiLBFHcBvvtgMfPe2clVo0/h3MGawlxEgivuAvzRN7eRYHDP5GHRLkVE5ITEVYBvzMnn/23cy//5/umc0rtrtMsRETkhcRXgiz/aTXJSaI4TEZGgi5sAL62oYvmGPVx2Tho9kpOiXY6IyAmLmwD/x8f7OFJaydTzBkW7FBGRVhE3Ab4sK4eBvbsyTndcikiMiIsA31tQwrs7vubH5w7UuG8RiRlxEeAvrfsKd/ixuk9EJIbEfIC7O3/LymFsel9O7dct2uWIiLSamA/w9bvz2fl1EVMz1PoWkdgS8wG+5tM8zOAHw0+OdikiIq0qogA3s95mtszMtpnZVjMbb2Z9zWylmW0PP3bIiUXW7jzI2Wk96dVVY79FJLZE2gL/b+BNdx8GjAK2AvcCb7n7UOCt8HaHUlZZxbovD3H+EA0dFJHY02SAm1lPYAIwH8Ddy909H7gKWBg+bCFwdVsV2VIbcwooq6zm/NP6RrsUEZFWF0kL/DQgD3jOzNab2bNm1g0Y4O57AcKPJzV0spnNMrNMM8vMy8trtcIjsXbnAQC+k64AF5HYE0mAdwLOBZ5y9zFAEc3oLnH3ee6e4e4ZqampLSyzZdZ+fpAzB/Sgb7fO7fq+IiLtIZIAzwFy3H1teHsZoUDfb2ZpAOHH3LYpsWUqqqrJ+uKQuk9EJGY1GeDuvg/YbWZnhnddAmwBXgNmhPfNAF5tkwpbaPNXBRSXV+kLTBGJWZ0iPO4OYJGZdQZ2AjcSCv+lZjYT+BK4tm1KbJm1nx8EYOwQtcBFJDZFFODung1kNPDSJa1bTutZu/MAp6d2I7VHl2iXIiLSJmLyTsyqaidz1yHGqvtERGJYTAb4lj2HOVJWyTh9gSkiMSwmA3zdl4cAjf8WkdgWkwH+6f4j9EzuRFqv5GiXIiLSZmIywHfkFvLtk7pjptV3RCR2xWSAf5YXCnARkVgWcwGeX1zO14XlCnARiXkxF+A7cgsBFOAiEvNiN8BTe0S5EhGRthWTAd6lUwID+3SNdikiIm0q9gI8r5DTUruTmKARKCIS22IuwLfv1wgUEYkPMRXgxeWVfJVfwlAFuIjEgZgK8J15RYBGoIhIfIipANcQQhGJJzEX4IkJRnq/btEuRUSkzcVcgJ/aN4XOnWLqjyUi0qCYSrodeYWcru4TEYkTMRPgFVXV7Pq6SP3fIhI3YibAvzhQTGW18+1UBbiIxIeIFjU2s13AEaAKqHT3DDPrCywB0oFdwE/c/VDblNm0HblHABg6QAEuIvGhOS3wi9x9tLvXrE5/L/CWuw8F3gpvR81n4THgp6kFLiJx4kS6UK4CFoafLwSuPvFyWm5vQQm9uibRvUtEv1SIiARepAHuwAozyzKzWeF9A9x9L0D48aSGTjSzWWaWaWaZeXl5J15xI/YVlHFyT62BKSLxI9Lm6gXuvsfMTgJWmtm2SN/A3ecB8wAyMjK8BTVGJPdIKQO0iLGIxJGIWuDuvif8mAu8DIwF9ptZGkD4MbetiozEvoJSTu7ZJZoliIi0qyYD3My6mVmPmufAJGAz8BowI3zYDODVtiqyKZVV1XxdqC4UEYkvkXShDABeNrOa4//H3d80s4+ApWY2E/gSuLbtyjy+vMIyqh11oYhIXGkywN19JzCqgf0HgEvaoqjm2ldQCqAWuIjElZi4E3P/4VCAD1CAi0gciYkAr22BqwtFROJIbAT44TKSEo2+KZ2jXYqISLuJiQDff7iUk3okk6CV6EUkjsREgO8rKFX3iYjEnZgI8P1HSjUCRUTiTmwEeEGpRqCISNwJfIAfKa2gqLyKk3vpNnoRiS+BD3CNAReReBX4AN9XUAYowEUk/gQ/wA/rNnoRiU+BD/CaLhQNIxSReBP4AN9XUEqvrkkkJyVGuxQRkXYV/AA/rDHgIhKfAh/g+w9rKTURiU+BD3AtpSYi8SrQAa6l1EQkngU6wL8uLNdSaiIStwId4BoDLiLxLOIAN7NEM1tvZq+Ht4eY2Voz225mS8ys3VdTqFmJR3dhikg8ak4L/E5ga53tPwL/6e5DgUPAzNYsLBK6iUdE4llEAW5mg4DLgWfD2wZcDCwLH7IQuLotCjyefYdLtZSaiMStSFvg/wXcDVSHt/sB+e5eGd7OAQY2dKKZzTKzTDPLzMvLO6Fij3aoqJw+KZ21lJqIxKUmA9zMrgBy3T2r7u4GDvWGznf3ee6e4e4ZqampLSyzYfnFFfROSWrVa4qIBEWnCI65ALjSzC4DkoGehFrkvc2sU7gVPgjY03ZlNqygpILeXdV9IiLxqckWuLvf5+6D3D0dmA78r7v/K/A2MDV82Azg1TarshH5JRX07KoWuIjEpxMZB34P8G9mtoNQn/j81ikpcgXF5epCEZG4FUkXSi13Xw2sDj/fCYxt/ZIiV1BSQS+1wEUkTgX2TsyKqmqKyqvorQAXkTgV2AAvKKkAUBeKiMStwAZ4fnEowPUlpojEq8AGeEFJOQC9dRemiMSpAAd4qAWuLzFFJF4FNsBrulD0JaaIxKvABrha4CIS7wIb4PoSU0TiXWADvKCkgp7JnUjUTIQiEqcCHeC9NAZcROJYYAM8v7hcMxGKSFwLboBrHhQRiXOBDXB1oYhIvAtugBdXaAy4iMS1QAa4u2sqWRGJe4EM8KLyKiqrXTMRikhcC2SA5xeHJrJSC1xE4lkgA/yb2+g1jFBE4lcwA7xY86CIiDQZ4GaWbGYfmtkGM/vYzB4O7x9iZmvNbLuZLTGzdmsOazUeEZHIWuBlwMXuPgoYDUw2s3HAH4H/dPehwCFgZtuVWV++AlxEpOkA95DC8GZS+MeBi4Fl4f0LgavbpMIG5KsLRUQksj5wM0s0s2wgF1gJfAbku3tl+JAcYGAj584ys0wzy8zLy2uNmikoqaBzYgJdkxJb5XoiIkEUUYC7e5W7jwYGAWOBsxo6rJFz57l7hrtnpKamtrzSOgpKyunZNQkzTSUrIvGrWaNQ3D0fWA2MA3qbWafwS4OAPa1bWuPyiyvU/y0icS+SUSipZtY7/Lwr8C/AVuBtYGr4sBnAq21V5NEKSjQPiohIp6YPIQ1YaGaJhAJ/qbu/bmZbgMVm9giwHpjfhnXWk19cQVqv5PZ6OxGRDqnJAHf3jcCYBvbvJNQf3u4KSioYltYjGm8tItJhBPNOTM1EKCISvACvqKqmsKxSy6mJSNwLXIAf1l2YIiJAAAM8v0R3YYqIQAADvHYqWbXARSTOBS/ANQ+KiAgQwADPLwmtxqMbeUQk3gUuwNUCFxEJCVyA60tMEZGQ4AV4cQU9unSiU2LgShcRaVWBS8HDJRX0VOtbRCR4AV5UXkm3LlrIQUQkcAFeXF5FSudIJlEUEYltAQ1wtcBFRAIa4GqBi4gEMMDVBy4iAoEMcHWhiIhAEAO8rFJdKCIiBCzA3Z3iCrXARUQgslXpv2Vmb5vZVjP72MzuDO/va2YrzWx7+LFPWxdbWlGNO2qBi4gQWQu8EviVu58FjAN+YWZnA/cCb7n7UOCt8HabKi6vBFALXESECALc3fe6+7rw8yPAVmAgcBWwMHzYQuDqtiqyRnF5FaAAFxGBZvaBm1k6MAZYCwxw970QCnngpEbOmWVmmWaWmZeXd0LFfhPg6kIREYk4wM2sO/A3YLa7H470PHef5+4Z7p6RmprakhprFdV0oWgcuIhIZAFuZkmEwnuRu78U3r3fzNLCr6cBuW1T4jdKalrgSQpwEZFIRqEYMB/Y6u5P1HnpNWBG+PkM4NXWL6++orJQC7xbF3WhiIhEkoQXAD8DNplZdnjfb4BHgaVmNhP4Eri2bUr8RklFqAXeVV9iiog0HeDu/i5gjbx8SeuWc3xFZaEA76YvMUVEgnUnZs04cLXARUQCF+AaBy4iUiNwAd45MYEkLWgsIhK0AK/UGHARkbCABXiVxoCLiIQFLMArSdEYcBERIGABXlSmucBFRGoEKsBLtJyaiEitQAV4UbmWUxMRqRGoAFcLXETkG4EK8KLySt1GLyISFqgALy6v0m30IiJhgQlwd6e4vIpuupFHRAQIUICXV1VTVe36ElNEJCwwAV5cpomsRETqCk6AVyjARUTqCk6Ah5dTUxeKiEhIcAJcc4GLiNQTmAAvKlcLXESkrsAEeIla4CIi9TQZ4Ga2wMxyzWxznX19zWylmW0PP/Zp2zKhKBzgGgcuIhISSQv8eWDyUfvuBd5y96HAW+HtNlVSu6CxulBERCCCAHf3NcDBo3ZfBSwMP18IXN3KdR2jKDwOvJu6UEREAGhpc3aAu+8FcPe9ZnZSYwea2SxgFsDgwYNb+HZQEh4HrrlQJN5VVFSQk5NDaWlptEuRVpacnMygQYNISkqK6Pg2749w93nAPICMjAxv6XWKyirplGB01or0EudycnLo0aMH6enpmFm0y5FW4u4cOHCAnJwchgwZEtE5LU3D/WaWBhB+zG3hdSJWMxOh/sFKvCstLaVfv376byHGmBn9+vVr1m9WLQ3w14AZ4eczgFdbeJ2IFWsucJFaCu/Y1Ny/10iGEb4AvA+caWY5ZjYTeBS41My2A5eGt9tUsVbjERGpJ5JRKNe5e5q7J7n7IHef7+4H3P0Sdx8afjx6lEqrKy6vIkVjwEUC5YYbbmDZsmUA3HTTTWzZsuWYY55//nluv/32dqupe/fuLTrv3//931m1atUx+1evXs0VV1zRrGtNnDiRzMzMFtVRV2D6JIrLK0lJCky5InKUZ599NtolnJA5c+ZEu4RjBCYRi8ur6Nutc7TLEOlQHl7+MVv2HG7Va559Sk8e/OHwBl8rKiriJz/5CTk5OVRVVfHAAw8wbdo05syZw/LlyykpKeG73/0uzzzzzDH9uRMnTuTxxx8nIyOD5557jj/84Q+kpaVxxhln0KVLFwCWL1/OI488Qnl5Of369WPRokUMGDCg0VrvueceTj31VG677TYAHnroIXr06MGvfvUrHnvsMZYuXUpZWRnXXHMNDz/8cL1z3Z27776bN954AzPj/vvvZ9q0aQDMnTuXv/zlLyQkJDBlyhQeffRRbrjhBq644gqmTp3Km2++yezZs+nfvz/nnntu7TU//PBDZs+eTUlJCV27duW5557jzDPPpKSkhBtvvJEtW7Zw1llnUVJS0vy/mAYEZkxecXmVvsQUibI333yTU045hQ0bNrB582YmTw7dpH377bfz0UcfsXnzZkpKSnj99dcbvcbevXt58MEHee+991i5cmW9bpULL7yQDz74gPXr1zN9+nTmzp0LQGZmJjfddNMx15o+fTpLliyp3V66dCnXXnstK1asYPv27Xz44YdkZ2eTlZXFmjVr6p370ksvkZ2dzYYNG1i1ahW//vWv2bt3L2+88QavvPIKa9euZcOGDdx99931zistLeXmm29m+fLlvPPOO+zbt6/2tWHDhrFmzRrWr1/PnDlz+M1vfgPAU089RUpKChs3buS3v/0tWVlZkX7kxxWYRCwuq9RNPCJHaayl3FZGjBjBXXfdxT333MMVV1zB9773PQDefvtt5s6dS3FxMQcPHmT48OH88Ic/bPAaa9euZeLEiaSmpgIwbdo0Pv30UyA0xn3atGns3buX8vLy2vHQGRkZDXbBjBkzhtzcXPbs2UNeXh59+vRh8ODBPPnkk6xYsYIxY8YAUFhYyPbt25kwYULtue+++y7XXXcdiYmJDBgwgO9///t89NFH/POf/+TGG28kJSUFgL59+9Z7z23btjFkyBCGDh0KwPXXX8+8efMAKCgoYMaMGWzfvh0zo6KiAoA1a9bwy1/+EoCRI0cycuTI5n70DQpOC7yiSrfRi0TZGWecQVZWFiNGjOC+++5jzpw5lJaWctttt7Fs2TI2bdrEzTff3ORY5saGy91xxx3cfvvtbNq0iWeeeSaiMdFTp05l2bJlLFmyhOnTpwOh7pH77ruP7OxssrOz2bFjBzNnzqx3nnvD9xW6e5PD+Rp7/YEHHuCiiy5i8+bNLF++vF79bTH0MzgBXlaliaxEomzPnj2kpKRw/fXXc9ddd7Fu3brakOrfvz+FhYW1o04ac/7557N69WoOHDhARUUFL774Yu1rBQUFDBw4EICFCxc2dol6pk+fzuLFi1m2bBlTp04F4Ac/+AELFiygsLAQgK+++orc3Pr3G06YMIElS5ZQVVVFXl4ea9asYezYsUyaNIkFCxZQXFwMwMGD9QfZDRs2jM8//5zPPvsMgBdeeKHB+p9//vl677Vo0SIANm/ezMaNGyP6szUlEIlYUVVNeVW1WuAiUbZp0yZ+/etfk5CQQFJSEk899RS9e/fm5ptvZsSIEaSnp/Od73znuNdIS0vjoYceYvz48aSlpXHuuedSVRWa6+ihhx7i2muvZeDAgYwbN47PP/8cCPWBP/300w12owwfPpwjR44wcOBA0tLSAJg0aRJbt25l/PjxQGjo4F//+ldOOumbaZuuueYa3n//fUaNGoWZMXfuXE4++WQmT55MdnY2GRkZdO7cmcsuu4zf//73teclJyczb948Lr/8cvr378+FF17I5s2h2bbvvvtuZsyYwRNPPMHFF19ce86tt97KjTfeyMiRIxk9ejRjx45tycd/DGvs14i2kJGR4S0Z+1hQUsGoh1dw/+VncdP3TmuDykSCY+vWrZx11lnRLkPaSEN/v2aW5e4ZRx8biC6UktrFHALxC4OISLsIRIB/sx6mulBERGoEIsC/WQ9TLXARkRqBCPCiMrXARUSOFogAL67QivQiIkcLRoCXqQtFRORowQhwfYkpEjjvvPMOw4cPZ/To0a02eVNzXHbZZeTn57f7+7angAS4ulBEOiJ3p7q6usHXFi1axF133UV2djZdu3Y9oWu1xN///nd69+7datfriALRJ1GsceAiDXvjXti3qXWvefIImNL4Ilu7du1iypQpXHTRRbz//vvMnj2bp59+mrKyMk4//XSee+45Fi9ezNKlS/nHP/7BqlWrWLRoUYPTux59rVdeeYVPPvmEBx98sN71unfvTnp6OjNmzGD58uW1t+APGzaMwsJC7rjjDjIzMzEzHnzwQX784x+Tnp5OZmYm/fv35+qrr2b37t2UlpZy5513MmvWrNb9zKIkIC3wSsygS6dAlCsS8z755BN+/vOfs3LlSubPn8+qVatYt24dGRkZPPHEE9x0001ceeWVPPbYYyxatOi407vWXGv9+vV069aNRx555Jjr1ejfvz/r1q3j1ltv5fHHHwfgd7/7Hb169WLTpk1s3Lix3i3sNRYsWEBWVhaZmZk8+eSTHDhwoH0+qDYWiCZtzVzgWshV5CjHaSm3pVNPPZVx48bx+uuvs2XLFi644AIAysvLa+cfqWvFihUNTu86ePDg2msBfPDBB8e93o9+9CMAzjvvPF566SUAVq1axeLFi2uP6dOnzzHv/+STT/Lyyy8DsHv3brZv306/fv1O+HOIthMKcDObDPw3kAg86+5t8q+puFxzgYt0JN26dQNC/daXXnppvRn5GlIzvestt9xSb/+uXbtqrxXJ9WpW7klMTKSysrL2nOM17lavXs2qVat4//33SUlJYeLEiRFNUxsELe6TMLNE4M/AFOBs4DozO7u1Cqsr1AJXgIt0NOPGjeO9995jx44dABQXF9cuzlBXJNO7Nud6dU2aNIk//elPtduHDh2q93pBQQF9+vQhJSWFbdu28cEHHzTvD9mBnUin8lhgh7vvdPdyYDFwVeuUVV+R5gIX6ZBSU1N5/vnnue666xg5ciTjxo1j27Ztxxw3adIkfvrTnzJ+/HhGjBjB1KlTOXLkSIuvV9f999/PoUOHOOeccxg1ahRvv/12vdcnT55MZWUlI0eO5IEHHqjtrokFLZ5O1symApPd/abw9s+A89399qOOmwXMAhg8ePB5X3zxRbPf689v7+BIaSX3ThnWolpFYommk41tzZlO9kSatQ11Oh3zfwN3nwfMg9B84C15o19c9O2WnCYiEtNOpAslB/hWne1BwJ4TK0dERCJ1IgH+ETDUzIaYWWdgOvBa65QlIsfTnitpSftp7t9riwPc3SuB24F/AFuBpe7+cUuvJyKRSU5O5sCBAwrxGOPuHDhwgOTk5IjPOaGhHe7+d+DvJ3INEWmeQYMGkZOTQ15eXrRLkVaWnJzMoEGDIj5eY/NEAiYpKYkhQ4ZEuwzpADS5iIhIQCnARUQCSgEuIhJQLb4Ts0VvZpYHNP9WzJD+wNetWE5bC1K9qrXtBKneINUKwar3RGs91d1Tj97ZrgF+Iswss6FbSTuqINWrWttOkOoNUq0QrHrbqlZ1oYiIBJQCXEQkoIIU4POiXUAzBale1dp2glRvkGqFYNXbJrUGpg9cRETqC1ILXERE6lCAi4gEVCAC3Mwmm9knZrbDzO6Ndj2NMbMFZpZrZpujXUskzOxbZva2mW01s4/N7M5o19QYM0s2sw/NbEO41oejXVNTzCzRzNab2evRrqUpZrbLzDaZWbaZZUa7nuMxs95mtszMtoX/7Y5v+qzoMLMzw59pzc9hM5vdatfv6H3g4cWTPwUuJbSIxEfAde6+JaqFNcDMJgCFwP9193OiXU9TzCwNSHP3dWbWA8gCru6gn60B3dy90MySgHeBO929w65Qa2b/BmQAPd39imjXczxmtgvIcPcOf2OMmS0E3nH3Z8NrEaS4e36062pKOMu+IrT0ZEtvaKwnCC3wdls8+US5+xrgYLTriJS773X3deHnRwjN6z4wulU1zEMKw5tJ4Z8O2/ows0HA5cCz0a4llphZT2ACMB/A3cuDEN5hlwCftVZ4QzACfCCwu852Dh00ZILMzNKBMcDa6FbSuHCXRDaQC6x09w5bK/BfwN1AdbQLiZADK8wsK7wQeUd1GpAHPBfunnrWzLpFu6gITQdeaM0LBiHAI1o8WVrOzLoDfwNmu/vhaNfTGHevcvfRhNZfHWtmHbKbysyuAHLdPSvatTTDBe5+LjAF+EW4O7Aj6gScCzzl7mOAIqDDfi9WI9zVcyXwYmteNwgBrsWT21C4P/lvwCJ3fyna9UQi/CvzamBylEtpzAXAleF+5cXAxWb21+iWdHzuvif8mAu8TKjrsiPKAXLq/Pa1jFCgd3RTgHXuvr81LxqEANfiyW0k/MXgfGCruz8R7XqOx8xSzax3+HlX4F+AbdGtqmHufp+7D3L3dEL/Xv/X3a+PclmNMrNu4S+xCXdHTAI65Egqd98H7DazM8O7LgE63JfuDbiOVu4+gQAsqebulWZWs3hyIrCgoy6ebGYvABOB/maWAzzo7vOjW9VxXQD8DNgU7lsG+E14rdOOJg1YGP4mP4HQItodfnheQAwAXg79/5xOwP+4+5vRLem47gAWhRt0O4Ebo1zPcZlZCqFRdLe0+rU7+jBCERFpWBC6UEREpAEKcBGRgFKAi4gElAJcRCSgFOAiIgGlABcRCSgFuIhIQP1/E1QDyWm7pYEAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "c = 60\n", "m = 10 \n", "gamma = 1\n", "\n", "vehiculo = control.tf(c/m,[1,gamma])\n", "\n", "KP = 1\n", "KI = 1\n", "s = control.tf([1,0],1) \n", "K = KP + KI/s\n", "closedLoop = control.feedback(vehiculo*K,1)\n", "\n", "t,y = control.step_response(70*closedLoop);\n", "\n", "\n", "plt.plot(t,y,[t[0],t[-1]],[70,70]);\n", "plt.legend([\"salida: velocidad\",\"referencia\"]);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "En la gráfica anterior podemos ver que el sistema llega al objetivo. Esto sucede bien en algunos casos, en otros pueden presentarse oscilaciones. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "Al aumentar mucho $K_I$, se pueden dar oscilaciones que se corrigen con un componente derivativo en el controlador. " ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "c = 60\n", "m = 10 \n", "gamma = 1\n", "\n", "vehiculo = control.tf(c/m,[1,gamma])\n", "\n", "KP = 1\n", "KI = 2\n", "s = control.tf([1,0],1) \n", "K = KP + KI/s\n", "closedLoop = control.feedback(vehiculo*K,1)\n", "\n", "t,y = control.step_response(70*closedLoop);\n", "\n", "\n", "plt.plot(t,y,[t[0],t[-1]],[70,70]);\n", "plt.legend([\"salida: velocidad\",\"referencia\"]);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Intento #5 de control de velocidad\n", "### Regulador PID\n", "\n", "Supongamos una señal de control: \n", "\n", "$$u(t)=K_p\\,e(t)+K_I \\int_o^t e(\\tau)d\\tau + K_D \\frac{d}{dt}e(t)$$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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XnTQ/yUOp+cowEUkeoVlgB/qgTI+V3dhikj0CssuHLvKGxmWmsCw1IRQlyIy4Nrb2ykpKcHj8YS6FOljSUlJjB49mvj4+KDWD9sAV/OJRKuSkhLS09PJz8/XN1FFEOccVVVVlJSUMG7cuKC2CbsmFOecvwthrgJcopPH4yErK0vhHWHMjKysrF79ZRV2AV7Z2EZdS7vOwCWqKbwjU29/r2EX4LqFXkTEL/wCvEIBLhIubr75ZpYtWwbAbbfdxvbt249a54UXXuCuu+4asJrS0k4sO37605+yYsWKo+avXLmSq666qlf7mj17NoWFhSdUx+HC7iLmroMNpCbEkpeRFOpSRKQXfvOb34S6hJOyYMGCUJdwlLAL8N2VTZyak6Y2QBHg58s/Zntp0E93DspZI4fwyDcmdbusqamJb33rW5SUlODz+Xj44Ye58cYbWbBgAcuXL6elpYXzzz+fX//610f9G509eza//OUvKSgo4Pnnn+ff//3fycvL44wzziAxMRGA5cuX8+ijj9LW1kZWVhaLFy8mNzf3mLXef//9nHLKKXz/+98H4Gc/+xnp6en86Ec/4oknnmDp0qW0trZy3XXX8fOf/7zLts457rvvPt544w3MjIceeogbb7wRgMcff5zf/e53xMTEcMUVV/DYY49x8803c9VVVzF37lzefPNN7rnnHrKzs5kxY0bnPteuXcs999xDS0sLycnJPP/885x55pm0tLRwyy23sH37diZOnEhLS0vvfzHdCLsmlOLKJsZlp4a6DJGo9OabbzJy5Eg2b97Mtm3buPzyywG46667WLduHdu2baOlpYXXXnvtmPsoKyvjkUce4cMPP+Ttt9/u0qxy4YUXsnr1ajZu3Mi8efN4/PHHASgsLOS22247al/z5s1jyZIlndNLly7lhhtu4K233qKoqIi1a9eyadMm1q9fz6pVq7ps+/LLL7Np0yY2b97MihUr+PGPf0xZWRlvvPEGr7zyCmvWrGHz5s3cd999XbbzeDzcfvvtLF++nPfff58DBw50LpswYQKrVq1i48aNLFiwgJ/85CcAPP3006SkpLBlyxb+5V/+hfXr1wd7yI8rrM7APe0+9te2cP2M0aEuRWRQONaZcn+ZPHky9957L/fffz9XXXUVX/7ylwF47733ePzxx2lubqa6uppJkybxjW98o9t9rFmzhtmzZ3Po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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "c = 60\n", "m = 10 \n", "gamma = 1\n", "\n", "vehiculo = control.tf(c/m,[1,gamma])\n", "\n", "KP = 1\n", "KI = 2\n", "KD = 0.02\n", "s = control.tf([1,0],1) \n", "K = KP + KI/s + KD*s\n", "closedLoop = control.feedback(vehiculo*K,1)\n", "\n", "t,y = control.step_response(70*closedLoop);\n", "\n", "\n", "plt.plot(t,y,[t[0],t[-1]],[70,70]);\n", "plt.legend([\"salida: velocidad\",\"referencia\"]);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Control PID\n", "\n", "- **P** ayuda a la estabilidad, tiene un efecto medio en la velocidad de respuesta del sistema. \n", "- **I** permite el seguimiento de la referencia y evita perturbaciones, tiene un efecto bajo en la velocidad de respuesta del sistema. Puede causar oscilaciones. \n", "- **D** tiene un efecto alto en la velocidad de respuesta del sistema. Es muy sensible al ruido. \n", "\n", "El **PID** es el controlador de bajo nivel más usado en el mundo. \n", "\n", "_La estabilidad no esta garantizada_\n", "_La realimentación tiene la habilidad de combatir contra la incertidumbre en los parámetros del modelo_." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Implementación de un control PID\n", "\n", "$$u(t)=K_p\\,e(t)+K_I \\int_o^t e(\\tau)d\\tau + K_D \\frac{d}{dt}e(t)$$\n", "\n", "¿Cómo llevo la ecuación del PID a un tiempo discreto con tiempo de muestreo $\\Delta t$\n", "\n", "- La derivadad se aproxima:\n", "\n", " $$\\dot{e} \\approx \\frac{e_{new}-e_{old}}{\\Delta t}$$\n", " \n", "- La integral se aproxima con la integración de Riemann:\n", "\n", " $$E_{new} = E_{old} + e$$\n", " \n", " donde $E$ es una suma." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Representación en el espacio de estados\n", "\n", "Es una representación matricial de un sistema lineal la cual permite representar sistemas MIMO (multiple-input multiple-output) entre otros. La representación cuenta con dos ecuaciones:\n", "\n", "- La ecuación de estado:\n", "\n", "$$\\dot{\\mathbf{x}} = A\\mathbf{x}+B\\mathbf{u}$$\n", "\n", "- La ecuación de salida:\n", "\n", "$$\\mathbf{y}=C\\mathbf{x}+D\\mathbf{u}$$\n", "\n", "donde $\\mathbf{x}$ es el vector de estados, $\\mathbf{y}$ es el vector de salidas, $\\mathbf{u}$ es el vector de entradas, $A$ es la matriz de estado, $B$ es la matriz de entrada, $C$ es la matriz de salida y $D$ es la matriz de transmision directa. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overwriting diagrams/ss_block.gv\n" ] } ], "source": [ "%%file diagrams/ss_block.gv\n", "// Closed loop diagram\n", "digraph {\n", " graph [splines=ortho]\n", " rankdir = LR\n", " \n", " node[shape=none,width=0.4]\n", " u [label=\"u\"]\n", " y [label=\"y\"]\n", " \n", " node[style=filled, fillcolor=lightgray, shape=rectangle,width=0.7,height=0.7,fixedsize=false]\n", " SS [label=\"ecuaciones del espacio de estados\"]\n", "\n", " // Edges\n", " u -> SS -> y\n", "}" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from graphviz import Source\n", "sourcefile = 'diagrams/ss_block.gv' \n", "gv = open(sourcefile)\n", "dot = Source(gv.read(),engine=\"dot\",format=\"svg\",filename = sourcefile)\n", "dot.render(sourcefile,view=False);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Matrices del espacio de estados\n", "\n", "- $A$ También conocida como la matriz dinámica, es la matriz más importante ya que contiene las leyes físicas que describe el sistema. \n", "- $B$ También conocida como la matriz de los actuadores. Muestra como las entradas afecta los estados, valores de B más grandes implica actuadores más poderosos. Esta matriz nos describe el comportamiento de los actuadores. \n", "- $C$ También conocida como la matriz de los sensores. Describe como podemos nosotros recibir información del sistema. \n", "\n", "Cuando nosotros diseñamos un sistema estamos diseñando dichas matrices. \n", "\n", "![](diagrams/ss_block.gv.svg)\n", "\n", "Para el control del sistema, la pregunta es:\n", "\n", "$$\\textbf{¿Cómo debe ser la entrada seleccionada?}$$\n", "\n", "para lograr que el sistema haga lo que yo quiero. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Estudiemos el espacio de estados \n", "\n", "Para esto usaremos la ecuación diferencial de un sistema masa-resorte-amortiguador (**MKC**)." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle F{\\left(t \\right)} = c \\frac{d}{d t} x{\\left(t \\right)} + k x{\\left(t \\right)} + m \\frac{d^{2}}{d t^{2}} x{\\left(t \\right)}$" ], "text/plain": [ " 2 \n", " d d \n", "F(t) = c⋅──(x(t)) + k⋅x(t) + m⋅───(x(t))\n", " dt 2 \n", " dt " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t,m,c,k = sympy.symbols('t m c k')\n", "F = sympy.Function('F')(t)\n", "x = sympy.Function('x')(t)\n", "\n", "eqMKC = sympy.Eq(F,m*sympy.diff(x,t,2)+c*sympy.diff(x,t)+k*x)\n", "display(eqMKC)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Inicialmente construyamos un diagrama de bloques que represente esta ecuación." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Overwriting diagrams/masa_resorte_amortiguador.gv\n" ] } ], "source": [ "%%file diagrams/masa_resorte_amortiguador.gv\n", "// Closed loop diagram\n", "digraph {\n", " graph [splines=ortho]\n", " \n", " node[shape=point, fillcolor=black]\n", " N1 [pos=\"5.2,0!\"]\n", " N2 [pos=\"7,0!\"]\n", " \n", " node[shape=none,width=0.4]\n", " F [pos=\"0,0!\",label=\"F(s)\"]\n", " X [pos=\"8,0!\",label=\"X(s)\"]\n", " \n", " node[style=filled, fillcolor=lightgray,shape=circle, label=\"\", width=0.3]\n", " S1 [pos=\"1,0!\"]\n", " S2 [pos=\"2,0!\"]\n", " \n", " node[shape=rectangle,width=0.7,height=0.7,fixedsize=true]\n", " iM [pos=\"3,0!\",label=\"1/m\"]\n", " I1 [pos=\"4.5,0!\",label=\"1/s\"]\n", " I2 [pos=\"6,0!\",label=\"1/s\"]\n", " C [pos=\"3,-1!\",label=\"c\"]\n", " K [pos=\"3,-2!\",label=\"k\"]\n", "\n", " // Edges\n", " F -> S1 -> S2 [headlabel=\"+\"]\n", " S2 -> iM \n", " iM -> I1 [taillabel=\" s²X(s)\"]\n", " I1 -> N1 [dir=none]\n", " N1 -> I2 \n", " I2 -> N2 [dir=none]\n", " N2 -> X\n", " N1 -> C\n", " C -> S2 [headlabel=\"- \"]\n", " N2 -> K\n", " K -> S1 [headlabel=\"- \"]\n", "}" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "from graphviz import Source\n", "sourcefile = 'diagrams/masa_resorte_amortiguador.gv' \n", "gv = open(sourcefile)\n", "dot = Source(gv.read(),engine=\"neato\",format=\"svg\",filename = sourcefile)\n", "dot.render(sourcefile,view=False);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Diagrama de bloques del sistema MKC\n", "\n", "![](diagrams/masa_resorte_amortiguador.gv.svg)\n", "\n", "Se evidencia el uso de dos bloques integradores. El uso de estos bloques da indicios de los estados de este sistema, de cada bloque integrador tenemos, la posición $x(t)$ y la velocidad $\\dot{x}(t)$ de la masa. Estos son los estados del sistema. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Construccion del vector de estados $x$\n", "\n", "Sabemos del diagrama de bloques que la posición $x(t)$ y la velocidad $\\dot{x}(t)$ son los estados del sistema.\n", "\n", "Con estos podemos construir el vector de estados: \n", "\n", "$$\\mathbf{x} = \\left[\\begin{array}{}\\dot{x}(t)\\\\{x}(t)\\end{array}\\right] =\\left[\\begin{array}{}x_1\\\\x_2\\end{array}\\right]$$\n", "\n", "Con $x_1$ y $x_2$, podemos reescribir la ecuación diferencial como:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\dot{x}_1 = - \\frac{c x_{1}}{m} - \\frac{k x_{2}}{m} + \\frac{F{\\left(t \\right)}}{m}$" ], "text/plain": [ " c⋅x₁ k⋅x₂ F(t)\n", "\\dot{x}₁ = - ──── - ──── + ────\n", " m m m " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "x1, x2, dx1, dx2 = sympy.symbols('x_1 x_2 \\dot{x}_1 \\dot{x}_2')\n", "\n", "eqMKC = eqMKC.subs(sympy.diff(x,t,2),dx1)\n", "eqMKC = eqMKC.subs(sympy.diff(x,t),x1)\n", "eqMKC = eqMKC.subs(x,x2)\n", "\n", "sol_dx1 = sympy.Eq(dx1,sympy.expand(sympy.solve(eqMKC,dx1)[0]))\n", "sol_dx2 = sympy.Eq(dx2,x1)\n", "display(sol_dx1)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Falta la expresion para $\\dot{x}_2$. La cual es simplemente \n", "\n", "$\\dot{x}_2 = x_1$\n", "\n", "De aquí ya podemos construir la ecuación de estado." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Ecuación de estado para el sistema MKC\n", "\n", "De la ecuaciones anteriores podemos contruir la ecuación matricial de estados:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAA8AAAAOCAYAAADwikbvAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA1UlEQVQoFY2SAQ3CQAxFD4IAMgngYMEBSBhIYDLufOAAcMAkAA5AAsPB+J+0l7JB6CVNm95/7Xpd6LoueCzGWMIuVjsO/rODtLRyF5xS2iqEeKrxX1jEDwBngQo3DOEGBY7wN4FmLhjQCsK9iO9uWGeDf/Zg18wLgI2AdFpkrrmJBtYD4kpq+LXJ60Plmb/CAIoe+K6BXMs7LThYFQQVzH6uaum5stz5AwaULyxhYs49fDABT/Dc6a/DzkGbjPCzs9IBxp3yXGFLCPR1Ka6Qq2Gq4c6bF8nzY2rQL0nJAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle A$" ], "text/plain": [ "A" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGgAAAAzCAYAAAB7VU2VAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEi0lEQVR4Ae2c7VEbMRCGgaEAhlQQ0wGBCoAOgFRA6CAMv+AfAx0AFSShA0IFAToIHYS4A/I+nluzvjnbp4vuyyPNCH3cSt7d91YfKx3Lb29vSynE18D5+flX9XqqeKH8VdVfWD47O/urxmu5Dq7U6UmuLhUDNSAd/laTY6U/5zUVzaVoANWH4WpWOlD67J68unzKVtCAFM5LP1B8LNn8QnTXjnZT+VsD6EUdvriHKfv/GthSF+h1WKarjG5MmwG8ZACV6SM6jZjArP9YxypXHqutjw6le+JlNLRJLqxhV3FbeUar0mGlNGVkQjHK+HyfgYIgTKiLFADkSfLtK11XvFHcVzk/36t6emjFgsQkYy3mb2/Ys/I709ns5ROsBitiFWfz+3KoJG1Z0KEY9RPikhMiVIbO0UsWwGE++aV4qTJWVCm0BRBmbm9VJcY73ojh7VHAMKeyXbmFX5VZ1QWFtgACnAlmxfyERQVJ0T1ihrZ7x5ZtW4ItqZU5SIyzkjkRKDYUYFGLtDFmUXCniNUwvxLZhM7dsNLGB/Mk7NCJf5Dy7WpAePDyPrQ1xLUrfY9+feYQJxQZeh4C5TnKW6PKlT2yahu8NA3hN4aMdcqXhrgQNBukFehpiGtQ35V/Ks1BlVXXTMMEUDN6rvwrCaDKqmum4cxVXEwWNOl9UX+fFJ8UOcTCHULY0DNOHe00cVt13sE4Iur6n7rka9qCfkjRnAFtSSCO1fFVHSql/iYr42Ds69FDdPkaAUiKH0jp3xVZOr6qzNmIBfZa16obZhUbSnt1ulunfE0BZEe/DF9jp6gEA7ChUu+jYujDinoTxH9t8jUCkNM0ys+DMb5Ukb2JA6V3ioDXtxBdvsYAypS/ptQ7ZbEo75b3An7uEzp1ydcYQFL2QHHkgneKz9dhXQx5LCS4htSnkJcF3vN1wfIlX1xHXwG9pMkX11FsJthamSilQuc0kADqHCSTDK1OFlOprAayhQy3Ytlgs7n+pjq/Qi3b1Uy6WgESw9xi4crRR+XNUzCToT48lCz4E/EX2sUQvCHcIt1TjOoFiQ6QGIRZQIFRlpmUFyZIPpy+o820CaU6tgaAhS8Oh3C0EH0Oypg9UMo1Kr8JjcZ0yx1xZcx7Q4wd3FObkjvqCxkdION2gVO8HUVhmFVOe17UZm5dAmiuit4JnHXYTdH3h+85hvVoIQEUpsr1jNysxbeeBZqnC8ongILUNSaeNc98GFNFyCSAwpQ4y0rMusZfDIZ1XUydACrWS2EtK9TsgYHh6cyqou6DEkBexeXyLLENDN/CQCtagnu6oHwCKEhdI2I2o1sFzXD38JmJWVkBSXhV3QAVvWnhXHaohQDgwgsXX8YfYymPnHgYjmKzGt3VA4NimIshmLxt2h5Ux90D/FX+Ro+qehlw55xKlkHGPUf3tXxjVRdAx71Ue0mmBQzDWCNfBNY9xJUUOZFN00ACaJpmOlKfAOoIENPYSABN00xH6m2RwAGUX7+zjPTljrC7uGxI3yzVbbOLoAP+GEBsvnyw/5Dh61K+Xg3wRYd9gmO/NPwHlV14plzTet4AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}- \\frac{c}{m} & - \\frac{k}{m}\\\\1 & 0\\end{matrix}\\right]$" ], "text/plain": [ "⎡-c -k ⎤\n", "⎢─── ───⎥\n", "⎢ m m ⎥\n", "⎢ ⎥\n", "⎣ 1 0 ⎦" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAABEAAAAOCAYAAADJ7fe0AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABDUlEQVQoFY2T4Q2CMBCFwQmII+AGGjfQDTRu4Ar85S8jqBMY2QDcQBmBEQwb4Pdqm4BQ5ZLr3b27vrbHEbZtG3QlTdMj8RbdWbzENtaPrFWcUFsrDr9JbFFAgdgr7MphzoLpoBO6x89nLtG1JJY2vnZx55M/40svwkZJwDdKInqKT24kIt3KR6KeBBRUPgZw0w/swkeim/y6hbhjLUg8IOF014/iU+NdXV09IGHLlH6IeW3pizGSKf3Qfs1Rw83LMZK//WCj5kSSaOmRTOkHNZraDC3xNSt9EuKf/bAEd+pqfPPsMZKDQAoG8wGmA57oA7/3K5h/B1DTF6Pus+X4L3SOSvQEDVdGrRsy4UbemFVVEoJZxAAAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle D$" ], "text/plain": [ "D" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAACAAAAA0CAYAAADrPTp5AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC3ElEQVRYCe2Y0VEbMRCGTYYCPEkHRwcOqSCUkJAKEjpIhif7jQkdABUk0AGkAhJKoIOQ68D5v7PWs5aNThKeYZi5nZFXWkm7/61We3sezefzUW2bTqcTteva/ezbHVXQbDabaNtR2NpUqFhu2dET/NNovJQsOqcy8i2SrQ215kDCM/G9tclIoDXfJfoaiVvzwEdN3LnJB9ffVvdEis6cMrx4YQDuhfDeTW69K/2tlNI60rjz+isTPBcfALx4D8TXtziU7BYUbVQEk3zIE+SBRuNL8VvxU/EiqgXAlbVMWGQwXvziYyB+oOJx7xHoXOfFWsMG7d3p25sDoFdJn5HU/BADgwd6g5AAUjR/EXur9kftt9qBGrSnuSM1q3TeSXaisS9uuoWP/ZQcAemWsmpfBijZSLuH4sjPw/hW/WO1bOoFIMWNtP1Uo4R60PjcaedlRE1olQ61YVFllQOAcg0DuHdZ00kGoFb8RtyIo8EL2dQLwGlCeWyMeOhIQPAUb8arAC7MpFkWgKB8LO6DC49cO/Ue4CcnT3azAEgDT3cVaYpleIcjIVApwbPIPkzeR0+Xtfkpi2SPGPqV64Gn2ErufXYAu0l4iclw1n+1hCvK/f9Rc4xVHpAhUnJXhKpPYiLoLtUnMIuoGICM8F7o7rtZkgwvcEtIy0VUDEDa+ZL2CckMkgEnAjM2QQ6vAUDC2UR4AXpsfjEb/RYBcE+X+v+giWwkh0UApOl10GZP65WnQPl1K/1SALY5dc5vbFEOLwWQekrzDrkhm4oAhOuGcjPmDZlXtluQeAuhzxU0Y37aQG26on7dSr/IA2EnyWZ/RctiQDq+c17asGRdVAxABki91IYfTJ36eIQM+dlkubz2ZUSJfizDTTBEdVRVU1QBkOFWBnv/SQ3gkqz4CJLaKiYHAIMH7BZQ4RDZRtxzPzZ5NZc+coVlS/R0V9gAxKUUX75buWZYCsRXs33Gm6z9DwJNGIg5UsLPAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}\\frac{1}{m}\\\\0\\end{matrix}\\right]$" ], "text/plain": [ "⎡1⎤\n", "⎢─⎥\n", "⎢m⎥\n", "⎢ ⎥\n", "⎣0⎦" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "MA = sympy.Symbol('A'); display(MA)\n", "mA = sympy.Matrix([[-c/m,-k/m],[1,0]])\n", "display(mA)\n", "\n", "MD = sympy.Symbol('D'); display(MD)\n", "display(sympy.Matrix([1/m,0]))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Estabilidad del sistema MKC\n", "\n", "Para verificar la estabilidad del sistema debemos evaluar los valores propios ($\\lambda$) de la matriz $A$:\n", "\n", "$$I-\\lambda A$$\n", "\n", "para encontrarlo encontremos la ecuación caracteristica con $\\textbf{det}(I-\\lambda A)$:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHoAAAAvCAYAAAAsGt6gAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFdklEQVR4Ae2c61XcMBCFlxwKgKSCQAck6WDpAEIHoYPwl38c6ADSAdABUAGPDqCDJHRA7ickYRv5sSa7loXmHK31snaurmYka+Vdenp6mvSR/f39Q923orCm8KCwp7xHXbNE2APLfXSyJB/rCsETXc90uVL4QjpLfD3woadKW5X7DpTeEOFYd5YIe6Av0UApkupcdjEvQrjvV6WS65ZFMud+V7hU3LjlUNeobL2Sv2HTN5X8USW74h8VKKtsyaIFFMv8o3Cv+HQGQCzMgosxOk/hQuGvwv0MbS68qvTri3/hus76hSWiuVlgz3Uxq+gujak+JOMBjkL1lf+osGnbvAzViSlPus6EPybdm3R5RbStfKzrVKBx5bWi8h8qxGJ3ayu9FODeL16SUcc64Y8aQUW5OqIZ1QhEBkXk4trXHcmkFdxcXbrH1iUveou2irfiLwEcQSJItIjBdd8pBC3VEorLvlZ8i6D4nkLdAs64btVjDoxepGcj/ugBBBQsrbor5bgvNkXWLPBiMZsjuHU2Srw0EIn1e2tWPQbGRwU2WA4D7St7cGnC75WT7gz43z7jeb2CkUQlTUSfSlPAYtVYqxeBW/WJlojqMiBw6WyqTJT+qQuucU2B9m8VThRik1r8KCoc6M+ag6cN4+p1Jb2jEN0OYdB1S1EEIEjtPP1c3PqJNSOszCH5RFdc443CruIxkizVWvFD6rn0d/M59zA1mQFNIiZZCv2oIeWxQFwSrhmr21Sed71Kdxbdx/1swpwqHpzzOze2oIpt+C0mDGBV8VGsO15ZtAUJwduKY20AeQtBbn5mE4aNE6w6WumIn4GLhxoFyXR2iWgpDikstLBgB4K5qvojhrLaRW2sqBZTAIs6NlQYMCy+nDtXMh6xejXit5jAFd2Cq6knPdEWJPMOllx8TML1TpTXh2xGPvc6t8/2KkJHkc/0EIVIFwZfK37VcwYQ3M5VeZ9+mnsfGKILIFkcOVLMlyvNyIX4Pu6b52ffntpynVQcSOZ7hvzogZ8pDWxe1AY7hBhFVNicgss2wuMTjwl1K2DKz1QeeqZ2bYWuWK7xCIVC2mJAYREHhfwhozPhl+7ozxSER3KW3XUreBCcwVX3IJrkL51rDziLnuuX5MYX2wPyNKwTfil8VtxMl6Mm2gJiOmFFP3p5Cx7dyzQJuawReNIh7WXURHsUOTIR0VjuNl2hOJs5pdW/f7yiQpZ0eyATnS63JWSZ6FJ3pJvIRKfLbQnZsibufu/klJp5W0I6LDW1oHI2JqaBOqwsP6p8J1D2oHyzOAmU+SzVmQt+tVuLSWVzw+OBVSKj3jBRh7GyzI9XFVLVL6y62ZH0P6Nm113ppFSTmehUma3gykRXOiSRZGlXDEx5ZywRZoGhuZl5mdO1buF6pTzO5t1motULqYhIrT0zMHai/aGGRMiaG55RP14lQu5CYOTF2EK6efgvyUQPz8FCNOg0R2uSZxXHYbg1Bc5XIe73zm+K87LdkQIH/9mO5F0k8jnmO7d5R+3/N0kdYyei1Zuc8+bwIMdhWcJzEN+c6tCVZzb+zUCXyZ2uZiDoykDgRYDO72nRwICSNMZWokUYVnptCcCi+QeD4tEdntuQT8ovWi/5rx7cTc3IPt4DxlaixQm/AmGpkAbRpfPMSjMQkOrR3dKZ7ucq0X4mj7F1MSaCHy09U65KF62WLAilo1w98hDq4+qjl4LuyWJsJbrAEoSG3jeic4qvjjIYyMMDmHyliY9BksU4C9HmDcIiW5ZA3HnVcvnBH3ePpVNuLKV4b6TxZDF2ItqShVVWCa1zdV9V17l4Xl8pWXyMJKeOsRPRIgarxDodeY4r8kPva7Ew410kd9LB1Y/5mjTGfxoKPMmcxFQLAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\frac{\\lambda^{2} k}{m} + \\frac{\\lambda c}{m} + 1$" ], "text/plain": [ " 2 \n", "\\lambda ⋅k \\lambda⋅c \n", "────────── + ───────── + 1\n", " m m " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "l = sympy.Symbol('\\lambda')\n", "caract = (sympy.eye(2)-l*mA).det();\n", "display(caract)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "de aquí los valores propios son: " ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ - \\frac{c}{2 m} - \\frac{\\sqrt{c^{2} - 4 k m}}{2 m} : 1, \\ - \\frac{c}{2 m} + \\frac{\\sqrt{c^{2} - 4 k m}}{2 m} : 1\\right\\}$" ], "text/plain": [ "⎧ ____________ ____________ ⎫\n", "⎪ ╱ 2 ╱ 2 ⎪\n", "⎨ c ╲╱ c - 4⋅k⋅m c ╲╱ c - 4⋅k⋅m ⎬\n", "⎪- ─── - ───────────────: 1, - ─── + ───────────────: 1⎪\n", "⎩ 2⋅m 2⋅m 2⋅m 2⋅m ⎭" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(mA.eigenvals())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Vemos que son los mismos polos del sistema MKC si lo analizamos de forma clásica. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Una particula en una linea recta sin fricción\n", "\n", "Diseñemos un control proporcional para el sistema propuesto, utilizando el espacio de estados.\n", "\n", "$$m \\ddot{x} = F$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "La ecuación de estado quedaría asi (con $m=1$). \n", "\n", "$$\\dot{\\mathbf{x}}=\\left[\\begin{array}{}0&1\\\\0&0\\end{array}\\right]\\mathbf{x}+\\left[\\begin{array}{}0\\\\1\\end{array}\\right]\\mathbf{u}$$\n", "\n", "La ecuación de salida sería.\n", "\n", "$$\\mathbf{y}=\\left[\\begin{array}{}1&0\\end{array}\\right]\\mathbf{x}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Control de la particula\n", "\n", "Si queremos controlar el sistema con un lazo cerrado debemos conectar de alguna forma la salida $\\mathbf{y}$ con la entrada $\\mathbf{u}$" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot([-2,2],[0,0])\n", "plt.plot([0,0],[-1,1],color='r')\n", "plt.plot([-1],[0],color='k',marker='.',markersize=30)\n", "plt.xlim(-2,2);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "El objetivo de control es que se mueva al origen. **¿Cómo lo logramos?**" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$\\left.\\begin{array}{}u>0 \\text{ si } y<0 \\\\ u<0 \\text{ si } y>0\\end{array}\\right\\}\\qquad \\to \\qquad u=-y$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Modificación de la dinamica del sistema \n", "\n", "En general tenemos: \n", "\n", "$$\\mathbf{u}=-K\\mathbf{y} = -KC\\mathbf{x} $$\n", "\n", "entonces: \n", "\n", "$$\\dot{\\mathbf{x}}=A\\mathbf{x}+B\\mathbf{u}=A\\mathbf{x}-BKC\\mathbf{x} = \\left(A-BKC\\right)\\mathbf{x}$$\n", "\n", "tenemos aquí un nuevo sistema, el sistema en lazo cerrado.\n", "\n", "$$\\dot{\\mathbf{x}} = \\left(A-BKC\\right)\\mathbf{x}=\\hat{A}\\mathbf{x}$$\n", "\n", "nuestro trabajo ahora es seleccionar $K$ de tal forma que los valores propios de la matriz $\\hat{A}$ den por lo menos un sistema estable. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### La matriz de estado del sistema en lazo cerrado\n", "\n", "Remplazamos los valores de las matrices y de $K=1$:\n", "\n", "$$\\hat{A}=\\left(A-BKC\\right)=\\left(\\left[\\begin{array}{}0&1\\\\0&0\\end{array}\\right]-\\left[\\begin{array}{}0\\\\1\\end{array}\\right]1\\left[\\begin{array}{}1&0\\end{array}\\right]\\right)$$" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAEYAAAAyCAYAAADhna1TAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADFklEQVRoBe2b7VHcMBCGLwwFMFABpgOSVAB0EEoAOiDDr7t/TOggUEEm6SChAj5KoAPgSsj7Olpmh3h1d1psy0aaMZJWn/t4Lcne48N0On2eTCYbuHS4mM1mX7VgrGno+Q26nb7Sb74eBIeI71Xhk0qPPXkOBb8rJXeRvhIwDyD3oArfTRJ6z6EsrzogXz89AkbkSXEwx0c05gA7uH5Api0wqd8+G7nBAMAdFDhH/IuKICbxO8QHuLKwQszjC+Z0hWsb6RfrQN4MLjAY5Bg9V4hrKByFA4f8T2Q/UtZHwBx4gwiDN6fCxfzSYW3pms0VuWj/aSi6gWw3TK6huH1RuEGHiLm7/l51RC+YfWNAMVer3GiWjzgZjLKG2NZOEx5kSAYDbTeDxmIdGkAMlq6XbdoDRpSKLWpbUmlosQdMzCrEmni2GWRIBsNVP2gsEDQAsaIszjF6Ysumk8GEAbhVCwQ9psBq2sp1vWzTXjA8xH1q0I6vBffKqhqq5C1ygYHil1DvCTGP3HVAmhbEE/HRP0kWf5usOjox1ytB6JnH/jMAqUL+M+I95Ht/icQc+DmBj7UcNK8hu0We73K8qWZwg8EAc/Se5UctzO3E1HxBgetRWtD3oIsLGOP2FTAFjEHAEBeLKWAMAoa4WEwBYxAwxMViChiDgCF2vxIY/WYjxmsBfdMrOwM7A4MJruz08tLFmMnOwFbBYGJ83U92ennAYGyXM7DVxReTo1cy2enlAYO2Lmdgq2Ccinmb7xsd8DMJg1VeF44STHiEqWDMk1HVBIw/owQDXeVjvFiHVj8G66XeWMGIglz8rRB1BkZ3pWCS11bPhvwI7fr+3huzCrGmqDNwERiaYm+/cTHALxTjxnA3ZD2BoNuIFUWdgWN+lFzOwDGDcTkDuwQjJqzNurU0HiWXMzC6xrzFrDHBZKfXG4yf7AzsAkyy08sLhosw+khyBnb5KHn17LR9AWPgLmAKGIOAIS4WY4CRXYk/e+cKLoE/BtJ5kY8uhp48X+lXh4pKChieEnW4QCZpm9OdDCR9hnn+949cfwEewt1MXruubQAAAABJRU5ErkJggg==\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0 & 1\\\\-1 & 0\\end{matrix}\\right]$" ], "text/plain": [ "⎡0 1⎤\n", "⎢ ⎥\n", "⎣-1 0⎦" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mA = sympy.Matrix([[0,1],[0,0]])-sympy.Matrix([0,1])*1*sympy.Matrix([[1,0]])\n", "display(mA)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Analizando los valores propios del sistema tenemos que: " ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHgAAAAVCAYAAACNDipWAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAC80lEQVRoBe2a7VHcMBCGD4YCSDpI0gEkFXB0AHSQUEKGf/c36QBSQQIdBCpgoANIBSF0cHmeG9nYsn3xzVhEZm5nNPqwtN53V7uS925jPp9PYprNZp8Y26Xc0D6Ln6/7+WgA++wgzTHljnJG/7Eq3UbVwDzc5uEV5ZL25+rEdTtvDWCvKRKeU/Zo3xbSbhaNUB9R76Q2LvzPKT+jd4+ymwsW5LhEgT8o36qK3Kp2aL+j3EdjqbrutmQE4AOYC/YN7VrYSvDSXLCI0yhcUmzg8kHKBgo/TMEfvoLTqG7St5QaWPqDU+5Y/ouBB9dyYBg8dbF5aHtR1ItHSUNhic/gUSpjLXS3Bp7Ng9mRhku9ynP+jv7XbrGenjDP6/8tdZKw/vSm/q3MsbyuIok92HPrsTphwPZJMKoXkpM+fIMiFVi5cqJcsegMtXtH6cEo0/NqStkbWpPw1kDXga+e2Oumzjo326uwLosqZyzIZqLjmHJqrcK2aJgJ+ULRCLv0W5XPuDvDJMgq9JF1fnQ/UF+EhYbpMSdRssaCnrWheQa9+VQDa4B9ar3X1GQtE8LYghjXm0xfrkxh7YS6uNWONv2ZOxbku8FA99TedSabhbUYMBNi0ZtTkWHjolBSqpc8E9/ssKBXo6OZyPJCWho4KKVIEAyuI15qiDdKfJc5/ZQbyVcko4yx6LVG2pLKS1Y5kq7xXtYoRw/2vPeMWEpBkb+YZMhZ9XhwQ7VS4PuHh35+rcpXntlgaQH4UB2LPbj6bNA2ijT8a1zDyJT6n+cwc9yNCtx68WO8QazxBln9FLsKY753QYGvPLdpd26EML1RsSYbLA3hooH450LD5gEAFgd0NPfFdcHppc+fRmthbaxAwdGwX5sH1zIhYwXbU+4PL8W4XXhjAzcyIV0Lxz6OYQ3Nv8eOI5JfTLVoVDMwoD0XvXiM9oYbAV7WPQJnr3z4Mia5PAOLXyj+YaOWRKqdwYWwTPZs2qes/5NVKCXTGluZiez8T9Zf0n5HJPhe2PQAAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left\\{ - i : 1, \\ i : 1\\right\\}$" ], "text/plain": [ "{-ⅈ: 1, ⅈ: 1}" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(mA.eigenvals())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "El sistema es criticamente estable. " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Respuesta de la particula al lazo cerrado\n", "\n", "Con el controlador propuesto, la particula se comporta como se muestra. " ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.rcParams[\"animation.html\"] = \"html5\"#\"jshtml\"\n", "\n", "t = numpy.linspace(0,2*numpy.pi,40)\n", "x = numpy.sin(t)\n", "\n", "fig, ax = plt.subplots();\n", "\n", "ax.plot([-2,2],[0,0])\n", "ax.plot([0,0],[-1,1],color='r')\n", "plt.xlim(-2,2);\n", "l, = ax.plot([0],[0],color='k',marker='.',markersize=30)\n", "\n", "animate = lambda i: l.set_data([x[i]], [0]);\n", "\n", "ani = FuncAnimation(fig, animate, frames=len(t), interval=1000/40);" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(ani)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "**¿Por qué no se queda en el origen si este es el objetivo?**" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- No tenemos en cuenta la velocidad. \n", "- Necesitamos la información del estado (posición,velocidad) del sistema para estabilizarlo." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Estabilizando la particula \n", "\n", "Para estabilizar la particula necesitamos conocer la información de todos los estados del sistema. Salvo que en nuestro sistema solo tenemos un sensor de posición:\n", "\n", "$$\\mathbf{y}=\\left[\\begin{array}{}1&0\\end{array}\\right]\\mathbf{x}$$\n", "\n", "El estado desconocido es la velocidad, el cual puede ser estimado de la posición. Por ahora supongamos que podemos medir ambos estados. \n", "\n", "$$\\mathbf{y}_{supuesto}=\\left[\\begin{array}{}1&0\\\\0&1\\end{array}\\right]\\mathbf{x}$$\n", "\n", "con esta nueva matriz $C$, proponemos un controlador $K$:\n", "\n", "$$K = \\left[\\begin{array}{}k_1&k_2\\end{array}\\right]$$\n", "\n", "Encontremos la nueva matriz $\\hat{A}$ para el sistema en lazo cerrado." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Nueva matriz de estado del sistema en lazo cerrado\n", "\n", "Recordemos que aquí estamos suponiendo que podemos medir ambos estados del sistema (posición y velocidad). Remplazamos los valores de las matrices y de $K$:\n", "\n", "$$\\hat{A}=\\left(A-BKC\\right)=\\left(\\left[\\begin{array}{}0&1\\\\0&0\\end{array}\\right]-\\left[\\begin{array}{}0\\\\1\\end{array}\\right]\\left[\\begin{array}{}k_1&k_2\\end{array}\\right]\\left[\\begin{array}{}1&0\\\\0&1\\end{array}\\right]\\right)$$\n", "\n", "Luego $\\hat{A}=$" ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAGkAAAAyCAYAAABfy/UOAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAEiUlEQVR4Ae2b7VHcMBCGL5kUQJIKcnRAkgoIHYR0QOggDL/gHwMdABVkkg6ACgh0AB2EXAl5H2N59m5s353R6s4e7YxPHyd7P17tSpbkV0dHR/9Go9GGLktnx8fHB7Yi5/0tIJufisuPGU6TN2XFrtJ78+eTyedsOguciNW5Ybel/GUA6VEoPpo/c3YFFhAGE7HlKkjlIsIFkEJ9tLR03b96IEw3df1UnfXWaLyG/iAXkATGnQx3ovQ3BlRKj7hTuqNrUB4rfb5Kt0tdH5SvvEDlaBQdJAn6XdKNlRYAISnCl+VfKn6krs8kXeh0AEOHG+ui7EavHZ7MJOS65rm3qtsqFaz5uz9VZafbVcoM+Mpbcg+QvjQIHUJB0/8Nt+XqqCAZL2mbwhMeMi1hgaggie+7knfwGitKG3C2Xc7PWCA2SOHxbQPp+9Aop4tZIDZIbd4SvIx3p0xLWCAqSMx6St4BECtK8K5BvSdZBb3yUUEqhWT6HQCxcgfg6qbntl3Oz1jAAyReWD/N8KHI0tC98baaJrmqzgLRQRIIF2L0pJTlkoKUx7NYidh7rhnUb13UiKpg9GWhUjqWfg4Fzrgsf1a6rfJgFlilC1sKhPDwcn6juj8qs0ZJR41GLiBJyIkkHPSmoXTcj4bCnAdFD3dz+OW/O1ggg9TBaKlvySCltngHfhmkDkZLfUsGKbXFO/DLIHUwWupbMkipLd6BXwapg9FS35JBSm3xDvwySB2MlvoWl2Uhq4SWT1iADCvjLLyyGj4o8tbR3ZOkAGfudoQKm32D3Evy1tEdJOMyW8q7n1Ez/FaRddExCUjqaWE5f5CeRG/w1DEJSNKhCHeEhVV070Q83XR0nziUBsKTKi8SWOzasmHG5uCpykM4nOKmoztIAoDZHbGaD6RGKvMlG4f5x7rY3eQLjGonU//TFuDomb0gybqwjmrL13y0R38654HqWiNMinBHD4OuJQwAXShFOLaa95UvAFLKYX5AY8cTBfpEi+oIQOfSE73phESTm3mKtnqSHgTicx8yw2RP99mzDAhDT8E7qi1n5amzHsQ9CI/CQWllfUn8kukoTQjz9nNLogtnIvhUqDHkzwMJQ770eyIMznj0IEGYgl8pPVO6FiRZUusYwhz6wxuydc815tc13MkA9FIEwMUBBk/Co5J5ivi50jI6qu2mrmoCJcEYfyFCfyO5giSu3+BsBAtnxQGPemJ03+klOqL/yicOjEdVzxEowb0b428PEeukY9lBmUzNDf2tY1IEg+ExdqDkkZzHY4LwoJSBs++0tI7SndO8G0qriVSbEVxBkhD0silS3dyeM3XDmheW1VHtGY8ZmwqAyjK7A3ZGPKW1K0hTnBYvFOPV4s3701JAFC/qkvhE+XBWHrD4GLyR1gYkCc0skFBIT+O9gT2oW6VD8jzeOemE6FaRdJxUhZrMOoHEZGKhGF2jRy+qBMbbLoJ6T8G7yJTvmbFABmnGIOtYDOGOMcDGRWYbtryOsg9OJtmc8YpF10CM06MA0tRApnoG60F/X4Tya0iHkomdAkuT/0TteX1BwxGzAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0 & 1\\\\- k_{1} & - k_{2}\\end{matrix}\\right]$" ], "text/plain": [ "⎡ 0 1 ⎤\n", "⎢ ⎥\n", "⎣-k₁ -k₂⎦" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "k1,k2 = sympy.symbols('k_1 k_2')\n", "mA3 = sympy.Matrix([[0,1],[0,0]])-sympy.Matrix([0,1])*sympy.Matrix([[k1,k2]])*sympy.Matrix([[1,0],[0,1]])\n", "display(mA3)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "Los valores propios o polos del sistema son:" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left\\{ - \\frac{k_{2}}{2} - \\frac{\\sqrt{- 4 k_{1} + k_{2}^{2}}}{2} : 1, \\ - \\frac{k_{2}}{2} + \\frac{\\sqrt{- 4 k_{1} + k_{2}^{2}}}{2} : 1\\right\\}$" ], "text/plain": [ "⎧ _____________ _____________ ⎫\n", "⎪ ╱ 2 ╱ 2 ⎪\n", "⎨ k₂ ╲╱ -4⋅k₁ + k₂ k₂ ╲╱ -4⋅k₁ + k₂ ⎬\n", "⎪- ── - ────────────────: 1, - ── + ────────────────: 1⎪\n", "⎩ 2 2 2 2 ⎭" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "eigen = mA3.eigenvals()\n", "display(eigen)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Escogamos los valores del controlador" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0c404239a8004b50ba452cfbafbd6132", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatSlider(value=1.0, description='k1', max=10.0, orientation='vertical'), FloatSlider(value=2…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## Parametros del modelo\n", "\n", "paramK1 = widgets.FloatSlider(value=1,min=0,max=10,step=0.1,description='k1', orientation=\"vertical\")\n", "paramK2 = widgets.FloatSlider(value=2,min=0,max=5,step=0.1,description='k2', orientation=\"vertical\")\n", "\n", "## Definicion de la simulacion\n", "\n", "def polos(K1,K2):\n", " P1 = -K2/2+sympy.sqrt(K2**2-4*K1)/2\n", " P2 = -K2/2-sympy.sqrt(K2**2-4*K1)/2\n", " plt.scatter([sympy.re(P1),sympy.re(P2)],[sympy.im(P1),sympy.im(P2)])\n", " plt.grid()\n", " plt.title('Polos de la Particula en lazo cerrado con sensores de posición y velocidad')\n", " plt.xlabel('Real')\n", " plt.ylabel('Imaginario')\n", " plt.ylim(-3,3)\n", " plt.xlim(-6,0)\n", "\n", "## Presentación de los resultados \n", " \n", "plot_exponencial = widgets.interactive_output(polos,{'K1':paramK1,'K2':paramK2}) \n", "widgets.HBox([paramK1,paramK2,plot_exponencial])" ] }, { "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": [ "polos(3,2)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Verifiquemos el comportamiento de la particula\n", "\n", "Tomemos los valores para el controlador $k_1=1$ y $k_2=2$:" ] }, { "cell_type": "code", "execution_count": 26, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.rcParams[\"animation.html\"] = \"html5\"#\"jshtml\"\n", "\n", "particula = control.ss('0 1;-1 -2','1;0','1 0','0')\n", "t,x = control.impulse_response(particula)\n", "\n", "fig, ax = plt.subplots();\n", "\n", "ax.plot([-2,2],[0,0])\n", "ax.plot([0,0],[-1,1],color='r')\n", "plt.xlim(-2,2);\n", "l, = ax.plot([0],[0],color='k',marker='.',markersize=30)\n", "\n", "animate = lambda i: l.set_data([-x[i]], [0]);\n", "\n", "ani = FuncAnimation(fig, animate, frames=len(t), interval=1000/40);" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(ani)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Posicionamiento de polos\n", "\n", "El posicionamiento de polos nos permite definir el comportamiento deseado del sistema. Tomemos como ejemplo es caso anterior de la particula, cuya ecuación de estados se presenta a contuación:\n", "\n", "$$\\dot{\\mathbf{x}}=\\left[\\begin{array}{}0&1\\\\0&0\\end{array}\\right]\\mathbf{x}+\\left[\\begin{array}{}0\\\\1\\end{array}\\right]\\mathbf{u}$$\n", "\n", "A traves de la libreria de control de python, podemos obtener los valores del controlador que nos permita tener de comportamiento deseado. Con `contro.place(A,B,poles)` obtenemos los siguientes valores para los polos [-1,-2]" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[2., 3.]])" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A4 = [[0,1],[0,0]]\n", "B4 = [[0],[1]]\n", "\n", "display(control.place(A4,B4,[-1,-2]))\n", "#display(control.acker(A4,B4,[-1,-2]))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "### Contra ejemplo\n", "\n", "Con el siguiente sistema no se le puede ubicar los polos. \n", "\n", "$$\\dot{\\mathbf{x}}=\\left[\\begin{array}{}2&0\\\\1&1\\end{array}\\right]\\mathbf{x}+\\left[\\begin{array}{}1\\\\1\\end{array}\\right]\\mathbf{u}$$\n", "\n", "El controlador para dicho sistema seria: " ] }, { "cell_type": "code", "execution_count": 29, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "array([[-6.36905167e+15, 6.36905167e+15]])" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A4 = [[2,0],[1,1]]\n", "B4 = [[1],[1]]\n", "\n", "display(control.place(A4,B4,[-21,-20]))" ] }, { "cell_type": "code", "execution_count": 33, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "[NbConvertApp] Converting notebook espacio-estados.ipynb to slides\n", "[NbConvertApp] Writing 462372 bytes to espacio-estados.slides.html\n" ] } ], "source": [ "# http://damianavila.github.io/blog/posts/hide-the-input-cells-from-your-ipython-slides.html\n", "\n", "!jupyter nbconvert --to slides --template output_toggle espacio-estados.ipynb" ] } ], "metadata": { "celltoolbar": "Slideshow", "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.6.5" } }, "nbformat": 4, "nbformat_minor": 4 }