Model Predictive Control Toolbox

Diseñe y simule controladores predictivos de modelos

 

Model Predictive Control Toolbox™ proporciona funciones, una app y bloques de Simulink® para diseñar y simular controladores predictivos de modelos (MPC). Esta toolbox le permite especificar modelos de plantas y perturbaciones, horizontes, restricciones y pesos. Ejecutando simulaciones de bucle cerrado, puede evaluar el rendimiento del controlador.

Puede ajustar el comportamiento del controlador variando sus pesos y restricciones en tiempo de ejecución. Para controlar una planta no lineal, puede implementar MPC adaptativos y con planificación de ganancia. Para aplicaciones con frecuencias de muestreo rápidas, puede generar un controlador predictivo de modelos explícito a partir de un controlador normal o implementar una solución aproximada.

Para el prototipado rápido y la implementación de sistemas embebidos, esta toolbox es compatible con la generación de código C y de texto estructurado IEC 61131-3.

Cómo empezar:

Diseño de controladores predictivos de modelos

Diseñe controladores MPC para controlar sistemas MIMO sujetos a restricciones de entrada y salida. Ejecute simulaciones de bucle cerrado para evaluar el rendimiento del controlador.

Diseño de MPC en MATLAB

Utilice funciones en la línea de comandos para diseñar controladores MPC. Defina un modelo de planta interno, ajuste los pesos, las restricciones y otros parámetros del controlador, y simule la respuesta del sistema de bucle cerrado para evaluar el rendimiento del controlador.

Diseño de controladores MPC en la línea de comandos.

Diseño de MPC en Simulink

Modele y simule controladores MPC en Simulink mediante el bloque MPC Controller y otros bloques proporcionados por esta toolbox. Recorte y linealice un modelo de Simulink para calcular un modelo de planta interno lineal invariable en el tiempo para su controlador MPC y calcule los valores nominales de las entradas y salidas de la planta mediante Simulink Control Design™.

App MPC Designer

Diseñe controladores MPC de manera interactiva definiendo un modelo de planta interno y ajustando los horizontes, los pesos y las restricciones. Valide el rendimiento del controlador mediante escenarios de simulación. Compare las respuestas de varios controladores MPC.

Designing MPC controllers at the command line.

Aplicaciones de conducción autónoma

Acelere el desarrollo de sus sistemas ADAS mediante bloques predefinidos de Simulink. Utilice los ejemplos de referencia para diseñar controladores ADAS rápidamente. Genere código desde los bloques de Simulink para desplegar los controladores MPC en el vehículo.

Bloques predefinidos

Utilice los bloques Adaptive Cruise Control System, Lane Keeping Assist System y Path Following Control System como punto de partida para su aplicación ADAS y personalice el diseño según lo que necesite. Genere código desde los bloques predefinidos para desplegar los controladores MPC.

Uso del bloque predefinido de Simulink para diseñar sistemas de control de crucero adaptativo.

Aplicaciones de referencia

Aproveche las aplicaciones de referencia, que le guían a través de un flujo de trabajo para diseñar y desplegar controladores MPC para sus sistemas de conducción autónoma. Las aplicaciones de referencia también le muestran cómo se pueden modelar distintas partes de su sistema con diversos niveles de fidelidad.

Controladores predictivos de modelos lineales

Diseñe controladores MPC para sistemas de dinámica lineal. Diseñe controladores MPC adaptativos y con planificación de ganancia para plantas cuya dinámica cambia según las condiciones de operación.

MPC lineal

Diseñe un controlador MPC lineal especificando un modelo de planta interno como sistema lineal invariable en el tiempo (LTI) desde Control System Toolbox™, o linealizando un modelo de Simulink con Simulink Control Design. También puede importar un modelo creado a partir de datos medidos de entrada y salida mediante System Identification Toolbox™.

Especificación de un modelo de planta interno para un diseño de MPC lineal.

MPC adaptativo

Diseñe y simule controladores MPC adaptativos mediante funciones en la línea de comandos y el bloque Adaptive MPC Controller. Actualice el modelo de su planta en cada paso del cálculo y proporcióneselo como entrada al controlador. Utilice un filtro Kalman lineal variable en el tiempo (LTV) incorporado con garantía de estabilidad asintótica para la estimación del estado en controladores predictivos de modelos adaptativos.

MPC con planificación de ganancia

Controle plantas no lineales en una amplia variedad de condiciones de operación con el bloque Multiple MPC Controllers. Diseñe un controlador MPC para cada punto operativo y cambie de controlador en tiempo de ejecución.

Uso del bloque Multiple MPC Controller para diseñar controladores MPC con planificación de ganancia.

Parámetros de diseño, estimación del estado y revisión del diseño de MPC

Mejore de manera iterativa el diseño del controlador definiendo un modelo de planta interno, ajustando los parámetros del controlador y simulando la respuesta del sistema de bucle cerrado para evaluar el rendimiento del controlador. Revise el controlador para detectar posibles problemas de diseño.

Parámetros del controlador

