Control de Procesos por Microcontrolador
4.- Control de Procesos por Microcontrolador 4.1.- Introducción El problema del control digital de procesos por retroalimentación se puede abordar desde dos puntos de vista complementarios pero un tanto contradictorios: • •
El punto de vista de la implementación de un sistema de control. El punto de vista del modelado matemático.
El primer punto de vista tiene que ver más con los aspectos de la electrónica, la instrumentación y la programación del microcontrolador o computadora utilizados, mientras que el segundo punto de vista tiene que ver con la teoría general del comportamiento de los sistemas de control retroalimentados, lo cual lo enmarca en la teoría de variable compleja, teoría del muestreo de datos continuos, ecuaciones de diferencias y sistemas lineales discretos. No existe en la literatura (hasta donde yo sé) una referencia que por sí sola aborde el problema del control digital de procesos desde ambos puntos de vista y especialmente considerando que el lector posee conocimientos básicos en ambos aspectos. Estos apuntes son un esfuerzo encaminado a conjuntar en una sola fuente los dos puntos de vista. Advierto desde aquí que se corre el riesgo de perseguir un objetivo muy ambicioso o bien, de dejarse llevar más por uno sólo de los puntos de vista descuidando el otro. Sin embargo, la siguiente es una lista de referencias en internet que puede ser útil para algunos de los aspectos tratados aquí: http://www.engin.umich.edu/group/ctm/digital/digital.html http://www.engin.umich.edu/group/ctm/examples/motor/digital/digital.html http://members.aol.com/pidcontrol/pid_algorithm.html http://www.expertune.com/artCE87.html http://math.furman.edu/~dcs/book/ http://scfie.fie.umich.mx/~jrincon/curdsp1.pdf http://scfie.fie.umich.mx/~jrincon/curdsp2.pdf http://scfie.fie.umich.mx/~jrincon/curdsp3.pdf http://www.ntu.edu.sg/home/egbi/dspbasics/dsp/dfilt1.htm http://www.ntu.edu.sg/home/egbi/dspbasics/dsp/dfilt14.htm http://www.comp.mpce.mq.edu.au/courses/comp324/cn2/html
1
Control de Procesos por Microcontrolador http://sungear.name.mu.oz.au/~mcg/ctrl401/bl_3/sld001.htm
4.2.- Modelos de Sistemas de Control Digital Comienzo por aclarar que el tipo de controladores al que me enfoco en estos apuntes es a los que realizan control retroalimentado de sistemas continuos, por ello se descartan los controladores en lazo abierto (salvo que sirvan para ilustrar aspectos básicos) y los controladores de secuencias discretas tales como los PLC’s (o equivalentes) en su modalidad de control ON-OFF (La mayoría de los PLC’s actuales contemplan también módulos analógicos que permiten utilizarlos en control retroalimentado de sistemas continuos). En otras palabras, los controladores que se tratan aquí son computadoras, microcontroladores o cualquier sistema digital programable equipado con módulos de adquisición de datos analógicos (Convertidores Analógico/Digital) y Control analógico (Convertidores Digital/Analógico) En la figura 4.1 se muestran los elementos básicos que debe poseer un sistema de control retroalimentado basado en computadora.
Reloj
A/D
Algoritmo
D/A
Proceso Continuo
Computadora
Figura 4.1.- Esquema general de un control por computadora
Clasificación. Los esquemas generales de control digital retroalimentado han evolucionado considerablemente desde que comenzaron a utilizarse por allá en la década de los 60’s. A continuación se presentan los esquemas más representativos utilizados en el control de procesos en industrias de gran envergadura Control Supervisorio En la figura 4.2 se muestra este esquema de control, el cual por orden histórico fue el primero en utilizarse. En este esquema la computadora juega solamente el papel de un 2
Control de Procesos por Microcontrolador supervisor, ya que no tiene acceso a ningún lazo de control y su única función es monitorear las variables controladas del proceso o bien, modificar las referencias de control (set points). Los lazos de control en este esquema se siguen realizando mediante controladores analógicos.
Variables medibles
...
Referencias
Computadora
Planta
... Consola del operador Controladores Analógicos
Figura 4.2.- Control Supervisorio
Control Digital Directo (DDC). En la Figura 4.3 se muestra el esquema de una computadora trabajando en control digital directo. En este esquema la computadora ejecuta uno o varios algoritmos de control para realizar directamente el control de una o varias variables de un proceso. Este esquema es al que se enfocan estos apuntes.
Variables manipulables
Variables medibles
...
Puertos D/A (Salida)
Planta
Computadora
...
Puertos A/D (Entrada)
Consola del operador
Figura 4.3.- Control Digital Directo (DDC)
3
Control de Procesos por Microcontrolador Control Distribuido.
Interfaz de Comunicació n
En este último esquema, que es el más difundido a nivel industrial en la actualidad se utilizan computadoras o microcontroladores para reemplazar los lazos de control individuales que en el esquema antiguo se implementaban con controladores analógicos. Además se usa una gran computadora de gran capacidad para realizar la función de supervisora que ya se describió en el esquema supervisor anterior, con la diferencia que en el nuevo esquema dicha computadora se auxilia de subsistemas que controlan una red local que sirve de interfaz de comunicación con cada controlador funcionando en control digital directo.
Computadora Supervisora
Consola del operador
µcc en DDC
...
Sensores/ Actuadores
µcc en DDC
...
Sensores/ Actuadores
...
Sensores/ Actuadores
Planta
...
µcc en DDC
Computadoras En D.D.C.
Figura 4.4.- Control Jerárquico o Distribuído
Modelos Matemáticos de Sistemas Continuos Uno de los pasos que complica más el diseño de sistemas de control digital es la necesidad de modelar el proceso (continuo) que se desea controlar, ya que sin un modelo no podríamos decidir las acciones que el control deberá de tomar para corregir una desviación (respecto a lo deseado) de alguna variable del proceso. Modelado Entrada- Salida Teniendo en cuenta el último comentario uno de los enfoques de modelado más útiles para propósitos de control es el Modelado Externo o entrada/salida este tipo de modelo describe la relación estímulo - respuesta del proceso y conduce a la llamada Función Transferencia del proceso. Este enfoque de modelado se ilustra en la figura 4.5. para una planta continua de una entrada y una salida.
4
Control de Procesos por Microcontrolador Variable manipulable
Función Transferencia G(s)
(Entrada) u(s)
Variable Medible (Salida) y(s)=G(s) u(s)
Planta Continua Figura 4.5.- Modelado Entrada – Salida para una planta continua
Aunque el modelado entrada – salida produce una representación muy conveniente, en el dominio del tiempo conduce a una relación expresada por la integral de convolución siguiente
y(t) =
t
0
g(t − )u( )d
(4.1)
Donde g(t) es la función de respuesta al impulso del sistema. Buscando una relación más sencilla se expresa esta integral de convolución en el dominio de la frecuencia como una simple multiplicación de una función transferencia por la entrada para obtener la salida Y(s) = G(s) U(s)
(4.2)
Ecuaciones Diferenciales Todo sistema dinámico continuo (que contiene elementos almacenadores de energía) puede modelarse por una ecuación diferencial de orden n (donde n es el número de elementos almacenadores de energía). El caso más simple y más estudiado es el de una Ecuación Diferencial Lineal como la siguiente (n)
(n−1)
(n−1)
y (t)+a1 y (t)+...+an−1 y (t)+any(t) =b1 u (t)+...+bn−1 u (t)+bnu(t) (4.3)
Donde los superíndices indican derivación respecto al tiempo, y los coeficientes a1,...,an, b1,...,bn, son en general funciones del tiempo y corresponden a los parámetros del sistema (tales como masas, coeficientes de fricción, resistencias, capacitancias, inductancias, etc.) Si el sistema puede modelarse mediante una ecuación como la (4.2), se dice que es un Sistema Lineal, y si los coeficientes a1,...,an, b1,...,bn son constantes se dice que es un Sistema Lineal Invariante en el Tiempo (S.L.I.T.) Ecuaciones de Estado Una ecuación diferencial de orden n como la (4.2) puede transformarse en un sistema de n ecuaciones diferenciales de primer orden mediante la introducción de n variables de estado, x1(t), x2(t),...,xn(t). Así, en términos de estas variables de estado (si se eligen 5
Control de Procesos por Microcontrolador convenientemente, ya que hay una infinidad de maneras de hacerlo), la ecuación diferencial puede escribirse (bajo ciertas condiciones) como sigue
x& 1 0 x& 0 2 x& 3 = ... 0 x& n − a n
y ( t ) = [b n
1
0
...
0
1
...
0
0
... ...
− a n −1
− a n− 2
...
b n −1
b n− 2
0 x1 0 0 x 2 0 x 3 + 0 u( t ) 1 ... ... − a 1 x n 1
x1 x 2 ... b 1 ] x 3 ... x n
(4.4)
La elección adecuada de variables de estado para obtener la ecuación (4.4) es la siguiente: La primera variable de estado x 1 se elige de manera que satisfaga la ecuación auxiliar siguiente (n )
( n −1)
•
x 1 + a1 x 1 + ... + a n −1 x 1 + a n x 1 = u( t )
(4.5)
Y el resto de las variables de estado se eligen como sigue
x 2 = x& 1 x 3 = x& 2
(4.6)
... x n = x& n−1
El modelo de espacio de estado dado por la ecuación (4.4) se denomina Forma Canónica Controlador y corresponde a la Función Transferencia en el dominio de Laplace siguiente
y(s) b 1 s n−1 + b 2 s n−2 + ... + b n−1 s + b n = ( ) = G s u(s) s n + a 1 s n−1 + ... + a n−1 s + a n
(4.7)
Ejemplo 4.1: Al sistema descrito por la siguiente ecuación diferencial
y +2 y +3y = u(t) le corresponde el modelo en espacio de estado en su forma controlador siguiente 6
Control de Procesos por Microcontrolador
1 x 1 0 x& 1 0 = x& − 3 − 2 x + 1u(t ) 2 2 y(t ) = x 1 o bien, le corresponde la función transferencia
G(s) =
1 s 2 + 2s + 3
Por lo tanto, su respuesta al escalón puede ser obtenida mediante Matlab como sigue >>num=[0 0 1]; >>denom=[1 2 3]; >>G=TF(num,denom); >>step(G); o bien, usando el modelo de espacio de estado, >>A=[0 1;-3 -2]; >>B=[0;1]; >>C=[1 0]; >>D=0; >>G=SS(A,B,C,D); >>step(G); Con cualquiera de estos dos procedimientos se puede obtener la respuesta que se muestra en la figura 4.5 Step Response From: U(1)
0.4
0.35
0.3
To: Y(1)
Amplitude
0.25
0.2
0.15
0.1
0.05
0
0
1
2
3
4
5
6
Time (sec.)
Figura 4.5.- Respuesta al escalón unitario del sistema del ejemplo 4.1
7
Control de Procesos por Microcontrolador
Interacción Controlador Digital – Planta Continua Al introducir un controlador digital para controlar una planta continua el modelado se complica un poco, dado que mientras la evolución de la planta se desarrolla en tiempo continuo, el controlador es un sistema que evoluciona bajo una base de tiempo discreto marcado por un reloj patrón. Para los fines de analizar la interacción control digital – planta continua el reloj que gobierna la evolución del controlador no es el reloj patrón de la CPU de la computadora, sino el reloj que marca los instantes de muestreo tk de las tarjetas convertidoras A/D y D/A, Muestreo Uniforme Los instantes que marcan el proceso de muestreo pueden estar espaciados de manera arbitraria, pero normalmente se tiene un control sobre ellos de manera que ocurren de manera periódica (uniformemente espaciados), por ello es conveniente definir en este caso un periodo de muestreo (Ts) y su correspondiente frecuencia de muestreo fs (en hertz) o bien, ωs (en radianes), de esta manera, en el caso de muestreo uniforme se tiene que tk = k Ts, para k=0,1,2,3,...
(4.8)
Por ello es común “obviar” el periodo de muestreo y representar el instante de muestreo usando sólo el valor de k. Modelado de los convertidores A/D y D/A En la figura 4.6 se muestra el esquema de la figura 4.1, en donde se utiliza un controlador digital para controlar una planta continua, pero ahora el convertidor A/D ha sido reemplazado por su equivalente para fines de modelado, el cual es un muestreador, es decir, un switch controlado que siempre está abierto y sólo se cierra para tomar muestras en los instantes de muestreo. En forma similar, el convertidor D/A se ha reemplazado por un muestreador en serie con un retenedor. La función del retenedor es la de “sostener” el valor de la señal de entrada entre un instante de muestreo tk y el siguiente tk+1.
8
Control de Procesos por Microcontrolador Reloj
y(t)
y(tk)
Algoritmo
u(tk)
H(z)
A/D
u(tk)
Zoh
u(t)
y(t)
G(S)
D/A
Retenedor
Controlador Digital
Planta
Figura 4.6.- Modelado de los convertidores A/D y D/A
El retenedor de orden cero (Zoh) Un retenedor analógico práctico denominado retenedor de orden cero. (Zoh) consiste en un capacitor que almacena el valor muestreado u(tk) proveniente de un muestreador, con el conveniente acoplamiento de impedancia que puede ser proporcionado por un amplificador operacional en configuración de seguidor como se muestra en la figura 4.7
-
u(tk)
u(t)
u(t) +
tk
Figura 4.7.- Muestreador / Retenedor de orden cero.
En un retenedor ideal, el objetivo es realizar el proceso inverso al muestreo, es decir, la reconstrucción de la señal u(t) previa al muestreador. Sin embargo, el proceso de reconstrucción normalmente no es perfecto, y lo que se obtiene es una aproximación a la señal u(t), en la figura 4.8 se muestran señales típicas que tienen lugar en el muestreo y la reconstrucción con un retenedor de orden cero. Observación: El proceso de retención también puede realizarse de manera digital, mediante un registro que sostenga el dato digital u(tk) mientras el convertidor D/A realiza la conversión.
9
Control de Procesos por Microcontrolador u(t)
t
t0
Señal analógica u(t) u(tk)
tk
t0 t 1
t2
t3
t4
t5
t6
t7
t8 …
Señal muestreada u(tk) u(t)
t
t0 t 1
t2
t3
t4
t5
t6
t7
t8 …
Señal reconstruida u(t) mediante un Zoh
Figura 4.8.- Señales típicas en el proceso de muestreo y reconstrucción
Enfoques de Modelado Un enfoque de modelado del sistema de control digital es adoptar el punto de vista de la computadora, la cual es un sistema de tiempo discreto y por lo tanto, “ve” a la planta como si fuera otro sistema de tiempo discreto, ya que sólo puede ver de ella los valores muestreados de y(t) en cada instante de muestreo, es decir, sólo ve los valores y(tk). Este enfoque requiere modelar todos los componentes del sistema de control mostrado en la figura 4.6 en un dominio de tiempo discreto, es decir, como si la planta fuese discreta, como se ve en la figura 4.9, esto obliga a considerar un equivalente F(s) de la planta que incluye al retenedor Zoh como si este último fuese parte de la planta. Un enfoque alternativo consiste en adoptar el punto de vista de la planta, es decir, considerar todos los componentes como si fueran analógicos, esto conduce a considerar que la computadora es solamente una aproximación digital para un controlador continuo. Este enfoque tiene la ventaja de que permite diseñar los controladores usando teoría clásica de control analógico; pero es muy restrictivo, ya que no permite explotar las capacidades de muchos algoritmos digitales que no pueden ser una aproximación de controladores continuos. Por ello el enfoque más conveniente es el mostrado en la figura 4.9, en la cual se ha usado la variable z para indicar que el modelado es en tiempo discreto y la variable s para indicar que el modelado es en tiempo continuo. 10
Control de Procesos por Microcontrolador Reloj
y(t)
y(t k )
H(z)
u(t k )
u(t k )
y(t)
Zoh
G(s)
Algoritm o
F(s) Retenedor + Planta
y(t k )
H(z)
u(t k )
u(t k )
y(t k )
F(z)
Algoritm o
Retenedor + Planta
Figura 4.9.- Modelado desde el punto de vista de la computadora
A continuación se presenta el equivalente natural del modelado en el dominio del tiempo continuo (ecuaciones diferenciales), que en el caso de tiempo discreto conduce a las ecuaciones de diferencias. 4.3.- Ecuaciones de Diferencias En forma similar a como una ecuación diferencial establece una relación entre una variable y(t) y sus derivadas, una ecuación de diferencias establece una relación entre una variable de tiempo discreto y(k) y sus valores pasados y(k-1), y(k-2), etc. En esta notación k representa el instante de muestreo y se evita usar tk por simplicidad. Si en una ecuación de diferencias aparecen involucrados los valores de y(k) en diferentes instantes anteriores, por ejemplo, y(k-1), y(k-2), ..., y(k-n), donde n es el máximo valor de la lista (y(k-n) es el valor más anterior de todos), a la ecuación se le llama ecuación de diferencias de orden n. Ejemplo 4.2.- La siguiente es una ecuación de diferencias de primer orden, ya que y(k) depende solamente de sus valores con un instante de muestreo de diferencia: y(k) = 1 + a y(k-1) (valor presente = 1 + valor anterior) la cual también puede escribirse como 11
Control de Procesos por Microcontrolador y(k+1) = 1 + a y(k) (valor siguiente = 1 + valor presente) Es fácil encontrar la solución de la ecuación anterior por simple iteración. Así, suponiendo condiciones iniciales cero, es decir, y(0)=0, tendríamos: Para k=1: Para k=2: Para k=3: Para k=4: ... para k=n:
y(1)=1+a y(0) = 1 y(2)=1+a y(1) = 1 + a y(3)=1+a y(2) = 1+a(1+a)= 1+a+a2 y(4)=1+a y(3) = 1+a(1+a+a2) = 1+a+a2+a3 y(n)= 1 + a + a2 +...+ an-1
En este caso es posible encontrar una expresión cerrada para la sumatoria anterior, y expresar la solución y(n) de manera compacta como sigue 1 − an y (n) = 1− a Esta última expresión nos da la solución particular de la ecuación de diferencias para la condición inicial y(0)=0. Dicha solución tiene características diferentes dependiendo del valor de la constante a. En la figura 4.10 se muestra la forma de la solución y(k) para un valor de a = 0.5 Y (k )
2
1.9
1.8
1.7 a=0.5
1.6
1.5
1.4
1.3
1.2
1.1
1
k 0
2
4
6
8
10
12
14
Figura 4.10.- Solución de la ecuación de diferencias del ejemplo 4.2 para a=0.5
Ecuaciones Lineales de Diferencias En forma similar a las ecuaciones diferenciales, las ecuaciones de diferencias pueden clasificarse también en Lineales y No Lineales. La forma general de una ecuación de diferencias lineal de orden n es como sigue 12
Control de Procesos por Microcontrolador y(k+n) + a1y(k+n-1) +...+ any(k) = b0u(k+m) + b1u(k+m-1) +...+ bmu(k) (4.9) Donde
y es la variable dependiente (salida) u es una variable independiente (entrada) k es el tiempo discreto a1,...,an,b0,...,bm, son en general funciones del tiempo k.
En el caso en que los parámetros a1,...,an,b0,...,bm sean constantes, la Ecuación (4.9) se dice Lineal, Invariante en el Tiempo. Este es el caso más sencillo y será el único tratado en estos apuntes. Causalidad Se puede ver de la ecuación (4.9) que si m>n entonces los valores de y en cada instante dependerían de un valor que aún no ha ocurrido (de un valor futuro), por ejemplo, una ecuación con m=1, n=0 pudiera ser: y(k)=u(k+1), la cual, por ejemplo para evaluarse en el instante presente k=1 requiere conocer el valor de u(2) que está en el futuro!!. Un sistema descrito por la ecuación (4.9), con m>n se llama No Causal y no es realizable físicamente en tiempo real. En forma similar, si m ≤ n el sistema se dice Causal. Observación. Pudiera pensarse que al no ser realizables los sistemas no causales no tienen ningún interés, sin embargo, si el sistema trabaja con datos almacenados no tiene porque procesarlos en tiempo real y entonces puede realizarse aún siendo no causal. Otro caso de interés en sistemas no causales es cuando k no es una variable de tiempo, sino, por ejemplo, de posición, entonces los valores de k mayores que el actual no son “futuros”, sino simplemente están “adelante”. Ejemplo 4.3.- En los siguientes ejemplos de ecuaciones de diferencias se ha colocado a la derecha una L de lineales, una NL de nolineales, una C de causales, una NC de no causales, una I de invariantes y una V de variantes. Ecuación y(k+3) + y(k+1) - 5y(k) = sen(k) y(k+1) + k*y(k) = u(k+2) y(k)*sen(k) + y(k+1) = k+2 y(k)*y(k+1) + 1 = u(k) y(k+2) - y(k) = u(k) + u(k+3) Y(k-1) + y(k-2) = u(k)
13
Clasificación L,I,C L,V,NC L,V,C NL,I,C L,I,NC L,I,NC
Control de Procesos por Microcontrolador 4.4.- Operadores Retardo y Adelanto Es posible obtener una representación algebraica de las ecuaciones de diferencias si introducimos el operador retardo unitario q-1 definido como sigue para una función de tiempo discreto f(k) q-1f(k) = f(k-1)
(4.10)
(es decir, q-1 produce un retardo de un periodo de muestreo en en f(k)). Este operador se puede aplicar de manera repetitiva como sigue q-2f(k) = q-1q-1f(k) = q-1f(k-1) = f(k-2) o en general, q-nx(k) = x(k-n)
(4.11)
En forma similar se define el operador adelanto unitario q como el operador que produce un adelanto de un periodo de muestreo en una señal f(k) como sigue q f(k) = f(k+1) en forma similar q2 f(k) = f(k+2),…,qn f(k) = f(k+n)
(4.12) (4.13)
Utilizando estos operadores una ecuación de diferencias se transforma en una ecuación algebraica en potencias de q. Ejemplo 4.4 La ecuación de diferencias: y(k+2)+y(k+1)+0.2y(k)= u(k) se puede escribir usando el operador q como sigue (q2+q+0.2)y(k) = u(k)
De hecho, en general una ecuación de diferencias de la forma (4.9), se puede reescribir usando el operador q como sigue A(q) y(k) = B(q) u(k)
(4.14)
Donde A(q) y B(q) son polinomios en potencias de q de grado n y m respectivamente: A(q) = qn + a1qn-1 +...+ an-1q + an B(q) = boqm + b1qm-1 +…+ bm-1q + bm 4.5.- Función Transferencia de un Sistema Discreto
14
(4.15) (4.16)
Control de Procesos por Microcontrolador De acuerdo a la ecuación (4.14), el operador q permite convertir una ecuación de diferencias lineal como la (4.9) en una ecuación algebraica como (4.14) de la cual podemos obtener el cociente de la salida a la entrada como sigue y (k ) = G(q) u(k )
(4.17)
Donde G(q) es una función racional en q de la forma siguiente G(q) =
b 0 qm + b1qm−1 + ... + b m−1q + b m qn + a1qn−1 + ... + a n−1q + a n
(4.18)
A esta función racional se le llama La Función Transferencia de Pulso o Función Transferencia Discreta; pero ¿tiene algún significado práctico?, es decir, ¿la relación siguiente obtenida de (4.17) y(k) = G(q) u(k),
(4.19)
realmente nos proporciona una manera de calcular la respuesta y(k) del sistema descrito por la ecuación diferencial (4.9) cuando se presenta la entrada u(k)? Para aclarar este punto consideremos el siguiente ejemplo Ejemplo 4.5 Consideremos el sistema digital cuya entrada es u(k) y cuya salida es y(k), descrito por la siguiente ecuación de diferencias y(k+1) - ay(k) = u(k) De acuerdo con (4.18) la función transferencia discreta correspondiente es G(q) =
1 , q−a
de manera que de acuerdo con (4.19) podremos expresar la salida del sistema como sigue 1 y (k ) = u(k ) q−a Lo cual a primera vista y considerando el significado del operador q, no parece tener ningún sentido, pero si expresamos la división 1/(q-a) usando el procedimiento de división de polinomios, obtenemos y(k) = (q-1 + aq-2 + a2q-3 + a3q-4 + ...)u(k) es decir, 15
Control de Procesos por Microcontrolador y(k) = u(k-1) + au(k-2) + a2u(k-3) +... La expresión anterior nos permite calcular la respuesta y(k) del sistema si conocemos la entrada u(k). Por ejemplo, supongamos que u(k) es un escalón unitario, entonces y(0) = u(-1)+au(-2)+... = 0 y(1) = u(0)+au(-1)+... = 1 y(2) = u(1)+au(0)+a2u(-1)+...= 1+a y(3) = u(2)+au(1)+a2u(0)+a3u(-1)+... = 1+a+a2 ... y(n) = u(n-1)+au(n-2)+a2u(n-3)+...+an-1u(0)+anu(-1)+... = 1+a+a2+a3+...+an-1 Compárese este resultado con el obtenido en el ejemplo 4.2 Se puede observar que el procedimiento seguido en el ejemplo anterior no tiene manera de considerar condiciones iniciales, por ello sólo se puede aplicar si estas condiciones iniciales son cero El haber logrado una expresión como (4.19) nos permite expresar un sistema descrito por una ecuación de diferencias lineal mediante un diagrama de bloques, como sigue
Función Transferencia
u(k)
y(k)=G(q) u(k)
G(q) Sistema discreto Por otro lado, es importante mencionar que aunque la función transferencia G(q) se ha expresado en términos del operador adelanto q, es posible siempre expresarla en términos del operador retardo q-1 para obtener G(q-1). Así, considerando la expresión (4.18), si multiplicamos numerador y denominador por q-n, obtenemos b 0 qm−n + b1qm−n−1 + ... + b m−1q − (n−1) + b m q −n 1 + a1q −1 + ... + a n−1q −(n−1) + a n q −n Si definimos d=n-m, obtenemos G(q) =
G(q) = q −d
b 0 + b1q −1 + ... + b m−1q − (m−1) + b m q −m 1 + a1q −1 + ... + a n−1q −(n−1) + a n q −n
(4.20)
(4.21)
En esta última versión de la función transferencia resulta evidente que el retardo total entrada – salida del sistema es d.
16
Control de Procesos por Microcontrolador 4.5.1.- La Transformada Z En estos apuntes se evitará al máximo el uso de conceptos relacionados con la Transformada Z, sin embargo, para poder comprender algunas cuestiones básicas tratadas en la literatura que hace uso de la transformada Z usaremos los conceptos tratados arriba para el operador q, pero teniendo presente lo siguiente: 1. La Transformada Z al aplicarse a una función en el dominio del tiempo discreto f(k), la convierte a una nueva función F(z) cuya variable z es una variable compleja. Es decir, transforma a f(k) del dominio del tiempo discreto al dominio complejo z.
Im(z)
Transformada Z
f(k)
Re(z)
Función de tiempo discreto
Dominio Complejo z
2. En el nuevo dominio complejo z se pueden hacer varios estudios sobre el sistema transformado, especialmente el estudio de Estabilidad (basado en los polos de la función transferencia). Una manera más clara de apreciar esto es considerar el mapeo (transformación) del plano complejo de Laplace (s) al plano complejo z.
F(z)
F(s) jω
Transformada Z σ
z=eTs
Im(z)
Re(z)
Dominio Complejo z
Dominio Complejo s
3. Cada punto del plano s se transforma en un punto del plano z mediante la transformación z=eTs, donde T es el periodo de muestreo, por lo tanto todo el semiplano complejo izquierdo en el plano s (Re(s)<0) corresponde al interior del círculo de radio 1 en el plano z. 4. Hay una relación directa entre el operador q y la transformada Z, bajo condiciones iniciales cero. Compárense las siguientes relaciones con las ecuaciones (4.10) y (4.12): Z{f(k-1)} = z-1F(z) Z{f(k+1)} = z F(z) 17
(4.22) (4.23)
Control de Procesos por Microcontrolador 5. De acuerdo al punto anterior, la función Transferencia (4.18), (4.20) o (4.21) expresada en términos de q o en términos de z es exactamente la misma (sólo se cambia q por z), por ejemplo la ecuación (4.18) en el dominio de z queda: b 0 z m + b1 z m−1 + ... + b m−1 z + b m (4.24) z n + a1 z n−1 + ... + a n−1 z + a n Sin embargo, mientras que (4.18) expresa el cociente y(k)/u(k), la ecuación (4.24) expresa el cociente Y(z)/U(z). G(z) =
6. La Transformada Z de una señal arbitraria f(k) de tiempo discreto está definida por F(z) = Z{f(k)} =
∞
∑ f (k)z
−k
(4.22)
k =0
Ejemplo 4.6
De acuerdo a los puntos anteriores, podemos usar la función transferencia (4.18) en términos de q, o en términos de z (4.24) de manera indistinta para representar un sistema discreto lineal. Así, para el sistema del ejemplo 4.5 podemos escribir su función transferencia como sigue
G(z) =
1 z−a
Usando Matlab podemos obtener la respuesta del sistema para diferentes valores de la constante a. Para a=0.5 » » » »
a=0.5; num=[0 1]; den=[1 -a]; G=TF(num,den,1)
Transfer function: 1 ------z + 0.5 Sampling time: 1 »
De esta manera obtenemos la respuesta al escalón unitario que se muestra en la siguiente figura (compárese con la figura 4.10).
18
Control de Procesos por Microcontrolador Step Response, a=0.5 2 1.8 1.6
Amplitude
1.4 1.2 1 0.8 0.6 0.4 0.2 0
0
2
4
6
8
10
12
Time (sec.)
En forma similar se puede obtener la respuesta al escalón unitario para otros valores de la constante a, como se muestra en las figuras siguientes para a=-0.5, 1, -1, 2 S tep Res pons e c on a= -0.5
S tep Res pons e c on a= 1 From: U(1)
0.9
45
0.8
40
0.7
35
0.6
30
0.5 0.4
To: Y (1)
50
A m plitude
To: Y (1)
A m plitude
From: U(1) 1
25 20
0.3
15
0.2
10
0.1
5
0 0
2
4
6
8
10
0
12
0
5
10
15
Tim e (s ec .)
20
25
30
35
40
45
50
3.5
4
4.5
5
Tim e (s ec .)
S tep Res pons e, a= 1
S tep Respons e, a= 2
From: U(1)
From: U(1)
1
35
0.9
30
0.8 25
A m plitude
0.5 0.4
To: Y (1)
20
0.6 To: Y (1)
A m plitude
0.7
15
10
0.3 5
0.2 0
0.1 0 0
5
10
15
20
25
30
35
40
45
-5
50
0
Tim e (s ec .)
0.5
1
1.5
2
2.5
Tim e (s ec .)
19
3
Control de Procesos por Microcontrolador 4.5.2.- Modelo de Espacio de Estado Discreto
En forma similar a la manera como una ecuación diferencial de orden n puede transformarse en n ecuaciones diferenciales de primer orden, también una ecuación de diferencias de orden n puede escribirse como n ecuaciones de diferencias de primer orden, las cuales en general para un sistema lineal invariante en el tiempo tendrán la forma x(k+1) = Φ x(k) + Γu(k) (4.23) Y la ecuación de salida y(k) = C x(k)
(4.24)
Donde x es el vector de variables de estado, Φ, Γ y C son matrices constantes. La función transferencia correspondiente a este sistema de ecuaciones se puede obtener aplicando las propiedades del operador q o bien de la transformada Z como sigue G(z) = C(zI-Φ)-1Γ
(4.25)
Donde I es la matriz identidad de tamaño nxn. Ejemplo 4.7
Consideremos el sistema discreto dado por la siguiente ecuación de diferencias de segundo orden y(k+2)+0.1y(k+1)-0.2y(k)=u(k) Si elegimos las siguientes variables de estado: x1(k)=y(k), x2(k) = y(k+1) Obtenemos el siguiente sistema de dos ecuaciones de diferencias de primer orden
1 x1 (k ) 0 x1 (k + 1) 0 x (k + 1) = 0.2 − 0.1 x (k ) + 1u(k ) 2 2 y(k ) = x1 (k ) que corresponde a la forma anticipada en (4.23) y (4.24) Ejemplo 4.8
En Matlab puede usarse de manera indistinta el modelo de espacio de estado o la función transferencia para introducir un sistema discreto, así, para el sistema del ejemplo anterior podemos obtener la respuesta al escalón unitario de la siguiente manera 20
Control de Procesos por Microcontrolador » num=1; » den=[1 0.1 -0.2]; » G=TF(num,den,1) Transfer function: 1 ----------------z^2 + 0.1 z - 0.2 Sampling time: 1 » step(G) »
O bien, » » » » » » »
A=[0 1; 0.2 -0.1]; B=[0;1]; C=[1 0]; D=0; G=SS(A,B,C,D,1); step(G)
De esta manera se obtiene la respuesta mostrada en la siguiente figura Step Respons e From: U(1) 1.4
1.2
0.8 To: Y (1)
Am plitude
1
0.6
0.4
0.2
0
0
1
2
3
4
5
6
7
8
9
10
Tim e (sec .)
4.6.- Discretización de Sistemas Continuos
Uno de los enfoques comentados anteriormente (El punto de vista de la planta) nos permite utilizar la teoría de diseño de controladores analógicos para implementar controladores discretos está basado en que una vez teniendo la versión analógica, ésta la podemos aproximar por una versión discreta con un buen grado de exactitud. En 21
Control de Procesos por Microcontrolador otras palabras, una ecuación diferencial se puede aproximar por una ecuación de diferencias. En el otro enfoque (punto de vista de la computadora) también es necesario realizar esta discretización, pero no para el controlador, sino para la planta, de manera que todo el sistema pueda verse como si fuera discreto y utilizar la teoría de diseño de controladores discretos. La aproximación se puede realizar de varias maneras: 4.6.1.- Aproximación de Euler.
Esta aproximación se basa en expresar la derivada mediante diferencias finitas hacia atrás, es decir, dy y (kT ) − y(kT − T) ≈ dt T
(4.26)
donde T es el periodo de muestreo, o bien, usando diferencias hacia delante, dy y (kT + T ) − y(kT ) ≈ dt T
(4.27)
Usando las expresiones anteriores un sistema escrito en ecuaciones diferenciales de primer orden (como la ecuación de estado continuo 4.4) puede ser transformada en un sistema escrito en ecuaciones de diferencias de primer orden (como la ecuación de estado discreto 4.23) Ejemplo 4.9
Consideremos el sistema continuo dado por las ecuaciones de estado del ejemplo 4.1
1 x 1 0 x& 1 0 x& = − 3 − 2 x + 1u(t ) 2 2 y(t ) = x 1 Usando diferencias hacia delante (4.27) este sistema se transforma en
T x1 (k ) 0 x1 (k + 1) 1 x (k + 1) = − 3T 1 − 2T x (k ) + T u(k ) 2 2 y(k ) = x1 (k ) En forma similar, si usamos diferencias hacia atrás (4.26), obtenemos 22
Control de Procesos por Microcontrolador
x1 (k + 1) 1 + 2T T x1 (k ) 0 1 = x (k + 1) 3T 2 + 2T + 1 − 3T 1 x (k ) + T u(k ) 2 2 y(k ) = x1 (k ) Como se puede ver de las dos aproximaciones obtenidas, el comportamiento de la aproximación depende intrínsecamente del periodo de muestreo utilizado. Como una manera de validar que tan buena es la aproximación obtenida podemos obtener las respuestas al escalón de las tres ecuaciones anteriores mediante Matlab, como se muestra en la siguiente figura. Como es de esperarse, la aproximación es mejor a medida que el periodo de muestreo es más pequeño. En la figura se ha utilizado un periodo de muestreo de T=0.1 seg.
0.4
Respuesta al Escalón del Sistema continuo y aproximaciones discretas usando T=0.1
0.35
Amplitude
0.3 0.25 0.2 0.15 Diferencias hacia Adelante Diferencias hacia atráz Sistema continuo
0.1 0.05 0 0
1
2
3 Time (sec.)
4
5
6
Discretización de la función transferencia
En ocasiones resulta más práctico aplicar las aproximaciones discretas directamente a la función transferencia del sistema continuo. Esto es sencillo de realizar para las aproximaciones de Euler, ya que estas simplemente transforman la derivada cuyo efecto en el dominio de Laplace es el de transformar la variable compleja s. De esta manera, podemos obtener las transformaciones correspondientes de s a z a partir de las ecuaciones (4.26) y (4.27) Así, de las diferencias hacia atrás (4.26) s=
1 − z −1 z − 1 = T Tz 23
(4.29)
Control de Procesos por Microcontrolador y de las diferencias hacia delante (4.28), obtenemos s=
z −1 T
(4.28)
Ejemplo 4.10
Para el sistema continuo del ejemplo anterior tenemos la función transferencia correspondiente
G(s) =
1 s 2 + 2s + 3
De manera que si usamos diferencias hacia delante (4.28), obtenemos G(z) =
T2 z 2 + (2T − 2)z + (3T 2 − 2T + 1)
Lo cual también puede ser verificado a partir de (4.25) 4.6.2.- Aproximación de Tustin.
Una alternativa a la aproximación de la derivada por diferencias finitas es usar la aproximación de la integral mediante áreas trapezoidales. De esta manera se obtine la transformación de Tustin o bilineal que se puede expresar como sigue s=
2 z −1 T z +1
(4.28)
Ejemplo 4.11
Para el mismo sistema del ejemplo anterior; pero usando la transformación de Tustin podemos obtener la siguiente función transferencia discreta simplemente sustituyendo la transformación (4.28) en la función transferencia del sistema continuo.
G(z) =
T 2 (z 2 + 2z + 1) (3T 2 + 4T + 4)z 2 + (6T 2 − 8)z + (3T 2 − 4T + 4)
Para validar el resultado de esta transformación, obtenemos mediante Matlab la respuesta al escalón de la función transferencia discreta obtenida y la graficamos junto con la respuesta dela planta continua original. Como se muestra en la siguiente figura el resultado es considerablemente mejor que el obtenido mediante diferencias finitas hacia adelante o hacia atrás 24
Control de Procesos por Microcontrolador 0.4
Respuesta al escalón: Sistema continuo Y aproximación de Tustin, con T=0.1 seg
0.35
Amplitude
0.3 0.25 0.2 0.15 0.1
Sistema continuo Aprox de Tustin
0.05 0
0
1
2
3 Time (sec.)
4
5
6
4.6.3.- Aproximación escalón invariante (Retenedor de orden cero).
Una de las desventajas que tienen los métodos anteriores es que todos ellos introducen una distorsión en la escala de frecuencias, es decir, la aproximación discreta y el sistema original tendrán por lo general una respuesta de frecuencia muy diferente. Una alternativa para mejorar esto es la de utilizar ya no una aproximación, sino la transformación exacta del sistema original al sistema discreto ¿es esto posible? Realmente no se puede tener una transformación exacta si no se introducen algunas consideraciones, por ejemplo, la siguiente es una transformación que nos produce la respuesta exactamente igual al sistema original en los instantes de muestreo si la entrada es una señal escalón. Este método se basa en discretizar (obteniendo la transformada z) de la planta (G(s)) precedida por un retenedor de orden cero (Goh(s)) como se muestra en la figura siguiente
u(t k )
y(t)
G oh (s)
u(t k )
G (s)
y(t k )
F(z)
F(s)
Retenedor + Planta
Retenedor + Planta
Es decir, con este enfoque obtenemos la función transferencia discreta como sigue F(z) = Z {Goh(s) G(s)} 25
(4.29)
Control de Procesos por Microcontrolador
Se puede evitar el uso de la transformada Z si hacemos el planteamiento en un modelo de estado. Así, si el modelo de estado de la planta continua es x& = Ax + Bu
(4.30)
y = Cx
El correspondiente modelo de estado discreto equivalente será x (k + 1) = Φx(k ) + Γu(k ) y (k ) = Cx(k ) T Φ = e AT , Γ = ∫ e Aτ dτ B 0
En donde:
(4.31) (4.32)
Ejemplo 4.12
El procedimiento para calcular la matriz eAT de manera analítica consiste la transformación inversa de Laplace de la matriz (sI-A)-1, es decir, eAT = L-1{(sI-A)-1}
(4.33)
En donde I es la matriz identidad de tamaño nxn, A es la matriz del sistema (4.30), T es el periodo de muestreo y L-1 es la Transformada inversa de Laplace. Para el caso del sistema del ejemplo anterior, obtenemos AT -1 s 2 e =L 2 s
s+2 + 2s + 3 −3 + 2s + 3
1 s + 2s + 3 s s 2 + 2s + 3 2
Transformando obtenemos AT
Φ=e
e − T (cos 2T + 12 sen 2T) e − T ( 12 sen 2T) = e −T (− 32 sen 2T) e −T (cos 2T − 12 sen 2T)
Y evaluando la integral (4.32) se obtiene 1 − 1 e − T (cos 2T + 12 sen 2T) Γ = 3 3 1 e −T sen 2T 2 Evaluando para T=0.1 seg. obtenemos 0.0047 0.9860 0.0902 , Γ= Φ= 0.0902 − 0.2705 0.8056 26
Control de Procesos por Microcontrolador Utilizando estos cálculos podemos obtener la respuesta al escalón unitario de esta discretización y compararlo con la del sistema continuo original como se muestra en la siguiente figura obtenida en Matlab. Respuesta al escalón: Sistema Original y Discretización con retenedor de orden cero, T=0.1seg 0.4 0.35
Amplitude
0.3 0.25 0.2 0.15 0.1 Sistema continuo Discretización
0.05 0
0
1
2
3
4
5
6
Time (seg.)
Es importante notar en esta gráfica que la discretización con retenedor de orden cero produce una respuesta idéntica a la de la planta original en los instantes de muestreo.
4.7.- Estabilidad de Sistemas Discretos
4.8.- Diseño de un Sistema de Control Digital Directo Usando Microcontrolador 4.8.1.- Caso de Estudio (Control de Velocidad de Un Motor de C.D.) 4.8.2.- Descripción General del Problema 4.8.3.- Necesidades Mínimas de Modelado 4.8.4.- Modelado del Motor 4.8.5.- El Sensor y su Modelado 4.8.6.- El Actuador y su Modelado 4.8.7.- Elección de la Estrategia de Control 4.8.8.- Control P.I. 4.8.9.- El efecto “Windup” y su eliminación 4.8.10.- Elección del periodo de muestreo y las constantes del controlador 4.8.11.- Implementación del control
27