Universidad Simón Bolívar Dpto. de Procesos y Sistemas Sistemas de Control II PS-2316 Tarea 7 Diseño basados en Variables de Estado Formulación optima Integrantes del grupo: Maricarmen Barber á Carnet # 00-32562 Luis Ferrer Carnet # 00-32778 Yasmina Mijares Carnet # 01-34154 Gustavo Izaguirre Carnet # 0133995 Trimestre: Septiembre – Diciembre 2006 Fecha: 12 de Noviembre de 2006 Evaluación de la tarea 6 Al revisar la resolución de la tarea 6, lo primero que observamos es que los polinomios de Butterworth y de Bessel fueron elegidos antes de introducir el integrador al sistema para el seguimiento perfecto de cambios estacionarios en la referencia. En nuestra opinión la elección de dichos polinomios debe hacerse luego de haberse introducido el integrador, lo que se traduce en el incremento del orden de los mismos, siendo de orden 4 en lugar de orden 3. La ecuación característica no corresponde al sistema original ya que le falta el término de mayor grado que debe ser agregado al escribir la ecuación característica a partir de la matriz A del sistema. Adicionalmente las ganancias fueron calculadas erróneamente ya que los coeficientes correspondientes a la ecuación característica y a los polinomios de Butterworth y Bessel fueron restados indebidamente, ya que, como se observa en los comandos de Matlab mostrados a continuación, se están sustrayendo los coeficientes de elementos de diferente orden, elementos de orden 0 con elementos de orden 2: EC=[26.8 65.58 1.141]; Ecuación Característica del sistema Bu=[1*(4/10)^3 2*(4/10)^2 2*(4/10)]; Butterworth con condición de tss Be=[150.5674/(10)^3 69.7993/(10)^2 12.9429/10]; de tss Bessel con condición K_hatBu=[EC(1) -Bu(1) EC(2)-Bu(2) EC(3) - Bu(3)]; estados con Butterworth, ganancias canónicas. Realimentación de K_hatBe=[EC(1) -Be(1) EC(2)-Be(2) EC(3) - Be(3)]; estados con Bessel, ganancias canónicas. Realimentación de En consecuencia el resto de los resultados obtenidos se ve afectado por estos errores. Resolución de la tarea 7 Partimos del sistema original definido por las siguientes matrices: s = tf(‘s’) A = [ 0 1 0 ; -65.2557 -0.6250 -37.3723 ; 0.5164] B = [ 0; 0; 0.1449 ] C = [ -0.9148 0 0.3984 ] Para obtener la función de transferencia original utilizamos los siguientes comandos: -0.1846 0 - del sistema sistema = ss(A,B,C,0) sistema = tf(sistema) Obteniéndose: Transfer function: 0.05773 s^2 + 0.03608 s + 8.721 -------------------------------s^3 + 1.141 s^2 + 65.58 s + 26.8 Insertamos el integrador a la función de transferencia del sistema, esto es: sist = sistema/s Al insertar el integrador se produce un cambio en matrices A, B, C; las nuevas matrices modificadas son: AA= [ 0 1 0 0; -65.2557 -0.6250 -37.3723 0 -0.5164 0 ; -0.9148 0 0.3984 0] BB = [ 0; 0; 0.1449 ;0 ] CC = [ 0 0 0 1 ] las 0; -0.1846 Una vez introducido el integrador, buscamos los polos del sistema para el método de control óptimo. Esto se hace mediante la elección de una ganancia k adecuada, ubicando los polos en un lugar conveniente del lugar de las raíces de 1+k*G(s)*G(-s), que satisfaga nuestros requerimientos de tiempo de respuesta (ts = 10 seg). Para trazar el lugar de las raíces de 1+k*G(s)*G(-s) se muestra a continuación los comandos en Matlab para la elaboración del mismo y para el cálculo de las funciones de transferencia G(s) y G(-s): Gs = tf(ss(AA,BB,CC,0)) GsNEG= (0.05773*s^2 - 0.03608*s + 8.721)/(s^4 - 1.141*s^3 + 65.58*s^2 - 26.8*s) Gtot=Gs*GsNEG rlocus(Gto t) El lugar de las raíces obtenido es el siguiente: Del lugar de las raíces de 1+k*G(s)*G(-s) se eligió la constante k= 1.5. Ya que como se mencionó anteriormente con esta ganancia se cumplen los requerimientos de tiempo de respuesta. Hacemos: k = 1.5 r = 1/k Q = CC'*CC Y para el cálculo de la matriz P, necesaria para el cálculo de la matriz Kopt, utilizamos el siguiente comando de Matlab que nos devuelve ambas matrices: [Kopt,P,E] = lqr(AA,BB,Q,r) Esta matriz Kopt será la utilizada tanto para el método por realimentación de estados como para el método del estimador de estados. Primer método: Realimentación de Estados: La respuesta del sistema a lazo cerrado por este método se obtiene mediante los comandos: Sistema_opt_RE = tf(ss((AA-BB*Kopt),BB*Kopt(4),CC,0)) step(Sistema_opt_RE) y la gráfica de la misma observada es la siguiente: Donde se observa que la respuesta del sistema cumple con los requerimientos exigidos al tener un tiempo de respuesta cercano a los 10 segundos y no se observa la existencia de picos indeseados. Segundo método: Estimador de Estado: Para elegir los polos del Estimador de estados tomamos el polinomio de Butterworth de cuarto orden, cuyo tiempo de respuesta es del orden de los 4 seg y en consecuencia es más rápido que nuestro sistema original cuyo tiempo de respuesta está en el orden de los 10 seg. Para definir esto en Matlab: Polinomio_Bu = [1 2.613 3.41372 2.6113 Lo que implica el siguiente de vector de polos: 1] Polos_est = roots(Polinomio_Bu) El cálculo del vector L es realizado a través del comando acker, esto es: L = acker(AA',CC',Polos_est)' En consecuencia, la función de controlador dinámico es la siguiente: transferencia del Controlador_din = tf(ss((AA-BB*Kopt -L*CC),L,Kopt,0)) Para pasar el integrador de la función de transferencia de la planta a la función de transferencia del controlador, eliminamos el polo originalmente incluido en la planta y lo colocamos en el controlador dinámico, obteniendo así el controlador del sistema, esto es: Planta = Gs*s Controlador = Controlador_din/s Finalmente la función de transferencia de lazo abierto de la planta y el controlador es: FT = Planta*Controlador Y finalmente, cerrando el lazo, obtenemos la respuesta del sistema: step(FT/(1+FT)) La gráfica observada para dicha respuesta es la siguiente: Como se observa por este segundo método la respuesta del sistema también cumple con el requerimiento de tiempo de respuesta cercano a los 10 segundos y con la condición de máximo pico menor al 10%