Después de definir el modelo de planta interno, complete el diseño del controlador MPC especificando el tiempo de muestreo, los horizontes de predicción y control, los factores de escala, las restricciones de entrada y salida y los pesos. Esta toolbox también es compatible con el suavizado de las restricciones y con restricciones y pesos variables en el tiempo.

Especificación de los parámetros del controlador en la app MPC Designer.

Estimación del estado

Estime los estados del controlador a partir de salidas medidas con el estimador de estado incorporado. También puede utilizar la opción de estimación del estado personalizada cuando necesite proporcionar valores estimados con su algoritmo personalizado al controlador.

Estimación del estado personalizada.

Revisión del diseño

Detecte posibles problemas de estabilidad y solidez en el controlador MPC mediante la función de diagnóstico que proporciona esta toolbox. Utilice esta herramienta de diagnóstico para ajustar los pesos y las restricciones del controlador durante el diseño de este para evitar fallos en tiempo de ejecución.

Mejora del diseño del controlador siguiendo las recomendaciones del informe de revisión del diseño.

Ajuste de parámetros y monitorización del rendimiento en tiempo de ejecución

Mejore el rendimiento del controlador ajustando los pesos y las restricciones en tiempo de ejecución. Analice el rendimiento en tiempo de ejecución del controlador.

Ajuste de parámetros en tiempo de ejecución

Ajuste los pesos y las restricciones en tiempo de ejecución del controlador MPC para optimizar su rendimiento en tiempo de ejecución sin necesidad de volverlo a diseñar o implementar. Realice el ajuste del controlador en tiempo de ejecución tanto en MATLAB como en Simulink.

Ajuste de pesos y restricciones en tiempo de ejecución.

Monitorización del rendimiento en tiempo de ejecución

Acceda a la señal del estado de optimización para detectar las raras ocasiones en las que una optimización puede no converger y luego decida si se debe utilizar una estrategia de control de respaldo.

Detección de fallos del controlador en tiempo real. 

Implementación de controladores predictivos de modelos rápidos

Diseñe, simule y despliegue controladores MPC en aplicaciones con un presupuesto para rendimiento computacional limitado.

Generación de un controlador MPC explícito a partir de un controlador implícito diseñado previamente.

Solución aproximada (subóptima)

Diseñe, simule y despliegue controladores MPC con tiempo de ejecución garantizado en el peor de los casos mediante una solución aproximada (subóptima).

Comparación de los tiempos de ejecución de una solución óptima y otra aproximada (subóptima).

Controladores predictivos de modelos no lineales

Diseñe controladores MPC no lineales para controlar plantas mediante modelos de predicción, funciones de coste o restricciones no lineales.

Planificación óptima

Utilice controladores MPC no lineales para aplicaciones de planificación óptima que requieran un modelo no lineal con costes o restricciones no lineales.

Optimización de la trayectoria y el control de un robot volador mediante MPC no lineal.

Control de retroalimentación

Simule el control de bucle cerrado de plantas no lineales con costes y restricciones no lineales. Por defecto, los controladores MPC no lineales utilizan Optimization Toolbox™ para resolver el problema de programación no lineal. También puede especificar su propio solver no lineal personalizado.

Control predictivo de modelos no lineal de un reactor químico exotérmico.

MPC económico

Diseñe controladores MPC económicos a fin de optimizar el controlador para una función de coste arbitraria con restricciones no lineales arbitrarias. Puede utilizar un modelo de predicción lineal o no lineal, una función de coste no lineal personalizada y restricciones no lineales personalizadas.

Control MPC económico de la producción de óxido de etileno.

Generación de código

Genere código para los controladores predictivos de modelos diseñados en Simulink y MATLAB y despliéguelo para aplicaciones de control en tiempo real.

Generación de código con MATLAB y Simulink

Diseñe un controlador MPC en Simulink y genere código C y texto estructurado IEC 61131-3 mediante Simulink Coder™ o Simulink PLC Coder™, respectivamente. Utilice MATLAB Coder™ para generar código C en MATLAB y despliéguelo para control en tiempo real. También puede utilizar MATLAB CompilerTM para desplegar controladores MPC.

Generación de código C a partir del bloque MPC Controller.

Solver embebido

Genere código desde el solver de programación cuadrática (QP) proporcionado para conseguir una implementación eficiente en un procesador embebido. Despliegue el código generado en un número arbitrario de procesadores. Utilice el solver QP proporcionado con la formulación MPC estándar o utilícelo para resolver problemas de MPC personalizados.

Controlador MPC personalizado.

Solver QP personalizado

Utilice un solver de programación cuadrática (QP) personalizado de su elección para la simulación y la generación de código.

Solver QP personalizado para simulación y generación de código.

Nuevas funciones

Integration with FORCES PRO

Simulate and generate code for MPC controllers with FORCES PRO solvers developed by Embotech AG

Interior-Point QP Solver

Efficiently compute optimal control moves for large-scale MPC problems

Nonlinear MPC Code Generation

Generate code for nonlinear MPC controllers that use default fmincon solver with the SQP algorithm

See release notes for details on any of these features and corresponding functions.