Sunteți pe pagina 1din 66

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

Captulo 6. DISEO DE CONTROL POR ESTABLECIMIENTO FINITO (DEAD BEAT).

- 143 -

Sistemas de Control en Tiempo Discreto

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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 -

Sistemas de Control en Tiempo Discreto

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

(Gh (s) G p (s) )t =kT

(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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

A continuacin se forma la funcin transferencia de pulso en lazo cerrado y la llamamos F(z):

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 -

Sistemas de Control en Tiempo Discreto

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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 -

Sistemas de Control en Tiempo Discreto

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(kT ) = r (kT ) x(kT ) ,

E ( z ) = R ( z ) X ( z ) = R ( z ) (1 F ( z ) )

(6.2.5)

- 150 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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

Para una entrada rampa unitaria r (t ) = t 1(t ) ,

R( z) =

(1 z )

T z 1

1 2

Y para una entrada aceleracin unitaria r (t ) =

t 2 1(t ) , 2

R( z) =

T 2 z 1 (1 + z 1 ) 2 1 z 1

- 151 -

Sistemas de Control en Tiempo Discreto

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.

Al sustituir la ecuacin (6.2.6) en la ecuacin (6.2.5) obtenemos

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

donde N( z ) es un polinomio en z -1 con un nmero finito de trminos. Entonces

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 -

Sistemas de Control en Tiempo Discreto

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.

Comentarios: 1. Dado que la funcin transferencia de pulso en lazo cerrado F( z ) es un

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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 -

Sistemas de Control en Tiempo Discreto

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

(Gh (s) G p (s) )t =kT


1 e T s 1

1 = 2 s ( s + 1) = (1 z ) s 2 ( s + 1)

> restart: with(inttrans): Digits:=5: > Gp := s -> 1/(s*(s+1));


Gp := s 1 s (s + 1)
1 , y sustituimos el perodo s ( s + 1)
2

Calculamos primero la transformada z de

de muestreo T = 1 tras multiplicar la transformada por 1 z 1 =

z 1 . z

> G(z) := evalf(subs(T=1, simplify(((z-1)/z)* ztrans(subs(t=k*T, invlaplace(1/s*Gp(s), s, t)), k, z))));


G( z ) := 1. .36788 z + .26424 2 1. z + 1.3679 z .36788

> factor(G(z));
.36788 z + .26424 ( z 1. ) ( z .36787 )

- 156 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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) =

0.36788 (1 + 0.71828 z 1 ) z 1 (1 z 1 ) (1 0.36787 z 1 )

Recordamos ahora la ecuacin (6.2.1):

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 -

Sistemas de Control en Tiempo Discreto

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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

En G(z) ya se tiene el trmino X(z) se tendra

1 1 z 1

luego no se puede tener en U(z), ya que si no en

(1 z )

1 2

y X(z) no podra ser constante a partir de t = 2T. Por lo tanto

b = 0 y adems en U(z) tiene que aparecer el trmino (1 a1 z 1 ) .

- 159 -

Sistemas de Control en Tiempo Discreto

U ( z ) se puede calcular de la siguiente manera:

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)

1 0.36788 z 1 0.36788 (1 + 0.7183 z 1 ) z 1

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)

donde F1 es una constante. Entonces U( z ) se puede escribir como sigue:

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

Ahora determinaremos N( z ), F( z ) y F1. Si se sustituye la ecuacin (6.2.12) en la ecuacin (6.2.13) obtenemos

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 -

Sistemas de Control en Tiempo Discreto

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)

Si se resuelven las ecuaciones (6.2.17) y (6.2.18) en funcin de a1 y a2 da

a1 = 0.582 ,

a 2 = 0.418

Entonces, F(z) se determina en la forma

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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 )

1.582 0.582 z 1 = 1 + 0.418 z 1

Con el controlador digital as diseado, la funcin transferencia de pulso en lazo cerrado se convierte en:

X ( z) = F ( z ) = 0.582 z 1 + 0.418 z 2 R( z) 0.582 ( z + 0.7183) z2

- 163 -

Sistemas de Control en Tiempo Discreto

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, ...

Observe que la sustitucin de 0.582 en lugar de F1 en la ecuacin (6.2.15) da como resultado

