{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [], "source": [ "## Libreria de control\n", "try:\n", " from control.matlab import *\n", "except:\n", " !pip install control\n", " from control.matlab import *\n", " \n", "## Libreria para graphicar\n", "import matplotlib.pyplot as plt\n", "import numpy\n", "\n", "## Libreria para calculo simbolico\n", "import sympy\n", "\n", "## Libreria de control\n", "import control\n", "\n", "## Libreria para widgets\n", "import ipywidgets as widgets\n", "\n", "## Libreria para animaciones\n", "from matplotlib.animation import FuncAnimation\n", "plt.rcParams[\"animation.html\"] = \"html5\"#\"jshtml\"\n", "\n", "## Libreria para importar Iframe de Youtube\n", "from IPython.display import IFrame" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Estabilidad de sistemas LTI\n", "_Entendamos como un sistema se comporta_" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Dinámica del sistema\n", "\n", "![](3-ecuacion.png)\n", "\n", "- Empecemos ignorando la entrada del sistema, el estado será $x$\n", "\n", "$$\\array{\\dot{x}=A\\, x &&& x(t_0)=x_0}$$\n", "\n", "¿Cuál es la respuesta temporal?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Resolviendo la ecuación diferencial ordinaria\n", "\n", "Si todo fuera escalar:\n", "\n", "$$\\array{\\dot{x}=a\\, x &,& x(t_0)=x_0 & \\to & x(t)=e^{a(t-t_0))}x_0 }$$\n", "\n", "Como sabemos esto? verificamos la posible solución:\n", "\n", "$$\\array{\n", "x(t_0)=e^{a(t_0-t_0))}x_0=e^{0}x_0=x_0 & \\text{condición inicial verificada}\\\\\n", "\\frac{d}{dt}x(t_0)=ae^{a(t-t_0))}x_0=ax & \\text{dinámica verificada}\n", "} $$\n", "\n", "Para sistemas de orden superior, tenemos una versión matricial de esto:\n", "\n", "$$\\array{\\dot{x}=A\\, x &,& x(t_0)=x_0 &\\to& x(t)=e^{A(t-t_0))}x_0}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Exponencial de una matriz\n", "\n", "La definición es similar a la definición de escalares: \n", "\n", "$$e^{at}=\\sum_{k=0}^\\infty\\frac{a^kt^k}{k!} \\qquad\\qquad e^{At}=\\sum_{k=0}^\\infty\\frac{A^kt^k}{k!}$$\n", "\n", "cuya derivada es:\n", "\n", "$$\\frac{d}{dt} \\sum_{k=0}^\\infty\\frac{A^kt^k}{k!} \n", "= 0 + \\sum_{k=0}^\\infty\\frac{kA^kt^{k-1}}{k!} \n", "= A\\sum_{k=0}^\\infty\\frac{kA^{k-1}t^{k-1}}{(k-1)!}\n", "= A\\sum_{k=0}^\\infty\\frac{A^kt^k}{k!} $$\n", "\n", "es decir que:\n", "\n", "$$\\frac{d}{dt}e^{At}=Ae^{At}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Resolviendo la ecuación del controlador\n", "\n", "La exponencial de una matriz tiene un papel fundamental y por eso tiene su propio nombre. \n", "\n", "**Matriz de transición de estado**\n", "\n", "$$e^{A(t-t_0))}=\\Phi(t,t_0)$$\n", "\n", "para una dinámica de estado $\\dot{x}= A x$ la solución será $x(t)=\\Phi(t,\\tau)x(\\tau)$, tiene las siguientes propiedades: \n", "\n", "$$\\cases{\\frac{d}{dt}\\Phi(t,t_0)=A\\Phi(t,t_0) \\\\ \\Phi(t,t)=I}$$\n", "\n", "Cuando tenemos un sistema controlado, tendremos:\n", "\n", "$$x(t)= \\Phi(t,t_0)x(t_0)+\\int_{t_0}^{t}\\Phi(t,\\tau)B\\,u(\\tau)d\\tau$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Resolviendo la ecuación del controlador\n", "\n", "Verifiquemos que la ecuación cumple con la condición inicial:\n", "\n", "$$x(t_0)= \\Phi(t_0,t_0)x(t_0)+\\int_{t_0}^{t_0}\\Phi(t_0,\\tau)B\\,u(\\tau)d\\tau = I x(t_0) + 0 = x(t_0)$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "$$x(t)= \\Phi(t,t_0)x(t_0)+\\int_{t_0}^{t}\\Phi(t,\\tau)B\\,u(\\tau)d\\tau$$\n", "\n", "y cumple para la derivada: \n", "\n", "$$\\frac{d}{dt}x(t)= A\\Phi(t,t_0)x(t_0)+\\frac{d}{dt}\\int_{t_0}^{t}\\Phi(t,\\tau)B\\,u(\\tau)d\\tau$$\n", "\n", "$$\\frac{d}{dt}\\int_{t_0}^{t}f(t,\\tau)d\\tau = f(t,t) +\\int_{t_0}^{t} \\frac{d}{dt}f(t,\\tau)d\\tau = \\Phi(t,t)B\\,u(t) + \\int_{t_0}^{t} A\\Phi(t,\\tau)B\\,u(\\tau)d\\tau$$\n", "\n", "$$\\frac{d}{dt}x(t)= A\\Phi(t,t_0)x(t_0)+B\\,u(t) + \\int_{t_0}^{t} A\\Phi(t,\\tau)B\\,u(\\tau)d\\tau$$\n", "\n", "$$\\frac{d}{dt}x = Ax + B u$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# En resumen\n", "\n", "tenemos que\n", "\n", "$$\\dot{x}=A\\,x+B\\,u \\qquad y \\qquad y=C\\,x$$\n", "\n", "luego,\n", "\n", "$$y(t) = C \\Phi(t,t_0)x(t_0) + C \\int_{t_0}^{t}\\Phi(t,\\tau)B\\,u(\\tau)d\\tau$$\n", "\n", "sabiendo que \n", "\n", "$$\\Phi(t,\\tau)= e^{A(t-\\tau)}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Estabilidad\n", "\n", "Lo primero que debemos hacer es entender por que un sistema explota o no.\n", "\n", "Recordemos que los objetivos en control son: \n", " \n", "- Ser estable\n", "- Seguir el objetivo\n", "- Ser robusto\n", "- Entre otros" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Estabilidad en sistemas escalares\n", "\n", "- Es útil empezar con sistemas escalares para ganar intuición.\n", "\n", "$$\\dot{x}=a\\,x \\quad \\to\\quad x(t)= e^{at}x(0)$$\n", "\n", "con $a>0$" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t = numpy.linspace(0,5,num=100)\n", "y = numpy.exp(1*t)\n", "plt.plot(t,y);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Estabilidad en sistemas escalares\n", "\n", "- Es útil empezar con sistemas escalares para ganar intuición.\n", "\n", "$$\\dot{x}=a\\,x \\quad \\to\\quad x(t)= e^{at}x(0)$$\n", "\n", "con $a<0$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t = numpy.linspace(0,5,num=100)\n", "y = numpy.exp(-1*t)\n", "plt.plot(t,y);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Estabilidad en sistemas escalares\n", "\n", "- Es útil empezar con sistemas escalares para ganar intuición.\n", "\n", "$$\\dot{x}=a\\,x \\quad \\to\\quad x(t)= e^{at}x(0)$$\n", "\n", "con $a=0$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiwAAAGdCAYAAAAxCSikAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAcvklEQVR4nO3df6yW9X3/8dfhtJxzvpVznL8ORY6KP1ZrLQdRJKduZqysJ9QRbZpNGzeRzm124Aonm0KqYF1b7DadRtBSuxRXa9SshS11hZBjkLFgUfAsOottpysMOQdc1nPgTI/2nPP9o+lpTgTlKHB/OD4eyZ30vs7nuu73dSf2fua+r/umanBwcDAAAAUbU+kBAADejmABAIonWACA4gkWAKB4ggUAKJ5gAQCKJ1gAgOIJFgCgeO+r9ACHy8DAQF5++eWMGzcuVVVVlR4HADgEg4OD2bdvXyZMmJAxYw7+PsqoCZaXX345TU1NlR4DAHgHdu7cmYkTJx7076MmWMaNG5fkFydcX19f4WkAgEPR09OTpqamodfxgxk1wfLLj4Hq6+sFCwAcY97ucg4X3QIAxRMsAEDxBAsAUDzBAgAUT7AAAMUTLABA8QQLAFA8wQIAFE+wAADFEywAQPEECwBQPMECABRPsAAAxRMsAEDxBAsAUDzBAgAUT7AAAMUTLABA8QQLAFA8wQIAFE+wAADFEywAQPEECwBQPMECABRPsAAAxRMsAEDxBAsAUDzBAgAUT7AAAMUTLABA8QQLAFA8wQIAFE+wAADFEywAQPEECwBQPMECABRPsAAAxRMsAEDxBAsAUDzBAgAUT7AAAMUTLABA8QQLAFC8EQfLxo0bM3v27EyYMCFVVVVZs2bN2+6zYcOGTJ06NTU1NTn77LOzatWqg669/fbbU1VVlQULFox0NABglBpxsPT29qa5uTkrVqw4pPUvvfRSLrvsssyYMSMdHR1ZsGBBrrvuuqxbt+5Na5966qmsXLkykydPHulYAMAo9r6R7jBr1qzMmjXrkNd/7Wtfy6RJk3LHHXckST784Q9n06ZN+bu/+7u0trYOrdu/f3+uvvrq3H///fnSl7400rEAgFHsiF/Dsnnz5sycOXPYttbW1mzevHnYtnnz5uWyyy5709qD6evrS09Pz7AbADA6jfgdlpHq7OxMY2PjsG2NjY3p6enJq6++mrq6ujz88MPZtm1bnnrqqUM+7rJly/LFL37xcI8LABSo4t8S2rlzZz7/+c/n29/+dmpraw95v8WLF6e7u3votnPnziM4JQBQSUf8HZbx48enq6tr2Laurq7U19enrq4uW7duzZ49ezJ16tShv/f392fjxo1Zvnx5+vr6Ul1d/abj1tTUpKam5kiPDwAU4IgHS0tLS/7lX/5l2Lb169enpaUlSfLxj388zz777LC/z507N+eee25uuummA8YKAPDeMuJg2b9/f37yk58M3X/ppZfS0dGRE044IaeddloWL16cXbt25R/+4R+SJNdff32WL1+eG2+8MZ/97Gfz+OOP59FHH81jjz2WJBk3blzOP//8YY/xgQ98ICeeeOKbtgMA700jvobl6aefzgUXXJALLrggSdLW1pYLLrggS5YsSZLs3r07O3bsGFo/adKkPPbYY1m/fn2am5tzxx135Bvf+MawrzQDALyVqsHBwcFKD3E49PT0pKGhId3d3amvr6/0OADAITjU1++Kf0sIAODtCBYAoHiCBQAonmABAIonWACA4gkWAKB4ggUAKJ5gAQCKJ1gAgOIJFgCgeIIFACieYAEAiidYAIDiCRYAoHiCBQAonmABAIonWACA4gkWAKB4ggUAKJ5gAQCKJ1gAgOIJFgCgeIIFACieYAEAiidYAIDiCRYAoHiCBQAonmABAIonWACA4gkWAKB4ggUAKJ5gAQCKJ1gAgOIJFgCgeIIFACieYAEAiidYAIDiCRYAoHiCBQAonmABAIonWACA4gkWAKB4ggUAKJ5gAQCKJ1gAgOIJFgCgeIIFACieYAEAiidYAIDiCRYAoHiCBQAonmABAIonWACA4gkWAKB4ggUAKJ5gAQCKN+Jg2bhxY2bPnp0JEyakqqoqa9asedt9NmzYkKlTp6ampiZnn312Vq1aNezvy5Yty7Rp0zJu3LiccsopueKKK/LCCy+MdDQAYJQacbD09vamubk5K1asOKT1L730Ui677LLMmDEjHR0dWbBgQa677rqsW7duaM0TTzyRefPm5cknn8z69evzxhtv5BOf+ER6e3tHOh4AMApVDQ4ODr7jnauqsnr16lxxxRUHXXPTTTflsccey3PPPTe07aqrrsrPfvazrF279oD77N27N6ecckqeeOKJXHrppYc0S09PTxoaGtLd3Z36+voRnQcAUBmH+vp9xK9h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yXgAwCgz4mB55JFH0tbWlqVLl2bbtm1pbm5Oa2tr9uzZc8D1N998c1auXJl77rknzz//fK6//vp86lOfyjPPPDO05qtf/Wruu+++LF++PD/84Q/z1a9+NX/913+de+65552fGQAwalQNjvBtjOnTp2fatGlZvnx5kmRgYCBNTU254YYbsmjRojetnzBhQr7whS9k3rx5Q9s+/elPp66uLg8++GCS5Hd/93fT2NiYv//7vz/omrfT09OThoaGdHd3p76+fiSnBABUyKG+fo/oHZbXX389W7duzcyZM391gDFjMnPmzGzevPmA+/T19aW2tnbYtrq6umzatGno/sc+9rG0t7fnRz/6UZLk3//937Np06bMmjVrJOMBAKPU+0ay+JVXXkl/f38aGxuHbW9sbMz27dsPuE9ra2vuvPPOXHrppTnrrLPS3t6e7373u+nv7x9as2jRovT09OTcc89NdXV1+vv78+UvfzlXX331QWfp6+tLX1/f0P2enp6RnAoAcAw54t8Suvvuu3POOefk3HPPzdixYzN//vzMnTs3Y8b86qEfffTRfPvb385DDz2Ubdu25YEHHsjf/u3f5oEHHjjocZctW5aGhoahW1NT05E+FQCgQkYULCeddFKqq6vT1dU1bHtXV1fGjx9/wH1OPvnkrFmzJr29vfnpT3+a7du357jjjsuZZ545tOYv//Ivs2jRolx11VX56Ec/mj/8wz/MwoULs2zZsoPOsnjx4nR3dw/ddu7cOZJTAQCOISMKlrFjx+bCCy9Me3v70LaBgYG0t7enpaXlLfetra3Nqaeemp///Of5zne+k8svv3zob//3f/837B2XJKmurs7AwMBBj1dTU5P6+vphNwBgdBrRNSxJ0tbWljlz5uSiiy7KxRdfnLvuuiu9vb2ZO3dukuSaa67JqaeeOvTuyA9+8IPs2rUrU6ZMya5du3LrrbdmYGAgN95449AxZ8+enS9/+cs57bTT8pGPfCTPPPNM7rzzznz2s589TKcJABzLRhwsV155Zfbu3ZslS5aks7MzU6ZMydq1a4cuxN2xY8ewd0tee+213HzzzXnxxRdz3HHH5ZOf/GS+9a1v5fjjjx9ac8899+SWW27Jn/3Zn2XPnj2ZMGFC/vRP/zRLlix592cIABzzRvw7LKXyOywAcOw5Ir/DAgBQCYIFACieYAEAiidYAIDiCRYAoHiCBQAonmABAIonWACA4gkWAKB4ggUAKJ5gAQCKJ1gAgOIJFgCgeIIFACieYAEAiidYAIDiCRYAoHiCBQAonmABAIonWACA4gkWAKB4ggUAKJ5gAQCKJ1gAgOIJFgCgeIIFACieYAEAiidYAIDiCRYAoHiCBQAonmABAIonWACA4gkWAKB4ggUAKJ5gAQCKJ1gAgOIJFgCgeIIFACieYAEAiidYAIDiCRYAoHiCBQAonmABAIonWACA4gkWAKB4ggUAKJ5gAQCKJ1gAgOIJFgCgeIIFACieYAEAiidYAIDiCRYAoHiCBQAonmABAIonWACA4gkWAKB47yhYVqxYkTPOOCO1tbWZPn16tmzZctC1b7zxRm677bacddZZqa2tTXNzc9auXfumdbt27cof/MEf5MQTT0xdXV0++tGP5umnn34n4wEAo8yIg+WRRx5JW1tbli5dmm3btqW5uTmtra3Zs2fPAdfffPPNWblyZe655548//zzuf766/OpT30qzzzzzNCa//3f/80ll1yS97///fn+97+f559/PnfccUd+7dd+7Z2fGQAwalQNDg4OjmSH6dOnZ9q0aVm+fHmSZGBgIE1NTbnhhhuyaNGiN62fMGFCvvCFL2TevHlD2z796U+nrq4uDz74YJJk0aJF+bd/+7f867/+6zs+kZ6enjQ0NKS7uzv19fXv+DgAwNFzqK/fI3qH5fXXX8/WrVszc+bMXx1gzJjMnDkzmzdvPuA+fX19qa2tHbatrq4umzZtGrr/z//8z7nooovye7/3eznllFNywQUX5P7773/LWfr6+tLT0zPsBgCMTiMKlldeeSX9/f1pbGwctr2xsTGdnZ0H3Ke1tTV33nlnfvzjH2dgYCDr16/Pd7/73ezevXtozYsvvpj77rsv55xzTtatW5fPfe5z+fM///M88MADB51l2bJlaWhoGLo1NTWN5FQAgGPIEf+W0N13351zzjkn5557bsaOHZv58+dn7ty5GTPmVw89MDCQqVOn5itf+UouuOCC/Mmf/En++I//OF/72tcOetzFixenu7t76LZz584jfSoAQIWMKFhOOumkVFdXp6ura9j2rq6ujB8//oD7nHzyyVmzZk16e3vz05/+NNu3b89xxx2XM888c2jNBz/4wZx33nnD9vvwhz+cHTt2HHSWmpqa1NfXD7sBAKPTiIJl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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "t = numpy.linspace(0,5,num=100)\n", "y = numpy.exp(0*t)\n", "plt.plot(t,y);" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Tres casos\n", "\n", "- Asintóticamente estable: $x(t)\\to0, \\forall x(0)$\n", "- Inestable: $\\exists x(0) : ||{x(t)}||\\to\\infty$\n", "- Críticamente estable: en medio, no explota pero tampoco llega a cero\n", "\n", "**De**\n", "\n", "$$\\dot{x}=a\\,x \\quad \\to\\quad x(t)= e^{at}x(0)$$\n", "\n", "tenemos entonces:\n", "\n", "$$\\cases{\n", "a>0 \\quad: & \\text{inestable} \\\\\n", "a<0 \\quad: & \\text{asintóticamente estable}\\\\\n", "a=0 \\quad: & \\text{críticamente estable}\n", "}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Estabilidad en Matrices\n", "\n", "$$\\dot{x}=A\\,x \\quad \\to\\quad x(t)= e^{At}x(0)$$\n", "\n", "No podemos decir que $A>0$, pero podemos usar los valores propios.\n", "\n", "$$A\\,v = \\lambda\\,v$$\n", "\n", "donde $\\lambda \\in \\mathscr{C}$ son los valores propios y $v \\in \\mathscr{R}^n$ son los vectores propios. \n", "\n", "Los valores propios no diran como la matriz $A$ actua en cada dirección. \n", "\n", "**En MATLAB**\n", "\n", "``` matlab\n", ">> eig(A)\n", "```" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Ejemplo\n", "\n", "Para la siguiente matriz \n", "\n", "$$A = \\left[\\array{1&0\\\\0&-1}\\right]$$\n", "\n", "encontrar los valores y vectores propios ⚠️" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$\\array{\\lambda_1=1 &,& \\lambda_2=-1 &,& v_1=\\left[\\array{1\\\\0}\\right] &,& v_1=\\left[\\array{0\\\\1}\\right]}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Estabilidad de Matrices\n", "\n", "$$\\dot{x}=A\\,x \\quad \\to\\quad x(t)= e^{At}x(0)$$\n", "\n", "- Asintóticamente estable (si y solo si):\n", " $$Re(\\lambda)<0, \\forall\\lambda \\in \\texttt{eig}(A)$$\n", "- Inestable (si):\n", " $$\\exists\\lambda\\in\\texttt{eig}(A) : Re(\\lambda)>0$$\n", "- Críticamente estable (solo si):\n", " $$Re(\\lambda)\\le0, \\forall\\lambda \\in \\texttt{eig}(A)$$\n", "- Críticamente estable (si):\n", " Un valor propio es cero y el resto tienen parte real negativa **o** Dos valores propios son puramente imaginarios y el resto tienen parte real negativa." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# El cuento de dos pendulos\n", "\n", "Encontremos las matrices para un péndulo regular y un péndulo invertido. Sin fricción. ⚠️" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "$$A_{\\text{péndulo regular}} = \\left[\\array{0&1\\\\-1&0}\\right] \\qquad A_{\\text{péndulo invertido}} = \\left[\\array{0&1\\\\1&0}\\right]$$\n", "\n", "encontremos los valores propios ⚠️" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "fragment" } }, "source": [ "- Para el péndulo regular tenemos:\n", " $$\\lambda_1 = j \\qquad \\lambda_2=-j$$\n", " \n", "- Para el péndulo invertido tenemos:\n", " $$\\lambda_1 = -1 \\qquad \\lambda_2=1$$\n", " \n", "¿Sistemas estables? " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Enjambre de robots\n", "\n", "Analicemos la estabilidad de un enjambre de robots para resolver el problema de _Rendezvous_\n", "\n", "- Tenemos una colección de robots que pueden medir su posición relativa a sus vecinos. \n", "- Problema: hacer que todos los robots se encuentren en el mismo lugar (no especificada). " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Caso de dos robots simples\n", "\n", "Anteriormente revisamos el caso de dos robots en una linea. \n", "\n", "![](3-dos-robots.png)\n", "\n", "Si los robots se dirigen el uno hacia el otro tenemos:\n", "\n", "$$\\cases{u_1=x_2-x_1\\\\u_2=x_1-x_2}$$\n", "\n", "La matriz dinámica sera entonces:\n", "\n", "$$\\dot{x}=\\left[\\array{-1&1\\\\1&-1}\\right]x$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Estabilidad en el caso de dos robots simples\n", "\n", "$$A = \\left[\\array{-1&1\\\\1&-1}\\right] \\qquad \\lambda_1 = 0 \\qquad \\lambda_2=-2$$\n", "\n", "En este sistema tenemos un valor propio 0 y todos los demas tienen parte real negativa. Aqui el estado del sistema terminara en algo llamado el ***Espacio nulo (null-space)*** de $A$:\n", "\n", "$$null(A)=\\{x: Ax = 0\\}$$\n", "\n", "para el caso particular de esta $A$, el espacio nulo es:\n", "\n", "$$null(A)=\\{x: x = \\left[\\array{\\alpha\\\\\\alpha}\\right] , \\alpha \\in \\mathscr{R} \\}$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Estabilidad en el caso de dos robots simples\n", "\n", "Si $x_1\\to\\alpha$ y $x_2\\to\\alpha$ entonces tenemos que $(x_1-x_2)\\to0$ por lo que el _Rendezvous_ se logró." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "image/png": "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fbavrl5dfe7oaCPCDICLKDB4NuICwr+yXK5eAnV0NPPgwczvv8+88cYqyA4OZt5990JfvAnAprmkg2ejYwAA+Oc27jQBALBeYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACBODABAnBgAgDgxAABxYgAA4sQAAMSJAQCIEwMAECcGACDuP3euiv5Da+NdAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dosRobots = ss([[-1,1],[1,-1]],[[0],[0]],[[1,0],[0,1]],[[0],[0]])\n", "yout, T = step(dosRobots,X0=[-10,10])\n", "\n", "fig, ax = plt.subplots();\n", "\n", "ax.plot([-12,12],[0,0],color='gray')\n", "ax.axis('off')\n", "#ax.plot([0,0],[-1,1],color='r')\n", "plt.xlim(-12,12);\n", "l, = ax.plot([-10],[0],color='b',marker='.',markersize=30)\n", "r, = ax.plot([10],[0],color='r',marker='.',markersize=30)\n", "\n", "def animate(i):\n", " l.set_data([yout[i,0]], [0])\n", " r.set_data([yout[i,1]], [0])\n", "\n", "ani = FuncAnimation(fig, animate, frames=len(T), interval=1000/40);" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/html": [ "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# https://www.geeksforgeeks.org/how-to-install-ffmpeg-on-windows/ \n", "display(ani)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "-" } }, "source": [ "Si hay más de dos robots, deberiamos pensar en llevarlos a todos al centroide de sus vecinos (o algo parecido)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "# El caso con multiples robots\n", "\n", "$$\\dot{x}_i = \\sum_{j\\in N_i}(x_j-x_i) \\qquad \\dot{x}=-Lx$$\n", "\n", "El grafo generado est..." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Realimentación del sistema en espacio de estados\n", "\n", "Sabemos que lo primero que debemos hacer para controlar un sistema es llevarlo a ser asintóticamente estable. Es decir que la parte real de todos sus valores propios sea negativa. " ] }, { "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": 7, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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ijVhwgSf1tNamrru+vp6y+FwWM8884y7rby83LLb7daf//xnH1boPV999ZUlydq6dau77b333rNsNpt1+PDhRseNGTPGuv/++1uhQu+Ij4+3Zs2a5b5fV1dnRUdHWzk5OQ32//Wvf22NHz/eoy0hIcH67W9/69M6va25627Oe76jkGRt3Ljxon3mzp1rDRkyxKNt4sSJVkpKig8r862mrPujjz6yJFl///vfW6Wm1nDs2DFLkrVly5ZG+3jr/W3EnqGGVFRUXPSH3kpKSlRbW6vk5GR326BBg3TVVVepsLCwNUpsUwUFBerVq5cGDhyomTNn6sSJE21dkk/t379fTqfT4/UOCwtTQkJCh3m9CwsLFR4erpEjR7rbkpOT5efnp6KioouOfeWVV9SzZ09de+21ys7O1qlTp3xdbovU1NSopKTE43Xy8/NTcnJyo69TYWGhR39JSklJ6TCvq9SydUtSZWWlrr76asXExGjChAnatWtXa5TbpjrD6305YmNjFRUVpX/7t3/Tp59+2tblXJaKigpJuuhntbdebyN/qHXfvn16/vnntXTp0kb7OJ1OBQUFXXC8SWRkZIf6DrYlUlNT9atf/Up9+vTRN998o4cffli33HKLCgsL5e/v39bl+cT51zQyMtKjvSO93k6n84Jd4gEBAerRo8dF1/Cb3/xGV199taKjo7Vjxw7NmzdPe/bs0euvv+7rkpvt+PHjqqura/B1+vrrrxsc43Q6O/TrKrVs3QMHDtSaNWs0bNgwVVRUaOnSpRo9erR27dqlK6+8sjXKbhONvd4ul0unT59Wly5d2qgy34qKitKqVas0cuRIVVdX649//KNuuukmFRUV6brrrmvr8pqtvr5es2fP1g033KBrr7220X7een936D1D8+fPb/CAsR9v//wfisOHDys1NVW33XabMjIy2qjyy9OSdTfHpEmT9Mtf/lJDhw5VWlqa3n77bW3dulUFBQXeW0QL+Hrd7ZWv1z1jxgylpKRo6NChmjx5sl5++WVt3LhR33zzjRdXgdaWmJio9PR0xcbGasyYMXr99dcVERGhP/zhD21dGnxg4MCB+u1vf6u4uDiNHj1aa9as0ejRo/Xcc8+1dWktMmvWLO3cuVPr169vlefr0HuG5syZo6lTp160T9++fd23jxw5optvvlmjR4/WCy+8cNFxDodDNTU1Ki8v99g7VFZWJofDcTllX7bmrvty9e3bVz179tS+ffuUlJTktXmby5frPv+alpWVKSoqyt1eVlam2NjYFs3pLU1dt8PhuOBg2rNnz+rkyZPN+ptNSEiQdG4Par9+/Zpdry/17NlT/v7+F5zVebH3pcPhaFb/9qgl6/5ngYGBGjFihPbt2+eLEtuNxl7v0NDQTrtXqDHx8fH65JNP2rqMZsvMzHSfAHKpvZjeen936DAUERGhiIiIJvU9fPiwbr75ZsXFxWnt2rXy87v4TrG4uDgFBgYqPz9ft956q6RzR+kfOHBAiYmJl1375WjOur3h0KFDOnHihEdIaAu+XHefPn3kcDiUn5/vDj8ul0tFRUXNPhPP25q67sTERJWXl6ukpERxcXGSpM2bN6u+vt4dcJqitLRUktr89W5IUFCQ4uLilJ+fr7S0NEnndqfn5+crMzOzwTGJiYnKz8/X7Nmz3W15eXlt/j5ujpas+5/V1dXpyy+/1Lhx43xYadtLTEy84NTqjvZ6e0tpaWm7fB83xrIs3Xvvvdq4caMKCgrUp0+fS47x2vu7JUd4dzSHDh2y+vfvbyUlJVmHDh2yjh496t5+3GfgwIFWUVGRu+3uu++2rrrqKmvz5s3WF198YSUmJlqJiYltsYQW++6776zt27dbjz32mNWtWzdr+/bt1vbt260ffvjB3WfgwIHW66+/blmWZf3www/Wgw8+aBUWFlr79++3PvzwQ+u6666zBgwYYJ05c6atltFszV23ZVnW7373Oys8PNx64403rB07dlgTJkyw+vTpY50+fbotltAiqamp1ogRI6yioiLrk08+sQYMGGDdfvvt7sf/+e9837591uOPP2598cUX1v79+6033njD6tu3r/Wzn/2srZZwSevXr7fsdru1bt0666uvvrJmzJhhhYeHW06n07Isy7rzzjut+fPnu/t/+umnVkBAgLV06VJr9+7d1qJFi6zAwEDryy+/bKsltEhz1/3YY49Z77//vvXNN99YJSUl1qRJk6zg4GBr165dbbWEFvnhhx/c719J1rPPPmtt377d+u677yzLsqz58+dbd955p7v/3/72NyskJMR66KGHrN27d1srV660/P39rdzc3LZaQos0d93PPfectWnTJmvv3r3Wl19+ad1///2Wn5+f9eGHH7bVEppt5syZVlhYmFVQUODxOX3q1Cl3H1+9v40IQ2vXrrUkNbidt3//fkuS9dFHH7nbTp8+bd1zzz1W9+7drZCQEOvf//3fPQJURzBlypQG1/3jdUqy1q5da1mWZZ06dcoaO3asFRERYQUGBlpXX321lZGR4f4PbkfR3HVb1rnT6xcsWGBFRkZadrvdSkpKsvbs2dP6xV+GEydOWLfffrvVrVs3KzQ01Jo2bZpHAPznv/MDBw5YP/vZz6wePXpYdrvd6t+/v/XQQw9ZFRUVbbSCpnn++eetq666ygoKCrLi4+Otzz//3P3YmDFjrClTpnj0/8tf/mL9y7/8ixUUFGQNGTLEeuedd1q5Yu9ozrpnz57t7hsZGWmNGzfO2rZtWxtUfXnOnzL+z9v5tU6ZMsUaM2bMBWNiY2OtoKAgq2/fvh7v846iuet++umnrX79+lnBwcFWjx49rJtuusnavHlz2xTfQo19Tv/49fPV+9v2/wsAAAAwUoc+mwwAAOByEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMRhgAAgNEIQwAAwGiEIQAAYLT/B59YbcokMKW6AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "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. \n", "\n", "$$Re(\\lambda)<0 \\forall\\lambda \\in \\texttt{eig}(A-BKC)$$" ] }, { "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": 8, "metadata": { "slideshow": { "slide_type": "fragment" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0 & 1\\\\-1 & 0\\end{matrix}\\right]$" ], "text/plain": [ "Matrix([\n", "[ 0, 1],\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": 9, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "{-I: 1, I: 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": 10, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "image/png": "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7kEdMGBAq+u1U+/evRUYGHjeWZ3NvS9dLler+l+K2rLufxYcHKyRI0dq//79dpR4yWjq9Q4PD++ye4WakpiYqA8//LCjy2i1OXPmeE8AudBeTH+9vzt1GIqKilJUVFSL+h45ckQ33nijEhIStG7dOgUENL9TLCEhQcHBwSooKNDNN98s6exR+gcPHlRycvJF134xWrNufzh8+LBOnjzpExI6gp3r7tevn1wulwoKCrzhx+PxqLi4uNVn4vlbS9ednJysiooKlZaWKiEhQZK0ZcsWNTQ0eANOS5SVlUlSh7/ejQkJCVFCQoIKCgqUkZEh6ezu9IKCAs2ZM6fRMcnJySooKNDcuXO9bfn5+R3+Pm6Ntqz7n9XX1+uzzz7T+PHjbay04yUnJ593anVne739pays7JJ8HzfFsizddddd2rRpkwoLC9WvX78LjvHb+7stR3h3NocPH7YGDhxopaSkWIcPH7aOHTvm3b7fZ/DgwVZxcbG37c4777SuuOIKa8uWLdann35qJScnW8nJyR2xhDb76quvrB07dlgPP/yw1aNHD2vHjh3Wjh07rG+++cbbZ/DgwdZrr71mWZZlffPNN9Z9991nFRUVWQcOHLDee+8969prr7UGDRpkfffddx21jFZr7boty7KeeOIJKzIy0vrzn/9s7dy505o4caLVr18/69tvv+2IJbRJenq6NXLkSKu4uNj68MMPrUGDBlm33nqr9/F//nO+f/9+65FHHrE+/fRT68CBA9af//xnq3///taPf/zjjlrCBW3YsMFyOp3W+vXrrb/+9a/WzJkzrcjISMvtdluWZVm33367tXDhQm//jz76yAoKCrKWLVtm7dmzx1q8eLEVHBxsffbZZx21hDZp7boffvhh65133rG++OILq7S01Jo8ebIVGhpq7d69u6OW0CbffPON9/0ryXr66aetHTt2WF999ZVlWZa1cOFC6/bbb/f2/9vf/maFhYVZ999/v7Vnzx5r1apVVmBgoJWXl9dRS2iT1q77mWeesTZv3mzt27fP+uyzz6x77rnHCggIsN57772OWkKrzZo1y4qIiLAKCwt9PqdPnz7t7WPX+9uIMLRu3TpLUqPbOQcOHLAkWe+//7637dtvv7V+/etfWz179rTCwsKsf//3f/cJUJ3B1KlTG13399cpyVq3bp1lWZZ1+vRpa9y4cVZUVJQVHBxsXXnllVZWVpb3L9zOorXrtqyzp9c/+OCDVnR0tOV0Oq2UlBRr79697V/8RTh58qR16623Wj169LDCw8Ot6dOn+wTAf/5zfvDgQevHP/6x1atXL8vpdFoDBw607r//fquysrKDVtAyzz77rHXFFVdYISEhVmJiovXJJ594Hxs7dqw1depUn/5//OMfrX/5l3+xQkJCrKuvvtp6880327li/2jNuufOnevtGx0dbY0fP97avn17B1R9cc6dMv7P27m1Tp061Ro7dux5Y+Lj462QkBCrf//+Pu/zzqK1637yySetAQMGWKGhoVavXr2sG264wdqyZUvHFN9GTX1Of//1s+v97fj/BQAAABipU59NBgAAcLEIQwAAwGiEIQAAYDTCEAAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAw2v8DnopituqlK04AAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "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": 11, "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": 12, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}0 & 1\\\\- k_{1} & - k_{2}\\end{matrix}\\right]$" ], "text/plain": [ "Matrix([\n", "[ 0, 1],\n", "[-k_1, -k_2]])" ] }, "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": 13, "metadata": { "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "text/plain": [ "{-k_2/2 - sqrt(-4*k_1 + k_2**2)/2: 1, -k_2/2 + sqrt(-4*k_1 + k_2**2)/2: 1}" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "eigen = mA3.eigenvals()\n", "display(eigen)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "skip" } }, "source": [ "### Escogamos los valores del controlador" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "40adf6144eb948838ffbda31b306f076", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(FloatSlider(value=1.0, description='k1', max=10.0, orientation='vertical'), FloatSlider(value=2…" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "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": 15, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "image/png": "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Tnv37tXAgQMVExOj+fPnq1u3bjp79qyeeuopSdLKlSv16KOP6r777tOrr74q6e9D0WvXrnVMkxVjjB566CGtWbNGffv21S233KJPPvlEXbt2dZn2l19+UYMGDVSmTBkNHTpURYoU0bx589SmTRstXLhQDz/8cK56tHnzZq1bt06dOnVS2bJldfDgQU2dOlVxcXHasWPHdZ3m/uOPP/THH3+oYsWKkqT58+frwoUL6tevn8LCwrRp0yZNmTJFR44c0fz5853ee+nSJTVr1kwNGzbUxIkTFRgYqIiICCUlJenIkSOaNGmSJCkoKCjb5f/0009q1KiR/Pz81Lt3b5UvX1779u3TZ599prFjx+b681xp//79Wrx4sdq3b6+YmBidOHFC06ZNU+PGjbVjxw6VLl36qu8fO3asRowYoQ4dOuiJJ57QqVOnNGXKFN1zzz3aunWrihUr5pj2jz/+UPPmzfXII4+oQ4cOWrBggZ5//nlVr14910dJc1r35MmT9eeffzq9d9KkSdq2bZtjW/rll1/UqFEjBQcH67nnnpOfn5+mTZumuLg4ffPNN6pbt+5Va+nZs6dmzpypFi1a6IknntClS5f03XffacOGDY6j8bnp05kzZ9SiRQt16tRJjz32mEqVKuUYN2PGDF28eFG9e/eW3W5XaGiokpOT9d577+nRRx9Vr169dO7cOb3//vtq1qyZNm3apJo1a0rK3ba5atUqtWjRQhUqVNDo0aP1119/acqUKWrQoIG2bNly1QvW09PT1bJlS3355Zfq1KmTnnrqKZ07d04rV67U9u3bFRsbK2OMWrdurdWrV6tnz56qWbOmli9frmeffVZHjx51bBuZ1qxZo0WLFql///4qWrSo3nzzTbVt21aHDx92fI9Z+fe//61BgwapXbt2euqpp3Tx4kX99NNP2rhxozp37ixJOnHihO6++25HmAwPD9cXX3yhnj17Kjk52eWyildeeUU+Pj565plnlJSUpPHjx+sf//iHNm7cKOnvHzLNmjVTSkqKnnzySUVEROjo0aNasmSJzp49q5CQEEm524fv3r1bjz76qPr06aNevXqpSpUqunDhgho3bqyjR4+qT58+KleunNatW6dhw4bp+PHjjut+88u+/MMPP9S5c+c0YMAAXbx4UW+88Ybuvfde/fzzz45tIKfrZd++fbVgwQINHDhQ1apV05kzZ7RmzRrt3LlTd955Z7Y15GRbvtKJEydUv359XbhwQYMGDVJYWJhmzZql1q1ba8GCBS6f/VrrT1bi4uIUFRWl2bNnu8xv9uzZio2NVb169bJ8b+3atVWhQgXNmzfP5bubO3euihcvrmbNmjk+S262hcvl9Ls5duyY6tSpo7Nnz6p3796qWrWqjh49qgULFujChQvZnpl4//331adPH9WvX1+DBw/W/v371bp1a4WGhioqKsoxnSf2h9dkcmHGjBlGklm1apU5deqU+e2338zHH39swsLCTOHChc2RI0fMtm3bjCTzxBNPOL33mWeeMZLMV1995RjWuHFj07hxY8fryZMnG0nmo48+cgxLTU019erVM0FBQSY5OdkYY8xTTz1lgoODzaVLl3JTvlm8eLGRZMaPH+8YdunSJdOoUSMjycyYMcMx/L777jPVq1c3Fy9edAzLyMgw9evXN5UqVbrmsiSZUaNGOV5fuHDBZZr169cbSebDDz/M0fx69uxpTp06ZU6ePGk2btxo7rvvPiPJvPbaa9kuY9y4ccZms5lDhw45hnXt2tVIMkOHDnWZ/sEHHzTR0dEuww8cOODSo3vuuccULVrUad7G/N2ny5eV1fxGjRplrlz9oqOjTdeuXR2vL168aNLT013qsNvt5l//+pfLPC938OBB4+vra8aOHes0/OeffzaFChVyGt64cWOX7yElJcVERESYtm3bXnU57qx73rx5RpLTNG3atDH+/v5m3759jmHHjh0zRYsWNffcc89V6/rqq6+MJDNo0CCXcZnf0fX06d1333X5bJJMcHCwOXnypNO4S5cumZSUFKdhf/zxhylVqpTp0aOHY1huts2aNWuakiVLmjNnzjiG/fjjj8bHx8d06dLlqj354IMPjCTz+uuvZ9uTzFpeeuklp/Ht2rUzNpvN7N271zFMkvH393ca9uOPPxpJZsqUKVet5aGHHjK33nrrVafp2bOniYyMNKdPn3Ya3qlTJxMSEuLY5levXm0kmVtuucWp32+88YaRZH7++WdjjDFbt241ksz8+fOzXWZu9uHR0dFGklm2bJnTtC+++KIpUqSI+fXXX52GDx061Pj6+prDhw8bY27+fXnmup358y3Txo0bjSTz9NNPO4bldL0MCQkxAwYMuOpyr9xv5mRbNsZ1XzR48GAjyXz33XeOYefOnTMxMTGm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", "text/plain": [ "
" ] }, "metadata": {}, "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=1$\n", "- Tomemos los valores para el controlador $k_1=0.1$ y $k_2=1$" ] }, { "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": 16, "metadata": { "slideshow": { "slide_type": "skip" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkMAAAGdCAYAAAAR5XdZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAyZElEQVR4nO3df1iUdb7/8dfwaxAN0BUZ2Ch/Hk1TMRTCOmstHCG9duVsp9XWQv0abiaVYan0Ta2s2MxTruk5bm5qXVtr615pvynCsKsiMJRjmnm0tfw5mLowgQoI9/cPv842KyjgDL8+z8d13Vczn/l8PvP+NEzz6p77vsdmWZYlAAAAQ/m1dQEAAABtiTAEAACMRhgCAABGIwwBAACjEYYAAIDRCEMAAMBohCEAAGA0whAAADBaQFsX0Bbq6+t15MgRXXHFFbLZbG1dDgAAaALLsvTDDz8oOjpafn7e259jZBg6cuSIYmJi2roMAADQAgcPHtSVV17ptfmMDENXXHGFpHP/MkNDQ9u4GgAA0BQul0sxMTHuz3FvMTIMnf9qLDQ0lDAEAEAH4+1DXDiAGgAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAwGmEIAAAYzadh6OOPP9YvfvELRUdHy2azadOmTZccU1BQoOuuu052u139+/fXunXrLuizcuVK9e7dW8HBwUpISFBxcbH3iwcAAEbwaRiqqqrS8OHDtXLlyib1379/v8aPH6+bb75ZpaWlmj17tu666y69//777j6vvfaasrKytGjRIm3btk3Dhw9XSkqKjh075qtlAACATsxmWZbVKk9ks2njxo1KS0trtM+8efP0zjvvaOfOne62SZMmqby8XLm5uZKkhIQEjRo1SitWrJAk1dfXKyYmRvfee6/mz5/fpFpcLpfCwsJUUVHBb5MBnYllSadOnbsdEiJ5+feLALQtX31+t6tjhgoLC5WcnOzRlpKSosLCQklSTU2NSkpKPPr4+fkpOTnZ3ach1dXVcrlcHhuATujUKalbt3Pb+VAEAJfQrsKQ0+lUZGSkR1tkZKRcLpdOnz6t48ePq66ursE+Tqez0XlzcnIUFhbm3mJiYnxSPwAA6HjaVRjylezsbFVUVLi3gwcPtnVJAACgnQho6wJ+zOFwqKyszKOtrKxMoaGh6tKli/z9/eXv799gH4fD0ei8drtddrvdJzUDAICOrV3tGUpMTFR+fr5HW15enhITEyVJQUFBiouL8+hTX1+v/Px8dx8AAIDm8GkYqqysVGlpqUpLSyWdO3W+tLRUBw4ckHTu66v09HR3/7vvvlt/+9vfNHfuXH399df6r//6L/3lL3/RAw884O6TlZWl1atX66WXXtLu3bs1c+ZMVVVVadq0ab5cCgAA6KR8+jXZF198oZtvvtl9PysrS5I0ZcoUrVu3TkePHnUHI0nq06eP3nnnHT3wwAP6/e9/ryuvvFJ//OMflZKS4u4zceJEff/991q4cKGcTqdiY2OVm5t7wUHVAAAATdFq1xlqT7jOENBJVVWdO61ekiorpa5d27YeAF5lxHWGAAAAWhthCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAwGmEIAAAYjTAEAACMRhgCAABGIwwBAACjEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMRhgAAgNEIQwAAwGiEIQAAYDTCEAAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaK0ShlauXKnevXsrODhYCQkJKi4ubrTvTTfdJJvNdsE2fvx4d5+pU6de8HhqamprLAUAAHQyAb5+gtdee01ZWVlatWqVEhIStGzZMqWkpGjPnj3q1avXBf1ff/111dTUuO+fOHFCw4cP12233ebRLzU1VWvXrnXft9vtvlsEAADotHy+Z+jZZ59VRkaGpk2bpsGDB2vVqlUKCQnRmjVrGuzfo0cPORwO95aXl6eQkJALwpDdbvfo1717d18vBQAAdEI+DUM1NTUqKSlRcnLyP57Qz0/JyckqLCxs0hwvvviiJk2apK5du3q0FxQUqFevXho4cKBmzpypEydONDpHdXW1XC6XxwYAACD5OAwdP35cdXV1ioyM9GiPjIyU0+m85Pji4mLt3LlTd911l0d7amqqXn75ZeXn5+vpp5/Wli1bdMstt6iurq7BeXJychQWFubeYmJiWr4oAADQqfj8mKHL8eKLL2ro0KGKj4/3aJ80aZL79tChQzVs2DD169dPBQUFSkpKumCe7OxsZWVlue+7XC4CEQAAkOTjPUM9e/aUv7+/ysrKPNrLysrkcDguOraqqkrr16/X9OnTL/k8ffv2Vc+ePbVv374GH7fb7QoNDfXYAAAAJB+HoaCgIMXFxSk/P9/dVl9fr/z8fCUmJl507IYNG1RdXa077rjjks9z6NAhnThxQlFRUZddMwAAMIvPzybLysrS6tWr9dJLL2n37t2aOXOmqqqqNG3aNElSenq6srOzLxj34osvKi0tTT/5yU882isrK/XQQw/p888/17fffqv8/HxNmDBB/fv3V0pKiq+XAwAAOhmfHzM0ceJEff/991q4cKGcTqdiY2OVm5vrPqj6wIED8vPzzGR79uzRJ598og8++OCC+fz9/bVjxw699NJLKi8vV3R0tMaOHavFixdzrSEAANBsNsuyrLYuorW5XC6FhYWpoqKC44eAzqSqSurW7dztykrpny7JAaBj89XnN79NBgAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAwGmEIAAAYjTAEAACMRhgCAABGIwwBAACjEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMRhgAAgNEIQwAAwGiEIQAAYDTCEAAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAwWquEoZUrV6p3794KDg5WQkKCiouLG+27bt062Ww2jy04ONijj2VZWrhwoaKiotSlSxclJydr7969vl4GAADohHwehl577TVlZWVp0aJF2rZtm4YPH66UlBQdO3as0TGhoaE6evSoe/vuu+88Hl+yZImWL1+uVatWqaioSF27dlVKSorOnDnj6+UAAIBOxudh6Nlnn1VGRoamTZumwYMHa9WqVQoJCdGaNWsaHWOz2eRwONxbZGSk+zHLsrRs2TI98sgjmjBhgoYNG6aXX35ZR44c0aZNm3y9HAAA0Mn4NAzV1NSopKREycnJ/3hCPz8lJyersLCw0XGVlZW6+uqrFRMTowkTJmjXrl3ux/bv3y+n0+kxZ1hYmBISEhqds7q6Wi6Xy2MDAACQfByGjh8/rrq6Oo89O5IUGRkpp9PZ4JiBAwdqzZo1euONN/SnP/1J9fX1Gj16tA4dOiRJ7nHNmTMnJ0dhYWHuLSYm5nKXBgAAOol2dzZZYmKi0tPTFRsbqzFjxuj1119XRESE/vCHP7R4zuzsbFVUVLi3gwcPerFiAADQkfk0DPXs2VP+/v4qKyvzaC8rK5PD4WjSHIGBgRoxYoT27dsnSe5xzZnTbrcrNDTUYwMAAJB8HIaCgoIUFxen/Px8d1t9fb3y8/OVmJjYpDnq6ur05ZdfKioqSpLUp08fORwOjzldLpeKioqaPCcAAMB5Ab5+gqysLE2ZMkUjR45UfHy8li1bpqqqKk2bNk2SlJ6erp/+9KfKycmRJD3++OO6/vrr1b9/f5WXl+uZZ57Rd999p7vuukvSuTPNZs+erSeeeEIDBgxQnz59tGDBAkVHRystLc3XywEAAJ2Mz8PQxIkT9f3332vhwoVyOp2KjY1Vbm6u+wDoAwcOyM/vHzuo/v73vysjI0NOp1Pdu3dXXFycPvvsMw0ePNjdZ+7cuaqqqtKMGTNUXl6uG2+8Ubm5uRdcnBEAAOBSbJZlWW1dRGtzuVwKCwtTRUUFxw8BnUlVldSt27nblZVS165tWw8Ar/LV53e7O5sMAACgNRGGAACA0QhDAADAaIQhAABgNMIQAAAwGmEIAAAYjTAEAACMRhgCAABGIwwBAACjEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMRhgAAgNEIQwAAwGiEIQAAYDTCEAAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAwGmEIAAAYjTAEAACM1iphaOXKlerdu7eCg4OVkJCg4uLiRvuuXr1a//qv/6ru3bure/fuSk5OvqD/1KlTZbPZPLbU1FRfLwMAAHRCPg9Dr732mrKysrRo0SJt27ZNw4cPV0pKio4dO9Zg/4KCAt1+++366KOPVFhYqJiYGI0dO1aHDx/26JeamqqjR4+6tz//+c++XgoAAOiEbJZlWb58goSEBI0aNUorVqyQJNXX1ysmJkb33nuv5s+ff8nxdXV16t69u1asWKH09HRJ5/YMlZeXa9OmTS2qyeVyKSwsTBUVFQoNDW3RHADaoaoqqVu3c7crK6WuXdu2HgBe5avPb5/uGaqpqVFJSYmSk5P/8YR+fkpOTlZhYWGT5jh16pRqa2vVo0cPj/aCggL16tVLAwcO1MyZM3XixIlG56iurpbL5fLYAAAAJB+HoePHj6uurk6RkZEe7ZGRkXI6nU2aY968eYqOjvYIVKmpqXr55ZeVn5+vp59+Wlu2bNEtt9yiurq6BufIyclRWFiYe4uJiWn5ogAAQKcS0NYFXMzvfvc7rV+/XgUFBQoODna3T5o0yX176NChGjZsmPr166eCggIlJSVdME92draysrLc910uF4EIAABI8vGeoZ49e8rf319lZWUe7WVlZXI4HBcdu3TpUv3ud7/TBx98oGHDhl20b9++fdWzZ0/t27evwcftdrtCQ0M9NgAAAMnHYSgoKEhxcXHKz893t9XX1ys/P1+JiYmNjluyZIkWL16s3NxcjRw58pLPc+jQIZ04cUJRUVFeqRsAAJjD56fWZ2VlafXq1XrppZe0e/duzZw5U1VVVZo2bZokKT09XdnZ2e7+Tz/9tBYsWKA1a9aod+/ecjqdcjqdqqyslCRVVlbqoYce0ueff65vv/1W+fn5mjBhgvr376+UlBRfLwcAAHQyPj9maOLEifr++++1cOFCOZ1OxcbGKjc3131Q9YEDB+Tn949M9t///d+qqanRf/zHf3jMs2jRIj366KPy9/fXjh079NJLL6m8vFzR0dEaO3asFi9eLLvd7uvlAACATsbn1xlqj7jOENBJcZ0hoFPrkNcZAgAAaO8IQwAAwGiEIQAAYDTCEAAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAwGmEIAAAYjTAEAACMRhgCAABGIwwBAACjEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMFtHUBgC9YlqXt27dr69at2rVrl06fPq0uXbpoyJAhGjVqlEaMGCGbzdbWZQIA2gHCEDqV2tparV69WsuWLdPevXtls9kUEBAgy7Jks9l09uxZWZalAQMGaPbs2crIyFBgYGBblw0AaEN8TYZOY+fOnRo1apQyMzO1b98+Sef2ENXW1urs2bOqra2VZVmSpH379ikzM1OjRo3Szp0727JsAEAbIwyhU9iyZYvi4+O1c+dOWZblDj2NOd9n586dio+P15YtW1qpUgBAe0MYQoe3c+dO3XLLLaqurlZdXV2zxtbV1am6ulq33HILe4gAwFCEIXRotbW1uuOOO1RTU6P6+voWzVFfX++ep7a21ssVAgDaO8IQOrTVq1drx44dzd4j9M/Onj2rHTt2aPXq1V6qDADQUbRKGFq5cqV69+6t4OBgJSQkqLi4+KL9N2zYoEGDBik4OFhDhw7Vu+++6/G4ZVlauHChoqKi1KVLFyUnJ2vv3r2+XALaIcuytGzZMq/O+fvf//6SxxsBADoXn4eh1157TVlZWVq0aJG2bdum4cOHKyUlRceOHWuw/2effabbb79d06dP1/bt25WWlqa0tDSP4zmWLFmi5cuXa9WqVSoqKlLXrl2VkpKiM2fO+Ho5aEe2b9+uvXv3ei28WJal//3f/1VpaalX5gMAdAw2y8f/G5yQkKBRo0ZpxYoVks4dnxETE6N7771X8+fPv6D/xIkTVVVVpbffftvddv311ys2NlarVq2SZVmKjo7WnDlz9OCDD0qSKioqFBkZqXXr1mnSpEmXrMnlciksLExHvz+h0NBQL60Ure3F1S/o/nszvbonx2azafmKlfo/d2V4bU60oqoqhfQIlySdOlkude3apuUA8C6Xy6WoiJ+ooqLCq5/fPr3oYk1NjUpKSpSdne1u8/PzU3JysgoLCxscU1hYqKysLI+2lJQUbdq0SZK0f/9+OZ1OJScnux8PCwtTQkKCCgsLGwxD1dXVqq6udt93uVySpPgn8+VnD2nx+tC2Tn6YK8vmJ1mXd7zQj1k2Pz285j0tPXCV1+ZE6+lSc0a7///tuMUf6nRQcJvWA8C76qtP+WRen35Ndvz4cdXV1SkyMtKjPTIyUk6ns8ExTqfzov3P/7M5c+bk5CgsLMy9xcTEtGg9aF+s2upLd2pH8wIA2icjfo4jOzvbY2+Ty+VSTEyMiv9vEl+TdWAP/vCe/rj7I9XWe2/PUKC/n+7813/R0sdTvDYnWlFVlfTcuZslC5L5mgzoZFwul6KWeX9en4ahnj17yt/fX2VlZR7tZWVlcjgcDY5xOBwX7X/+n2VlZYqKivLoExsb2+Ccdrtddrv9gvaQoACFBBmRBzul4cOG6uzZs16d8+zZs4odNpS/i46q9h+vW0hQgMTrCHQqZ330nvbp12RBQUGKi4tTfn6+u62+vl75+flKTExscExiYqJHf0nKy8tz9+/Tp48cDodHH5fLpaKiokbnROc0atQor58Gb1mWRo0a5dU5AQDtm8//tykrK0tTpkzRyJEjFR8fr2XLlqmqqkrTpk2TJKWnp+unP/2pcnJyJEn333+/xowZo//8z//U+PHjtX79en3xxRd64YUXJJ0722f27Nl64oknNGDAAPXp00cLFixQdHS00tLSfL0ctCMjRozQgAEDtG/fPq+EIpvNpgEDBjS6hxEA0Dn5PAxNnDhR33//vRYuXCin06nY2Fjl5ua6D4A+cOCA/Pz+sYNq9OjRevXVV/XII4/o4Ycf1oABA7Rp0yZde+217j5z585VVVWVZsyYofLyct14443Kzc1VcDBnjpjkfDDOzMz02pz333+/bDab1+YDALR/Pr/OUHt0/jpD3r5OAVpfbW2tRo0apZ07d17WT3IEBARoyJAh+uKLLxQQwHEmHVZVldSt27nblZUcQA10Mr76/Oa3ydChBQYG6k9/+pOCgoI89jA2h5+fn3seghAAmIcwhA7v2muv1XvvvSe73d7sMBMQECC73a733nvP46tYAIA5CEPoFMaMGaPi4mINGTJENpvtksf9nO8zZMgQFRcXa8yYMa1UKQCgvSEModO49tprtXXrVq1YsUL9+/eXdC70BAYGKiAgQIGBge6QNGDAAK1YsUJbt25ljxAAGI4DqDmAulOyLEulpaXaunWrdu3apVOnTikkJERDhgzRqFGjFBsby1ljnREHUAOdmq8+vzlaFJ2SzWbTiBEjNGLEiLYuBQDQzvE1GQAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAwGmEIAAAYjTAEAACMRhgCAABGIwwBAACjEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMRhgAAgNEIQwAAwGiEIQAAYDTCEAAAMJpPw9DJkyc1efJkhYaGKjw8XNOnT1dlZeVF+997770aOHCgunTpoquuukr33XefKioqPPrZbLYLtvXr1/tyKQAAoJMK8OXkkydP1tGjR5WXl6fa2lpNmzZNM2bM0Kuvvtpg/yNHjujIkSNaunSpBg8erO+++0533323jhw5or/+9a8efdeuXavU1FT3/fDwcF8uBQAAdFI2y7IsX0y8e/duDR48WFu3btXIkSMlSbm5uRo3bpwOHTqk6OjoJs2zYcMG3XHHHaqqqlJAwLnsZrPZtHHjRqWlpbWoNpfLpbCwMFVUVCg0NLRFcwBoh6qqpG7dzt2urJS6dm3begB4la8+v332NVlhYaHCw8PdQUiSkpOT5efnp6KioibPc37B54PQebNmzVLPnj0VHx+vNWvW6GKZrrq6Wi6Xy2MDAACQfPg1mdPpVK9evTyfLCBAPXr0kNPpbNIcx48f1+LFizVjxgyP9scff1w///nPFRISog8++ED33HOPKisrdd999zU4T05Ojh577LGWLQQAAHRqzd4zNH/+/AYPYP7x9vXXX192YS6XS+PHj9fgwYP16KOPejy2YMEC3XDDDRoxYoTmzZunuXPn6plnnml0ruzsbFVUVLi3gwcPXnZ9AACgc2j2nqE5c+Zo6tSpF+3Tt29fORwOHTt2zKP97NmzOnnypBwOx0XH//DDD0pNTdUVV1yhjRs3KjAw8KL9ExIStHjxYlVXV8tut1/wuN1ub7AdAACg2WEoIiJCERERl+yXmJio8vJylZSUKC4uTpK0efNm1dfXKyEhodFxLpdLKSkpstvtevPNNxUcHHzJ5yotLVX37t0JPAAAoNl8dszQNddco9TUVGVkZGjVqlWqra1VZmamJk2a5D6T7PDhw0pKStLLL7+s+Ph4uVwujR07VqdOndKf/vQnj4OdIyIi5O/vr7feektlZWW6/vrrFRwcrLy8PD311FN68MEHfbUUAADQifn0OkOvvPKKMjMzlZSUJD8/P916661avny5+/Ha2lrt2bNHp06dkiRt27bNfaZZ//79Pebav3+/evfurcDAQK1cuVIPPPCALMtS//799eyzzyojI8OXSwEAAJ2Uz64z1J5xnSGgk+I6Q0Cn1uGuMwQAANAREIYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMRhgAAgNEIQwAAwGiEIQAAYDTCEAAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAwGmEIAAAYjTAEAACMRhgCAABGIwwBAACjEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIzm0zB08uRJTZ48WaGhoQoPD9f06dNVWVl50TE33XSTbDabx3b33Xd79Dlw4IDGjx+vkJAQ9erVSw899JDOnj3ry6UAAIBOKsCXk0+ePFlHjx5VXl6eamtrNW3aNM2YMUOvvvrqRcdlZGTo8ccfd98PCQlx366rq9P48ePlcDj02Wef6ejRo0pPT1dgYKCeeuopn60FAAB0Tj4LQ7t371Zubq62bt2qkSNHSpKef/55jRs3TkuXLlV0dHSjY0NCQuRwOBp87IMPPtBXX32lDz/8UJGRkYqNjdXixYs1b948PfroowoKCvLJegAAQOfks6/JCgsLFR4e7g5CkpScnCw/Pz8VFRVddOwrr7yinj176tprr1V2drZOnTrlMe/QoUMVGRnpbktJSZHL5dKuXbsanK+6uloul8tjAwAAkHy4Z8jpdKpXr16eTxYQoB49esjpdDY67je/+Y2uvvpqRUdHa8eOHZo3b5727Nmj119/3T3vj4OQJPf9xubNycnRY489djnLAQAAnVSzw9D8+fP19NNPX7TP7t27W1zQjBkz3LeHDh2qqKgoJSUl6ZtvvlG/fv1aNGd2draysrLc910ul2JiYlpcIwAA6DyaHYbmzJmjqVOnXrRP37595XA4dOzYMY/2s2fP6uTJk40eD9SQhIQESdK+ffvUr18/ORwOFRcXe/QpKyuTpEbntdvtstvtTX5OAABgjmaHoYiICEVERFyyX2JiosrLy1VSUqK4uDhJ0ubNm1VfX+8OOE1RWloqSYqKinLP++STT+rYsWPur+Hy8vIUGhqqwYMHN3M1AADAdD47gPqaa65RamqqMjIyVFxcrE8//VSZmZmaNGmS+0yyw4cPa9CgQe49Pd98840WL16skpISffvtt3rzzTeVnp6un/3sZxo2bJgkaezYsRo8eLDuvPNO/c///I/ef/99PfLII5o1axZ7fwAAQLP59KKLr7zyigYNGqSkpCSNGzdON954o1544QX347W1tdqzZ4/7bLGgoCB9+OGHGjt2rAYNGqQ5c+bo1ltv1VtvveUe4+/vr7ffflv+/v5KTEzUHXfcofT0dI/rEgEAADSVzbIsq62LaG0ul0thYWGqqKhQaGhoW5cDwFuqqqRu3c7drqyUunZt23oAeJWvPr/5bTIAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMRhgAAgNEIQwAAwGiEIQAAYDTCEAAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAwGmEIAAAYjTAEAACMRhgCAABGIwwBAACjEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMRhgAAgNF8GoZOnjypyZMnKzQ0VOHh4Zo+fboqKysb7f/tt9/KZrM1uG3YsMHdr6HH169f78ulAACATirAl5NPnjxZR48eVV5enmprazVt2jTNmDFDr776aoP9Y2JidPToUY+2F154Qc8884xuueUWj/a1a9cqNTXVfT88PNzr9QMAgM7PZ2Fo9+7dys3N1datWzVy5EhJ0vPPP69x48Zp6dKlio6OvmCMv7+/HA6HR9vGjRv161//Wt26dfNoDw8Pv6AvAABAc/nsa7LCwkKFh4e7g5AkJScny8/PT0VFRU2ao6SkRKWlpZo+ffoFj82aNUs9e/ZUfHy81qxZI8uyGp2nurpaLpfLYwMAAJB8uGfI6XSqV69enk8WEKAePXrI6XQ2aY4XX3xR11xzjUaPHu3R/vjjj+vnP/+5QkJC9MEHH+iee+5RZWWl7rvvvgbnycnJ0WOPPdayhQAAgE6t2XuG5s+f3+hBzue3r7/++rILO336tF599dUG9wotWLBAN9xwg0aMGKF58+Zp7ty5euaZZxqdKzs7WxUVFe7t4MGDl10fAADoHJq9Z2jOnDmaOnXqRfv07dtXDodDx44d82g/e/asTp482aRjff7617/q1KlTSk9Pv2TfhIQELV68WNXV1bLb7Rc8brfbG2wHAABodhiKiIhQRETEJfslJiaqvLxcJSUliouLkyRt3rxZ9fX1SkhIuOT4F198Ub/85S+b9FylpaXq3r07gQcAADSbz44Zuuaaa5SamqqMjAytWrVKtbW1yszM1KRJk9xnkh0+fFhJSUl6+eWXFR8f7x67b98+ffzxx3r33XcvmPett95SWVmZrr/+egUHBysvL09PPfWUHnzwQV8tBQAAdGI+vc7QK6+8oszMTCUlJcnPz0+33nqrli9f7n68trZWe/bs0alTpzzGrVmzRldeeaXGjh17wZyBgYFauXKlHnjgAVmWpf79++vZZ59VRkaGL5cCAAA6KZt1sXPSOymXy6WwsDBVVFQoNDS0rcsB4C1VVdL5a5JVVkpdu7ZtPQC8ylef3/w2GQAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaIQhAABgNMIQAAAwGmEIAAAYjTAEAACMRhgCAABGIwwBAACjEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMRhgAAgNEIQwAAwGiEIQAAYDTCEAAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0QhDAADAaD4LQ08++aRGjx6tkJAQhYeHN2mMZVlauHChoqKi1KVLFyUnJ2vv3r0efU6ePKnJkycrNDRU4eHhmj59uiorK32wAgAAYAKfhaGamhrddtttmjlzZpPHLFmyRMuXL9eqVatUVFSkrl27KiUlRWfOnHH3mTx5snbt2qW8vDy9/fbb+vjjjzVjxgxfLAEAABjAZlmW5csnWLdunWbPnq3y8vKL9rMsS9HR0ZozZ44efPBBSVJFRYUiIyO1bt06TZo0Sbt379bgwYO1detWjRw5UpKUm5urcePG6dChQ4qOjm5STS6XS2FhYaqoqFBoaOhlrQ9AO1JVJXXrdu52ZaXUtWvb1gPAq3z1+d1ujhnav3+/nE6nkpOT3W1hYWFKSEhQYWGhJKmwsFDh4eHuICRJycnJ8vPzU1FRUaNzV1dXy+VyeWwAAABSOwpDTqdTkhQZGenRHhkZ6X7M6XSqV69eHo8HBASoR48e7j4NycnJUVhYmHuLiYnxcvUAAKCjalYYmj9/vmw220W3r7/+2le1tlh2drYqKirc28GDB9u6JAC+EBJy7uuxyspztwGgCQKa03nOnDmaOnXqRfv07du3RYU4HA5JUllZmaKiotztZWVlio2Ndfc5duyYx7izZ8/q5MmT7vENsdvtstvtLaoLQAdis3GcEIBma1YYioiIUEREhE8K6dOnjxwOh/Lz893hx+VyqaioyH1GWmJiosrLy1VSUqK4uDhJ0ubNm1VfX6+EhASf1AUAADo3nx0zdODAAZWWlurAgQOqq6tTaWmpSktLPa4JNGjQIG3cuFGSZLPZNHv2bD3xxBN688039eWXXyo9PV3R0dFKS0uTJF1zzTVKTU1VRkaGiouL9emnnyozM1OTJk1q8plkAAAAP9asPUPNsXDhQr300kvu+yNGjJAkffTRR7rpppskSXv27FFFRYW7z9y5c1VVVaUZM2aovLxcN954o3JzcxUcHOzu88orrygzM1NJSUny8/PTrbfequXLl/tqGQAAoJPz+XWG2iOuMwQAQMfT6a8zBAAA0BYIQwAAwGiEIQAAYDTCEAAAMBphCAAAGI0wBAAAjEYYAgAARiMMAQAAoxGGAACA0Xz2cxzt2fmLbrtcrjauBAAANNX5z21v/3iGkWHoxIkTkqSYmJg2rgQAADTXiRMnFBYW5rX5jAxDPXr0kCQdOHDAq/8y2zuXy6WYmBgdPHjQqN9kY92s2wSsm3WboKKiQldddZX7c9xbjAxDfn7nDpUKCwsz6o/ovNDQUNZtENZtFtZtFlPXff5z3GvzeXU2AACADoYwBAAAjGZkGLLb7Vq0aJHsdntbl9KqWDfrNgHrZt0mYN3eXbfN8vb5aQAAAB2IkXuGAAAAziMMAQAAoxGGAACA0QhDAADAaEaEoW+//VbTp09Xnz591KVLF/Xr10+LFi1STU3NRcedOXNGs2bN0k9+8hN169ZNt956q8rKylqpau948sknNXr0aIWEhCg8PLxJY6ZOnSqbzeaxpaam+rZQL2vJui3L0sKFCxUVFaUuXbooOTlZe/fu9W2hXnby5ElNnjxZoaGhCg8P1/Tp01VZWXnRMTfddNMFr/fdd9/dShW3zMqVK9W7d28FBwcrISFBxcXFF+2/YcMGDRo0SMHBwRo6dKjefffdVqrUu5qz7nXr1l3wugYHB7ditd7x8ccf6xe/+IWio6Nls9m0adOmS44pKCjQddddJ7vdrv79+2vdunU+r9PbmrvugoKCC15vm80mp9PZOgV7QU5OjkaNGqUrrrhCvXr1Ulpamvbs2XPJcd54fxsRhr7++mvV19frD3/4g3bt2qXnnntOq1at0sMPP3zRcQ888IDeeustbdiwQVu2bNGRI0f0q1/9qpWq9o6amhrddtttmjlzZrPGpaam6ujRo+7tz3/+s48q9I2WrHvJkiVavny5Vq1apaKiInXt2lUpKSk6c+aMDyv1rsmTJ2vXrl3Ky8vT22+/rY8//lgzZsy45LiMjAyP13vJkiWtUG3LvPbaa8rKytKiRYu0bds2DR8+XCkpKTp27FiD/T/77DPdfvvtmj59urZv3660tDSlpaVp586drVz55WnuuqVzVyf+8ev63XfftWLF3lFVVaXhw4dr5cqVTeq/f/9+jR8/XjfffLNKS0s1e/Zs3XXXXXr//fd9XKl3NXfd5+3Zs8fjNe/Vq5ePKvS+LVu2aNasWfr888+Vl5en2tpajR07VlVVVY2O8dr72zLUkiVLrD59+jT6eHl5uRUYGGht2LDB3bZ7925LklVYWNgaJXrV2rVrrbCwsCb1nTJlijVhwgSf1tNamrru+vp6y+FwWM8884y7rby83LLb7daf//xnH1boPV999ZUlydq6dau77b333rNsNpt1+PDhRseNGTPGuv/++1uhQu+Ij4+3Zs2a5b5fV1dnRUdHWzk5OQ32//Wvf22NHz/eoy0hIcH67W9/69M6va25627Oe76jkGRt3Ljxon3mzp1rDRkyxKNt4sSJVkpKig8r862mrPujjz6yJFl///vfW6Wm1nDs2DFLkrVly5ZG+3jr/W3EnqGGVFRUXPSH3kpKSlRbW6vk5GR326BBg3TVVVepsLCwNUpsUwUFBerVq5cGDhyomTNn6sSJE21dkk/t379fTqfT4/UOCwtTQkJCh3m9CwsLFR4erpEjR7rbkpOT5efnp6KioouOfeWVV9SzZ09de+21ys7O1qlTp3xdbovU1NSopKTE43Xy8/NTcnJyo69TYWGhR39JSklJ6TCvq9SydUtSZWWlrr76asXExGjChAnatWtXa5TbpjrD6305YmNjFRUVpX/7t3/Tp59+2tblXJaKigpJuuhntbdebyN/qHXfvn16/vnntXTp0kb7OJ1OBQUFXXC8SWRkZIf6DrYlUlNT9atf/Up9+vTRN998o4cffli33HKLCgsL5e/v39bl+cT51zQyMtKjvSO93k6n84Jd4gEBAerRo8dF1/Cb3/xGV199taKjo7Vjxw7NmzdPe/bs0euvv+7rkpvt+PHjqqura/B1+vrrrxsc43Q6O/TrKrVs3QMHDtSaNWs0bNgwVVRUaOnSpRo9erR27dqlK6+8sjXKbhONvd4ul0unT59Wly5d2qgy34qKitKqVas0cuRIVVdX649//KNuuukmFRUV6brrrmvr8pqtvr5es2fP1g033KBrr7220X7een936D1D8+fPb/CAsR9v//wfisOHDys1NVW33XabMjIy2qjyy9OSdTfHpEmT9Mtf/lJDhw5VWlqa3n77bW3dulUFBQXeW0QL+Hrd7ZWv1z1jxgylpKRo6NChmjx5sl5++WVt3LhR33zzjRdXgdaWmJio9PR0xcbGasyYMXr99dcVERGhP/zhD21dGnxg4MCB+u1vf6u4uDiNHj1aa9as0ejRo/Xcc8+1dWktMmvWLO3cuVPr169vlefr0HuG5syZo6lTp160T9++fd23jxw5optvvlmjR4/WCy+8cNFxDodDNTU1Ki8v99g7VFZWJofDcTllX7bmrvty9e3bVz179tS+ffuUlJTktXmby5frPv+alpWVKSoqyt1eVlam2NjYFs3pLU1dt8PhuOBg2rNnz+rkyZPN+ptNSEiQdG4Par9+/Zpdry/17NlT/v7+F5zVebH3pcPhaFb/9qgl6/5ngYGBGjFihPbt2+eLEtuNxl7v0NDQTrtXqDHx8fH65JNP2rqMZsvMzHSfAHKpvZjeen936DAUERGhiIiIJvU9fPiwbr75ZsXFxWnt2rXy87v4TrG4uDgFBgYqPz9ft956q6RzR+kfOHBAiYmJl1375WjOur3h0KFDOnHihEdIaAu+XHefPn3kcDiUn5/vDj8ul0tFRUXNPhPP25q67sTERJWXl6ukpERxcXGSpM2bN6u+vt4dcJqitLRUktr89W5IUFCQ4uLilJ+fr7S0NEnndqfn5+crMzOzwTGJiYnKz8/X7Nmz3W15eXlt/j5ujpas+5/V1dXpyy+/1Lhx43xYadtLTEy84NTqjvZ6e0tpaWm7fB83xrIs3Xvvvdq4caMKCgrUp0+fS47x2vu7JUd4dzSHDh2y+vfvbyUlJVmHDh2yjh496t5+3GfgwIFWUVGRu+3uu++2rrrqKmvz5s3WF198YSUmJlqJiYltsYQW++6776zt27dbjz32mNWtWzdr+/bt1vbt260ffvjB3WfgwIHW66+/blmWZf3www/Wgw8+aBUWFlr79++3PvzwQ+u6666zBgwYYJ05c6atltFszV23ZVnW7373Oys8PNx64403rB07dlgTJkyw+vTpY50+fbotltAiqamp1ogRI6yioiLrk08+sQYMGGDdfvvt7sf/+e9837591uOPP2598cUX1v79+6033njD6tu3r/Wzn/2srZZwSevXr7fsdru1bt0666uvvrJmzJhhhYeHW06n07Isy7rzzjut+fPnu/t/+umnVkBAgLV06VJr9+7d1qJFi6zAwEDryy+/bKsltEhz1/3YY49Z77//vvXNN99YJSUl1qRJk6zg4GBr165dbbWEFvnhhx/c719J1rPPPmtt377d+u677yzLsqz58+dbd955p7v/3/72NyskJMR66KGHrN27d1srV660/P39rdzc3LZaQos0d93PPfectWnTJmvv3r3Wl19+ad1///2Wn5+f9eGHH7bVEppt5syZVlhYmFVQUODxOX3q1Cl3H1+9v40IQ2vXrrUkNbidt3//fkuS9dFHH7nbTp8+bd1zzz1W9+7drZCQEOvf//3fPQJURzBlypQG1/3jdUqy1q5da1mWZZ06dcoaO3asFRERYQUGBlpXX321lZGR4f4PbkfR3HVb1rnT6xcsWGBFRkZadrvdSkpKsvbs2dP6xV+GEydOWLfffrvVrVs3KzQ01Jo2bZpHAPznv/MDBw5YP/vZz6wePXpYdrvd6t+/v/XQQw9ZFRUVbbSCpnn++eetq666ygoKCrLi4+Otzz//3P3YmDFjrClTpnj0/8tf/mL9y7/8ixUUFGQNGTLEeuedd1q5Yu9ozrpnz57t7hsZGWmNGzfO2rZtWxtUfXnOnzL+z9v5tU6ZMsUaM2bMBWNiY2OtoKAgq2/fvh7v846iuet++umnrX79+lnBwcFWjx49rJtuusnavHlz2xTfQo19Tv/49fPV+9v2/wsAAAAwUoc+mwwAAOByEYYAAIDRCEMAAMBohCEAAGA0whAAADAaYQgAABiNMAQAAIxGGAIAAEYjDAEAAKMRhgAAgNEIQwAAwGiEIQAAYLT/B59YbcokMKW6AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "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": 17, "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": [ "# Los valores propios importante\n", "\n", "- Es claro que algunos valores propios son mejores que otros. \n", " - Algunos causan oscilaciones\n", " - Algunos hacen que el sistema responda lentamente\n", " - etc.\n", "\n", "- Próximamente veremos como selecionar los valores propios. " ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.11.0" }, "short": "Estabilidad", "title": "Estabilidad de sistemas LTI", "week": 5 }, "nbformat": 4, "nbformat_minor": 2 }