cap6 CONTROLDEADBIT

66
Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat) - 143 - Capítulo 6. DISEÑO DE CONTROL POR ESTABLECIMIENTO FINITO (DEAD BEAT).

description

control dead bit

Transcript of cap6 CONTROLDEADBIT

Page 1: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 143 -

Capítulo 6.

DISEÑO DE CONTROL

POR ESTABLECIMIENTO FINITO

(DEAD BEAT).

Page 2: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 144 -

6.1 INTRODUCCIÓN.

En esta sección presentamos un método de diseño analítico para controladores

digitales que obligará a la secuencia de error, cuando quede sujeta a un tipo específico

de entrada en el dominio del tiempo, a llegar a cero después de un número finito de

períodos de muestreo y, de hecho, a convertirse y mantenerse a cero después del menor

número posible de períodos de muestreo.

El control Deadbeat de sistemas muestreados tiene la característica específica de

que establece la señal de error a cero en un número finito de pasos discretos; para

conseguir esto se impone que los polos del sistema en lazo cerrado, o bien estén en el

origen z = 0, o bien sean ceros estables de la señal de entrada, de forma que se cancelen.

Estabilidad.

Los estudios que siguen están limitados a la determinación 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 características

deseadas de respuesta óptima.

Debido a que el control Deadbeat requiere una respuesta Deadbeat sólo 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 señal de error a cero en todo

instante de tiempo después de un tiempo; es decir, eliminar cualquier tipo de

oscilaciones entre instantes de muestreo.

Para más información sobre la parte teórica de este tema, consultar [REF. 3] y

[REF. 4].

Page 3: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 145 -

6.2 DISEÑO DE CONTROLADORES DIGITALES PARA UN

TIEMPO DE ESTABLECIMIENTO MÍNIMO CON UN

ERROR CERO EN ESTADO PERMANENTE.

Se considera el sistema de control digital que se muestra a continuación:

fig. (6-a)

La señal 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 señal de error e ( kT). La salida del controlador digital es la señal de control

u ( k T). Dicha señal de control es aplicada a la planta. Se desea diseñar un controlador

digital GC( z ) tal que el sistema de control en lazo cerrado tenga como tiempo de

establecimiento el mínimo posible, con un error en estado permanente cero, en respuesta

a una entrada escalón, rampa o aceleración. Se requiere que la salida no presente

componentes oscilatorias entre las muestras, después de haber alcanzado el estado

permanente. Si se requiere, el sistema deberá satisfacer cualquier otra especificación,

como es la correspondiente a la constante de error de velocidad estática.

El mantenedor sirve para reconstruir los valores de la función entre los puntos de

muestreo. La forma más sencilla es mediante un mantenedor de orden cero (ZOH), que

reproduce la señal en forma de escalera. Su función de transferencia viene dada por la

ecuación s

sGsT

h

⋅−−=

