Professional Documents
Culture Documents
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
(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
(
(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