Sei sulla pagina 1di 44

1.

Control Predictivo a d Pasos

1. Control Predictivo a d Pasos ________________________________________ 1


1.1. Introducción ________________________________________________________ 2
1.2. Predictor a d Pasos ___________________________________________________ 2
1.2.1. Polos y Ceros del Predictor ____________________________________________ 3
1.3. Controlador Predictivo a d Pasos_______________________________________ 5
1.4. Controlador Predictivo a d Pasos Ponderado _____________________________ 6
1.5. Control Predictivo a d Pasos Ponderado por Polinomios ___________________ 8
1.6. Notas Sobre el Control Predictivo _____________________________________ 13
1.6.1. Indeterminación del Retardo __________________________________________ 13
1.6.2. Sensibilidad Frente a Variaciones de Parámetros ___________________________ 14
1.7. Caso Adaptativo del Control Predictivo ________________________________ 15
1.8. Control Predictivo Ponderado Adaptativo ______________________________ 17
1.9. Control Predictivo Ponderado Adaptativo con Filtro en la Actuación _______ 18
1.10. Compensación de Velocidad _________________________________________ 22
1.11. Simulaciones ______________________________________________________ 35
1.11.1. Predictor a d Pasos ________________________________________________ 35
1.11.2. Control Predictivo Ponderado Por Polinomios ____________________________ 36
1.11.3. Cálculo de los Polinomios P y R ______________________________________ 40
1.11.4. Control Predictivo Ponderado Por Polinomios Adaptativo ____________________ 40
1.12. Referencias _______________________________________________________ 43

09-Control Predictivo.doc 1/44


1.1. Introducción
Otro método usado para regular un sistema es el llamado control predictivo (one step
ahead) y como variantes de él el control con modelo de referencia y el controlador de mínima
varianza. Se verá a continuación en qué se basan estos métodos.
Uno de los problemas del control es el manejo de los retardos, por ejemplo, si se
tiene el siguiente sistema

yk +1 = ayk + buk (1.1)

Es fácil elegir la ley de control


1
uk = ( rk +1 − ayk ) (1.2)
b
para que haya un seguimiento perfecto de la referencia r. Pero si el sistema tiene un
retardo, o sea:

yk + 2 = ayk +1 + buk (1.3)

la actuación en el intante k quedaría expresada en función de la salida en el intante


k+1 que no es accesible. Una alternativa es expresar el sistema

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)

Ahora sí la ley de control puede ser

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

Se está aplicando en concepto de predicción de la salida luego del retardo.

1.2. Predictor a d Pasos


Se analizará a continuación una forma de expresar un sistema lineal de modo que la
salida luego del retardo solo dependa de los instantes anteriores a él. Sea el sistema real de la
forma:
A y= B u (1.7)

donde

09-Control Predictivo.doc 2/44


A= 1 + a1 z -1 + a 2 z -2 + K+ a n z-n
(1.8)
B = z -d B ′ = z-d (b0 + b1 z -1 + b 2 z -2 + K+ bm z -m )

Dejando explicitada la presencia de un retardo genérico d. Se expresará el modelo de


