Está en la página 1de 68

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 CON EFECTO INTEGRAL ....................................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 ...........................................................................38
1.11. SIMULACIONES ......................................................................................................55
1.11.1. Predictor a d Pasos .......................................................................................55
1.11.2. Control Predictivo Ponderado Por Polinomios ...........................................57

Clase 11 Control Predictivo.doc 1


1.11.3. Cálculo de los Polinomios P y R...................................................................62
1.11.4. Control Predictivo Ponderado Por Polinomios Adaptativo ........................64

Clase 11 Control Predictivo.doc 2


1.1. Introducción
Uno de los problemas del control es el retardo,
yk +1 = ayk + buk (1.1)

ley de control
1
uk = ( rk +1 − ayk ) (1.2)
b
Sistema con retardo:
yk +2 = ayk +1 + buk (1.3)
yk +2 = ayk +1 + buk
yk +1 = ayk + buk −1 (1.4)

yk +2 = a ( ayk + buk −1 ) + buk


yk +2 = a 2 yk + buk + abuk −1 (1.5)

1
uk =
b
( rk + 2 − a 2 yk − abuk −1 ) (1.6)

concepto de predicción de la salida

Clase 11 Control Predictivo.doc 3


1.2. Predictor a d Pasos
A y= Bu (1.7)

donde
A = 1 + a 1 z -1 + a 2 z -2 +… + a n z -n
( b0 + b1 z )
(1.8)
B = z B′ = z
-d -d -1 -2
+ b 2 z +… + b m z -m

se puede reescribir:
y k+d = G y k + F B ′ u k (1.9)

donde F y G se relacionan por:


1 = F A + z -d G (1.10)

con
F = 1 + f 1 z -1 + f 2 z -2 +… + f d -1 z -d+1
(1.11)
-1 -2 -n+1
G = g 0 + g 1 z + g 2 z +… + g n-1 z

Clase 11 Control Predictivo.doc 4


Los coeficientes de F y de G tienen la siguiente expresión:
i −1
f i = − ∑ f j ai − j i = 1 d − 1
j =0
(1.12)
d −1
gi = − ∑ f j ai +d − j i = 0 n −1
j =0

Demostración:
F A y = F B u = z -d F B ′ u
(1 - z -d G ) y = z -d F B′ u (1.13)

z y = G y + F B′ u
d

Clase 11 Control Predictivo.doc 5


1.2.1. Polos y Ceros del Predictor
q − d B′ ( q )
H (q) = (1.14)
A( q)
el predictor es
yk = q − d G ( q ) y k + q − d F ( q ) B ′ ( q ) u k
(1 − q G ( q ) ) y k = q F ( q ) B′ ( q ) u k
(1.15)
−d −d

F (q) B(q)
H p (q) = (1.16)
1− q G (q)
−d

1 − q − d 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 ) .

Clase 11 Control Predictivo.doc 6


Ejemplo 1.1. Sistema con Retardo 3
Sea el sistema
y k = 1, 5 y k -1 - 0,7 y k -2 + u k -3 - 0, 8 u k -4 (1.17)

A = 1 - 1, 5q −1 + 0,7 q −2
(1 - 0, 8q )
(1.18)
−3 −1
B= q
F y G deberán cumplir
1= ( 1 + f 1 q −1 + f 2q −2 )( 1 - 1, 5q −1 + 0,7 q −2 ) + q −3 ( g 0 + g 1q −1 )
= 1 + ( f 1 - 1, 5 ) q −1 + ( 0,7 - 1, 5 f 1 + f 2 ) q −2 (1.19)

+ ( 0,7 f 1 − 1, 5 f 2 + g 0 ) q −3 + ( 0,7 f 2 + g 1 ) q −4
resultando
f1 = 1, 5 = - a1 f0
f2 = 1, 5 f 1 - 0,7 = 1,55 = - a 2 f 0 - a 1 f1
(1.20)
g 0 = 1, 5 f 2 - 0,7 f 1 = 1.275 = - a 2 f 1 - a 1 f2
g1 = - 0,7 f 2 = - 1,085 = - a2 f2

Clase 11 Control Predictivo.doc 7


