6. CONTROL PREDICTIVO DEL CANAL -...
Transcript of 6. CONTROL PREDICTIVO DEL CANAL -...
Modelado y control de un canal hidráulico Antonio Álvarez Romero
46
6. CONTROL PREDICTIVO DEL CANAL
Las técnicas tradicionales de control automático, como el control PID, parecen suficiente
para cubrir los requisitos de control de este tipo de sistemas. Sin embargo, mediante la
aplicación de técnicas avanzadas de control se puede lograr un control de más calidad del
canal. Mediante el control predictivo el canal alcanza el comportamiento deseado de una
manera mucho más rápida y además es capaz de rechazar de una forma mucho más efectiva
las perturbaciones que se le presentan.
En este apartado se presenta en primer lugar la teoría básica sobre la técnica de control
predictivo GPC (Generalized Predictive Control) [13] con restricciones, que será la técnica que
se empleará con el canal. Partiendo de esta base se propondrá un esquema básico de control.
Una vez propuesto este esquema se verá la manera de considerar como perturbaciones para
cada controlador las acciones de control de los controladores presentes aguas abajo y
tomarlas en cuenta para el cálculo de sus propias acciones de control. De esta manera se
mejorará el esquema de control. Otra mejora que se introducirá consistirá en aplicar para los
dos controladores presentes aguas arriba técnicas de control distribuido [26][27], que
permiten un control más eficiente del canal.
Una vez planteado el esquema de control se pasará a explicar su implementación en
Matlab y su aplicación al canal simulado en SIC para concluir el apartado comentando
brevemente los resultados obtenidos que serán desglosados en el apartado 7.
6.1. El control GPC
6.1.1. Bases teóricas
El control GPC es una de las técnicas de control predictivo más empleadas y populares
tanto a nivel académico como de la industria tanto por los buenos resultados que proporciona
como por su robustez. Se puede aplicar a un amplio abanico de problemas con un número
razonable de variables de diseño. Como otras técnicas de control predictivo, la idea básica de
un control GPC es calcular una secuencia de señales futuras de control que minimice una
función de coste definida en un horizonte de predicción.
Se parte de una planta descrita en su linealización en torno a un determinado punto de
control por la siguiente ecuación:
= − 1 + ∆ 37
Donde es la señal de control e es la señal de salida, mientras es un ruido blanco
de media cero. , , y son los polinomios siguientes:
= 1 + + +⋯+
Modelado y control de un canal hidráulico Antonio Álvarez Romero
47
= + + +⋯+
= 1 + + +⋯+ !!38
∆= 1 −
Donde d es el tiempo muerto del sistema. Por simplicidad, se escoge el polinomio C=1.
El control GPC consiste en aplicar una secuencia de control que minimiza la función de
coste descrita en la siguiente ecuación:
#$, $, $& = ' ()[+ + )| − - + )]/012/3
+'4)[∆ + ) − 1]39/612
Donde:
• + + )| es la predicción de la salida en el instante t+j partiendo del valor conocido
en t
• $, $, $& son los distintos horizontes de coste y de control
• () y 4) son parámetros de ponderación
• - + )es la futura trayectoria de referencia.
El objetivo de este tipo de control es el cómputo de la secuencia de control , +1,… que haga que la futura salida de la planta + ) se aproxime cada vez más a - + ).
Esto se logra mediante la minimización de la función de coste de la ecuación 39.
Considérese a continuación la siguiente Ecuación Diofántica:
1 = 718 + 191,8 = 1 − 40
Los polinomios 71y91 se definen de manera única y sus grados son respectivamente
j-1 y na. Para obtenerlos se divide 1 por 8, de manera que en cada iteración de la división
el cociente de la misma es el polinomio 71 y el resto será 191.
Multiplicando ambos miembros de (37) por ∆711, se tiene:
871 + ) = 71∆ + ) − < − 1 + 71 + )41
Y sustituyendo (40) en (41) se obtiene:
+ ) = 91 + 71∆ + ) − < − 1 + 71 + )42
Al ser el grado del polinomio Ej igual a j-1, los términos ruidosos de (42) están todos en el
futuro. La mejor predicción del valor + ) en base a lo que se sabe en el instante actual es:
+ + )| = >1∆ + ) − < − 1 + 9143
Modelado y control de un canal hidráulico Antonio Álvarez Romero
48
Donde >1 = 71
Los polinomios >1 pueden ser obtenidos de manera recursiva. Partiendo de las
expresiones de los polinomios 7 y 9:
71 = 1, + 1, +⋯+ 1,11 91 = ?1, + ?1, +⋯+ ?1,44
La expresión del siguiente polinomio E es:
71@ = 1@, + 1@, +⋯+ 1@,1145
Donde se cumple:
1@,1 = ?1,46
Al cumplirse que:
71@ = 71 + 1@,1147
Se encuentra la recursión referida:
>1@ = 71@ = C71 + ?1,1D → >1@ = >1 + ?1,148
En los polinomios >1, los primeros j coeficientes de >1@ serán idénticos a los de >1 y el resto se
obtienen aplicando:
F1@,1@G = FG,1@G + ?1,GH = 0…J49
La secuencia de control que se obtenga debe permitir minimizar la función de coste
expresada en (39). Esta secuencia estará expresada por el vector
[, + 1, + 2,… + $] donde $ es el horizonte de control. Al tener el sistema
bajo consideración un tiempo muerto de d muestras, la salida del sistema estará influenciada
por la señal de control tras el paso de d+1 tiempos de muestreo. Se pueden definir los
valores $, $y $& como
$ = < + 1 $ = < + $50
$& = $
Modelado y control de un canal hidráulico Antonio Álvarez Romero
49
La ecuación de predicción es la siguiente:
K = LM + N51
Desglosando cada término de la ecuación:
O+ + < + 1|)+( + < + 2|)⋮+( + < + $|)Q =O F 0 ⋯ 0F F … 0: ⋮ ⋱ ⋮F/ F/ ⋯ F
Q O ∆()∆( + 1)⋮∆( + $ − 1)Q + T?@, … ?@,⋮ : ⋮?@/, … ?@/,U O()( − 1)⋮( − J)Q +
VWWX (>@() − F)(>@() − F − F)⋮C>@/() − F − F −⋯− F/(/)D/YZ
Z[ ∆( − 1)(52)
El primer producto de matrices depende de las acciones de control futuras, mientras que los
otros dos sumandos dependen respectivamente de las salidas pasadas y de la anterior acción
de control.
También se pueden definir el horizonte de predicción ($) y el de control ($&) con
valores distintos, caso en el cual la matriz L no es cuadrada. Lo que sí se debe cumplir es que
el horizonte de predicción sea mayor o igual al de control.
Por su parte, la función de coste puede expresarse de la siguiente manera:
# = (LM + N − \)](LM + N − \) + 4M]M(53)
Y rescrita de la forma que se muestra a continuación:
# = 12M^_M+ `^M + ?(54)
Donde
_ = 2(L^L+ 4a)
`] = 2(N − \)]L
? = (N −\)](N −\)(55)
Cuando no existen restricciones, la acción de control óptima que minimiza la función
de coste de (53) y (54), es la siguiente:
M = −_` = (L]L + 4a)L](\ − N)(56)
Modelado y control de un canal hidráulico Antonio Álvarez Romero
50
Que es una secuencia de acciones de control de la cual se toma la primera que es la que se
aplica sobre la planta.
El esquema de control GPC se muestra completo en la figura 33. Hay que tener en
cuenta que w es un vector cuyo tamaño es el del horizonte de predicción
Figura 33. Esquema de control GPC
6.1.2. Esquema básico de control del canal con GPC
En la figura 34 puede verse un esquema de control mediante el empleo de cinco
controladores GPC descentralizados. El emparejamiento de variables de control y controladas,
al igual que ocurre con el esquema de control con PIDs descentralizados de la figura 30,
obedece al modelo presentado en el punto 4.3, en la tabla 7.
Modelado y control de un canal hidráulico Antonio Álvarez Romero
51
Figura 34. Esquema básico de control con GPCs decentralizados
Este sistema de control será perfeccionado con mejoras que se explicarán en los
puntos subsiguientes.
6.2. Control GPC considerando perturbaciones medibles
El desempeño del control del canal puede experimentar una interesante mejora si se
toman en cuenta los efectos de acoplamiento entre las acciones de control. En concreto, para
calcular una acción de control en un punto determinado del canal, se tomará en consideración
las perturbaciones que suponen las acciones de control aguas abajo. Puesto de forma que sea
fácilmente comprensible, para calcular la apertura o cierre de una compuerta en un intervalo
de muestreo, se tomarán en consideración las aperturas o cierres ocurridas aguas abajo. En el
punto 6.2.2 se detallará esto.
Otras perturbaciones que se deben tener en cuenta son las que suponen los offtakes /
intakes. La diferencia en este caso es que se puede decir de una manera razonable que están
previstas. Un offtake es una toma de agua para un uso concreto (por ejemplo regadío), algo
fácilmente programable y que de hecho no debe hacerse de manera improvisada. Un intake es
la inyección de agua en un determinado punto, la cual se puede hacer de manera programada
igualmente. No obstante, en este trabajo se verá una variante especial de intake, y es que se
modelará la lluvia como la inyección de agua en el canal en un punto determinado. Dejando de
un lado la mejor o peor calidad de esta aproximación, no se puede prever de forma exacta
cuando lloverá ni cuánto, pero sí se puede hacer un pronóstico aproximado.
Modelado y control de un canal hidráulico Antonio Álvarez Romero
52
Por tanto se está haciendo una adaptación de las acciones de control a perturbaciones que
suceden aguas abajo, pero que son medibles.
En el apartado 6.2.1. se introducirá la teoría subyacente a la consideración de
perturbaciones medibles en el control GPC y en el apartado 6.2.2. se verá la aplicación de esta
teoría al canal con el que se está trabajando.
6.2.1. Bases teóricas
Considérese un proceso descrito por la siguiente ecuación:
()() = ()( − 1) + b()c() + () ()∆ (57)
Donde c()es una perturbación medible en el instante t y b() es un polinomio definido
como:
b() = < + < + < +⋯+ < (58)
Si se multiplica la ecuación (57) en ambos miembros por ∆71()1:
71()8()( + )) = 71()()∆( + ) − 1) + 71()b()∆c( + )) + 71()( + ))(59)
Y usando la Ecuación Diofántica y reordenando, se obtiene lo siguiente:
( + )) = 91()() + 71()()∆( + ) − 1) + 71()b()∆c( + )) +71()( + ))(60) Como ocurría en la ecuación (42) y como vuelve a suceder en (60), al ser el grado de 71() igual a j-1, los términos ruidosos se encuentran todos en el futuro. Se puede obtener
el valor esperado de ( + )):
+( + )| = 7[ + )] = 91 + 71∆ + ) − 1 + 71b∆c + )61
Se ha considerado 7[ + )] = 7[] = 0
Con todo esto, se puede obtener una expresión matricial similar a la de (52), pero
añadiendo los términos de perturbación:
Modelado y control de un canal hidráulico Antonio Álvarez Romero
53
O+( + < + 1|+ < 2|⋮+ < $|Q O F 0 ⋯ 0F F … 0: ⋮ ⋱ ⋮F/ F/ ⋯ FQ O
∆∆ 1⋮∆ $ 1Q T?@, … ?@,⋮ : ⋮?@/, … ?@/,U O
1⋮ JQ VWWX >@ F>@ F F⋮C>@/ F F ⋯ F//D/YZ
Z[ ∆ 1 O d 0 ⋯ 0d d … 0: ⋮ ⋱ ⋮d/ d/ ⋯ dQ O
∆c 1∆c 2⋮∆c $Q VWWX e@ de@ d d⋮Ce@/ d d ⋯ d//D/YZ
Z[ ∆c62 La figura 35 muestra cómo las perturbaciones afectan al cómputo de la respuesta libre.
Basta sólo con compararla con la figura 33. Como ya se ha comentado, las acciones de control
calculadas para una compuerta se verán como perturbaciones en compuertas superiores. Esto
se explicará en detalle en el punto 6.2.2. y se verá de forma gráfica en la figura 36.
Figura 35. Esquema de control con GPC considerando perturbaciones
Modelado y control de un canal hidráulico Antonio Álvarez Romero
54
6.2.2. Aplicación al control del canal
En sistemas tan acoplados, como es el caso del canal con el que se está trabajando, sucede
que la acción de control que se ejerce para lograr el comportamiento deseado en una de las
salidas, afecta también de forma notable al resto de las mismas. Este hecho puede tenerse en
cuenta si para calcular la acción de control para una determinada salida se toman como
perturbaciones acciones de control de otras.
En este momento es positivo remitirse a las figuras 18 y 14 del texto. En la figura 18 puede
verse la ubicación de las entradas y salidas en el modelo con el que se está trabajando. En la
figura 14 puede verse la ubicación de los offtakes. Las perturbaciones que se consideran son
las siguientes:
• En el cálculo de la señal de control en el GPC 5 se tiene en cuenta el efecto de los
cambios en el offtake ubicado en el punto RS 4.659 del ramal 2(a 8320 m de la
bifurcación del canal)
• En el cálculo de la señal de control en el GPC 4 se tiene en cuenta el efecto de la señal
de control calculada para el GPC 5 (compuerta situada en el punto RS 6.969 del ramal
2), los cambios en el offtake ubicado en el punto RS 7.849 del ramal 2(a 5130 m de la
bifurcación del canal) y los cambios en el offtake del punto RS 10.889 del ramal 2(a
2090 m de la bifurcación del canal)
• En el cálculo de la señal de control en el GPC 3 se tienen en cuenta los cambios en el
offtake ubicado en el punto RS 2.935 del ramal 1 (a 3740 m de la bifurcación del canal).
• En el cálculo de la señal de control en el GPC 1 se tiene en cuenta el efecto de la señal
de control calculada para el GPC 3 (compuerta situada en el punto RS 6.672 del ramal
1, a 3 m de la bifurcación del canal), y para el GPC 4 (compuerta situada en el punto RS
12.964 del ramal 2, a 15 m de la bifurcación del canal). También se considera la
influencia del offtake situado en el punto RS 1.625 del ramal 1, a 2840 m de la
cabecera del canal.
• Finalmente, en el cálculo de la señal de control en el GPC 2 se tiene en cuenta el efecto
de la señal de control calculada para el GPC 1 (que es el caudal de agua entrante en el
canal).
En la figura 36 puede verse la ubicación del canal de las entradas y salidas de los GPCs, y de
los offtakes, y las influencias de unos sobre otros a modo de perturbaciones. También se
muestra la distancia entre unos y otros. En la figura 37 se muestra el esquema de control con
la consideración de estas perturbaciones.
Modelado y control de un canal hidráulico Antonio Álvarez Romero
55
Figura 36. Perturbaciones consideradas en el cálculo de las señales de control
Figura 37. Esquema básico de control considerando perturbaciones medibles
En el controlador que se ha implementado está previsto el escoger el modo de control
entre tres posibles: considerando las perturbaciones de otras señales de control y de los
offtakes, considerando sólo la de los offtakes, considerando sólo las de las señales de control o
sin considerar perturbaciones.
La siguiente mejora a este esquema consistirá en hacer que los GPCs 1 y 2 se
comuniquen de forma que mediante un algoritmo decidan de manera conjunta las mejores
Modelado y control de un canal hidráulico Antonio Álvarez Romero
56
actuaciones para un interés común. Esto implica teoría sobre control distribuido que se verá
en detalle en el apartado 6.3.
6.3. Mejoras basadas en el control distribuido
En este apartado se verá la aplicación de técnicas de control distribuido con el fin de
seleccionar las acciones de control de los GPCs 1 y 2 teniendo en cuenta las necesidades de
ambos controladores. Los conocimientos aquí adquiridos se emplearán para mejorar el
sistema de control del canal, añadiéndole nuevas funcionalidades sin que eso quiera decir que
se prescinda de lo hecho hasta el momento. En primer lugar se realizará una introducción
teórica y luego se comentará la aplicación al control del canal
6.3.1. Bases teóricas
Hasta el momento el esquema de control propuesto basado en GPC está caracterizado por
ser decentralizado. Esto quiere decir que la información de la que dispone cada GPC es sólo
una parte de la información total. La técnica que se aplicará propone la comunicación entre
GPCs de manera que ambos GPCs tengan más datos para calcular su acción de control y que
ésta se calcule de manera cooperativa (figura 38). Se consigue un control más preciso en bucle
cerrado, más robusto y con mayor tolerancia a fallos [26].
La base teórica que se verá se aplica a una pareja de controladores, si bien es extendible a
un número mayor de los mismos. Estos controladores emplean un algoritmo de control
predictivo distribuido basado en teoría de juegos en el que se da una comunicación entre estos
controladores (a los que se llama agentes en este contexto) para lograr el objetivo de controlar
dos sistemas lineales con restricciones acoplados (o dicho de otra forma, un sistema MIMO de
2x2). Cada agente tiene sólo una parte de la información del modelo y del estado del sistema.
La teoría de juegos permite el estudio desde el punto de vista matemático de un problema de
control donde dos agentes deben cooperar para lograr sus objetivos de control, incluso en el
caso de ser objetivos en conflicto. El problema de coordinación de los agentes se verá reducido
a un juego de cooperación donde cada agente debe elegir una opción entre tres posibles y
donde para cada elección sólo se requerirán dos ciclos de comunicación. A continuación se
formula y desarrolla el problema.
Modelado y control de un canal hidráulico Antonio Álvarez Romero
57
Figura 38. Esquema de control distribuido de dos agentes
Supóngase un cierto sistema distribuido lineal dentro del cual se encuentran dos
subsistemas cada uno de los cuales se encuentra acoplado con el vecino a través de las
entradas. El estado de cada uno de los dos subsistemas se expresa de la siguiente manera:
f( + 1 f f 1 f 63 Donde f y f son los estados del sistema y y son las entradas del mismo. Se consideran
también cuatro juegos de restricciones, uno por estado y entrada del sistema.
Como se puede suponer el objetivo es controlar el sistema aplicando acciones de
control que lo hagan comportarse de la manera deseada teniendo en cuenta las restricciones
tanto en las señales de control como en los estados. Cada agente tiene únicamente
información sobre su propio estado, sobre el modelo del subsistema que le corresponde y
poder de decisión sobre la señal de control que aplicará. Por tanto, es necesario que se
comuniquen para ampliar esta información y decidir mejor las acciones de control a aplicar.
La diferencia entre sistema descentralizado y distribuido es que en el primero no existe
comunicación entre agentes y por tanto cada agente trata de controlar su subsistema por su
cuenta, pudiendo los acoplamientos existentes llegar incluso a inestabilizar el sistema. Este es
un mal escenario sin duda. El segundo caso funcionará mejor, ya que ambos agentes se
comunican y trabajan de manera conjunta.
El objetivo del esquema MPC distribuido es minimizar un índice de desempeño que
depende de la futura evolución de los estados y de las entradas. En cada período de muestreo,
cada agente resuelve un conjunto de problemas de optimización de dimensión reducida
basados en el modelo de su correspondiente subsistema y asumiendo una trayectoria fija de
entrada para su vecino. Para describir el algoritmo, hace falta hacer las siguientes definiciones:
• Secuencia de entrada futura del agente i (Ui): son variables de decisión de los
problemas de optimización que resuelven ambos agentes.
Modelado y control de un canal hidráulico Antonio Álvarez Romero
58
g = O ,,⋮,/Q , g = O ,,⋮,/
Q(64)
• Agente vecino del agente i (ni): g = g, g = g
• Función local de coste de cada agente (#G): viendo (53):
# = (LhMh + Nh −\h)](LhMh + Nh −\h) + 4MhMh(65) # = (LiMi + Ni −\i)](LiMi + Ni −\i) + 4MiMi
• Secuencia óptima de entrada del agente i en el instante t (gG()), definida como:
g() = VWWWX ,,⋮,/ YZZ
Z[ , g() = VWWWX ,,⋮,/ YZZ
Z[(66)
• Secuencia óptima de entrada del agente i desplazada (gGj()): en el último elemento
se suele introducir una ganancia multiplicando al estado previsto para N muestras
después (kGfG,/). En nuestro caso se introducirá un 0, indicando que la trayectoria no
se varía
gj() =VWWWWX,,⋮,/0 YZZ
ZZ[ , gj() =VWWWWX,,⋮,/0 YZZ
ZZ[(67)
A continuación se explica el funcionamiento del algoritmo con cada uno de sus pasos:
1. En cada período de muestreo t cada agente i recibe información de la medida parcial
de su estado fG()
2. Cada agente i minimiza #Gasumiendo que el otro agente mantiene la trayectoria de
entrada calculada en el período de muestreo anterior, es decir, que sigue haciendo lo
mismo que estaba haciendo sin cambiar nada: gG = gGj (). Los agentes 1 y 2
resuelven los siguientes problemas de optimización respectivamente:
g∗() = argpHJq3 #Cf(), g, gj()D f,r@ = f,r + ,r + ,r f, = f()(68)
f,r ∈ t, u = 0…$
Modelado y control de un canal hidráulico Antonio Álvarez Romero
59
,r = g, u = 0…$ − 1 f,/ ∈ Ω
g∗() = argpHJq0 #Cf(), g, gj()D f,r@ = f,r + ,r + ,r f, = f()(69)
f,r ∈ t, u = 0…$ ,r = g, u = 0…$ − 1 f,/ ∈ Ω
Los términos Ωy Ωexpresan la región donde se cumplen las restricciones que garantizan
la estabilidad en bucle cerrado. En este caso la variable fija es la trayectoria del vecino gGmientras la variable libre es gG 3. Cada agente i minimiza #G optimizando la entrada del agente vecino asumiendo que
éste aplica la secuencia gG∗, calculada anteriormente. Se resuelven los siguientes
problemas de optimización:
gw() = argpHJq0 #(f(), g∗(), g) f,r@ = f,r + ,r + ,r f, = f()(70)
f,r ∈ t, u = 0…$ ,r = g, u = 0…$ − 1 f,/ ∈ Ω
gw() = argpHJq3 #(f(), g∗(), g) f,r@ = f,r + ,r + ,r f, = f()(71)
f,r ∈ t, u = 0…$ ,r = g, u = 0…$ − 1
Modelado y control de un canal hidráulico Antonio Álvarez Romero
60
f,/ ∈ Ω En este caso cada agente está calculando la secuencia de entrada que más le interesa que
aplique el otro asumiendo que él mismo ha aplicado la que más le conviene. Estaríamos
hablando en este caso de maximizar su propio beneficio y que el agente vecino se está
comportando de forma generosa con él.
Mientras en el paso 2 cada agente calcula la secuencia de entrada que más le conviene
asumiendo que el vecino se queda quieto y no cambia nada de lo que estaba haciendo, en el
paso 3 cada agente calcula la trayectoria que más le conviene que aplique el vecino, que es
aquella que minimiza su función de coste cuando el propio agente ha aplicado la secuencia
calculada en el paso 2.
4. Los agentes se comunican entre ellos. El agente 1 envía g∗()y gw(), y el agente 2
envía g∗() y gw(). De esta manera tanto el agente 1 como el 2 tienen toda la
información necesaria para dar los siguientes pasos.
5. Cada agente evalúa su función de coste local para cada una de las posibles secuencias
a aplicar, es decir: g ∈ [gj(), gw(), g∗()]y g ∈ [gj(), gw(), g∗()] 6. Ambos agentes se comunican entre sí los valores resultado del paso anterior.
7. Con toda la información ya en su poder, ambos agentes pueden evaluar # = # + #
para las 9 combinaciones de entradas gy g. Las entradas que minimizan J se
denotarán g()y g()
8. Una vez se tienen las dos secuencias óptimas, se aplica la primera muestra de cada una
de ellas y se vuelve al paso 1 para iniciar el proceso de nuevo en el siguiente tiempo de
muestreo.
Desde el punto de vista de la teoría de juegos, se puede decir que ambos agentes actúan
de forma cooperativa. Los resultados del juego se pueden ver de forma sintética en una matriz
de 3x3 (ver tabla 11), donde en cada fila se tiene una posible decisión que puede tomar el
agente 1, mientras en cada columna se tiene una posible decisión que puede tomar el agente
2. Las celdas contienen la suma de las funciones de coste para cada una de las posibles
combinaciones de entradas (decisiones). De las 9 opciones, se escogerá la que minimice dicha
suma. Como ambos agentes han compartido la información y, por tanto, ambos disponen de la
misma información, ambos escogerán la misma opción.
gj() g∗() gw() gj() #Cf(), gj(), gj()D+ #(f(), gj(), gj())
#Cf(), gj(), g∗()D+ #(f(), g∗(), gj())
#Cf(), gj(), gw()D+ #(f(), gw(), gj()) g∗() #Cf(), g∗(), gj()D+ #(f(), gj(), g∗())
#Cf(), g∗(), g∗()D+ #(f(), g∗(), g∗())
#Cf(), g∗(), gw()D+ #(f(), gw(), g∗()) gw() #Cf(), gw(), gj()D+ #(f(), gj(), gw())
#Cf(), gw(), g∗()D+ #(f(), g∗(), gw())
#Cf(), gw(), gw()D+ #(f(), gw(), gw()) Tabla 11. Tabla usada para la toma de decisión
Este esquema puede ser extendido al caso de N agentes. En el caso del presente trabajo
se ha aplicado únicamente a dos controladores, dejando como posible línea de avance su
extensión a N agentes. Mencionar también que de cara a mejorar la eficiencia las
Modelado y control de un canal hidráulico Antonio Álvarez Romero
61
características del presente algoritmo permiten a ambos agentes realizar los cálculos de un
mismo paso en paralelo.
6.3.2. Aplicación al control del canal
Para aplicar la teoría vista en el punto 6.3.1, es necesario remitirse al esquema de control
de la figura 37. En dicho esquema de control han sido considerados los acoplamientos para el
cálculo de cada una de las salidas en forma de perturbaciones. Al considerar control
distribuido se añade a estas perturbaciones la que supone la apertura de compuerta en el
punto RS 4.27 (a 195 m de la cabecera del canal). Esta señal, que es la de control del GPC 2,
ejercerá de perturbación para el cálculo de la señal de control del GPC 1, que es el caudal
entrante en el canal. A este esquema sólo sería necesario añadirle la implementación del
algoritmo visto y un canal de comunicación entre los controladores 1 y 2 para que puedan
intercambiarse los resultados obtenidos y poder tomar una decisión de manera conjunta
Figura 39. Esquema de control con control distribuido en los dos primeros controladores
Modelado y control de un canal hidráulico Antonio Álvarez Romero
62
6.4. Consideración de restricciones
En la inmensa mayoría de casos de control de sistemas reales, es necesario tener en
cuenta una serie de restricciones que aplican al cálculo de la señal óptima de control. Estas
restricciones aplican a la propia señal de control y a la salida obtenida. En el apartado 5.2., en
la tabla 10, ya se muestran las restricciones aplicadas cuando se trata de controlar el canal
mediante un control PID. Si se trata de controlar con GPC, a estas restricciones es necesario
añadir algunas nuevas, que se verán en el apartado 6.4.2. En el apartado 6.4.1. se pondrán las
bases teóricas [13] del control GPC con aplicación de restricciones.
6.4.1. Bases teóricas
Existen tres tipos de restricciones que se deben considerar en el cálculo de la señal de
control óptima a aplicar:
• Restricción en la amplitud de la señal de control
g ≤ () ≤ g∀(72)
• Restricción en la velocidad de cambio de la señal de control
≤ () − ( − 1) ≤ ∀(73)
• Restricción en la salida
≤ () ≤ ∀(74) Para un proceso de m entradas y n salidas con restricciones, considerando un horizonte
deslizante, las restricciones se pueden expresar en forma matricial:
hg ≤ zM + ( − 1)h ≤ hg
h ≤ M ≤ h(75)
h ≤ LM + N ≤ h Donde hes una matriz formada por N matrices identidad de dimensión m x m cada una, y T es
una matriz triangular inferior por bloques cuyos bloques no nulos son matrices m x m. Todas
estas restricciones pueden expresarse de manera compacta con la siguiente desigualdad:
M ≤ |(76)
donde:
Modelado y control de un canal hidráulico Antonio Álvarez Romero
63
=VWWWWX~//−~//z−z>−> YZZ
ZZ[ , =VWWWWWX 1−11g − 1( − 1)−1g + 1( − 1)1 − ?−1 + ? YZZ
ZZZ[(77)
El cálculo de la señal de control consistirá en minimizar la función de coste expresada en (53)
sujeta a las restricciones puestas de forma matricial en (77). Se tiene una función de coste
cuadrática con restricciones lineales, un problema de programación cuadrática (QP). Este tipo
de problemas ha sido estudiado de manera pormenorizada, y en el entorno de trabajo bajo el
que se programan los controladores del presente proyecto, Matlab, existe una herramienta,
denominada quadprog, que resuelve estos problemas con suficiencia. Por tanto no será mayor
problema calcular en Matlab la señal de control óptima en todo momento.
6.4.2. Aplicación al control del canal
El esquema de control desarrollado, y cuya culminación se muestra en la figura 39, es un
esquema descentralizado, donde cada GPC se desarrolla de manera independiente tomando
como perturbaciones acciones de control de controladores vecinos y considerando control
distribuido en el caso de los GPC 1 y 2. Se tienen por tanto 5 controladores independientes
para procesos de 1 entrada y 1 salida y que sufren un número mayor o menor de
perturbaciones. Esto simplifica el problema a la hora de encarar el problema de encontrar una
señal de control óptima que minimice una función de coste considerando unas restricciones.
De un único problema QP de gran complejidad se pasa a 5 problemas QP más sencillos. En la
tabla 12 se muestran las restricciones que se han considerado a la hora de calcular las señales
de control en cada iteración del programa. También se indican los puntos de trabajo.
Parámetro Valor
Valor máximo señal de control 1 30 m3/s
Valor máximo señal de control 2 3 m
Valor máximo señal de control 3 3 m
Valor máximo señal de control 4 3 m
Valor máximo señal de control 5 3 m
Valor mínimo señal de control 1 0 m3/s
Valor mínimo señal de control 2 0.05 m
Valor mínimo señal de control 3 0.05 m
Valor mínimo señal de control 4 0.05 m
Valor mínimo señal de control 5 0.05 m
Variación máxima señal de control 1 1 m3/s
Variación máxima señal de control 2 0.2 m
Variación máxima señal de control 3 0.2 m
Variación máxima señal de control 4 0.2 m
Variación máxima señal de control 5 0.2 m
Variación mínima señal de control 1 -1 m3/s
Modelado y control de un canal hidráulico Antonio Álvarez Romero
64
Variación mínima señal de control 2 -0.2 m
Variación mínima señal de control 3 -0.2 m
Variación mínima señal de control 4 -0.2m
Variación mínima señal de control 5 -0.2 m
Punto de operación señal de control 1 12 m3/s
Punto de operación señal de control 2 1 m
Punto de operación señal de control 3 0.5 m
Punto de operación señal de control 4 0.5 m
Punto de operación señal de control 5 0.5 m
Punto de operación salida 1 82.073 m
Punto de operación salida 2 82.951 m
Punto de operación salida 3 5.41 m3/s
Punto de operación salida 4 81.269 m
Punto de operación salida 5 80.643 m
Valor máximo de salida 1 82.72 m
Valor máximo de salida 2 83.79 m
Valor máximo de salida 4 81.67 m
Valor máximo de salida 5 81.07 m
Valor mínimo de salida 1 79.67 m
Valor mínimo de salida 2 80.74 m
Valor mínimo de salida 4 78.77 m
Valor mínimo de salida 5 78.17 m Tabla 12. Restricciones y punto de operación aplicadas al control con GPC del canal
6.5. Sintonización de los controladores GPC
En el apartado 5.2., en la tabla 9, se muestran los parámetros de sintonización del control
PID del canal. De igual manera los controladores GPC tienen sus propios parámetros de
sintonización, en concreto tres por controlador
• Horizonte de predicción ($)
• Horizonte de control ($&)
• Penalización de la señal de control (λ)
En la tabla 13 se muestran los parámetros de sintonización de los controladores GPC.
Parámetro Valor 4 8 4 8 4 6 4 1.5 4 5 $ 25 $ 30 $ 11 $ 10 $ 9
Modelado y control de un canal hidráulico Antonio Álvarez Romero
65
$& 15 $& 9 $& 4 $& 3 $& 3 Tabla 13. Parámetros de sintonización de los controladores GPC
6.6. Implementación del control GPC en Matlab
En el apartado 5.3 se explica el intercambio de variables que existe entre Matlab y SIC
cuando se implementa un controlador PID para el canal. En el caso del control GPC el
intercambio de información es similar y la idea es la misma: la representación (el modelo) del
canal reside en una serie de ficheros del software SIC mientras toda la lógica de control está
hecha en Matlab. Al ser ambos software abiertos y con posibilidades de comunicarse sólo es
necesario resolver la interfaz entre ambos.
Por otra parte, es posible, al igual que ocurría con la implementación en Matlab del control
PID, diferenciar lo que se hace en la primera iteración del programa (el primer período de
muestreo) de lo que ocurre en el resto del mismo.
En este apartado se realizará una descripción de alto nivel del programa realizado en
Matlab que implementa el GPC con el que se realiza el control del canal. En la figura 40 puede
verse un diagrama de flujo general, cuyos bloques se irán desglosando en apartados sucesivos.
Se aprecian dos bloques principales: uno de inicialización, donde toman valor las distintas
constantes y variables que son necesarias en el desarrollo de la simulación, y otro propiamente
de control destinado a leer la referencia y la salida de la planta y calcular la señal de control
óptima. El primer bloque se ejecuta sólo en la primera iteración del programa, el otro se
ejecuta en todas las iteraciones del mismo.
Figura 40. Implementación del GPC: Diagrama de flujo con los dos bloques principales
Modelado y control de un canal hidráulico Antonio Álvarez Romero
66
6.6.1. Bloque de inicializaciones
Este bloque contiene todas las inicializaciones de constantes y variables necesarias para la
simulación. En la figura 41 se puede ver su diagrama de flujo.
Figura 41: Implementación del GPC: diagrama de flujo del bloque de inicializaciones
El bloque de inicializaciones consta de una serie de pequeños bloques que se ejecutan de
forma completamente secuencial. En primer lugar se inicializan todos los parámetros relativos
a las restricciones y al punto de operación que se detallan en la tabla 12. Se inicializa también
el tiempo de muestreo que se va a emplear y el tiempo de simulación. Se indica también el
tamaño de los escalones que se aplicarán en la simulación, tanto en las referencias de los
controladores como en los offtakes en caso de hacer simulaciones donde éstos estén activos.
Se inicializan también todos los parámetros de sintonización del controlador GPC que se
indican en la tabla 13. Por último, se indica si en la simulación que se va a realizar se van a
considerar como perturbaciones medibles los cambios en las señales de control adyacentes, en
los offtakes, en ambos o en ninguno de ellos. Este parámetro es muy importante ya que según
el valor que tome se tendrán en cuenta estos factores en el cálculo de la señal de control.
Una vez inicializados estos parámetros, se pasa a inicializar el modelo. Para ello se toma
como referencia la matriz de funciones de transferencia obtenida en el apartado 4.3 y que se
puede consultar en (20). De igual manera, se inicializan las funciones de transferencia
asociadas a los offtakes, que según el modo de funcionamiento del programa pueden ser
consideradas como perturbaciones. Estas funciones de transferencia se pueden consultar en
las ecuaciones (11),(13),(16),(17) y (19). Todo esto en modo contínuo, pasándose
inmediatamente a discreto según el tiempo de muestreo introducido. Las razones por las que
se escoge el tiempo de muestreo de 360 segundos se exponen en los apartados 2.3.5 y 4.3.2.
El resultado de la discretización en las funciones de transferencia de los offtakes se muestra en
Modelado y control de un canal hidráulico Antonio Álvarez Romero
67
las ecuaciones (22),(23),(24),(25) y (26). La matriz de funciones de transferencia resultante se
muestra en (21).
El siguiente paso es la inicialización de los polinomios que intervienen en la Ecuación
Diofántica que se puede ver en (40). Es decir, para cada una de las funciones de transferencia
de la matriz de (21) se trata de obtener sus correspondientes polinomios () y () (ver
ecuación (37)), y a partir de ahí obtener los correspondientes 8(). De esta manera se
pueden obtener los polinomios 71()y 91() según la ecuación (40). A continuación se
obtienen las matrices G (ver ecuaciones de (42) a (52) y el desarrollo del punto 6.1.1.) de
manera que se tienen todos los elementos necesarios para montar las ecuaciones de
predicción (ver ecuaciones (51) y (52)). El siguiente paso es el cálculo de las matrices H de cada
uno de los controladores según (55). Además es necesario calcular para cada controlador la
respuesta libre que se tendrá en cuenta en el cálculo de la señal de control. Esta respuesta
libre debe contener, si los hubiera, y según el modo de funcionamiento, el efecto de las
perturbaciones debidas a los offtakes y las debidas a los cambios en las señales de control
adyacentes, de manera que se cumpla la ecuación (62).
A continuación se inicializan los vectores de salidas, los vectores de control y los de
incremento en la señal de control. También se inicializan y establecen los vectores de
referencia y de offtakes. Para cada vector se indica el valor del escalón que tiene lugar (0 si no
lo hay) y el instante de tiempo en que dicho escalón se produce. Finalmente se inicializan los
índices de los vectores.
6.6.2. Bloque de control
En el punto 6.2.2 se explica que se ha tomado la convención para este proyecto de
considerar como perturbaciones para el cálculo de las señales de control las señales de control
obtenidas aguas abajo. De esta manera se han establecido las perturbaciones que influyen en
el cálculo de cada una de las señales de control y que se detallan en dicho punto. Por esta
razón es más que adecuado el calcular en cada iteración las señales de control desde el final
del canal hasta el comienzo del mismo, de manera que estén disponibles en cada cálculo los
datos de las correspondientes perturbaciones. Así, siguiendo el modelo adoptado y que puede
verse en la tabla 7, en primer lugar se calcularía la señal de control del GPC 5, considerando su
correspondiente perturbación y, claro está, las restricciones a aplicar. A continuación se
calcularía la del GPC 4, luego la del GPC 3. Posteriormente se calcularía la del GPC 1 y
finalmente la del GPC 2. Este último caso supone una excepción, ya que la señal de control de
este GPC es la apertura de la primera compuerta del canal (situada a 195 m del comienzo) y la
perturbación es el caudal entrante en el canal, situado aguas arriba.
Si el programa de cálculo de las señales de control ha devuelto un óptimo para los
controladores 1 y 2, dicho óptimo se intenta mejorar de forma cooperativa mediante control
distribuido. Finalmente, las señales de control se mandan a la planta representada en SIC. En la
figura 42 se puede ver el diagrama de flujo correspondiente. A continuación se analiza el
funcionamiento del bloque de cálculo de señal de control de cada GPC.
Modelado y control de un canal hidráulico Antonio Álvarez Romero
68
Figura 42. Diagrama de flujo del bloque de control
Para cada GPC, lo primero que se hace es recibir la salida correspondiente de la planta. Una
vez hecho esto, se toman las siguientes N muestras (con N el horizonte de predicción) de la
referencia y, si procediese (depende del modo de funcionamiento) las siguientes N muestras
de la evolución de el/los offtakes que se consideren perturbación para el cálculo de la señal de
control, en caso de haberlos. El siguiente paso es calcular la respuesta libre que incluye todas
las perturbaciones y que es necesaria en el cálculo de la señal de control. En concreto, esta
respuesta libre influye en el cálculo del vector b (ver ecuación (55)) y de las matrices R y C de
restricciones (ver ecuaciones (76) y (77)). Con la matriz H, calculada en (55), el vector b, la
matriz de restricciones R y el vector de restricciones C se puede invocar a la función quadprog
de Matlab para que resuelva el correspondiente problema QP y calcule la secuencia de control
óptima. De dicha secuencia, la primera muestra será la señal de control que se aplique a la
planta. Si el quadprog no es capaz de obtener un óptimo, se toma como señal a aplicar una
señal nula; eso quiere decir que se mantiene la misma acción de control de la muestra
anterior. En la figura 43 se puede analizar el diagrama de flujo del módulo de cálculo de señal
de control de los GPC.
Modelado y control de un canal hidráulico Antonio Álvarez Romero
69
Figura 43. Implementación del GPC: Módulo de cálculo de señal de control de GPC
Si las señales de control del GPC 1 y del GPC 2 son no nulas (es decir, si quadprog
encontró un óptimo), se entra en el módulo de control distribuido. En este módulo se aplica la
teoría vista en el punto 6.3 y el fin del mismo es que ambos controladores cooperen para
conseguir hacer más óptimas si cabe las dos señales calculadas.
Se parte de las señales ya calculadas, que son llamadas g() y g() (ver ecuación
(66)). A partir de ellas se obtienen las señales gj() y gj() (ver ecuación (67)). El siguiente
paso es el cálculo de las señales g∗y g∗ según las condiciones indicadas en las
ecuaciones (68) y (69) y siguiendo el esquema de perturbaciones mostrado en la figura 39.
Terminado este paso, se calculan las señales gwy gw según las condiciones mostradas
en (70) y (71).
Una vez se han obtenido gj, g∗, gw,gj, g∗ y gw, es hora de
evaluar la siguiente expresión:
# # # LhMh Nh \h]LhMh Nh \h 4MhMh LiMi Ni \i]LiMi Ni \i 4MiMi78 con:
∈ *gj, g∗, gw., ∈ *gj, g∗, gw.79 Esto da lugar a las 9 combinaciones que se muestran en la tabla 11. Se evalúan las 9
combinaciones y se escogen el y el que den lugar al menor valor de la función de coste J.
Estas son las señales que, junto con las ya calculadas para los otros 3 GPCs, se envían a la
planta. En la figura 44 puede verse el diagrama de flujo de este módulo, que resulta ser
completamente secuencial.
Modelado y control de un canal hidráulico Antonio Álvarez Romero
70
Figura 44. Implementación GPC. Módulo de control distribuido
6.7. Resultados obtenidos
El control GPC, pese a tener una implementación más costosa y una mayor carga
computacional logra un mejor seguimiento de referencias y rechazo de perturbaciones que el
control PID, dándose la mayor diferencia a la hora de evaluar el tiempo que se tarda en
alcanzar la consigna, bien ante cambio de referencia o bien ante perturbaciones. Se logran los
objetivos en tiempos hasta 3 veces inferiores que en el caso de control con PID. Dado que se
está tratando con sistemas muy lentos en su evolución como son los canales hidráulicos, estas
diferencias traducidas a tiempo son de días. El tener en cuenta perturbaciones medibles y la
aplicación de control distribuido mediante comunicación de controladores son saltos de
calidad notables frente al simple control PID descentralizado. La conclusión que se saca de los
resultados obtenidos es que merece la pena el coste en tiempo que supone programar un
control predictivo GPC para controlar el canal. En el apartado 7.2 se ven resultados de las
simulaciones que no hacen otra cosa sino apoyar esta afirmación.