0% encontró este documento útil (0 votos)
9 vistas14 páginas

Control Predictivo Basado en Modelo en MATLAB

El documento describe la implementación y análisis de un controlador predictivo basado en modelo (MPC) utilizando MATLAB, destacando su capacidad para optimizar acciones de control en sistemas complejos. Se detalla el proceso de identificación del modelo mediante el método N4SID y se evalúa el desempeño del MPC en un sistema de tanques, considerando la sensibilidad ante inexactitudes del modelo y ruido en las mediciones. Los resultados muestran que el rendimiento del controlador depende significativamente de la precisión del modelo y la configuración de los parámetros del MPC.

Cargado por

Farias Ben Ja
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
9 vistas14 páginas

Control Predictivo Basado en Modelo en MATLAB

El documento describe la implementación y análisis de un controlador predictivo basado en modelo (MPC) utilizando MATLAB, destacando su capacidad para optimizar acciones de control en sistemas complejos. Se detalla el proceso de identificación del modelo mediante el método N4SID y se evalúa el desempeño del MPC en un sistema de tanques, considerando la sensibilidad ante inexactitudes del modelo y ruido en las mediciones. Los resultados muestran que el rendimiento del controlador depende significativamente de la precisión del modelo y la configuración de los parámetros del MPC.

Cargado por

Farias Ben Ja
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Pontificia Universidad Católica de Chile

Escuela de Ingenierı́a
Departamento de Ingenierı́a Eléctrica
IEE2683 – Laboratorio de Control Automático

MPC

Grupo 1 Sección 1
Integrantes:
Jose Luis Saez
Sebastián Astorga
Benjamin Farias

Introducción
El controlador predictivo basado en modelo (MPC, por sus siglas en inglés) es una técnica avanzada de
control que utiliza un modelo dinámico del sistema para predecir su comportamiento futuro y optimizar
las acciones de control en tiempo real. Su principal ventaja radica en la capacidad de manejar restricciones
en variables de entrada, estado y salida, lo que lo convierte en una herramienta poderosa en aplicaciones
industriales y sistemas complejos. En MATLAB, su implementación se facilita mediante herramientas
como Model Predictive Control Toolbox, que permite diseñar, simular y validar controladores MPC de
forma eficiente. Esto lo convierte en una opción ideal para el control de procesos multivariables, robótica,
sistemas energéticos y automotrices.

Trabajo Previo
1.-
Sea un sistema representado en variables de estado de la siguiente manera:

ẋ = Ax(t) + Bu(t) + Ke(t)


y(t) = Cx(t) + Du(t) + e(t)

x(t):Vector de estados no medidos

u(t):Vector de entradas al sistema

y(t):Vector de salidas del sistema

e(t):Vector de perturbaciones del sistema

A, B, C, D, K: Matrices del modelo a estimar

El método N4SID (Numerical Algorithms for Subspace State Space System Identification) estima un mo-
delo de orden n en espacio de estados directamente desde datos de entrada-salida, para ello se van cons-
truyendo las matrices en el espacio de estado en base a las respuestas del sistema ante determinados
estı́mulos (ejemplo escalón). Para determinar las respectivas matrices, el procedimiento es el siguiente:

1. Se aplican señales de entrada al sistema y se registran las salidas

1
2. Se construyen las matrices de Hankel (Sus diagonales de derecha a izquierda iguales como se detalla
a continución) con bloques de datos pasados y futuros. Generalmente se crean 4 matrices: salidas
futuras Yf , entradas pasadas Up , salidas pasadas Yp y entradas futuras Uf .
 
a b c
H =  b c d Ejemplo Matriz de Hankel 3x3
 
c d e

3. Una vez obtenidas las matrices de Henkel se realiza una proyección ortogonal para eliminar la parte
relacionada con la entrada y quedarnos únicamente con la parte relacionada a la dinámica interna
del sistema. Ejemplo, se construye una matriz W a partir de Up, Yp, y Uf. Luego se proyecta
ortogonalmente Yf sobre el complemento ortogonal del espacio generado por las columnas de W.
Esto genera que nos quedemos solamente con la parte de Yf que no puede ser explicada según las
matrices pasadas, es decir nos quedamos con una especie de residuo que no puede ser explicado en
base a las entradas, y por lo tanto la única parte de donde puede venir es de la dinámica interna
del sistema, osea sus estados.