e1)(

Page 4: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 146 -

y la correspondencia entre los planos s y z viene dada por la transformación sTz ⋅= e .

Sea la transformada z de la planta, precedida por el mantenedor de orden cero, la

siguiente:

=)(zG Z L –1 ( )

Tktph sGsG⋅=

⋅ )()(

Ζ⋅

−=

⋅−=

⋅−

s

spG

zz

s

sGZ p

sT )(1)()1( e (6.2.0)

Se observa que se ha realizado un abuso de notación, eliminando L-1. Este

proceso equivale a la discretización por invarianza al escalón.

Entonces la función transferencia de pulso en lazo abierto es GC( z ) G ( z ), tal y

como se muestra en la siguiente figura:

fig. (6-b)

Page 5: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 147 -

A continuación se forma la función transferencia de pulso en lazo cerrado y la

llamamos F(z):

)()()(1

)()()()( zF

zGzGzGzG

zRzX

C

C =⋅+

⋅= (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 función transferencia de pulso en lazo cerrado deseado

debe ser de la forma siguiente:

NN

NN

zazazazF +++=

− K110)(

es decir N

N zazaazF −− +++= K110)( (6.2.2)

y se tiene que cumplir que el orden del sistema, n, sea menor o igual que N ( )Nn ≤ .

Nótese que F( z ) no debe tener ningún término con potencias positivas en z, ya que

dichos términos en la expansión en series de F( z ) implicaría que la salida antecede a la

entrada, lo que no es posible en un sistema físicamente realizable.

Si se tiene el desarrollo en serie en potencias de z -1 de F( z ), como el de la

ecuación (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 método de diseño consiste en construir la función transferencia de pulso del

controlador digital GC(z ), de forma que la función transferencia de pulso en lazo

cerrado satisfaga la ecuación (6.2.1). Despejando GC( z ) en dicha ecuación obtenemos

Page 6: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 148 -

( ))(1)()()(

zFzGzFzGC −⋅

= (6.2.3)

El sistema diseñado debe ser físicamente realizable. Las condiciones para que

esto ocurra imponen ciertas limitaciones a la función transferencia de pulso en lazo

cerrado F(z) y a la función transferencia de pulso del controlador digital GC( z ). A

continuación se comentan las condiciones para que sean físicamente 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 eL S entonces el sistema en

lazo cerrado diseñado debe involucrar por lo menos la misma magnitud de retraso de

transporte. De no ser así, el sistema en lazo cerrado tendría que responder antes de que

se le diera una entrada, lo que es imposible de realizar en un sistema físico.

3. Si G( z ) se expande en una serie en potencias de z -1 y la primera potencia de

z -1 es r, con 0≥r , entonces en la expresión en serie de F( z ) la primera potencia de z -1

debería ser como mínimo r. Por ejemplo, si la expansión de G( z ) en una serie en z -1

empieza con el término z -1, entonces el primer término de F( z ) de la ecuación (6.2.2),

que es a 0, deberá ser cero, quedando

N

N zazazF −− ++= K11)(

donde Nn ≤ y n es el orden del sistema. Esto significa que la planta no puede

responder en forma instantánea cuando se aplica una señal de control de magnitud

Page 7: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 149 -

finita; es decir, si la expansión en serie de G(z) empieza con un término z -1, entonces la

respuesta se presenta con un retraso de por lo menos un período de muestreo.

Además de las condiciones de la posibilidad física de realización, tenemos que

poner atención en aspectos de estabilidad del sistema. De manera específica, debemos

evitar la cancelación de un polo inestable de la planta mediante un cero del controlador

digital. Si se intenta este tipo de cancelación, cualquier error en la cancelación entre

polos y ceros generará una divergencia conforme pasa el tiempo y el sistema se hará

inestable. En forma similar, la función transferencia de pulso del controlador digital no

deberá incluir polos inestables para cancelar ceros de la planta que ocurran fuera del

círculo unitario.

Ahora investiguemos lo que ocurrirá con la función transferencia de pulso en

lazo cerrado, F( z ), si G(z ) incluye un polo inestable (o críticamente estable), esto es, un

polo z = α exterior al círculo unidad (o bien sobre él). La discusión siguiente se aplica

de la misma manera, si G(z) incluye dos o más polos inestables (o críticamente

estables). Definamos

α−

=z

zGzG )()( 1

Donde )(1 zG no incluye un término que se cancele con z - α. Entonces la

función transferencia de pulso en lazo cerrado se convierte en

)()()(1)(

)()()()(1

)()()()(

1

1 zF

zzGzGz

zGzGzGzG

zGzGzRzX

C

C

C

C =

−⋅

+⋅−

⋅=

⋅+⋅

=

αα

(6.2.4)

Page 8: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 150 -

En vista de que requerimos que ningún cero de GC( z ) cancele el polo inestable

de G( z ) en z = α, debemos tener

−⋅

+⋅−

⋅=

−⋅

+=−

αα

α zzGzGz

zGzG

zzGzG

zFC

C

C )()(1)(

)()()()(1

1)(11

1

1

Esto es, 1 -F( z ) debe tener como cero a z = α. También, notar de la ecuación

(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 críticamente estables) de G( z ), todos los polos inestables (o críticamente estables) de

G( z ) deberán incluirse en 1 - F( z ) como ceros.

2. Los ceros de G( z ) que se presenten dentro del círculo unidad pueden

cancelarse con polos de GC( z ). Sin embargo, los ceros de G( z ) que ocurran sobre o

fuera del círculo 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 círculo unidad deberán ser incluidos en

F( z ) como ceros.

Ahora seguiremos con el diseño. Dado que )()()( kTxkTrkTe −= ,

refiriéndonos a la ecuación (6.2.1) tenemos

( ))(1)()()()( zFzRzXzRzE −⋅=−= (6.2.5)

Page 9: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 151 -

NOTA del autor: Las siguientes funciones se multiplican por el escalón

0 si 0<t

1( t ) =

1 si 0≥t

Esto significa que las señales sólo toman valores distintos de cero a partir de k = 0.

Note que para una entrada escalón unitario r( t ) = 1( t ),

111)( −−

=z

zR

Para una entrada rampa unitaria )(1)( tttr ⋅= ,

( )21

1

1)(

⋅=

z

zTzR

Y para una entrada aceleración unitaria 2

)(1)(2 tttr ⋅

= ,

( )31

112

12

)1()(−

−−

−⋅

+⋅⋅=

z

zzTzR

Page 10: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 152 -

Por lo tanto, en general, las transformadas z en estas entradas polinomiales en el

dominio de tiempo se pueden escribir como

( ) 111

)()( +−−= q

z

zPzR (6.2.6)

donde P(z) es un polinomio en z -1. Para una entrada escalón unitario, P(z) = 1 y q = 0;

para una entrada rampa unitaria, P(z ) = Tz -1 y q = 1; y para una entrada aceleración

unitaria,

2

)1()(112 −− +⋅⋅

=zzTzP y q = 2.

Al sustituir la ecuación (6.2.6) en la ecuación (6.2.5) obtenemos

( ) 111

))(1()()(+−−

−⋅= q

z

zFzPzE (6.2.7)

Para asegurarnos de que el sistema llega al estado permanente en un número

finito de períodos de muestreo y mantiene un error cero en estado permanente, E( z )

deberá ser un polinomio en z -1 con un número finito de términos. Entonces,

refiriéndonos a la ecuación (6.2.7), escogemos que la función 1 - F( z ) tenga la forma

)()1()(1 11 zNzzF q ⋅−=− +− (6.2.8)

Page 11: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 153 -

donde N( z ) es un polinomio en z -1 con un número finito de términos. Entonces

)()()( zNzPzE ⋅= (6.2.9)

que es un polinomio en z -1 con un número finito de términos. Esto significa que la señal

de error se convierte en cero en un número finito de períodos de muestreo.

Del análisis anterior, la función transferencia de pulso del controlador digital

puede determinarse como sigue. Si se supone primero que F(z) satisface la posibilidad

física de realización y las condiciones de estabilidad, y a continuación se sustituye la

ecuación (6.2.8) en la ecuación (6.2.3), obtenemos

)()1()(

)()( 11 zNzzGzFzG qC ⋅−⋅

= +− (6.2.10)

La ecuación (6.2.10) da la función transferencia de pulso del controlador digital,

que producirá un error cero en estado permanente, después de un número finito de

períodos de muestreo.

Para una planta estable Gp( s ), la condición para que la salida no muestre

componentes oscilatorios entre instantes de muestreo después del tiempo de

establecimiento, se puede escribir como sigue:

x( t ) = constante, para nTt ≥ para entradas escalón

x'( t ) = constante, para nTt ≥ para entradas rampa

x''( t ) = constante, para nTt ≥ para entradas aceleración

Page 12: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 154 -

Dicha condición deberá ser tenida en cuenta cuando se diseñe el sistema o el

controlador. Al diseñar el sistema de control, la condición sobre x( t ), x'( t ) o x''( t )

deberá interpretarse en términos de u( t ). Notar que la planta está en tiempo continuo y

la entrada a la planta es u( t ), que es una función en tiempo continuo; por lo tanto, para

no tener componentes oscilatorias en la salida x( t ), la señal de control u( t ) en estado

permanente debe ser constante o de un incremento monótono (o decreciendo

monótonamente) para los casos de entrada escalón, rampa y aceleración.

Comentarios:

1. Dado que la función transferencia de pulso en lazo cerrado F( z ) es un

polinomio en z -1, todos los polos en lazo cerrado están en el origen z = 0. El polo

múltiple en lazo cerrado en el origen es muy sensible a las variaciones de parámetros

del sistema. [REF. 3].

2. Aunque un sistema de control digital diseñado para presentar un tiempo de

establecimiento mínimo, con un error cero en estado permanente, en respuesta a un tipo

específico de entrada tenga características excelentes de respuesta transitoria para la

entrada para la cual fue diseñado, puede mostrar características de respuestas

transitorias inferiores o algunas veces inaceptables para otros tipos de entrada. Esto es

siempre cierto tratándose de sistemas de control óptimo: un sistema de control óptimo

mostrará las mejores características de respuesta para el tipo de entrada para el que fue

diseñado, pero no tendrá características de respuesta óptima para otro tipo de entradas.

3. En el caso en el que un controlador analógico es discretizado, un incremento

en el período de muestreo modifica la dinámica del sistema, lo que puede llevar a la

inestabilidad del mismo. Por otra parte, el comportamiento del sistema de control digital

que diseñamos en esta sección no depende de la selección del período de muestreo. En

vista de que las entradas r( t ) aquí consideradas son entradas en el dominio del tiempo

(escalón, rampa, aceleración...), el período de muestro T puede ser escogido de manera

Page 13: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 155 -

arbitraria. Para un período de muestreo menor, el tiempo de respuesta (que es un

múltiplo entero del período de muestreo T) se hace menor. Sin embargo, para un

período de muestreo T muy pequeño, la magnitud de la señal de control se convertirá en

excesivamente grande, con el resultado de que en el sistema aparecerán fenómenos de

saturación, y el método de diseño presentado en esta sección ya no será aplicable. Por lo

tanto, el período de muestreo T no debe ser demasiado pequeño. Por otra parte, si el

período 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 término medio. Una regla práctica sería escoger el período de muestreo T

más pequeño para que no ocurra ningún fenómeno de saturación en la señal de control.

Ejemplo:

Considere el sistema de control mostrado en la figura (6-a), donde la función de

transferencia de la planta Gp( s ) está dada por

)1(

1)(+⋅

=ss

sGp

Se quiere diseñar un controlador digital GC( z ), tal que el sistema en lazo cerrado

muestre respuesta sin oscilaciones a una entrada escalón 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 período de muestreo T se

supone de 1seg.

Page 14: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 156 -

El primer paso en el diseño es determinar la transformada z de la planta que está

precedida por un mantenedor de orden cero: [REF. 3].

=)(zG Z L –1 ( )

Tktph sGsG⋅=

⋅ )()(

=

+⋅

Ζ⋅−=

+⋅

−Ζ −

⋅−

)1(1)1(

)1(1

21

2 ssz

ss

sTe

> restart: with(inttrans): Digits:=5:

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

Calculamos primero la transformada z de )1(

12 +⋅ ss

, y sustituimos el período

de muestreo T = 1 tras multiplicar la transformada por z

zz 11 1 −=− − .

> G(z) := evalf(subs(T=1, simplify(((z-1)/z)*

ztrans(subs(t=k*T, invlaplace(1/s*Gp(s), s, t)), k, z))));

> factor(G(z));

:= Gp → s1

s ( ) + s 1

:= ( )G z −1. + .36788 z .26424

− + − 1. z2 1.3679 z .36788

+ .36788 z .26424( ) − z 1. ( ) − z .36787

Page 15: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 157 -

Si multiplicamos ambos términos de la fracción por z -2, se obtiene la expresión

en función de z -1. Y dicha expresión es:

)36787.01()1(

)71828.01(36788.0)( 11

11

−−

−−

⋅−⋅−⋅⋅+⋅

=zz

zzzG

Recordamos ahora la ecuación (6.2.1): )()(

)()(1)()()(

zRzX

zGzGzGzGzF

C

C =⋅+

⋅=

Se Observa de la expresión anterior de G( z ) que si G( z ) se expande a una serie en

potencias de z -1 el primer término será en z -1. Por lo tanto, F( z ) deberá empezar con un

término en z -1.

Al referirnos a la ecuación (6.2.2) y observar que el sistema es de segundo orden

(n = 2) suponemos que F(z) tiene la siguiente forma:

2

21

1)( −− ⋅+⋅= zazazF (6.2.12)

Dado que la entrada es una función escalón, de la ecuación (6.2.8) requerimos que

)()1()(1 1 zNzzF ⋅−=− − (6.2.13)

Dado que G(z) tiene un polo críticamente estable en z = 1, el requisito de

estabilidad define que 1 - F ( z ) debe tener un cero en z = 1. Sin embargo la función

1 - F ( z ) ya tiene un término 1 - z -1, por lo que el requisito está satisfecho.

Page 16: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 158 -

En vista de que el sistema no deberá mostrar componentes oscilatorias entre

muestras y la entrada es una función escalón, necesitamos que )2( Ttx ⋅≥ sea

constante. Si observamos que u( t ), la salida del mantenedor de orden cero, es una

función en tiempo continuo, una constante )2( Ttx ⋅≥ requiere que u( t ) también sea

constante para Tt ⋅≥ 2 . En términos de la transformada z, U( z ) debe ser del tipo

siguiente en potencias de z -1:

( )L++⋅+⋅+= −−− 321

10)( zzbzbbzU

donde b es una constante. Dado que la función de transferencia de la planta )(sGp

involucra un integrador s1 (un integrador es un aparato cuya salida es la derivada de la

entrada [REF. 2]), b deberá ser cero. De lo contrario, la salida no podría conservarse

constante a partir de t = 2T. En consecuencia tenemos

1

10)( −⋅+= zbbzU

Page 17: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 159 -

Se demuestra a continuación:

Siendo ( ) L++++=−

=Ζ −−−−

3211 1

11)(1 zzzz

k

supongamos

( ) ( )=+++⋅⋅+⋅+=++⋅+⋅+= −−−−−−− LL 212110

32110 1)( zzzbzbbzzbzbbzU

= ( ) ( )

1

21

1010

121

10 111

−−

−−−

−⋅−+⋅−+

=−

⋅⋅+⋅+z

zbbzbbbz

zbzbb

y )()()( zUzGzX ⋅=

La salida x(t) tiene que ser constante a partir de Tt ⋅≥ 2 . Luego su transformada z,

X(z), será de la forma ( ) 12

21

11

1−

−−

−⋅⋅+⋅

zzczc

1

21

1010

11

1

1121

1)()(

)1()1()1()()()( −

−−

−−

−−

−⋅−+⋅−+

⋅⋅−⋅−⋅⋅−⋅

=⋅=z

zbbzbbbzazzzaazUzGzX

En G(z) ya se tiene el término 111

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

X(z) se tendría ( )211

1−− z

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

b = 0 y además en U(z) tiene que aparecer el término )1( 11

−⋅− za .

Page 18: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 160 -

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

)()()(

)()(

)()(

)()()(

zGzRzF

zGzR

zRzX

zGzXzU ⋅=⋅==

11

11

1 )7183.01(36788.0)36788.01()1(

11)(

−−

−−

− ⋅⋅+⋅

⋅−⋅−⋅

−⋅=

zzzz

zzF

11

1

)7183.01(36788.036788.01)( −−

⋅⋅+⋅⋅−

⋅=zz

zzF

Para que U(z) sea una serie en z -1 con sólo dos términos, F( z ) debe ser de la

siguiente forma:

1

11)7183.01()( FzzzF ⋅⋅⋅+= −− (6.2.14)

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

1)36788.01(36788.0

1)( 1 FzzU ⋅⋅−⋅= − (6.2.15)

Esta ecuación da U( z ) en términos de F1. Una vez que se determine la

constante F1, U( z ) se puede dar como una serie en z -1 con sólo dos términos.

Page 19: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 161 -

Ahora determinaremos N( z ), F( z ) y F1. Si se sustituye la ecuación (6.2.12) en la

ecuación (6.2.13) obtenemos

)()1(1 12

21

1 zNzzaza ⋅−=⋅−⋅− −−−

El primer miembro de esta última ecuación deberá ser divisible entre 1 - z -1. Si

dividimos el primer miembro entre 1 - z -1, el cociente es 11 )1(1 −⋅−+ za y el resto es

221 )1( −⋅−− zaa . Por lo tanto, N( z ) se determina como

1

1)1(1)( −⋅−+= zazN (6.2.16)

y el resto deberá ser cero. Esto requiere que 101 2121 =+⇒=−− aaaa . (6.2.17)

También de las ecuaciones (6.2.12) y (6.2.14) tenemos

1

1122

11 )7183.01()( FzzzazazF ⋅⋅⋅+=⋅+⋅= −−−−

Por lo tanto,

111

21 )7183.01( Fzzaa ⋅⋅+=⋅+ −−

Page 20: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 162 -

La división del primer miembro de esta última ecuación entre 17183.01 −⋅+ z da

el Cociente 1a y el resto 112 )7183.0( −⋅⋅− zaa . Al igualar el cociente con F1 y el resto

con cero, obtenemos

11 aF =

y

07183.0 12 =⋅− aa (6.2.18)

Si se resuelven las ecuaciones (6.2.17) y (6.2.18) en función de a1 y a2 da

582.01 =a , 418.02 =a

Entonces, F(z) se determina en la forma

21 418.0582.0)( −− ⋅+⋅= zzzF (6.2.19)

y

582.01 =F

La ecuación (6.2.16) da

1418.01)( −⋅+= zzN (6.2.20)

Page 21: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 163 -

La función transferencia de pulso del controlador digital GC( z ) es determinada a

continuación a partir de la ecuación (6.2.10) como sigue. Refiriéndonos a las ecuaciones

(6.2.11), (6.2.14) y (6.2.20),

)()1()(

)()( 1 zNzzGzFzGC ⋅−⋅

= −

)36788.01()1()418.01()1()7183.01(36788.0

582.0)7183.01(

11

1111

11

−−

−−−−

−−

⋅−⋅−⋅+⋅−⋅⋅⋅+⋅

⋅⋅⋅+=

zzzzzz

zz

1

1

418.01582.0582.1

⋅+⋅−

=z

z

Con el controlador digital así diseñado, la función transferencia de pulso en lazo

cerrado se convierte en:

21 418.0582.0)()()( −− ⋅+⋅== zzzF

zRzX

2)7183.0(582.0

zz +⋅

=

Page 22: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 164 -

La salida del sistema en respuesta a una entrada escalón unitario r( t ) = 1 se puede

obtener como sigue:

( ) 121

11418.0582.0)()()( −

−−

−⋅⋅+⋅=⋅=

zzzzRzFzX

L+++⋅= −−− 321582.0 zzz

Por lo tanto, 0)0( =x

582.0)1( =x

1)( =kx k = 2, 3, 4, ...

Observe que la sustitución de 0.582 en lugar de F1 en la ecuación (6.2.15) da

como resultado

11 582.0582.1582.0)36788.01(36788.0

1)( −− ⋅−=⋅⋅−⋅= zzzU

Por lo tanto, la señal de control u( k ) se convierte en cero para 2≥k tal y como

se requiere. No existe componente oscilatoria entre muestras en la salida una vez

alcanzado el tiempo de establecimiento.

Page 23: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 165 -

6.3 DISEÑO DE UN ALGORITMO.

A continuación se describe el algoritmo para el diseño del controlador digital,

con tiempo de establecimiento mínimo, y error cero en estado permanente. [REF. 4].

6.3.1 Definición del problema.

Consideremos el sistema descrito por la siguiente función de transferencia:

)()()( 1

11

−− =

zAzBzG (6.3.1)

donde )( 1−zA y )( 1−zB 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

discretización de la planta). Es decir, estamos suponiendo

)()()(

011

1

011

1

zAzB

azazazbzbzbzG n

nn

nn =

+⋅++⋅++⋅++⋅

= −−

−−

L

L

con gradoz(B) < gradoz(A).

La función de transferencia dada representa la dinámica de la planta, incluyendo

un dispositivo de retención, un proceso continuo lineal y un muestreador en serie (de

período T). La planta continua se describe por una función de transferencia

estrictamente propia )(~)(~

)(sAsBsGp = , con )~(gra)~(gra AdoBdo ss < .

Page 24: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 166 -

Se quiere encontrar un controlador causal estabilizador de grado mínimo,

definido por la función de transferencia

)()()( 1

11

−− =

zPzQzGC (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 señal de referencia definida por

)()()( 1

11

−− =

zHzKzR (6.3.3)

donde H y K son polinomios coprimos y para que sea causal. Además

suponemos que H tiene todos sus ceros en z en el exterior, o sobre el círculo unidad del

plano complejo, ya que las señales de referencia son funciones no decrecientes en el

tiempo, tales como la función escalón, rampa o exponencial.

≠ ( )H 0 0

Page 25: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 167 -

6.3.2 Ecuaciones de diseño.

La función de transferencia del sistema en lazo cerrado es la siguiente:

BQAP

BQzGzG

zGzGzFC

C

⋅+⋅⋅

=⋅+

⋅= −−

−−−

)()(1)()()( 11

111 (6.3.4)

y el error es

BQAPAP

HK

BQAPAPzRzE

⋅+⋅⋅

⋅=⋅+⋅

⋅⋅= −− )()( 11 (6.3.5)

Para asegurar que el sistema alcanza el estado permanente en un número finito

de períodos de muestreo y tiene un error permanente nulo, la secuencia de error e(k ),

correspondiente a )( 1−zE , debe desaparecer después de un número finito de instantes de

muestreo. Eso quiere decir que el polinomio )( 1−zE debe tener un número finito de

términos. Entonces, el problema consiste en determinar los polinomios )( 1−zP y

)( 1−zQ 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.

Page 26: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 168 -

Factorizamos los polinomios )( 1−zA , )( 1−zB y )( 1−zK de la siguiente forma:

(6.3.6)

(6.3.7)

(6.3.8)

donde , , son factores estables de A, B, y K; es decir, tienen todos sus ceros

dentro del círculo unidad. También, para permitir la posibilidad de que Ai y H tengan

ceros comunes, definimos los polinomios coprimos Asi y Hs tales que

(6.3.9)

Expresamos )( 1−zQ de la siguiente manera:

(6.3.10)

siendo el máximo común divisor de Q y A. Entonces, y A son coprimos (

representa los polos estables de la planta que son cancelados por ceros del controlador).

Definimos el polinomio S de la forma

(6.3.11)

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

Ae Be Ke

= As iHs

AiH

= Q Ae Qp

Ae Qp Ae

= S + P A Q B

Page 27: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 169 -

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

= (6.3.12)

Expresamos P de la siguiente forma:

(6.3.13)

siendo el máximo común divisor de P y B. Entonces, y son coprimos

( representa los ceros estables de la planta que son cancelados por polos del

controlador).

Sustituyendo (6.3.13) en (6.3.12) y utilizando (6.3.7) queda

=

(6.3.14)

notar que S es el polinomio característico del sistema en lazo cerrado; por tanto, pS

debe tener todos sus ceros dentro del círculo unidad para que el sistema sea estable.

= S + P Ae Ai Ae Qp B

Ae ( ) + P Ai Qp B

= P Be Pp

Be Pp BiBe

= S Ae ( ) + Be Pp Ai Qp Be Bi

Ae Be ( ) + Pp Ai Qp Bi

= S Ae Be Sp

Page 28: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 170 -

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

= (6.3.15)

Para que E sea un polinomio finito es necesario que se cumplan las siguientes

condiciones:

1) divide a

2) divide a

La primera condición implica que debe dividir a , ya que es

coprimo con K y ; por lo tanto, es de la forma

(6.3.16)

sustituyendo (6.3.16) en (6.3.14) obtenemos

(6.3.17)

y sustituyendo (6.3.16) en (6.3.15) queda

(6.3.18)

= EK Be Pp A S

H

K Pp As iHs Sp

Hs K Pp As iSp K Pp As i

Hs Pp HsAs i Pp

= Pp Hs Pn

= Sp + Hs Pn Ai Qp Bi

= EK Pn As i

Sp

Page 29: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 171 -

La segunda condición implica que debe dividir a K, ya que es coprimo

con (porque y son coprimos con ) y además es coprimo con

(porque y son también coprimos con ). Por lo tanto, es de la forma

(6.3.19)

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

(6.3.20)

Sustituyendo (6.3.19) en (6.3.17) queda

(6.3.21)

El control está relacionado con el error mediante la siguiente expresión

)()( 11 −− ⋅= zEPQzU (6.3.22)

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

=

(6.3.23)

Sp SpAi Qp Bi Ai Pn

Qp Bi Pn Sp

= Sp Ke

Sp

= E Ki Pn As i

= + Hs Pn Ai Qp Bi Ke

= UQ Ki Pn As i

P

Ae Qp Ki Pn As iBe Hs Pn

= UAe Qp Ki As i

Be Hs

Page 30: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 172 -

Para el mismo sistema, la relación entre la salida y el control es

)()( 11 −− ⋅= zUABzY (6.3.24)

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

=

(6.3.25)

Las expresiones (6.3.10), (6.3.13), (6.3.16) y (6.3.21) son las ecuaciones de

diseño del controlador Deadbeat.

= YB Ae Qp Ki As i

A Be Hs

B A Qp KiA Be H

= YBi Qp Ki

H

Page 31: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 173 -

6.3.3 Condición para que el problema DeadBeat tenga solución.

En el desarrollo del apartado anterior hemos obtenido las ecuaciones que

caracterizan a los controladores Deadbeat. Ahora vamos a obtener la solución a dichas

ecuaciones.

El problema matemático consiste en determinar dos polinomios y que

satisfagan la ecuación polinómica lineal (6.3.21). Esta ecuación se denomina ecuación

Diofántica.

La ecuación Diofántica (6.3.21) tiene solución si y solo si el máximo común

divisor de )( si HA ⋅ y iB divide a eK (la demostración de este teorema se encuentra en

la [REF. 1]). Como iA y iB son coprimos, todo divisor común de sH y iB debe

dividir también a eK . Pero sH y eK son coprimos; por consiguiente, sH y iB deben

ser coprimos para que (6.3.21) tenga solución.

Esta condición se puede expresar de diferentes formas: si sH y iB son

coprimos implica que sH y B también lo son, ya que todos los ceros de sH son

inestables; además H y B deben ser coprimos, ya que los ceros comunes de iA y H no

están en B. Es decir, los ceros de la planta no deben coincidir con los polos de la

referencia. Esta es la condición necesaria y suficiente para resolver el problema del

Control Deadbeat.

Pn Qp

Page 32: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 174 -

6.3.4 Control DeadBeat de tiempo mínimo.

Si se cumple la condición anterior, existen infinitos polinomios que satisfacen la

ecuación (6.3.21). Nos interesa elegir una solución que haga que el tiempo de

establecimiento sea mínimo.

La expresión (6.3.20) muestra que el tiempo de establecimiento del error es

minimizado haciendo mínimos los grados de los polinomios , , y . Esto

se consigue si hacemos que y sean los factores estables de máximo 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 solución de grado mínimo

de (6.3.21).

Por la teoría de las ecuaciones Diofánticas [REF. 1], la solución de la ecuación

(6.3.21) de grado mínimo cumple que

grado( ) < grado( )

grado( ) < grado( ) + grado( )

Notar que como grado( ) debe ser menor que grado( ) nos interesa cancelar todos

los ceros estables de la planta, ya que de esta forma minimizamos el grado de .

Los resultados que hemos obtenido pueden resumirse en un procedimiento

directo para resolver el problema de diseño de Controladores Deadbeat de tiempo

mínimo.

Ki Pn As iAe Ke

Pn

Pn BiQp Ai Hs

Pn BiBi

Page 33: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 175 -

6.3.5 Algoritmo: Control DeadBeat de tiempo mínimo.

A continuación se describe el algoritmo de control Deadbeat de tiempo mínimo.

[REF. 4].

Datos:

- la planta

- la señal de referencia R(s)

- el período de muestreo T

Condiciones de entrada:

se supone que para los datos existe un Controlador Deadbeat causal de

tiempo mínimo.

Paso 1: calcular ABzG =− )( 1 y

HKzR =− )( 1

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

siendo los factores estables de grado máximo de A, B y K.

( )Gp s

= A Ae Ai

= B Be Bi = K Ke Ki

, ,Ae Be Ke

Page 34: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 176 -

Paso 3: determinar y mediante la siguiente relación

Paso 4: resolver la ecuación Diofántica

respecto de y elegir una solución tal que

grado( ) = grado( ) - 1

grado( ) = grado( ) + grado( ) - 1

Paso 5: entonces el controlador de tiempo mínimo - grado mínimo es

nes

pD PBH

QAPQzG e

⋅⋅

⋅==− )( 1

As i Hs

= As iHs

AiH

= + Pn Ai Hs Qp Bi Ke

Pn

Pn

Qp

Qp

BiAi Hs

Page 35: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 177 -

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 función de transferencia de la planta )(sG p está dada por

)1(

1)(+⋅

=ss

sGp

Diseñe un controlador digital )(zGC , tal que el sistema en lazo cerrado muestre

respuesta sin oscilaciones a una entrada escalón 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 período de muestreo T se

supone de 1seg.

> restart: with(inttrans): with(plots): Digits:=5:

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

:= Gp → s1

s ( ) + s 1

Page 36: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 178 -

Calculamos primero la transformada z de )1(

12 +⋅ ss

, y sustituimos el período de

muestreo T = 1 tras multiplicar la transformada por 11 −− z . 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;

Haciendo el algoritmo en z se tiene que ABzG =)( y la señal de referencia es

s

sR 1)( = , HK

zzzR =−

=1

)( , 11

11)( −

−=

zzR

> R(z) := ztrans(invlaplace(1/s, s, t), t, z);

R(z) = K/H;

R(w) := 1/(1-w);

:= ( )R zz

− z 1

= z

− z 1KH

:= ( )R w1

− 1 w

= + .36788 z .26424

( ) − z 1. ( ) − z .36787BA

Page 37: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 179 -

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 función de 'z', y el algoritmo es en

función de ' 1z − ' , se hace necesario realizar una transformación. La implementamos a

continuación, convirtiéndose la variable ' 1z − ' en la variable 'w'. En el procedimiento

'Conversion', se pasa como parámetro una función en z. Las variables globales 'polwn'

y 'polwd' son, respectivamente, el numerador y el denominador de dicha función,

después de realizar la transformación.

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

Page 38: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 180 -

> Conversion := proc(polz)

local num, den, fac1, fac2, gradod, oper, pot;

global polwn, polwd;

num := numer(polz):

den := denom(polz):

gradod := degree(den, z):

polwn := 1:

polwd := 1:

fac1 := 1:

fac2 := 1:

pot := 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): (continúa)

