clase 11 control predictivo

67
Clase 11 Control Predictivo.doc 1 1. Control Predictivo a d Pasos 1. CONTROL PREDICTIVO A D PASOS ................................................................... 1 1.1. INTRODUCCIÓN.......................................................................................................... 3 1.2. PREDICTOR A D PASOS ............................................................................................... 4 1.2.1. Polos y Ceros del Predictor .............................................................................. 6 1.3. CONTROLADOR PREDICTIVO A D PASOS ................................................................... 9 1.4. CONTROLADOR PREDICTIVO A D PASOS PONDERADO ............................................11 1.5. CONTROL PREDICTIVO A D PASOS PONDERADO POR POLINOMIOS.........................14 1.6. NOTAS SOBRE EL CONTROL PREDICTIVO ...............................................................23 1.6.1. Indeterminación del Retardo...........................................................................23 1.6.2. Sensibilidad Frente a Variaciones de Parámetros .........................................24 1.7. CASO ADAPTATIVO DEL CONTROL PREDICTIVO.....................................................26 1.8. CONTROL PREDICTIVO PONDERADO ADAPTATIVO ................................................30 1.9. CONTROL PREDICTIVO PONDERADO ADAPTATIVO CON FILTRO EN LA ACTUACIÓN ...............................................................................................................................................32 1.10. COMPENSACIÓN DE VELOCIDAD ...........................................................................37 1.11. SIMULACIONES ......................................................................................................54 1.11.1. Predictor a d Pasos .......................................................................................54 1.11.2. Control Predictivo Ponderado Por Polinomios ...........................................56

Upload: seba-mardones

Post on 21-Apr-2015

52 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 1

1. Control Predictivo a d Pasos 1. CONTROL PREDICTIVO A D PASOS...................................................................1

1.1. INTRODUCCIÓN..........................................................................................................3

1.2. PREDICTOR A D PASOS...............................................................................................4

1.2.1. Polos y Ceros del Predictor ..............................................................................6

1.3. CONTROLADOR PREDICTIVO A D PASOS ...................................................................9

1.4. CONTROLADOR PREDICTIVO A D PASOS PONDERADO............................................11

1.5. CONTROL PREDICTIVO A D PASOS PONDERADO POR POLINOMIOS.........................14

1.6. NOTAS SOBRE EL CONTROL PREDICTIVO ...............................................................23

1.6.1. Indeterminación del Retardo...........................................................................23

1.6.2. Sensibilidad Frente a Variaciones de Parámetros.........................................24

1.7. CASO ADAPTATIVO DEL CONTROL PREDICTIVO.....................................................26

1.8. CONTROL PREDICTIVO PONDERADO ADAPTATIVO ................................................30

1.9. CONTROL PREDICTIVO PONDERADO ADAPTATIVO CON FILTRO EN LA ACTUACIÓN...............................................................................................................................................32

1.10. COMPENSACIÓN DE VELOCIDAD...........................................................................37

1.11. SIMULACIONES......................................................................................................54

1.11.1. Predictor a d Pasos .......................................................................................54

1.11.2. Control Predictivo Ponderado Por Polinomios ...........................................56

Page 2: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 2

1.11.3. Cálculo de los Polinomios P y R...................................................................61

1.11.4. Control Predictivo Ponderado Por Polinomios Adaptativo ........................63

Page 3: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 3

1.1. Introducción Uno de los problemas del control es el retardo,

1k k ky ay bu+ = + (1.1)

ley de control

( )11

k k ku r ayb += − (1.2)

Sistema con retardo:

2 1k k ky ay bu+ += + (1.3)

( )

2 1

1 1

2 1

k k k

k k k

k k k k

y ay buy ay buy a ay bu bu

+ +

+ −

+ −

= += +

= + +

(1.4)

22 1k k k ky a y bu abu+ −= + + (1.5)

( )22 1

1k k k ku r a y abu

b + −= − − (1.6)

concepto de predicción de la salida

Page 4: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 4

1.2. Predictor a d Pasos

A y = B u (1.7)

donde

( )-1 -2 -n

1 2 n

-d -d -1 -2 -m0 1 2 m

A= 1 + + + + a a az z zB = B = + + + + b b b bz z z z z′

……

(1.8)

se puede reescribir:

kk+d k = G + F B y y u′ (1.9)

donde F y G se relacionan por: -d1 = F A + Gz (1.10)

con -1 -2 -d+1

1 2 d -1-1 -2 -n+1

0 1 2 n-1

F = 1 + + + + f f fz z zG = + + + + g g g gz z z

……

(1.11)

Page 5: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 5

Los coeficientes de F y de G tienen la siguiente expresión: 1

0

1

0

1 1

0 1

i

i j i jj

d

i j i d jj

f f a i d

g f a i n

−=

+ −=

= − = −

= − = −

∑ (1.12)

Demostración:

( )-d

-d -d

d

F A y = F B u = F B uz1 - G y = F B uz z

y = G y + F B uz

(1.13)

Page 6: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 6

1.2.1. Polos y Ceros del Predictor

( ) ( )( )

dq B qH q

A q

− ′= (1.14)

el predictor es

( ) ( ) ( )( )( ) ( ) ( )1

d dkk k

d dkk

y z G q z F q B qy u

z G q z F q B qy u

− −

− −

′= +

′− =(1.15)

( ) ( ) ( )( )1p d

F q B qH q

z G q−=−

(1.16)

( )1 dz G q−− debe tener las raíces de ( )A q y ( )F q

problemas numéricos si se utiliza la ecuación del predictor para simular el compor-tamiento del sistema. las raíces de ( )F q se distribuyen simétricamente respecto de las raíces de ( )A q .

Page 7: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 7

Ejemplo 1.1. Sistema con Retardo 3 Sea el sistema