y k+3 = (1, 275 − 1,085q −1 ) y k + ( 1 + 1, 5q −1 + 1,55 q −2 )( 1 - 0, 8q −1 ) u k
(1.21)
y k+3 = 1, 275 y k − 1,085 y k -1 + u k + 0,7 u k -1 + 0,35 u k -2 − 1, 24 u k -3
2.5

1.5

0.5

0
0 5 10 15 20 25

Ilustración 1-1 Predictor a d Pasos

Clase 11 Control Predictivo.doc 8


1.3. Controlador Predictivo a d Pasos
ley de control:
F B ′ u k = y k+d
M
- G yk (1.22)

dk
rk + d εk 1 uk q B′
-d yk
F B′ A

ε k = ykM q d − G yk
q−d q − d B′ (1.23)
yk = εk + dk
FA A
FAq d yk = ykM q d - G yk + B′Fd k
( F A + Gq ) q
−d d
yk = ykM q d + B′Fd k (1.24)

yk = ykM + B′Fd k − d
Clase 11 Control Predictivo.doc 9
ε
u=
F B′
G z -d FA
ε=y z -M d
ε = y M zd (1.25)
FA F A + G z -d
A M
u = -d y
z B′
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:
1 2
 M

J k+d =  y k+d - y k+d 
2 (1.26)

∆J |uk = 0
Resolviendo esta ecuación se llega a la misma conclusión anterior.
Este control es muy sencillo e intuitivo pero tiene dos problemas:
• 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.

Clase 11 Control Predictivo.doc 10


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:
1 2 λ 2
 M

J k+d =  y k+d - y k+d  + u k (1.27)
2 2
Es decir, se ha agregado un término que pesa el esfuerzo del control o la ener-
gía consumida. Si se reemplaza yk +d por su valor según la expresión (1.9) y se deri-
va con respecto a uk se obtendrá la nueva ley de control.
1 2 λ 2
 ′ M

J k+d = G y k + F B u k - y k+d  + u k
2 2
∂ J k+d
= G y k + F B ′ u k - y k+d
M
 b0 + λ u k = 0
 (1.28)
∂u k
[ F B′ b0 + λ ] u k = b0  y k+d
M
- G y k 

[ F B′ b0 + λ ] u k = b0  y k+d
M
- G y k  (1.29)

Clase 11 Control Predictivo.doc 11


uk yk
rk + d b0 z B′
-d

+
- FB′b0 + λ A

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


siguiente:
M
ε k = yk zd - G yk
z B ′ b0
-d (1.30)
yk = εk
A ( F B ′ b0 + λ )
 A ( F B ′ b0 + λ )  M d
 + G y
 k = y z
 z
-d
B ′ b 0  (1.31)
yk B ′b0
=
yk
M
B ′ b0 + λ A

Clase 11 Control Predictivo.doc 12


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,
b0
u= ε

F B b0 + λ
M d G z B′
-d
ε = y z -G y= y z -
M d
u
A
(1.32)
b0  M d G z -d B′ 
u= y z - u
F B′ b0 + λ  A 
u b0 A
=
y
M
B′ b 0 + λ A
Por lo tanto, variando λ se puede hacer estable el polinomio b0 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.
Clase 11 Control Predictivo.doc 13
1.5. Control Predictivo a d Pasos con Efecto Integral
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:
1
 M

2 λ 2
J k+d =  y k+d - y k+d  + u k (1.33)
2 2
Pu = ∆u (1.34)

P = 1 + p 1 z -1
(1.35)
−1
∆ = 1− z
uk = − p1uk −1 + uk − uk −1 (1.36)

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


1
 
2 λ 2
J k+d = G y + F B ′ - y
M
u k k+d  + uk
2  k
2
(1.37)

1 2 λ
J k+d = G y k + F B u k - y k+d  + [ − p1uk −1 + uk − uk −1 ] (1.38)
2
 ′ M

2 2
∂ J k+d
= G y k + F B′ u k - y k+d  b0 + λ [ − p1uk −1 + uk − uk −1 ] = 0
M
(1.39)
∂u k

Clase 11 Control Predictivo.doc 14


b0 G y k - y k+d  − λ p1uk −1 + [ F B′ b0 + λ∆ ] u k = 0
M
(1.40)