Page 39: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 181 -

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 continuación se muestra la transformación 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

Page 40: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 182 -

A continuación se muestra la transformación de R( z ) . En el resumen sobre estabilidad

del apartado 6.2 (resumen estabilidad) se muestran las diferentes )( 1−zR .

> Conversion(R(z)):

poli := polwn/polwd;

K := numer(poli);

H := denom(poli);

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): (continúa)

:= poli1

− 1 w

:= K -1

:= H − + 1 w

Page 41: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 183 -

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

pe := 1:

pi := 1:

ne := 1:

ni := 1:

pot := 1:

fac1 := 1:

fac2 := 1:

polin := poli:

oper := op(0, poli):

fac := op(1, poli):

opp := op(0, fac):

grado := degree(fac, w): (continúa)

Page 42: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 184 -

if ( (oper = `integer` or oper = `Float` or oper= `*`)

and

(opp = `integer` or opp = `Float`) )

then pi := 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 := pe*face:

pi := pi*faci:

if (fac2 <> 1)

then ne := pe:

ni := pi: (continúa)

Page 43: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 185 -

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;

Calculamos los factores estables e inestables de A:

> A;

Factoriz(A):

Ae := pe;

Ai := pi;

:= Be + w 1.3922

:= Ai − 1 1. w

.26424 ( ) + w 1.3922 w