modo tal que la salida luego del retardo solo dependa de las salidas y las entradas previas al
mismo, es decir:
yk +d = G y k + F B ′ uk (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 + K + f d -1 z-d+1
(1.11)
G = g0 + g1 z -1 + g 2 z-2 + K + g n-1 z-n+1

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


i −1
fi = − ∑ f j ai − j i = 1L d − 1
j=0
d −1
(1.12)
gi = −∑ f j ai + d − j i = 0L n − 1
j=0

Demostración:
Premultiplicando la ecuación del sistema por F resulta:

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

De modo que esta forma permite predecir la salida luego del retardo sin necesidad de
conocer las salidas intermedias entre el momento de su ocurrencia y el actual.

1.2.1. Polos y Ceros del Predictor


El sistema origina tiene un función de transferencia

q −dB ′ ( q )
H ( q) = (1.14)
A ( q)

el predictor es

09-Control Predictivo.doc 3/44


y k = z − d G ( q ) y k + z − d F ( q) B ′ ( q ) uk
(1.15)
(1 − z −d
G ( q ) ) y k = z − d F ( q ) B′ ( q ) u k

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

Estas dos funciones de transferencia son equivalentes, es decir 1 − z − d G ( q ) tiene las


raíces de A ( q ) y de F ( q ) . Esto hace que haya una cancelación de raíces que puede traer
problemas numéricos si se utiliza la ecuación del predictor para simular el comportamiento
del sistema.
Se puede ver que las raíces excedentes del denominador, es decir las raíces de
F ( q ) , se distribuyen simétricamente respecto de las raíces de A ( q ) .

Ejemplo 1. Sistema con Retardo 3


Se plantea el siguiente ejemplo para analizar lo explicado anteriormente. 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)

Los polinomios A y B son los siguientes:

A= 1 - 1, 5 z -1 + 0,7 z-2
B = z -3 (1 - 0, 8 z -1)
(1.18)

F y G deberán cumplir

1= (1 + f 1 z -1 + f 2 z -2 )(1 - 1, 5 z-1 + 0,7 z -2 ) + z -3 ( g 0 + g 1 z-1 )


= 1 + ( f 1 - 1, 5) z -1 + ( 0,7 - 1, 5 f 1 + f 2 ) z-2 (1.19)
+ ( 0,7 f 1 - 1, 5 f 2 + g 0 ) z -3 + ( 0,7 f 2 + g 1 ) z -4

resultando

f1 = 1, 5 = - a1 f0
f2 = 1, 5 f 1 - 0,7 = 1,5 5 = - a 2 f 0 - a1 f1
(1.20)
g 0 = 1, 5 f 2 - 0,7 f 1 = 1.275 = - a 2 f 1 - a1 f2
g1 = - 0,7 f 2 = - 1,085 = - a2 f2

De modo que el sistema (1.17) es equivalente al siguiente:

y k+3 = (1,275 − 1,085 z -1 ) y k + ( 1 + 1, 5 z -1 + 1,55 z -2 ) (1 - 0, 8 z -1 ) u k


(1.21)
y k+3 = 1, 275 y k − 1,085 y k-1 + u k + .7 uk-1 + 0,35 u k-2 − 1,24 u k-3

09-Control Predictivo.doc 4/44


En la ¡Error! No se encuentra el origen de la referencia.se muestra cómo
evoluciona la salida frente a un escalón.

2.5

1.5

0.5

0
0 5 10 15 20 25

Ilustración 1-1 Predictor a d Pasos

1.3. Controlador Predictivo a d Pasos

Expresado el proceso en la forma (1.9) es fácil despejar uk en función de sus valores


anteriores y los de y. La única incógnita sería yk + d pero en el caso del control ésta debería ser
el valor deseado. Por lo tanto la ley de control será tal que cumpla

F B′ uk = y k +d - G y k
M
(1.22)

que expresado en diagrama de bloques se ve en la Ilustración 1-2.

r k+d u yk
1 z-dB'

+ FB' A
-

Ilustración 1-2 Control Predictivo


Del análisis de la misma figura se puede concluir la demostración del propósito
planteado. Trabajando algebráicamente con los bloques se tiene:

09-Control Predictivo.doc 5/44


ε = y zd - G y
M

z
-d (1.23)
y= ε
F A

M
F A z d y= y zd - G y
( F A - G z -d ) z d y= y M zd (1.24)
M
y= y
O sea que la salida es igual a la referencia en todo instante. Ahora se analizará la
estabilidad de la variable de control.
ε
u=
F B′
G z -d
ε = y zd - ε
M

FA
(1.25)
FA
ε = y zd
M

