You are on page 1of 67

Clase 11 Control Predictivo.

doc 1
1. Control Predictivo a d Pasos

1. CONTROL PREDICTIVO A D PASOS...................................................................1
1.1. INTRODUCCIN..........................................................................................................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. Indeterminacin del Retardo...........................................................................23
1.6.2. Sensibilidad Frente a Variaciones de Parmetros.........................................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 ACTUACIN
...............................................................................................................................................32
1.10. COMPENSACIN DE VELOCIDAD...........................................................................37
1.11. SIMULACIONES......................................................................................................54
1.11.1. Predictor a d Pasos .......................................................................................54
1.11.2. Control Predictivo Ponderado Por Polinomios ...........................................56
Clase 11 Control Predictivo.doc 2
1.11.3. Clculo de los Polinomios P y R...................................................................61
1.11.4. Control Predictivo Ponderado Por Polinomios Adaptativo ........................63

Clase 11 Control Predictivo.doc 3
1.1. Introduccin
Uno de los problemas del control es el retardo,
1 k k k
y ay bu
+
= + (1.1)
ley de control
( )
1
1
k k k
u r ay
b
+
= (1.2)
Sistema con retardo:
2 1 k k k
y ay bu
+ +
= + (1.3)
( )
2 1
1 1
2 1
k k k
k k k
k k k k
y ay bu
y ay bu
y a ay bu bu
+ +
+
+
= +
= +
= + +
(1.4)
2
2 1 k k k k
y a y bu abu
+
= + + (1.5)
( )
2
2 1
1
k k k k
u r a y abu
b
+
= (1.6)
concepto de prediccin de la salida
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 -m
0 1 2 m
A= 1 + + + +
a a a z z z
B= B = + + + +
b b b b z z z z z

(1.8)
se puede reescribir:
k
k+d k
= G + F B y y
u
(1.9)
donde F y G se relacionan por:
-d
1 = F A + G
z
(1.10)
con
-1 -2 -d+1
1 2 d-1
-1 -2 -n+1
0 1 2 n-1
F = 1 + + + + f f f
z z z
G= + + + + g g g g
z z z

(1.11)
Clase 11 Control Predictivo.doc 5
Los coeficientes de F y de G tienen la siguiente expresin:
1
0
1
0
1 1
0 1
i
i j i j
j
d
i j i d j
j
f f a i d
g f a i n

+
=
= =
= =

(1.12)
Demostracin:
( )
-d
-d -d
d
F A y = F B u = F B u
z
1 - G y = F B u
z z
y = G y + F B u
z

(1.13)
Clase 11 Control Predictivo.doc 6
1.2.1. Polos y Ceros del Predictor
( )
( )
( )
d
q B q
H q
A q

= (1.14)
el predictor es
( ) ( ) ( )
( )
( )
( ) ( )
1
d d
k
k k
d d
k
k
y z G q z F q B q y
u
z G q z F q B q y
u


= +
=
(1.15)
( )
( ) ( )
( )
1
p
d
F q B q
H q
z G q

(1.16)
( )
1
d
z G q

debe tener las races de


( )
A q y
( )
F q
problemas numricos si se utiliza la ecuacin del predictor para simular el compor-
tamiento del sistema.
las races de
( )
F q se distribuyen simtricamente respecto de las races de
( )
A q .
Clase 11 Control Predictivo.doc 7
Ejemplo 1.1. Sistema con Retardo 3
Sea el sistema
, 0, 7 0,
k-3 k-4
k 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 z
B= 1 - 8
z z
+
(1.18)
F y G debern cumplir
( )( ) ( )
( ) ( )
( ) ( )
, 0, 7
, 0, 7 ,
0, 7 , 0, 7
-1 -2 -1 -2 -3 -1
1 2 0 1
-1 -2
1 1 2
-3 -4
1 2 0 2 1
1= 1 + + 1 - 1 5 + + f f g g
z z z z z z
= 1 + - 1 5 + - 1 5 f f f
z z
+ - 1 5 + + + f f g f g
z z
+
+ (1.19)
resultando
,
, 0, 7 ,5
, 0, 7 2
0, 7 1, 0
1
1 0
2 1
2 1 0 1
2 1
0 2 1 1 2
2
1 2 2
= 1 5 = - f f
a
= 1 5 - = 1 5 = - - f f f f
a a
= 1 5 - = 1. 75 = - - g f f f f
a a
= - = - 85 = - g f f
a
(1.20)
Clase 11 Control Predictivo.doc 8
( ) ( ) ( )
1, 275 1, 085 , ,5 0,
, 2 1, 08 0, 35 1, 24
-1 -1 -2 -1
k
k+3 k
k k-1 k-2 k-3
k+3 k k-1
= + 1 + 1 5 + 1 5 1 - 8 y y
u z z z z
= 1 75 5 + + .7 + y y y
u u u u