4. Posteriormente se realiza la descomposición en valores singulares (SVD) a la matriz resultante, esto


para identificar el número de estados necesarios para representar su dinámica.

5. Por último, se estiman las matrices de la representación en variables de estado a través del método
de los mı́nimos cuadrados una vez que el subespacio ha sido identificado.

La herramienta computacional que se utilizará para la implementación de esta experiencia es MATLAB,


la que por defecto tiene una librerı́a N4SID. Algunas funciones de esta se detallan a continuación:

load iddata1 z1: Se cargan en z1 los datos entrada salida almacenados

n4sid(z1, n) se estima un modelo en espacio de estados de orden n.

compare(z1, sys) se compara la respuesta del modelo simulado (sys) con la salida medida (z1)

2.-
El Modelo de control predictivo (MPC por sus siglas en inglés) optimiza la acción de control futura
resolviendo, en cada instante de tiempo, un problema de optimización restringido que trata de minimizar
una función de costo asociada a un modelo interno de la planta y su estado actual. Este controlador aplica
únicamente la primera acción de control calculada, ignorando las siguientes y se repite para cada instante
de tiempo, en un tiempo finito.
En la figura 1 se detalla el diagrama de flujo básico del control MPC, y en la 2 El modo de funcionamiento
del controlador MPC

2
Figura 1: Diagrama de Flujo MPC. Fuente:MATLAB

Figura 2: Gráfico temporal MPC. Fuente: MATLAB

3
En este caso, el controlador MPC utiliza el modelo de predicción interno de la planta, a partir de la
representación en variables de estado encontrada con NS4ID para predecir las salidas durante el horizonte
de predicción p. En la figura 2 se pueden ver los movimientos de control planificados para llevar el estado
medido de la planta, y se observa que solo se aplica el primer movimiento de control. Por último, cabe
mencionar que el horizonte de control puede ser menor que el horizonte de predicción.
Respecto a la función de costo que se busca minimizar con la implementación de un MPC, si esta es
cuadrática, la planta es lineal y sin restricciones, por lo que el horizonte de predicción tiende a infinito.
Esto se traduce en que el MPC sea equivalente a un Lineal Quadratic Gaussian (LQG) o LQR en el caso
de no utilizar ningún estimador (como el filtro de Kalman).
Respecto a la estabilidad de este tipo de problemas, el MPC utiliza un horizonte de predicción en presencia
de restricciones, lo que constituye una retroalimentación no lineal. Debido a esto existe el riesgo de que
el comportamiento resultante de la planta se vuelva inestable, por lo que es importante analizar que
condiciones sonn necesarias para garantizar la inestabilidad. Para ello existen dos métodos principalmente:
El primero añade un término al final de la función de costo que actúa como una función de Lyapunov,
y a partir de este término se impone que el estado terminal se encuentre dentor de un conjunto terminal
invariante, no obstante esta técnica no es muy adecuada para esta experiencia debido a que es más
compleja de implementar si no se cuenta con el modelo exacto de la planta (ya que en este caso se obtuvo
con NS4ID), ya que el diseño de este término final restringido puede ser muy sensible a errores en las
matrices A y B (no exactas con NS4ID).
El segundo método trata de penalizar el estado actual y la entrada con matrices Q y R y se añade una
función de costo terminal Vf (x) = xT P x donde la matriz P es la solución de la ecuación de Ricati del
LQR para las matrices A y B obtenidas con NS4ID. En particular, en este caso solo se requiere que el
par A,B sean controlables. Es decir, que cada valor propio de estas matrices que sean inestables pueden
ser llevados al semiplano izquierdo mediante realimentación.

