Hola Controleras y Controleros, en esta entrada vamos a ver un tutorial con algunos conceptos básicos de como utilizar el MPC Toolbox MATLAB. Si todavía no has visto nuestro curso gratuito de MPC disponible en Español y Portugues te invito a que le des un vistazo a nuestra categoría –> MPC Control Predictivo.
Antes de comenzar te hago la invitación para que te suscribas al canal y continues aprendiendo más sobre los sistemas de control.
Para aprender a usar la herramienta vamos a utilizar como ejemplo algunos problemas clasicos de control. El primer ejemplo será una columna de destilación, que lo encontrarás al comienzo de esta publicación junto con sus videos en YouTube y el segundo ejemplo será un reactor CSTR en la parte de abajo de esta publicación junto con sus videos en YouTube.
Columna de Destilación de Wood & Berry
Esta columna de destilación separa metanol y agua, con dos variables de salida (,
, fracción molar de metanol en el tope y en el fondo respectivamente), dos variables de entrada (
, reflujo en el tope y
, flujo del rehervidor) y un distúrbio representado por el flujo de alimentación para a columna (
).

Al final de la página tendras disponible el código en MATLAB que coloca todas las matrices necesarias para la simulación de este modelo.
Videos de como usar MPC Toolbox Matlab/Simulink
A continuación preparé los siguientes videos en español y portugués de como usar esta herramienta.
Español | Portugues |
Lo primero que debemos hacer es crear el diagrama de bloques en Simulink. Para esto usamos los Bloques que se muestran a continuación.
El Proceso y la perturbación están definidos como matrices de funciones de transferencia en las variables Ps y Pq respectivamente, para llamar eso en simulink usamos el bloque LTI System.
El control MPC Toolbox de Matlab también es adicionado, donde mv son las variables manipuladas, mo son las variables de salida medidas del proceso, ref son las referencias y md son las perturbaciones medibles.

Las Referencias en el topo, fondo y perturbacion son definidas como 1, 0.5 y 0.3 respectivamente.
Una vez creado el diagrama de bloques se procede a realizar el diseño del controlador MPC usando el Toolbox de Simulink, para eso basta dar doble click al bloque MPC Controller y luego clic en el botón design.

Lo primero es definir la estructura del MPC, para eso se coloca el numero de entradas, salidas y disturbios del proceso. Para el caso del ejemplo de Wood & Berry se tiene 2 entradas, 2 salidas y 1 entrada de perturbación.

El MPC Toolbox de MATLAB posee una herramienta que permite linealizar el sistema en un punto de operación y obtener el modelo matemático del mismo. En algunas ocasiones esta herramienta no consigue linealizar adecuadamente el modelo, pero es importante recalcar que eso varia de proceso a proceso. En este punto se puede observar que existen 4 formas de obtener el modelo matemático, donde para ver más información sobre estos métodos se puede dar clic en el botón de ayuda de la parte inferior de la interfaz del toolbox.

De igual forma, para arrancar es necesario escoger alguno de los métodos de linealización (sin importar si ya se tiene algun modelo ya listo). Para este tutorial se emplea el método Model Initial Condition donde el toolbox MPC de MATLAB estima un modelo para el Wood and Berry.
Una vez se tiene el modelo, es hora de sintonizar el controlador modificando los horizontes de predicción, colocando las restricciones del proceso, colocar los pesos de ponderación en la función objetivo y fuera de eso es posible utilizar la herramienta para hacer la sintonia más robusta o más agresiva en la acción de control.

Si se tiene el modelo del proceso, este puede ser ingresado manualmente en lugar de dejar que el Toolbox estime el modelo, para eso en la pestaña MPC DESIGNER se importa el modelo y luego se realiza la sintonia del mismo. El modelo de Funciones de Transferencia debe estar cargado previamente en el WorkSpace de Matlab para que el MPC Toolbox los detecte.

Con eso es necesario decirle al Toolbox que utilice el modelo que fue importado.

Podemos hacer pruebas de simulación con los escenarios del controlador y ver como el sistema responde con la sintonia realizada. Y al final se debe exportar esa sintonia al Simulink y ver si realmente controla el sistema real.

Con eso tenemos las nociones básicas para trabajar con el Toolbox MPC de matlab, cuando encontremos el control ideal en su sintonia, procedemos a exportar el controlador para tenerlo guardado para próximas simulaciones.
Reactor CSTR usando MPC de Simulink
A continuación vamos a usar el modelo No lineal de un reactor CSTR para construir nuestro controlador predictivo usando MATLAB. El modelo del reactor está totalmente explicado en esta otra publicación, da click aca.
Videos de como usar MPC Toolbox Matlab/Simulink en el Reactor CSTR
A continuación preparé los siguientes videos en español y portugués de como usar esta herramienta.
Español | Portugues |
Descargar los Códigos en Simulink y Matlab
A continuación te dejo los códigos en MATLAB y SIMULINK para que los descargues y los reproduzcas. Para verlos solo debes compartir el contenido de este post con alguno de los tres botones, asi ayudas a que este sitio web siga cresciendo.
[sociallocker id=948]
clc close all clear all %load('mpc1.mat') %% Define o processo da Coluna: Ps=[tf(12.8,[16.7 1]) tf(-18.9,[21 1]);tf(6.6,[10.9 1]) tf(-19.4,[14.4 1])]; Ps.iodelay=[1 3;7 3]; %Define o Atraso %% Define o modelo do processo da Coluna: Pm= Ps; Pm.iodelay=[1 3;7 3]+2; %Define o Atraso %% Define a perturbacao Pq=[tf(3.8,[14.9 1]);tf(4.9,[13.2 1])]; Pq.iodelay=[8.1;3.4]; %Define o Atraso %% Define o modelo da perturbacao Pmq=Pq; Pmq.iodelay=[8.1;3.4]+1; %Define o Atraso DC=[Pm Pmq]; DC.InputName = {'Reflux Rate', 'Steam Rate', 'Feed Rate'}; DC.OutputName = {'Distillate Purity', 'Bottoms Purity'}; DC = setmpcsignals(DC, 'MD', 3) %% Parametros do Simulink s1=1; %SetPoint no Topo s2=0.5; %SetPoint no Fundo q=0.3; %Degrau na perturbacao
[/sociallocker]
Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:
👉 Invitar a Sergio a un Café ☕️
Que esten muy bien, nos vemos en la siguiente entrada.
Mi nombre es Sergio Andres Castaño Giraldo, y en este sitio web voy a compartir una de las cosas que mas me gusta en la vida y es sobre la Ingeniería de Control y Automatización. El sitio web estará en constante crecimiento, voy a ir publicando material sobre el asunto desde temas básicos hasta temas un poco más complejos. Suscríbete al sitio web, dale me gusta a la página en Facebook y únete al canal de youtube. Espero de corazón que la información que comparto en este sitio, te pueda ser de utilidad. Y nuevamente te doy las gracias y la bienvenida a control automático educación.