Main Content

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

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 (θ,ϕ)=(0,15).

  • Il segnale di errore tra ϕ e ϕref 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

x˙=Ax+Bu

dove

x=[u,v,w,p,q,r,θ,ϕ]T

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

x˙=Ax+Bu+[gsinθgcosθsinϕgcosθcosϕ000qcosϕrsinϕ(qsinϕ+rcosϕ)tanθ]

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 ϕ=15 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 (θ,ϕ)=(0,15) 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.

Argomenti complementari