Contenuto principale

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:

  1. 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

    hsvd(sys35)
    per creare un grafico HSV.

    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.

  2. Per rimuovere gli ultimi 10 stati e creare un’approssimazione di ordine 15, digitare

    rsys35 = balred(sys35,15);
    È possibile digitare size(rsys35) per vedere che il sistema ridotto contiene solo 15 stati.

  3. Confrontare la risposta di Bode ai modelli completi e ridotti utilizzando il comando di Bode:

    bode(sys35,'b',rsys35,'r--')
    Questa figura mostra il risultato.

    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]);
Tracciare un diagramma di Bode di questi tre sistemi ridotti insieme al sistema a ordine completo digitando
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:

  1. 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

    hsvd(gasf)
    per creare un grafico HSV.

    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.

  2. Per rimuovere gli ultimi 8 stati e creare un sistema MIMO di ordine 17, digitare

    rsys=balred(gasf,17);
    È possibile digitare size(gasf) per vedere che il sistema ridotto contiene solo 17 stati.

  3. Per facilitare il controllo visivo dell’errore di approssimazione, utilizzare un grafico a valore singolare anziché un grafico di Bode MIMO. Digitare

    sigma(gasf,'b',gasf-rsys,'r')
    per creare un grafico a valore singolare che metta a confronto il sistema originale con l’errore di riduzione.

    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.