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 mediante el control predictivo de modelos (MPC) lineal y no lineal. Esta toolbox permite especificar modelos de plantas y perturbaciones, horizontes, restricciones y pesos. Puede evaluar el rendimiento del controlador ejecutando simulaciones de bucle cerrado.

Puede ajustar el comportamiento del controlador variando sus pesos y restricciones en tiempo de ejecución. Esta toolbox proporciona solvers de optimización desplegables y también permite utilizar un solver personalizado. Para controlar una planta no lineal, puede implementar controladores MPC adaptativos, con planificación de ganancia y no lineales. Para aplicaciones con tasas de muestreo rápidas, la toolbox permite 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, incluido el despliegue de solvers de optimización, esta toolbox soporta la generación de código C y de texto estructurado IEC 61131-3.

Comience:

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.

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.

Diseño de MPC en Simulink

Modele y simule controladores MPC en Simulink usando el bloque MPC Controller y otros bloques proporcionados en 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 obtenga los valores nominales de las entradas y salidas de la planta mediante Simulink Control Design™.

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 y ajuste los pesos, las restricciones y otros parámetros del controlador. 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.

Aplicaciones de conducción autónoma

Acelere el desarrollo de sistemas ADAS mediante los 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 sea necesario. Genere código desde los bloques predefinidos para el despliegue en el vehículo.

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

Ejemplos de aplicaciones de referencia

Utilice los ejemplos de aplicaciones de referencia para seguir un flujo de trabajo destinado a diseñar y desplegar controladores MPC para sistemas de conducción autónoma. Los ejemplos de aplicaciones de referencia también muestran cómo se pueden modelar distintas partes del sistema con diferentes 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 un sistema lineal invariable en el tiempo (LTI) creado con Control System Toolbox™, o bien 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 usando funciones en la línea de comandos y el bloque Adaptive MPC Controller. Actualice el modelo de planta en tiempo de ejecución y proporciónelo como entrada al controlador. Utilice un filtro de Kalman lineal variante en el tiempo (LTV) integrado 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 operativas 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 Controllers para diseñar controladores MPC con planificación de ganancia.

Especificación de parámetros, 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 variantes 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 un algoritmo personalizado para estimar el estado.

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 incorporada. Utilice los resultados del diagnóstico para ajustar los pesos y las restricciones durante el diseño del controlador y 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 supervisió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 de sus controladores en tiempo de ejecución.

Ajuste de parámetros en tiempo de ejecución

Ajuste los pesos y las restricciones del controlador MPC para optimizar su rendimiento en tiempo de ejecución sin necesidad de rediseñarlo o reimplementarlo. 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.

Supervisió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. Utilice esta información para tomar decisiones sobre estrategias de control de copias de seguridad.

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 recursos computacionales limitados

MPC explícito

Genere un controlador MPC explícito a partir del diseño de un MPC implícito para acelerar la ejecución. Simplifique un controlador MPC explícito generado para reducir el uso de memoria.

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 un controlador MPC con tiempo de ejecución garantizado en el peor de los casos usando 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 trayectoria y control de un robot volador mediante MPC no lineal.

Sistemas de control de retroalimentación

Simule un sistema de control de bucle cerrado de plantas no lineales con costes y restricciones no lineales. De forma predeterminada, 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.

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

MPC económico

Diseñe controladores MPC económicos para 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.

Sistema de control MPC económico para 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 o 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 sistemas de control en tiempo real. También puede utilizar MATLAB Compiler™ para empaquetar y compartir su controlador MPC como una aplicación independiente.

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

Solvers integrados

Genere código desde los solvers de programación cuadrática (QP) de conjunto activo y de punto interior proporcionados para lograr una implementación eficiente en procesadores embebidos. Para problemas no lineales, utilice el solver de programación cuadrática secuencial (SQP) de Optimization Toolbox para simular y generar código. Despliegue el código generado en la cantidad de procesadores que desee.

Solvers integrados.

Solvers personalizados

Utilice los solvers QP y NLP (programación no lineal) FORCES PRO de Embotech para simular y generar código para controladores MPC lineales y no lineales. Si lo prefiere, utilice solvers QP y NLP personalizados para simular y generar código.

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

Nuevas funcionalidades

Integración con FORCES PRO

Simule y genere código para controladores MPC con solvers FORCES PRO desarrollados por Embotech AG.

Solver QP de punto interior

Calcule eficientemente los movimientos de control óptimos para problemas de MPC a gran escala.

Generación de código de MPC no lineales

Genere código para controladores MPC no lineales que utilizan el solver fmincon predeterminado con el algoritmo SQP.

Consulte las notas de la versión para obtener detalles sobre estas funcionalidades y las funciones correspondientes.