Contents — find the section you need

Il controllo predittivo basato su modello (MPC) prevede cosa farà un comando attuale nei passaggi successivi, seleziona una sequenza di comandi che bilancia al meglio il tracciamento e lo sforzo, rispettando al contempo i vincoli, applica solo il primo comando, quindi misura e risolve nuovamente. Questo ciclo a orizzonte mobile è utile quando gli input hanno limiti, le variabili di stato hanno limiti di sicurezza, gli input interagiscono o la curvatura e il ritardo futuri sono rilevanti. Trova applicazione in diversi ambiti, dagli impianti di processo ai veicoli, dal movimento dei robot ai sistemi energetici.

L'MPC non è un sostituto universale del PID. Un ottimizzatore predittivo con una stima dello stato tardiva, un modello errato, un problema irrealizzabile o una scadenza non rispettata non diventa sicuro solo perché i suoi vincoli matematici sembrano completi. Molte architetture solide mantengono cicli di corrente/velocità PID veloci al di sotto dell'MPC per il coordinamento di traiettorie, energia, calore o variabili multiple. Leggete ROS 2 Primer per i limiti di esecuzione e Visual SLAM Primer per le ipotesi di temporizzazione e localizzazione che alimentano un controller per robot mobili.

Conclusioni pratiche

  • Costruite l'orizzonte N a partire dallo stato x e dall'input u, e inserite i vincoli di input, frequenza di input, stato e sicurezza nell'ottimizzazione, anziché troncare un comando non vincolato in seguito.

  • Specificate cosa succede quando il risolutore è in ritardo, numerico o non fattibile prima dell'implementazione. Il comportamento di scadenza, di fallback e di arresto indipendente fanno parte del controller.

  • Iniziate con il modello più piccolo che predice la scala temporale rilevante. Un modello più grande può peggiorare i tempi di esecuzione, l'errore di identificazione e la manutenzione senza migliorare le decisioni.

  • Regolare l'orizzonte e i pesi in base a priorità operative esplicite: margine di sicurezza, tracciamento, energia, usura, comfort e calcolo, non aumentando ciecamente un peso di tracciamento.

Intuizione: decidere di frenare prima della curva

Un semplice controllore a feedback può sterzare un veicolo dopo aver rilevato un errore laterale. L'MPC può considerare contemporaneamente la curva in arrivo, la velocità, il campo di sterzata, i limiti degli pneumatici, l'accelerazione e l'altezza libera dagli ostacoli. Valuta le possibili sequenze di sterzata e accelerazione, ne sceglie una che rimane all'interno della regione fattibile, esegue solo la prima manovra e poi scarta la vecchia previsione quando arriva una nuova misurazione. L'MPC non è quindi un indovino. È un controllo a feedback che testa ripetutamente ipotesi di breve durata sul futuro.

Flusso del segnale e orizzonte sfuggente

Diagram 1 · Use the button to switch views
MPC: reference, model, constraints and estimated state feed optimization; apply the first move and observe again.
Riferimento, modello, vincoli e stato stimato entrano nell'ottimizzatore separatamente. Il percorso tratteggiato restituisce nuove osservazioni per la successiva risoluzione. Open figura a grandezza naturale

Diagramma: Duskcoil, concettuale piuttosto che misurato. Una traiettoria prevista è un candidato basato sul modello e deve essere aggiornata tramite osservazione dopo l'applicazione di un'azione.

Una formulazione MPC lineare minimale

Per il modello lineare discreto

x_{k+1}=Ax_k+Bu_k+Ew_k,\qquad y_k=Cx_k

x è lo stato, u l'input, w il disturbo e y l'output. Su un orizzonte di previsione N per riferimento r , un costo quadratico comune è

J=\sum_{i=0}^{N-1}\left(\lVert x_{k+i}-x_{ref,k+i}\rVert_Q^2+\lVert u_{k+i}\rVert_R^2+\lVert\Delta u_{k+i}\rVert_S^2\right)+\lVert x_{k+N}-x_{ref,k+N}\rVert_P^2

dove \Delta u_k=u_k-u_{k-1} . Q,R,S,P esprimono l'importanza del tracciamento dello stato, dell'ampiezza del comando, del cambiamento brusco e del comportamento terminale. Queste sono priorità ingegneristiche in forma matematica. Penalizzare solo l'errore laterale, ad esempio, può produrre uno sterzo violento inaccettabile per i passeggeri, gli pneumatici o un attuatore.