:= Bi .26424 w

( ) − 1 1. w ( ) − 1 .36787 w

:= Ae − 1 .36787 w

Page 44: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 186 -

Calculamos los factores estables e inestables de K:

> K;

Factoriz(K):

Ke := pe;

Ki := pi;

Paso 3 del algoritmo, 111

1

1=

−−

==−

zz

HA

HA i

s

si

por lo tanto 1== ssi HA

> elto := simplify(Ai/H);

Asi := numer(elto);

Hs := denom(elto);

-1

:= Ke 1 := Ki -1

:= elto -1.

:= Asi -1. := Hs 1

Page 45: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 187 -

Paso 4. Resolver la ecuación Diofántica

> ecu := Pn*Ai*Hs + Qp*Bi;

c1 := coeff(ecu, Pn):

c2 := coeff(ecu, Qp):

Para resolver la ecuación diofántica se utiliza la función 'gcdex', que para dos

polinomios (c1 y c2) calcula su máximo común divisor.

> gcdex(c1, c2, w, 'Pn', 'Qp'):

Pn := Pn*Ke;

Qp := Qp*Ke;

grado( ) = grado( ) - 1 = 0

grado( ) = grado( ) + grado( ) - 1 = 1 + 0 - 1 = 0

Paso 5. La función de transferencia del controlador es nes

