Model Predictive Control Toolbox

Progettazione e simulazione di controller predittivi basati su modelli

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

Il comportamento del controller può essere regolato variandone i pesi e i vincoli al momento dell’esecuzione. Il toolbox contiene risolutori di ottimizzazione distribuibili e permette anche di usare un risolutore personalizzato. Per controllare un impianto non lineare, è possibile implementare controller MPC adattativi, gain-scheduled e non lineari. Per le applicazioni a frequenze di campionamento elevate, il toolbox consente di generare un controller predittivo esplicito basato su modelli a partire da un controller regolare, oppure di implementare una soluzione approssimata.

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

Inizia ora:

Progettazione di controller predittivi basati su modelli

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

App MPC Designer

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

Progettazione MPC in Simulink

Modella e simula controller 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 di impianto interno lineare tempo-invariante per il tuo controller MPC, quindi calcola i valori nominali degli input e degli output dell’impianto usando Simulink Control Design™.

Progettazione MPC in MATLAB

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

Progettazione di controller MPC da riga di comando.

Applicazioni per la guida autonoma

Accelera lo sviluppo dei tuoi sistemi ADAS usando blocchi Simulink predefiniti. Usa gli esempi di riferimento per progettare rapidamente controller ADAS. Genera codice dai blocchi Simulink per implementare controller 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 un’implementazione su veicolo.

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

Applicazioni di riferimento di esempio

Usa le applicazioni di riferimento di esempio che ti guidano attraverso il workflow di progettazione e implementazione dei controller MPC per i tuoi sistemi di guida autonoma. Le applicazioni di riferimento ti mostrano anche le varie possibilità di modellazione delle parti del sistema a livelli di fedeltà diversi.

Controller predittivi basati su modelli lineari

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

MPC lineare

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

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

MPC adattivo

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

MPC gain-scheduled

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

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

Specifica dei parametri MPC, stima dello stato e verifica del progetto

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

Parametri del controller

Dopo aver definito il modello di impianto interno, completa il progetto del tuo controller 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 controller nell’app MPC Designer.

Stima dello stato

Stima gli stati del controller in base agli output misurati utilizzando lo stimatore di stato integrato. In alternativa, usa un algoritmo personalizzato per la stima dello stato.

Stima personalizzata dello stato.

Analisi dei progetti

Rileva i possibili problemi di stabilità e robustezza del tuo controller MPC usando la funzione di diagnostica integrata. Usa i risultati ottenuti per regolare i pesi e i vincoli del controller in fase di progettazione del controller stesso per evitare errori in runtime.

Miglioramento della progettazione del controller usando i suggerimenti derivanti dal report di analisi progettuale.

Regolazione dei parametri e monitoraggio delle prestazioni in runtime

Migliora le prestazioni del controller regolando pesi e vincoli durante l’esecuzione. Analizza le prestazioni dei controller in runtime.

Regolazione dei parametri in runtime

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

Regolazione di pesi e vincoli in fase di runtime.

Monitoraggio delle prestazioni in runtime

Accedi al segnale dello stato di ottimizzazione per rilevare le rare occasioni in cui un’ottimizzazione potrebbe non convergere. Usa queste informazioni per scegliere la strategia di controllo di backup da adottare.

Rilevamento degli errori del controller in tempo reale. 

Implementazione di controller predittivi rapidi basati su modelli

Progetta, simula e distribuisci controller MPC in applicazioni con risorse computazionali limitate

MPC esplicito

Genera un controller MPC esplicito a partire da un progetto MPC implicito per un’esecuzione più rapida. Semplifica un controller MPC esplicito generato per un footprint di memoria dalle dimensioni ridotte.

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

Soluzione approssimata (sub-ottimale)

Progetta, simula e distribuisci un controller 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).

Controller predittivi basati su modelli non lineari

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

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

Controllo in retroazione

Simula il controllo ad anello chiuso di impianti non lineari con vincoli e costi non lineari. Per impostazione predefinita, i controller MPC non lineari usano Optimization Toolbox™ per risolvere il problema di programmazione non lineare. È anche possibile specificare un risolutore non lineare personalizzato.

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

MPC economico

Progetta controller MPC economici per ottimizzare il controller 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 controller predittivi basati su modelli progettati in Simulink e MATLAB, poi distribuiscili nelle applicazioni di controllo in tempo reale.

Generazione di codice con MATLAB e Simulink

Progetta un controller MPC in Simulink e genera codice C o testo strutturato IEC 61131-3 usando rispettivamente Simulink Coder™ o Simulink PLC Coder™. Usa MATLAB Coder™ per generare codice C in MATLAB e distribuiscilo per il controllo in tempo reale. In alternativa, usa MATLAB Compiler™ per pacchettizzare e condividere il tuo controller MPC come applicazione standalone.

Generazione di codice C dal blocco MPC Controller.

Risolutori integrati

Genera codice dai risolutori di programmazione quadratica (QP) active-set e interior-point forniti per un’implementazione efficace su processori embedded. Per problemi non lineari, usa un solutore di programmazione quadratica sequenziale (SQP) presente in Optimization Toolbox per effettuare simulazioni e generare codice. Distribuisci il codice generato su un numero arbitrario di processori.

Risolutori integrati.

Risolutori personalizzati

Usa i risolutori di programmazione non lineare (NLP) e Embotech FORCES PRO QP per simulare e generare codice per controller MPC lineari e non lineari. In alternativa, usa risolutori QP e NLP personalizzati per le simulazioni e la generazione di codice.

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