3.-
En esta simulación se modela un sistema lineal de tercer orden representado por la función de trans-
1
ferencia G(s) = (s+1)(s+2)(s+3) , el cual se discretiza con un tiempo de muestreo Ts = 0.1 segundos para
implementar un controlador predictivo basado en modelos (Model Predictive Control, MPC). El objetivo
es evaluar el desempeño del controlador en lazo cerrado al seguir una referencia escalón unitario, ası́ como
analizar su sensibilidad ante dos factores: (1) la inexactitud del modelo utilizado en el controlador y (2) la
presencia de ruido en las mediciones de salida. Para ello, se implementan dos escenarios: uno con el mo-
delo exacto del sistema y otro con un modelo erróneo que simula incertidumbre en la planta. Además, se
incorporan perturbaciones simuladas como ruido gaussiano para observar el efecto en el comportamiento
del sistema. Se varı́an los horizontes de predicción y control, ası́ como los pesos de la función objetivo
del MPC, permitiendo comparar el rendimiento del sistema en términos de seguimiento de la referencia,
esfuerzo de control y robustez frente a errores de modelado y ruido.

4
Figura 3: Gráfica simulación MPC con modelo correcto

Figura 4: Gráfica simulación modelo con ruido

5
Figura 5: Gráfica simulación modelo correcto vs erroneo

A partir de las simulaciones realizadas, se observa que el controlador predictivo presenta un desempeño
adecuado cuando el modelo interno coincide con el sistema real, logrando un seguimiento preciso de la
referencia con un esfuerzo de control moderado. Sin embargo, cuando se introduce una discrepancia en el
modelo utilizado por el controlador, el sistema no logra seguir correctamente la referencia, aumentando
el error en régimen permanente, posibles oscilaciones o retardos, y una mayor exigencia en la señal de
control. Asimismo, al introducir ruido en las mediciones, se evidencia que el controlador puede volverse
más sensible e inestable si no se ajustan adecuadamente los pesos en la función objetivo, en particular el
peso sobre la tasa de cambio del control. Finalmente, se comprobó que la elección de los horizontes de
predicción y control influye significativamente en el desempeño del MPC, y que al tener horizontes más
largos mejoran la precisión del seguimiento, pero a costa de un mayor esfuerzo computacional y control
más agresivo.

6
1. Control del sistema de tanques
1.1. Setup
En primer lugar se verificaron las conexiones tanto del tablero de adquiusición como del amplificador
de potencia, del mismo modo se verificaron las conexiones de las mangueras dependiendo del modelo a
trabajar, siguiendo las configuraciones de la siguiente imagen:

Figura 6: Modelo tanques

Finalmente se siguieron las instrucciones de la guia de trabajo ejecutando el codigo setup_lab_tanks.m


y el modelo.

2. Identificación y control predictivo


2.1. Identificación modelos
Para la identificación de los modelos que se utilizaron en la implementación del controlador, se realizó
un procedimiento poniendo como entrada un tren de pulsos de distintas magnitudes en los voltajes que
controlan las bombas y se midieron las alturas de los tanques, cabe destacar que dependiendo de la
configuracion de las mangueras, las mediciones utlizadas en la determinacion del modelo pueden ser del
tanque 1 o el tanque 2. Estos escalones se ingresaron respecto a un punto de referencia, (16 cm para los
3 modelos aprox.) con el objetivo de poder estimar posteriormente el modelo con el uso de N4SID
Con la simulación realizada, se guardaron los datos tanto de los voltajes como de las alturas usando
la funcion To_Workspace de Simulink y a partir de esos datos y usando la funcion N4SID se calculo el
modelo del controlador y se probaron distintos pesos para lograr el mejor funcionamiento posible. Este
procedimiento fue el mismo para todas las configuraciones.

7
En este punto cabe destacar, que inicialmente se consideró que para poder tener una mejor estimación
del modelo utilizando N4SID, solo era de interés considerar los datos recopilados en torno al punto de
equilibrio de los escalones ingresados. No obstante, en la práctica, fue necesario también considerar los
datos de subida del sistema, de tal manera de encontrar un modelo con mayor fit(con la función present()
de MATLAB), que es una manera de estimar que tanto se parece el modelo estimado con el esperado,
esto se hace con un porcentaje entre 0 y 100.
Por otro lado, algo imporante al momento de querer implementar el controlador MPC es la estabilidad del
modelo obtenido, la que se veı́a afectada por la cantidad de datos que se tomaban y el orden del modelo
estimado, esto se verificaba con la función isstable().