La differenza essenziale rispetto a un regolatore non vincolato è l'insieme esplicito delle condizioni ammissibili:

u_{min}\le u_{k+i}\le u_{max},\quad \Delta u_{min}\le\Delta u_{k+i}\le\Delta u_{max},\quad x_{min}\le x_{k+i}\le x_{max}

I limiti possono rappresentare sterzo, corrente, temperatura, angolo del giunto, stato della batteria, pressione o distanza dagli ostacoli. I vincoli possono essere in conflitto. Mantenere un limite inviolabile di collisione o hardware; Utilizzare un margine di sicurezza non negativo \epsilon\ge0 solo per vincoli deliberatamente rilassabili e penalizzarlo, ad esempio \rho\lVert\epsilon\rVert^2. Registrare quando è stato utilizzato il margine di sicurezza: un vincolo "morbido" è un compromesso dichiarato, non la prova che la violazione sia innocua.

Stima, ritardo e discrepanza del modello

MPC effettua previsioni a partire da x_k, ma questo stato è normalmente una stima derivante dalla fusione dei sensori. Per un robot mobile che utilizza SLAM visivo, la latenza di localizzazione, i salti di rilocalizzazione e i frame incoerenti compromettono lo stato iniziale di ogni ottimizzazione; vedere Guida introduttiva a SLAM visivo. Risolvere un problema perfetto con uno stato precedente e un nuovo riferimento produce un comando fisicamente ritardato.

La discrepanza include attrito, carico utile, vento, slittamento degli pneumatici, capacità termica variabile e flessione non modellata. Le risposte includono l'aumento dello stato di disturbo o l'azione integrale, aggiornamenti dei parametri online, modelli multipli, margini MPC robusti/a tubo e un ciclo interno stabilizzato veloce. Nessuna di queste soluzioni sostituisce il comportamento di arresto indipendente quando la discrepanza è al di fuori dell'inviluppo di progetto.

Orizzonte di sintonizzazione e pesi

Scegliere il tempo di campionamento T_s e l'orizzonte N in modo che NT_s copra il ritardo rilevante, la distanza di arresto, il transitorio dominante e la curvatura del percorso, ma non così tanto da rendere dominanti l'errore di runtime e l'errore del modello a lungo termine. Un orizzonte di controllo più breve può mantenere costanti gli input successivi e ridurre le variabili decisionali.

Sintonizzare in quest'ordine: fissare le unità e i limiti di sicurezza rigidi; scegliere i pesi di tracciamento Q per l'attività operativa; aumentare R e S per gestire energia, usura e fluidità; Misurare quindi il tempo di risoluzione nel caso peggiore e l'infattibilità in presenza di rumore, carico, latenza e disturbi. Testare sia un orizzonte temporale breve N che un orizzonte temporale lungo prima di selezionare il punto operativo. Aumentare Q fino a quando il sistema "sembra veloce" può far sì che l'ottimizzatore rimanga sui limiti dei vincoli rigidi, lasciando poco margine anche quando i vincoli sono soddisfatti.

Osservazione Causa plausibile Ispezionare prima Azione tipica
In fase avanzata di una curva orizzonte temporale troppo breve; ritardo di stato percorso previsto vs. percorso misurato, timestamp regolare l'orizzonte, velocizzare il piano, gestire il ritardo
Comandi irregolari S basso; stima rumorosa \Delta u e traccia del sensore aumentare la penalità di movimento; migliorare lo stimatore/filtro

Slack/limiti frequenti | discrepanza; nessun margine | Margine di flessibilità, vincoli attivi, disturbo | aggiungi margine, modello di disturbo, riferimento più delicato |

| Nessuna soluzione | vincoli contrastanti | stato del solutore e set attivo | definisci una politica non fattibile; attenua solo i limiti consentiti | | Scadenza non rispettata | problema troppo grande/variabile | tempo di risoluzione nel caso peggiore | riduci modello/orizzonte; configura il solutore |

Relazione con PID e sicurezza

Un ciclo MPC potrebbe funzionare a 10-100 Hz per fornire riferimenti di velocità, assetto o traiettoria, mentre i driver dei motori o i cicli PID ros2_control chiudono corrente, velocità o posizione a una frequenza più elevata. L'MPC deve sapere cosa può effettivamente fornire il ciclo interno: saturazione, ritardo, timeout e limiti di inseguimento. Se l'ottimizzatore è in ritardo o non è fattibile, il ciclo inferiore necessita di un riferimento sicuro definito, come velocità zero, decelerazione controllata o mantenimento.

