Control Automático Introducción En este manual se pretende que el profesor del curso de control automático conozca las posibilidades que le puede entregar tanto a él como al alumno el tener una herramienta de cálculo tan poderosa como es una calculadora Texas Instrument. La idea básica de esta propuesta es dar a conocer como los tópicos básicos de control automático pueden ser abordados desde una perspectiva distinta a la que se ha llevado a cabo tradicionalmente, al presentar a forma de manual la forma en que tanto el alumno como el profesor se pueden desatender de lo complicado de los cálculos matemáticos para poder enfocarse a los resultados y lo más importante al análisis de estos. Las calculadora Texas Instruments de última generación permiten a los estudiantes analizar como varían los resultados al variar parámetros en el problema principal, y así darse cuenta de cómo en realidad funciona el sistema y poder darle una solución más optima al problema, evitando quedarse con la primera alternativa debido a lo complejo y engorroso que resulta llegar a una solución. Este manual asume que se tiene al menos algún conocimiento básico del uso de las calculadoras TI, aunque trata de ser lo más explicativo posible sin caer en la redundancia. Cualquier duda sobre el uso de algún comando puede ser consultado en el manual de las calculadoras. Presenta la materia que se revisa en un curso de control automático estructurada en 6 capítulos a base de ejemplos. Se trata de aprovechar las capacidades de cálculo de la calculadora así como de la programación de esta. De esta forma el manual explica los comandos necesarios para resolver algunos tipos de problemas y también se basa en el uso de 2 programas. El primero es la colección de programas y funciones de control automático guardados en la carpeta Control y desarrollados por el alumno de Ingeniería Civil Electrónica Oscar Gaete Jamett. El segundo es el programa Automatic Control Systems Toolbox v3.0 (ACST) desarrollado por el grupo 92brothers. En el transcurso de este manual se explica como utilizar algunos de los comandos de ambos programas para la resolución de problemas. Además se incluye en el Apéndice A el manual del programa ACST donde se presentan más ejemplos. También se recomienda el uso del programa Control System Toolbox v1.2.3 cuyo manual se incluye en el Apéndice B. Capítulo I: Efectos de la realimentación. Básicamente en este capítulo se puede aprovechar la capacidad de la calculadora para calcular límites y resolver ecuaciones al mismo tiempo con el objeto de ahorrar tiempo de cálculo. Ejemplo#1 Un sistema con función de transferencia se realimenta de forma unitaria y negativa y se controla con un PI. Determine los coeficientes del PI para que el error de estado estacionario a una rampa de referencia sea 10 y que la magnitud de las partes imaginarias de las raices complejas de la ecuación característica del sistema sea de 15 rad/s. Encuentre las raices de la ecuación característica. En la calculadora: 1. Se define G(s) 2. Se define PI 3. Se calcula la ganacia de lazo 4. Se calcula la constante de error de estado estacionario "Kv" 5. Se obtiene el valor de Ki 6. Se redefine la ganancia de lazo con el valor encontrado de Ki 7. Se calcula la ecuación característica del sistema en función de la constante de proporsionalidad del PI. 8. Se determina cual es la ecuación característica que debe tener el sistema si sus raices tienen parte imaginaria con magnitud de 15 rad/s 9. Se igualan los coeficientes y se resuelve el sistema de ecuaciones. Como se puede observar la gran ventaja de ocupar la calculadora es que el cálculo del sistema de ecuaciones no lineales se simplifica y le permite al alumno variar los parámetros del problema y ver como cambian los valores de las constantes del controlador, ocupando las entradas y respuestas anteriores del stack de la calculadora. Consulte el apéndice para más información del uso de los comandos de la calculadora. Capítulo II: Análisis en la frecuencia En este tema es especialmente útil el apoyo de la calculadora pues le otorga al alumno una serie de poderosas herramientas para el análisis en frecuencia de sistemas de control. Además de la posibilidad de disminuir el tiempo de cálculo, la calculadora ofrece programas que facilitan la construcción y el análisis de sistemas de control, por medio de Diagramas de Bode, Nyquist, Nichols, LGR, y programas para el cálculo de márgenes y compensadores. A. Cálculo de márgenes de fase y ganancia y de frecuencias de cruce. Ejemplo#2.1 Determine los márgenes de fase y ganacia del sistema En la calculadora: 1. Definir Gl(s ) y calcular Gl(w) 2. Obtener la frecuencia de cruce de ganancia mediante la ecuación Primero se obtiene la magnitud de Gl(w) Ahora se plantea y se resuelve la ecuación 3. Obtener la frecuencia de cruce de fase mediante la ecuación Del mismo modo que en el punto anterior 4. Calcular el margen de fase mediante la ecuación Observación: Se cambió el modo Angle a Degree para que el resultado se entrege en grados 5. Calcular el margen de ganancia mediante la ecuación Como se puede observar lo mecánico del procedimiento hace que el algoritmo para calcular los márgenes se pueda programar sin mucha dificultad. A continuación se presenta una alternativa más rápida para el cálculo de este tipo de ejercicios. Ejemplo#2.2 Determine los márgenes de fase y ganacia del sistema En la calculadora: Para usar el Programa que calcula márgenes de fase y ganancia es necesario tener la carpeta de Control y el programa mrgn() Para usar el menú es necesario contar con el archivo menu() en la carpeta de Control. Para usar el menú de control y todos los programas de esa carpeta es necesario poner la calculadora en modo Control. Una vez hecho esto se escribe en la calculadora menu() y se activa apretando 2nd+3 (custom) En la Calculadora: 1. Se define Gl(s) 2. Se calculan los márgenes con el programa (en el menú está en F2). El formato de mrgn() es mrgn(Gl,var) donde Gl es la función de transferencia de ganancia de lazo y "var" es la variable de la función de transferencia. Si Gl esta en función de "s" la "var" debe ser "s". Ejemplo#2.3 El sistema es realimentado negativa y unitariamente y se controla con un PD. Obtenga los coeficientes del controlador para que el error de estado estable ante una parábola de referencia sea de 0.1 y para que el margen de fase sea de 40º En la calculadora: 1. Se define G(s) y el PD 2. Se calcula la ganancia de lazo 3. Se calcula K para la condición de error de estado estable. 4. Se redefine la ganancia de lazo con el valor encontrado de K 5. Se obtiene Gl(w) 6. Se obtiene la primera ecuación a partir de MΦ = 40Ί 7. Se obtiene la segunda ecuación a partir de la condición 8. Se resuelve el sistema de ecuaciones. El uso de la calculadora para resolver este tipo de ejercicios es especialmente recomendable pues el ahorro de tiempo en el cálculo de sistemas de ecuaciones no lineales es considerable. B. Construcción de gráficas y uso del programa Automatic control system toolkit (acst). Para ocupar este programa es necesario que la calculadora se encuentre en la carpeta acst. Y para iniciar el programa se debe escribir en la línea de comando acst(). La pantalla de presentación es la siguiente. Y la línea de comando del programa es: El programa tiene una interfaz y una forma de ejecutar los comandos de una forma muy similar a MatLab. Ejemplo#2.4 Diagrama de Bode El diagrama de Bode es un importante instrumento para el análisis de lazos de control. Mediante el programa acst es posible construir los diagramas y obtener información de estos mediante la herramienta get point Trace el diagrama de bode de banda, y su margen de fase aproximado. y obtenga su ancho de En la calculadora: 1. Definir el sistema. 2. Trazar el diagrama de bode de magnitud con alta resolución. 3. Obtener el ancho de banda y la frecuencia de cruce de ganancia con ayuda del comando get point. 4. Trazar el diagrama de bode de fase con máxima resolución. 5. Encontrar el punto de frecuencia w ≈32.6rad/s 6. El margen de fase es 180º menos el resultado anterior. O sea ≈18º Ejemplo#2.5 Lugar geométrico de raíces Por lo general el dibujar el lugar geométrico de raíces resulta ser una tarea larga y llena de numerosos cálculos. Sin embargo la utilidad de este diagrama es muy importante pues la información que se puede obtener de él permite un análisis muy completo del comportamiento de un sistema al variar un parámetro de ganacia. En la calculadora se pueden usar básicamente 2 programas. Para obtener datos del LGR se ocupa el programa lgr() y lgr2() de la carpeta de control. Para trazar el LGR se ocupa el programa ACST Determine el Lugar de Raíces del sistema que tiene la siguiente función de transferencia de lazo abierto. En la calculadora: 1. Definir las listas con ceros y polos de la función de tranferencia. 2. Ocupar el lgr2() para obtener información del lugar de raíces 3. Dibujar el lugar de raíces en ACST Primero hay que definir la función a analizar y ocupar el comando rlocus() El formato de este comando es rlocus(Gl,{ki,kf}) donde Gl es el sistema a analizar, y {ki,kf} es el rango de ganancia que se analiza. Luego el programa pide el número de puntos que se dibujarán. Como para este ejemplo se eligieron 10 puntos cada punto es una variación de K de uno en uno. Ejemplo#2.6 Construya el diagrama de Nyquist y de Nichols del sistema anterior. El programa ACST guarda en la memoria de la calculadora los sistemas, por lo que pueden ser usados una y otra vez. En la calculadora: 1. Se ocupa el comando nyquist(gl) para contruir el diagrama de nyquist. Una vez hecho esto se puede rescatar importante información con el comando trace. 2. Se ocupa el comando nichols(gl) para construir el diagrama de nichols. Una vez hecho esto se puede obtener información de este con el comando getpoint. 3. Diseño de compensadores. En el diseño de compensadores, tanto de adelanto como de atraso, es necesario calcular una serie de parámetros como son el margen de fase sin compensar, la ganancia del compensador la nueva frecuencia de cruce de ganancia y la constante de tiempo del compensador. Además es necesario recalcular el margen de fase para comprobar que el compensador es el adecuado. Aún así generalmente a veces se necesita recalcular los parámetros para obtener respuestas más satisfactorias. Todo lo anterior ya ha sido programado en la calculadora en la carpeta Control y en los archivos cmprvrs() y cmpfwrd(). Ejemplo#2.7 Diseñe un compensador para que el margen de fase del sistema sea de a lo menos 30º con una tolerancia de no más del 10% En la calculadora: Primero se probará el diseño por adelanto con una tolerancia del 5% 1. Definir el sistema Ocupar el programa cmpfwrd() para calcular el compensador. La sintaxis del programa es la siguiente: cmpfrwrd(g,s,mΦ,tl) donde g es la ganancia d lazo abierto del sistema realimentado,s es la variable, mΦ es el margende fase deseado y tl es la tolerancia. Como podemos observar la ganancia del compensador es muy grande y no se ha podido conseguir el margen de fase deseado por lo tanto se opta por diseñar el compensador por atraso con una tolerancia del 5%. La sintaxis de cmprvrs() es la misma que la de cmpfwrd(). 2. Se ocupa el programa cmprvrs con una tolerancia del 5% De nuevo podemos observar que el compensador no logra alcanzar el margen de fase deseado por lo que aumentamos la tolerancia al 7% y volvemos a repetir el proceso. 3. Se ocupa el programa cmprvrs con una tolerancia del 7% El margen de fase deseado se ha alcanzado. La función de transferencia del compensador queda guardada para un futuro uso en la variable Gc Los comandos que quedan en el stack de la calculadora son los siguientes. Como es posible apreciar el tiempo ahorrado al hacer los cálculos en un programa de la calculadora es importante. De esta forma se le permite al alumno variar los parámetros del problema e investigar cuales son las consecuencias de ello y tomar una mejor decisión a la hora del diseño. Capítulo III: Realimentación del Estado En este capítulo se revisarán las técnicas de realimentación del estado. Poleplacement, Observadores, Control Robusto y LQR serán tratados con el uso de la calculadora. Las herramientas de manejo de matrices y de resolución de sistema de ecuaciones lineales y no lineales son en las que se basa este capítulo. Además el uso de algunos programas y funciones de la carpeta Control serán utilizados. Ejemplo#3.1 Sea el sistema completamente controlable y observable: Realimente el estado negativamente para que los autovalores del sistema queden en 1. En la calculadora: 1. Primero deben ser definidas las matrices A, B y C y guardadas en variables a, b y c respectivamente para un uso más eficiente. 2. Ocupamos el programa poleplcm() que se encuentra en la carpeta de Control. La sintaxis del programa es poleplcm(a,b,i,dn) donde a y b son las matrices que supuestamente ya deberían estar guardadas, "i" es la dimensión del sistema y "dn" es el denominador de la ecuación característica que se desea que debe estar en función del carácter λ. El resultado de esta función se guarda en la variable poleequ que es el sistema de ecuaciones que se debe resolver para encontrar la matriz de realimentación. 3. Resolvemos el sistema de ecuaciones ocupando las variable que son creadas en la lista con nombre kk Observación: el programa solo funciona para una dimensión máxima de 6. Ejemplo#3.2 Para el sistema del ejemplo#3.1 diseñe un observador que tenga sus polos en -2 En la calculadora: 1. El sistema ya está definido y guardado en las variable a, b y c, por lo que solo es necesario ocupar el programa observ() que tiene el mismo formato que poleplcm() 2. Resolvemos el sistema de ecuaciones ocupando las variable que son creadas en la lista con nombre gg Al igual que el programa poleplcm() la dimensión máxima del problema debe ser 6. Ejemplo#3.3 Para el sistema: Determine la realimentación del estado para que la función sea mínima. Determine los autovalores del sistema realimentado. De la función J podemos obtener las matrices Q y R En la calculadora: 1. Definir las matrices A,B y C en las variables a ,b y c respectivamente 2. Definir la matriz Q y guardarla en la variable q y definir la matriz R y guardarla en la variable r de la calculadora. 3. Definir la matriz incógnita M y guardarla en la variable m. 4. Ocupar el programa ricatti() para definir el sistema de ecuaciones que genera la ecuación de ricatti. El formato es ricatti(m,i) donde"m" es la matriz de incógnitas e "i" es la dimensión del problema. 5. Resolver el sistema de ecuaciones, elegir la solución indicada y reemplazarla en la matriz de incógnitas "m": 6. donde la línea de comando. . Escribiendo la fórmula para obtener K en Para obtener los autovalores solamente hay que obtener la matriz Ac = A – B·K y ocupar el comando eigvls() sobre esta matriz. Ejemplo#3.4 Para el sistema: Con w(t) є L 0<t<1 obtenga la realimentación del estado u(t) = -k·x(t) tal que la transferencia entre w(t) y el vector tenga norma infinita menor a 0.5 En la calculadora: 1. Aplicar la ecuación para "disturbance rejection". La ecuación es: pero ya está programada en la calculadora en la carpeta Control en la función distrej(). El formato es distrej(m,γ,i) donde m es la matriz de incσgnita, γ es la norma infinita mαxima de la transferencia e"i" es la dimensión del problema. Antes de aplicar la ecuación es necesario definir G y luego aplicar la ecuación. Las matrices A,B y C ya están definidas en la calculadora del problema anterior. 2. Resolver el sistema de ecuaciones, elegir la solución indicada y reemplazarla en la matriz de incógnitas "m" 3. donde línea de comando. . Escribiendo la fórmula para obtener K en la Capítulo IV: Análisis en el dominio del tiempo En este capítulo se tratará el análisis de sistemas de control en el dominio del tiempo, especialmente con cuantificadores de calidad como son el sobretiro, el tiempo de acomodo, el tiempo de subida, el error de estado estacionario, etc. Para el análisis en la calculadora se ocuparán 3 herramientas de trabajo. El programa Laplace, el programa ACST y la capacidad gráfica de la calculadora. Ejemplo#4.1 Se tiene el sistema: la salida es realimentada negativamente y el sistema es controlado por un controlador proporcional de valor 5. a. Con la ecuación que describe la forma de onda de la salida ante una entrada escalón de amplitud 1 del sistema controlado, determine sobretiro y tiempo de subida. b. Grafique la forma de onda de salida y compruebe los resultados del punto anterior de forma gráfica. Obtenga el tiempo de acomodo. Desarrollo de la pregunta a) 1. Definir las matrices que describen el problema y por medio de la fórmula C(sIa)-1B obtengo la función de transferencia. 2. Aplicando álgebra de bloques y considerando el controlador proporcional se determina la función de transferencia entre la referencia y la salida. 3. Multiplicar por el escalón 4. Poner en la carpeta de Laplace a la calculadora y ejecutar el menú de Laplace escribiendo menu() en la línea de comando. 5. Para obtener la forma de onda en el tiempo de la salida del sistema realimentado se debe hacer la transformada inversa de Laplace a la expresión anterior. Para ocupar este programa es necesario tener el modo de grados en "radianes" 6. Para calcular el tiempo de subida y el sobretiro primero debemos saber el valor de estado estacionario. Simplemente aplicamos la función limit() para saber el valor final de la salida. Se puede comprobar con el teorema del valor final. 7. Para determinar el sobretiro aplicamos la función fmax() de la calculadora y evaluamos la forma de onda para ver cual es el valor máximo de la salida. De acuerdo a este valor obtenemos el sobretiro. 8. Resolvemos la ecuación y(t1)=0.1*yss y y(t2)=0.9*yss. Al obtener los valores de las incognitas en las ecuaciones, el tiempo de subida se calcula como t2-t1. Desarrollo de la pregunta b) Para graficar en la calculadora se debe dejar la forma de onda de la salida en función de la variable "x" En la calculadora: 1. Dejar la salida en función de "x" 2. Graficar en el menú de la calculadora "Y=". Definir la salida en función de "x" como y1(x). Graficar utilizando el menú "zoom dec" 3. Hacer zoom box en la parte transitoria de la respuesta 4. Para calcular el sobretiro haciendo uso de la función Maximun del menú Math encontramos el máximo para calcular el sobretiro. 5. Haciendo trace a la curva podemos encontrar los puntos del 10% (0.083) y del 90% (0.75) del valor de estado estacionario para calcular el tiempo de subida. 6. Haciendo trace a la curva podemos encontrar el punto en que las oscilaciones de la salida no superan una amplitud del 2% del valor de estado estacionario (5/6±0.0166). Este es el valor del tiempo de acomodo Desarrollo de la pregunta c) En la calculadora y en el programa ACST: 1. Definir el sistema. 2. Ocupar el comando impulse para graficar el sistema hasta el segundo 5. Capítulo V: Sistemas no lineales En este capítulo se presentan algunos ejemplos de lo que puede ayudar la calculadora en este tipo de problemas. Aquí se puede aprovechar la capacidad de resolver sistemas de ecuaciones no lineales para poder encontrar los puntos críticos del sistema y poder obtener el jacobiano y poder evaluarlo en los puntos de equilibrio rápidamente. Ejemplo#5.1 Sea el sistema: Obtenga todos los puntos de equilibrio y además linealice en torno al origen y analice controlabilidad y observabilidad modo a modo. En la calculadora: 1. Definir f1 y f2 2. Para encontrar los puntos de equilibrio resuelva el sistema f1=0, f2=0. 3. Calcule el jacobiano 4. Evaluar el jacobiano en el origen para obtener el sistema linealizado 5. Ingresar las matrices A, B y C del sistema lineal a las variables a, b y c respectivamente. 6. Obtener la matriz de autovectores y guardarla en la variable tty ocupar las fórmulas de diagonalización en el menú de la carpeta Control. 7. Analizar controlabilidad y observabilidad. Como podemos observar no hay ningún elemento cero en las matrices B y C del sistema diagonalizado por lo que podemos concluir que el sistema en torno al origen es aparte de estable, completamente controlable y observable. Capítulo VI Norma de señales y sistemas En este capítulo se presenta un ejemplo de cómo la calculadora puede simplificar drásticamente el tiempo de cálculo, específicamente por las herramientas de cálculo como son las integrales y la función de maximización. Ejemplo#6.1 Al sistema ingresa la señal ¿Cuál será la norma 2 y la norma ∞ máximas esperadas de la señal de salida? En la calculadora: 1. Ocupar la fórmula para calcular la norma 2 de la señal de entrada. 2. Ocupar la fórmula sistema. para calcular la norma 2 del 3. Ocupar la fórmula para calcular la norma infinito del sistema. 4. Calcular las normas esperadas de la señal de salida. Por lo tanto las normas 2 e infinitos de la señal de salida son