, 0,7 0,k-3 k-4k k-1 k-2 = 1 5 - + - 8 y y y u u (1.17)

( ), 0,7

0,

-1 -2

-3 -1

A= 1 - 1 5 z zB = 1 - 8 z z

+ (1.18)

F y G deberán cumplir

( )( ) ( )( ) ( )( ) ( )

, 0,7

, 0,7 ,

0,7 , 0,7

-1 -2 -1 -2 -3 -11 2 0 1

-1 -21 1 2

-3 -41 2 0 2 1

1= 1 + + 1 - 1 5 + + f f g gz z z z z z = 1 + - 1 5 + - 1 5 f f fz z

+ - 1 5 + + + f f g f gz z

+

+ (1.19)

resultando ,

, 0,7 ,5, 0,7 2

0,7 1,0

11 0

2 12 1 0 1

2 10 2 1 1 2

21 2 2

= 1 5 = - f fa= 1 5 - = 1 5 = - - f f f fa a

= 1 5 - = 1. 75 = - - g f f f fa a= - = - 85 = - g f fa

(1.20)

Page 8: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 8

( ) ( ) ( )1,275 1,085 , ,5 0,

,2 1,08 0,35 1,24

-1 -1 -2 -1kk+3 k

k k-1 k-2 k-3k+3 k k-1

= + 1 + 1 5 + 1 5 1 - 8 y y uz z z z= 1 75 5 + + .7 + y y y u u u u

− − (1.21)

0 5 10 15 20 250

0.5

1

1.5

2

2.5

Ilustración 1-1 Predictor a d Pasos

Page 9: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 9

1.3. Controlador Predictivo a d Pasos ley de control:

Mk k+d kF B = - G y yu′ (1.22)

-+

G

k dr + 1F B′

-d Bz A

′ku ky

M d

-d

= - G yy zzy =

F A

ε

ε (1.23)

Page 10: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 10

( )

Md d

M-d d d

M

F A y = - G yyz zF A - G y = yz z z

y = y

(1.24)

-dM Md d

-d

M-d

u = F B

G F Az= - y yz zF A F A + G zAu = y Bz

ε

ε ε

=

(1.25)

u es estable si B' lo es. Otra forma de interpretar este control es el encontrar una ley para u de modo

que minimice el siguiente funcional:

k

2Mk+d k+d k+d

u

1 = - y yJ 2J = 0|

∆ (1.26)

Resolviendo esta ecuación se llega a la misma conclusión anterior. Este control es muy sencillo e intuitivo pero tiene dos problemas:

Page 11: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 11

• se requieren grandes esfuerzos en u • es demasiado estricto en cuanto a B'.

Se verá a continuación cómo se pueden resolver estos dos problemas. 1.4. Controlador Predictivo a d Pasos Ponderado

Para hacer más flexible el diseño del control se definirá el funcional de la si-guiente forma:

2M 2k+d kk+d k+d

1 = - + y yJ u2 2

λ (1.27)

Es decir, se ha agregado un término que pesa el esfuerzo del control o la ener-gía consumida. Si se reemplaza k dy + por su valor según la expresión (1.9) y se deri-va con respecto a ku se obtendrá la nueva ley de control.

[ ]

2M 2k+d k kk k+d

Mk+dk 0 kk k+d

k

M0 k 0 k+d k

1 = G + F B - + y yJ u u2 2

J = G + F B - + = 0y yu b uu

F B + = - G y yb u b

λ

λ

λ

∂ ′ ∂

(1.28)

[ ] M0 k 0 k+d kF B + = - G y yb u bλ ′ (1.29)

Page 12: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 12

-+

G

k dr + 0

0

bFB + b λ′

-d Bz A

′ku ky

Si se analiza la función de transferencia entre referencia y salida se obtiene lo

siguiente:

( )

M dk k k

-d0

kk0

= - G y yz B bz= y

A F B + b

ε

ελ

′′

(1.30)

( )

0

0 M dk-d

0

kM

0k

A F B + b + G = y y z B bzy B b=

B + Ay b

λ

λ

′ ′

′′

(1.31)

Page 13: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 13

Es decir, la relación referencia-salida ya no es 1 sino que tiene cierta dinámica dependiendo del valor de λ. Sólo en el caso de λ=0 se eliminaría esta dinámica. Se verá ahora cómo varía la estabilidad de la variable de control. De la misma figura se desprende,

0

0-d

M Md d

-dM0 d

0

0M

0

bu = F B + b

G Bz= - G y = - uy yz z AG Bb zu = - uy zF B + Ab

u Ab= B + Ay b

ελ

ε

λ

λ

′′

′ ′

(1.32)

Por lo tanto, variando λ se puede hacer estable el polinomio 0 'b B Aλ+ lo que implica la posibilidad de estabizar u. Con esto se consigue reducir considerable-mente los esfuerzos de control. Pero aún subsisten dos inconvenientes:

• No todo sistema puede hacerse estable variando λ. • No tiene suficientes grados de libertad.

Para intentar solucionar esto se elegirá una nueva especificación del control.

Page 14: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 14

1.5. Control Predictivo a d Pasos Ponderado por Polinomios Con el fin de aumentar la libertad se definirá una nueva especificación de modo

que no se considere u directamente sino una nueva variable filtrada: 2M 2

k+d kk+d k+d

-1 -p1 p

-1 -r1 r

1 = - + y yJ u2 2P u = R u

P = 1 + + ___ + p pz zR = 1 + + ___ +r z r z

λ

(1.33)

Haciendo similar trabajo algebraico se llega a la ley de control.

Page 15: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 15

( )

( )

2M 2k+d k kk k+d

2 2Mk+d k kkk k+d

Mk+dk 0 kkk k+d

k