Le protezioni di sicurezza devono rimanere indipendenti dall'ottimizzatore: arresto di emergenza, rilevamento delle collisioni, limiti di marcia rigidi, protezione da sovracorrente/sovratemperatura, monitoraggio della velocità e sistemi di controllo della comunicazione. Definire una risposta per una soluzione mancante, un errore numerico, uno stato obsoleto, un riferimento non valido e un errore dell'estimatore. La fattibilità nel modello di ottimizzazione non è la stessa cosa della sicurezza nel mondo reale.

Esempi attuali di software, prodotti e ricerche

Il controllo predittivo basato su modello (MPC) si è esteso dalle industrie a processo continuo ai veicoli, alla robotica e alla gestione energetica. Un'implementazione implementata include un risolutore, l'identificazione del modello, la stima dello stato, il monitoraggio e la gestione delle scadenze, non solo una funzione di costo. OSQP pubblica un risolutore open-source per la programmazione quadratica convessa e materiale orientato all'MPC. La panoramica sull'MPC di MathWorks descrive la struttura di predizione, vincolo e ottimizzazione ripetuta. Si tratta di riferimenti implementativi principali, non di approvazioni di prodotti.

Dal punto di vista della robotica, ros2_control gestisce le interfacce hardware, i cicli di vita dei controllori, le problematiche relative agli aggiornamenti asincroni e il concatenamento dei controllori. L'inserimento di un nodo MPC in ROS 2 non garantisce di per sé la pianificazione in tempo reale, l'allineamento dei timestamp stato/riferimento o un ciclo inferiore indipendente e sicuro. La ricerca attuale include MPC non lineare, dinamiche apprese, MPC robusto in termini di distribuzione e ottimizzazione congiunta percezione-pianificazione; i limiti pratici rimangono quelli relativi a tempo di esecuzione, interpretabilità, incertezza e sicurezza.

Lista di controllo per l'implementazione

  1. Definire unità, frame, frequenze di aggiornamento, latenza, freschezza, orizzonte N e peso di movimento S per stato, input, disturbo e riferimento.

  2. Separare i vincoli fisici rigidi da quelli operativi deliberatamente flessibili.

  3. Testare il tempo di risoluzione nel caso peggiore, il timeout, l'infattibilità e il fallback in caso di errore numerico.

  4. Registrare previsioni, misurazioni, sequenza di input, vincoli attivi, slack e stato del solutore su un singolo ciclo di clock.

  5. Iniettare disallineamenti, disturbi, slittamenti, ritardi/perdite dei sensori e perdite di comunicazione.

  6. Assicurarsi che l'MPC comprenda la saturazione del ciclo interno e che la protezione di arresto indipendente funzioni in caso di errore dell'MPC, di ROS 2 o della stima.

Casi limite da testare prima in simulazione

L'MPC può produrre traiettorie interessanti in simulazione, quindi le sole condizioni ordinarie possono nascondere ipotesi pericolose. Automatizzare bruschi cambiamenti di riferimento, variazioni di attrito e carico utile, saturazione degli attuatori, misurazioni ritardate o mancanti e scadenze del solutore intenzionalmente brevi. Registrare quale vincolo si è attivato, quanti cicli sono stati necessari per entrare in un fallback sicuro e quale segnale ha giustificato la decisione. Passare all'hardware a bassa velocità e generare output con un ampio margine, monitorando residui, tempo di saturazione, slack e distanza di arresto anziché solo il flag di successo del solutore.

Verifica la tua comprensione
Viene eseguita l'intera sequenza di input ottimizzata?

Di solito viene applicato solo il primo input, quindi il problema viene risolto nuovamente utilizzando nuove osservazioni. Questo include le deviazioni dalla previsione.

Riferimenti

Related reading

Explore another aspect of this fieldLab MPC — ririsolvi una sequenza di curvatura entro un orizzonte e vincoli di sterzataExplore another aspect of this fieldLab di confronto tra inseguitori di percorso — esegui PP, APP, RPP, Stanley e MPC nelle stesse condizioniExplore another aspect of this fieldLab Pure Pursuit — confrontare l'inseguimento del percorso a lookahead fisso