ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA DEPARTAMENTO DE INGENIERÍA EN CONTROL Y AUTOMATIZACIÓN TEORÍA DEL CONTROL 3 PRÁCTICA: DISEÑO DE COMPENSADORES Y OBSERVADORES DE ESTADO OBJETIVO: El alumno integrará y utilizará las herramientas computacionales para calcular los algoritmos de control en espacio de estados para reconstruir y compensar los sistemas de control requeridos. INTRODUCCIÓN: Para el caso de la teoría de control moderno es posible especificar la ubicación arbitraria de todos los polos de lazo cerrado (no solo la de los polos dominantes) teniendo como única condición la controlabilidad completa de los estados. Sin embargo, para que esto sea posible se debe tomar en cuenta que a diferencia del control clásico en el que solo se mide la variable de salida, en el enfoque de control moderno es necesario medir cada una de las variables de estado o bien utilizar un observador de estado. Al algoritmo de control basado en la retroalimentación de los estados del sistema se le conoce como compensador por retroalimentación de estados. El diseño de compensadores por retroalimentación de estados también se puede utilizar para resolver problemas de control por seguimiento. Lo anterior sucede cuando la señal de referencia es una constante que se puede ajustar a diferentes valores fijos durante distintos intervalos de tiempo. Los dos casos generales son: 1. Cuando el sistema es clase uno o mayor 2. Cuando el sistema es clase cero Por otro lado, la retroalimentación de estados asume que todos los estados están accesibles y se pueden medir. Sin embargo, en la práctica no todos los estados suelen estar disponibles para su retroalimentación o bien su medición resulta costosa; por lo que es necesario diseñar un algoritmo dinámico que permita estimar los estados en lugar de medirlos. El algoritmo estimador que reconstruye el estado del sistema se conoce también como observador de estados. A continuación, se presentan los diferentes esquemas utilizados para compensar y estimar el estado en un sistema de control: M. en C. Rubén Velázquez Cuevas 1 Instituto Politécnico Nacional En la figura 1 se muestra el esquema para un compensador regulador: Figura 1. Sistema de control en lazo cerrado con u (t ) Kx(t ) En la figura 2 se muestra el esquema para un compensador seguidor de un sistema tipo 1 Figura 2. Sistema de control en lazo cerrado con u(t ) Kx(t ) k1r (t ) En la figura 3 se muestra el esquema para un compensador seguidor de un sistema tipo 0 Figura 3. Sistema de control en lazo cerrado con u(t ) Kx(t ) kI xI (t ) Finalmente, en la figura 4 se muestra el esquema de un observador de estados completo M. en C. Rubén Velázquez Cuevas 2 Instituto Politécnico Nacional Figura 4. Sistema con observador a lazo abierto, con x(t ) Ax(t ) Bu(t ) K y(t ) y(t ) DESARROLLO: Considere el sistema del péndulo invertido representado en la figura 2.1. x ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| −3 −2 −1 0 1 2 3 Figura 2.1. Sistema de péndulo invertido Las ecuaciones de estado linealizadas del sistema están dadas por: x1 0 x 0 2 x3 0 x4 0 1 0 0 a23 0 0 0 a43 m2 2 g mg a23 ; a43 I J m 2 0 x1 0 0 x2 b21 u ; 1 x3 0 0 x4 b41 x1 y1 1 0 0 0 x2 0 y 0 0 1 0 x 0 u 3 2 x4 J m m3 3 g ; b23 2 I J m I M. en C. Rubén Velázquez Cuevas 3 2 ; b23 m ; I Jm J m I 2 M Instituto Politécnico Nacional Donde: mc 0.48; es la masa del carro en [Kg] m p 0.16; es la masa del péndulo en [Kg] g 9.81; es la constante de aceleración gravitacional en [m/s2] 0.5; es la distancia del eje de rotación al centro de masa del péndulo en [m] J 0.0333; es el momento de inercia del centro de masa en el péndulo en [Nm s2/rad] x1 x; es la posición traslacional del carro en [m] x3 ; es la posición angular del péndulo (con respecto a la vertical superior) en [rad] u f ; es la fuerza que impulsa al carro para que se mueva en [N] y1 x es la posición traslacional medible del carro en [m] y2 ; es la posición angular medible del péndulo en [rad] x2 v; es la velocidad traslacional del carro en [m/s] x4 ; es la velocidad angular del péndulo en [rad/s] Con ayuda de la herramienta Matlab – Simulink, realice los cálculos y simulaciones de los sistemas de control en espacio de estados para el sistema del péndulo planteado como se solicita: a) El compensador regulador por retro de estados, para mantener el péndulo en su posición vertical T cuando las condiciones iniciales no nulas son x0 x(0) 0 0 0.15 0 ; si los eigenvalores deseados de lazo cerrado son: rdc 2 j, 2 j, 8, 10 b) El servo compensador seguidor tipo 1 para ubicar la posición del carro x1 dentro de cualquier punto personalizado entre el intervalo 3,3 Nota: Utilizar también como señal de prueba un generador de señales de onda cuadrada con amplitud 1 y una frecuencia de 0.1 Hz c) Un observador de orden completo para utilizarlo en el problema del regulador en el inciso (a). Considere los polos del observador en: rdo 2.5, 2.5, 9, 10 d) El servo compensador seguidor tipo 1 del problema (b) utilizando el observador de orden completo calculado en el inciso (c) e) El esquema de seguidor tipo 1 con el estado aumentado y observador de estado. Proponer el valor propio adicional en 12 y recalcular las ganancias de retro de estado. Finalmente, utilice el archivo “PenduloInvertido.slx” junto con el archivo “PenduloInvertido.WRL” para implementar los algoritmos de cada inciso en el modelo no lineal original. Compare las diferencias entre la solución aplicada al sistema linealizado y al sistema no lineal. ¿Existe alguna diferencia?; ¿En qué casos son similares los resultados y cuáles difieren? Agregar sus conclusiones al final, haciendo referencia a los resultados obtenidos. M. en C. Rubén Velázquez Cuevas 4 Instituto Politécnico Nacional RESULTADOS OBTENIDOS Abriendo el archivo “PenduloInvertido.slx” y simulando el sistema no lineal sin compensar con las condiciones iniciales descritas en el inciso (a), se observan las gráficas de la figura 2.2. Figura 2.2. Gráficas de respuesta del péndulo (no lineal) sin compensar. M. en C. Rubén Velázquez Cuevas 5 Instituto Politécnico Nacional Desarrollo: Se realiza una sustitución de valores: 𝑥̇ 1 0 0 𝑥̇ [ 2] = [ 𝑥̇ 3 0 0 𝑥̇ 4 a23 1 0 0 0 m2 2 g mg ; a43 I J m 0 𝑎23 0 𝑎43 2 0 𝑥1 0 𝑥 𝑦1 0 𝑏 2 1 0 ] [𝑥 ] + [ 21 ] 𝑢 ; [𝑦 ] = [ 1 0 2 0 0 3 𝑥 0 𝑏41 4 J m m3 3 g b ; 23 I J m 2I M = mc 2 ; b23 𝑥1 𝑥 0 0 2 0 ][ ] + [ ]𝑢 1 0 𝑥3 0 𝑥4 m ; I Jm J m I 2 M m = mp mc=0.48; mp=0.16;g=9.81;l=0.5;J=0.0333; I=J*mp+(J+mp*l^2)*mc; a23=-(mp^2*l^2*g)/I; a43=((mp*g*l)/(J+mp*l^2))+((mp^3*l^3*g)/((J+mp*l^2)*I)); b21=(J+mp*l^2)/I; b41=-(mp*l)/I; A=[0 1 0 0;0 0 a23 0;0 0 0 1;0 0 a43 0]; B=[0 b21 0 b41]'; C=[1 0 0 0;0 0 1 0]; C1=[1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]; D=[0 0]'; El espacio de estados seria: 1 0 0 𝑥1 0 0 −1.5498 0 𝑥2 1.8093 ] [𝑥 ] + [ ]𝑢 0 0 1 0 3 0 12.3981 0 𝑥4 −1.9747 𝑥1 𝑦1 1 0 0 0 𝑥2 0 [𝑦 ] = [ ] [𝑥 ] + [ ] 𝑢 0 0 1 0 3 0 2 𝑥4 𝑥̇ 1 0 𝑥̇ 0 [ 2] = [ 𝑥̇ 3 0 𝑥̇ 4 0 M. en C. Rubén Velázquez Cuevas 6 Instituto Politécnico Nacional a) El compensador regulador por retro de estados, para mantener el péndulo en su posición T vertical cuando las condiciones iniciales no nulas son x0 x(0) 0 0 0.15 0 ; si los eigenvalores deseados de lazo cerrado son: rdc 2 j, 2 j, 8, 10 La matriz de controlabilidad se obtiene de la siguiente formula: 𝑀𝑐 = [𝐵 𝐴𝐵 𝐴2 𝐵 𝐴3 𝐵 ] Hacemos las operaciones necesarias 0 1 0 𝐴𝐵 = [0 0 −1.55 0 0 0 0 0 12.4 0 𝐴2 𝐵 = [0 0 0 0 𝐴3 𝐵 = [0 0 0 0 0 0] [ 1.809 ] 0 1 0 −1.975 2 1 0 0 0 0 −1.55 0] [ 1.809 ] 0 0 0 1 −1.975 0 12.4 0 0 𝐴2 𝐵 = [0 0 0 0 𝐴2 𝐵 = [ 3.06 ] 0 −24.482 3 1 0 0 0 0 0 −1.55 0] [ 1.809 ] 𝐴3 𝐵 = [0 0 0 0 0 1 −1.975 0 0 12.4 0 3.06 0 𝐴3 𝐵 = [ ] −24.482 0 1.809 AB= [ 0 ] −1.974 0 1 0 0 0 1 0 0 0 0 1.549 0 0 −1.5498] [ 1.809 ] 0 12.398 0 0 12.398 −1.975 0 0 −1.549 −19.214 0 ] [ 1.809 ] 0 0 12.3981 153.713 0 −1.975 Nos queda 0 𝑀𝑐 = [ 1.809 0 −1.975 1.809 0 3.06 0 3.06 0 ] −1.974 0 −24.482 0 −24.482 0 El rango de la matriz nos de R=4 por lo que la matric 𝑀𝑐 es controlable. Ahora los cálculos de la matriz de retro de estados K. Polinomio característico obtenido 𝑝𝑜 = 𝑠 4 − 12.3984𝑠 2 Polinomio característico deseado 𝑝𝑑 = 𝑠 4 + 22𝑠 3 + 157𝑠 2 + 410𝑠 + 400 Para obtener Kc usamos : 𝐾𝑐 = [(𝛼4 − 𝑎4 ) (𝛼3 − 𝑎3 ) (𝛼2 − 𝑎2 ) (𝛼1 − 𝑎1 )] 𝐾𝑐 = [(400 − 0) (410 − 0) (157 − (−12.398)) (22 − 0)] 𝐾𝑐 = [400 410 169.398 22] M. en C. Rubén Velázquez Cuevas 7 Instituto Politécnico Nacional Ya que la matriz A no está en forma canónica controlable procede a la matriz de transformación Tc que se obtiene de la siguiente manera 𝑇𝑐 = 𝑀𝑐 ∗ 𝑃 Ya témenos Mc solo nos falta obtener P que se obtiene de la siguiente forma 𝑎3 𝑎2 𝑎1 1 𝑎 𝑎1 1 0 𝑃=[ 2 ] 𝑎1 1 0 0 1 0 0 0 Sustituimos los valores con los del polinomio obtenido 0 −12.39 0 1 −12.39 0 1 0] 𝑃=[ 0 1 0 0 1 0 0 0 Ahoras si calculamos Tc 0 1.809 0 3.06 0 −12.39 1.809 0 3.06 0 −12.39 0 𝑇𝑐 = [ ]∗[ 0 −1.974 0 −24.482 0 1 −1.975 0 −24.482 0 1 0 −19.372 0 1.809 0 0 −19.372 0 1.809 ] 𝑇𝑐 = [ 0 0 −1.974 0 0 0 0 −1.974 0 1 0 0 1 0] 0 0 Obtenemos la martiz de ganancia por retroalimentación de estado para nuestro sistema inicial 𝐾 = 𝐾𝑐 ∗ 𝑇𝑐 −1 𝐾 = [400 𝐾 = [400 410 410 169.398 169.398 −19.372 0 22] ∗ [ 0 0 −0.051 0 22] ∗ [ 0 0 −1 0 1.809 0 −19.372 0 1.809 ] 0 −1.974 0 0 0 −1.974 −1 −0.047 0 0 0 −0.047] −0.051 0 −0.051 0 0 0 −0.051 𝐾 = [−20.648 −21.164 −104.702 −30.532] Hacemos la comprobación por el método de Akerman: 𝐾 = [0 0 0 1][𝑀𝑐]−1 𝑃𝑑(𝐴) Nos queda lo siguiente: 𝐾1 = [−20.6483 −21.1645 −104.7022 −30.5328] Al código se le agrego lo siguiente: rdc= [-2+j -2-j -8 -10]; disp("Matriz de controlabilidad completa"); Mc=ctrb(A, B) rank (Mc) disp ("Mc es completamente controlable") po=poly(A) M. en C. Rubén Velázquez Cuevas 8 Instituto Politécnico Nacional pd=poly(rdc) Kc=[pd(5)-po(5) pd(4)-po(4) pd(3)-po(3) pd(2)-po(2)] P=[po(4) po(3) po(2) 1;po(3) po(2) 1 0;po(2) 1 0 0;1 0 0 0] Tc=Mc*P K=Kc*inv(Tc) disp("Ackerman") K1=acker(A,B,rdc) X0=[0 0 0.15 0]' Podemos observar que las dos matrices son iguales y podemos realizar el compensador regulador, donde se tiene: 𝑢(𝑡) = −𝐾𝑥(𝑡) Hacemos el diagrama del compensador regulador en simulink. Obtenemos las siguientes graficas M. en C. Rubén Velázquez Cuevas 9 Instituto Politécnico Nacional La simulación del péndulo queda de la siguiente manera M. en C. Rubén Velázquez Cuevas 10 Instituto Politécnico Nacional b) El servo compensador seguidor tipo 1 para ubicar la posición del carro x1 dentro de cualquier punto personalizado entre el intervalo 3,3 Nota: Utilizar también como señal de prueba un generador de señales de onda cuadrada con amplitud 1 y una frecuencia de 0.1 Hz Siguiendo el diagrama que se mostro en la figura dos el cual es el siguiente M. en C. Rubén Velázquez Cuevas 11 Instituto Politécnico Nacional Y sabemos que el orden es 4 el comportamiento se vería descrito como: 𝑥1 𝑥2 𝑢 = −[𝑘1 𝑘2 𝑘3 𝑘4 ] [𝑥 ] + 𝑘1 𝑟 3 𝑥4 Nos piden que los intervalos sean de [3.3] y r es la señal que se debe seguir, podemos proponer valores El compensador seguidor que deseamos conocemos el siguiente diagrama Podemos hacer las modificaciones en simulink y nos quedaría el siguiente diagrama M. en C. Rubén Velázquez Cuevas 12 Instituto Politécnico Nacional para el valor de 1.5 obtenemos M. en C. Rubén Velázquez Cuevas 13 Instituto Politécnico Nacional Para el valor de -1 tenemos Para el valor de 3 M. en C. Rubén Velázquez Cuevas 14 Instituto Politécnico Nacional Para el caso de la señal cuadrada tenemos la siguientes graficas M. en C. Rubén Velázquez Cuevas 15 Instituto Politécnico Nacional c) Un observador de orden completo para utilizarlo en el problema del regulador en el inciso (a). Considere los polos del observador en: rdo 2.5, 2.5, 9, 10 Calculo de matriz de Observabilidad Para poder construir el observador de orden completo, se obtuvo la Matriz de Observabilidad por medio del comando obsv(A,C(1,:)) El sistema es de estado completamente controlable y observable, la ley de control está definida mediante 𝑢(𝑡) = −𝐾𝑥̃(𝑡) Siendo 𝑥̃ la señal esperada. Por lo tanto, el diagrama del compensador con observador de estados es M. en C. Rubén Velázquez Cuevas 16 Instituto Politécnico Nacional M. en C. Rubén Velázquez Cuevas 17 Instituto Politécnico Nacional Código Utilizado %% Observabilidad % Eigenvalores deseados de lazo cerrado rdo=[-2.5 -2.5 -9 -10]; disp("Matriz de Observabilidad completa"); Mo=obsv(A,C) rank(Mo) Mo1=obsv(A,C(1,:)) rank(Mo1) disp("Mo1 es completamente observable") Mo2=obsv(A,C(2,:)) rank(Mo2) %% Observador de orden completo % Calculo de Keo pe=poly(rdo) %Polinomio Keo = [r4-a4; r3-a3; r2-a2; r1-a1]' % Matriz de Transformación To=(P*Mo1)^-1 Ke=To.*Keo %Comprobamos con Ackerman Ke1=acker(A',C(1,:)',rdo)' M. en C. Rubén Velázquez Cuevas 18 Instituto Politécnico Nacional D)El servo compensador seguidor tipo 1 del problema (b) utilizando el observador de orden completo calculado en el inciso (c) Nuestro sistema es completamente controlable en el inciso b) y completamente observable en el inciso c), por lo tanto, tenemos el siguiente esquema de control: 𝑢(𝑡) = −𝐾𝑥̃ + 𝑘1 𝑟(𝑡) Se utilizan las matrices obtenidas en ambos incisos (b y c) lo único que cambia es el esquema de control M. en C. Rubén Velázquez Cuevas 19 Instituto Politécnico Nacional Como se trata de un compensador ocupamos los mismos valores del inciso B para graficar PARA R1= -2.8 PARA R2= -1.2 M. en C. Rubén Velázquez Cuevas 20 Instituto Politécnico Nacional PARA R3= 2 CASO 4 R = GENERADOR DE SEÑALES: M. en C. Rubén Velázquez Cuevas 21 Instituto Politécnico Nacional E) El esquema de seguidor tipo 1 con el estado aumentado y observador de estado. Proponer el valor propio adicional en 12 y recalcular las ganancias de retro de estado. Sistema que tenemos 1 0 0 𝑥1 0 𝑥 0 −1.5498 0 1.8093 2 ] [𝑥 ] + [ ]𝑢 0 0 1 0 3 0 12.3981 0 𝑥4 −1.9747 𝑥1 𝑦1 1 0 0 0 𝑥2 0 [𝑦 ] = [ ] [𝑥 ] + [ ] 𝑢 2 0 0 1 0 3 0 𝑥4 𝑥̇ 1 0 𝑥̇ 0 [ 2] = [ 𝑥̇ 3 0 𝑥̇ 4 0 0 0 𝐴= [ 0 0 1 0 0 −1.5498 0 0 0 12.3981 0 0 0 1.8093 1 0 ] 𝐵=[ ]𝐶= [ 1 0 0 0 0 −1.9747 0 0 0 ] 𝐷=[ ] 1 0 0 Se agrega el control 𝑟𝑑𝑐 = {−2 + 𝑗, −2 − 𝑗, −8, −10, −12} Por lo tanto, debemos aumentar A y B de la siguiente manera 𝐶1 = [1 0 0 0] 𝐶2 = [0 0 1 0] Al tener una se de esa forma la separamos 𝐴 𝐴̂1 = [ −𝐶1 0 ] 0 𝐴 𝐴̂2 = [ −𝐶2 0 ̂ 𝐵 ] 𝐵=[ ] 0 0 ̂ = [𝐾 | − 𝑘𝐼 ] 𝐾 M. en C. Rubén Velázquez Cuevas 22 Instituto Politécnico Nacional ̂ Para calcular 𝐾 Donde tenemos al principio 𝑥̇ (𝑡) = (𝐴 − 𝐵𝐾)𝑥(𝑡) = (𝐴̂)𝑥(𝑡) Donde K es la matriz de ganancia de retro de estados 𝐾 = [𝐾1 𝐾2 𝐾3 … 𝐾𝑛 ] Para calcularla compensador para los valores deseados 𝜇{−2 + 𝑗, −2 − 𝑗. −8, −10 , −12} La matriz de retro de estados aumentados por formula de Ackerman ̂ 𝐾 −1 = [0 … 0 1] ∗ [𝑀𝑐 ] ∗ 𝑃𝑑(𝐴) = [𝐾1 𝐾2 𝐾3 … 𝐾𝑛 | − 𝐾𝐼 ] Obtenemos el polinomio deseado 𝑃𝑑 = det(𝑠𝐼 − 𝐴 + 𝐵𝐾) = (𝑠 − 𝜇1 )(𝑠 − 𝜇2 ). . (𝑠 − 𝜇𝑛 ) 𝑃𝑑 = (𝑠 − (−2 + 𝑗)) ∗ (𝑠 − (−2 − 𝑗)) ∗ (𝑠 − (−8)) ∗ (𝑠 − (−10)) ∗ (𝑠 − (−12)) 𝑃𝑑 = (𝑠 + 2 − 𝑗) ∗ (𝑠 + 2 + 𝑗) ∗ (𝑠 + 8) ∗ (𝑠 + 10) ∗ (𝑠 + 12) 𝑃𝑑 = s 5 + 34𝑠 4 + 421𝑠 3 + 2294𝑠 2 + 5320𝑠 + 4800 Para matriz de controlabilidad tenemos Obtenemos las matrices de controlabilidad para 𝐴̂1 y 𝐴̂2 𝑟𝑎𝑛𝑘 = 5 𝑟𝑎𝑛𝑘 = 4 M. en C. Rubén Velázquez Cuevas 23 Instituto Politécnico Nacional Por esto utilizaremos la MC1 ya que es completamente controlable Matriz de controlabilidad inversa es La matriz de retro de estados general por formula de Ackerman ̂ )5 + 34(𝐴 ̂ )4 + 421(𝐴 ̂ )3 + 2294(𝐴 ̂ )2 + 5320(𝐴 ̂ ) + 4800 ∗ 𝐼 𝑃𝑑(𝐴) = (𝐴 1 1 1 1 1 ̂ = [−274.6226 − 141.5606 − 471.0958 − 146.9225 247.7798 ] 𝐾 Donde 𝐾 = [−274.6226 − 141.5606 − 471.0958 − 146.9225] 𝐾𝐼 = −247.7798 Se utilizó el siguiente código de programación: disp('Practica') m = 0.16 M = 0.48 g = 9.81 l = 0.5 J = 0.0333 I = a23 a43 b21 b41 J*m+(J+m*(l^2))*M = -((m^2)*(l^2)*g)/I = ((m*g*l)/(J+m*(l^2)))+(((m^3)*(l^3)*g)/((J+m*(l^2))*I)) = (J+(m*l^2))/(I) = -(m*l)/(I) disp('Espacio de estados') A = [0 1 0 0; 0 0 a23 0; 0 0 0 1; 0 0 a43 0] M. en C. Rubén Velázquez Cuevas 24 Instituto Politécnico Nacional B = [0 b21 0 b41]' C = [1 0 0 0; 0 0 1 0] D = [0 0]' disp('Para inciso A)') disp('Polinomio Deseado') Vd = [-2+j -2-j -8 -10] syms s Pd = expand((s-(-2+j)) * (s-(-2-j)) * (s-(-8)) * (s-(-10))) disp('Matriz de controlabilidad') Mc = ctrb(A,B) Rango = rank(Mc) disp('Matriz de retro de estados') PdA = A^4 + 22*(A^3) + 157*(A^2) + 410*(A) + 400*eye(4) K = [0 0 0 1]*(inv(Mc))*(PdA) disp('A aumentada') Au = A-B*K OBSERVACIONES: Podemos observar que, si no se colocan bien los datos en el diagrama la simulación porque si no las gráficas no quedarían de manera correcta, así como si no equivocamos en los cálculos entonces todo estaría mal todo lo que se hizo. ya habiendo mencionado esos puntos lo demás normal en cuestión de la resolución de las actividades propuestas en la práctica. CONCLUSIONES: En esta práctica usamos el Matlab junto con el simulink para poder poner en práctica los temas vistos, observando cómo se comparta un diagrama de bloques, usando todo lo visto en este parcial. fue una tarea complicada y extensa sin embargo el equipo hizo todo lo posible para poder realizarla de manera correcta. CRITERIOS DE EVALUACIÓN: Reporte escrito (40%): Simulaciones (60%): Homogeneidad y planteamiento del problema (1 punto): Código y/o diagramas de bloques generados (3 puntos): M. en C. Rubén Velázquez Cuevas 25 Presentación de resultados (3 puntos): Soluciones correctas (3 puntos): Instituto Politécnico Nacional