Progettazione di un servo controller LQR in Simulink
La seguente figura mostra un diagramma a blocchi di Simulink® relativo a un problema di tracking nel progetto di un pilota automatico per aereo. Per aprire il diagramma, digitare lqrpilot
alla comparsa del prompt MATLAB®.
Le principali caratteristiche del diagramma da notare sono le seguenti:
Il blocco Dinamiche linearizzate contiene la cellula linearizzata.
sf_aerodyn
è un blocco di funzione S contenente le equazioni non lineari per .Il segnale di errore tra e viene fatto passare per un integratore. Questo aiuta a portare l’errore a zero.
Equazioni stato-spazio per una cellula
Iniziare dall’equazione stato-spazio standard
dove
Le variabili u, v e w sono le tre velocità rispetto al telaio del corpo, indicate di seguito.
Contesto di coordinate del corpo per un aeromobile
Le variabili e sono il rollio e il beccheggio, mentre p, q e r sono rispettivamente il rollio, il beccheggio e i tassi d’imbardata.
Le dinamiche dell’aeromobile sono non lineari. La seguente equazione mostra i componenti non lineari aggiunti all’equazione stato-spazio.
Componente non lineare dell’equazione stato-spazio
Per visualizzare i valori numerici di A e B, digitare
load lqrpilot A, B
alla comparsa del prompt MATLAB.
Trimming
Ai fini della progettazione LQG, le dinamiche non lineari sono sottoposte a trimming a e le variabili p, q, r e θ sono impostate a zero. Dato che u, v e w non entrano nel termine non lineare della figura precedente, si ottiene una linearizzazione intorno a con tutti i restanti stati impostati a zero. La matrice di stato del modello linearizzato che ne risulta è denominata A15
.
Definizione del problema
L’obiettivo è di eseguire una virata coordinata e costante, come illustrato in questa figura.
L’aereo esegue una virata a 60°
Per raggiungere questo obiettivo è necessario progettare un controller che comandi una virata costante tramite l’esecuzione di un rollio di 60°. Inoltre, assumiamo che θ, l’angolo di beccheggio, debba rimanere il più vicino possibile a zero.
Risultati
Per calcolare la matrice di guadagno LQG, K
, digitare
lqrdes
alla comparsa del prompt MATLAB. Quindi, avviare il modello lqrpilot
con il modello lineare, sf_aerodyn
, selezionato.
Questa figura mostra la risposta di al comando a gradino di 60°.
Tracking del comando di rollio a gradino
Come si può vedere, il sistema traccia il rollio a 60° che è stato comandato in circa 60 secondi.
Un altro obiettivo era di mantenere θ, l’angolo di rollio, ad un valore relativamente basso. Questa figura mostra le prestazioni del controller LQG.
Minimizzazione dello spostamento nell’angolo di beccheggio, Theta
Infine, questa figura mostra gli input di controllo.
Input di controllo per il problema di tracking LQG
Provare a regolare le matrici Q
e R
in lqrdes.m
e ad esaminare gli input di controllo e gli stati di sistema, assicurandosi di rieseguire lqrdes
per aggiornare la matrice di guadagno K
. Attraverso una serie di tentativi ed errori, è possibile che si riesca a migliorare il tempo di risposta di questa progettazione. Confrontare, inoltre, la progettazione lineare e non lineare per osservare gli effetti delle non linearità sulla performance del sistema.