b0 G y k - y k+d  − λ p1uk −1 + ( b0 + λ ) u k + ( F B′ b0 - b0 ) z u k -1 − λ u k -1 = 0


M 2 2
(1.41)

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

( )
b0  y k+d - G y k  + λ p1 u k -1 − ( F B′ b0 − b0 ) z − λ u k -1
M 2

uk = (1.42)
b0 + λ
2

o sea
1
− ( f ′b1b0 − λ ) u k -1 − f ′b 2b0 − + λ p 1 u k -1]
M
uk = 2 [b0 y k+d - b0 g 0 y k - b0 g 1 y k -1 − (1.43)
b0 + λ
Si se lo expresa en forma de bloques resulta la ¡Error! No se encuentra el
origen de la referencia.. Igual que antes se puede analizar la forma de la salida y
la estabilidad de la variable de control. Es conveniente hacer previamente una mo-
dificación de los bloques para facilitar el estudio. De la figura se puede inferir:

Clase 11 Control Predictivo.doc 15



λ p1
uk P

rk + d εk 1 uk
z B′
-d yk
b0
FB′b0P + λ∆ A

Control Predictivo a d pasos ponderado por polinomios

∆ −1
b0ε k + λ p1 z uk
b0 ε k + λ p1uk −1 P
uk = = (1.44)
F B′ b 0 + λ∆ F B′ b 0 + λ ∆
∆ −1
( F B′ b0 + λ∆ ) uk − λ p1 z uk = b0ε k (1.45)
P
( F B′P b 0 + λ P∆ − λ p1 z −1∆ ) uk = Pb0ε k (1.46)

Clase 11 Control Predictivo.doc 16


( F B′P b0 + λ∆ ) uk = Pb0ε k (1.47)

con lo que la ley de control resulta:


P
uk = b0 ( ykM+ d − Gyk ) (1.48)
F B′P b0 + λ∆
O sea que se puede modificar la ¡Error! No se encuentra el origen de la refe-
rencia. y lograr la ¡Error! No se encuentra el origen de la referencia. .

rk + d uk yk
b0 P z B′
-d

+
- FB′b 0P + λ∆ A

Versión Simplificada
Ahora si, se analizará la relación entre la referencia y la salida. El error es:
ε k = y kM z d - G y k (1.49)

Clase 11 Control Predictivo.doc 17


z
-d
B′ P b 0
yk = εk (1.50)
A ( F B′ P b 0 + λ∆ )
 ( F B ′ P b 0 + λ ∆R )  d M
A + G  y = z y (1.51)
z B′ P b 0
-d k k
 
por lo tanto la relación entre y e yM tiene la siguiente forma:
 A F B′ P b0 + λ A ∆ + z -d G B′ P b0  y k = B′ P b0 y k
M
(1.52)

yk B′ P b 0
= (1.53)
y k B′ P b0 + λ A∆
M

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


b0 P
u= ε
F B′ P b 0 + λ∆
ε = yM zd - G y (1.54)

G z -d B′
ε=y z -
M d
u
A

Clase 11 Control Predictivo.doc 18


 b 0 P G z B′ 
-d
b0 P z
d
M
u 1 +  = y
 A ( F B ′ P b 0 + λ ∆ )  F B′ P b 0 + λ∆
u  A F B′ P b0 + λ A ∆ + b0 P G B′ z -d  = b0 A P y M z d (1.55)

u b0 A P
=
y
M
B′ P b0 + λ A∆
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 vistos. Primero, por un regulador predictivo sin
ponderación, luego se incluye el factor λ y por último se introducen los polinomios
de ponderación.

Clase 11 Control Predictivo.doc 19


1.5

0.5

-0.5

-1

-1.5
0 50 100 150 200 250

Ilustración 1-2 Control Predictivo Clásico

Clase 11 Control Predictivo.doc 20


2

1.5

0.5

-0.5

-1

-1.5

-2
0 50 100 150 200 250

Ilustración 1-3 Control Predictivo Ponderado

Clase 11 Control Predictivo.doc 21


1.5

0.5

-0.5

-1

-1.5
0 50 100 150 200 250

Ilustración 1-4 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.

Clase 11 Control Predictivo.doc 22


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
B ′ = b0 + … + b m z -m
b m = c 1 c 2 … c m b0 (1.56)

bm b0
donde los ci son los diferentes ceros del sistema
Además se supone b0 pequeño y despreciable. El regulador con este nuevo po-
linomio será:
B ′ = ε z + b0 + … + b m z -m = ε z + B n′
(1.57)
B n′ = B ′ - ε z
O sea que el regulador no estaría ajustado exactamente y la nueva función de
transferencia se calculará como sigue:

Clase 11 Control Predictivo.doc 23


1 = A F + z -d G
-d
B′
y

M
k+d - G y k  z = yk
A F B n′
 y kM - G z -d y k  B ′ = A F B n′ y k
  (1.58)

 y kM - G z -d y k  ( B n′ + ε z ) = A F B n′ y k
 
y k ( B n′ + ε z ) = y k ( B n′ + z -d+1 ε G )
M

Ahora el último paréntesis es el que debe ser estable. Es útil esto para analizar
la robustez del sistema (partiendo de Bn' estable).
1.6.2. Sensibilidad Frente a Variaciones de Parámetros
Sea el sistema real como el de la ecuación:
A y = z -d B u (1.59)

y sea el modelo o sistema nominal:


-d
An y = z B n u (1.60)

El regulador se calcula para el sistema nominal. Derivando la transferencia res-


pecto a los parámetros del sistema obtenemos:

Clase 11 Control Predictivo.doc 24


1 = An F + z -d G
z B′
-d
y M
- G y k  = yk
 k+d
A F B n′
yk B′
= =M
M
yk A F B n′ + z G B ′
-d

∂M z -i B n′ - B n′ z -d G z -i z
= =
-i
(1 - z -d G )
∂bi B n′
2
B n′
∂M - z -i F B n′ B n′ -i
= = - z F (1.61)
∂a i B n′
2

No dice mucho. Si
C = 1 - z -1 c 1
∂C (1.62)
= - z -1 ?
∂c1

Clase 11 Control Predictivo.doc 25


1.7. Caso Adaptativo del Control Predictivo
Se desconoce el proceso real. Habrá que proponer un modelo de la planta:
Aˆ y = z -d Bˆ ′ u (1.63)

donde
Aˆ = 1 + aˆ 1 z -1 + aˆ 2 z -2 +… + aˆ n z -n
(1.64)
Bˆ ′ = bˆ0 + bˆ1 z -1 + bˆ 2 z -2 +… + bˆ m z -m
Estos polinomios se usarán en el cálculo del regulador. En el caso de conoci-
miento absoluto teníamos el predictor
y k+d = G y k + F B ′ u k (1.65)

Para expresarlo en una forma vectorial compacta se define


p = [ g 0 … f b′ 0 f b′ 1 …]
T

x k = [ y k … y k-n+1 u k … u k-m-d+1]
T
(1.66)

y k+d = x Tk p
La ley de control ideal será:
T M
x k p = y k+d (1.67)

Clase 11 Control Predictivo.doc 26


Al no conocer el vector de parámetros se lo reemplaza por su estimación:
T M
x k pˆ k = y k+d (1.68)

Si se despeja la actuación, queda:


1
u k =  y k+d - pˆ 0 y k - … - pˆ n-1 y k -n+1 - pˆ n u k -1 - … - pˆ n+m+d u k -m-d+1
M
(1.69)
pˆ n
Se puede usar cualquier método de identificación con una modificación:
pˆ k = pˆ k-1 - P k x k-d  x Tk-d pˆ k-1 - y k  (1.70)

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 b̂0 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

Clase 11 Control Predictivo.doc 27


- Algoritmo directo.
Otra expresión de la planta:
y k+d = x Tk p (1.71)

u k = x k p′
T
(1.72)

donde
 g0 g n-1 f b′ 1 1 
p′ = 
T
… … 
f
 0 ′
b f ′
b 0 f ′
b 0 f ′
b 0 (1.73)

x = [ - y k … - y k-n+1 - u k-1 … - u k-m-d+1 y k+d ]


T
k

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


u k = x ′k pˆ ′k
T
(1.74)

donde
x ′k =  - y k … - y k -n+1 - u k-1 … - u k -m-d+1 y k+d 
T M

(1.75)
pˆ ′k = pˆ ′k-1 - P k x k-d  x pˆ ′k-1 - u k-d 
T
k-d

Clase 11 Control Predictivo.doc 28


En esta forma, el estimador ya no calcula los parámetros del sistema sino los
del regulador.
Comentario:
e k = x k -d pˆ ′k -1 - u k -d = x k -d pˆ ′k -1 - x′k -d pˆ k -d = x k -d pˆ ′k -1 - x′k -d pˆ ′k -d + x′k -d pˆ ′k -1 - x′k -d pˆ ′k -1
T T T T T T T

=  xTk -d - x′Tk -d  pˆ ′k -1 + x′Tk -d [ pˆ ′k -1 - pˆ ′k -d ] (1.76)

=  y k - y k  + εˆ k
M

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

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

Clase 11 Control Predictivo.doc 29


1.8. Control Predictivo Ponderado Adaptativo
El control predictivo ponderado resultaba:
( F B′ b0 + λ ) u k = b0 ( y k+d
M
- G yk ) (1.78)

b0  M
uk =  y k+d − G y k − ( F ′B − b0 ) u k  (1.79)
b0 + λ
2

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


T
uk = xk p (1.80)

donde:
T  b0 b0 g 0 b0 g n-1 b0 f b′ 1 b0 f b′ m+d -1 
p = 2 … 2 … 2 
 b0 + λ b0 + λ b0 + λ b0 + λ b0 + λ  (1.81)
2 2

x k =  y k+d - y k … - y k-n+1 - u k-1 … - u k-m-d+1


T M

Clase 11 Control Predictivo.doc 30


Para la forma directa del algoritmo se introduce una modificación en el modelo
de la planta:
y k+d = G y k + F ′B u k (1.82)

F ′B u k = y k+d - G y k (1.83)

b0 u k = y k+d - G y k - (F ′B - 1) u k (1.84)

2
b0 b0
u k = [ y k+d - G y k - (F ′B - 1) u k ] (1.85)
b0 + λ b0 + λ
2 2

b0  λ  
uk = 2  y k+d + u k  − G y k − ( F B − b0 ) u k  (1.86)

b0 + λ  b0  
Ahora la nueva expresión vectorial de la planta es:
T
uk = xk p (1.87)

donde

Clase 11 Control Predictivo.doc 31


T  λ 
=
x  k+d
k y + u k , - y k … - y k-n+1 - u k-1 … - u k-m-d+1 
 b 0 
(1.88)
T  b b0 g 0 b0 g n-1 b0 f b′ 1 b0 f b′ m+d -1 
p = 2 0 … … 2 
 b0 + λ b0 + λ b0 + λ b0 + λ b0 + λ 
2 2 2

1.9. Control Predictivo Ponderado Adaptativo con Filtro en la Actuación


En este caso la Ley de control era:
1
uk = 
 b
M
0 k+d − b 0 g 0 y k −
y − ( f b′ 1b0 + λ r 1 ) uk −1 + + λ p 1u k-1 + λ p 2u k-2 … (1.89)
b0 + λ
2

Por lo tanto, u en forma vectorial resulta:


T
uk = xk p (1.90)

donde
x k =  yk +d - y k … - y k-n+1 - u k-1 … u k-1 …
T M

T b0 b0 g 0 f b′ 1b0 + λ r 1 λ p1 λ p 2  (1.91)

p = 2 , 2 … … 2 …
 b0 + λ b0 + λ 2
b0 + λ b0 + λ 2
b0 + λ 
Aquí también se requiere alguna consideración para utilizar la versión directa
del controlador. Se expresará al sistema del siguiente modo:

Clase 11 Control Predictivo.doc 32


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

b0 u k = y k+d - G y k − ( F ′B − b0 ) u k (1.93)

(b 2
0 + λ ) u k = b0 y k+d - b0G y k - b0(F ′B - b0 )u k + λ u k (1.94)

por otro lado,


λ u k = λ Pu k - λ ( R − 1) uk = λ u k + λ p 1u k-1 - λ r 1u k-1 … (1.95)
reemplazando,
1   λ  
uk = y
 b0  k+d + - G
u k  b0 ky - ( f ′
b 1b 0 + λ )
r 1 u k -1 … + λ p 1u k-1  (1.96)
b0 + λ
2
  b0  
por lo tanto:
T
uk = x p (1.97)

donde
T  λ 
= y
x  k +d
k + uk , - y k … - y -
k-n+1 u k-1 … …
u k-1 
 b0 
(1.98)
T  b0 b0 g 0 f b′ 1b0 + λ r 1 λ p1 λ p 2 
p = 2 , 2 … … 2 …
 b0 + λ b0 + λ b0
2
+ λ b0 + λ 2
b0 + λ 

Clase 11 Control Predictivo.doc 33


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.

Clase 11 Control Predictivo.doc 34


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

2 2

1.5 1.5

1 1

0.5 0.5

0 0

-0.5 -0.5

-1 -1

-1.5 -1.5

-2 -2
0 50 100 150 0 50 100 150

Clase 11 Control Predictivo.doc 35


2 2

1.5 1.5

1 1

0.5 0.5

0 0

-0.5 -0.5

-1 -1

-1.5 -1.5

-2 -2
0 50 100 150 0 50 100 150

2 2

1.5 1.5

1 1

0.5 0.5

0 0

-0.5 -0.5

-1 -1

-1.5 -1.5

-2 -2
0 50 100 150 0 50 100 150

Clase 11 Control Predictivo.doc 36


4

-1

-2

-3
0 50 100 150

Clase 11 Control Predictivo.doc 37


1.10. Compensación de Velocidad
 yk 
 yk +1   as1 as2 0 0   yk −1   bs1 bs2   uk 
 +
y  =  0 0 ad1 ad 2   yk  bd1 bd 2   uk −1 
 (1.99)
 k +1  
y 
 k −1 
 yk +1 
 yk +2   as1 as2 0 0   yk   bs1 bs2   uk +1 
 +
y  =  0 0 ad1     
ad 2   yk +1  bd1 bd 2   uk 
= (1.100)
 k +2  
 y 
 k 
 as1 yk + as2 yk −1 
 yk +2   as1 as2 0 0  yk 
 +
y  =  0 
0 ad1 ad 2   ad1 yk + ad 2 yk −1 
 k +2  
 yk  (1.101)
 
 as1 as2   bs1 bs2   uk   bs1 bs2  uk +1 
+      +  
 ad1 ad 2  bd1 bd 2   uk −1   bd1 bd 2   uk 

Clase 11 Control Predictivo.doc 38


 yk 
 
 yk + 2   as1as2 as12 + as2   yk −1   as1bs1 + as2bd1 as1bs2 + as2bd 2   uk   bs1 bs2  uk +1 
y  =  
 
+ +
ad1bs2 + ad 2bd 2  uk −1  bd1 bd 2   uk 
ad1 + ad 2  k  ad1bs1 + ad 2bd1
2
 k + 2   ad1ad 2 y
 
y
 k −1 
(1.102)

 yk 
 
 yk + 2   as1as2 as12 + as2   yk −1   as1bs1 + as2bd1 as1bs2 + as2bd 2   uk   bs1 bs2  uk +1 
y  =   + +
ad1bs2 + ad 2bd 2  uk −1  bd1 bd 2   uk 
  
 k + 2   ad1ad 2 ad1 + ad 2   yk   ad1bs1 + ad 2bd1
2

 
y
 k −1 
(1.103)

 yk 
y 
 yk + 2   k −1   uk +1 
 y  = R  yk  + M  u  (1.104)
 k +2  y   k 
 k −1 
uk −1 
La ley de control es

Clase 11 Control Predictivo.doc 39


  yk  
  y 
 uk +1    ry 
  k −1 

−1 k + 2
 u  = M   r  − R  yk   (1.105)
 k    y k +2   y 
  k −1  
 uk −1  

Clase 11 Control Predictivo.doc 40


Ejemplo 1.2. Péndulo Invertido
d2y
2
= ku (1.106)
dt
dv
= ku (1.107)
dt
T2 T2
yk +1 = 2 yk − yk −1 + k uk + k uk −1 (1.108)
2 2
vk +1 = vk + kTuk (1.109)

predictor

T2 T2  T2 T2  T2 T2
yk + 2 = 2 yk +1 − yk + k uk +1 + k uk = 2  2 yk − yk −1 + k uk + k uk −1  − yk + k uk +1 + k uk =
2 2  2 2  2 2
T2 T2
= 3 yk − 2 yk −1 + k uk +1 + 3k uk + kT 2uk −1
2 2
(1.110)

vk +2 = vk +1 + kTuk +1 =
(1.111)
= vk + kTuk + kTuk +1

Clase 11 Control Predictivo.doc 41


T2 T2
yk + 2 = 3 yk − 2 yk −1 + k uk +1 + 3k uk + kT 2 uk −1
2 2 (1.112)

vk + 2 = vk + kTuk + kTuk +1

cálculo de la actuación

T2 T2
k uk +1 + 3k uk = yk +2 − 3 yk + 2 yk −1 − kT 2 uk −1
2 2 (1.113)

kTuk +1 + kTuk = vk +2 − vk
−1
 T2 T2    r  3 yk − 2 yk −1 + kT 2 uk −1  
 uk +1   k 3k 
u = 2 2
   − 
0 vk
  (1.114)
 k   kT kT       

la uk
1 1
uk = 2 ( r − 3 yk + 2 yk −1 − kT uk −1 ) +
2
vk (1.115)
kT kT
El regulador predictivo clásico para la posición sería
2
2 (
ucpk = r − 2 yk + yk −1 − ucpk −1 ) (1.116)
kT

Clase 11 Control Predictivo.doc 42


y para la velocidad
1
uvck = ( rv − vk ) (1.117)
kT
reescribiendo el compensado
1 1
2 ( k −1 )
uk = r − 3 y k + 2 y k −1 − kT 2
u + vk =
kT kT
2 2 1 1
= 2 ( r − 2 yk + yk −1 ) − uk −1 − 2 ( yk − yk −1 ) − uk −1 − 2 ( r − 3 yk + 2 yk −1 − kT 2uk −1 ) + vk
kT kT kT kT
(1.118)

quedando finalmente,
1  r − yk 
uk = ucpk −  − v k  (1.119)
kT  T 
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.
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];

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

Clase 11 Control Predictivo.doc 45


uaux = nivelu * ones(size(t));
end;
plot([yy]);grid

1.6 1.4

1.4
1.2

1.2
1

1
0.8

0.8

0.6
0.6

0.4
0.4

0.2
0.2

0
0
0 500 1000 1500 2000 2500 3000
0 5 10 15 20 25 30

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

Clase 11 Control Predictivo.doc 46


400

300

200

100

-100

-200

-300

-400
0 5 10 15 20 25 30

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

Clase 11 Control Predictivo.doc 48


end;
plot([yy]);grid

1.5 1.4

1.2

1
1

0.8

0.6

0.5
0.4

0.2

0
0
0 500 1000 1500 2000 2500 3000
0 5 10 15 20 25 30

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

Clase 11 Control Predictivo.doc 49


100

80

60

40

20

-20

-40

-60

-80
0 5 10 15 20 25 30

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

Clase 11 Control Predictivo.doc 51


% bloqueador de orden cero
nivelu=u(i);
uaux = nivelu * ones(size(t));
end;
plot([yy]);grid

1.4

1.2

0.8

0.6

0.4

0.2

0
0 500 1000 1500 2000 2500 3000

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

Clase 11 Control Predictivo.doc 52


1.4

1.2

0.8

0.6

0.4

0.2

0
0 5 10 15 20 25 30

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

Clase 11 Control Predictivo.doc 53


100

50

-50

-100

-150
0 5 10 15 20 25 30

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

Clase 11 Control Predictivo.doc 55


2.5

1.5

0.5

0
0 5 10 15 20 25

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

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

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

Clase 11 Control Predictivo.doc 59


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

Clase 11 Control Predictivo.doc 60


1.5

0.5

-0.5

-1

-1.5
0 50 100 150 200 250

Clase 11 Control Predictivo.doc 61


1.5

0.5

-0.5

-1

-1.5
0 50 100 150 200 250

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

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

0.5000 + 0.0001i

0.5000 - 0.0001i

0.4999

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

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

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

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;

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

Clase 11 Control Predictivo.doc 68

También podría gustarte