(1.21)
0 5 10 15 20 25
0
0.5
1
1.5
2
2.5

Ilustracin 1-1 Predictor a d Pasos
Clase 11 Control Predictivo.doc 9
1.3. Controlador Predictivo a d Pasos
ley de control:
M
k
k+d k
F B = - G y y
u
(1.22)
-
+
G
k d
r
+
1
F B

-d
B
z
A
k
u
k
y


M
d
-d
= - G y y
z
z
y =
F A

(1.23)
Clase 11 Control Predictivo.doc 10
( )
M
d d
M
-d d d
M
F A y = - G y y
z z
F A - G y = y
z z z
y = y
(1.24)
-d
M M
d d
-d
M
-d
u =
F B
G F A
z
= - y y
z z
F A F A + G
z
A
u = y
B
z

(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
2
M
k+d
k+d k+d
u
1
= - y y
J
2
J = 0 |
(

(1.26)
Resolviendo esta ecuacin se llega a la misma conclusin anterior.
Este control es muy sencillo e intuitivo pero tiene dos problemas:
Clase 11 Control Predictivo.doc 11
se requieren grandes esfuerzos en u
es demasiado estricto en cuanto a B'.
Se ver a continuacin cmo se pueden resolver estos dos problemas.
1.4. Controlador Predictivo a d Pasos Ponderado
Para hacer ms flexible el diseo del control se definir el funcional de la si-
guiente forma:
2
M
2
k+d k
k+d k+d
1
= - + y y
J u
2 2

(

(1.27)
Es decir, se ha agregado un trmino que pesa el esfuerzo del control o la ener-
ga consumida. Si se reemplaza
k d
y
+
por su valor segn la expresin (1.9) y se deri-
va con respecto a
k
u se obtendr la nueva ley de control.
| |
2
M
2
k+d k k
k k+d
M k+d
k 0 k
k k+d
k
M
0 k 0
k+d k
1
= G + F B - + y y
J u u
2 2
J
= G + F B - + = 0 y y
u b u
u
F B + = - G y y
b u b

(

(1.28)
| |
M
0 k 0
k+d k
F B + = - G y y
b u b

(

(1.29)
Clase 11 Control Predictivo.doc 12
-
+
G
k d
r
+ 0
0
b
FB +
b

-d
B
z
A
k
u
k
y

Si se analiza la funcin de transferencia entre referencia y salida se obtiene lo
siguiente:
( )
M
d
k
k k
-d
0
k
k
0
= - G y y
z
B
b z
= y
A F B +
b

(1.30)
( )
0
0 M
d
k
-d
0
k
M
0
k
A F B +
b
+ G = y y
z
B
b z
y B b
=
B + A
y
b

(
(

(1.31)
Clase 11 Control Predictivo.doc 13
Es decir, la relacin referencia-salida ya no es 1 sino que tiene cierta dinmica
dependiendo del valor de . Slo en el caso de =0 se eliminara esta dinmica. Se
ver ahora cmo vara la estabilidad de la variable de control. De la misma figura se
desprende,
0
0
-d
M M
d d
-d
M
0
d
0
0
M
0
b
u =
F B +
b
G B
z
= - G y = - u y y
z z
A
G B
b z
u = - u y
z
F B + A
b
u A
b
=
B + A
y
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 an subsisten dos inconvenientes:
No todo sistema puede hacerse estable variando .
No tiene suficientes grados de libertad.
Para intentar solucionar esto se elegir una nueva especificacin del control.
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 especificacin de modo
que no se considere u directamente sino una nueva variable filtrada:
2
M 2
k+d
k k+d k+d
-1 -p
1 p
-1 -r
1 r
1
= - + y y
J
u
2 2
P u = R u
P = 1 + +___+ p p
z z
R = 1 + +___+
r z r z

(

(1.33)
Haciendo similar trabajo algebraico se llega a la ley de control.
Clase 11 Control Predictivo.doc 15
( )
( )
2
M 2
k+d k
k k k+d
2
2
M
k+d k k
k k k+d
M k+d
k 0 k
k k k+d
k
M
0
k k+d
1
= G + F B - + y y
J u
u
2 2
1
= G + F B - + 1 - P + R y y
J u u
u
2 2
J
= G + F B - + 1 - P + R = 0 y y
u b u
u
u
G - + y y
b

(

(
(

(
(

(

( ) | |
( ) ( )
( ) ( )
0 k
k
M
2
0 0 k
k k k+d
2
0 0 k-1 k-1
1 - P + F B + R = 0
b u
u
G - + 1 - P + + + y y
b b u
u
F B - z + R - z = 0
b b u u

(1.34)
Cabe notar que la forma que tienen los polinomios es la siguiente:
( )( )
2 -1 -1 -1
0 0 0 1 0
1
-1
1
F B = + + 1 + + = + + f
b b b b b z z z
R = + +
r z

(1.35)
por lo tanto, si se despeja
k
u se logra la expresin que sigue:
( ) ( )
M
2
0 0 0 k-1
k-1 k+d k
k
2
0
- G - 1 - P z - F B - + R - z y y
b b b u
u
=
u
+
b

(

(1.36)
Clase 11 Control Predictivo.doc 16
o sea
( ) ( )
1 2
[
]
M
k 0 0 0
k+d 0 k 1 k-1
2
0
0 k-1 0 k-2
k-1 k-2 1 2 1 2
1
= - - - y g y g y
u b b b
+
b
- + r - + r + + f b f b p p
b u b u
u u


(1.37)
Si se lo expresa en forma de bloques resulta la Ilustracin 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 modificacin de los bloques para facilitar el es-
tudio. De la figura se puede inferir:
u
- -
+
r
z
-d
B'
A
y
1
FB'b
0
+Rl
b
0
R
P
l(P-1)
G
+
+

Ilustracin 1-2 Control Predictivo a d pasos ponderado por polinomios

Clase 11 Control Predictivo.doc 17
( )
0 k
0
k
0 0
0 k k 0
0 k 0
(P - 1) R
+
b u
+ u P- 1
b
P
= =
u
F B + R F B + R
b b
(P - 1) R
(F B + R) - =
b u u b
P
(F B P + R P - R P + R) = P
b u b





(1.38)
con lo que la ley de control resulta:
( )
M
k 0
k+d k
0
P
= - G y y
u b
F B P + R
b


O sea que se puede modificar la Ilustracin 1-2 y lograr la Ilustracin 1-3 .
-
+
G
k d
r
+ 0
0
b P
FB P R
b

+
-d
B
z
A
k
u
k
y

Ilustracin 1-3Versin Simplificada
Clase 11 Control Predictivo.doc 18
Ahora si, se analizar la relacin entre la referencia y la salida. El error es:
( )
( )
M
d
k
k k
-d
0
k
k
0
0 M
d
k k
-d
0
= - G y y
z
B P
b z
= y
A F B P + R
b
F B P + R
b
A + G = y y
z
B P
b z

(
(


(1.39)
por lo tanto la relacin entre y e y
M
tiene la siguiente forma:
M
-d
0 0 0
k k
0
k
M
0
k
A F B P + A R + G B P = B P y y
b b b z
y B P
b
=
B P + A R
y
b

(1.40)
Se puede analizar la estabilidad de la variable de control como sigue:
Clase 11 Control Predictivo.doc 19
( )
0
0
M
d
-d
M
d
-d d
M 0 0
0 0
M
-d d
0 0 0
0
M
P
b
u =
F B P + R
b
= - G y y
z
G B
z
= - u y
z
A
P G B P
b b z z
u 1 + = y
A F B P + R F B P + R
b b
u A F B P + A R + P G B = A P y
b b b z z
u A
b
=
y

(



(

0
P
B P + A R
b

(1.41)
Ntese 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-
deracin, luego se incluye el factor y por ltimo se introducen los polinomios de
ponderacin.
Clase 11 Control Predictivo.doc 20
0 50 100 150 200 250
-1.5
-1
-0.5
0
0.5
1
1.5

Ilustracin 1-4 Control Predictivo Clsico
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

Ilustracin 1-5 Control Predictivo Ponderado
Clase 11 Control Predictivo.doc 22
0 50 100 150 200 250
-1.5
-1
-0.5
0
0.5
1
1.5

Ilustracin 1-6 Control Predictivo Ponderado con Polinomios

Los polinomios de ponderacin se podran calcular considerando el denomina-
dor de la funcin de transferencia en lazo cerrado posicionando sus raices en algn
lugar deseado.
Clase 11 Control Predictivo.doc 23
1.6. Notas Sobre el Control Predictivo
Se ver a continuacin algunas consideraciones a tener en cuenta en este tipo
de control.
1.6.1. Indeterminacin 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
-m
0 m
m 1 2 m 0
m 0
B + +
b b z

b c c c b
b b
=
=

(1.42)
donde los
i
c son los diferentes ceros del sistema
Adems se supone
0
b pequeo y despreciable. El regulador con este nuevo po-
linomio ser:
-m
n 0 m
n
B z + + + z +
b b z B
B - z
B

= =
=

(1.43)
O sea que el regulador no estara ajustado exactamente y la nueva funcin de
transferencia se calcular como sigue:
Clase 11 Control Predictivo.doc 24
( )
( ) ( )
-d
-d
M
k+d k k
n
M
-d
n
k k k
M
-d
n n
k k k
M
-d+1
n n
k k
1 = A F + G
z
B
z
- G = y y y
A F
B
- G B = A F y y y
z B
- G + z = A F y y y
z B B
+ z = + G y y
B B z

(

(

(

(1.44)
Ahora el ltimo parntesis es el que debe ser estable. Es til esto para analizar
la robustz del sistema (partiendo de
'
n
B estable).
1.6.2. Sensibilidad Frente a Variaciones de Parmetros
Sea el sistema real como el de la ecuacin:
-d
A y = B u
z
(1.45)
y sea el modelo o sistema nominal:
-d
n n
y = u
A z B
(1.46)
El regulador se calcula para el sistema nominal. Derivando la transferencia res-
pecto a los parmetros del sistema obtenemos:
Clase 11 Control Predictivo.doc 25
( )
-d
n
-d
M
k+d k k
n
k
M
-d
n
k
-i -d
-i -d -i
n n
2
n i n
-i
n n
-i
2
i n
1 = F + G
A z
B
z
- G = y y y
A F
B
y B
= = M
A F + G B
y
B z
1 - G
z z M - G
z B B z z
= =
b B B
M - F
z B B
= = - F
z
a
B

(1.47)
No dice mucho. Si
-1
1
-1
1
C = 1 -
c z
C
= - ?
z
c

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

-d
A y = B u
z
(1.49)
donde


-1 -2 -n
1 2 n
-1 -2 -m
0 1 2 m
A= 1 + + + +
a a a z z z
B = + + + +
z z z
b b b b

(1.50)
Estos polinomios se usarn en el clculo del regulador. En el caso de conoci-
miento absoluto tenamos el predictor
k
k+d k
= G + F B y y
u
(1.51)
Para expresarlo en una forma vectorial compacta se define
| |
| |
T
0 0 1
T
k k k-m-d+1
k k-n+1
T
k
k+d
= p g f b f b
= y y
x u u
= p y
x

(1.52)
La ley de control ideal ser:
M
T
k
k+d
p = y
x
(1.53)
Clase 11 Control Predictivo.doc 27
Al no conocer el vector de parmetros se lo reemplaza por su estimacin:

M
T
k
k k+d
= p y
x
(1.54)
Si se despeja la actuacin, queda:

M
k k-1 k-m-d+1
k+d 0 k n-1 k-n+1 n n+m+d
n
1
= - - - - - - y p y p y p p
u u u
p
(

(1.55)
Se puede usar cualquier mtodo de identificacin con una modificacin:

T
k k-d k-d
k k-1 k-1 k
= - - p p p y
x x P
(

(1.56)
Se observa que en el trmino 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 algn tipo


de filtro lgico que evite esta divisin.
Esta forma se denomina control adaptativo indirecto
Clase 11 Control Predictivo.doc 28
Algoritmo directo.
Otra expresin de la planta:
T
k
k+d
= p y
x
(1.57)
T
k
k
= p
u
x

(1.58)
donde
| |
T
0 n-1 1
0 0 0 0
T
k-1 k-m-d+1
k k k-n+1 k+d
g g f b 1
= p
f b f b f b f b
= - - - - y y y
u u
x
(

(




(1.59)
La ley de control tambin se dejar en una forma explcita vectorial:

T
k k
k
= p
u x

(1.60)
donde

M
T
k k-1 k-m-d+1
k k-n+1 k+d
T
k k-d
k-d k-d k k-1 k-1
= - - - - y y y
x u u
= - - p p p
u P
x x
(


(


(1.61)
En esta forma, el estimador ya no calcula los parmetros del sistema sino los
del regulador.
Clase 11 Control Predictivo.doc 29
Comentario:
| |
1

T T T
T T T T
k k-d k-d k-d k-d k-d
k-d k-d k-d k- k-1 k-d k-1 k-d k-1 k-1
T
T T
k-d k-d
k-d k-1 k-1 k-d
M
k
k k
- = - - + - p p p p p p p
e u x x x x
x x x
- + - p p p
x x
x
- y y

= =

(
=


(
= +

(1.62)

k k k
+
e
= (1.63)
siendo el error de seguimiento de la salida y un error auxiliar
Clase 11 Control Predictivo.doc 30
1.8. Control Predictivo Ponderado Adaptativo
El control predictivo ponderado resultaba:
( )
( )
M
0 k 0
k+d k
F B + - G y y
b u b
= (1.64)
( )
M 0
k k
k+d k
2
0
b
- G - F B - 1 y y
u u
+
b

( =

(1.65)
La ley de control, conociendo el sistema y expresada en forma vectorial es:
T
k k
= p
u x
(1.66)
donde:
T 0 0 0 0 0
0 n-1 m+d-1 1
2 2 2 2 2
0 0 0 0 0
M
T
k k-1 k-m-d+1
k+d k k-n+1
g g f b f b
b b b b b
p
+ + + + +
b b b b b
- - - - y y y
x u u


(
=
(

(
=



(1.67)
Clase 11 Control Predictivo.doc 31
Para la forma directa del algoritmo se introduce una modificacin en el modelo
de la planta:
k
k+d k
= G + F B y y
u

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

(1.69)
0 k k
k+d k
= - G - (F B - 1) y y
b u u

(1.70)
| |
2
0 0
k k
k+d k
2 2
0 0
b b
= - G - (F B - 1) y y
u u
+ +
b b


(1.71)
0
k k k
k+d k
2
0 0
b
= ( + ) - G - (F B - 1) y y
u u u
+
b b

(

(1.72)
Ahora la nueva expresin vectorial de la planta es:
T
k
k
= p
u
x
(1.73)
donde
T
k k-1 k-m-d+1
k k+d k k-n+1
0
T 0 0 0 0 0
0 n-1 m+d-1 1
2 2 2 2 2
0 0 0 0 0
= + , - - - - y y y
u u u
x
b
g g f b f b
b b b b b
= p
+ + + + +
b b b b b


(
(


(
(



(1.74)
Clase 11 Control Predictivo.doc 32
1.9. Control Predictivo Ponderado Adaptativo con Filtro en la Actuacin
En este caso la Ley de control era:
( )
1
M
1 0 0 0
k k k-1 k-2 k+d 0 k 1 1 2
2
0
1
u u + y g y f b p p
b b b r
u u
+
b


( = + + +

(1.75)
Por lo tanto, u en forma vectorial resulta:
T
k k
= p
u x
(1.76)
donde
T M
k k-1
k-1 k k-n+1 k d
T 0 1 0 0
0 1 1 2
2 2 2 2 2
0 0 0 0 0
= - - - y y y
x u
u
+ g f b p p
b b r b
= , p
+ + + + +
b b b b b


+
(

(
(



(1.77)
Aqu tambin se requiere alguna consideracin para utilizar la versin directa
del controlador. Se expresar al sistema del siguiente modo:
k
k+d k
= G + F B y y
u
(1.78)
( )
0
0 k k
k+d k
= - G F B b y y
b u u
(1.79)
( )
2
0 0 0 0 0 k k
k+d k
k
+ u = - G - (F B- ) + y y
b b b b b u u
(1.80)
Clase 11 Control Predictivo.doc 33
por otro lado,
( )
1
1 k k-1
k k k k-1 1
= P - R u = + - p
u u r
u u u
(1.81)
reemplazando,
( )
1 k 0 0 0 k-1
k k-1 k+d k 1 1
2
0 0
1
= + - G - + + y y f b p
u b b b u r
u u
+
b b

(
| |

( |
\ .

(1.82)
por lo tanto:
T
k
= p
u
x
(1.83)
donde
T
k-1
k d k k k-1 k k-n+1
0
T 0 1 0 0
0 1 1 2
2 2 2 2 2
0 0 0 0 0
= y u , - - - y y
u
x u
b
+ g f b p p
b b r b
= , p
+ + + + +
b b b b b



+
(
+
(

(
(



(1.84)
con lo que queda expresada u de igual forma que antes con la excepcin de la
aparicin en su clculo de la variable filtrada.
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


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
Clase 11 Control Predictivo.doc 36
0 50 100 150
-3
-2
-1
0
1
2
3
4

Clase 11 Control Predictivo.doc 37
1.10. Compensacin de Velocidad
1 1 1 2 1 2
1 1 2 1 2 1
1
0 0
0 0
k
k k k
k k k
k
y
y y u as as bs bs
y u ad ad bd bd y
y
+
+

(
(
( ( ( (
(
= +
( ( ( (
(

(

(1.85)
1
2 1 1 2 1 2
1 1 2 1 2 2
0 0
0 0
k
k k k
k k k
k
y
y y u as as bs bs
y u ad ad bd bd y
y
+
+ +
+ +
(
(
( ( ( (
(
= + =
( ( ( (
(

(

(1.86)
1 2 1
2 1 2
1 2 1 1 2 2
1 1 2 1 2 1 2
1 1 2 1 2 1 2
0 0
0 0
k k
k k
k k k
k
k k
k k
as y as y
y y as as
ad y ad y ad ad y
y
u u as as bs bs bs bs
u u ad ad bd bd bd bd

+
+
+

+
(
(
( (
(
= +
( (
+
(

(

( ( ( ( (
+ +
( ( ( ( (

(1.87)
Clase 11 Control Predictivo.doc 38
2
2 1 1 1 1 2 1 1 2 2 2 1 2
1 2 1 2
2
1 1 1 2 1 1 2 2 2 1 2 2 1 2 1 2
1
k
k k k k
k k k k
k
y
y y u u as bs as bd as bs as bd bs bs
as as as as
y u u ad bs ad bd ad bs ad bd bd bd y ad ad ad ad
y
+ +
+

(
(
+ + ( ( + ( ( ( (
(
= + +
( ( ( ( ( (
( + +
+

(

(1.88)
2
2 1 1 1 1 2 1 1 2 2 2 1 2
1 2 1 2
2
1 1 1 2 1 1 2 2 2 1 2 2 1 2 1 2
1
k
k k k k
k k k k
k
y
y y u u as bs as bd as bs as bd bs bs
as as as as
y u u ad bs ad bd ad bs ad bd bd bd y ad ad ad ad
y
+ +
+

(
(
+ + ( ( + ( ( ( (
(
= + +
( ( ( ( ( (
( + +
+

(

(1.89)
1
2 1
2
1
1
k
k
k k
k
k k
k
k
y
y
y u
y R M
u y
y
u

+ +
+

(
(
(
( (
= + (
( (
(
(
(

(1.90)
La ley de control es
Clase 11 Control Predictivo.doc 39
1
2 1 1
2
1
1
k
k
y
k k
k
k y
k
k
k
y
y
r
u
y M R
u r
y
u

+ +
+


(

(

(
(
(

= (
( `
(
( (

(

(


)

(1.91)

Clase 11 Control Predictivo.doc 40
Ejemplo 1.2. Pndulo Invertido
2
2
d y
ku
dt
= (1.92)
dv
ku
dt
= (1.93)
2 2
1 1 1
2
2 2
k k k k k
T T
y y y k u k u
+
= + + (1.94)
1 k k k
v v kTu
+
= + (1.95)
predictor
2 2 2 2 2 2
2 1 1 1 1 1
2 2
2
1 1 1
2 2 2
2 2 2 2 2 2
3 2 3
2 2
k k k k k k k k k k k k
k k k k k
T T T T T T
y y y k u k u y y k u k u y k u k u
T T
y y k u k u kT u
+ + + +
+
| |
= + + = + + + + =
|
\ .
= + + +
(1.96)
2 1 1
1
k k k
k k k
v v kTu
v kTu kTu
+ + +
+
= + =
= + +
(1.97)
Clase 11 Control Predictivo.doc 41
2 2
2
2 1 1 1
2 1
3 2 3
2 2
k k k k k k
k k k k
T T
y y y k u k u kT u
v v kTu kTu
+ +
+ +
= + + +
= + +
(1.98)
clculo de la actuacin
2 2
2
1 2 1 1
1 2
3 3 2
2 2
k k k k k k
k k k k
T T
k u k u y y y kT u
kTu kTu v v
+ +
+ +
+ = +
+ =
(1.99)
1
2 2
2
1
1 1
3 2 3
2 2
0
k
k k k
k
k
T T
u r
y y kT u k k
u
v
kT kT

+

(

( + ( (

(
=
`
(
( (
(


)
(

(1.100)
la
k
u
( )
2
1 1
2
1 1
3 2
k k k k k
u r y y kT u v
kT kT

= + + (1.101)
El regulador predictivo clsico para la posicin sera
( )
1 1
2
2
2
k k k k
ucp r y y ucp
kT

= + (1.102)
Clase 11 Control Predictivo.doc 42
y para la velocidad
( )
1
k k
uvc rv v
kT
= (1.103)
reescribiendo el compensado
( )
( ) ( )
( )
2
1 1
2
2
1 1 1 1 1 1
2 2 2
1 1
3 2
2 2 1 1
2 3 2
k k k k k
k k k k k k k k k k
u r y y kT u v
kT kT
r y y u y y u r y y kT u v
kT kT kT kT


= + + =
= + + +
(1.104)
quedando finalmente,
1
k
k k k
r y
u ucp v
kT T

| |
=
|
\ .
(1.105)
es como tener dos controladores predictivos clsicos, uno dependiente de la
posicin y otro de la velocidad con una velocidad de referencia igual a la que debe-
ra tener el sistema para llegar en forma recta a la referencia de posicin en una
muestra.
Otra alternativa sera calcular la velocidad como diferencia entre muestras con-
secutivas, pero esto introduce una imprecisin en la velocidad que degrada el con-
trol. Se analiza el efecto en la simulacin.
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 escaln ...
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 clsico
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

0 500 1000 1500 2000 2500 3000
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
0 5 10 15 20 25 30
0
0.2
0.4
0.6
0.8
1
1.2
1.4

stairs([u(1:Tfin/T)]);grid
Clase 11 Control Predictivo.doc 46
0 5 10 15 20 25 30
-400
-300
-200
-100
0
100
200
300
400




Clase 11 Control Predictivo.doc 47
Compensacin 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
0 500 1000 1500 2000 2500 3000
0
0.5
1
1.5
0 5 10 15 20 25 30
0
0.2
0.4
0.6
0.8
1
1.2
1.4


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


Clase 11 Control Predictivo.doc 49
0 5 10 15 20 25 30
-80
-60
-40
-20
0
20
40
60
80
100


Clase 11 Control Predictivo.doc 50
Compensacin con Clculo 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
0 500 1000 1500 2000 2500 3000
0
0.2
0.4
0.6
0.8
1
1.2
1.4


plot([y(1:Tfin/T)]);grid
Clase 11 Control Predictivo.doc 52
0 5 10 15 20 25 30
0
0.2
0.4
0.6
0.8
1
1.2
1.4



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

Clase 11 Control Predictivo.doc 53
0 5 10 15 20 25 30
-150
-100
-50
0
50
100




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
0 5 10 15 20 25
0
0.5
1
1.5
2
2.5

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

% clculo del vector de parmetros
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
% clculo 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;
% clculo 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));
% actuacin
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
0 50 100 150 200 250
-1.5
-1
-0.5
0
0.5
1
1.5
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. Clculo 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
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);

% inicializacin identificacin
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)';

% clculo del vector de parmetros
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
% clculo 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;

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

% actuacin
u(i) = Aest(i-1,1:np) * ValReg(1:np);
% Clculo 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));

% Identificacin
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. Compensacin de Velocidad: p 128/168

You might also like