F A + G z -d
A M
u = -d y
z B′
También se observa que u es estable si B' lo es. Es decir el sistema debe ser de fase
mínima.
Otra forma de interpretar este control es el encontrar una ley para u de modo que
minimice el siguiente funcional:

1 2
J k+d =  y k+d - y k+d
M

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.

1.4. Controlador Predictivo a d Pasos Ponderado


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

09-Control Predictivo.doc 6/44


J k +d =
1
2
[ ]
M 2 λ
y k+d - y k+d + u2k
2
(1.27)

Es decir, se ha agregado un término que pesa el esfuerzo del control o la energía


consumida. Si se reemplaza yk + d por su valor según la expresión (1.9) y se deriva con
respecto a uk se obtendrá la nueva ley de control.

J k +d =
1
2
[ 2

G y k + F B ′ uk - ykM+d + u 2k
2
∂ J k +d
∂ uk
[ ]
= G yk + F B′ uk - y Mk+d b0 + λ u k = 0 (1.28)

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

También se puede ver el nuevo controlador en la Ilustración 1-3.

Ilustración 1-3 Control Predictivo a d Pasos Ponderado


Si se analiza la función de transferencia entre referencia y salida se obtiene lo
siguiente:
M
ε k = yk z - G yk
d

z B′ b0
-d (1.30)
yk = εk
A ( F B′ b 0 + λ )

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

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,

09-Control Predictivo.doc 7/44


b0
u= ε
F B ′ b0 + λ
ε = y M zd - G y
G z - d B′
ε = y zd -
M
u (1.32)
A
b0  M d G z - d B′ 
u= y z - u
F B′ b0 + λ  A 
u b0 A
=
B′ b0 + λ A
M
y

Por lo tanto, variando λ se puede hacer estable el polinomio b0 B '+ λ A lo que implica
la posibilidad de estabizar u. Ahora se ha ampliado el margen del diseño. Con esto se
consigue reducir considerablemente 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.

1.5. Control Predictivo a d Pasos Ponderado por Polinomios


Con el fin de aumentar la libertad se definirá una nueva especificación de modo que
no se considere u directamente sino una nueva variable filtrada:

J k +d =
1
2
[ M 2 λ 2
y k+d - y k+d + uk
2
]
P u= R u (1.33)
-1 -p
P = 1 + p1 z + ___ + p p z
R = 1 + r1 z-1 + ___ + rr z-r
Haciendo similar trabajo algebraico se llega a la ley de control.

1
J k+d =
2
[ 2 λ 2
G y k + F B′ uk - y Mk +d + uk
2
]
1
2
[ M 2 λ
2
]
J k +d = G yk + F B′ u k - y k+d + [(1 - P ) uk + R uk ]
2

∂ J k +d
∂ uk
[ ]
= G y k + F B′ uk - y k +d b0 + λ [(1 - P ) uk + R uk ]= 0
M
(1.34)

[ ]
b0 G y k - y k+d + λ (1 - P ) uk + [F B′ b0 + λ R ] u k = 0
M

[ ]
b0 G yk - yk +d + λ (1 - P ) u k + (b0 + λ ) uk +
M 2

(F B′ b0 - b20 ) z uk -1 + (λ R - λ ) z u k -1 = 0
09-Control Predictivo.doc 8/44
Cabe notar que la forma que tienen los polinomios es la siguiente:

F B′ b0 = b0 (b0 + b1 z-1 + L)(1 + f 1 z -1 +L ) = b02 + ⊕ z -1 + L


(1.35)
λ R = λ + λ r1 z -1 + L

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

uk =
M
[ ]
b0 y k +d - G y k - λ (1 - P ) z uk -1 - (F B ′ b0 - b0 + λ R - λ ) z uk -1
2
(1.36)
b0 + λ
2

o sea

1
uk =
M
[b0 y k+d - b 0g 0 y k - b 0 g 1 y k-1 - L
b +λ
2
0 (1.37)
- ( f b′ 1b0 + λ r1 ) uk-1 - ( f b′ 2b 0 + λ r2 ) uk - 2 − L+ λ p1 u k-1 + λ p2 u k-2L]

Si se lo expresa en forma de bloques resulta la Ilustración 1-4. Igual que antes se


puede analizar la forma de la salida y la estabilidad de la variable de control. Es conveniente
hacer previamente una modificación de los bloques para facilitar el estudio. De la figura se
puede inferir:

R
l(P-1)
P

+
r + u y
1 z-dB'
b0
+ - - FB'b0+Rl A

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

09-Control Predictivo.doc 9/44


(P-1) R
ε +λ
b0ε + u λ ( P - 1 ) b0 P
uk
uk = =
F B′ b0 + λ R F B′ b0 + λ R
(P-1) R
(F B′ b0 + λ R) u k - λ u k = ε b0 (1.38)
P
(F B′ P b0 + λ R P - λ R P + λ R) u k = P ε b0

con lo que la ley de control resulta:

uk =
P
F B ′ P b0 + λ R
( M
b0 y k+d - G yk )
O sea que se puede modificar la Ilustración 1-4 y lograr la Ilustración 1-5 .

Ilustración 1-5Versión Simplificada


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

ε k = yk z - G yk
M d

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

[ A F B′ P b + λ A R + z
0 G B′ P b0 ] y k = B′ P b0 yk
-d M

yk B ′ P b0 (1.40)
M =
yk B′ P b 0 + λ A R

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

09-Control Predictivo.doc 10/44


u= b0 P ε
F B′ P b0 + λ R
ε = y zd - G y
M

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

u b0 A P
M =
y B′ P b 0 + λ A R

Nótese que ahora los grados de libertad que se tienen para hacer estable u son
mayores.
Las tres figuras siguientes muestran al sistema del primer ejemplo controlado por
los tres tipos de reguladores visto. Primero, por un regulador predictivo sin ponderación,
luego se incluye el factor λ y por último se introducen los polinomios de ponderación.

1.5

0.5

-0.5

-1

-1.5
0 50 100 150 200 250

Ilustración 1-6 Control Predictivo Clásico

09-Control Predictivo.doc 11/44


2

1.5

0.5

-0.5

-1

-1.5

-2
0 50 100 150 200 250

Ilustración 1-7 Control Predictivo Ponderado

09-Control Predictivo.doc 12/44


1.5

0.5

-0.5

-1

-1.5
0 50 100 150 200 250

Ilustración 1-8 Control Predictivo Ponderado con Polinomios

Los polinomios de ponderación se podrían calcular considerando el denominador de


la función de transferencia en lazo cerrado posicionando sus raices en algún lugar deseado.

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 veces no
es posible hacerlo con exactitud. Suponiendo que el sistema tiene el siguiente polinomio en
el numerador

B′ = b0 + K + bm z -m
bm = c1 c 2K c m b 0 (1.42)
bm ? b 0

donde los ci son los diferentes ceros del sitema

09-Control Predictivo.doc 13/44


Además se supone b0 pequeño y despreciable. El regulador con este nuevo
polinomio será:

B′ = ε z + b0 + K + b m z -m = ε z + B n′
(1.43)
Bn′ = B′ - ε z
O sea que el regulador no estaría ajustado exactamente y la nueva función de
transferencia se calculará como sigue:

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

M
- G y k  z = yk
A F B n′
 y kM - G z -d y k  B ′ = A F B n′ y k (1.44)
 
 y Mk - 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
'
robustéz 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.45)