M0 k k+d

1 = G + F B - + y yJ u u2 21 = G + F B - + 1 - P + R y yJ u uu2 2

J = G + F B - + 1 - P + R = 0y yu b uuu

G - + y yb

λ

λ

λ

λ

∂ ′ ∂

( ) [ ]( ) ( )

( ) ( )

0 kk

M 20 0 kkk k+d

20 0 k-1 k-1

1 - P + F B + R = 0b uu

G - + 1 - P + + +y yb b uu

F B - z + R - z = 0b b u u

λ

λ λ

λ λ

′ (1.34)

Cabe notar que la forma que tienen los polinomios es la siguiente:

( )( ) 2-1 -1 -10 0 0 1 01

-11

F B = + + 1 + + = + +fb b b b bz z z R = + +r zλ λ λ

′ ⊕ (1.35)

por lo tanto, si se despeja ku se logra la expresión que sigue:

( ) ( )M 20 0 0 k-1k-1k+d k

k 20

- G - 1 - P z - F B - + R - z y yb b b uu = u

+ b

λ λ λ

λ

′ (1.36)

Page 16: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 16

o sea

( ) ( )1 2

[

]

Mk 0 0 0k+d 0 k 1 k-12

0

0 k-1 0 k-2 k-1 k-21 2 1 2

1 = - - -y g y g yu b b b + b

- + r - + r + + f b f b p pb u b u u u

λλ λ λ λ′ ′ −

(1.37)

Si se lo expresa en forma de bloques resulta la Ilustración 1-2. Igual que antes se puede analizar la forma de la salida y la estabilidad de la variable de control. Es conveniente hacer previamente una modificación de los bloques para facilitar el es-tudio. De la figura se puede inferir:

u

- -+

rz-dB'

A

y1

FB'b0+Rlb0

R

Pl(P-1)

G

++

Ilustración 1-2 Control Predictivo a d pasos ponderado por polinomios

Page 17: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 17

( ) 0 k0

k0 0

0 k k 0

0 k 0

(P -1) R + b u + u P - 1b P = = uF B + R F B + Rb b

(P -1) R(F B + R) - = b u u bP(F B P + R P - R P + R) = P b u b

ε λε λλ λ

λ λ ε

λ λ λ ε

′ ′

(1.38)

con lo que la ley de control resulta:

( )Mk 0 k+d k

0

P = - G y yu bF B P + Rb λ′

O sea que se puede modificar la Ilustración 1-2 y lograr la Ilustración 1-3 .

-+

G

k dr + 0

0

b PFB P Rb λ′ +

-d Bz A

′ku ky

Ilustración 1-3Versión Simplificada

Page 18: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 18

Ahora si, se analizará la relación entre la referencia y la salida. El error es:

( )( )

M dk k k

-d0

kk0

0 Mdk k-d

0

= - G y yz B P bz= y

A F B P + RbF B P + RbA + G = y yz B P bz

ε

ελ

λ

′′

′ ′

(1.39)

por lo tanto la relación entre y e yM tiene la siguiente forma: M-d

0 0 0k k

0kM

0k

A F B P + A R + G B P = B P y yb b bzy B P b =

B P + A Ry b

λ

λ

′ ′ ′ ′

(1.40)

Se puede analizar la estabilidad de la variable de control como sigue:

Page 19: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 19

( )

0

0M d

-dM d

-d dM0 0

0 0

M-d d0 0 0

0M

Pbu = F B P + Rb = - G yy z

G Bz = - uy z A P G B P b bz zu 1 + = y

A F B P + R F B P + Rb b

u A F B P + A R + P G B = A P yb b bz zu A b = y

ελ

ε

ε

λ λ

λ

′ ′ ′

′ ′

0

PB P + A Rb λ′ (1.41)

Nótese que ahora los grados de libertad que se tienen para hacer estable u son mayores.

Las tres figuras siguientes muestran al sistema del primer ejemplo controlado por los tres tipos de reguladores visto. Primero, por un regulador predictivo sin pon-deración, luego se incluye el factorλ y por último se introducen los polinomios de ponderación.

Page 20: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 20

0 50 100 150 200 250-1.5

-1

-0.5

0

0.5

1

1.5

Ilustración 1-4 Control Predictivo Clásico

Page 21: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 21

0 50 100 150 200 250-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Ilustración 1-5 Control Predictivo Ponderado

Page 22: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 22

0 50 100 150 200 250-1.5

-1

-0.5

0

0.5

1

1.5

Ilustración 1-6 Control Predictivo Ponderado con Polinomios

Los polinomios de ponderación se podrían calcular considerando el denomina-dor de la función de transferencia en lazo cerrado posicionando sus raices en algún lugar deseado.

Page 23: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 23

1.6. Notas Sobre el Control Predictivo Se verá a continuación algunas consideraciones a tener en cuenta en este tipo

de control.

1.6.1. Indeterminación del Retardo En este control es imprescindible conocer el retardo de la planta y muchas ve-

ces no es posible hacerlo con exactitud. Suponiendo que el sistema tiene el si-guiente polinomio en el numerador

-m0 m

m 1 2 m 0

m 0

B + + b b z b c c c b

b b

′ ==

…… (1.42)

donde los ic son los diferentes ceros del sistema

Además se supone 0b pequeño y despreciable. El regulador con este nuevo po-linomio será:

-mn0 m

n

B z + + + z + b b z BB - zBε ε

ε′

′ = =′=

… (1.43)

O sea que el regulador no estaría ajustado exactamente y la nueva función de transferencia se calculará como sigue:

Page 24: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 24

( )( ) ( )

-d

-dMk+d k k

n

M -dnk k k

M -dn nk k k

M -d+1n nk k

1 = A F + Gz Bz - G = y y y

