Tecniche di Ottimizzazione per il Controllo

Anno accademico 2026/2027 - Docente: LUCIA VALENTINA GAMBUZZA

Risultati di apprendimento attesi

Conoscenza e capacità di comprensione
Conoscenza dei fondamenti della teoria dell'ottimizzazione: funzioni obiettivo, vincoli, condizioni di ottimalità, dualità e condizioni di Karush–Kuhn–Tucker. Comprensione della formulazione del controllo ottimo continuo e del Regolatore Lineare Quadratico (LQR), inclusi l'Hamiltoniana, l'equazione di Hamilton–Jacobi–Bellman e l'equazione di Riccati. Conoscenza dei principali algoritmi numerici di ottimizzazione (gradient descent, metodo di Newton, metodi interior-point) applicati a problemi di controllo. Conoscenza dei principi del Model Predictive Control: orizzonte di predizione, vincoli su stato e controllo, stabilità, varianti esplicita/implicita.
Capacità di applicare conoscenza e comprensione
Capacità di formulare e risolvere problemi di ottimizzazione vincolata (QP/NLP) con strumenti software (MATLAB: quadprog, fmincon). Capacità di progettare un regolatore LQR per sistemi lineari e di confrontarne le prestazioni con un controllore PID. Capacità di implementare un controllore MPC per sistemi SISO e MIMO, anche mediante toolbox dedicati. Capacità di discretizzare un modello dinamico e implementare un controllore ottimo (LQR o MPC a orizzonte finito) su microcontrollore.
Autonomia di giudizio
Lo studente è in grado di scegliere la tecnica di controllo ottimo più adeguata (LQR vs MPC) in funzione dei vincoli del sistema e delle risorse computazionali disponibili, e di valutare criticamente i compromessi tra ottimalità, robustezza e complessità computazionale di una soluzione progettata.
Abilità comunicative
Lo studente è in grado di presentare, in forma scritta e orale, la formulazione di un problema di controllo ottimo e i risultati di un progetto di confronto tra tecniche di controllo, anche a un pubblico con competenze di base in automatica
Capacità di apprendere
Lo studente acquisisce un metodo per affrontare in autonomia nuove tecniche di ottimizzazione e controllo non trattate esplicitamente a lezione, a partire dai fondamenti teorici del corso, ed è in grado di orientarsi nella letteratura tecnica e nella documentazione di toolbox e piattaforme (MATLAB, Arduino/ESP32) per approfondire e aggiornare le proprie competenze.

Modalità di svolgimento dell'insegnamento

L'insegnamento si svolge attraverso una combinazione di Didattica Erogativa (DE) e Didattica Interattiva (DI).

La Didattica Erogativa comprende lezioni frontali dedicate alla presentazione dei concetti teorici, delle metodologie matematiche e degli algoritmi affrontati nel corso.

La Didattica Interattiva comprende esercitazioni guidate, attività applicative e discussione di problemi ed esempi. Una parte significativa delle attività applicative è svolta mediante MATLAB, utilizzato come ambiente per la modellistica, la simulazione, l'analisi dei sistemi e la soluzione di problemi di ottimizzazione.

Le esercitazioni sono finalizzate a sviluppare la capacità di trasferire le conoscenze teoriche alla soluzione di problemi concreti. In particolare, vengono proposti problemi nei quali lo studente è chiamato a:

formulare matematicamente il problema;

selezionare il metodo di soluzione appropriato;

implementare la procedura mediante MATLAB;

analizzare e interpretare i risultati;

discutere i limiti e le caratteristiche della soluzione ottenuta.

L'organizzazione delle attività didattiche è pertanto finalizzata a garantire la coerenza tra gli obiettivi formativi e le modalità di insegnamento, integrando l'acquisizione delle conoscenze teoriche con lo sviluppo delle competenze applicative.

Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto sopra dichiarato, al fine di rispettare il programma previsto e riportato nel presente syllabus.

Prerequisiti richiesti

Algebra lineare (spazi vettoriali, autovalori, matrici definite positive) e analisi matematica (funzioni di più variabili, gradiente, Hessiana). Nozioni di base di Controlli Automatici (sistemi lineari, rappresentazione in spazio di stato, stabilità). Conoscenza di base di un linguaggio di programmazione (MATLAB e/o Python).

Frequenza lezioni

La frequenza non è obbligatoria ma fortemente consigliata.

Contenuti del corso