y sea el modelo o sistema nominal:


-d
An y = z Bn u (1.46)

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


a los parámetros del sistema obtenemos:

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

yk B′
M = =M (1.47)
yk A F B n′ + z -d G B ′
∂M z -i B n′ - B n′ z -d G z-i z (1 - z G )
-i -d

= =
∂ bi B n′
2
B n′
∂M - z F B n′ B n′
-i
= = - z -i F
∂ ai
2
B n′
No dice mucho. Si

09-Control Predictivo.doc 14/44


C = 1 - z-1 c1
∂C (1.48)
= - z -1 ?
∂ c1

1.7. Caso Adaptativo del Control Predictivo


Se analizará a continuación el caso más interesante es decir cuando se desconoce el
proceso real. En estas circunstancias habrá que proponer un modelo de la planta. Sea este
modelo de la forma:

Aˆ y = z-d Bˆ ′ u (1.49)

donde

Aˆ = 1 + aˆ1 z-1 + aˆ2 z-2 + K+ aˆ n z -n


(1.50)
Bˆ ′ = bˆ0 + bˆ1 z -1 + bˆ2 z -2 + K+ bˆm z -m

Estos polinomios se usarán en el cálculo del regulador. En el caso de conocimiento


absoluto teníamos el predictor

yk +d = G y k + F B ′ uk (1.51)