peC PBH

QAPQzG

⋅⋅

⋅==)(

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

= + Pn Ai Hs Qp Bi Ke

:= Pn 1.

Pn BiQp Ai Hs

:= ecu + 1.0 Pn ( ) − 1 1. w .26424 Qp w

:= Qp 3.7844

:= ( )GC w 3.7844 − 1 .36787 w

+ w 1.3922

Page 46: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 188 -

Hacemos otra transformación, para dejarlo en función 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 := numer(polw):

den := denom(polw):

grado := degree(num, w):

gradod := degree(den, w):

if (gradod > grado)

then grado := gradod:

fi:

# transformamos el numerador

AuxD(num, gradod):

polzn := mulz: (continúa)

Page 47: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 189 -

# transformamos el denominador

AuxD(den, gradod):

polzd := mulz:

polz := factor(polzn)/factor(polzd):

end:

> G[C](w);

DesConv(%):

G[C](z) := polz;

La transformada Z de la señal de error es 1)( 1 =⋅⋅=−

sine APKzE (el tiempo de

establecimiento "discreto" es un intervalo de muestreo).

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

En función de z quedaría:

> DesConv(E(w)):

E(z) := polz;

:= ( )E w 1.

:= ( )E z 1.

3.7844 − 1 .36787 w

+ w 1.3922

:= ( )GC z − 3.7844 z 1.3922 + 1.3922 z 1.0000

Page 48: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 190 -

Y la transformada Z de la señal de control es se

siipe

HBAKQA

zU⋅

⋅⋅⋅=− )( 1

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

DesConv(U(w)):

U(z) := polz;

La salida del sistema es H

KQBzY ipi ⋅⋅

=− )( 1

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

DesConv(Y(w)):

Y(z) := polz;

A continuación se muestra la salida del sistema gráficamente. Para ello, primero

se calculan las transformadas inversas de las funciones del ejemplo, y a continuación las

secuencias de puntos correspondientes. Después hacemos los gráficos.

:= ( )Y w −1.0000w

− + 1 w

:= ( )Y z −1.00001

− + z 1

:= ( )U w 3.7844 − 1 .36787 w

+ w 1.3922

:= ( )U z − 3.7844 z 1.3922 + 1.3922 z 1.0000

Page 49: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 191 -

> iR := invztrans(R(z), z, k):

iG := invztrans(G(z), z, k):

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

iE := invztrans(E(z), z, k):

iY := invztrans(Y(z), z, k):

iU := 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 señal de error, 'sE', y de la señal 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):

