Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1 Introducción al control automático con MATLAB • Conocer uno de los programas para el análisis y diseño de sistemas de control automático más popular. • Operar de manera básica el programa para obtener funciones de transferencia y la respuesta en el tiempo de sistemas de control. • Simular sistemas de control automático con la herramienta SIMULINK de MATLAB. • 1 Computadora con MATLAB y SIMULINK instalado • 1 Archivo mason.m En años recientes, el análisis y diseño de sistemas de control han sido afectados dramáticamente por la proliferación del uso de las computadoras, especialmente de las computadoras personales. Estas se han hecho tan poderosas y avanzadas que pueden resolver problemas de sistemas de control con facilidad. Uno de los programas útiles en el campo del control automático es MATLAB. MATLAB puede considerarse como un lenguaje de programación, como Fortran o C, aunque sería difícil describirlo en unas cuantas palabras. He aquí algunas de sus características más notables: ➢ La programación es mucho más sencilla . ➢ Hay continuidad entre valores enteros, reales y complejos. ➢ La amplitud de intervalo y la exactitud de los números son mayores. ➢ Cuenta con una biblioteca matemática amplia . ➢ Abundantes herramientas gráficas, incluidas funciones de interfaz gráfica con el usuario . ➢ Capacidad de vincularse con los lenguajes de programación tradicionales . ➢ Transportabilidad de los programas MATLAB. Una característica notable de los números en MATLAB es que no hay distinción entre reales, complejos, enteros, de precisión sencilla y de doble precisión. En MATLAB, todos estos números están conectados continuamente, como debe ser. Esto significa que en Facultad: Ingeniería. Escuela: Electrónica. Asignatura: Sistemas de Control Automático SCA131 Lugar de ejecución: Instrumentación y Control (Edificio 3, 2da planta) Objetivos específicos Materiales y equipo Introducción teórica Sistemas de Control Automático. Guía 3 2 MATLAB cualquier variable puede contener números de cualquier tipo sin una declaración especial durante la programación, con lo cual esta última se hace más rápida y productiva. La biblioteca matemática de MATLAB facilita los análisis matemáticos. Además, el usuario puede crear rutinas matemáticas adicionales con mucha mayor facilidad que en otros lenguajes de programación, gracias a la continuidad entre las variables reales y complejas. Entre las numerosas funciones matemáticas, los solucionadores de álgebra lineal desempeñan un papel crucial; de hecho, todo el sistema MATLAB se basa en estos solucionadores. IMPORTANCIA DE LAS GRÁFICAS El análisis visual de los problemas matemáticos ayuda a comprender las matemáticas y a hacerlas más asequibles. Aunque esta ventaja es bien conocida, la presentación de resultados calculados con gráficos de computadora solía requerir un esfuerzo adicional considerable. Con MATLAB, en cambio, bastan unos cuantos comandos para producir presentaciones gráficas del material matemático. Es posible crear objetos gráficos científicos e incluso artísticos en la pantalla mediante expresiones matemáticas. SIMULINK Simulink es un entorno de diagramas de bloque para la simulación multidominio y el diseño basado en modelos. Admite el diseño y la simulación a nivel de sistema, la generación automática de código y la prueba y verificación continuas de los sistemas embebidos. Simulink ofrece un editor gráfico, bibliotecas de bloques personalizables y solucionadores para modelar y simular sistemas dinámicos. Se integra con MATLAB, lo que permite incorporar algoritmos de MATLAB en los modelos y exportar los resultados de la simulación a MATLAB para llevar a cabo más análisis. A continuación se presenta un tutorial con diferentes comandos y herramientas de MATLAB utilizados para el análisis y diseño de sistemas de control automático, desarrolle los ejemplos para poder resolver los ejercicios que se presentan en el análisis de resultados. Abra el programa MATLAB, espere que este cargue e indique que está listo (Ready). Funciones de transferencia: La sintaxis es: SYS = TF(NUM,DEN) Se desea crear la siguiente función de transferencia de un sistema SISO en MATLAB: 8.06.1 5.14.3 )( 2 ss s sH Procedimiento Sistemas de Control Automático. Guía 3 3 Para crearla se tiene que escribir lo siguiente: >> H1=tf([0,-3.4,1.5],[1,-1.6,0.8]) y se obtendrá: Transfer function: -3.4 s + 1.5 ----------------- s^2 - 1.6 s + 0.8 Otra forma de lograr lo mismo es: s=tf('s'); H1 = (-3.4*s+1.5)/(s^2-1.6*s+0.8) Transfer function: -3.4 s + 1.5 ----------------- s^2 - 1.6 s + 0.8 Para escribir la función de transferencia de sistemas MIMO con NY salidas y NU entradas como el siguiente de dos salidas y una entrada (SIMO): H s= 3s2 s32s5 3s35s22s1 Se puede hacer de la siguiente manera: >> H=tf({[3,2];[1,0,2,5]},{[3,5,2,1];[3,5,2,1]}) Transfer function from input to output... 3 s + 2 #1: ----------------------- 3 s^3 + 5 s^2 + 2 s + 1 s^3 + 2 s + 5 #2: ----------------------- 3 s^3 + 5 s^2 + 2 s + 1 Ganancia-Polos-Ceros: La sintaxis es: SYS = ZPK(Z,P,K), si no hay ceros se puede poner Z=[ ]. Se desea crear la siguiente función de transferencia de un sistema SISO en MATLAB: Sistemas de Control Automático. Guía 3 4 )5)(4( )8(3 )( ss s sH Para crearla se tiene que escribir lo siguiente: >> Z=[-8]; >> P=[-4 -5]; >> K=3; >> H2=zpk(Z,P,K) Zero/pole/gain: 3 (s+8) ----------- (s+4) (s+5) Otra forma de realizar lo mismo es: >> s=zpk('s'); H2=3*(s+8)/((s+4)*(s+5)) Zero/pole/gain: 3 (s+8) ----------- (s+4) (s+5) También se pueden representar sistemas MIMO con NY salidas y NU entradas. Por ejemplo se desea representar el siguiente sistema de dos salidas y una entrada: )1( )3)(2( , 1 5 21 ss ss H s H >> H = ZPK({[];[2 3]},{1;[0 -1]},[-5;1]) Zero/pole/gain from input to output... -5 #1: ----- (s-1) (s-2) (s-3) #2: ----------- s (s+1) Sistemas de Control Automático. Guía 3 5 Funciones de Análisis: Respuesta en el tiempo. impulse: Respuesta al impulso unitario. step: Respuesta al escalón unitario. lsim: Simula la respuesta en el tiempo de modelos LTI ante entradas arbitrarias. Encuentre la respuesta en el tiempo ante un impulso de entrada de la siguiente función de transferencia: H (s)= 8 s2+1.5 s+0.6 En MATLAB se escribiría lo siguiente: >> H1=tf([0,3.4,1.5],[1,1.6,0.8]); >> impulse(H1) Encuentre la respuesta en el tiempo del sistema anterior ante una entrada impulso unitario en el intervalo de 0 a 15 segundos. >> impulse(H1,15) Encuentre la respuesta del sistema anterior ante una entrada escalón unitario y añádala en la misma gráfica de la respuesta al impulso en el intervalo de 0 a 15 segundos: >> [Yi,T]=impulse(H1,15); >> [Ye,T]=step(H1,15); >> plot(T,Yi,'r',T,Ye,'b') La respuesta al impulso aparecerá de color rojo y la respuesta al escalón de color azul. Propiedades del modelo: damp: Factores de amortiguamiento y frecuencias naturales dcgain: Ganancia de estado estable (D.C.) de sistemas continuos. Encuentre los factores de amortiguamiento y frecuencias naturales del siguiente sistema ante una entrada escalón unitario (1/S): 10004.0 5 )( 2 ss sH La solución sería: s=tf('s'); H=5/(s^2+0.4*s+1000)*1/s Sistemas de Control Automático. Guía 3 6 Transfer function: 5 ---------------------- s^3 + 0.4 s^2 + 1000 s >> damp(H) Eigenvalue Damping Freq. (rad/s) 0.00e+000 -1.00e+000 0.00e+000 -2.00e-001 + 3.16e+001i 6.32e-003 3.16e+001 -2.00e-001 - 3.16e+001i 6.32e-003 3.16e+001 Ya que el amortiguamiento de este sistema es muy pequeño, la respuesta en el tiempo será muy oscilatoria. La transformada y Antitransformada de Laplace: La caja de herramientas dematemática simbólica de MATLAB posee la función laplace e ilaplace para transformar una función en el tiempo al dominio de la frecuencia compleja y viceversa. Ejemplo: Encontrar la respuesta en el tiempo de la siguiente función de transferencia cuando a la entrada se presenta una señal rampa unitaria. 2041299 4773355 )( 234 23 ssss sss sG Solución: >> syms s t >> G=(5*s^3+35*s^2+73*s+47)/(s^4+9*s^3+29*s^2+41*s+20); >> g=ilaplace(G*1/s^2); >> pretty(g) 467 47 - --- + 1/48 exp(-4 t) + 2/3 exp(-t) + -- t 400 20 + 4/25 exp(-2 t) (3 cos(t) - 4 sin(t)) >> ezplot(g,[0,15]) Ejemplo: Encuentre la transformada de Laplace de la siguiente función: )())sin(()( tueatttg at Donde a es una constante real positiva. Sistemas de Control Automático. Guía 3 7 Solución: >> syms a t s >> g=t*sin(a*t)+exp(-a*t); >> G=laplace(g); >> pretty(G) s a 1 2 ---------- + ----- 2 2 2 s + a (s + a ) Programa en MATLAB que resuelve las gráficas de flujo de señales por medio de la regla de Mason Explicación: Este programa resuelve las gráficas de flujo de señales para generar una ecuación simbólica equivalente que relaciona el nodo de salida y el nodo de entrada. Por ejemplo: Hay cuatro nodos 1,2,3 y 4 y hay cinco coeficientes S11,S21,S12,S22 y R2. Si colocamos el nodo 1 como el nodo de entrada independiente y escogemos el nodo 3 como un nodo dependiente obtenemos la siguiente simplificación: b a =s11s21∗ R2 1−s22∗R2 ∗s12 Si colocamos al nodo 1 como el nodo de entrada independiente y el nodo 2 como el nodo de salida dependiente obtenemos: Este programa genera estas ecuaciones. Sistemas de Control Automático. Guía 3 b a = s21 1−s22∗R2 8 Especificando la red. Se usa un archivo descriptor para especificar la topología del diagrama de flujo, que puede ser creado en cualquier editor de texto. A cada nodo se le asigna un número y cada rama se define como un número coeficiente. Cada rama se define como una línea en el archivo, descrito como sigue: [# Coeficiente] [# Nodo de Inicio] [# Nodo Final] [Nombre del Coeficiente] Los números de los coeficientes deben estar en orden. Por ejemplo, para describir el siguiente diagrama (donde el número del coeficiente está entre paréntesis): Figura 3.1. Diagrama de flujo. El archivo creado sería como el siguiente (donde los espacios en blanco son tabulaciones, pero cualquier espacio en blanco es aceptable): 1 1 2 s21 2 4 2 s22 3 4 3 s12 4 1 3 s11 5 2 4 R2 Nota: Es importante que las líneas en el archivo de red estén ordenadas de modo que los números de los coeficientes se incrementen a partir de 1. No use 0 como número de coeficiente o nodo. El nombre del coeficiente puede ser cualquier expresión simbólica válida. Si la expresión tiene múltiples términos, ellos deben encerrase entre paréntesis. Por ejemplo: (-D*z^(-1)) ó (1+B) Usando el programa El archivo creado debe guardarse con cualquier nombre y extensión en la misma carpeta donde se tenga el archivo mason.m y luego llamarse desde la consola de MATLAB especificando nombre del archivo con todo y extensión, número del nodo de inicio y número del nodo final como se muestra en el siguiente ejemplo. Ejemplo de uso de mason.m para resolver un diagrama de flujo: Encuentre la relación entre y7 / y2 en la Figura 3.2, que representa la dependencia de y7 sobre y2 donde este último no es la entrada. Sistemas de Control Automático. Guía 3 9 Figura 3.2. Gráfica de flujo para el ejemplo del método de Mason. Solución: Primero creamos el archivo que define la configuración de la red, podemos utilizar cualquier editor de texto pero ya que tenemos abierto MATLAB utilizaremos el de este, para ello en la pestaña “Home” de clic en “New” y luego seleccione “Script”, el editor se abre, copie los siguientes datos ya sea separándolos con un espacio o tabulación. 1 1 2 1 2 2 3 G1 3 3 2 -H1 4 5 2 -H3 5 3 6 G5 6 3 4 G2 7 4 5 G3 8 5 4 -H2 9 5 6 G4 10 6 6 -H4 11 6 7 1 Al finalizar guarde el archivo con un nombre como por ejemplo “red1.udb” (es necesario que ponga las comillas, sino se guardará como red1.udb.m) debe almacenarlo no solo en un directorio que MATLAB tenga como directorio de trabajo sino que en este debe estar también el archivo mason.m (en el caso del laboratorio debería estar en Documentos/MATLAB, sino es así notifique al docente de laboratorio1). Notamos que como debemos encontrar y7 / y2, primero hallaremos y7 / y1, luego y2 / y1 para finalmente hallar : y7 y2 = y7 / y1 y2/ y1 puesto que mason.m solo puede trabajar con un nodo que sea final y con otro que sea inicial. Una vez comprobado que en la carpeta correspondiente está tanto el archivo mason.m como el de red que creamos corremos en MATLAB la función de la siguiente manera para crear y7 / y1: >> [y7,y1]=mason('red1.udb',1,7) -- Network Info -- Net File : ejemplo.red Start Node : 1 1El archivo puede descargarse de la dirección de la tercera referencia bibliográfica de esta guía. Sistemas de Control Automático. Guía 3 10 Stop Node : 7 ----- Paths ----- P1 : 1 2 5 11 P2 : 1 2 6 7 9 11 - Order 1 Loops - L11 : 2 3 L12 : 2 6 7 4 L13 : 7 8 L14 : 10 - Order 2 Loops - L21 : 2 3 7 8 L22 : 2 3 10 L23 : 2 6 7 4 10 L24 : 7 8 10 - Order 3 Loops - L31 : 2 3 7 8 10 The variables returned are strings describing the numerator and Denominator of the transfer equation. If you have the symbolic toolbox, use Denominator=sym(Denominator) and Numerator=sym(Numerator) to make these symbolic equations. You can now use simple(Numerator/Denominator) to boil the whole thing down. You could also use simple(Numerator) to simplify the Numerator on it' own. y7 = 1*G1*G5*1*(1-(G3*-H2)+0-0)+1*G1*G2*G3*G4*1*(1-0+0-0) y1 = 1-(G1*-H1+G1*G2*G3*-H3+G3*-H2+-H4)+(G1*-H1*G3*-H2+G1*-H1*-H4+G1*G2*G3*-H3*- H4+G3*-H2*-H4)-(G1*-H1*G3*-H2*-H4) Luego obtenemos y2 / y1: >> [y2,y1]=mason('red1.udb',1,2) -- Network Info -- Net File : ejemplo.red Start Node : 1 Stop Node : 2 ----- Paths ----- P1 : 1 Sistemas de Control Automático. Guía 3 11 - Order 1 Loops - L11 : 2 3 L12 : 2 6 7 4 L13 : 7 8 L14 : 10 - Order 2 Loops - L21 : 2 3 7 8 L22 : 2 3 10 L23 : 2 6 7 4 10 L24 : 7 8 10 - Order 3 Loops - L31 : 2 3 7 8 10 The variables returned are strings describing the numerator and Denominator of the transfer equation. If you have the symbolic toolbox, use Denominator=sym(Denominator) and Numerator=sym(Numerator) to make these symbolic equations. You can now use simple(Numerator/Denominator) to boil the whole thing down. You could also use simple(Numerator) to simplify the Numerator on it' own. y2 = 1*(1-(G3*-H2+-H4)+(G3*-H2*-H4)-0) y1 = 1-(G1*-H1+G1*G2*G3*-H3+G3*-H2+-H4)+(G1*-H1*G3*-H2+G1*-H1*-H4+G1*G2*G3*-H3*- H4+G3*-H2*-H4)-(G1*-H1*G3*-H2*-H4) Para obtener la respuesta de manera ordenada primero deben hacerse simbólicos los nombres de los coeficientes y luego las expresiones que necesitamos: >> syms G1 G2 G3 G4 G5 H1 H2 H3 H4 >> y7=sym(y7); >> y2=sym(y2); Finalmente obtenemos la respuesta con: >> R=y7/y2; >> pretty(R) G1 G5 (G3 H2 + 1) + G1 G2 G3 G4 ------------------------------- H4 + G3 H2 + G3 H2 H4 + 1 Sistemas de Control Automático. Guía 3 12 Simulación de sistemas de control automático en SIMULINK: Digite el comando Simulink, este tardará un tiempo en cargar. Se abrirá la ventana del buscador de librerías de Simulink que se muestra en la Figura 3.3. Figura 3.3. Buscador de Librerías de Simulink. De clic en el menú “File”, “new “y seleccione “Model”. Cree el sistema que se muestra en la Figura 3.4, arrastrando loselementos que se muestran en el buscador de librerías a la ventana del modelo. En la Tabla 3.1 se encuentran las librerías donde están los elementos del sistema, para unir los elementos haga clic en los conectores que tienen los elementos, arrastre el cursor hasta el otro elemento a conectar y luego suelte. Elemento Librería de Simulink Transfer Fcn Continuous Step Sources Sum Math Operations Scope Sinks Tabla 3.1 Librerías donde se encuentran los elementos del circuito de la Figura 3.4. Sistemas de Control Automático. Guía 3 13 Figura 3.4. Diagrama de bloques de un sistema de motor DC. Nota: En el sistema de la Figura 3.4, el módulo “Transfer Fcn” representa un controlador proporcional con una ganancia de 0.5, el módulo “Transfer Fcn1” representa el modelo matemático de un horno, el módulo “Transfer Fcn2” representa al transductor con una relación de 0.1V/°C, “Step” representa el valor de referencia en voltios aplicado con una función escalón y “Step1” representa una perturbación; finalmente los “Scopes” son instrumentos para visualizar la respuesta del sistema, “Scope” muestra el resultado en grados y “Scope1” en voltios. Para que el sumador de la realimentación quede con uno de los signos negativo, de doble clic sobre este y en “List of signs” coloque: |+- y para que el sumador que añade la perturbación quede invertido como en la figura mueva la barra a la derecha así: ++| Configure los parámetros de los elementos como se indica a continuación (lo que está en paréntesis no se coloca solo es para referencia del usuario): “Step”: • Step Time: 0 • Initial Value: 0 • Final Value: 8.0 (voltios) “Step1”: • Step Time: 300 (segundos) • Initial Value: 60 (grados) • Final Value: 50 (grados) Transfer Fcn: • Numerator coefficients: [0.5] • Denominator coefficients: [1] Transfer Fcn1: • Numerator coefficients: [154.4] • Denominator coefficients: [49 14 1] Transfer Fcn2: • Numerator coefficients: [0.1] • Denominator coefficients: [1] Cambie el tiempo de simulación a 450 segundos como se muestra en la Figura 3.5. Figura 3.5. Tiempo de simulación. Simule el sistema, para ello de clic en el botón “Run” , luego haga doble clic en los Sistemas de Control Automático. Guía 3 14 elementos “Scope”. Para ver mejor las gráficas presione el botón de auto escala que tiene la siguiente forma , si ha hecho todo correctamente deberá ver en “Scope” la gráfica que se muestra en la Figura 3.6. Figura 3.6. Gráfica de “Scope”. Determine a que valor se estabilizó la temperatura luego de aplicada la perturbación:________________ ¿En cuanto tiempo se estabilizó la temperatura luego de aplicada la perturbación? ____________________ Aumente la ganancia del controlador proporcional a 5, ¿Bajó o subió el error en estado estacionario?, ¿que pasó con la estabilidad del sistema?_________________________________ __________________________________________________________________________________________ Cambie la función de transferencia del controlador proporcional (“Transfer Fcn”) por una de controlador PID: Numerator Coefficient: [20 10 0.5] Denominator Coefficient: [0.03 1 0] ¿Cuanto vale ahora el error en estado estacionario?_______________________________, ¿que pasó con la estabilidad del sistema?______________________________________________________ 1. Encuentre la transformada de Laplace de la siguiente función: )()2sin()( 2 tuetttg t Sistemas de Control Automático. Guía 3 Análisis de Resultados 20 s2+10 s+0.5 0.03 s2+s 15 2. Encuentre la antitransformada de Laplace de la siguiente función: )22( )2(10 )( 2 sss s sG 3. Encuentre la respuesta del siguiente sistema G(s)= 2.6 3 s2+0.8 s+1.2 ante una entrada escalón unitario en el intervalo de 0 a 80 segundos. 4. Para el sistema realimentado que aparece en la siguiente figura, muestre que Y(s)/ U(s) es: Figura 3.7. Diagrama de bloques ejercicio 4. 5. Encuentre )( )( )( sR sC sT para el sistema representado por el gráfico de flujo siguiente: Figura 3.7. Diagrama de flujo ejercicio 5. 6. Presente las 6 preguntas que se le realizaron en la parte de SIMULINK. • Ogata, K., (2010), Ingeniería de Control Moderna, Madrid, España: Pearson Educación, S.A. Sistemas de Control Automático. Guía 3 Bibliografía 16 • Nakamura, S., (1998). Análisis Numérico y Visualización Gráfica con Matlab, México, México: Prentice Hall. • Archivo mason.m, Recuperado en agosto de 2019 de: http://www.mathworks.com/matlabcentral/fileexchange/22-mason-m EVALUACIÓN % 1-4 5-7 8-10 Nota CONOCIMIENTO 25 Conocimiento deficiente de los siguientes procedimientos: -Introducción de una ecuación en MATLAB. -Como graficar con MATLAB. -Como simular un sistema con SIMULINK Conocimiento y explicación incompleta de los procedimientos. Conocimiento completo y explicación clara de los procedimientos. APLICACIÓN DEL CONOCIMIENTO 70 Cumple con uno de los siguientes criterios: -Obtiene la transformada y la antitransformada de Laplace con Matlab. -Resuelve las gráficas de flujo de señales por medio de la regla de Mason con Matlab. -Simula sistemas con SIMULINK Cumple con dos de los criterios. Cumple con los tres criterios. ACTITUD 5 Es ordenado pero no hace un uso adecuado de los recursos. Hace un uso adecuado de lo recursos, respeta las pautas de seguridad, pero es desordenado. Hace un manejo responsable y adecuado de los recursos conforme a pautas de seguridad e higiene. TOTAL 100 Guía 3: Introducción al control automático con MATLAB Alumno: Hoja de cotejo: 3 Docente: Fecha:GL: Puesto No: Sistemas de Control Automático. Guía 3 http://www.mathworks.com/matlabcentral/fileexchange/22-mason-m
Compartir