Para expresarlo en una forma vectorial compacta se define

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

xk = [ y k K y k-n+1 u k K u k-m-d+1]
T
(1.52)
T
y k+d = x p k

La ley de control ideal será:


T M
xk p = yk +d (1.53)

Pero, al no conocer el vector de parámetros se lo reemplaza por una estimación de


él. Se elige:
T M
xk pˆ k = y k+d (1.54)

Si se despeja la actuación, queda:

uk =
1 M
pˆ n
[ ]
yk +d - pˆ 0 yk - K - pˆ n -1 yk -n+1 - pˆ n uk -1 - K - pˆ n+m+d uk -m -d +1 (1.55)

Si se quiere hacer una estimación recursiva de los parámetros, se puede usar


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

pˆ k = pˆ k -1 - P k xk -d [xTk -d pˆ k -1 - y k ] (1.56)

09-Control Predictivo.doc 15/44


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 la estimación de b0 sea cero con lo que habría una
división incorrecta. Esto se soluciona poniendo algún tipo de filtro lógico que evite esta
división.
La forma vista de expresar el algoritmo adaptativo se denomina indirecta ya que se
estiman los parámetros del sistema en forma explícita para luego calcular el regulador.
Existe otra forma de expresar el sistema para estimar directamente los parámetros del
regulador, es decir un algoritmo directo. Si de la ecuación (1.52) se despeja el valor de la
actuación, queda el sistema expresado como sigue:

yk +d = xTk p
(1.57)
u k = x k p′
T

donde

 g g f b′ 1 1 
p′ =  0 K n-1 K
T

 f b′ 0 f b′ 0 f b′ 0 f b′ 0  (1.58)

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


T

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

uk = x′k pˆ ′k
T
(1.59)

donde

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


T M

(1.60)
pˆ ′k = pˆ ′k-1 - Pk xk-d  x k-d pˆ ′k-1 - u k-d 
T

En esta forma, el estimador ya no calcula los parámetros del sistema sino los del
regulador. Un comentario sobre el error considerado en el estimador:

ek = x k-d pˆ k-d - u k-d = x k - d pˆ k-1 - x′k-d pˆ k-d


T T T

= xTk-d pˆ k-1 - x′Tk-d pˆ k-d + x ′Tk-d pˆ k-1 - x′Tk-d pˆ k-1


=  xTk-d - x′Tk-d  pˆ k-1 + x′Tk-d [ pˆ k-1 - pˆ k-d ]
(1.61)
=  y k - yMk  pˆ k-1n+m+d + εˆk

ek = pˆ k-1n+m+d ε k + εˆk

09-Control Predictivo.doc 16/44


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

1.8. Control Predictivo Ponderado Adaptativo


Se pueden extrae conclusiones similares para este tipo de control. Se vió que el
control predictivo ponderado resultaba:

(F (
B′ b0 + λ ) u k = b0 y Mk+d - G y k ) (1.62)

y k+d - G y k - ( F B
′ - 1) uk 
b0  M
uk = (1.63)
b +λ 
2
0

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


T
uk = xk p (1.64)

