Uno de los momentos cr´ıticos de todo Regulador PID es aquel en el que hay que ajustar sus par ´ametros, la llamada sintonizaci ´on. En gran cantidad de ocasiones resulta una tarea ardua y complicada, con los costes que ello conlleva. Normalmente durante el per´ıodo de sintoniza- ci ´on, que se puede prolongar durante d´ıas o semanas, las condiciones del proceso se pueden ver perturbadas por las condiciones clim ´aticas, entre otros. Estos cambios se reflejan en el deterioro del comportamiento del lazo de control. Por ello, resulta razonable dotar al Regulador PID de alg ´un mecanismo que pueda reajustar sus par ´ametros durante su funcionamiento y sin interrumpirlo.
Adem ´as, se busca que este autoajuste se realice sin introducir ninguna se ˜nal en el sistema superpuesta a la de control, evitando as´ı perturbar el sistema, bas ´andose as´ı el autoajuste en el comportamiento del sistema en bucle cerrado. As´ı, en funci ´on de la se ˜nal de control y de la salida del sistema, se podr ´an estimar los pesos de una funci ´on de transferencia discreta, y con ello, recalcular los par ´ametros del regulador PID.
Este estimador estar ´a basado en el algoritmo de m´ınimos cuadrados en su variante re- cursiva, debido a que posee unas propiedades estad´ısticas muy ´utiles y suficiente simplicidad como para poder ser ejecutado de una manera extremadamente r ´apida como para identificar el sistema a la vez que se est ´a realizando su regulaci ´on.
3.4.1. Algoritmo de M´ınimos Cuadrados Recursivos (RLS)
Este algoritmo permite la identificaci ´on en tiempo real de modelos con la condici ´on de que los par ´ametros de los mismos sean lineales. Esto quiere decir que el algoritmo RLS puede aplicarse incluso a sistemas no-lineales siempre y cuando sus par ´ametros s´ı lo sean.
Se considera un sistema modelado mediante la siguiente funci ´on de transferencia:
G(z) = Y(z)
U(z) =
b1z−1+· · ·+bnz−n
1 +a1z−1+· · ·+anz−n
(3.4.1.1)
Que se puede trasladar a una ecuaci ´on en diferencias
y(k) +a1y(k−1) +· · ·+any(k−n) =b1u(k−1) +· · ·+bnu(k−n) (3.4.1.2)
Esta ecuaci ´on 3.4.1.2, despejando y(k), se define la variable de proceso estimada yˆ(k) como:
ˆ
y(k) =u(k) ˆw(k−1) (3.4.1.3)
Dondewˆ(k−1)es el vector que contiene los pesos de la funci ´on de transferencia discreta estimados en el instante anterior:
ˆ w(k−1) = h −a1 · · · −an b1 · · · bn iT (3.4.1.4)
Yu(k)es el llamado vector regresor, que contiene los valores de la se ˜nal de control (u) y la variable de proceso (y) de los instantes anteriores al actual:
u(k) =hy(k−1) · · · y(k−n) u(k−1) · · · u(k−n) i
(3.4.1.5)
Se define adem ´as el error de estimaci ´one(k)como la diferencia entre la variable de proceso
y(k)y la variable de proceso estimadayˆ(k), por lo tanto:
Por lo tanto se busca un valor dewˆ(k−1)tal que se consiga quee(k) = 0.
Si el proceso que se quiere identificar corresponde con un modelo como el de la ecuaci ´on
3.4.1.2 se podr´ıa determinar el valor del vector de par ´ametros a partir de2nobservaciones de la salida para una serie de entradas conocidas. Es decir, se formar´ıa un sistema de 2n
ecuaciones con el que se podr´ıa determinar el valor real dewˆ.
El m ´etodo de m´ınimos cuadrados recursivos parte de un conjunto de estimaci ´on basado enN pares(y(k), u(k))donde, por lo general N es mucho mayor que2npermitiendo ajustar la estimaci ´on a un modelo como el mostrado en la ecuaci ´on3.4.1.2. Este ajuste es imposible en la pr ´actica, por lo que no se conseguir ´a el objetivo de que e(k) = 0. Sin embargo, s´ı se puede conseguir encontrar un valor de wˆ(k−1) que consiga hacer e(k) m´ınimo mediante la minimizaci ´on de la suma de los cuadrados de los errores de predicci ´on del conjunto de estimaci ´on (esta suma de los cuadrados de los errores recibir ´a el nombre de´ındice de bondad de ajuste).
Las medidas obtenidas desdek=nhastak=N se agrupan en vectores de manera que se obtiene:
E(N) =Y(N)−U(N) ˆw
Donde los vectoresY(N),U(N)yE(N)se definen como:
E(N) = h e(n)· · ·e(N) iT Y(N) = h y(n)· · ·y(N) iT U(N) =hu(n)· · ·u(N) iT
Se define el ´ındice de bondad de ajuste como:
J( ˆw) =||E(N)||2=
N X
k=n e2(k)
Que se puede reescribir como:
J( ˆw) = (Y(n)−U(N) ˆw)T(Y(N)−U(N) ˆw)
El m´ınimo valor del ´ındice de bondad de ajuste se dar ´a en el valor del vector de pesos que cumpla que:
dJ( ˆw)
d( ˆw) = 0⇒2(U(N) ˆw−Y(N))
De donde se obtiene que el valor del vector de pesos que hace m´ınimo el ´ındice de bondead de ajuste es:
w∗= [UT(N)U(N)]−1UT(N)Y(N) (3.4.1.7)
La ecuaci ´on3.4.1.7implica el c ´alculo de la inversa de una matriz de(N ×N) elementos, siendoN un n ´umero muy grande, por lo que el c ´alculo de esa inversa consuir ´a muchos recur- sos computacionales y ser ´a, por lo tanto, muy lento. Esto provocar´ıa que el algoritmo no se pudiera ejecutar en tiempo real. Sin embargo, se puede calcular el vector de pesos definiendo la matriz inversa[UT(k)U(k)]−1como:
[UT(k)U(k)]−1 =P(k) = " k X i=n uT(i)u(i) #−1 (3.4.1.8)
DondeP(k)es la matriz de covarianzas. Se verifica que:
P−1(k−1) =P−1(k)−uT(k)u(k)
Tambi ´en se puede deducir la expresi ´on:
UT(k−1)Y(k−1) =P−1(k−1) ˆw(k−1) =
=P−1(k) ˆw(k−1)−uT(k)u(k) ˆw(k−1)
Y sustituyendo y combinando en las ecuaciones3.4.1.8y3.4.1.7se obtiene:
ˆ w(k) = ˆw(k−1)−P(k)uT(k) ˆw(k−1) +P(k)uT(k)y(k) = = ˆw(k−1)−P(k)uT(k)(y(k)−u(k) ˆw(k−1)) = = ˆw(k−1) +K(k)(y(k)−u(k) ˆw(k−1)) = = ˆw(k−1) +K(k)e(k) (3.4.1.9)
ConK(k) = P(k)uT(k). As´ı, en la ecuaci ´on 3.4.1.9se expresa el valor del vector de pe- sos estimadoswˆ(k)de forma recursiva, es decir, en funci ´on del valor del vector en el instante anterior m ´as un t ´ermino corrector que consiste en el error de predicci ´on en el instante ac- tual multiplicado por una ganancia de adaptaci ´on K(k). Esta f ´ormula da lugar al algoritmo de m´ınimos cuadrados recursivos.
3.4.2. Flujo de ejecuci ´on del algoritmo RLS
Si se est ´a identificando un proceso cuya din ´amica var´ıa en el tiempo, es conveniente dar m ´as peso a las medidas m ´as recientes porque son las que reflejan la din ´amica m ´as actual del sistema, para ello se a ˜nadir ´a al algoritmo el factor de olvido exponencialλ. Habitualmente
λ∈[0,98,1). As´ı, tras cada iteraci ´on del algoritmo, el peso dado a cada medida disminuye ex- ponencialmente de modo que las medidas m ´as lejanas apenas contribuyen en las operaciones matem ´aticas. Con esta modificaci ´on, los pasos a seguir para ejecutar el algoritmo RLS son:
Dar un valor inicial aP(0) >> I (dondeI es la matriz identidad) y al vector de pesoswˆ (que toma un valor arbitrario).
En cada iteraci ´onk >0: 1. CalcularK(k)como:
K(k) = λ
−1u(k)P(k−1)
1 +λ−1u(k)P(k−1)uT(k)
2. Calcular el error de estimaci ´one(k)como:
e(k) =y(k)−u(k) ˆw(k−1) 3. Actualizar el vectorwˆ de pesos:
ˆ
w(k) = ˆw(k−1) +e(k)KT(k) 4. Actualizar la matrizP de covarianzas:
P(k) =λ−1P(k−1)−λ−1KT(k)u(k)P(k−1)