Model Predictive Control Toolbox

Progettazione e simulazione di controllori predittivi basati su modello

 

Il Model Predictive Control Toolbox™ mette a disposizione funzioni, un’app e blocchi Simulink® per la progettazione e la simulazione di controllori predittivi basati su modello (MPC). Il toolbox permette di specificare modelli di disturbo e impianti, orizzonti, vincoli e pesi. Tramite simulazioni ad anello chiuso, è possibile valutare le prestazioni dei controllori.

Il comportamento del controllore può, quindi, essere regolato variandone i pesi e i vincoli al momento dell’esecuzione. Per controllare un sistema non lineare, è possibile implementare MPC adattativi e gain-scheduled. Per le applicazioni a rapido passo di campionamento, è possibile generare un controllore predittivo basato su modello esplicito a partire da un controllore regolare, oppure implementare una soluzione approssimata.

Per la prototipazione rapida e l’implementazione su sistemi embedded, il toolbox supporta generazione di codice C e testo strutturato IEC 61131-3.

Per iniziare:

Progettazione di controllori predittivi basati su modello

Progetta controllori MPC per controllare sistemi MIMO soggetti a vincoli di input e di output. Esegui simulazioni ad anello chiuso per valutare le prestazioni dei controllori.

 

Progettazione MPC in MATLAB

Usa funzioni da riga di comando per progettare controllori MPC. Definisci un modello di impianto interno, regola i pesi, i vincoli e altri parametri dei controllori, poi simula la risposta del sistema ad anello chiuso per valutare le prestazioni del controllore.

Progettazione di un controllore MPC da riga di comando.

Progettazione MPC in Simulink

Modella e simula controllori MPC in Simulink usando il blocco MPC Controller e altri blocchi disponibili nel toolbox. Trova punti operativi di equilibrio e linearizza un modello Simulink per calcolare un modello iterno di impianto lineare tempo-invariante per il tuo controllore MPC, e calcola i valori nominali degli input e degli output dell’impianto usando Simulink Control Design™.

App MPC Designer

Progetta controllori MPC in modo interattivo definendo un modello di impianto interno e regolando gli orizzonti, i pesi e i vincoli. Verifica le prestazioni dei controllori utilizzando scenari di simulazione. Confronta le risposte di più controllori MPC.

Designing MPC controllers at the command line.

Applicazioni per la guida autonoma

Accelera lo sviluppo dei tuoi sistemi ADAS usando blocchi Simulink predefiniti. Usa gli esempi di riferimento per progettare rapidamente controllori ADAS. Genera codice dai blocchi Simulink per implementare controllori MPC nel veicolo.

Blocchi predefiniti

Usa i blocchi Adaptive Cruise Control System, Lane Keeping Assist System e Path Following Control System come punto di partenza per la tua applicazione ADAS e personalizza il progetto in base alle tue necessità. Genera codice dai blocchi predefiniti per implementare i controllori MPC.

Uso del blocco Simulink predefinito per la progettazione di sistemi di cruise control adattativo.

Applicazioni di riferimento

Usa le applicazioni di riferimento che ti guidano attraverso un flusso di lavoro volto alla progettazione e all’implementazione dei controllori MPC per i tuoi sistemi di guida automatica. Le applicazioni di riferimento ti mostrano anche le varie possibilità di modellazione delle parti del sistema a livelli di fedeltà diversi.

Controllori predittivi basati su modello lineare

Progetta controllori MPC per sistemi con dinamica lineare. Progetta controllori MPC adattativi e gain-scheduled per impianti con dinamica variabile in base alle condizioni operative.

MPC lineare

Progetta un controllore MPC lineare specificando un modello di impianto interno come sistema lineare tempo-invariante (LTI) dal Control System Toolbox™, oppure linearizzando un modello Simulink con Simulink Control Design. In alternativa, importa un modello creato da dati di input-output misurati usando il System Identification Toolbox™.

Specifica di un modello di impianto interno per un progetto di un controllore MPC lineare.

MPC adattativo

Progetta e simula controllori MPC adattativi utilizzando funzioni da riga di comando e il blocco Adaptive MPC Controller. Aggiorna il tuo modello di impianto a ogni fase di calcolo e invialo come input al controllore. Usa un filtro di Kalman lineare variabile nel tempo (LTV) integrato con garanzia di stabilità asintotica per la stima dello stato nei controllori MPC adattativi.

MPC gain-scheduled

Controlla impianti non lineari in svariate condizioni operative con il blocco Multiple MPC Controllers. Progetta un controllore MPC per ciascun punto operativo e passa da un controllore all’altro a tempo di esecuzione.

Uso del blocco Multiple MPC Controllers per progettare controllori MPC gain-scheduled.

Parametri di progettazione MPC, stima dello stato e verifica del progetto

Migliora in modo iterativo il progetto del tuo controllore definendo un modello di impianto interno, regolando i parametri del controllore e simulando la risposta del sistema ad anello chiuso per valutare le prestazioni del controllore stesso. Esamina il controllore per individuare possibili problemi di progettazione.

Parametri del controllore