Teniendo en consideración lo anterior, se trabajo para los tres modelos con orden 1, un fit entre un
85 %-95 %, y se comprobó que todos fueran estables con el objetivo de no tener problemas con el MPC.
Cabe mencionar también que el hecho de agregar los datos de subida a la estimación del modelo, mejoraban
estas métricas probablemente debido a que se consideraban mayores efectos en la salida asociados a la
dinámica interna del sistema en vez ed a la salida.

2.2. Desempeño controladores predictivos


2.2.1. Modelo 1
En el primer modelo, ambas mangueras se situan en el tanque 1, el cual a su vez tiene la valvula que
lo conecta con el tanque 2 abierta. En este modelo se busca controlar la altura del agua del tanque 1.
En la siguiente figura se muestra el sistema siendo controlado por el controlador con todos los valores
por defecto, se logra notar que logra la estabilizacion, sin embargo toma mucho tiempo.

Figura 7: Primer version controlador

8
Luego para mejorar el rendimiento se hicieron cambios en el horizonte de control lo que representa
el intervalo de tiempo en el cual el controlador basará sus desiciones de control, horizonte de prediccion,
que representa el intervalo de tiempo en el cual el controlador anticipará el comportamiento. Ademas se
modificaron los pesos de las variables manipuladas.

Figura 8: Modelo con cambios

Como se logra ver en la imagen el funcionamiento del controlador mejoró considerablemente, especial-
mente en el tiempo de estabilizacion, ademas las oscilaciones se redujieron. Sin embargo, una mejora en
las simulaciones y ua mejor seleccion de variables podrian mejorar aun mas el funcionamiento.
Finalmente, en la siguiente tabla se muestran los valores con los cuales se configuró el modelo.

Parámetro Valor
Control Horizon 3
Prediction Horizon 50
Weights for Manipulated Variables 0.15
Weights for OutputVariables 10

Tabla 1: Parámetros del controlador

2.2.2. Modelo 2
En el modelo 2, la idea es controlar la altura del segundo tanque, con ambas mangueras en el tanque
1. Para ello se probaron distintas configuraciones del MPC, con el mejor resultado obtenido el que se
muestra en la imagen a continuación:

9
Figura 9: Resultados modelo 2

En este sistema existe un acoplamiento entre los estados asociados al sistema, ya que la altura del
tanque 2 depende de cuanta agua hay en el tanque 1. Además, se mantuvo cerrada la válvula de paso
para el tanque 1.

Parámetro Valor
Control Horizon 13
Prediction Horizon 80
Weights for Manipulated Variables 0.3
Weights for OutputVariables 5

Tabla 2: Parámetros del controlador

Respecto al funcionamiento del MPC, en la imagen podemos observar que es el que tiene un peor
desempeño de los tres modelos, esto seguramente debido a que fue al que menos tiempo pudimos dedicarle
al realizar la experiencia. En particular, podemos ver que el control presenta muchas oscilaciones al
intentar seguir la referencia, además de un error en estado estacionario. Este comportamiento puede
deberse principalmente a conmo está configurado el MPC, un valor alto en el output variables y uno bajo
en manipulated hace que el sistema presente muchas oscilaciones ya que favorece el seguir la referencia
lo más rápido posible, por lo que la acción de control es mas agresiva lo que genera mayor overshoot y
oscilaciones. Por otro lado, un valor alto en el horizonte de predicción, hace que la integral de la función
de costo se haga sobre un intervalo de tiempo mas extenso, lo que acumula más error y por lo tanto hace
que el control presente un mayor error en estado estacionario.

2.2.3. Modelo 3
En esta sección, se observa la tercera connfiguracion de los tanques, donde el primer tanque está
alimentado por la salida Out 1 de la bomba y el segundo tanque es alimentado por la salida Out 2 de la
bomba. Además de los estados, las entradas también están acopladas, lo que significa que cualquier ajuste
en el nivel de un tanque afecta directamente al otro.
En la siguiente figura se muestra el sistema siendo controlado por el controlador con todos los valores
por defecto,notamos que el comportamiento del controlador es malo, ya que existen grandes oscilaciones,
ademas de que una vez lograda la estabilizacion esta posee un offset respecto a la referencia.

10
Figura 10: Primera version controlador

Al igual que en los procedimientos anteriores, se configuraron los parametros del modelo y se hicieron
distintas simulaciones para mejorarlo, obteniendo el siguiente resultado.

Figura 11: Modelo final

11
Figura 12: Modelo final

2.2.4. Modelo 3 con controlador 2


Se hicieron pruebas del modelo 3 utilizando el controlador encontrado para el modelo 2, pero al
utilizar un modelo que no representa fielmente la dinámica real del sistema, se genera una discrepancia
entre las predicciones del comportamiento futuro y la respuesta real del proceso. Esta inexactitud provoca
que el MPC tome decisiones de control basadas en estimaciones erróneas, lo que puede traducirse en un
seguimiento deficiente de la referencia, tiempos de respuesta más largos o overshoots no deseados. Además,
el controlador puede aplicar señales de control excesivas o ineficaces, ya que intenta compensar errores
que en realidad provienen del modelo incorrecto y no del sistema real.
Como se puede ver en los resultados del controlador, no se logra llegar de buena forma a la referencia
en estado estacionario, ası́ como tambien hay oscilaciones indeceadas en el controlador, la mejor solución
para esto serı́a cambiar el modelo utilizado para el controlador o utilizar otro tipo de control, donde no
sea necesario tener el modelo de la planta.

12
Figura 13: Modelo 3 con controlador 2

13
3. Conclusiones Finales
Respecto a la experiencia presentada en este informe, los principales comentarios que se pueden des-
tacar es que es de suma importancia trabajar con un modelo estimado con un alto fit, lo que favorece el
desempeño del MPC al trabajar con un modelo lo más parecido posible al real. No obstante, los obte-
nidos en los 3 sistemas no superaron el 95 %, por lo que en ningún momento el MPC pudo controlar el
modelo exacto del sistema, lo que se traducı́a en errores al momento de intentar que el modelo siguiese la
referencia. Agregar también que esto podrı́a ser arreglado con la implementación de un filtro de Kalman,
de manera que ayude al controlador (mediante retroalimentación )a tener una manera de arreglar este
modelo estimado para poder trabajar con uno más cercano al real.
Respecto al controlador, probablemente el mayor error que tuvimos fue trabajar con escalas de tiempo
muy bajas para la obtención del modelo y configurar el controlador, 0.01 segundos en los 3 sistemas. Este
tiempo quizás no es el óptimo debido a la dinámica misma del sistema, ya que es demasiado rápido para
los cambios que se observan en el nivel de agua, por lo que probablemente trabajar con 0.1 segundos se
hubiese traducido en un mejor desempeño. Este tiempo, también afecta directamente a como se cálcula el
controlador, y sobre que intervalo se ven los intervalos de control y predicción, ya que al ser muy pequeño
el tiempo, es necesario trabajar con horizontes de predicción grandes (100 aprox) de tal manera de que se
alcancen a predecir los cambios en las alturas que no ocurren de manera tan rápida. A su vez, un valor
muy alto en este horizonte genera que se acumule más error lo que afecta el desempeño del controlador.
Por último, y respecto a la función de costos que se busca resolver en cada instante de tiempo, podemos
decir que un valor alto en el peso de las variables manipuladas hace que el control sea más suave, y uno
alto en peso de las de salida, genera cambios más bruscos ya que prioriza el seguir la referencia a mayor
costo. En particular, si trabajasemos en un sistema donde buscamos una mayor eficiencia en el consumo
energético, utilizarı́amos un valor alto en las variables manipuladas, no obstante como este no es el ca-
so, para los 3 sistemas se utilizaron valores bajos en las variables manipuladas, y altos en las variables
de salida. No obstante, esto generó mayor cantidad de oscilaciones ya que no se pudo obtener el punto
óptimo donde el trade off entre estos dos pesos mejoraba el desempeño del controlador, obteniendo en los
tres tanques un control con muchas oscilaciones y respuestas bruscas en los voltajes de los motores que
regulaban la apertura de las válvulas.

14

También podría gustarte