A F B - G B = A F y y yz B

- G + z = A F y y yz B B

+ z = + Gy yB B z

ε

ε ε

′ ′

′ ′

(1.44)

Ahora el último paréntesis es el que debe ser estable. Es útil esto para analizar la robustéz del sistema (partiendo de '

nB estable).

1.6.2. Sensibilidad Frente a Variaciones de Parámetros Sea el sistema real como el de la ecuación:

-dA y = B uz (1.45)

y sea el modelo o sistema nominal: -d

n n y = uA z B (1.46)

El regulador se calcula para el sistema nominal. Derivando la transferencia res-pecto a los parámetros del sistema obtenemos:

Page 25: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 25

( )

-dn

-dMk+d k k

n

kM -d

nk

-i -d-i -d -in n

2ni n

-in n -i

2i n

1 = F + GA z Bz - G = y y y

A F By B = = M

A F + G By B z1 - Gz zM - G z B B z z = =

b BBM - F z B B = = - Fza B

′ ′

′′

′ ′

′′

∂∂

∂∂

(1.47)

No dice mucho. Si -1

1

-1

1

C = 1 - czC = - ?zc∂∂

(1.48)

Page 26: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 26

1.7. Caso Adaptativo del Control Predictivo Se desconoce el proceso real. Habrá que proponer un modelo de la planta: ˆ ˆ-dA y = B uz ′ (1.49)

donde ˆ ˆ ˆ ˆ

ˆ ˆ ˆ ˆ ˆ

-1 -2 -n1 2 n

-1 -2 -m0 1 2 m

A= 1 + + + + a a az z zB = + + + + z z zb b b b′

… (1.50)

Estos polinomios se usarán en el cálculo del regulador. En el caso de conoci-miento absoluto teníamos el predictor

kk+d k = G + F B y y u′ (1.51)

Para expresarlo en una forma vectorial compacta se define

[ ][ ]

T0 0 1

Tk k k-m-d+1k k-n+1

Tkk+d

= p g f b f b

= y yx u u= py x

′ ′… …

… … (1.52)

La ley de control ideal será: MT

k k+d p = yx (1.53)

Page 27: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 27

Al no conocer el vector de parámetros se lo reemplaza por su estimación:

ˆ MTk k k+d = p yx (1.54)

Si se despeja la actuación, queda:

ˆ ˆ ˆ ˆˆ

Mk k-1 k-m-d+1k+d 0 k n-1 k-n+1 n n+m+d

n

1 = - - - - - - y p y p y p pu u up

… … (1.55)

Se puede usar cualquier método de identificación con una modificación:

ˆ ˆ ˆTk k-d k-dk k-1 k-1 k = - - p p p yx xP (1.56)

Se observa que en el término correspondiente al error se considera el vector de muestras x previo al retardo. Esto es porque el producto de x por p da la salida luego del retardo.

Un posible problema es que 0̂b sea cero. Esto se soluciona poniendo algún tipo de filtro lógico que evite esta división.

Esta forma se denomina control adaptativo indirecto

Page 28: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 28

Algoritmo directo. Otra expresión de la planta:

Tkk+d = py x (1.57)

Tk k = pu x ′ (1.58)

donde

[ ]

T 0 n-1 1

0 0 0 0

Tk-1 k-m-d+1k k k-n+1 k+d

g g f b 1= pf b f b f b f b

= - - - - y y yu ux

′′ ′ ′ ′ ′

… …

… …

(1.59)

La ley de control también se dejará en una forma explícita vectorial: ˆT

k k k = pu x ′′ (1.60)

donde

ˆ ˆ ˆ

MTk k-1 k-m-d+1k k-n+1 k+d

Tk k-dk-d k-dk k-1 k-1

= - - - - y y yx u u

= - - p p p uP x x

′ ′ ′ ′

… … (1.61)

En esta forma, el estimador ya no calcula los parámetros del sistema sino los del regulador.

Page 29: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 29

Comentario:

[ ]1ˆ ˆ ˆ ˆ ˆ ˆ ˆ

ˆ ˆ ˆ

ˆ

T T TT T T Tk k-d k-d k-d k-d k-dk-d k-d k-dk- k-1 k-d k-1 k-d k-1 k-1

T T Tk-d k-dk-d k-1 k-1 k-d

Mkk k

- = - - + - p p p p p p pe u x x x xx x x - + - p p px xx

- y y ε

′ ′ ′ ′ ′ ′= =′ ′ ′ ′

′ ′ ′= ′ ′ = +

(1.62)

ˆk k k + e ε ε= (1.63)

siendoε el error de seguimiento de la salida y ε̂ un error auxiliar

Page 30: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 30

1.8. Control Predictivo Ponderado Adaptativo El control predictivo ponderado resultaba:

( ) ( )M0 k 0 k+d kF B + - G y yb u bλ′ = (1.64)

( )M0k kk+d k2

0

b - G - F B - 1 y yu u + b λ

′= (1.65)

La ley de control, conociendo el sistema y expresada en forma vectorial es: T

k k = pu x (1.66)

donde:

T 0 0 000 0 n-1 m+d -112 2 2 2 20 0 0 0 0

MTk k-1 k-m-d+1k+d k k-n+1

g g f bf bb b bbb p+ + + + +b b b b b

- - - -y y yx u u

λ λ λ λ λ′′ =

=

… …

… …(1.67)

Page 31: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 31

Para la forma directa del algoritmo se introduce una modificación en el modelo de la planta:

kk+d k= G + F B y y u′ (1.68)

k k+d kF B = - G y yu′ (1.69)

0 k kk+d k = - G - (F B - 1) y yb u u′ (1.70)

[ ]20 0

k kk+d k2 20 0

b b = - G - (F B - 1) y yu u+ +b bλ λ′ (1.71)

