# Control predictivo por modelo

El Control Predictivo por Modelo (CPM, más conocido como MPC por sus siglas en inglés) es un método avanzado de control de procesos que ha sido utilizado por la industria de procesos en plantas químicas y refinerías de petróleo desde la década de 1980. En años recientes también ha sido utilizado en modelos de estabilidad para sistemas de potencia. Los controladores para este tipo de control dependen de modelos dinámicos del proceso en cuestión, más a menudo modelos lineales empíricos obtenidos por identificación de sistemas. La ventaja principal del MPC es el hecho de que permite que la ranura de tiempo inmediata sea optimizada, mientras tiene en cuenta también las ranuras de tiempo futuras. Esto se consigue optimizando un horizonte de tiempo finito, pero implementando únicamente la ranura de tiempo actual. El MPC tiene la capacidad de anticipar acontecimientos futuros y tomar acciones de control consecuentemente. Los controladores PID y LQR no poseen esta característica de predicción. El MPC implementa casi universalmente un sistema de control digital, a pesar de que actualmente se investiga sobre cómo lograr tiempos de respuesta más rápidos con circuitos análogos especialmente diseñados.

## Visión general

Los modelos usados en MPC generalmente se hacen con el fin de representar el comportamiento de sistemas dinámicos complejos. La complejidad adicional del algoritmo de control del MPC no es comúnmente necesitada, ni se recomienda su uso, para proveer sistemas que son simples de un control adecuado: estos sistemas pueden ser controlados por controladores PID genéricos. Algunas particularidades dinámicas que son por ejemplo díficiles de controlar con PID son los retrasos en el tiempo de gran magnitud y los comportamientos dinámicos de alto orden.
Los modelos usados en MPC predicen los cambios en las variables dependientes del sistema y que a su vez son causados por cambios en (o dependen de) las variables independientes. En un proceso químico a manera de ejemplo, las variables independientes que pueden ser ajustadas por el controlador son a menudo los puntos de estabilidad [setpoints] de controles PID (presión, flujo, temperatura, etc.) o el elemento de control final (válvulas, amortiguadores, etc.). Además, las variables independientes que no pueden ser ajustadas por el controlador son consideradas perturbaciones. Las variables dependientes en estos procesos son otras medidas que son o permiten ver mejor algunos objetivos del control, o a veces son medidas de las restricciones en el proceso.
El MPC utiliza las medidas de planta instantáneas, el estado dinámico actual del proceso, del modelo, los límites y las variables objetivo para calcular cambios futuros en las variables dependientes. Estos cambios se calculan para mantener las variables dependientes cerca al objetivo mientras se cumplen las restricciones en las variables tanto independientes como dependientes. El control MPC típicamente envía solo el primer cambio en cada variable independiente a ser implementado, y repite el cálculo cuándo el siguiente cambio es requerido.
A pesar de que muchos procesos reales no son lineales, a menudo pueden ser considerados como tales para un rango de operación pequeño. Muchas veces se usan enfoques MPC lineales cuando el mecanismo de realimentación del compensador MPC presenta errores de predicción debido a un desajuste entre el modelo y el proceso. En controladores MPC que están compuestos únicamente por modelos lineales, el principio de superposición del álgebra lineal permite que el efecto de los cambios individuales en las variables independientes se puedan añadir unos con otros para predecir la respuesta de las variables dependientes. Esto simplifica el problema de control a una serie de cálculos de álgebra matricial directa que son rápidos y robustos.
Cuando los modelos lineales no son lo suficientemente precisos como para representar las no linealidades del proceso real, varias otras aproximaciones pueden ser utilizadas. En algunos casos, las variables de proceso pueden ser transformadas antes y/o después que el modelo en sí mismo para reducir las no-linealidades. Además, el proceso puede ser controlado con MPC no lineal, cuyo modelo no lineal actúa directamente como la aplicación del control. El modelo no lineal puede existir en la forma de un ajuste de datos empíricos (p. ej. redes neuronales artificiales) o un modelo dinámico de alta fidelidad en términos de balance de energía y masa. El modelo no lineal puede ser linealizado para derivar en un Filtro de Kalman o para especificar un modelo para control MPC lineal.
Un estudio algorítmico realizado por El-Gherwi, Budman, y El Kamel muestra que usar un enfoque de modelo dual puede proporcionar reducción significativa en las computaciones en línea necesarias mientras mantiene un rendimiento comparable al de una implementación sin alterar. El algoritmo propuesto soluciona N problemas de optimización convexa en paralelo con base en un intercambio de información entre controladores.

### Teoría detrás de MPC

MPC tiene sus bases en la optimización iterativa y de horizonte finito de un modelo de planta. En el tiempo t el estado actual de la planta es muestreado y una estrategia de control que minimice el costo es computada (a través de un algoritmo de minimización numérica) para un horizonte de tiempo a futuro relativamente corto: $[t,t+T]$. Específicamente, se usa un cálculo en línea o sobre la marcha para explorar trayectorias de estado que surjan del estado actual y para encontrar (vía la solución de ecuaciones de Euler-Lagrange) una estrategia de control con minimización de costos hasta el tiempo $t+T$. Sólo el primer paso de la estrategia de control es implementado, entonces el estado de la planta es muestreado nuevamente y todos los cálculos se repiten con base en el nuevo estado actual, dando lugar a un nuevo control y nuevas predicciones en la trayectoria de estado. El horizonte de predicción es siempre actualizado hacia adelante y por esta razón el MPC es también llamado control de horizonte errante. A pesar de que este enfoque no es óptimo, ha ofrecido muy buenos resultados. Se han realizado muchas investigaciones académicas para encontrar métodos rápidos de solución de ecuaciones tipo Euler-Lagrange, para entender las propiedades de estabilidad global de la optimización local en MPC. En buena medida los teóricos han estado intentando ponerse al corriente con respecto a los ingenieros de control cuando se habla de MPC.

### Principios de MPC

El control predictivo por modelo (MPC) es un algoritmo de control multivariable que usa:
* Un modelo dinámico interno del proceso
* Un historial de movimientos de control pasados y
* Una función de optimización de costos J sobre el horizonte de predicción errante,
Para calcular los movimientos de control óptimos.
Un ejemplo de una función de coste no lineal usada para optimización viene dada por:
$J=\sum _{i=1}^{N}w_{x_{i}}(r_{i}-x_{i})^{2}+\sum _{i=1}^{N}w_{u_{i}}{\Delta u_{i}}^{2}$
donde las variables representan lo siguiente:
$x_{i}$ = i -ava variable controlada (p. ej. temperatura medida)
$r_{i}$ = i -ava variable de referencia (p. ej. temperatura requerida)
$u_{i}$ = i -ava variable manipulada (p. ej. válvula de control)
$w_{x_{i}}$ = coeficiente de ponderación que refleja la importancia relativa de $x_{i}$
$w_{u_{i}}$ = Coeficiente de ponderación que penaliza cambios relativos grandes en $u_{i}$

## MPC no lineal

El Control Predictivo por Modelo No Lineal, o NMPC por sus siglas en inglés, es una variante del Control Predictivo por Modelo (MPC) que está caracterizada por el uso de modelos no lineales de sistema en la predicción. Como en MPC lineal, el NMPC requiere de la solución iterativa de problemas de control en cuanto optimización en un horizonte de predicción finito. Mientras estos problemas son convexos en MPC lineal, en NMPC dejan de serlo. Esto supone retos tanto para la teoría estabilidad en NMPC como para la solución numérica.
La solución numérica de los problemas de control óptimo en NMPC está típicamente cimentado en métodos de control óptimo que usan esquemas de optimización tipo Newton: métodos del tiroteo directo aislado, tiroteo directo múltiple, o colocación directa. Así mismo, los algoritmos NMPC típicamente aprovechan el hecho de que los problemas de control óptimo consecutivos son similares unos con otros.
Esto permite inicializar el procedimiento de solución tipo Newton con una estimación adecuadamente desplazada que proviene de la solución óptima previamente computada, ahorrando una cantidad considerable de tiempo de computación. La similitud en problemas subsecuentes es aprovechada todavía más allá por medio de algoritmos rastreadores de trayectoria (también «iteraciones en tiempo real») que nunca intentan iterar un problema de optimización hacia la convergencia, sino únicamente realizar una iteración hacia la solución del problema NMPC más reciente, antes de proseguir con el siguiente, que será también adecuadamente inicializado.
Mientras que las aplicaciones NMPC han sido utilizadas en el pasado principalmente en las industrias químicas y de procesos que tienen tasas de muestreo comparativamente lentas, es cada vez más común ver NMPC en aplicaciones con tasas de muestreo más rápidas, por ejemplo en la industria automotriz, o incluso cuando los estados se distribuyen en el espacio (sistemas de parámetros distribuidos). Como aplicación en ingeniería aeroespacial, el NMPC ha sido recientemente utilizado para conseguir rastreadores-de-terreno/trayectorias-de-evasión en tiempo real.

## MPC robusto

Las variantes robustas del Control Predictivo por Modelo (MPC) son capaces de considerar perturbaciones acotadas y fijadas mientras se asegura que todavía se cumplan las restricciones de estado. Existen tres principales enfoques en la búsqueda de MPC robusto:
* MPC con min-max. En esta formulación, la optimización se realiza con respecto a todas las posibles evoluciones de la perturbación. Ésta es la solución óptima a problemas de control robusto lineal, pero a costa de un alto costo computacional.
* MPC con ajuste de estrechamiento de restricciones. En este caso las restricciones de estado se engrandecen a un margen dado con el fin de que se pueda garantizar una trayectoria de estado bajo cualquier evolución de la perturbación.
* MPC de tubo. Este usa un modelo de sistema nominal e independiente, y usa un controlador realimentador para asegurar que el estado real converge al estado nominal. La cantidad de separación requerida en las restricciones de estado es determinada por el conjunto invariante positivamente robusto (RPI, por sus siglas en inglés), que es el conjunto de todas las posibles desviaciones que pueden ser introducidas por una perturbación con el controlador de realimentación.
* MPC multi-etapa. Este usa la fomulación de un árbol de escenarios por medio de la aproximación del espacio de incertidumbre con un conjunto de muestras, siendo un enfoque no conservativo porque tiene en cuenta que la información sobre las mediciones está disponible en cualquier etapa y que dicha información puede ser usada para realizar predicciones, y también tiene en cuenta que las decisiones en cualquier etapa pueden ser diferentes y actuar como un recurso para contrarrestar los efectos de las incertidumbres. Sin embargo, la desventaja de este enfoque es que el tamaño del problema crece exponencialmente cuando crece el número de incertidumbres y el horizonte de predicción.

## Aplicaciones

El control predictivo por modelo ha sido aplicado para el desarrollo óptimo de proyectos en depósitos de gas y petróleo.

## Software de MPC disponible comercialmente

Varios paquetes de software comercial en MPC se encuentran disponibles y normalmente contienen herramientas que asisten en la identificación y análisis de modelos, diseño y afinación de controladores, así como evaluación de rendimiento.
Una lista de las tecnologías disponibles en MPC ha sido proporcionada por S.J. Qin y T.A. Badgwell en «Control Engineering Practice 11» (2003) 733–764.