Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Model Predictive Control (MPC)

Il controllo predittivo basato su modello (MPC) pianifica una breve sequenza di azioni con un modello, ne applica solo la prima e ripianifica a ogni passaggio. Panoramica dei componenti, degli impieghi e del codice.

Il controllo predittivo del modello (MPC) è un metodo di controllo che usa un modello del sistema per prevederne il comportamento su un breve orizzonte futuro, sceglie la sequenza di azioni che raggiunge meglio un obiettivo rispettando i vincoli, applica soltanto la prima azione e poi ripete l’intero processo al passo temporale successivo con nuove misurazioni. Questo ciclo di pianificazione, azione e ripianificazione è detto controllo a orizzonte mobile e consente al controllore di anticipare ciò che sta per accadere, anziché reagire soltanto all’errore corrente. L’MPC si è sviluppato alla fine degli anni Settanta nell’ambito della raffinazione petrolifera e della lavorazione chimica, dove il Dynamic Matrix Control di Shell fu tra le prime applicazioni industriali; oggi guida robot, veicoli autonomi e sistemi di climatizzazione degli edifici.

Componenti di un controllore MPC#

Ogni controllore MPC combina quattro componenti:

  • Modello della dinamica: Prevede lo stato successivo a partire dallo stato corrente e da un’azione, per esempio come cambiano la posizione e l’orientamento di un’auto in base all’angolo di sterzata. Può derivare da equazioni fisiche, dall’identificazione del sistema su dati registrati o da una rete neurale addestrata su traiettorie registrate.
  • Funzione di costo: valuta una traiettoria prevista, di solito penalizzando la distanza dall'obiettivo, il consumo energetico e le variazioni brusche dei controlli.
  • Vincoli: Limiti che ogni piano deve rispettare, come la coppia massima del motore, i limiti di velocità e le zone di esclusione attorno agli ostacoli. La gestione esplicita dei vincoli è il principale vantaggio dell’MPC rispetto al controllo PID classico, che reagisce agli errori solo dopo che si sono verificati e non può anticipare un limite.
  • Ottimizzatore: Cerca la sequenza di azioni migliore all’interno dell’orizzonte a ogni passaggio di controllo.

Il modello determina la difficoltà dell’ottimizzazione. Un modello lineare con un costo quadratico diventa un problema di programmazione quadratica, che i solver dedicati risolvono in millisecondi o meno; i modelli non lineari richiedono solver di MPC non lineare, in genere abbinati a un filtro di Kalman esteso per stimare lo stato, oppure a una ricerca basata sul campionamento. A ogni passaggio di controllo, l’ottimizzatore esegue un ciclo interno di previsione e miglioramento dei piani candidati, mentre il controllore esegue un ciclo esterno che applica un’azione e riparte dallo stato appena misurato:

La lunghezza dell’orizzonte è la principale scelta di regolazione. Un orizzonte più lungo consente a un veicolo di frenare in anticipo prima di una curva stretta, ma ogni passaggio aggiuntivo aumenta il calcolo e accumula l’errore di previsione del modello; inoltre, l’intera ottimizzazione deve terminare entro un periodo di controllo.

Orizzonte mobile nel codice#

Il frammento seguente controlla un carrello che deve raggiungere la posizione 5 e fermarsi, con un'accelerazione limitata a più o meno 1. A ogni passo campiona 500 piani di accelerazione casuali, predice la traiettoria di ciascun piano con la dinamica del carrello, esegue la prima azione del piano meno costoso e ricalcola il piano a partire dal nuovo stato:

import numpy as np

rng = np.random.default_rng(0)
position, velocity, target = 0.0, 0.0, 5.0
dt, horizon = 0.1, 30

for _ in range(100):
    # Sample 500 candidate plans of accelerations within the actuator limit of +/-1
    plans = rng.uniform(-1, 1, size=(500, horizon))
    # Predict every plan's trajectory with the cart's dynamics model
    v = velocity + dt * plans.cumsum(axis=1)
    p = position + dt * v.cumsum(axis=1)
    # Cost: distance from the target at each step plus speed at the end of the horizon
    cost = ((p - target) ** 2).sum(axis=1) + 10 * v[:, -1] ** 2
    # Apply only the first action of the cheapest plan, then replan from the new state
    velocity += dt * plans[cost.argmin(), 0]
    position += dt * velocity