0k k kk+d k2

0 0

b= ( + ) - G - (F B - 1) y yu u u+b bλ

λ ′

(1.72)

Ahora la nueva expresión vectorial de la planta es: T

k k = pu x (1.73)

donde

Tk k-1 k-m-d+1k k+d k k-n+1

0

T 0 0 000 0 n-1 m+d -112 2 2 2 20 0 0 0 0

= + , - - - -y y yu u uxb

g g f bf bb b bbb= p+ + + + +b b b b b

λ

λ λ λ λ λ

′′

… …

… …(1.74)

Page 32: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 32

1.9. Control Predictivo Ponderado Adaptativo con Filtro en la Actuación En este caso la Ley de control era:

( ) 1M

10 0 0k k k-1 k-2k+d 0 k 1 1 220

1u u + y g y f b p pb b b r u u+bλ λ λ

λ − ′= − − − + + + … (1.75)

Por lo tanto, u en forma vectorial resulta: T

k k = pu x (1.76)

donde T Mk k-1 k-1k k-n+1k d

T 0 100 0 1 1 22 2 2 2 20 0 0 0 0

= - - - y yyx u u

+g f b p pb b rb= , p+ + + + +b b b b b

λ λ λλ λ λ λ λ

+

… … …

… … … (1.77)

Aquí también se requiere alguna consideración para utilizar la versión directa del controlador. Se expresará al sistema del siguiente modo:

kk+d k= G + F B y y u′ (1.78)

( )00 k kk+d k = - G F B b y yb u u′− − (1.79)

( )20 0 0 0 0 k kk+d kk+ u = - G - (F B - ) +y yb b b b b u uλ λ′ (1.80)

Page 33: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 33

por otro lado,

( )1 1k k-1kk k k-11= P - R u = + - pu uru u uλ λ λ λ λ λ− …(1.81)

reemplazando,

( )1k 0 0 0 k-1k k-1k+d k 1 120 0

1= + - G - + + y y f b pu b b b uru u+b bλ λ λ

λ ′

… (1.82)

por lo tanto: T

k = pu x (1.83)

donde

Tk-1k d kk k-1k k-n+1

0

T 0 100 0 1 1 22 2 2 2 20 0 0 0 0

= y u , - - - y y ux ub

+g f b p pb b rb= , p+ + + + +b b b b b

λ

λ λ λλ λ λ λ λ

+ +

… … …

… … … (1.84)

con lo que queda expresada u de igual forma que antes con la excepción de la aparición en su cálculo de la variable filtrada.

Page 34: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 34

Ejemplos: cambio en la muestra 50: se reduce a la mitad la ganancia.

0 50 100 150-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

0 50 100 150-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Page 35: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 35

0 50 100 150-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

0 50 100 150-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

0 50 100 150-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

0 50 100 150-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Page 36: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 36

0 50 100 150-3

-2

-1

0

1

2

3

4

Page 37: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 37

1.10. Compensación de Velocidad

1 11 2 1 2

11 2 1 21

1

0 00 0

k

k k k

k kk

k

yy y uas as bs bs

y uad ad bd bdyy

+ −

−+

= +

(1.85)

1

2 11 2 1 2

11 2 1 22

0 00 0

k

k k k

k kk

k

yy y uas as bs bs

y uad ad bd bdyy

+

+ +

++

= + =

(1.86)

1 2 1

2 1 2

1 2 11 22

11 2 1 2 1 2

11 2 1 2 1 2

0 00 0

k k

k k

k kk

k

k k

k k

as y as yy yas as

ad y ad yad adyy

u uas as bs bs bs bsu uad ad bd bd bd bd

+

−+

+

+ = + +

+ +

(1.87)

Page 38: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 38

22 1 11 1 2 1 1 2 2 2 1 21 2 1 2

211 1 2 1 1 2 2 2 1 22 1 2 1 2

1

k

k k k k

k k kk

k

yy y u uas bs as bd as bs as bd bs bsas as as as

y u uad bs ad bd ad bs ad bd bd bdy ad ad ad ady

+ − +

−+

+ + + = + + + ++

(1.88)

22 1 11 1 2 1 1 2 2 2 1 21 2 1 2

211 1 2 1 1 2 2 2 1 22 1 2 1 2

1

k

k k k k

k k kk

k

yy y u uas bs as bd as bs as bd bs bsas as as as

y u uad bs ad bd ad bs ad bd bd bdy ad ad ad ady

+ − +

−+

+ + + = + + + ++

(1.89)

12 1

21

1

k

kk k

kkk

k

k

yy

y uyR M

uyyu

−+ +

+−

= +

(1.90)

La ley de control es

Page 39: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 39

121 1

21

1

k

kykk

kk yk

k

k

yyruyM R

u ryu

−++ −

+−

= −

(1.91)

Page 40: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 40

Ejemplo 1.2. Péndulo Invertido 2

2

d y kudt

= (1.92)

dv kudt

= (1.93)

2 2

1 1 122 2k k k k k

T Ty y y k u k u+ − −= − + + (1.94)

1k k kv v kTu+ = + (1.95)

predictor

2 2 2 2 2 2

2 1 1 1 1 1

2 22

1 1 1

2 2 22 2 2 2 2 2

3 2 32 2

k k k k k k k k k k k k

k k k k k

T T T T T Ty y y k u k u y y k u k u y k u k u

T Ty y k u k u kT u

+ + + − − +

− + −

= − + + = − + + − + + =

= − + + + (1.96)

2 1 1

1

k k k

k k k

v v kTuv kTu kTu

+ + +

+

= + == + +

(1.97)

Page 41: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 41

2 22

2 1 1 1

2 1

3 2 32 2k k k k k k

k k k k

T Ty y y k u k u kT u