U ( z) =

1 (1 0.36788 z 1 ) 0.582 = 1.582 0.582 z 1 0.36788

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

6.3 DISEO DE UN ALGORITMO.


A continuacin se describe el algoritmo para el diseo del controlador digital, con tiempo de establecimiento mnimo, y error cero en estado permanente. [REF. 4].
6.3.1 Definicin del problema.

Consideremos el sistema descrito por la siguiente funcin de transferencia:

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 -

Sistemas de Control en Tiempo Discreto

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)

donde H y K son polinomios coprimos y H( 0 ) 0 para

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

6.3.2 Ecuaciones de diseo.

La funcin de transferencia del sistema en lazo cerrado es la siguiente:

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 -

Sistemas de Control en Tiempo Discreto

Factorizamos los polinomios A( z 1 ) , B( z 1 ) y K ( z 1 ) de la siguiente forma:

A = Ae A i B = Be Bi K = Ke Ki

(6.3.6) (6.3.7) (6.3.8)

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)

Expresamos Q( z 1 ) de la siguiente manera:

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

sustituyendo (6.3.10) en (6.3.11) y utilizando (6.3.6) obtenemos

S = P Ae Ai + Ae Qp B
= Ae ( P Ai + Qp B )
(6.3.12)

Expresamos P de la siguiente forma:

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 -

Sistemas de Control en Tiempo Discreto

Sustituyendo (6.3.11) en (6.3.5) y utilizando (6.3.14) obtenemos

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)

sustituyendo (6.3.16) en (6.3.14) obtenemos

Sp = Hs Pn Ai + Qp Bi

(6.3.17)

y sustituyendo (6.3.16) en (6.3.15) queda

E=

K Pn As i Sp

(6.3.18)

- 170 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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)

ya que Sp debe ser causal y estable. Sustituyendo (6.3.19) en (6.3.18) obtenemos

E = K i Pn As i

(6.3.20)

Sustituyendo (6.3.19) en (6.3.17) queda

Hs Pn Ai + Qp Bi = Ke

(6.3.21)

El control est relacionado con el error mediante la siguiente expresin

U ( z 1 ) =

Q E ( z 1 ) P

(6.3.22)

Sustituyendo (6.3.20) en (6.3.21) y utilizando (6.3.10), (6.3.13) y (6.3.16) obtenemos

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 -

Sistemas de Control en Tiempo Discreto

Para el mismo sistema, la relacin entre la salida y el control es

Y ( z 1 ) =

B U ( z 1 ) A

(6.3.24)

Sustituyendo (6.3.22) en (6.3.23) y utilizando (6.3.7) y (6.3.9) obtenemos

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

6.3.3 Condicin para que el problema DeadBeat tenga solucin.

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 -

Sistemas de Control en Tiempo Discreto

6.3.4 Control DeadBeat de tiempo mnimo.

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

grado( Pn ) < grado( Qp ) <

grado( Bi ) grado( Ai ) + grado( Hs )

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

6.3.5 Algoritmo: Control DeadBeat de tiempo mnimo.

A continuacin se describe el algoritmo de control Deadbeat de tiempo mnimo. [REF. 4].


Datos:

- la planta Gp( s ) - la seal de referencia R(s) - el perodo de muestreo T


Condiciones de entrada:

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

Paso 2: factorizar A, B y K de la forma

A = Ae A i B = Be Bi K = Ke Ki

siendo Ae, Be, Ke los factores estables de grado mximo de A, B y K.

- 175 -

Sistemas de Control en Tiempo Discreto

Paso 3: determinar As i y Hs mediante la siguiente relacin


As i Hs Ai H

Paso 4: resolver la ecuacin Diofntica

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

Paso 5: entonces el controlador de tiempo mnimo - grado mnimo es

G D ( z 1 ) =

Ae Q p Q = P H s Be Pn

- 176 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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.

> restart: with(inttrans): with(plots): Digits:=5: > Gp := s->1/(s*(s+1));


Gp := s 1 s (s + 1)

- 177 -

Sistemas de Control en Tiempo Discreto

Calculamos primero la transformada z de

1 s ( s + 1)
2

