Documente Academic
Documente Profesional
Documente Cultură
- 143 -
6.1 INTRODUCCIN.
En esta seccin presentamos un mtodo de diseo analtico para controladores digitales que obligar a la secuencia de error, cuando quede sujeta a un tipo especfico de entrada en el dominio del tiempo, a llegar a cero despus de un nmero finito de perodos de muestreo y, de hecho, a convertirse y mantenerse a cero despus del menor nmero posible de perodos de muestreo. El control Deadbeat de sistemas muestreados tiene la caracterstica especfica de que establece la seal de error a cero en un nmero finito de pasos discretos; para conseguir esto se impone que los polos del sistema en lazo cerrado, o bien estn en el origen z = 0, o bien sean ceros estables de la seal de entrada, de forma que se cancelen. Estabilidad. Los estudios que siguen estn limitados a la determinacin de algoritmos de control o de funciones de transferencia de pulso de controladores digitales, para sistemas de entrada nica y salida nica (sistemas SISO), dadas las caractersticas deseadas de respuesta ptima. Debido a que el control Deadbeat requiere una respuesta Deadbeat slo en los instantes de muestreo, puede haber oscilaciones no decrecientes en la respuesta permanente entre los instantes de muestreo, incluso si el sistema de control es internamente estable. El objetivo del control Deadbeat es establecer la seal de error a cero en todo instante de tiempo despus de un tiempo; es decir, eliminar cualquier tipo de oscilaciones entre instantes de muestreo. Para ms informacin sobre la parte terica de este tema, consultar [REF. 3] y [REF. 4].
- 144 -
6.2 DISEO DE CONTROLADORES DIGITALES PARA UN TIEMPO DE ESTABLECIMIENTO MNIMO CON UN ERROR CERO EN ESTADO PERMANENTE.
Se considera el sistema de control digital que se muestra a continuacin:
fig. (6-a) La seal de error e( t ), que es la diferencia entre la entrada de referencia r ( t ) y la salida x ( t ), se muestrea en cada instante de tiempo T. La entrada al controlador digital es la seal de error e ( k T ). La salida del controlador digital es la seal de control u ( k T ). Dicha seal de control es aplicada a la planta. Se desea disear un controlador digital GC( z ) tal que el sistema de control en lazo cerrado tenga como tiempo de establecimiento el mnimo posible, con un error en estado permanente cero, en respuesta a una entrada escaln, rampa o aceleracin. Se requiere que la salida no presente componentes oscilatorias entre las muestras, despus de haber alcanzado el estado permanente. Si se requiere, el sistema deber satisfacer cualquier otra especificacin, como es la correspondiente a la constante de error de velocidad esttica. El mantenedor sirve para reconstruir los valores de la funcin entre los puntos de muestreo. La forma ms sencilla es mediante un mantenedor de orden cero (ZOH), que reproduce la seal en forma de escalera. Su funcin de transferencia viene dada por la ecuacin
Gh ( s ) =
1 e T s s
- 145 -
y la correspondencia entre los planos s y z viene dada por la transformacin z = e T s . Sea la transformada z de la planta, precedida por el mantenedor de orden cero, la siguiente:
1
G (z ) = Z
(1 e T s ) G ( s ) G ( s) p z 1 p = Z = z s s
(6.2.0)
Se observa que se ha realizado un abuso de notacin, eliminando L . Este proceso equivale a la discretizacin por invarianza al escaln. Entonces la funcin transferencia de pulso en lazo abierto es GC( z ) G ( z ), tal y como se muestra en la siguiente figura:
-1
fig. (6-b)
- 146 -
GC ( z ) G ( z ) X ( z) = = F ( z) R ( z ) 1 + GC ( z ) G ( z )
(6.2.1)
Dado que es necesario que el sistema tenga un tiempo de establecimiento finito con un error en estado permanente cero, el sistema deber mostrar una respuesta impulso finita. Por lo tanto, la funcin transferencia de pulso en lazo cerrado deseado debe ser de la forma siguiente:
a0 z N + a1 z N 1 + K + a N F ( z) = zN
es decir
F ( z ) = a0 + a1 z 1 + K + a N z N
(6.2.2)
y se tiene que cumplir que el orden del sistema, n, sea menor o igual que N (n N ) . Ntese que F( z ) no debe tener ningn trmino con potencias positivas en z, ya que dichos trminos en la expansin en series de F( z ) implicara que la salida antecede a la entrada, lo que no es posible en un sistema fsicamente realizable. Si se tiene el desarrollo en serie en potencias de z -1 de F( z ), como el de la ecuacin (6.2.2), entonces f ( k ) = a k, siendo f ( k ) la transformada z inversa de F( z ), es decir, la salida en el instante k-simo. El mtodo de diseo consiste en construir la funcin transferencia de pulso del controlador digital GC( z ), de forma que la funcin transferencia de pulso en lazo cerrado satisfaga la ecuacin (6.2.1). Despejando GC( z ) en dicha ecuacin obtenemos
- 147 -
GC ( z ) =
F ( z) G ( z ) (1 F ( z ) )
(6.2.3)
El sistema diseado debe ser fsicamente realizable. Las condiciones para que esto ocurra imponen ciertas limitaciones a la funcin transferencia de pulso en lazo cerrado F(z) y a la funcin transferencia de pulso del controlador digital GC( z ). A continuacin se comentan las condiciones para que sean fsicamente realizables: 1. El grado del numerador de GC( z ) debe ser menor o igual que el grado del denominador. De no ser as, el controlador requiere que sean datos de entrada futuros los que produzcan la salida actual. 2. Si la planta Gp( s ) incluye un retraso de transporte e L S entonces el sistema en lazo cerrado diseado debe involucrar por lo menos la misma magnitud de retraso de transporte. De no ser as, el sistema en lazo cerrado tendra que responder antes de que se le diera una entrada, lo que es imposible de realizar en un sistema fsico. 3. Si G( z ) se expande en una serie en potencias de z -1 y la primera potencia de z -1 es r, con r 0 , entonces en la expresin en serie de F( z ) la primera potencia de z -1 debera ser como mnimo r. Por ejemplo, si la expansin de G( z ) en una serie en z -1 empieza con el trmino z -1, entonces el primer trmino de F( z ) de la ecuacin (6.2.2), que es a 0, deber ser cero, quedando
F ( z ) = a1 z 1 + K + a N z N
donde n N y n es el orden del sistema. Esto significa que la planta no puede responder en forma instantnea cuando se aplica una seal de control de magnitud
- 148 -
finita; es decir, si la expansin en serie de G(z) empieza con un trmino z -1, entonces la respuesta se presenta con un retraso de por lo menos un perodo de muestreo. Adems de las condiciones de la posibilidad fsica de realizacin, tenemos que poner atencin en aspectos de estabilidad del sistema. De manera especfica, debemos evitar la cancelacin de un polo inestable de la planta mediante un cero del controlador digital. Si se intenta este tipo de cancelacin, cualquier error en la cancelacin entre polos y ceros generar una divergencia conforme pasa el tiempo y el sistema se har inestable. En forma similar, la funcin transferencia de pulso del controlador digital no deber incluir polos inestables para cancelar ceros de la planta que ocurran fuera del crculo unitario. Ahora investiguemos lo que ocurrir con la funcin transferencia de pulso en lazo cerrado, F( z ), si G( z ) incluye un polo inestable (o crticamente estable), esto es, un polo z = exterior al crculo unidad (o bien sobre l). La discusin siguiente se aplica de la misma manera, si G(z) incluye dos o ms polos inestables (o crticamente estables). Definamos
G( z) =
G1 ( z ) z
Donde G1 ( z ) no incluye un trmino que se cancele con z - . Entonces la funcin transferencia de pulso en lazo cerrado se convierte en
GC ( z ) G ( z ) X ( z) = = R ( z ) 1 + GC ( z ) G ( z )
GC ( z ) G1 ( z ) = F ( z) GC ( z ) G1 ( z ) ( z ) 1 + z
(6.2.4)
- 149 -
En vista de que requerimos que ningn cero de GC( z ) cancele el polo inestable de G( z ) en z = , debemos tener
1 F ( z) =
GC ( z ) G1 ( z ) 1 = G ( z ) G1 ( z ) G ( z ) G1 ( z ) 1+ C ( z ) 1 + C z z
Esto es, 1 - F( z ) debe tener como cero a z = . Tambin, notar de la ecuacin (6.2.4) que si ceros de G(z) no son cancelados por polos de GC( z ), los ceros de G( z ) se convierten en ceros de F( z ). ( F( z ) puede incluir ceros adicionales). Resumamos lo que se ha dicho sobre la estabilidad: 1. Dado que el controlador digital GC( z ) no debe cancelar los polos inestables (o crticamente estables) de G( z ), todos los polos inestables (o crticamente estables) de G( z ) debern incluirse en 1 - F( z ) como ceros. 2. Los ceros de G( z ) que se presenten dentro del crculo unidad pueden
cancelarse con polos de GC( z ). Sin embargo, los ceros de G( z ) que ocurran sobre o fuera del crculo unidad, no deben cancelarse con polos de GC( z ). Por lo tanto, todos los ceros de G( z ) que se presenten sobre o fuera del crculo unidad debern ser incluidos en F( z ) como ceros. Ahora seguiremos con el diseo. Dado que refirindonos a la ecuacin (6.2.1) tenemos
E ( z ) = R ( z ) X ( z ) = R ( z ) (1 F ( z ) )
(6.2.5)
- 150 -
NOTA del autor: Las siguientes funciones se multiplican por el escaln 0 1( t ) = 1 si t 0 si t < 0
Esto significa que las seales slo toman valores distintos de cero a partir de k = 0. Note que para una entrada escaln unitario r( t ) = 1( t ),
R( z ) =
1 1 z 1
R( z) =
(1 z )
T z 1
1 2
t 2 1(t ) , 2
R( z) =
T 2 z 1 (1 + z 1 ) 2 1 z 1
- 151 -
Por lo tanto, en general, las transformadas z en estas entradas polinomiales en el dominio de tiempo se pueden escribir como
R( z) =
(1 z )
P( z )
1 q +1
(6.2.6)
donde P(z) es un polinomio en z -1. Para una entrada escaln unitario, P(z) = 1 y q = 0; para una entrada rampa unitaria, P( z ) = T z -1 y q = 1; y para una entrada aceleracin unitaria,
T 2 z 1 (1 + z 1 ) P( z ) = 2
y q = 2.
E( z) =
P ( z ) (1 F ( z ))
(1 z )
1 q +1
(6.2.7)
Para asegurarnos de que el sistema llega al estado permanente en un nmero finito de perodos de muestreo y mantiene un error cero en estado permanente, E( z ) deber ser un polinomio en z -1 con un nmero finito de trminos. Entonces, refirindonos a la ecuacin (6.2.7), escogemos que la funcin 1 - F( z ) tenga la forma
1 F ( z ) = (1 z 1 ) q +1 N ( z )
(6.2.8)
- 152 -
E ( z ) = P( z ) N ( z )
(6.2.9)
que es un polinomio en z -1 con un nmero finito de trminos. Esto significa que la seal de error se convierte en cero en un nmero finito de perodos de muestreo. Del anlisis anterior, la funcin transferencia de pulso del controlador digital puede determinarse como sigue. Si se supone primero que F(z) satisface la posibilidad fsica de realizacin y las condiciones de estabilidad, y a continuacin se sustituye la ecuacin (6.2.8) en la ecuacin (6.2.3), obtenemos
GC ( z ) =
F ( z) G ( z ) (1 z 1 ) q +1 N ( z )
(6.2.10)
La ecuacin (6.2.10) da la funcin transferencia de pulso del controlador digital, que producir un error cero en estado permanente, despus de un nmero finito de perodos de muestreo. Para una planta estable Gp( s ), la condicin para que la salida no muestre componentes oscilatorios entre instantes de muestreo despus del tiempo de establecimiento, se puede escribir como sigue: x( t ) = constante, x'( t ) = constante, x''( t ) = constante, para t nT para t nT para t nT para entradas escaln para entradas rampa para entradas aceleracin
- 153 -
Dicha condicin deber ser tenida en cuenta cuando se disee el sistema o el controlador. Al disear el sistema de control, la condicin sobre x( t ), x'( t ) o x''( t ) deber interpretarse en trminos de u( t ). Notar que la planta est en tiempo continuo y la entrada a la planta es u( t ), que es una funcin en tiempo continuo; por lo tanto, para no tener componentes oscilatorias en la salida x( t ), la seal de control u( t ) en estado permanente debe ser constante o de un incremento montono (o decreciendo montonamente) para los casos de entrada escaln, rampa y aceleracin.
polinomio en z -1, todos los polos en lazo cerrado estn en el origen z = 0. El polo mltiple en lazo cerrado en el origen es muy sensible a las variaciones de parmetros del sistema. [REF. 3].
2. Aunque un sistema de control digital diseado para presentar un tiempo de
establecimiento mnimo, con un error cero en estado permanente, en respuesta a un tipo especfico de entrada tenga caractersticas excelentes de respuesta transitoria para la entrada para la cual fue diseado, puede mostrar caractersticas de respuestas transitorias inferiores o algunas veces inaceptables para otros tipos de entrada. Esto es siempre cierto tratndose de sistemas de control ptimo: un sistema de control ptimo mostrar las mejores caractersticas de respuesta para el tipo de entrada para el que fue diseado, pero no tendr caractersticas de respuesta ptima para otro tipo de entradas.
3. En el caso en el que un controlador analgico es discretizado, un incremento
en el perodo de muestreo modifica la dinmica del sistema, lo que puede llevar a la inestabilidad del mismo. Por otra parte, el comportamiento del sistema de control digital que diseamos en esta seccin no depende de la seleccin del perodo de muestreo. En vista de que las entradas r( t ) aqu consideradas son entradas en el dominio del tiempo (escaln, rampa, aceleracin...), el perodo de muestro T puede ser escogido de manera
- 154 -
arbitraria. Para un perodo de muestreo menor, el tiempo de respuesta (que es un mltiplo entero del perodo de muestreo T) se hace menor. Sin embargo, para un perodo de muestreo T muy pequeo, la magnitud de la seal de control se convertir en excesivamente grande, con el resultado de que en el sistema aparecern fenmenos de saturacin, y el mtodo de diseo presentado en esta seccin ya no ser aplicable. Por lo tanto, el perodo de muestreo T no debe ser demasiado pequeo. Por otra parte, si el perodo de muestreo T se coge demasiado grande, el sistema puede comportarse de manera no satisfactoria, o incluso puede hacerse inestable cuando est sujeto a entradas variables en el tiempo, como son entradas en el dominio de la frecuencia. De ah que sea necesario un trmino medio. Una regla prctica sera escoger el perodo de muestreo T ms pequeo para que no ocurra ningn fenmeno de saturacin en la seal de control.
Ejemplo:
Considere el sistema de control mostrado en la figura (6-a), donde la funcin de transferencia de la planta Gp( s ) est dada por
G p (s) =
1 s ( s + 1)
Se quiere disear un controlador digital GC( z ), tal que el sistema en lazo cerrado muestre respuesta sin oscilaciones a una entrada escaln unitario. (En una respuesta sin oscilaciones el sistema no mostrar componentes oscilatorias entre muestras en la salida, una vez alcanzado el tiempo de establecimiento). El perodo de muestreo T se supone de 1seg.
- 155 -
El primer paso en el diseo es determinar la transformada z de la planta que est precedida por un mantenedor de orden cero: [REF. 3].
G (z ) = Z
1 = 2 s ( s + 1) = (1 z ) s 2 ( s + 1)
z 1 . z
> factor(G(z));
.36788 z + .26424 ( z 1. ) ( z .36787 )
- 156 -
Si multiplicamos ambos trminos de la fraccin por z -2, se obtiene la expresin en funcin de z -1. Y dicha expresin es:
G( z) =
F ( z) =
GC ( z ) G ( z ) X ( z) = 1 + GC ( z ) G ( z ) R ( z )
Se Observa de la expresin anterior de G( z ) que si G( z ) se expande a una serie en potencias de z -1 el primer trmino ser en z -1. Por lo tanto, F( z ) deber empezar con un trmino en z -1. Al referirnos a la ecuacin (6.2.2) y observar que el sistema es de segundo orden (n = 2) suponemos que F(z) tiene la siguiente forma:
F ( z ) = a 1 z 1 + a 2 z 2
(6.2.12)
Dado que la entrada es una funcin escaln, de la ecuacin (6.2.8) requerimos que
1 F ( z ) = (1 z 1 ) N ( z )
(6.2.13)
Dado que G(z) tiene un polo crticamente estable en z = 1, el requisito de estabilidad define que 1 - F ( z ) debe tener un cero en z = 1. Sin embargo la funcin 1 - F ( z ) ya tiene un trmino 1 - z -1, por lo que el requisito est satisfecho.
- 157 -
En vista de que el sistema no deber mostrar componentes oscilatorias entre muestras y la entrada es una funcin escaln, necesitamos que x (t 2 T ) sea constante. Si observamos que u( t ), la salida del mantenedor de orden cero, es una funcin en tiempo continuo, una constante x(t 2 T ) requiere que u( t ) tambin sea constante para t 2 T . En trminos de la transformada z, U( z ) debe ser del tipo siguiente en potencias de z -1:
U ( z ) = b + b1 z 1 + b z 2 + z 3 + L
0
donde b es una constante. Dado que la funcin de transferencia de la planta G p (s ) involucra un integrador
1 (un integrador es un aparato cuya salida es la derivada de la s
entrada [REF. 2]), b deber ser cero. De lo contrario, la salida no podra conservarse constante a partir de t = 2 T. En consecuencia tenemos
U ( z ) = b0 + b1 z 1
- 158 -
Se demuestra a continuacin: 1 1 z
1
Siendo (1(k ) ) =
= 1 + z 1 + z 2 + z 3 + L
supongamos
U ( z ) = b0 + b1 z 1 + b z 2 + z 3 + L = b0 + b1 z 1 + b z 2 1 + z 1 + z 2 + L =
b0 + (b1 b0 ) z 1 + (b b1 ) z 2 1 = 1 z 1 1 z 1
= b0 + b1 z
+b z
X ( z) = G( z) U ( z)
La salida x(t) tiene que ser constante a partir de t 2 T . Luego su transformada z, X(z), ser de la forma c1 z 1 + c 2 z 2
) 1 1z
a1 (1 a 2 z 1 ) z 1 b0 + (b1 b0 ) z 1 + (b b1 ) z 2 X ( z) = G( z) U ( z) = (1 z 1 ) (1 a1 z 1 ) 1 z 1
1 1 z 1
(1 z )
1 2
- 159 -
U ( z) =
X ( z ) X ( z ) R( z ) R( z ) = = F ( z) G ( z ) R( z ) G ( z ) G( z)
= F ( z)
1 z 1 0.36788 (1 + 0.7183 z 1 ) z 1
(1 z 1 ) (1 0.36788 z 1 )
= F ( z)
Para que U(z) sea una serie en z -1 con slo dos trminos, F( z ) debe ser de la siguiente forma:
F ( z ) = (1 + 0.7183 z 1 ) z 1 F1
(6.2.14)
U ( z) =
1 (1 0.36788 z 1 ) F1 0.36788
(6.2.15)
Esta ecuacin da U( z ) en trminos de F1. Una vez que se determine la constante F1, U( z ) se puede dar como una serie en z -1 con slo dos trminos.
- 160 -
1 a1 z 1 a 2 z 2 = (1 z 1 ) N ( z )
El primer miembro de esta ltima ecuacin deber ser divisible entre 1 - z -1. Si dividimos el primer miembro entre 1 - z -1, el cociente es 1 + (1 a1 ) z 1 y el resto es (1 a1 a 2 ) z 2 . Por lo tanto, N( z ) se determina como
N ( z ) = 1 + (1 a1 ) z 1
(6.2.16)
y el resto deber ser cero. Esto requiere que 1 a1 a 2 = 0 a1 + a 2 = 1 . Tambin de las ecuaciones (6.2.12) y (6.2.14) tenemos
(6.2.17)
F ( z ) = a1 z 1 + a 2 z 2 = (1 + 0.7183 z 1 ) z 1 F1
Por lo tanto,
a1 + a 2 z 1 = (1 + 0.7183 z 1 ) F1
- 161 -
La divisin del primer miembro de esta ltima ecuacin entre 1 + 0.7183 z 1 da el Cociente a1 y el resto (a 2 0.7183 a1 ) z 1 . Al igualar el cociente con F1 y el resto con cero, obtenemos
F1 = a1
y
a 2 0.7183 a1 = 0
(6.2.18)
a1 = 0.582 ,
a 2 = 0.418
F ( z ) = 0.582 z 1 + 0.418 z 2
y
(6.2.19)
F1 = 0.582
La ecuacin (6.2.16) da
N ( z ) = 1 + 0.418 z 1
(6.2.20)
- 162 -
La funcin transferencia de pulso del controlador digital GC( z ) es determinada a continuacin a partir de la ecuacin (6.2.10) como sigue. Refirindonos a las ecuaciones
(6.2.11), (6.2.14) y (6.2.20),
GC ( z ) =
F ( z) G ( z ) (1 z 1 ) N ( z )
(1 + 0.7183 z 1 ) z 1 0.582 0.36788 (1 + 0.7183 z 1 ) z 1 (1 z 1 ) (1 + 0.418 z 1 ) (1 z 1 ) (1 0.36788 z 1 )
Con el controlador digital as diseado, la funcin transferencia de pulso en lazo cerrado se convierte en:
- 163 -
La salida del sistema en respuesta a una entrada escaln unitario r( t ) = 1 se puede obtener como sigue:
X ( z ) = F ( z ) R ( z ) = 0.582 z 1 + 0.418 z 2
) 1 1z
= 0.582 z 1 + z 2 + z 3 + L
Por lo tanto,
x(0) = 0
x(1) = 0.582 x( k ) = 1
k = 2, 3, 4, ...
U ( z) =
Por lo tanto, la seal de control u( k ) se convierte en cero para k 2 tal y como se requiere. No existe componente oscilatoria entre muestras en la salida una vez alcanzado el tiempo de establecimiento.
- 164 -
G ( z 1 ) =
B ( z 1 ) A( z 1 )
(6.3.1)
donde A( z 1 ) y B ( z 1 ) son polinomios coprimos (no tienen ceros comunes), con grado(B) = grado(A) (para asegurar que la planta sea causal) y B(0) = 0 (es decir, la planta se caracteriza por un exceso de polos ceros igual a uno, debido al proceso de discretizacin de la planta). Es decir, estamos suponiendo
bn1 z n1 + L + b1 z +b 0 B( z ) = G( z) = n n 1 z + a n1 z + L + a1 z + a0 A( z )
con gradoz(B) < gradoz(A).
La funcin de transferencia dada representa la dinmica de la planta, incluyendo un dispositivo de retencin, un proceso continuo lineal y un muestreador en serie (de perodo T). La planta continua se describe por una funcin de transferencia ~ B (s) ~ ~ estrictamente propia G p ( s ) = ~ , con gra do s ( B ) < gra do s ( A) . A( s )
- 165 -
Se quiere encontrar un controlador causal estabilizador de grado mnimo, definido por la funcin de transferencia
GC ( z 1 ) =
Q( z 1 ) P ( z 1 )
(6.3.2)
donde P y Q son polinomios coprimos, y tal que el sistema presente una respuesta Deadbeat, es decir, que la salida tenga un tiempo de establecimiento finito con error permanente nulo, para una seal de referencia definida por
K ( z 1 ) R( z ) = H ( z 1 )
1
(6.3.3)
que
sea
causal.
Adems
suponemos que H tiene todos sus ceros en z en el exterior, o sobre el crculo unidad del plano complejo, ya que las seales de referencia son funciones no decrecientes en el tiempo, tales como la funcin escaln, rampa o exponencial.
- 166 -
F ( z 1 ) =
GC ( z 1 ) G ( z 1 ) QB = 1 + GC ( z 1 ) G ( z 1 ) P A + Q B
(6.3.4)
y el error es
E ( z 1 ) = R ( z 1 )
P A K P A = P A+QB H P A+QB
(6.3.5)
Para asegurar que el sistema alcanza el estado permanente en un nmero finito de perodos de muestreo y tiene un error permanente nulo, la secuencia de error e( k ), correspondiente a E ( z 1 ) , debe desaparecer despus de un nmero finito de instantes de muestreo. Eso quiere decir que el polinomio E ( z 1 ) debe tener un nmero finito de trminos. Entonces, el problema consiste en determinar los polinomios P ( z 1 ) y Q( z 1 ) que hacen que la secuencia de error sea finita. [REF. 4].
Se supone que el estado inicial de la planta es nulo, de forma que se pueda definir un controlador cancelador.
- 167 -
A = Ae A i B = Be Bi K = Ke Ki
donde Ae , Be , Ke son factores estables de A, B, y K; es decir, tienen todos sus ceros dentro del crculo unidad. Tambin, para permitir la posibilidad de que Ai y H tengan ceros comunes, definimos los polinomios coprimos Asi y Hs tales que
As i Hs
Ai H
(6.3.9)
Q = Ae Q p
(6.3.10)
siendo Ae el mximo comn divisor de Q y A. Entonces, Qp y A son coprimos ( Ae representa los polos estables de la planta que son cancelados por ceros del controlador). Definimos el polinomio S de la forma
S=PA+QB
(6.3.11)
- 168 -
S = P Ae Ai + Ae Qp B
= Ae ( P Ai + Qp B )
(6.3.12)
P = B e Pp
(6.3.13)
siendo Be el mximo comn divisor de P y B. Entonces, Pp y Bi son coprimos ( B representa los ceros estables de la planta que son cancelados por polos del e controlador). Sustituyendo (6.3.13) en (6.3.12) y utilizando (6.3.7) queda
S = Ae ( Be Pp Ai + Qp Be Bi )
= Ae Be ( Pp Ai + Qp Bi )
S = Ae Be Sp
(6.3.14)
notar que S es el polinomio caracterstico del sistema en lazo cerrado; por tanto, S p debe tener todos sus ceros dentro del crculo unidad para que el sistema sea estable.
- 169 -
E=
K Be Pp A S H
K Pp A s i Hs Sp
(6.3.15)
Para que E sea un polinomio finito es necesario que se cumplan las siguientes condiciones:
1) Hs divide a 2) Sp divide a
K Pp As i K Pp As i
La primera condicin implica que Hs debe dividir a Pp , ya que Hs es coprimo con K y As i ; por lo tanto, Pp es de la forma
Pp = Hs Pn
(6.3.16)
Sp = Hs Pn Ai + Qp Bi
(6.3.17)
E=
K Pn As i Sp
(6.3.18)
- 170 -
La segunda condicin implica que Sp debe dividir a K, ya que Sp es coprimo con Ai (porque Qp y Bi son coprimos con A ) y adems es coprimo con Pn i (porque Qp y Bi son tambin coprimos con Pn ). Por lo tanto, Sp es de la forma
Sp = Ke
(6.3.19)
E = K i Pn As i
(6.3.20)
Hs Pn Ai + Qp Bi = Ke
(6.3.21)
U ( z 1 ) =
Q E ( z 1 ) P
(6.3.22)
U=
Q Ki Pn As i P
Ae Qp Ki Pn As i Be Hs Pn
U=
Ae Q p Ki As i Be Hs
(6.3.23)
- 171 -
Y ( z 1 ) =
B U ( z 1 ) A
(6.3.24)
Y=
B Ae Qp Ki As i A Be Hs
B A Qp Ki A Be H
Y=
Bi Q p Ki H
(6.3.25)
Las expresiones (6.3.10), (6.3.13), (6.3.16) y (6.3.21) son las ecuaciones de diseo del controlador Deadbeat.
- 172 -
En el desarrollo del apartado anterior hemos obtenido las ecuaciones que caracterizan a los controladores Deadbeat. Ahora vamos a obtener la solucin a dichas ecuaciones. El problema matemtico consiste en determinar dos polinomios Pn y Qp que satisfagan la ecuacin polinmica lineal (6.3.21). Esta ecuacin se denomina ecuacin Diofntica. La ecuacin Diofntica (6.3.21) tiene solucin si y solo si el mximo comn divisor de ( Ai H s ) y Bi divide a K e (la demostracin de este teorema se encuentra en la [REF. 1]). Como Ai y Bi son coprimos, todo divisor comn de H s y Bi debe dividir tambin a K e . Pero H s y K e son coprimos; por consiguiente, H s y Bi deben ser coprimos para que (6.3.21) tenga solucin. Esta condicin se puede expresar de diferentes formas: si H s y Bi son coprimos implica que H s y B tambin lo son, ya que todos los ceros de H s son inestables; adems H y B deben ser coprimos, ya que los ceros comunes de Ai y H no estn en B. Es decir, los ceros de la planta no deben coincidir con los polos de la referencia. Esta es la condicin necesaria y suficiente para resolver el problema del Control Deadbeat.
- 173 -
Si se cumple la condicin anterior, existen infinitos polinomios que satisfacen la ecuacin (6.3.21). Nos interesa elegir una solucin que haga que el tiempo de establecimiento sea mnimo. La expresin (6.3.20) muestra que el tiempo de establecimiento del error es minimizado haciendo mnimos los grados de los polinomios Ki , Pn , y As i . Esto se consigue si hacemos que Ae y Ke sean los factores estables de mximo grado de A y K, respectivamente (es decir, cancelamos todos los polos estables de la planta y todos los ceros estables de la referencia), y si elegimos la solucin Pn de grado mnimo de (6.3.21). Por la teora de las ecuaciones Diofnticas [REF. 1], la solucin de la ecuacin
(6.3.21) de grado mnimo cumple que
Notar que como grado(Pn ) debe ser menor que grado(Bi ) nos interesa cancelar todos los ceros estables de la planta, ya que de esta forma minimizamos el grado de Bi .
Los resultados que hemos obtenido pueden resumirse en un procedimiento directo para resolver el problema de diseo de Controladores Deadbeat de tiempo mnimo.
- 174 -
se supone que para los datos existe un Controlador Deadbeat causal de tiempo mnimo.
Paso 1: calcular G ( z 1 ) =
B A
y R ( z 1 ) =
K H
A = Ae A i B = Be Bi K = Ke Ki
- 175 -
Pn Ai Hs + Qp Bi = Ke
respecto de Pn y Qp elegir una solucin tal que grado( Pn ) = grado( Bi ) - 1 grado( Qp ) = grado( Ai ) + grado( Hs ) - 1
G D ( z 1 ) =
Ae Q p Q = P H s Be Pn
- 176 -
Ejemplo:
Utilizando el mismo ejemplo del apartado 6.2, vamos a construir el controlador Deadbeat siguiendo este algoritmo y usando las herramientas que nos proporciona Maple. Considere el sistema de control mostrado en la figura (6-a) del apartado 6.2, donde la funcin de transferencia de la planta G p ( s ) est dada por
G p ( s) =
1 s ( s + 1)
Disee un controlador digital GC ( z ) , tal que el sistema en lazo cerrado muestre respuesta sin oscilaciones a una entrada escaln unitario. (En una respuesta sin oscilaciones el sistema no mostrar componentes oscilatorias entre muestras en la salida, una vez alcanzado el tiempo de establecimiento). El perodo de muestreo T se supone de 1seg.
- 177 -
1 s ( s + 1)
2
, y sustituimos el perodo de
> G(z) := factor(evalf(subs(T=1, simplify(((z-1)/z)* ztrans(subs(t=k*T, invlaplace(1/s*Gp(s), s, t)), k, z))))): G(z) = B/A;
.36788 z + .26424 ( z 1. ) ( z .36787 ) = B A
B y la seal de referencia es A
1 R( s) = , s
R( z) =
z K = , z 1 H
R ( z 1 ) =
1 1 z 1
z z1
K H
1 1w
R( w ) :=
- 178 -
Puede apreciarse que B y H son coprimos, ya que no tienen ceros comunes, por lo que existe un Controlador Deadbeat para este proceso.
NOTA del autor: Como Maple trabaja siempre en funcin de 'z', y el algoritmo es en
funcin de ' z 1 ' , se hace necesario realizar una transformacin. La implementamos a continuacin, convirtindose la variable ' z 1 ' en la variable 'w'. En el procedimiento
'Conversion', se pasa como parmetro una funcin en z. Las variables globales 'polwn'
y 'polwd' son, respectivamente, el numerador y el denominador de dicha funcin, despus de realizar la transformacin.
> AuxC := proc(polz, grado) global polw; polw := expand(polz/z^grado): polw := subs(1/z^3 = w^3, 1/z^2 = w^2, 1/z = w, polw): end:
- 179 -
> Conversion := proc(polz) local num, den, fac1, fac2, gradod, oper, pot; global polwn, polwd; num den gradod polwn polwd fac1 fac2 pot := numer(polz): := denom(polz): := degree(den, z): := 1: := 1: := 1: := 1: := 1:
# transformamos el numerador AuxC(num, gradod): polwn := polw: # transformamos el denominador oper := op(0, den): if (oper = `^`) then fac1 := op(1, den): pot := op(2, den): elif (oper = `*`) then fac1 := op(1, den): fac2 := op(2, den):
(contina)
- 180 -
else fac1 := den: gradod := 2: fi: AuxC(fac1, degree(fac1,z)): polwd := polw^pot: if (fac2 <> 1) then AuxC(fac2, degree(fac2,z)): polwd := polwd*polw^pot: fi: end:
G( w ) := .26424
( w + 1.3922 ) w ( 1 1. w ) ( 1 .36787 w )
- 181 -
A continuacin se muestra la transformacin de R ( z ) . En el resumen sobre estabilidad del apartado 6.2 (resumen estabilidad) se muestran las diferentes R ( z 1 ) .
K := -1 H := 1 + w
Calculamos los siguientes polinomios (paso 2 del algoritmo): Primero se implementa el procedimiento 'Factoriz', que dado un determinado polinomio, lo divide en los factores estables (variable global 'face') e inestables (variable global 'faci').
> AuxF := proc(fac, pot) local r, raiz, grado; global face, faci; face := 1: faci := 1: grado := degree(fac, w): if (grado=0) then faci := fac^pot: else r := solve(fac=0):
(contina)
- 182 -
if (grado>1) then raiz := r[1]: else raiz := r: fi: if (abs(raiz) <= 1) then faci := fac^pot: else face := fac^pot: fi: fi: end: > Factoriz := proc(poli) local p, oper, fac, opp, grado, pot, polin, maxi, j, fac1, fac2, ne, ni; global pe, pi; p pe pi ne ni pot := 1: := 1: := 1: := 1: := 1: := 1:
fac1 := 1: fac2 := 1: polin := poli: oper := op(0, poli): fac opp := op(1, poli): := op(0, fac):
(contina)
- 183 -
if (
or
oper= `*`)
:= pi*fac:
maxi := nops(poli): for j from 2 to maxi do p := p*op(j, poli): od: polin := p: fi: oper := op(0, polin): if (oper = `^`) then fac1 := op(1, polin): pot := op(2, polin): elif (oper = `*`) then fac1 := op(1, polin): fac2 := polin/fac1: else fac1 := polin: fi: AuxF(fac1, pot): pe pi := pe*face: := pi*faci: then ne := pe: ni := pi:
(contina)
if (fac2 <> 1)
- 184 -
Ai := 1 1. w
- 185 -
Asi Ai 1 z 1 = = =1 H s H 1 z 1
Asi := -1. Hs := 1
- 186 -
Pn Ai Hs + Qp Bi = Ke
= 0 = 0
Ae Q p Q = P H s Be Pn
- 187 -
Hacemos otra transformacin, para dejarlo en funcin de z (en la variable global 'polz').
> AuxD := proc(polz, grado) local poli; global mulz; poli := subs(w^2 = 1/z^2, w = 1/z, polz): mulz := expand(poli*z^grado): end:
> DesConv := proc(polw) local num, den, polzn, polzd, grado, gradod; global polz; num den grado gradod := numer(polw): := denom(polw): := degree(num, w): := degree(den, w):
if (gradod > grado) then grado := gradod: fi: # transformamos el numerador AuxD(num, gradod): polzn := mulz:
(contina)
- 188 -
# transformamos el denominador AuxD(den, gradod): polzd := mulz: polz := factor(polzn)/factor(polzd): end: > G[C](w); DesConv(%): G[C](z) := polz;
3.7844 1 .36787 w w + 1.3922
GC( z ) :=
La transformada Z de la seal de error es E ( z 1 ) = K e Pn Asi = 1 (el tiempo de establecimiento "discreto" es un intervalo de muestreo).
En funcin de z quedara:
- 189 -
Ae Q p K i Asi Be H s
U( z ) :=
Bi Q p K i H
Y( z ) := 1.0000
A continuacin se muestra la salida del sistema grficamente. Para ello, primero se calculan las transformadas inversas de las funciones del ejemplo, y a continuacin las secuencias de puntos correspondientes. Despus hacemos los grficos.
- 190 -
> iR iG iE iY iU
:= invztrans(R(z), z, k): := invztrans(G(z), z, k): := invztrans(E(z), z, k): := invztrans(Y(z), z, k): := invztrans(U(z), z, k):
> sR := [seq([k, iR], k=0..10)]: dR := plot(sR, title=`r(k)`, axes=frame, style=point, color=blue): sY := [seq([k, iY], k=0..10)]: dY := plot(sY, title=`y(t)`, axes=frame):
Para determinar las secuencias de puntos de la seal de error, 'sE', y de la seal de control, sU, se utiliza un bucle 'for', con lo que se consiguen dibujar las mismas como si se tratara de pulsos.
> sE := []: for i from 0 to 10 do sE := [op(sE), [i, subs(k=i, iE)], [i+1, subs(k=i, iE)]]: od: dE := plot(sE, title=`Error e(k)`, axes= frame): sU := []: for i from 0 to 10 do sU := [op(sU), [i, subs(k=i, iU)], [i+1, subs(k=i, iU)]]: od: dU := plot(sU, title=`Control u(k)`, axes=normal):
- 191 -
> sG := [seq([k, iG], k=0..10)]: dG := plot(sG, title=`g(t)=L^(-1)[Gp(s)]`, axes=frame): sGc := [seq([k, iGc], k=0..10)]: dGc := plot(sGc, title=`Gc(k)`, axes=frame): > dRY := display({dR, dY}, title=`Entrada r(k), Salida y(t)`): plots[display](array(1..4, [dG, dRY, dE, dU]));
La salida continua del sistema puede tener oscilaciones que no se ven en los instantes de muestreo. Una forma de detectar las oscilaciones es calcular la salida continua entre los instantes de muestreo. Para ello se puede utilizar el Mtodo de la
Transformada Z Modificada. Para ms informacin, [REF. 3] y [REF. 4].
- 192 -
6.4.1.- Disear el controlador Deadbeat de tiempo mnimo para el proceso definido por
G p( s ) = 1 s+ 2
> Gp := s->1/(s+2);
Gp := s 1 s+2
> B:='B': A:='A': Qp:='Qp': Pn:='Pn': > G(z) := factor(evalf(subs(T=1, simplify(((z-1)/z)* ztrans(subs(t=k*T, invlaplace(1/s*Gp(s), s, t)), k, z))))): G(z) = B/A;
1.1752 1 2.7183 z .36787 = B A
- 193 -
G(w) := B/A;
G( w ) := 1.1752
w 2.7183 .36787 w
> R(s)
:= 1/s^2;
R(z) := subs(T=1, ztrans(subs(t=k*T, invlaplace(R(s), s, t)), k, z)): Conversion(R(z)): poli := polwn/polwd: K H := numer(poli); := denom(poli);
R(w) := K/H;
R( s ) := 1 s 2
2
K := w
H := ( 1 + w )
R( w ) :=
w ( 1 + w ) 2
- 194 -
Se puede ver que B y H son coprimos: existe un Controlador DeadBeat para este proceso. Calculamos los siguientes polinomios:
> B; Factoriz(B): Be := pe; Bi := pi; factor(A); Factoriz(A): Ae := pe; Ai := pi; K; Factoriz(K): Ke := pe; Ki := pi; elto := simplify(Ai/H); Asi := numer(elto); Hs := denom(elto);
1.1752 w 2.7183 .36787 w Ae := 2.7183 .36787 w
w
Ke := 1 Ki := w
elto := Asi := 1
1 ( 1 + w )
2
Be := 1
Bi := 1.1752 w
Ai := 1
Hs := ( 1 + w )
- 195 -
GC( z ) := 4.6260
( z .13533 ) ( z .50001 ) (z 1) 2
- 196 -
El tiempo de establecimiento "discreto" son dos intervalos de muestreo. La seal de control es:
U( z ) := 4.6260
( z .13533 ) ( z .50001 ) z (z 1) 2
- 197 -
> iR := invztrans(R(z), z, k): iG iE iY iU := invztrans(G(z), z, k): := invztrans(E(z), z, k): := invztrans(Y(z), z, k): := invztrans(U(z), z, k): iGc := invztrans(G[C](z), z, k):
- 198 -
> sR
dR := plot(sR, title=`r(k)`, axes=normal, style=point, color=blue): sG := [seq([k, iG], k=0..10)]: dG := plot(sG, title=`g(t)=L^(-1)[Gp(s)]`, axes=normal): sGc := [seq([k, iGc], k=0..10)]: dGc := plot(sGc, title=`Gc(k)`, axes=normal): sE := []: sE := [op(sE), [i, subs(k=i, iE)], [i+1, subs(k=i, iE)]]: od: dE := plot(sE, title=`e(k)`, axes=normal): sY := [seq([k, iY], k=0..10)]: dY := plot(sY, title=`y(t)`, axes=normal): sU := []: for i from 0 to 10 do sU := [op(sU), [i, subs(k=i, iU)], [i+1, subs(k=i, iU)]]: od: dU := plot(sU, title=`u(k)`, axes=normal): for i from 0 to 10 do
- 199 -
> dRY := display({dR, dY}, title=`Entrada r(k), Salida y(t)`): plots[display](array(1..3, [dRY, dE, dU]));
6.8.2.- Disear el controlador Deadbeat de tiempo mnimo para el proceso definido por
G p( s ) = 1 1 2 s 2
para la entrada rampa unidad. Considerar que el perodo de muestreo T es 0.3 seg.
Primero inicializamos las variables, para que los resultados del ejercicio anterior no impliquen errores en este.
> Gp := s->1/(s-(1/2))^2;
Gp := s 1 1 2 s 2
- 200 -
> G(z) := factor(evalf(subs(T=0.3, simplify(((z-1)/z)* ztrans(subs(t=k*T, invlaplace(1/s*Gp(s), s, t)), k, z))))): G(z) = B/A;
.0498 z + .055398 ( z 1.1618 ) 2 = B A
G(w) := B/A;
( w + .89895 ) w ( 1 1.1618 w ) 2
- 201 -
> R(s)
:= 1/s^3;
R(z) := subs(T=0.3, ztrans(subs(t=k*T, invlaplace(R(s), s, t)), k, z)); Conversion(R(z)): poli := polwn/polwd: K H := numer(poli); := denom(poli);
1 s 3
R(w) := K/H;
R( s ) :=
K := w ( .045000 + .045000 w )
H := ( 1 + w ) 3
R( w ) :=
w ( .045000 + .045000 w ) ( 1 + w ) 3
Se puede ver que B y H son coprimos: existe un Controlador DeadBeat para este proceso. Calculamos los siguientes polinomios:
- 202 -
w ( .045000 + .045000 w ) Ke := 1
Ki := w ( .045000 + .045000 w )
1.3498 ( w .86073 )
Ae := 1
Ai := ( 1 1.1618 w ) 2
Hs := ( 1. + w )
- 203 -
GC( z ) := 85.327
E( z ) := .045000
- 204 -
- 205 -
> iR iG iE iY iU > sR
:= invztrans(R(z), z, k): := invztrans(G(z), z, k): := invztrans(E(z), z, k): := invztrans(Y(z), z, k): := invztrans(U(z), z, k): := [seq([k, iR], k=0..10)]:
dR := plot(sR, title=`r(k)`, axes=normal, style=point, color=blue): sG := [seq([k, iG], k=0..10)]: dG := plot(sG, title=`g(t)=L^(-1)[Gp(s)]`, axes=normal): sGc := [seq([k, iGc], k=0..10)]: dGc := plot(sGc, title=`Gc(k)`, axes=normal): sE := []: sE := [op(sE), [i, subs(k=i, iE)], [i+1, subs(k=i, iE)]]: od: dE := plot(sE, title=`e(k)`, axes=normal): sY := [seq([k, iY], k=0..10)]: dY := plot(sY, title=`y(t)`, axes=normal): sU := []: for i from 0 to 10 do sU := [op(sU), [i, subs(k=i, iU)], [i+1, subs(k=i, iU)]]: od: dU := plot(sU, title=`u(k)`, axes=normal): for i from 0 to 10 do
- 206 -
> dRY := display({dR, dY}, title=`Entrada r(k), Salida y(t)`): plots[display](array(1..4, [dG, dRY, dE, dU]));
- 207 -
6.5 REFERENCIAS.
[REF. 1] K.J. Astrm y B. Wittenmark, Sistemas Controlados por Computador, Paraninfo, 1988 [REF. 2] G.F. Franklin, J. D. Powell, A. Emami-Naeini, Control de Sistemas Dinmicos con Retroalimentacin, Addison-Wesley Iberoamericana, 1991 [REF. 3] K. Ogata, Sistemas de Control en Tiempo Discreto, Prentice-Hall, 2 edicin (1996) [REF. 4] J. Rebollo Rodrguez, SECAD: Mdulo de Diseo de Controladores, U.P.M., Escuela Superior de Ingenierios de Telecomunicaciones, curso 1990-91
- 208 -