v v kTu kTu

+ − + −

+ +

= − + + +

= + + (1.98)

cálculo de la actuación 2 2

21 2 1 1

1 2

3 3 22 2k k k k k k

k k k k

T Tk u k u y y y kT u

kTu kTu v v

+ + − −

+ +

+ = − + −

+ = − (1.99)

12 22

1 1 13 232 2 0

k k k k

k k

T Tu r y y kT uk ku vkT kT

+ − − − + = −

(1.100)

la ku

( )21 12

1 13 2k k k k ku r y y kT u vkT kT− −= − + − + (1.101)

El regulador predictivo clásico para la posición sería

( )1 12

2 2k k k kucp r y y ucpkT − −= − + − (1.102)

Page 42: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 42

y para la velocidad

( )1k kuvc rv v

kT= − (1.103)

reescribiendo el compensado

( )

( ) ( ) ( )

21 12

21 1 1 1 1 12 2 2

1 13 2

2 2 1 12 3 2

k k k k k

k k k k k k k k k k

u r y y kT u vkT kT

r y y u y y u r y y kT u vkT kT kT kT

− −

− − − − − −

= − + − + =

= − + − − − − − − + − + (1.104)

quedando finalmente, 1 k

k k kr yu ucp v

kT T− = − −

(1.105)

es como tener dos controladores predictivos clásicos, uno dependiente de la posición y otro de la velocidad con una velocidad de referencia igual a la que debe-ría tener el sistema para llegar en forma recta a la referencia de posición en una muestra.

Otra alternativa sería calcular la velocidad como diferencia entre muestras con-secutivas, pero esto introduce una imprecisión en la velocidad que degrada el con-trol. Se analiza el efecto en la simulación.

Page 43: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 43

- Algoritmo: %Sistema continuo ganancia = 1; num= ganancia ; den=poly([0, 0]); syscont = tf( num,den); %Sistema en variables de estado Pss = ss(syscont); [a,b,c,d] = ssdata(Pss); % y su respuesta al escalón ... t = 0:0.01:10; u = ones(size(t)); y = lsim(syscont,u,t); yy = lsim(Pss,u,t); T=.1; kp = .5; Tfin = 3; precision= T/100; t = 0:precision:T; ref = 1; yaux = zeros(size(t)); ly = length(t); x0= zeros(2,2); yy = 0; uu = 0; ref = 1; n = 530; A=[1 -2 1]; %A=[1 -.5];

Page 44: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 44