, y sustituimos el perodo de

muestreo T = 1 tras multiplicar la transformada por 1 z 1 . Paso 1.

> 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

Haciendo el algoritmo en z se tiene que G ( z ) =

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

> R(z) := ztrans(invlaplace(1/s, s, t), t, z); R(z) = K/H; R(w) := 1/(1-w);


R( z ) := z z1

z z1

K H
1 1w

R( w ) :=

- 178 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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 -

Sistemas de Control en Tiempo Discreto

> 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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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:

A continuacin se muestra la transformacin de G ( z ) .

> Conversion(G(z)): B := polwn; A := polwd; G(w) := B/A;


B := .26424 ( w + 1.3922 ) w A := ( 1 1. w ) ( 1 .36787 w )

G( w ) := .26424

( w + 1.3922 ) w ( 1 1. w ) ( 1 .36787 w )

- 181 -

Sistemas de Control en Tiempo Discreto

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 ) .

> Conversion(R(z)): poli := polwn/polwd; K := numer(poli); H := denom(poli);


poli := 1 1w

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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)

grado := degree(fac, w):

- 183 -

Sistemas de Control en Tiempo Discreto

if (

(oper = `integer` or (opp = `integer` then pi or

oper = `Float` and opp = `Float`) )

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

Factoriz(fac2): pe := pe*ne: pi := pi*ni: fi: end:

Calculamos los factores estables e inestables de B:

> B; Factoriz(B): Be := pe; Bi := pi;


.26424 ( w + 1.3922 ) w
Be := w + 1.3922
Bi := .26424 w

Calculamos los factores estables e inestables de A:

> A; Factoriz(A): Ae := pe; Ai := pi;


( 1 1. w ) ( 1 .36787 w ) Ae := 1 .36787 w

Ai := 1 1. w

- 185 -

Sistemas de Control en Tiempo Discreto

Calculamos los factores estables e inestables de K:

> K; Factoriz(K): Ke := pe; Ki := pi;


-1 Ke := 1
Ki := -1

Paso 3 del algoritmo,

Asi Ai 1 z 1 = = =1 H s H 1 z 1

por lo tanto Asi = H s = 1

> elto := simplify(Ai/H); Asi := numer(elto); Hs := denom(elto);


elto := -1.

Asi := -1. Hs := 1

- 186 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

Paso 4. Resolver la ecuacin Diofntica

Pn Ai Hs + Qp Bi = Ke

> ecu := Pn*Ai*Hs + Qp*Bi; c1 := coeff(ecu, Pn): c2 := coeff(ecu, Qp):


ecu := 1.0 Pn ( 1 1. w ) + .26424 Qp w
Para resolver la ecuacin diofntica se utiliza la funcin 'gcdex', que para dos polinomios (c1 y c2) calcula su mximo comn divisor.

> gcdex(c1, c2, w, 'Pn', 'Qp'): Pn := Pn*Ke; Qp := Qp*Ke;


Pn := 1.
Qp := 3.7844

grado( Pn ) = grado( Bi ) - 1 grado( Qp ) = grado( Ai ) + grado( Hs ) - 1 = 1 + 0 - 1

= 0 = 0

Paso 5. La funcin de transferencia del controlador es GC ( z ) =

Ae Q p Q = P H s Be Pn

> G[C](w) := (Ae*Qp/(Hs*Be*Pn));


GC( w ) := 3.7844 1 .36787 w w + 1.3922

- 187 -

Sistemas de Control en Tiempo Discreto

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

# 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 ) :=

3.7844 z 1.3922 1.3922 z + 1.0000

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).

> E(w) := Ki*Pn*Asi;


E( w ) := 1.

En funcin de z quedara:

> DesConv(E(w)): E(z) := polz;


E( z ) := 1.

- 189 -

Sistemas de Control en Tiempo Discreto

Y la transformada Z de la seal de control es U ( z 1 ) =

Ae Q p K i Asi Be H s

> U(w) := Ae*Qp*Ki*Asi/(Be*Hs); DesConv(U(w)): U(z) := polz;


U( w ) := 3.7844 1 .36787 w w + 1.3922

U( z ) :=

