Hasta el momento hemos estudiado modelos que se mantienen igual durante el tiempo. Lo que no es verdad.
Hemos diseñado controladores que sirven para todos los propositos. No es verdad en robótica.
Recordemos el enfoque de control basado en comportamiento. Necesitamos ser capaces de lidiar con todos estos tipos de fenomenos.
Las condiciones en el mundo real cambián todo el tiempo.
Realizar cambio en la manera como funcionan las cosas mejora su desempeño.
Necesitamos describir sistemas que contienen ambos mundos, la dinámica del sistema continuo y los cambios de la lógica discreta.
Un automata híbrido es:
Una máquina de estados finitos (lógica discreta) que incluye dinámica continua
La condiciones en la cuales ocurre una transición la llamamos condición, ejemplo: una transición de $q$ a $q'$ ocurre si:
$$x\in G_{q,q'}$$
Como componente final, vamos a permitir cambios radicales/abruptos en los estados mientras la transición ocurre, esto son llamads reset:
$$x:=R_{q,q'}(x)$$
display(ani)
display(ani)
display(ani)
display(ani)
display(ani)
Subsistemas estables no garantizan que el sistema híbrido sea estable.
Vimos que podemos destabilizar subsistemas estables a traves de una desafortunada serie de suiches
Si ignoramos los resets podemos escribir los sistemas híbridos como sistemas suicheados:
$$\dot{x}=f_\sigma(x,u)$$donde $\sigma$ es la señal de suicheado
La señal de suicheado dicta in que modo discreto nos encontramos.
$$\sigma(t) \in \Sigma = \{1,\ldots \,,p\}$$Dado un sistema suicheado $\dot{x}=f_\sigma(x,u)$ tendremos estabilidad:
Si la señal de suicheado es generada por un automata híbrido:
Si todos los modos son AS entonces:
La ecuación del movimiento entre rebotes es:
$$\ddot{h}=-g$$$$\dot{x}=\left[\array{0&1\\0&0}\right]x + \left[\array{0\\-g}\right] \qquad y = \left[\array{1&0}\right] x$$Los rebotes pueden ser modelados como resets:
$$\dot{h}:= - \gamma \dot{h}$$$$x:=\left[\array{1&0\\0&-\gamma}\right]x$$Cuál sería la condición o guardia ?
Partiendo del sistema
$$\dot{x}=\left[\array{0&1\\0&0}\right]x + \left[\array{0\\-g}\right] \qquad y = \left[\array{1&0}\right] x$$y recordando la solución general para la ecuación en espacio de estados:
$$y=C\Phi(t,t_0)x(t_0) + C\int_{t_0}^t \Phi(t,\tau)Bu(\tau) d\tau \qquad \Phi(t,\tau)=e^{A(t-\tau)}$$Analizando la matriz dinámica de este sistema tenemos:
$$A^2 = A^3 = \ldots = 0$$luego:
$$e^{At} = \sum_{k=0}^\infty \frac{At^k}{k!} = I + At + 0 = \left[\array{1&t\\0&1}\right]$$remplazamos:
$$y=\left[\array{1&0}\right]\left[\array{1&t-t_0\\0&1}\right]\left[\array{h_0\\ \dot{h}_0}\right] + \left[\array{1&0}\right]\int_{t_0}^t \left[\array{1&t-\tau\\0&1}\right]\left[\array{0\\-g}\right] d\tau$$integrando:
$$y = h_0 + \dot{h}_0(t-t_0) - \frac{g}{2}(t-t_0)^2$$Partiendo de la solución y teniendo las condiciones $h_0=0$ y $t_0=0$
$$y = h_0 + \dot{h}_0(t-t_0) - \frac{g}{2}(t-t_0)^2$$El tiempo para un primer rebote será:
$$y(T)=0 = \dot{h}_0T - \frac{g}{2}T^2 = T \left(\dot{h}_0 - \frac{g}{2}T\right)$$solución:
$$T=0 \qquad T = \frac{2\dot{h}}{g}$$El tiempo entre rebotes será : $T = \frac{2\dot{h}}{g}$
Siendo $\gamma$ la fracción de energía recuperada por el sistema en el rebote tendremos y $v=\dot{h}_0$ la velocidad inicial, para los tiempos de los rebotes.
$$\array{T_1 =& 2v/g \\ T_2=& 2v/g&+\gamma 2v/g}$$Luego para el rebote $N$ tendremos :
$$T_N = \frac{2v}{g}\sum_{k=0}^{N-1}\gamma^k = \frac{2v}{g}\frac{1}{1-\gamma} \qquad \gamma<1$$La pelota rebota infinitas veces en tiempo finito. Esto es más que una curiosidad matemática.
Este hecho se conoce como el fenómemo de Zenón.
Zenón de Elea (490ac-430ac)
"In a race, the quickest runner can never over take the slowest, since the pursuer must first reach the point whence the pursued started, so that the slower must always hold a lead." — as recounted by Aristotle, Physics VI:9, 239b15
Para evitar los suicheo infinitos usaremos un control modo deslizante.
El deslizamiento ocurre cuando:
$$\frac{\partial g}{\partial x}f_1 < 0 \qquad\text{y}\qquad \frac{\partial g}{\partial x}f_2 > 0 $$La derivada de $g$ in la dirección $f$ se conoce como la derivada de Lie $L_fg$
Podemos saber si tenemos zeno tipo 1 si ocurre el deslizamiento:
$$\frac{\partial g}{\partial x}f_1 < 0 \qquad\text{y}\qquad \frac{\partial g}{\partial x}f_2 > 0 $$o escrito de otra forma
$$L_{f_1} g < 0 \qquad\text{y}\qquad L_{f_2} g > 0 $$El modo deslizante se da cuando $dg/dt = 0$, luego
$$\frac{dg}{dt} = \frac{\partial g}{\partial x} \dot{x} = \frac{\partial g}{\partial x}\left(\sigma_1f_1+\sigma_2f_2\right) = \sigma_1L_{f_1}g+\sigma_2L_{f_2}g$$de aquí:
$$\sigma_2 = -\sigma_1 \frac{L_{f_1}g}{L_{f_2}g}$$con lo anterior podemos calcular los valores $\sigma_1$ y $\sigma_2$ del modo deslizante. Teniendo en cuenta que:
$$\array{\sigma_1,\sigma_2 \geq 0 &\text{y}& \sigma_1+\sigma_2 = 1}$$De las ecuaciones anteriores podemos definir:
$$\sigma_2 = -\sigma_1 \frac{L_{f_1}g}{L_{f_2}g}$$$$\sigma_1+\sigma_2 = \sigma_1 \left(1-\frac{L_{f_1}g}{L_{f_2}g}\right)= 1$$de aquí:
$$\array{\sigma_1 = \frac{L_{f_2}g}{L_{f_2}g-L_{f_1}g}&&\sigma_2 = -\frac{L_{f_1}g}{L_{f_2}g-L_{f_1}g}}$$el modo inducido será:
$$\dot{x} = \frac{1}{L_{f_2}g-L_{f_1}g}\left(L_{f_2}g\,f_1-L_{f_1}g\,f_2\right)$$