donde:

 b b0 g 0 b g b f b′ b f b′ 
p = 2 0 K 20 n-1 02 1 K 0 2 m+d-1 
T

 b0 + λ b0 + λ b0 + λ b0 + λ b0 + λ 
2
(1.65)
x =  y
T
k
M
k+d
- y k K - y k-n+1 - u k-1 K - u k-m-d+1 

Si se quiere usar la forma directa del algoritmo se debe introducir una modificación
en el vector x de medidas o muestras. La ecuación siguiente presenta el cambio en la forma
de expresar uk .

′ uk
y k+d = G y k + F B
′ u k = y k+d - G y k
FB
′ - 1) u k
b0 u k = y k+d - G y k - (FB (1.66)
2
b 0
uk = 2
b0
[ y k+d - G y k - (FB′ - 1) u k ]
b +λ b0 + λ
2
0

b0  λ 
uk = ′ - 1) u k 
( y k+d + u k ) - G y k - (FB
b +λ  
2
0 b0
Ahora la nueva expresión vectorial de u es:
T
uk = xk p (1.67)

donde

 λ 
x k =  y k+d + u k , - y k K - y k-n+1 - u k-1 K - u k-m-d+1 
T

 b0 
(1.68)
 b b0 g 0 b g b f b′ b f b′ 
T
p = 2 0 K 20 n-1 02 1 K 0 2 m+d-1 
 b0 + λ b0 + λ b0 + λ b0 + λ b0 + λ 
2

09-Control Predictivo.doc 17/44


Así, se ha expresado el sistema en una forma conveniente para estimar los
parámetros del controlador en forma directa.

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


En este caso la Ley de control era:

1
uk = b0 y k+d − b0 g 0 y k − L − ( f ′b1b0 + λ r1 ) uk −1 + L + λ p1uk-1 + λ p2u k - 2 K (1.69)
M

b
2
+ λ 
0

Por lo tanto, u en forma vectorial resulta:

uk = xTk p (1.70)

donde

x k =  yk + d - y k K - y k-n+1 - u k-1 Ku k-1 K


T M

(1.71)
 b b g f b′ b + λ r1 λp λp 
p =  2 0 , 20 0 K 1 2 0 K 2 1 2 2 K
T

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

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

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

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

por otro lado,

λ u k = λ P u k - λ ( R − 1) uk = λ u k + λ p1u k-1 - λ r 1u k-1 K (1.75)

reemplazando,

1   λ  
uk =  b0  y k+d + u k  - b0G y k - ( f b′ 1b0 + λ r1 ) uk-1 K + λ p1u k-1 (1.76)
b +λ   b0 
2
0 
por lo tanto:
T
uk = x p (1.77)

donde

09-Control Predictivo.doc 18/44


 λ 
x k =  yk + d + uk , - y k K - y k-n+1 - uk-1 K u k-1 K
T

 b0 
(1.78)
 b b0 g f b′ b + λ r1 λp λp 
p =  2 0 , 2 0 K 1 20 K 2 1 2 2 K
T

 b0 + λ b0 + λ b0 + λ b0 + λ b0 + λ 
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.
En las figuras siguientes se aprecian diferentes casos de reguladores predictivos
adaptativos. En todas, la planta original es la del ejemplo primero y se produce un cambio
en la ganancia de la planta en la muestra 50: se reduce a la mitad, es decir los coeficientes
de B' pasan a ser .5 y -.4. Las tres primeras gráficas corresponden respectivamente a un
regulador predictivo, predictivo ponderado y ponderado con polinomios. En las tres
restantes la diferencia es la introducción de un ruido filtrado con un polinomio c de
coeficientes 1, -.5, .2 y .1. Todos los reguladores ponderados tienen un λ=.5. El método de
identificación es por mínimos cuadrados con un factor de olvido de .1 en todos los casos.
Por último en la 0se aprecia la convergencia de los parámetros del controlador. Se
advierte que a pesar de haber un cambio en la planta en la muestra 50, la modificación de
los parámetros no se produce hasta el próximo cambio en la referencia (muestra 80) que es
cuando el sistema tiene una excitación suficiente como para advertir la nueva dinámica.

1.5

0.5

-0.5

-1

-1.5

-2
0 50 100 150

Ilustración 1-9 Regulador Predictivo Adaptativo

09-Control Predictivo.doc 19/44


2

1.5

0.5

-0.5

-1

-1.5

-2
0 50 100 150

Ilustración 1-10 Regulador Predictivo Ponderado Adaptativo

1.5

0.5

-0.5

-1

-1.5

-2
0 50 100 150

Ilustración 1-11 Regulador Predictivo Ponderado con Polinomios Adaptativo

09-Control Predictivo.doc 20/44


2

1.5

0.5

-0.5

-1

-1.5

-2
0 50 100 150

Ilustración 1-12 Reg. Predic. Adap. Planta con ruido

1.5

0.5

-0.5

-1

-1.5

-2
0 50 100 150

Ilustración 1-13 Reg. Pred. Pond. Adap. Planta con ruido

09-Control Predictivo.doc 21/44


2

1.5

0.5

-0.5

-1

-1.5

-2
0 50 100 150

Ilustración 1-14 Reg. Pred. con Pol. Adap. Planta con ruido

-1

-2

-3
0 50 100 150

Ilustración 1-15 Estimación del los Parámetros del Reg. Predictivo

1.10. Compensación de Velocidad

 yk 
 yk +1   as1 as2 0 0   yk −1   bs1 bs2   uk 
 +
 y&  =  0 ad 2   y& k  bd1 bd 2  uk −1 
(1.79)
 k +1   0 ad1
& 
 yk −1 

 yk +1 
 yk + 2   as1 as2 0 0   yk   bs1 bs2  uk +1 
 +
 y&  =  0 ad 2   y& k +1  bd1 bd 2   uk 
= (1.80)
 k+2   0 ad1
 & 
 yk 

09-Control Predictivo.doc 22/44


 as1 yk + as2 yk −1 
 yk + 2  as1 as2 0 0  yk 
 
 y&  =  0   ad y& + ad y&  +
 k+2   0 ad 1 ad 2 1 k 2 k −1
 &  (1.81)
 y k 
 as as2   bs1 bs2   uk   bs1 bs2  uk +1 
+ 1   +  
 ad1 ad 2  bd1 bd2  uk −1  bd1 bd2   uk 

 yk 
 yk + 2   asas as + as 2   yk −1 
2

=   +
1 2 1
 y& 
 k + 2  ad1ad 2 ad1 + ad 2   y& k 
2

&  (1.82)
 yk −1 
 asbs + as2bd1 as1bs2 + as2bd 2   uk   bs1 bs2  uk +1 
+ 1 1  +  
 ad1bs1 + ad 2bd1 ad1bs2 + ad 2bd 2  uk −1  bd1 bd 2   uk 

 yk 
 yk + 2   asas as + as 2   yk −1 
2

 y&   =  +
1 2 1

 k + 2  ad1ad 2 ad1 + ad 2   y& k 


2

&  (1.83)
 yk −1 
 asbs + as2bd1 as1bs2 + as2bd 2   uk   bs1 bs2  uk +1 
+ 1 1  +  
 ad1bs1 + ad 2bd1 ad1bs2 + ad 2bd 2  uk −1  bd1 bd 2   uk 

 yk 
y 
 yk + 2   k−1   uk + 1 
 y&  = R  y& k  + M  
(1.84)
 k +2  &   uk 
y
 k−1 
uk −1 

La ley de control es

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

09-Control Predictivo.doc 23/44


Ejemplo 2. Péndulo Invertido

d 2y
= ku (1.86)
dt 2
dv
= ku (1.87)
dt

T2 T2
yk +1 = 2 yk − yk −1 + k u k + k uk −1 (1.88)
2 2
vk +1 = vk + kTuk (1.89)

predictor

T2 T2
yk + 2 = 2 yk +1 − yk + k uk +1 + k uk
2 2
 T2 T2  T2 T2
= 2  2 yk − yk −1 + k uk + k uk −1  − yk + k uk +1 + k uk = (1.90)
 2 2  2 2
T2 T2
= 3 yk − 2 yk −1 + k uk +1 + 3k u k + kT 2uk −1
2 2
vk + 2 = v k +1 + kTuk +1 =
(1.91)
= vk + kTuk + kTuk +1

T2 T2
yk + 2 = 3 yk − 2 yk −1 + k uk +1 + 3k u k + kT 2uk −1
2 2 (1.92)
vk + 2 = vk + kTuk + kTuk +1

cálculo de la actuación

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

la uk

2 (
r − 3 yk + 2 y k −1 − kT 2uk −1 ) +
1 1
uk = vk (1.95)
kT kT

09-Control Predictivo.doc 24/44


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

2
ucpk = ( r − 2 y k + yk −1 − ucpk −1 ) (1.96)
kT 2
y para la velocidad
1
uvck = ( rv − vk ) (1.97)
kT
reescribiendo el compensado

2 (
r − 3 yk + 2 y k −1 − kT 2uk −1 ) +
1 1
uk = vk =
kT kT
2
= 2 ( r − 2 y k + yk −1 ) − uk −1 − (1.98)
kT
− 2 ( yk − yk −1 ) − uk −1 − 2 ( r − 3 yk + 2 y k −1 − kT 2uk −1 ) +
2 1 1
vk
kT kT kT
quedando finalmente,

1  r − yk 
uk = ucpk −  − vk  (1.99)
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 deberí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
consecutivas, pero esto introduce una imprecisión en la velocidad que degrada el control.
Se analiza el efecto en la simulación.

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;

09-Control Predictivo.doc 25/44


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];
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);
uaux = nivelu * ones(size(t));
end;
plot([yy]);grid

