Contenuto principale

Modelli MIMO

Modello stato-spazio di aereo jet da trasporto

Questo esempio mostra come costruire un modello MIMO per un jet da trasporto. Dato che lo sviluppo di un modello fisico per un aereo jet richiede molto tempo, in questa sede vengono presentate solo le equazioni spazio-tempo. Consultare un qualunque manuale di aviazione standard per una spiegazione più esaustiva della fisica su cui si basa il volo degli aerei.

Il modello del jet durante il volo di crociera a MACH = 0,8 e H = 40.000 piedi è

A = [-0.0558   -0.9968    0.0802    0.0415
      0.5980   -0.1150   -0.0318         0
     -3.0500    0.3880   -0.4650         0
           0    0.0805    1.0000         0];

B = [ 0.0073         0
     -0.4750    0.0077
      0.1530    0.1430
           0         0];

C = [0     1     0     0
     0     0     0     1];

D = [0     0
     0     0];

Utilizzare i seguenti comandi per specificare questo modello stato-spazio come oggetto LTI e collegare i nomi ai rispettivi stati, input e output.

states = {'beta' 'yaw' 'roll' 'phi'};
inputs = {'rudder' 'aileron'};
outputs = {'yaw rate' 'bank angle'};

sys_mimo = ss(A,B,C,D,'statename',states,...
'inputname',inputs,...
'outputname',outputs);

È possibile visualizzare il modello LTI digitando sys_mimo.

sys_mimo
 
a = 
                      beta          yaw         roll          phi
         beta      -0.0558      -0.9968       0.0802       0.0415
          yaw        0.598       -0.115      -0.0318            0
         roll        -3.05        0.388       -0.465            0
          phi            0       0.0805            1            0
 
 
b = 
                    rudder      aileron
         beta       0.0073            0
          yaw       -0.475       0.0077
         roll        0.153        0.143
          phi            0            0
 
 
c = 
                      beta          yaw         roll          phi
     yaw rate            0            1            0            0
   bank angle            0            0            0            1
 
 
d = 
                    rudder      aileron
     yaw rate            0            0
   bank angle            0            0
 
Continuous-time model.

Il modello ha due input e due output. Le unità sono radianti per beta (angolo di slittamento laterale) e phi (angolo di inclinazione laterale) e radianti/sec per yaw (tasso di imbardata) e roll (tasso di rollio). La deflessione del timone e degli alettoni è espressa in gradi.

Come nel caso SISO, utilizzare tf per derivare la rappresentazione della funzione di trasferimento.

tf(sys_mimo)
 
Transfer function from input "rudder" to output...
               -0.475 s^3 - 0.2479 s^2 - 0.1187 s - 0.05633
 yaw rate:  ---------------------------------------------------
            s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674
 
                         0.1148 s^2 - 0.2004 s - 1.373
 bank angle:  ---------------------------------------------------
              s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674
 
Transfer function from input "aileron" to output...
            0.0077 s^3 - 0.0005372 s^2 + 0.008688 s + 0.004523
 yaw rate:  ---------------------------------------------------
            s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674
 
                        0.1436 s^2 + 0.02737 s + 0.1104
 bank angle:  ---------------------------------------------------
              s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674

Costruzione delle funzioni di trasferimento MIMO

Le funzioni di trasferimento MIMO sono array bidimensionali di funzioni di trasferimento SISO elementari. Ci sono due modi di specificare i modelli delle funzioni di trasferimento MIMO:

  • Concatenazione dei modelli delle funzioni di trasferimento SISO

  • Utilizzando tf con argomenti di array di celle

Concatenazione di modelli SISO

Considerare la seguente funzione di trasferimento a input/output singolo.

H(s)=[s1s+1s+2s2+4s+5]

È possibile specificare H (s) mediante la concatenazione dei suoi elementi SISO. Per esempio,

h11 = tf([1 -1],[1 1]);		
h21 = tf([1 2],[1 4 5]);		

oppure, in modo equivalente,

s = tf('s')
h11 = (s-1)/(s+1);
h21 = (s+2)/(s^2+4*s+5); 

può essere concatenato in modo da formare H (s).

H = [h11; h21]

Questa sintassi imita la concatenazione delle matrici standard e tende ad essere più semplice e più leggibile per i sistemi MIMO che presentano molti input e/o output.

Utilizzo della funzione tf con gli array di celle

In alternativa, per definire le funzioni di trasferimento MIMO con la funzione tf, sono necessari due array di celle (ad es. N e D) per rappresentare rispettivamente gli insiemi dei polinomi al numeratore e al denominatore. Vedere Array di celle per ulteriori dettagli sugli array di celle.

Ad esempio, per la matrice di trasferimento razionale H (s), i due array di celle N e D devono contenere le rappresentazioni riga-vettore degli elementi polinomiali di

N(s)=[s1s+2]D(s)=[s+1s2+4s+5]

È possibile specificare questa matrice di trasferimento MIMO H (s) digitando

N = {[1 -1];[1 2]};   % Cell array for N(s)
D = {[1 1];[1 4 5]}; % Cell array for D(s)
H = tf(N,D)

Questi comandi restituiscono il seguente risultato:

Transfer function from input to output...
      s - 1
 #1:  -----
      s + 1
 
          s + 2
 #2:  -------------
      s^2 + 4 s + 5

Osservare che sia N che D hanno le stesse dimensioni di H. Per una matrice di trasferimento MIMO generale H(s), gli elementi dell’array di celle N{i,j} e D{i,j} devono essere rappresentazioni di vettore riga del numeratore e del denominatore di Hij(s), il ij° elemento della matrice di trasferimento H(s).

Accesso alle coppie I/O nei sistemi MIMO

Una volta definito il sistema MIMO è possibile accedere alle coppie I/O e manipolarle specificando le coppie di input e output del sistema. Ad esempio, se sys_mimo è un sistema MIMO con due input e tre output,

sys_mimo(3,1)

estrae il sottosistema, mappando il primo input al terzo output. Gli indici di riga selezionano gli output, mentre gli indici di colonna selezionano gli input. Analogamente,

sys_mimo(3,1) = tf(1,[1 0])

ridefinisce la funzione di trasferimento tra il primo input e il terzo input come integratore.