Riduzione dell’ordine del modello
Comandi di riduzione dell’ordine del modello
È possibile derivare modelli SISO e MIMO a ordine ridotte con i comandi indicati nella seguente tabella.
Comandi di riduzione dell’ordine del modello | |
|---|---|
hsvd | Calcolo dei valori singolari di Hankel di un modello LTI |
balred | Approssimazione di un modello a ordine ridotto |
minreal | Realizzazione minima (cancellazione polo/zero) |
balreal | Calcolo della realizzazione bilanciata di input/output |
modred | Eliminazione dello stato in una realizzazione bilanciata di I/O |
sminreal | Realizzazione strutturalmente minima |
Tecniche per ridurre l’ordine del modello
Per ridurre l’ordine di un modello si può ricorrere ad una delle seguenti azioni:
Eliminare gli stati che sono strutturalmente scollegati dagli input o output utilizzando
sminreal.L’eliminazione degli stati disconnessi strutturalmente è un primo passaggio efficace nella riduzione del modello perché il processo è poco costoso e non comporta alcun calcolo numerico.
Calcolare un’approssimazione a un modello di ordine basso del proprio modello utilizzando
balred.Eliminare la cancellazione delle coppie polo/zero utilizzando
minreal.
Esempio: Modello di gassificatore
Questo esempio mostra un modello di gassificatore, un dispositivo che trasforma materiali solidi in gas. Il modello originale è non lineare.
Caricamento del modello
Per caricare la versione linearizzata del modello, digitare
load ltiexamples
alla comparsa del prompt MATLAB®; l’esempio del gassificatore è salvato nella variabile denominata gasf. Se si digita
size(gasf)
si ottiene
Modello stato-spazio con 4 output, 6 input e 25 stati.
Riduzione dell’ordine di un modello SISO
È possibile ridurre l’ordine di una singola coppia di I/O per capire come funzionano gli strumenti di riduzione del modello prima di tentare di ridurre il modello MIMO completo come descritto in Riduzione dell’ordine di un modello MIMO.
L’esempio si focalizza su una singola coppia I/O del gassificatore, dall’input 5 all’output 3.
sys35 = gasf(3,5);
Prima di tentare di ridurre l’ordine del modello, esaminare le posizioni dei poli e degli zeri digitando
pzmap(sys35)
Ingrandire in prossimità dell’origine del grafico risultante utilizzando la funzione di zoom o digitando
axis([-0.2 0.05 -0.2 0.2])
La seguente figura mostra i risultati.
Mappa poli-zeri del modello di gassificatore (ingrandito)

Dato che il modello presenta delle quasi cancellazioni polo-zero è un buon candidato per la riduzione di modello.
Per trovare una riduzione di questo modello SISO a un modello di basso ordine eseguire questi passaggi:
Selezionare un ordine appropriato per il sistema ridotto esaminando la quantità relativa di energia per stato tramite il grafico del valore singolare di Hankel (HSV). Digitare il comando
per creare un grafico HSV.hsvd(sys35)
Modificando la scala logaritmica tramite il menu di scelta rapida si ottiene il seguente grafico.

Valori singolari di Hankel piccoli indicano che gli stati associati contribuiscono in minima parte al comportamento di input e output. Questo grafico mostra che scartare gli ultimi 10 stati (associati ai 10 valori singolari di Hankel più piccoli) ha un impatto limitato sull’errore di approssimazione.
Per rimuovere gli ultimi 10 stati e creare un’approssimazione di ordine 15, digitare
È possibile digitarersys35 = balred(sys35,15);
size(rsys35)per vedere che il sistema ridotto contiene solo 15 stati.Confrontare la risposta di Bode ai modelli completi e ridotti utilizzando il comando di Bode:
Questa figura mostra il risultato.bode(sys35,'b',rsys35,'r--')

Come si osserva dalla sovrapposizione delle curve nella figura, il modello ridotto offre una buona approssimazione del sistema originale.
Si può cercare di ridurre ulteriormente il modello ripetendo questa procedura ed eliminando altri stati. Ridurre il modello gasf all’ordine 5, 10 e 15 contemporaneamente digitando il seguente comando
rsys35 = balred(sys35,[5 10 15]);
bode(sys35,'b',rsys35,'r--')

Osservare come l’errore aumenta mano a mano che diminuisce l’ordine.
Riduzione dell’ordine di un modello MIMO
È possibile approssimare i modelli MIMO eseguendo gli stessi passaggi utilizzati per i modelli SISO, come segue:
Selezionare un ordine appropriato per il sistema ridotto esaminando la quantità relativa di energia per stato tramite il grafico del valore singolare di Hankel (HSV).
Digitare
per creare un grafico HSV.hsvd(gasf)

Scartare gli ultimi 8 stati (associati agli 8 valori singolari di Hankel più piccoli) dovrebbe avere un impatto limitato sull’errore del sistema di ordine 17 risultante.
Per rimuovere gli ultimi 8 stati e creare un sistema MIMO di ordine 17, digitare
È possibile digitarersys=balred(gasf,17);
size(gasf)per vedere che il sistema ridotto contiene solo 17 stati.Per facilitare il controllo visivo dell’errore di approssimazione, utilizzare un grafico a valore singolare anziché un grafico di Bode MIMO. Digitare
per creare un grafico a valore singolare che metta a confronto il sistema originale con l’errore di riduzione.sigma(gasf,'b',gasf-rsys,'r')

L’errore di riduzione è piccolo rispetto al sistema originale, quindi il modello di ordine ridotto offre una buona approssimazione del modello originale.
Riconoscimenti
MathWorks® desidera ringraziare ALSTOM® Power UK per aver consentito l'utilizzo del suo modello di gassificatore per questo esempio. Questo modello è stato pubblicato nell’ambito dell’iniziativa ALSTOM Benchmark Challenge on Gassifier Control. Per ulteriori dettagli vedere Dixon, R., (1999), "Advanced Gasifier Control," Computing & Control Engineering Journal, IEE, Vol. 10, N. 3, pp. 92–96.