DEPARTAMENTO DE ELECTRONICA FACULTAD DE CIENCIAS EXACTAS, INGENIERIA Y AGRIMENSURA UNIVERSIDAD NACIONAL DE ROSARIO CONTROL II TRABAJO PRACTICO 2: CONTROLADORES DIGITALES CONTROL II 2011 1. INTRODUCCION El objetivo del Trabajo Práctico 2 es el de calcular diferentes equivalentes discretos de un sistema continuo utilizando los métodos brindados en la teoría, optando luego por el más adecuado para diseñar controladores digitales para satisfacer determinados requerimientos dinámicos y estáticos. El cálculo de dichos controladores se llevará a cabo usando diversas técnicas, destacando las similitudes y diferencias obtenidas en la respuesta del sistema realimentado frente al diseño realizado sobre el sistema continuo en el Trabajo Práctico 1. Se presentarán además las herramientas disponibles en MATLAB para realizar los cálculos mencionados, prestando especial atención a las funciones y comandos pertenecientes a la librería dedicada al control automático denominada “Control Toolbox”. 1.1. Equivalente Discreto de Funciones Continuas El propósito del equivalente discreto de un sistema continuo es el de encontrar un sistema discreto que tenga características similares, ya sea en el dominio tiempo y/o el frecuencial, a las del sistema continuo en cuestión. Existen varios métodos de cálculo para resolver este problema, entre los de uso más frecuente se encuentran los métodos de integración numérica. Estos aproximan las funciones continuas con funciones rectangulares o trapezoidales dando lugar a los métodos denominados Regla rectangular por adelanto, Regla rectangular por atraso y Regla trapezoidal. Otro de los métodos utilizados para encontrar el equivalente discreto de un sistema continuo es el llamado Mapeo de Polos y Ceros. El mismo consiste en utilizar la relación plano z = e sT existente entre el s y el plano z para llevar los polos y ceros desde el primero hacia el segundo. Finalmente existe el llamado Método del Bloqueador Equivalente, en este caso se define al equivalente discreto como H (s) H ( z ) = (1 − z −1 ) Z s donde esta última relación equivale a suponer la presencia de un bloqueador de orden cero considerado únicamente sólo a los efectos de realizar el cálculo de H(z). 1.2. Cálculo del Equivalente Discreto con MATLAB En MATLAB existen funciones que realizan el cálculo de equivalentes discretos utilizando los diferentes métodos ya mencionados. Durante el desarrollo del Trabajo Práctico se usarán las funciones c2d y bilin para realizar dichos cálculos. Se muestra a continuación cómo utilizar dichas funciones: Siendo g una función transferencia de un sistema continuo en formato zpk, su equivalente discreto para un intervalo de muestreo T se puede calcular con >> gz = c2d( g, T, ’matched’) utilizando mapeo de polos y ceros >> gz = c2d( g, T, ’zoh’) utilizando el método del bloqueador equivalente >> gz = c2d( g, T, ’tustin’) utilizando la regla trapezoidal >> gz = recadel( g, T) utilizando la regla rectangular por adelanto >> gz = recatras( g, T) utilizando la regla rectangular por atraso Trabajo Práctico 2 Controladores Digitales Pág. 2 de 10 CONTROL II 2011 Las funciones recadel y recatras no forman parte del Control Toolbox de MATLAB, dichas funciones fueron escritas a partir de la función bilin. En el apéndice 3.2 ubicado al final de esta guía puede verse la programación de dichas funciones. 1.3. Cálculo de la Transformada W con MATLAB La función bilin permite calcular la transformada W de funciones transferencia de sistemas discretos. Para resolver el problema se escribieron dos funciones a partir de bilin. Se muestra a continuación cómo utilizar dichas funciones: Siendo gz una función transferencia de un sistema discreto en formato zpk, su transformada W se puede calcular con >> gw = transform( gz) Siendo gw la transformada W de una función transferencia en el plano W, su transformada a una función transferencia en el plano Z para un intervalo de muestreo T se puede de calcular con >> gz = antitransform( gw, T) En el apéndice 3.2 ubicado al final de esta guía puede verse la programación de dichas funciones. NOTA: dado que MATLAB sólo permite el uso de las variables s y z para representar sistemas continuos y discretos, las funciones transferencia en el plano W estarán expresadas en la variable s. Trabajo Práctico 2 Controladores Digitales Pág. 3 de 10 CONTROL II 2011 2. DESARROLLO DEL TRABAJO PRACTICO 2.1. Cálculo y simulación de Equivalentes Discretos El punto 3.1 del apéndice presente en esta guía describe el modelo matemático del sistema de control de nivel en un tanque ya utilizado en el Trabajo Práctico 1 para el diseño de controladores continuos. Durante el desarrollo del Trabajo Práctico 1 se calcularon diferentes controladores para dicho sistema, en particular en el punto 2.1.2 se calculó un controlador del tipo PD aproximado para cumplir con especificaciones de tiempo de respuesta y sobrevalor. Se utilizará ahora dicho controlador, llamado de aquí en más J(s), para realizar las siguientes actividades: 2.1.1) Calcular los equivalentes discretos del controlador PD aproximado J(s) indicados a continuación, utilizando como intervalos de muestreo T1= 0.2 seg y T2= 0.015 seg. Utilizar el formato zpk para J(s). - Bloqueador de orden cero; - Mapeo de polos y ceros. - Regla trapezoidal; - Regla rectangular por adelanto; - Regla rectangular por atraso; En este punto es necesario incluir como mínimo: Listado detallado de las funciones usadas para el cálculo de cada equivalente discreto, Valores de los equivalentes discretos pedidos en el formato zpk. 2.1.2) Graficar la respuesta en frecuencia de los equivalentes discretos anteriores y compararlas con la del controlador continuo J(s). Para ello realizar sólo dos gráficas: - Diagrama de Bode de magnitud de los equivalentes discretos calculados con el intervalo T1 más el controlador continuo. - Diagrama de Bode de magnitud de los equivalentes discretos calculados con el intervalo T2 más el controlador continuo. En este punto es necesario incluir como mínimo: Las gráficas mencionadas, Conclusiones derivadas de la comparación de las mismas. 2.1.3) Comparar la respuesta temporal obtenida con los equivalentes discretos calculados y la obtenida con el controlador continuo J(s). Trabajo Práctico 2 Controladores Digitales Pág. 4 de 10 CONTROL II 2011 Para ello construir un modelo en Simulink con el sistema a LC sin tener en cuenta la perturbación (caudal de salida ∆v) ni el retardo por transporte. Utilizar una entrada escalón en la entrada de referencia de nivel ∆hREF a partir del instante t=0. Utilizar para la comparación los equivalentes discretos construidos con la regla trapezoidal y con la regla rectangular por adelanto. Realizar gráficas con: - Respuestas obtenidas con el controlador continuo y los equivalentes discretos calculados el intervalo T1, - Respuestas obtenidas con el controlador continuo y los equivalentes discretos calculados el intervalo T2, En este punto es necesario incluir como mínimo: Modelo del sistema construido en Simulink, Respuestas al escalón en la salida controlada y en la entrada de control, Conclusiones derivadas de las simulaciones realizadas. Trabajo Práctico 2 Controladores Digitales Pág. 5 de 10 CONTROL II 2011 2.2. Diseño de un Controlador Digital Se utilizará el método de la transformada w y la herramienta de Matlab SISO-Tool para realizar el diseño de un controlador digital que cumpla con los mismos requerimientos utilizados para el diseño del controlador continuo. Para ello realizar paso a paso las siguientes actividades: 2.2.1) Partiendo de la función transferencia G(s) a lazo abierto del sistema calcular la función transferencia discreta G(z) . No tener en cuenta la perturbación (caudal de salida ∆v) ni el retardo por transporte. Utilizar el formato zpk para G(s). Utilizar el método del bloqueador de orden cero y el intervalo de muestreo T2 para calcular G(z). En este punto es necesario incluir como mínimo: Descripción de la función utilizada para realizar el cálculo y sus resultados. 2.2.2) A partir de la función transferencia G(z) calculada hallar su transformada W ( G(w) ). En este punto es necesario incluir como mínimo: Descripción de la función utilizada para realizar el cálculo y sus resultados. 2.2.3) Eliminar de G(w) el cero de alta frecuencia, corrigiendo además convenientemente la ganancia de la misma. En este punto es necesario incluir como mínimo: Descripción de las funciones utilizadas para realizar los cálculos y sus resultados. 2.2.4) Diseñar un controlador PD aproximado ( C(w) )para que el sistema a LC presente las mismas características dinámicas a las solicitadas para el PD aproximado continuo del TP1. Utilizar SISO-Tool para el diseño utilizando los criterios de la técnica de avance de fase. Ignorar la presencia del caudal de salida ∆v (perturbación). En este punto es necesario incluir como mínimo: Lugar de las raíces del sistema corregido, Respuesta al escalón indicando la verificación de los requerimientos pedidos. Trabajo Práctico 2 Controladores Digitales Pág. 6 de 10 CONTROL II 2011 2.2.5) A partir de la función transferencia del controlador C(w) producto del diseño con SISO-Tool hallar su transformada al plano Z ( C(z) ). En este punto es necesario incluir como mínimo: Descripción de la función utilizada para realizar el cálculo y sus resultados. 2.2.6) Comparar la respuesta temporal obtenida con el controlador discreto C(z) calculado y la obtenida con el controlador continuo J(s). Para ello construir un modelo en Simulink con el sistema a LC sin tener en cuenta la perturbación (caudal de salida ∆v) ni el retardo por transporte. Utilizar una entrada escalón en la entrada de referencia de nivel ∆hREF a partir del instante t=0. En este punto es necesario incluir como mínimo: Modelo del sistema construido en Simulink, Respuestas al escalón en la salida controlada y en la entrada de control, Conclusiones derivadas de las simulaciones y cálculos realizados. Trabajo Práctico 2 Controladores Digitales Pág. 7 de 10 CONTROL II 2011 3. APENDICE 3.1. Modelo matemático: Control de nivel en tanque La figura 3.1 muestra los elementos principales que componen el sistema a controlar. El tanque sirve de cisterna para el suministro de líquido a consumidores alimentados por la bomba centrífuga, dicha bomba extrae del tanque el caudal v [m3/h]. La reposición de líquido en el tanque se realiza a través de la válvula proporcional, que suministra el caudal u [m3/h] a un sistema de canaletas abiertas que llega hasta el tanque. El objetivo del control es el de mantener el nivel h de líquido en el tanque en el valor ajustado hREF, manejando la apertura x de la válvula para suministrar el caudal v requerido por los consumidores. Válvula proporcional u Canaletas x Adaptación Control k J ε h _ + hREF v A h: nivel de líquido en el tanque [m] A: área de la base del tanque [m2] = 28m2 k: constante de adaptación [%/m] = 15%/m Bomba centrífuga Figura 3.1 x: u: v: señal de apertura de la válvula [%] caudal de salida de la válvula [m3/h] caudal consumido del tanque [m3/h] Luego la expresión del nivel ∆h(s) en función de las entradas ∆hREF(s) y ∆v(s) es: ∆h( s ) = J ( s )kGv ( s )G ( s ) G( s) ∆hREF ( s ) − ∆v( s ) 1 + J ( s )kGv ( s )G ( s ) 1 + J ( s )kGv ( s )G ( s ) (3.1) donde deben considerarse: G (s) = 1 1 = As 28s Gv ( s ) = 10 1+ s (3.2) El modelo puede mejorarse considerando el retardo de transporte en la canaleta de alimentación del tanque. En ese caso, llamando ∆u al caudal de salida de la válvula de control, ∆u1 al caudal de entrada al tanque y τ r al retardo temporal entre ambos caudales, se puede escribir: ∆u1 (t ) = ∆u (t − τ r ) Trabajo Práctico 2 (3.3) Controladores Digitales Pág. 8 de 10 CONTROL II 2011 ∆u1 ( s ) = ∆u ( s )e −τ r s (3.4) y el modelo de la planta se modifica a: 1 G( s) = 28s Trabajo Práctico 2 10e −τ r s Gv ( s ) = 1+ s Controladores Digitales (3.5) Pág. 9 de 10 CONTROL II 2011 3.2. Funciones especiales para el cálculo Se muestra a continuación el listado de las funciones utilizadas para el desarrollo del Trabajo Práctico: function [gz]=recadel(gs,T) % Calcula G(z) usando la regla rectangular por adelanto. % % gs -> debe ser un sistema continuo en formato zpk. % T -> intervalo de muestreo. gz=zpk(bilin(ss(gs),1,'FwdRec',T)); function [gz]=recatras(gs,T) % Calcula G(z) usando la regla rectangular por atraso. % % gs -> debe ser un sistema continuo en formato zpk. % T -> intervalo de muestreo. gz=zpk(bilin(ss(gs),1,'BwdRec',T)); function [gw]=transfw(gz) % Calcula G(w) (Transformada W) de la % funcion transferencia G(z). % % gz -> debe ser un sistema discreto en formato zpk. % gw contiene la transformada W en formato zpk, pero expresada en la variable s. gw=zpk(bilin(ss(gz),-1,'Tustin',get(gz,'Ts'))); function [gz]=antitransfw(gw,Ts) % Calcula la funcion transferencia G(z) a partir de la % transformada W G(w). % % gw contiene la transformada W en formato zpk, pero expresada en la variable s. % gz -> sistema discreto en formato zpk. gz=zpk(bilin(ss(gw),1,'Tustin',Ts)); Trabajo Práctico 2 Controladores Digitales Pág. 10 de 10