Page 50: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 192 -

> 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 Método de la

Transformada Z Modificada. Para más información, [REF. 3] y [REF. 4].

Page 51: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 193 -

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.- Diseñar el controlador Deadbeat de tiempo mínimo para el proceso definido

por

para la entrada rampa unidad. Considerar que el período de muestreo T es

1 seg.

)( 1−zG está definida por

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

= ( )Gp s1

+ s 2

:= Gp → s1

+ s 2

= 1.17521 − 2.7183 z .36787

BA

Page 52: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 194 -

Hacemos la transformación para obtener G( w) :

> Conversion(G(z)):

B := polwn;

A := polwd;

G(w) := B/A;

Y la señal 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 := numer(poli);

H := denom(poli);

R(w) := K/H;

:= ( )R s1

s2

:= K w

:= H ( )− + 1 w 2

:= ( )R ww

( )− + 1 w 2

:= B 1.1752 w

:= A − 2.7183 .36787 w

:= ( )G w 1.1752w

− 2.7183 .36787 w

Page 53: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 195 -

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

:= Be 1

:= Ai 1

w

:= Ke 1

:= Ki w

:= elto1

( )− + 1 w 2

:= Asi 1

:= Hs ( )− + 1 w 2

1.1752 w

:= Bi 1.1752 w

− 2.7183 .36787 w

:= Ae − 2.7183 .36787 w

Page 54: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 196 -

Ahora se resuelve la ecuación diofántica.

> ecu := Pn*Ai*Hs + Qp*Bi;

c1 := coeff(ecu, Pn):

c2 := coeff(ecu, Qp):

> gcdex(c1,c2,w,'Pn','Qp'):

Pn := Pn*Ke;

Qp := Qp*Ke;

Por lo tanto, la función de transferencia del controlador es la que se muestra a

continuación.

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

DesConv(%):

G[C](z) := polz;

:= Pn 1

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

:= Qp − 1.7018 .85092 w

:= ( )GC w( ) − 2.7183 .36787 w ( ) − 1.7018 .85092 w

( )− + 1 w 2

:= ( )GC z 4.6260( ) − z .13533 ( ) − z .50001

( ) − z 1 2

Page 55: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 197 -

La señal de error E(z):

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

DesConv(%):

E(z) := polz;

El tiempo de establecimiento "discreto" son dos intervalos de muestreo. La señal de

control es:

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

DesConv(U(w)):

U(z) := polz;

:= ( )E w w

:= ( )E z1z

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

Page 56: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 198 -

Y la salida del sistema es:

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

DesConv(Y(w)):

Y(z) := polz;

Se muestran ahora estas señales:

> iR := invztrans(R(z), z, k):

iG := invztrans(G(z), z, k):

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

iE := invztrans(E(z), z, k):

iY := invztrans(Y(z), z, k):

iU := invztrans(U(z), z, k):

:= ( )Y z − 2.0000 z 1.0000

z ( ) − z 1 2

:= ( )Y w 1.1752w2 ( ) − 1.7018 .85092 w

( )− + 1 w 2

Page 57: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 199 -

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

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

Page 58: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 200 -

> dRY := display({dR, dY}, title=`Entrada r(k), Salida y(t)`):

plots[display](array(1..3, [dRY, dE, dU]));

6.8.2.- Diseñar el controlador Deadbeat de tiempo mínimo para el proceso definido

por

para la entrada rampa unidad. Considerar que el período 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 s1

− s

12

2

:= Gp → s1

− s

12

2

Page 59: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 201 -

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

Hacemos la transformación para obtener G(w).

> Conversion(G(z)):

B := factor(polwn);

A := polwd;

G(w) := B/A;

= + .0498 z .055398

( ) − z 1.1618 2BA

:= B .055398 ( ) + w .89895 w

:= A ( ) − 1 1.1618 w 2

:= ( )G w .055398( ) + w .89895 w

( ) − 1 1.1618 w 2

Page 60: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 202 -

Y la señal 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 := numer(poli);

H := denom(poli);

R(w) := K/H;

Se puede ver que B y H son coprimos: existe un Controlador DeadBeat para este

proceso. Calculamos los siguientes polinomios:

:= ( )R s1

s3

:= K −w ( ) + .045000 .045000 w

:= H ( )− + 1 w 3

:= ( )R w −w ( ) + .045000 .045000 w

( )− + 1 w 3

Page 61: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 203 -

> B; K;

Factoriz(B): Factoriz(K):

Be := pe; Ke := pe;

Bi := pi; Ki := p1;

factor(A); elto := simplify(Ai/H);

Factoriz(A): Asi := numer(elto);

Ae := pe; Hs := denom(elto);

Ai := pi;

Ahora se resuelve la ecuación diofántica:

> ecu := Pn*Ai*Hs + Qp*Bi;

c1 := coeff(ecu, Pn):

c2 := coeff(ecu, Qp):

.055398 ( ) + w .89895 w

:= Be 1

:= Bi w ( ) + .055398 w .049800

1.3498 ( ) − w .86073 2

:= Ae 1

:= Ai ( ) − 1 1.1618 w 2

−w ( ) + .045000 .045000 w

:= Ke 1

:= Ki −w ( ) + .045000 .045000 w

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

( )− + 1. w 3

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

:= Hs ( )− + 1. w 3

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

Page 62: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 204 -

:= Pn − − 1.0000 1.0736 w

> gcdex(c1,c2,w,'Pn','Qp'):

Pn := Pn*Ke;

Qp := Qp*Ke;

Por lo tanto, la función de transferencia del controlador es la que se muestra a

continuación:

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

DesConv(%):

G[C](z) := polz;

La señal de error E(z):

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

DesConv(%):

E(z) := polz;

:= Qp − + − + 26.158 w4 122.65 w3 228.13 w2 207.51 w 85.327

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

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

:= ( )GC w − + − + 26.158 w4 122.65 w3 228.13 w2 207.51 w 85.327

( )− + 1. w 3 ( )− − 1.0000 1.0736 w

:= ( )GC z 85.327( ) − + z2 1.1773 z .37165 ( ) − + z2 1.2546 z .82486

( ) + z 1.0736 ( ) − z 1. 3

:= ( )E z .045000( ) + z 1.0740 ( ) + z .99961 ( ) − z 1.1578 ( ) − z 1.1658

z5

Page 63: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 205 -

La señal de control U(z):

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

DesConv(U(w)):

U(z) := polz;

Y la salida del sistema es:

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

DesConv(Y(w)):

Y(z) := polz;

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

( ) − + − + 26.158 w4 122.65 w3 228.13 w2 207.51 w 85.327 w

( ) + .045000 .045000 w ( )− + 5000. 5809. w 2 ( )− + 1. w 3)