09-Control Predictivo.doc 26/44


1.6

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

09-Control Predictivo.doc 27/44


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

09-Control Predictivo.doc 28/44


400

300

200

100

-100

-200

-300

-400
0 5 10 15 20 25 30

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;

09-Control Predictivo.doc 29/44


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));
end;
plot([yy]);grid

1.5

0.5

0
0 500 1000 1500 2000 2500 3000

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

09-Control Predictivo.doc 30/44


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

09-Control Predictivo.doc 31/44


100

80

60

40

20

-20

-40

-60

-80
0 5 10 15 20 25 30

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

09-Control Predictivo.doc 32/44


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

% 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

09-Control Predictivo.doc 33/44


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

09-Control Predictivo.doc 34/44


100

50

-50

-100

-150
0 5 10 15 20 25 30

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

09-Control Predictivo.doc 35/44


2.5

1.5

0.5

0
0 5 10 15 20 25

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

09-Control Predictivo.doc 36/44


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

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

09-Control Predictivo.doc 37/44


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
plot(y);grid; hold on; stairs(u,'r'); hold off

09-Control Predictivo.doc 38/44


1.5

0.5

-0.5

-1

-1.5
0 50 100 150 200 250

1.5

0.5

-0.5

-1

-1.5
0 50 100 150 200 250

09-Control Predictivo.doc 39/44


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

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

09-Control Predictivo.doc 40/44


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


FB = conv(F,B)';

% cálculo del vector de parámetros

09-Control Predictivo.doc 41/44


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

09-Control Predictivo.doc 42/44


plot(Aest);grid;

1.12. Referencias
1. Goodwin, G. Sin: Adaptive Filtering, Prediction and Control, Prentice Hall – 1984.
Compensación de Velocidad: p 128/168

09-Control Predictivo.doc 43/44


2.

09-Control Predictivo.doc 44/44

Potrebbero piacerti anche