k=1; B=k*T^2/2*[0 1 1]; M=[B(2) -A(2)*B(2);B(2) -A(2)*B(2)-B(2)]; IM=inv(M); AB=[(-A(2))^2-A(3) -A(2)*A(3) 0 0 0;0 0 (-A(2))^2-A(3) -A(3) A(2)*B(2)]; y = zeros(n,1); yd = zeros(n,1); u = zeros(n,1); UU = zeros(n,2); %predictivo clásico y = zeros(n,1); yd = zeros(n,1); u = zeros(n,1); x0= zeros(2,2); yaux = zeros(size(t)); uaux = zeros(size(t)); yy = 0; uu = 0; for i = 3:Tfin/T % Sistema Discreto yd(i)=-A(2:length(A))*flipud(yd(i-length(A)+1:i-1))+B*flipud(u(i-length(B)+1:i)); % Sistema Continuo [yaux, tt, x0] = lsim(Pss,uaux,t,x0(length(x0),:)); yy = [yy ; yaux]; uu = [uu ; uaux']; % Regulador y(i)= yaux(ly); u(i)=(2/T^2)*(ref-2*y(i)+y(i-1))-u(i-1); % bloqueador de orden cero nivelu=u(i);

Page 45: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 45

uaux = nivelu * ones(size(t)); end;

plot([yy]);grid

0 500 1000 1500 2000 2500 30000

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

0 5 10 15 20 25 300

0.2

0.4

0.6

0.8

1

1.2

1.4

stairs([u(1:Tfin/T)]);grid

Page 46: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 46

0 5 10 15 20 25 30-400

-300

-200

-100

0

100

200

300

400

Page 47: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 47

Compensación Por Velocidad y = zeros(n,1); yd = zeros(n,1); vy = zeros(n,1); u = zeros(n,1); x0= zeros(2,2); yaux = zeros(size(t)); uaux = zeros(size(t)); yy = 0; uu = 0; M=[ganancia*T^2/2 3*ganancia*T^2/2; ganancia*T ganancia*T]; IM=inv(M); for i = 3:Tfin/T % Sistema Discreto yd(i)=-A(2:length(A))*flipud(yd(i-length(A)+1:i-1))+B*flipud(u(i-length(B)+1:i)); % Sistema Continuo [yaux, tt, x0] = lsim(Pss,uaux,t,x0(length(x0),:)); yy = [yy ; yaux]; uu = [uu ; uaux']; % Regulador y(i)= yaux(ly); vy(i)= (yaux(ly)-yaux(ly-1))/precision; u(i)=(1/T^2)*(ref-3*y(i)+2*y(i-1))-u(i-1)+1/T*vy(i); % ó esta alternativa: u(i)=(2/T^2)*(ref-2*y(i)+y(i-1))-u(i-1)-1/T*((ref-y(i))/T-vy(i)); % bloqueador de orden cero nivelu=u(i); uaux = nivelu * ones(size(t));

Page 48: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 48

end;

plot([yy]);grid

0 500 1000 1500 2000 2500 30000

0.5

1

1.5

0 5 10 15 20 25 300

0.2

0.4

0.6

0.8

1

1.2

1.4

stairs([u(1:Tfin/T)]);grid

Page 49: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 49

0 5 10 15 20 25 30-80

-60

-40

-20

0

20

40

60

80

100

Page 50: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 50

Compensación con Cálculo de velocidad Se calcula la velocidad como diferencia entre muestras

y = zeros(n,1); yd = zeros(n,1); vy = zeros(n,1); u = zeros(n,1); x0= zeros(2,2); yaux = zeros(size(t)); uaux = zeros(size(t)); yy = 0; uu = 0; M=[ganancia*T^2/2 3*ganancia*T^2/2; ganancia*T ganancia*T]; IM=inv(M); for i = 3:Tfin/T % Sistema Discreto yd(i)=-A(2:length(A))*flipud(yd(i-length(A)+1:i-1))+B*flipud(u(i-length(B)+1:i)); % Sistema Continuo [yaux, tt, x0] = lsim(Pss,uaux,t,x0(length(x0),:)); yy = [yy ; yaux]; uu = [uu ; uaux']; % Regulador y(i)= yaux(ly); % esta es la diferencia, se calcula la velocidad como diferencia entre muestras vy(i)= (y(i)-y(i-1))/T; u(i)=(1/T^2)*(ref-3*y(i)+2*y(i-1))-u(i-1)+1/T*vy(i); % ó esta alternativa: u(i)=(2/T^2)*(ref-2*y(i)+y(i-1))-u(i-1)-1/T*((ref-y(i))/T-vy(i));

Page 51: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 51

% bloqueador de orden cero nivelu=u(i); uaux = nivelu * ones(size(t)); end;

plot([yy]);grid

0 500 1000 1500 2000 2500 30000

0.2

0.4

0.6

0.8

1

1.2

1.4

plot([y(1:Tfin/T)]);grid

Page 52: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 52

0 5 10 15 20 25 300

0.2

0.4

0.6

0.8

1

1.2

1.4

stairs([u(1:Tfin/T)]);grid

Page 53: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 53

0 5 10 15 20 25 30-150

-100

-50

0

50

100

Page 54: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 54

1.11. Simulaciones 1.11.1. Predictor a d Pasos

n = 30; yo = zeros(n,1); yp = zeros(n,1); u = zeros(n,1); for i = 7:n u(i)=1; yo(i)=1.5*yo(i-1)-.7*yo(i-2)+u(i-3)-.8*u(i-4); yp(i)=1.275*yp(i-3)-1.085*yp(i-4)+u(i-3)+.7*u(i-4)+.35*u(i-5)-1.24*u(i-6); end;

stairs([yo(6:n) yp(6:n)]);grid

Page 55: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 55

0 5 10 15 20 250

0.5

1

1.5

2

2.5

Page 56: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 56

1.11.2. Control Predictivo Ponderado Por Polinomios

cambioref = 50; ciclos = 5; n = cambioref * ciclos; e = 0.0*randn(n,1); y = zeros(n,1); Ap = [1 -1.74 .77]; Bp = 2 * [1.1 .9]; A = Ap; B = Bp; na = length(Ap); nb = length(Bp); C = [1.0000 -2.0000 1.2900 -0.2700 0 0 0 0]; nc = 4; nk = 2; ref = ones(cambioref,1); for i = 1:ciclos-1, ref = [ref; (-1)^i*ones(cambioref,1)]; end; u = zeros(n,1); uf = zeros(n,1); lambda = 10; P=[1 -0.9 0 0]; R=[1 -0.8 0 0];

P=[1 -1.3981 0.4976 0];

R=[1 -0.9473 0.1205 0];

Page 57: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 57

% calculo del vector F F = zeros(nk,1); F(1) = 1; for i = 2: nk for j = 1:i-1 if i-j+1 <= length(A) F(i) = F(i) - F(j)*A(i-j+1); end; end; end; % calculo del vector G G = zeros(na,1); for i = 1: na for j = 0:nk-1 if i+nk-j <= length(A) G(i) = G(i) - F(j+1)*A(i+nk-j); end; end; end; % calculo del vector FB FB = conv(F,B)'; % cálculo del vector de parámetros ParReg = ones(na+nb+nk-3+length(P),1)*B(1) /( B(1)*B(1)+lambda); ParReg(2:na) = ParReg(1) * G(1:na-1); ParReg(na+1:na+nb+nk-2) = (FB(2:nb+nk-1)+lambda*R(2:nb+nk-1)'/B(1)) * ParReg(1); ParReg(na+nb+nk-1:na+nb+nk+length(P)-3) = -lambda*P(2:length(P))/B(1)*ParReg(1); for i = nk+nb+5 : n

Page 58: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 58

% Sistema y(i) = 0; for j = 2:na y(i) = y(i) - A(j)*y(i-j+1); end; for j = 1:nb y(i) = y(i) + B(j)*u(i+1-j-nk); end; % y(i)=fliplr(B(1:length(B)))*u(i-length(B):i-1)-%fliplr(A(2:length(A)))*y(i-length(A)+1:i-1); for j = 1:nc y(i) = y(i) + C(j)*e(i-j); end; % Regulador % cálculo de la uf filtrada: uf = (R/P)u uf(i-1)=0; for j = 1:length(R) uf(i-1) = uf(i-1) + u(i-j)*R(j); end; for j = 2:length(P) uf(i-1) = uf(i-1) - uf(i-j)*P(j); end; % cálculo del vector de valores para el control predictivo ValReg = zeros(na+nb+nk-3+length(P),1); ValReg(1) = ref(i); ValReg(2:na) = -flipud(y(i-na+2:i)); ValReg(na+1:na+nb+nk-2) = -flipud(u(i-nb-nk+2:i-1)); ValReg(na+nb+nk-1:na+nb+nk+length(P)-3) = -flipud(uf(i-length(P)+1:i-1)); % actuación u(i) = ValReg' * ParReg; end

Page 59: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 59

plot(y);grid; hold on; stairs(u,'r'); hold off

Page 60: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 60

0 50 100 150 200 250-1.5

-1

-0.5

0

0.5

1

1.5

Page 61: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 61

0 50 100 150 200 250-1.5

-1

-0.5

0

0.5

1

1.5

1.11.3. Cálculo de los Polinomios P y R M=poly([.5 .5 .5 .5]);

A=[1 -1.74 .77];

B=[2.2 1.8];

Page 62: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 62

lambda=10;

MM=[B(1)^2 0 lambda 0;

B(1)*B(2) B(1)^2 lambda*A(2) lambda;

0 B(1)*B(2) lambda*A(3) lambda*A(2);

0 0 0 lambda*A(3)];

ind= M(2:length(M))'*(B(1)^2+lambda)-[B(1)*B(2)+lambda*A(2); lambda*A(3); 0;0];

%ind= M(2:length(M))'-[B(1)*B(2)+lambda*A(2); lambda*A(3); 0;0];

pp=inv(MM)*ind;

P=[1 pp(1:2)' 0];

R=[1 pp(3:4)' 0];

roots([conv(B,P)*B(1) 0]+lambda*conv(A,R)) ans = 0 0.5001 0.5000 + 0.0001i 0.5000 - 0.0001i 0.4999

Page 63: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 63

1.11.4. Control Predictivo Ponderado Por Polinomios Adaptativo

cambioref = 30; ciclos = 5; n = cambioref * ciclos; e = 0.02*randn(n,1); y = zeros(n,1); Ap = [1 -1.74 .77]; Bp = 2 * [1.1 .9]; A = Ap; B = Bp; %A = [1 -1.7995 .8120]; %B = 1e-3 * [.8344 .5749]; na = length(Ap); nb = length(Bp); C = [1.0000 -2.0000 1.2900 -0.2700 0 0 0 0]; nc = 4; nk = 2; ref = ones(cambioref,1); for i = 1:ciclos-1, ref = [ref; (-1)^i*ones(cambioref,1)]; end; u = zeros(n,1); uf = zeros(n,1); lambda = 10; P=[1 -1.3981 0.4976 0];

Page 64: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 64

R=[1 -0.9473 0.1205 0]; u = zeros(n,1); % inicialización identificación np=na+nb+nk+length(P)-1-2; Aest = ones(n,np); lam=.99; p=10000*eye(np); th=eps*ones(np,1); % calculo del vector F F = zeros(nk,1); F(1) = 1; for i = 2: nk for j = 1:i-1 if i-j+1 <= length(A) F(i) = F(i) - F(j)*A(i-j+1); end; end; end; % calculo del vector G G = zeros(na,1); for i = 1: na for j = 0:nk-1 if i+nk-j <= length(A) G(i) = G(i) - F(j+1)*A(i+nk-j); end; end; end; % calculo del vector FB

Page 65: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 65

FB = conv(F,B)'; % cálculo del vector de parámetros ParReg = ones(na+nb+nk-3+length(P),1)*B(1) /( B(1)*B(1)+lambda); ParReg(2:na) = ParReg(1) * G(1:na-1); ParReg(na+1:na+nb+nk-2) = (FB(2:nb+nk-1)+lambda*R(2:nb+nk-1)'/B(1)) * ParReg(1); ParReg(na+nb+nk-1:na+nb+nk+length(P)-3) = -lambda*P(2:length(P))/B(1)*ParReg(1); for i = nk+nb+5 : n % Sistema y(i) = 0; for j = 2:na y(i) = y(i) - A(j)*y(i-j+1); end; for j = 1:nb y(i) = y(i) + B(j)*u(i+1-j-nk); end; for j = 1:nc y(i) = y(i) + C(j)*e(i-j); end; % Regulador % cálculo de la uf filtrada: uf = (R/P)u uf(i-1)=0; for j = 1:length(R) uf(i-1) = uf(i-1) + u(i-j)*R(j); end; for j = 2:length(P) uf(i-1) = uf(i-1) - uf(i-j)*P(j); end; % cálculo del vector de valores para el control predictivo ValReg = zeros(na+nb+nk-3+length(P),1);

Page 66: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 66

ValReg(1) = ref(i); ValReg(2:na) = -flipud(y(i-na+2:i)); ValReg(na+1:na+nb+nk-2) = -flipud(u(i-nb-nk+2:i-1)); ValReg(na+nb+nk-1:na+nb+nk+length(P)-3) = -flipud(uf(i-length(P)+1:i-1)); % actuación u(i) = Aest(i-1,1:np) * ValReg(1:np); % Cálculo del vector X para el identificador x = zeros(np,1); x(1)=y(i)+lambda/Bp(1)*uf(i-nk); x(2:na)=-flipud(y(i-na+2-nk:i-nk)); x(na+1:na+nb+nk-2) = -flipud(u(i-nb-nk+2-nk:i-1-nk)); x(na+nb+nk-1:na+nb+nk+length(P)-3) = -flipud(uf(i-length(P)+1-nk:i-1-nk)); % Identificación yh=x'*Aest(i-1,1:np)'; epsi=u(i-nk)-yh; K=p*x/(lam + x'*p*x); p=(p-K*x'*p)/lam; Aest(i,1:np)=(Aest(i-1,1:np)'+K*epsi)'; epsilon=u(i)-Aest(i,1:np)*x; end plot(y);grid; hold on; stairs(u,'r'); hold off axis([0 n -2 2]) plot(Aest);grid;

Page 67: Clase 11 Control Predictivo

Clase 11 Control Predictivo.doc 67

- Referencias 1. Goodwin, G. Sin: Adaptive Filtering, Prediction and Control, Prentice Hall –

1984. Compensación de Velocidad: p 128/168