( )U z 3.8397 ( ) + z 1.0000 ( ) − + z2 1.1771 z .37155 ( ) − + z2 1.2548 z .82480( :=

( ) − + z2 2.3236 z 1.3503 z5 ( ) − z 1. 3) ( )

( )Y w w2 ( ) + .055398 w .049800− :=

( ) − + − + 26.158 w4 122.65 w3 228.13 w2 207.51 w 85.327

( ) + .045000 .045000 w ( )− + 1 w 3

( )Y z .19122 ( :=

( ) + z 1.1125 ( ) + z .99994 ( ) − + z2 1.1774 z .37169 ( ) − + z2 1.2545 z .82478 )

z5 ( ) − z 1 3( )

Page 64: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 206 -

Se muestran ahora estas señales:

> iR := invztrans(R(z), z, k):

iG := invztrans(G(z), z, k):

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

iE := invztrans(E(z), z, k):

iY := invztrans(Y(z), z, k):

iU := invztrans(U(z), z, k):

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

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

Page 65: cap6 CONTROLDEADBIT

Capítulo 6: Diseño de Control por Establecimiento Finito (DeadBeat)

- 207 -

> dRY := display({dR, dY}, title=`Entrada r(k), Salida y(t)`):

plots[display](array(1..4, [dG, dRY, dE, dU]));

Page 66: cap6 CONTROLDEADBIT

Sistemas de Control en Tiempo Discreto

- 208 -

6.5 REFERENCIAS.

[REF. 1] K.J. Aström y B. Wittenmark,

Sistemas Controlados por Computador,

Paraninfo, 1988

[REF. 2] G.F. Franklin, J. D. Powell, A. Emami-Naeini,

Control de Sistemas Dinámicos con Retroalimentación,

Addison-Wesley Iberoamericana, 1991

[REF. 3] K. Ogata,

Sistemas de Control en Tiempo Discreto,

Prentice-Hall, 2ª edición (1996)

[REF. 4] J. Rebollo Rodríguez,

SECAD: Módulo de Diseño de Controladores,

U.P.M., Escuela Superior de Ingenierios de Telecomunicaciones,

curso 1990-91