Main Content

minreal

Realizzazione minima o cancellazione del polo zero

Sintassi

sysr = minreal(sys)
sysr = minreal(sys,tol)
[sysr,u] = minreal(sys,tol)
... = minreal(sys,tol,false)
... = minreal(sys,[],false)

Descrizione

sysr = minreal(sys) elimina gli stati non controllabili o non osservabili nei modelli stato-spazio o cancella le coppie con polo zero nelle funzioni di trasferimento o nei modelli a guadagno zero. L'output sysr ha un ordine minimo e presenta le stesse caratteristiche di risposta del modello originale sys.

sysr = minreal(sys,tol) specifica la tolleranza utilizzata per l'eliminazione degli stati o la cancellazione dei poli zero. Il valore predefinito è tol = sqrt(eps); l'aumento di questa tolleranza costringe a ulteriori cancellazioni.

[sysr,u] = minreal(sys,tol) restituisce, per il modello stato-spazio sys, una matrice ortogonale U tale che (U*A*U',U*B,C*U') è una decomposizione di Kalman di (A,B,C)

... = minreal(sys,tol,false) e ... = minreal(sys,[],false) disabilitano l'output verboso della funzione. Per impostazione predefinita, minreal visualizza un messaggio che indica il numero di stati rimossi da un modello stato-spazio sys.

Esempi

I comandi

g = zpk([],1,1);
h = tf([2 1],[1 0]);
cloop = inv(1+g*h) * g

producono il modello non minimale a guadagno zero cloop.

cloop =
 
        s (s-1)
  -------------------
  (s-1) (s^2 + s + 1)
 
Continuous-time zero/pole/gain model.

Per cancellare la coppia con polo zero in s = 1, digitare

cloopmin = minreal(cloop)

Questo comando produce il seguente risultato.

cloopmin =
 
        s
  -------------
  (s^2 + s + 1)
 
Continuous-time zero/pole/gain model.

Algoritmi

La cancellazione dei poli zero è una ricerca diretta tra i poli e gli zeri di corrispondenze entro i limiti di tolleranza. Le funzioni di trasferimento vengono prima convertite in forma di guadagno a polo zero.

Funzionalità alternativa

Attività di Live Editor

Reduce Model Order

Cronologia versioni

Introduzione prima di R2006a