I. Richiami di ottimizzazione
Problemi di ottimizzazione: funzioni obiettivo, vincoli. Ottimizzazione non vincolata: condizioni di ottimalità, gradiente, Hessiana. Ottimizzazione vincolata: moltiplicatori di Lagrange, condizioni KKT. Convessità e problemi quadratici.
II. Controllo ottimo continuo e Regolatore Lineare Quadratico (LQR)
Formulazione del problema di controllo ottimo, Hamiltoniana, equazione di Hamilton–Jacobi–Bellman. Problema LQ continuo e discreto. Equazione di Riccati (differenziale e algebrica). Proprietà del regolatore LQR e scelta delle matrici Q e R. Estensioni: tracking LQ.
III. Ottimizzazione numerica per il controllo
Discretizzazione dei sistemi dinamici. Metodi di ottimizzazione numerica: gradient descent, metodo di Newton, metodi interior-point. Quadratic Programming e Nonlinear Programming nel controllo. Complessità computazionale.
IV. Model Predictive Control (MPC)
Principio dell'MPC. Orizzonte di predizione e funzione di costo. Vincoli su stato e controllo. Stabilità dell'MPC. MPC esplicito vs implicito. MPC lineare.
V. Implementazione su microcontrollore
Piattaforme Arduino/ESP32. Uso di un sensore semplice o di un sistema emulato (motore DC, sistema massa–molla virtuale). Discretizzazione del modello e implementazione di un controllore LQR oppure MPC a orizzonte finito. Risoluzione del problema di ottimizzazione offline (precalcolo dei guadagni) o online semplificata. Test sperimentale e analisi delle prestazioni.

Testi di riferimento

1. Boyd S., Vandenberghe L., Convex Optimization, Cambridge University Press (disponibile online: https://web.stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf)

2. Nocedal J., Wright S., Numerical Optimization, Springer

3. Lewis F.L., Vrabie D., Syrmos V.L., Optimal Control, Wiley

4. Rawlings J.B., Mayne D.Q., Diehl M., Model Predictive Control: Theory, Computation, and Design

5. Materiale didattico (slide, dispense, codice MATLAB) fornito dal docente

Programmazione del corso

 ArgomentiRiferimenti testi
1Richiami di ottimizzazione — funzioni obiettivo e vincoli, condizioni di ottimalità, moltiplicatori di Lagrange e condizioni KKT, convessità, problemi quadratici; esercitazione: QP in MATLAB (quadprog, fmincon)(8h teoria+2pratica)
2Controllo ottimo continuo e LQR — Hamiltoniana, HJB, problema LQ continuo/discreto, equazione di Riccati, scelta di Q e R, tracking LQ; esercitazioni: controllo ottimo di sistemi lineari semplici, progetto LQR in MATLAB e confronto con PID(10h teoria+2pratica)
3Ottimizzazione numerica per il controllo — discretizzazione, gradient descent, Newton, interior-point, QP/NLP nel controllo, complessità computazionale; esercitazione: implementazione di un problema di controllo come QP, confronto algoritmi(8h teoria+2pratica)
4Model Predictive Control — principio, orizzonte e costo, vincoli, stabilità, MPC esplicito/implicito, MPC lineare; esercitazioni: MPC per sistemi SISO/MIMO, toolbox MPC MATLAB(9h teoria+2pratica)
5Implementazione su microcontrollore — Arduino/ESP32, discretizzazione e implementazione di LQR o MPC a orizzonte finito, risoluzione offline/online, test sperimentale (7pratica)

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L'esame prevede una prova orale sui contenuti teorici dei moduli I–IV, e un progetto finale consistente nel confronto tra un controllore LQR e un controllore MPC sullo stesso sistema dinamico a scelta dello studente, con consegna del codice sviluppato e di una breve relazione.

Esempi di domande e/o esercizi frequenti

  1. Derivare le condizioni KKT per un semplice problema di ottimizzazione vincolata.
  2. Derivare la soluzione del problema LQR tramite l'equazione di Riccati per un dato sistema lineare.
  3. Formulare un problema di controllo con vincoli come problema di Quadratic Programming.
  4. Spiegare la differenza tra MPC esplicito e implicito, e i relativi compromessi in termini di risorse computazionali.
  5. Progettare un semplice controllore MPC con vincoli sull'ingresso per un sistema del primo o secondo ordine.
  6. Discutere le scelte progettuali per l'implementazione di un controllore ottimo su un microcontrollore a risorse limitate.