Saltar al contenido

NMPC – Control Predictivo Basado en Modelo No Lineal

En esta entrada comenzaremos a adentrarnos al entendimiento del Control Predictivo Basado en Modelo No Lineal (NMPC – Nonlinear Model Predictive Control)

Introducción al NMPC

A lo largo del curso de control predictivo que hemos ido desarrollando en la página, nos habíamos enfocado únicamente el control predictivo lineal, y la razón de esto es porque normalmente un sistema lineal representa bien un proceso industrial, por lo tanto la teoría de control lineal es ampliamente extendida en la aplicación de controladores. Recordemos también que la aplicación de controladores lineales se debe a que en un proceso cualquiera en la industria trabaja generalmente en un punto de operación, y de ahí la razón de que se use tanto la linealización de sistemas.

Sin embargo, cuando el modelo lineal no consigue representar bien la dinámica de un proceso y fuera de eso nuestro controlador tiene dificultades en cumplir los objetivos sobre el sistema, se opta por realizar una representación del mismo por medio de una descripción no lineal.

Recordemos que cuando encontrabamos las acciones de control en el caso lineal tales como en el DMC, GPC o en espacio de estados, lo que haciamos era resolver un problema de optimización cuadratico, eso era porque nuestros modelos eran lineales y las restricciones del proceso también lo eran.

Para el caso del NMPC nos vamos a encontrar que ahora deberemos trabajar con programación no lineal, donde nuestro optimizador tendrá que encontrar la trayectoria óptima de nuestro proceso solucionando simultaneamente las restricciones de mi proceso.

En principio una formulación de un controlador NMPC es igual a la formulación lineal, donde vamos a minimizar una función de la siguiente forma:

\begin{matrix} \min\ J(x,u)& \\ {\rm s.a}\ \ : & \\ & x_{k+j}=f(x_{k+j-1},u_{k+j-1})\\ &y_{k+j}=h(x_{k+j},u_{k+j}) \\ & y_{min}\leq y_{k+j}\leq y_{max},\ j=1,2,...,N\\ & \Delta u_{min}\leq \Delta u_{k+j}\leq \Delta u_{max} \end{matrix}

Donde continuamos minimizando una función cuadratica (\min\ J(x,u)) pero en las restricciones vamos a tener que solucionar el modelo No Lineal del proceso (x_{k+j}, y_{k+j}) junto con las restricciones de operación del proceso.

Sin embargo existen diferentes estrategias para conseguir solucionar un problema NMPC:

– SQP (Programación cuadratica secuencial): Con esta abordaje se busca resolver todo simultaneamente, desde la integración del modelo no lineal del sistema, las restricciones fisicas del sistema y la trayectoria optima de control a ser aplicada al sistema. Esto es conocido como NLP (Programación no lineal).

El uso de programación NO lineal requiere efectivamente de mucho más procesamiento de calcuo, es por eso que existen abordajes que buscan simplificar el problema haciendo aproximaciones lineales para continuar usando programación cuadratica (PQ)

– Combinación lineal de soluciones lineales: Aqui levanto diferentes modelos lineales del proceso en diferentes puntos de operación con el objetivo de ir combinando todos esos modelos a lo largo de las trayectorias de las variables.

– Modelos lineales dinámicos junto con no lineales estáticos: por ejemplo se puede representar el comportamiento dinámico con un modelo lineal, pero los actuadores representados con un comportamiento no lineal.

– Modelos locales: Se realizan sucesicivas aproximaciones en cada punto de operación a lo largo de la trayectoria, con esto se convierte un problema no lineal, en un problema lineal variante en el tiempo.

NMPC – Programación Cuadrática Sucesiva (o Secuencial)

El objetivo de esta técnica es diseñar un control avanzado NMPC (Control Predictivo con Modelo No lineal) aplicado sobre algún proceso el cual está modelado por ecuaciones diferenciales NO lineales.

Las ecuaciones diferenciales son reducidas a ecuaciones algebraicas aplicando algún método de discretización, por ejemplo usando el método de colocación ortogonal por elementos finitos, que es un caso particular del método de los residuos. Las ecuaciones del modelo son resueltas simultaneamente con las restricciones del proceso dentro de una otimización de Programación Cuadrática Sucesiva (SQP) (BIEGLER, 1984).

NMPC – Combinación Lineal

Describe el sistema por varios modelos no lineales a lo largo de la trayectoria del proceso, para eso se hace el diagrama de la respuesta estática del sistema o diagrama de soluciones, y para cada punto de operación, se linealiza y se calcula un MPC lineal:

Combinacion Lineal NMPC

Esta estrategia de control combina las soluciones encontradas en cada punto de operación y en sus regiones próximas para generar el control a ser aplicado. Para determinar cual región de cada punto usar, existen diferentes técnicas como (fuzzy, ponderaciones por distancia, etc)

Si el proceso se encuentra entre un punto intermedio. ¿Cuál MPC lineal debo escoger? Para eso debo establecer cual serán mis estrategias, tales como lógica Fuzzy o simplemente haciendo ponderaciones lineales. Donde Calculo Mi control u1 con el DMC1 y calculo mi control u2 con el DMC2, luego hago una ponderación lineal basado en la distancia con el parámetro \alpha, \in[0,1]. Es decir estoy ponderando un poco cada acción de control

u=\alpha u_1+(1-\alpha) u_2

Otra forma alternativa, es inicialmente hacer la descripción de todos los modelos lineales igual al paso anterior.

Luego hago una combinación lineal de todos esos modelos para generar un único modelo Lineal.

Y luego aplico un control predictivo para el modelo Lineal.

O sea, por ejemplo calcularía la predicción en \hat{y}_1 y \hat{y}_2. Y con esas predicciones se calcula una predicción ponderada:

\hat{y}=\alpha \hat{y}_1+(1-\alpha) \hat{y}_2

Y aplica un único MPC basado en ese modelo.

 

Bibliografia

  • BIEGLER, L. (1984). Solutíon of Dynamic Optimizatíon Problems by Successive Quadratic Programming and Orthogonal Collocation. Comput. chem. Engng., 243-248.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Comentarios (4)

Los temas abordados son de excelente nivel académico.
Reciba un sincero agradecimiento por la gentileza de compartir su conocimiento.
Particularmente, me interesó el control NMPC; actualmente trabajo con reactores batch y tengo pendiente enfocar un algoritmo NMPC basado en NDMC.

Responder

Boa tarde, Sergio. Primeiramente, gostaria de parabenizar por esta página. É muito raro encontrar um lugar na internet com tanto conteúdo de qualidade e de forma super didática. Gostaria de saber se é possível você compartilhar os arquivos usados para o exemplo de NMPC com SQP e colocação ortogonal, mostrado no vídeo para o reator Van de Vusse. Eu gostaria de passar esse exemplo para Python e usar na minha disciplina de Controle aqui na UFES. Parabenizo novamente e muito obrigado pela atenção.

Responder

Oi professor Julio, esse código ainda não está 100%, eu devo trabalhar nele um pouco para melhorar os resultados. Vou entrar em contato por email. Obrigado por comentar.

Responder

Hola ,Me podría ayudar con un ejemplo de MPC no lineal en matlab

Responder