3.7844 z 1.3922 1.3922 z + 1.0000

La salida del sistema es Y ( z 1 ) =

Bi Q p K i H

> Y(w) := Bi*Qp*Ki/H; DesConv(Y(w)): Y(z) := polz;


Y( w ) := 1.0000 w 1 + w 1 z + 1

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

> 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):

iGc := invztrans(G[C](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 -

Sistemas de Control en Tiempo Discreto

> 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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

6.4 EJERCICIOS. > restart: with(inttrans): with(plots): Digits:=5:


Primero hay que haber ejecutado los procedimientos implementados en el apartado anterior: AuxC, Conversion, AuxF, Factoriz, AuxD, DesConv.

6.4.1.- Disear el controlador Deadbeat de tiempo mnimo para el proceso definido por
G p( s ) = 1 s+ 2

para la entrada rampa unidad. Considerar que el perodo de muestreo T es 1 seg.


G ( z 1 ) est definida por

> Gp := s->1/(s+2);
Gp := s 1 s+2

Se inicializan las variables, por si se ha ejecutado el ejemplo del apartado 6.3.5:

> 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 -

Sistemas de Control en Tiempo Discreto

Hacemos la transformacin para obtener G ( w ) :

> Conversion(G(z)): B A := polwn; := polwd;


B := 1.1752 w A := 2.7183 .36787 w

G(w) := B/A;

G( w ) := 1.1752

w 2.7183 .36787 w

Y la seal de referencia es:

> 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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

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 -

Sistemas de Control en Tiempo Discreto

Ahora se resuelve la ecuacin diofntica.

> ecu := Pn*Ai*Hs + Qp*Bi; c1 := coeff(ecu, Pn): c2 := coeff(ecu, Qp):


2 ecu := Pn ( 1 + w ) + 1.1752 Qp w

> gcdex(c1,c2,w,'Pn','Qp'): Pn := Pn*Ke; Qp := Qp*Ke;


Pn := 1
Qp := 1.7018 .85092 w

Por lo tanto, la funcin de transferencia del controlador es la que se muestra a continuacin.

> G[C](w) := (Ae*Qp/(Hs*Be*Pn)); DesConv(%): G[C](z) := polz;


G C( w ) := ( 2.7183 .36787 w ) ( 1.7018 .85092 w ) ( 1 + w ) 2

GC( z ) := 4.6260

( z .13533 ) ( z .50001 ) (z 1) 2

- 196 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

La seal de error E(z):

> E(w) := Ki*Pn*Asi; DesConv(%): E(z) := polz;


E( w ) := w
E( z ) := 1 z

El tiempo de establecimiento "discreto" son dos intervalos de muestreo. La seal de control es:

> U(w) := Ae*Qp*Ki*Asi/(Be*Hs); DesConv(U(w)): U(z) := polz;


U( w ) := ( 2.7183 .36787 w ) ( 1.7018 .85092 w ) w ( 1 + w ) 2

U( z ) := 4.6260

( z .13533 ) ( z .50001 ) z (z 1) 2

- 197 -

Sistemas de Control en Tiempo Discreto

Y la salida del sistema es:

> Y(w) := Bi*Qp*Ki/H; DesConv(Y(w)): Y(z) := polz;


Y( w ) := 1.1752 2 w ( 1.7018 .85092 w ) ( 1 + w )
Y( z ) := 2.0000 z 1.0000 z (z 1) 2

Se muestran ahora estas seales:

> 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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

> sR

:= [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

- 199 -

Sistemas de Control en Tiempo Discreto

> 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.

> B:='B': A:='A': Qp:='Qp': Pn:='Pn':

> Gp := s->1/(s-(1/2))^2;
Gp := s 1 1 2 s 2

- 200 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

> 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

Hacemos la transformacin para obtener G(w).

> Conversion(G(z)): B A := factor(polwn); := polwd;


B := .055398 ( w + .89895 ) w
A := ( 1 1.1618 w )
G( w ) := .055398

G(w) := B/A;

( w + .89895 ) w ( 1 1.1618 w ) 2

- 201 -

Sistemas de Control en Tiempo Discreto

Y la seal de referencia es:

> 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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

> B; Factoriz(B): Be := pe; Bi := pi; factor(A); Factoriz(A): Ae := pe; Ai := pi;


.055398 ( w + .89895 ) w Be := 1 Bi := w ( .055398 w + .049800 )

K; Factoriz(K): Ke := pe; Ki := p1; elto := simplify(Ai/H); Asi := numer(elto); Hs := denom(elto);

w ( .045000 + .045000 w ) Ke := 1
Ki := w ( .045000 + .045000 w )

1.3498 ( w .86073 )

-7 ( 5000. + 5809. w ) elto := .40000 10 3 ( 1. + w )


Asi := .40000 10 -7 ( 5000. + 5809. w ) 2

Ae := 1
Ai := ( 1 1.1618 w ) 2

Hs := ( 1. + w )

Ahora se resuelve la ecuacin diofntica:

> ecu := Pn*Ai*Hs + Qp*Bi; c1 := coeff(ecu, Pn): c2 := coeff(ecu, Qp):


2 3 ecu := Pn ( 1 1.1618 w ) ( 1. + w ) + Qp w ( .055398 w + .049800 )

- 203 -

Sistemas de Control en Tiempo Discreto

> gcdex(c1,c2,w,'Pn','Qp'): Pn := Pn*Ke; Qp := Qp*Ke;


Pn := 1.0000 1.0736 w 4 3 2 Qp := 26.158 w 122.65 w + 228.13 w 207.51 w + 85.327
Por lo tanto, la funcin de transferencia del controlador es la que se muestra a continuacin:

> G[C](w) := (Ae*Qp/(Hs*Be*Pn)); DesConv(%): G[C](z) := polz;


GC( w ) := 4 3 2 26.158 w 122.65 w + 228.13 w 207.51 w + 85.327 3 ( 1. + w ) ( 1.0000 1.0736 w )

GC( z ) := 85.327

2 2 ( z 1.1773 z + .37165 ) ( z 1.2546 z + .82486 ) ( z + 1.0736 ) ( z 1. ) 3

La seal de error E(z):

> E(w) := Ki*Pn*Asi; DesConv(%): E(z) := polz;


E( w ) := .40000 10 -7 2

w ( .045000 + .045000 w ) ( 1.0000 1.0736 w ) ( 5000. + 5809. w )


( z + 1.0740 ) ( z + .99961 ) ( z 1.1578 ) ( z 1.1658 ) z 5

E( z ) := .045000

- 204 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

La seal de control U(z):

> U(w) := Ae*Qp*Ki*Asi/(Be*Hs); DesConv(U(w)): U(z) := polz;


U( w ) := .40000 10 -7 (

4 3 2 ( 26.158 w 122.65 w + 228.13 w 207.51 w + 85.327 ) w 2 3 ( .045000 + .045000 w ) ( 5000. + 5809. w ) ) ( 1. + w )


2 2 U( z ) := 3.8397 ( ( z + 1.0000 ) ( z 1.1771 z + .37155 ) ( z 1.2548 z + .82480 ) 2 5 3 ( z ( z 1. ) ) ( z 2.3236 z + 1.3503 ) )

Y la salida del sistema es:

> Y(w) := Bi*Qp*Ki/H; DesConv(Y(w)): Y(z) := polz;


2 Y( w ) := w ( .055398 w + .049800 ) 4 3 2 ( 26.158 w 122.65 w + 228.13 w 207.51 w + 85.327 ) 3 ( .045000 + .045000 w ) ( 1 + w )

Y( z ) := .19122 ( 2 2 ( z + 1.1125) ( z + .99994) ( z 1.1774 z + .37169) ( z 1.2545 z + .82478) ) 5 3 (z (z 1) )

- 205 -

Sistemas de Control en Tiempo Discreto

Se muestran ahora estas seales:

> 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)]:

iGc := invztrans(G[C](z), z, k):

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 -

Captulo 6: Diseo de Control por Establecimiento Finito (DeadBeat)

> dRY := display({dR, dY}, title=`Entrada r(k), Salida y(t)`): plots[display](array(1..4, [dG, dRY, dE, dU]));

- 207 -

Sistemas de Control en Tiempo Discreto

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 -

S-ar putea să vă placă și