Dopo aver definito il modello di impianto interno, completa il progetto del tuo controllore MPC specificando il tempo di campionamento, gli orizzonti di controllo e predizione, i fattori di scala, i vincoli di input e output e i pesi. Il toolbox supporta anche il softening dei vincoli oltre a pesi, e vincoli variabili nel tempo.

Specifica dei parametri del controllore nell’app MPC Designer.

Stima dello stato

Stima gli stati del controllore in base agli output misurati utilizzando lo stimatore di stato integrato. In alternativa, usa l’opzione per la stima dello stato personalizzata per fornire al controllore i valori stimati con il tuo algoritmo personalizzato.

Stima dello stato personalizzata.

Analisi dei progetti

Rileva i possibili problemi di stabilità e robustezza del tuo controllore MPC usando la funzione di diagnostica disponibile nel toolbox. Usa questo strumento di diagnostica per regolare i pesi e i vincoli del controllore in fase di progettazione del controllore stesso per evitare errori in runtime.

Miglioramento della progettazione del controller usando le raccomandazioni derivanti dal report di analisi progettuale.

Regolazione dei parametri a runtime e monitoraggio delle prestazioni

Migliora le prestazioni del controllore regolando pesi e vincoli a runtime. Analizza le prestazioni del controllore a runtime.

Regolazione dei parametri a runtime

Regola pesi e vincoli del tuo controllore MPC a runtime per ottimizzarne le prestazioni durante l’esecuzione senza doverlo riprogettare o implementare di nuovo. Esegui la regolazione del controllore a runtime sia in MATLAB che in Simulink.

Regolazione di pesi e vincoli a tempo di esecuzione.

Monitoraggio delle prestazioni a runtime

Accedi al segnale dello stato di ottimizzazione per rilevare le rare occasioni in cui un’ottimizzazione potrebbe non convergere, poi decidi se utilizzare una strategia di controllo di backup.

Rilevamento degli errori del controllore in tempo reale.

Implementazione di controllori predittivi rapidi basati su modello

Progetta, simula e distribuisci controllori MPC in applicazioni con un budget di throughput computazionale limitato.

Explicit MPC

Generate an explicit MPC controller from an implicit MPC design for faster execution. Simplify a generated explicit MPC controller for a reduced memory footprint.

Generazione di un controllore MPC esplicito a partire da un controllore implicito precedentemente progettato.

Soluzione approssimata (sub-ottimale)

Progetta, simula e distribuisci un controllore MPC con WCET (Worst-Case Execution Time) garantito usando una soluzione approssimata (sub-ottimale).

Confronto tra i tempi di esecuzione di soluzioni ottimali e approssimate (sub-ottimali).

Controllori predittivi basati su modello non lineare

Progetta controllori MPC non lineari per controllare gli impianti usando modelli predittivi, funzioni di costo, o vincoli non lineari.

Pianificazione ottimale

Usa controllori MPC non lineari per la pianificazione ottimale di applicazioni che richiedono un modello non lineare con vincoli o costi non lineari.

Ottimizzazione della traiettoria e controllo di un robot volante tramite MPC non lineare.

Controllo ad anello chiuso

Simula il controllo ad anello chiuso di impianti non lineari con vincoli e costi non lineari. Di default, i controllori MPC non lineari usano Optimization Toolbox™ per risolvere il problema di programmazione non lineare. Puoi anche specificare il tuo solutore non lineare personalizzato.

Controllo predittivo basato su modello non lineare di un reattore chimico esotermico.

MPC economico

Progetta controllori MPC economici per ottimizzare il controllore per una funzione di costo arbitraria in presenza di vincoli non lineari arbitrari. È possibile usare un modello predittivo lineare o non lineare, una funzione di costo non lineare personalizzata, e vincoli non lineari personalizzati.

Controllo MPC economico per la produzione di ossido di etilene.

Generazione di codice

Genera codice per i controllori predittivi basati su modello progettati in Simulink e MATLAB, poi distribuiscili nelle applicazioni di controllo in tempo reale.

Generazione di codice con MATLAB e Simulink

Progetta un controllore MPC in Simulink e genera codice C e testo strutturato IEC 61131-3 usando Simulink Coder™ o Simulink PLC Coder™, rispettivamente. Usa MATLAB Coder™ per generare codice C in MATLAB e distribuiscilo per il controllo in tempo reale. In alternativa, usa MATLAB CompilerTM per implementare controllori MPC.

Generazione di codice C dal blocco MPC Controller.

Solutore embedded

Genera codice dal solutore di programmazione quadratica (QP) fornito per un’implementazione efficace su un processore embedded. Distribuisci il codice generato su un numero arbitrario di processori. Usa il solutore QP fornito con una formulazione MPC standard oppure utilizzalo per risolvere problemi MPC personalizzati.

Controllore MPC personalizzato.

Solutore QP personalizzato

Usa un solutore di programmazione quadratica (QP) personalizzato di tua scelta per la simulazione e la generazione di codice.

Solutore QP personalizzato per la simulazione e la generazione di codice.

Ultime Novità

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.