print(f"position: {position:.2f}, velocity: {velocity:.2f}")

Dopo 10 secondi simulati, il carrello si trova alla posizione 5.04 con una velocità di 0.04. Nessun piano casuale è valido da solo, ma eseguire un passaggio e ripianificare a partire dallo stato misurato corregge continuamente gli errori. Questo approccio, detto campionamento casuale, è il metodo più semplice della famiglia MPC basata sul campionamento, che comprende anche il metodo dell’entropia incrociata e il controllo a integrale di percorso predittivo del modello (MPPI), usato dai ricercatori di Georgia Tech per far correre un’auto da rally in scala 1:5 su una pista sterrata.

MPC in impianti, robot, auto ed edifici#

  • Industrie di processo: raffinerie, impianti chimici e centrali elettriche usano l'MPC per mantenere temperature, pressioni e qualità dei prodotti vicino ai limiti che massimizzano la produttività: il contesto in cui il metodo è nato.
  • Robot con zampe: Il Cheetah 3 del MIT correva e manteneva l’equilibrio con un MPC convesso che ricalcolava le forze di reazione al suolo molte volte al secondo; in seguito il MIT ha rilasciato quel controllore come software open source per il suo Mini Cheetah.
  • Guida: I controllori di tracciamento del percorso nelle auto a guida autonoma usano l’MPC per seguire una traiettoria pianificata in modo fluido, rispettando i limiti di sterzata, accelerazione e comfort.
  • Edifici: i controllori di riscaldamento e raffreddamento predicono le temperature degli ambienti con ore di anticipo, usando le previsioni meteorologiche e di occupazione per raffreddarli o riscaldarli in anticipo, quando l'energia costa meno.
  • Controllo PID: Un controllore PID calcola l’uscita in base all’errore corrente, al suo integrale e alla sua velocità di variazione. È semplice ed economico, ma non dispone di un modello del futuro né di una nozione dei vincoli.
  • Regolatore lineare quadratico (LQR): LQR trova in forma chiusa la legge di retroazione ottimale per un sistema lineare con un costo quadratico su un orizzonte infinito. L’MPC risolve online una versione a orizzonte finito, il che gli consente di imporre vincoli e gestire modelli non lineari.
  • Apprendimento per rinforzo: L’RL apprende una policy dall’esperienza prima della distribuzione; in seguito, scegliere un’azione richiede un solo passaggio in avanti rapido. L’MPC risolve online una nuova ottimizzazione usando un modello esplicito.

I due approcci si stanno integrando sempre più. Il deep reinforcement learning basato su modello apprende un modello del mondo e pianifica al suo interno con l’MPC; metodi come TD-MPC2 pianificano in uno spazio latente appreso, mentre una funzione di valore appresa valuta ciò che accade oltre la fine del breve orizzonte. I modelli di dinamica appresi sono una forma di modellazione predittiva e la loro accuratezza lungo l’orizzonte determina quanto avanti un simile controllore possa pianificare in modo utile.

Percezione per l’MPC#

Un controllore MPC pianifica bene solo quanto riesce a percepire; in un sistema di IA fisica, come un robot che si muove tra le persone, il suo stato deve includere la posizione delle persone e la direzione in cui si stanno muovendo. Una fotocamera che esegue Ultralytics YOLO26 in modalità di tracking fornisce una bounding box e un ID di tracking persistente per ogni persona in ogni fotogramma. Combinando queste tracce con la stima della profondità o con la calibrazione della fotocamera e un filtro di Kalman, si ottengono le posizioni e le velocità degli ostacoli che i vincoli del controllore devono evitare.

Esplora le soluzioni

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini aeree e riprese da drone in informazioni utili in tempo reale per agricoltura, acquacoltura, conservazione e analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Applica la visione artificiale nel settore aerospaziale con Ultralytics YOLO per l'ispezione degli aeromobili, il rilevamento di FOD sulle piste, le operazioni di terra aeroportuali e il rilevamento di difetti nei materiali compositi.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning