Main Content

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

Stima di modelli con l’utilizzo di dati nel dominio della frequenza

Il software System Identification Toolbox™ consente di utilizzare dati nel dominio della frequenza per identificare i modelli lineari nella riga di comando e nell’app System Identification. Utilizzando i dati nel dominio della frequenza, si possono stimare modelli lineari sia a tempo continuo sia a tempo discreto. Questo argomento presenta una panoramica della stima del modello nella toolbox, utilizzando dati nel dominio della frequenza. Per un esempio della stima del modello utilizzando dati nel dominio della frequenza, vedere Frequency Domain Identification: Estimating Models Using Frequency Domain Data.

I dati nel dominio della frequenza possono essere di due tipi:

  • Dati in ingresso-in uscita nel dominio della frequenza: i dati si ottengono calcolando le trasformate di Fourier dei segnali in ingresso u(t) e in uscita y(t) nel dominio del tempo. I dati sono l’insieme di segnali in ingresso U(ω) e in uscita Y(ω) nel dominio della frequenza. Nella toolbox, i dati in ingresso-in uscita nel dominio della frequenza sono rappresentati utilizzando oggetti iddata. Per ulteriori informazioni, vedere Rappresentazione dei dati nel dominio della frequenza nella toolbox.

  • Dati della risposta in frequenza: chiamati anche funzione di frequenza o funzione di risposta in frequenza (FRF). I dati consistono in misurazioni della funzione di trasferimento G() di un sistema in un insieme discreto di frequenze ω. I dati della risposta in frequenza a una frequenza ω indicano come un sistema lineare risponde a un ingresso sinusoidale della stessa frequenza. Nella toolbox, i dati della risposta in frequenza sono rappresentati utilizzando oggetti idfrd. Per ulteriori informazioni, vedere Rappresentazione dei dati nel dominio della frequenza nella toolbox. È possibile ottenere i dati della risposta in frequenza nei seguenti modi:

    • Misurando direttamente i valori dei dati della risposta in frequenza, ad esempio utilizzando un analizzatore di spettro.

    • Eseguendo analisi spettrali dei dati in ingresso-in uscita nel dominio del tempo o nel dominio della frequenza (oggetti iddata) utilizzando comandi come spa e spafdr.

    • Calcolando la risposta in frequenza di un modello lineare identificato utilizzando comandi come freqresp, bode e idfrd.

Il workflow per la stima del modello utilizzando dati nel dominio della frequenza è uguale a quello per la stima del modello utilizzando dati nel dominio del tempo. Se necessario, preparare per prima cosa i dati per l’identificazione del modello rimuovendo le anomalie e filtrando i dati. Stimare quindi un modello parametrico lineare dai dati e convalidare la stima.

Vantaggi dell’utilizzo di dati nel dominio della frequenza

L’utilizzo dei dati nel dominio della frequenza presenta i seguenti vantaggi:

  • Compressione dei dati: è possibile comprimere lunghi record di dati quando si convertono dati nel dominio del tempo in dati nel dominio della frequenza. Ad esempio, si possono utilizzare frequenze distanziate logaritmicamente.

  • Non uniformità: i dati nel dominio della frequenza non devono essere distanziati uniformemente. I dati possono avere una risoluzione dipendente dalla frequenza in modo che più punti dati siano utilizzati negli intervalli di frequenza di interesse. Ad esempio, la frequenza di interesse potrebbe essere l’intervallo della larghezza di banda di un sistema o vicino alle risonanze di un sistema.

  • Prefiltraggio: il prefiltraggio dei dati nel dominio della frequenza diventa un’operazione semplice. Corrisponde ad assegnare pesi differenti a frequenze differenti di dati.

  • Segnale a tempo continuo: è possibile rappresentare segnali a tempo continuo utilizzando i dati nel dominio della frequenza e utilizzare i dati per la stima.

Rappresentazione dei dati nel dominio della frequenza nella toolbox

Prima di eseguire la stima del modello, specificare i dati nel dominio della frequenza come oggetti nella toolbox. È possibile specificare i dati nel dominio della frequenza sia a tempo continuo sia a tempo discreto.

  • Dati in ingresso-in uscita nel dominio della frequenza: specificare come un oggetto iddata. Nell’oggetto, memorizzare U(ω), Y(ω) e il vettore di frequenza ω. La proprietà Domain dell’oggetto è 'Frequency', per specificare che l’oggetto contiene segnali nel dominio della frequenza. Se U(ω), Y(ω) sono trasformate di Fourier a tempo discreto di segnali a tempo discreto, campionati con l’intervallo di campionamento Ts, denotano l’intervallo di campionamento nell’oggetto iddata. Se U(ω), Y(ω) sono trasformate di Fourier di segnali a tempo continuo, specificano Ts come 0 nell’oggetto iddata.

    Per tracciare i dati nella riga di comando, utilizzare il comando plot.

    Ad esempio, è possibile tracciare la fase e l’ampiezza dei dati in ingresso-in uscita nel dominio della frequenza.

    Caricare i dati in ingresso-in uscita nel dominio del tempo.

    load iddata1 z1

    Gli ingressi u e le uscite y nel dominio del tempo sono memorizzati in z1, un oggetto iddata la cui proprietà Domain è impostata su 'Time'.

    La trasformata di Fourier trasforma i dati per ottenere dati in ingresso-in uscita nel dominio della frequenza.

    zf = fft(z1);

    La proprietà Domain di zf è impostata su 'Frequency', a indicare che si tratta di dati nel dominio della frequenza.

    Tracciare l’ampiezza e la fase dei dati in ingresso-in uscita nel dominio della frequenza.

    plot(zf)

    Figure contains 4 axes objects. Axes object 1 with title y1 contains an object of type line. This object represents zf. Axes object 2 contains an object of type line. This object represents zf. Axes object 3 with title u1 contains an object of type line. This object represents zf. Axes object 4 contains an object of type line. This object represents zf.

  • Dati della risposta in frequenza: specificare come un oggetto idfrd. Se si dispone del software Control System Toolbox™, si possono specificare i dati anche come un oggetto frd (Control System Toolbox).

    Per tracciare i dati nella riga di comando, utilizzare il comando bode.

    Ad esempio, è possibile tracciare la risposta in frequenza di un modello di funzione di trasferimento.

    Creare un modello di funzione di trasferimento del sistema.

    sys = tf([1 0.2],[1 2 1 1]);

    Calcolare la risposta in frequenza del modello di funzione di trasferimento sys a 100 punti di frequenza. Specificare l'intervallo delle frequenze da 0,1 rad/s a 10 rad/s.

    freq = logspace(-1,1,100);
    frdModel = idfrd(sys,freq);

    Tracciare la risposta in frequenza del modello.

    bode(frdModel)

    Figure contains 2 axes objects. Axes object 1 contains an object of type line. This object represents frdModel. Axes object 2 contains an object of type line. This object represents frdModel.

Per ulteriori informazioni sui tipi di dati nel dominio della frequenza e su come specificarli, vedere Frequency-Domain Data Representation.

È inoltre possibile eseguire trasformazioni tra i tipi di dati nel dominio della frequenza e nel dominio del tempo utilizzando i seguenti comandi.

Formato dati originaleIn dati nel dominio del tempo
(oggetto iddata)
In dati nel dominio della frequenza
(oggetto iddata)
In dati della risposta in frequenza
(oggetto idfrd)
Dati nel dominio del tempo
(oggetto iddata)
N/AUtilizzare fft
  • Utilizzare etfe, spa o spafdr.

  • Stimare un modello parametrico lineare dall’oggetto iddata e utilizzare idfrd per calcolare i dati della risposta in frequenza.

Dati nel dominio della frequenza
(oggetto iddata)
Utilizzare ifft (funziona solo per dati equidistanti nel dominio della frequenza).N/A
  • Utilizzare etfe, spa o spafdr.

  • Stimare un modello parametrico lineare dall’oggetto iddata e utilizzare idfrd per calcolare i dati della risposta in frequenza.

Dati della risposta in frequenza
(oggetto idfrd)
Non supportatoUtilizzare iddata. Il software crea un oggetto iddata nel dominio della frequenza che ha lo stesso rapporto tra uscita e ingresso dei dati originali della risposta in frequenza dell’oggetto idfrd.
  • Utilizzare spafdr. Il software calcola i dati della risposta in frequenza con una diversa risoluzione (numero e spaziatura delle frequenze) rispetto ai dati originali.

Per ulteriori informazioni sulla trasformazione tra i tipi di dati nell’app o nella riga di comando, vedere la pagina della categoria Transform Data.

Dati nel dominio della frequenza a tempo continuo e a tempo discreto

A differenza dei dati nel dominio del tempo, il tempo di campionamento Ts dei dati nel dominio della frequenza può essere zero. I dati nel dominio della frequenza con Ts pari a zero sono chiamati dati a tempo continuo. I dati nel dominio della frequenza con Ts maggiore di zero sono chiamati dati a tempo discreto.

È possibile ottenere i dati nel dominio della frequenza a tempo continuo (Ts = 0) nei seguenti modi:

  • Generando i dati da espressioni analitiche a tempo continuo note.

    Ad esempio, si supponga di sapere che la risposta in frequenza del sistema è G(ω)=1/(b+jω), dove b è una costante. Si supponga inoltre che gli ingressi nel dominio del tempo del sistema siano u(t)=eatsinw0t, dove a è una costante maggiore di zero e u(t) sia zero per tutti i tempi t minori di zero. Si può calcolare la trasformata di Fourier di u(t) per ottenere

    U(ω)=ω0/[(a+jω)2+w02]

    Utilizzando U(ω) e G(ω) è quindi possibile ottenere l’espressione nel dominio della frequenza per le uscite:

    Y(ω)=G(ω)U(ω)

    È ora possibile valutare le espressioni analitiche per Y(ω) e U(ω) su una griglia di valori di frequenza (ωgrid=ω1,ω2,...,ωn) e ottenere un vettore dei valori dei dati in ingresso-in uscita nel dominio della frequenza (Ygrid,Ugrid). Si può creare un pacchetto di dati in ingresso-in uscita come un oggetto iddata a tempo continuo, specificando un tempo di campionamento Ts pari a zero.

    Ts = 0;
    zf = iddata(Ygrid,Ugrid,Ts,'Frequency',wgrid)
  • Calcolando la risposta in frequenza di un sistema lineare a tempo continuo su una griglia di frequenze.

    Ad esempio, nel codice seguente, si generano i dati della risposta in frequenza a tempo continuo FRDc da un modello di funzione di trasferimento a tempo continuo sys per una griglia di frequenze freq.

    sys = idtf(1,[1 2 2]);
    freq = logspace(-2,2,100);
    FRDc = idfrd(sys,freq);
  • Misurando le ampiezze e le fasi da un esperimento sinusoidale, dove il sistema di misura utilizza filtri anti-aliasing. Si misura la risposta del sistema agli ingressi sinusoidali a frequenze diverse e si crea un pacchetto di dati come un oggetto idfrd. Ad esempio, i dati della risposta in frequenza misurati con un analizzatore di spettro sono a tempo continuo.

    È inoltre possibile eseguire un esperimento utilizzando segnali periodici a tempo continuo (onde sinusoidali multiple) come ingressi del sistema e misurando la risposta del sistema. È quindi possibile creare un pacchetto di dati in ingresso e in uscita come un oggetto iddata.

È possibile ottenere i dati nel dominio della frequenza a tempo discreto (Ts >0) nei seguenti modi:

  • Trasformando i valori misurati nel dominio del tempo utilizzando una trasformata di Fourier discreta.

    Ad esempio, nel codice seguente, si calcola la trasformata di Fourier discreta dei dati nel dominio del tempo y, misurata in punti temporali discreti con un tempo di campionamento di 0,01 secondi.

    t = 0:0.01:10;
    y = iddata(sin(2*pi*10*t),[],0.01);
    Y = fft(y);
  • Calcolando la risposta in frequenza di un sistema lineare a tempo discreto.

    Ad esempio, nel codice seguente, si generano i dati della risposta in frequenza a tempo discreto FRDd da un modello di funzione di trasferimento a tempo discreto sys. Specificare un tempo di campionamento diverso da zero per la creazione del modello a tempo discreto.

    Ts = 1;
    sys = idtf(1,[1 0.2 2.1],Ts);
    FRDd = idfrd(sys,logspace(-2,2,100));

I dati nel dominio della frequenza a tempo continuo possono essere utilizzati per identificare solo i modelli a tempo continuo. I dati nel dominio della frequenza a tempo discreto possono essere utilizzati per identificare modelli sia a tempo discreto sia a tempo continuo. Tuttavia, l’identificazione di modelli a tempo continuo da dati a tempo discreto richiede la conoscenza del comportamento intercampione dei dati. Per ulteriori informazioni, vedere Stima dei modelli a tempo continuo e a tempo discreto.

Nota

Per i dati a tempo discreto, il software ignora i dati nel dominio della frequenza al di sopra della frequenza di Nyquist durante la stima.

Pre-elaborazione dei dati nel dominio della frequenza per la stima del modello

Dopo aver rappresentato i dati nel dominio della frequenza utilizzando gli oggetti iddata o idfrd, è possibile preparare i dati per la stima rimuovendo i dati spuri e filtrando i dati.

Per vedere i dati spuri, tracciare i dati nell’app o utilizzare i comandi plot (per gli oggetti iddata) o bode (per gli oggetti idfrd). Dopo aver identificato i dati spuri nel grafico, si possono rimuovere. Ad esempio, se si desidera rimuovere i punti dati 20-30 da zf, un oggetto iddata nel dominio della frequenza, utilizzare la seguente sintassi:

zf(20:30) = [];

Poiché i dati nel dominio della frequenza non devono essere specificati con una spaziatura uniforme, non è necessario sostituire le anomalie.

È inoltre possibile prefiltrare il rumore ad alta frequenza nei dati. È possibile prefiltrare i dati nel dominio della frequenza nell’app o utilizzando idfilt nella riga di comando. Il prefiltraggio dei dati può anche aiutare a rimuovere le derive che sono disturbi a bassa frequenza. Oltre a minimizzare il rumore, il prefiltraggio permette di concentrare il modello su bande di frequenza specifiche. L’intervallo di frequenza di interesse corrisponde spesso a una banda passante sopra i punti di interruzione di un grafico di Blode. Ad esempio, se si sta modellando un impianto per applicazioni di progettazione di controllo, è possibile prefiltrare i dati per migliorare le frequenze intorno alla larghezza di banda a circuito chiuso desiderata.

Per ulteriori informazioni, vedere Filtering Data.

Stima di modelli parametrici lineari

Dopo aver pre-elaborato i dati nel dominio della frequenza, è possibile utilizzarli per stimare modelli a tempo continuo e a tempo discreto.

Tipi di modelli supportati

È possibile stimare i seguenti modelli parametrici lineari utilizzando i dati nel dominio della frequenza. La componente di rumore dei modelli non è stimata, ad eccezione dei modelli ARX.

Tipo di modelloUlteriori nformazioniComandi di stimaStima nell’app
Transfer Function Models Vedere Estimate Transfer Function Models in the System Identification App.
State-Space ModelsLa matrice K stimata del modello nello spazio degli stati è zero.Vedere Estimate State-Space Models in System Identification App.
Process ModelsIl modello di disturbo non è stimato.Vedere Estimate Process Models Using the App.
Input-Output Polynomial ModelsÈ possibile stimare solo l'errore in uscita e i modelli ARX.
Vedere Estimate Polynomial Models in the App.
Linear Grey-Box ModelsI parametri del modello che sono relativi solo alla matrice K non sono stimati.La stima del modello grey-box non è disponibile nell'app.
Correlation Models
(Modelli a risposta impulsiva)
 Vedere Estimate Impulse-Response Models Using System Identification App.
Frequency-Response Models
(Stimato come oggetti idfrd)
 Vedere Estimate Frequency-Response Models in the App.

Prima di eseguire la stima, è possibile specificarne le opzioni, ad esempio come il software tratta le condizioni iniziali dei dati di stima. Per farlo dalla riga di comando, utilizzare l’opzione di stima impostata corrispondente al comando di stima. Ad esempio, si supponga di voler stimare un modello di funzione di trasferimento da dati nel dominio della frequenza zf e di voler inoltre stimare le condizioni iniziali dei dati. Utilizzare l’insieme delle opzioni tfestOptions per specificare le opzioni di stima, quindi stimare il modello.

opt = tfestOptions('InitialCondition','estimate');
sys = tfest(zf,opt);

sys è il modello di funzione di trasferimento stimato. Per informazioni sull’estrazione dei valori dei parametri stimati dal modello, vedere Extracting Numerical Model Data. Dopo aver eseguito la stima, è possibile convalidare il modello stimato.

Nota

Una condizione iniziale pari a zero dei dati nel dominio del tempo non implica una condizione iniziale pari a zero dei dati corrispondenti nel dominio della frequenza. Per i dati nel dominio del tempo, una condizione iniziale pari a zero indica che il sistema è in stato di fermo prima dell’inizio dell’acquisizione dei dati. Nel dominio della frequenza, le condizioni iniziali possono essere ignorate solo se i dati acquisiti sono di natura periodica. Pertanto, se si dispone di dati nel dominio del tempo acquisiti con condizioni iniziali pari a zero e li si convertono in dati nel dominio della frequenza per stimare un modello, è necessario stimare anche le condizioni iniziali. Non si possono specificare uguali a zero.

Non è possibile eseguire le seguenti stime utilizzando dati nel dominio della frequenza:

  • Stima della componente di rumore di un modello lineare, ad eccezione dei modelli ARX.

  • Stima di modelli non lineari.

  • Stima di modelli di serie temporali utilizzando solo dati spettrali. I dati spettrali sono lo spettro di potenza di un segnale, usualmente memorizzati nella proprietà SpectrumData di un oggetto idfrd.

  • Stima online utilizzando algoritmi ricorsivi.

Stima dei modelli a tempo continuo e a tempo discreto

È possibile stimare tutti i modelli lineari supportati come modelli a tempo discreto, ad eccezione dei modelli di processo. I modelli di processo sono definiti solo a tempo continuo. Per la stima di modelli a tempo discreto, è necessario utilizzare dati a tempo discreto.

È possibile stimare tutti i modelli lineari supportati come modelli a tempo continuo, ad eccezione dei modelli di correlazione (vedere impulseest). È possibile stimare modelli a tempo continuo utilizzando dati sia a tempo continuo sia a tempo discreto. Per informazioni sui dati a tempo continuo e a tempo discreto, vedere Dati nel dominio della frequenza a tempo continuo e a tempo discreto.

Se si stima un modello a tempo continuo utilizzando dati a tempo discreto, è necessario specificare il comportamento intercampione dei dati. La specifica del comportamento intercampione dipende dal tipo di dati nel dominio della frequenza.

  • Dati in ingresso-in uscita nel dominio della frequenza a tempo discreto (oggetto iddata): specificano il comportamento intercampione del segnale in ingresso nel dominio del tempo u (t), trasformati utilizzando la trasformata di Fourier per ottenere il segnale in ingresso nel dominio della frequenza U(ω).

  • Dati della risposta in frequenza a tempo discreto (oggetto idfrd): i dati sono generati calcolando la risposta in frequenza di un modello a tempo discreto. Specificano il comportamento intercampione come il metodo di discretizzazione assunto per calcolare il modello a tempo discreto da un modello a tempo continuo sottostante. Per un esempio, vedere Specifica del comportamento intercampione per i dati della risposta in frequenza a tempo discreto.

È possibile specificare il comportamento intercampione affinché sia costante a tratti (blocco dell’ordine zero), interpolato linearmente tra i campioni (blocco del primo ordine) o a banda limitata. Se si specifica che i dati a tempo discreto del sistema siano a banda limitata (ossia nessuna potenza superiore alla frequenza di Nyquist), il software tratta i dati come dati a tempo continuo, impostando il tempo di campionamento su zero. Il software quindi stima un modello a tempo continuo dai dati. Per ulteriori informazioni, vedere Effect of Input Intersample Behavior on Continuous-Time Models.

Specifica del comportamento intercampione per i dati della risposta in frequenza a tempo discreto

Questo esempio mostra l’effetto del comportamento intercampione sulla stima di modelli a tempo continuo utilizzando i dati della risposta in frequenza a tempo discreto.

Generare i dati della risposta in frequenza a tempo discreto. Per farlo, creare innanzitutto un modello di funzione di trasferimento a tempo continuo sys. Quindi, convertirlo in un modello a tempo discreto sysd, utilizzando il comando c2d e il metodo del blocco del primo ordine (FOH). Utilizzare il modello a tempo discreto sysd per generare i dati della risposta in frequenza a frequenze specificate freq.

sys = idtf([1 0.2],[1 2 1 1]);
sysd = c2d(sys,1,c2dOptions('Method','foh'));
freq = logspace(-1,0,10);
FRdata = idfrd(sysd,freq);

FRdata sono i dati a tempo discreto. Il software imposta la proprietà InterSample di FRdata su 'foh', che è il metodo di discretizzazione che è stato utilizzato per ottenere sysd da sys.

Stimare una funzione di trasferimento a tempo continuo del terzo ordine dai dati a tempo discreto.

model1 = tfest(FRdata,3,1)
model1 =
        s + 0.2
  -------------------
  s^3 + 2 s^2 + s + 1
 
Continuous-time identified transfer function.

Parameterization:
   Number of poles: 3   Number of zeros: 1
   Number of free coefficients: 5
   Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                                   
Estimated using TFEST on frequency response data "FRdata".
Fit to estimation data: 100%                              
FPE: 2.223e-31, MSE: 6.619e-32                            
 

model1 è un modello a tempo continuo, stimato utilizzando i dati della risposta in frequenza a tempo discreto. La dinamica a tempo continuo sottostante del modello originale di terzo ordine sys è recuperata in model1, poiché il comportamento intercampione corretto è specificato in FRdata.

Ora, specificare il comportamento intercampione come blocco di ordine zero (ZOH) e stimare un modello di funzione di trasferimento del terzo ordine.

FRdata.InterSample = 'zoh';
model2 = tfest(FRdata,3,1)
model2 =
          -15.49 s - 3.294
  ---------------------------------
  s^3 - 30.03 s^2 - 6.825 s - 17.04
 
Continuous-time identified transfer function.

Parameterization:
   Number of poles: 3   Number of zeros: 1
   Number of free coefficients: 5
   Use "tfdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                                   
Estimated using TFEST on frequency response data "FRdata".
Fit to estimation data: 94.71%                            
FPE: 0.004856, MSE: 0.001619                              
 

model2 non acquisisce la dinamica del modello originale sys. Pertanto, gli errori relativi al campionamento vengono introdotti nella stima del modello quando il comportamento intercampione non è specificato correttamente.

Conversione del modello di dati della risposta in frequenza in una funzione di trasferimento

Questo esempio mostra come convertire un modello di dati della risposta in frequenza (FRD) in un modello di funzione di trasferimento. Trattare il modello FRD come dati di stima, quindi stimare la funzione di trasferimento.

Ottenere un modello FRD.

Ad esempio, utilizzare bode per ottenere i dati della risposta di ampiezza e di fase per il seguente sistema di quinto ordine:

G(s)=s+0.2s5+s4+0.8s3+0.4s2+0.12s+0.04

Utilizzare 100 punti di frequenza compresi tra 0,1 rad/s e 10 rad/s per ottenere il modello FRD. Utilizzare frd per creare un oggetto del modello della risposta in frequenza.

freq = logspace(-1,1,100);
sys0 = tf([1 0.2],[1 1  0.8  0.4  0.12  0.04]);
[mag,phase] = bode(sys0,freq);
frdModel = frd(mag.*exp(1j*phase*pi/180),freq);

Ottenere la migliore approssimazione di terzo ordine per la dinamica del sistema stimando una funzione di trasferimento con 3 zeri e 3 poli.

np = 3;
nz = 3;
sys = tfest(frdModel,np,nz);

sys è la funzione di trasferimento stimata.

Confrontare la risposta del modello FRD con il modello della funzione di trasferimento stimata.

bode(frdModel,sys,freq(1:50));

Figure contains 2 axes objects. Axes object 1 contains 2 objects of type line. These objects represent frdModel, sys. Axes object 2 contains 2 objects of type line. These objects represent frdModel, sys.

Il modello FRD è generato dal sistema di quinto ordine sys0. Sebbene sys, un’approssimazione di terzo ordine non acquisisca l’intera risposta di sys0, acquisisce bene la risposta fino a circa 0,6 rad/s.

Convalida del modello stimato

Dopo aver stimato un modello per il sistema, è possibile verificare se riproduce il comportamento del sistema entro limiti accettabili. Si consiglia di utilizzare insiemi di dati separati per la stima e la convalida del modello. Si possono utilizzare i dati nel dominio del tempo o nel dominio della frequenza per convalidare un modello stimato utilizzando i dati nel dominio della frequenza. Se si utilizzano i dati di convalida in ingresso-in uscita per convalidare il modello stimato, è possibile confrontare la risposta del modello simulato con l’uscita dei dati di convalida misurati. Se i dati di convalida sono dati della risposta in frequenza, è possibile paragonarli con la risposta in frequenza del modello. Ad esempio, per paragonare l’uscita di un modello stimato sys con i dati di convalida misurati zv, utilizzare la seguente sintassi:

compare(zv,sys);

È inoltre possibile eseguire un'analisi residua. Per ulteriori informazioni, vedere Validating Models After Estimation.

Risoluzione dei problemi di identificazione nel dominio della frequenza

Quando si stima un modello utilizzando i dati nel dominio della frequenza, l’algoritmo di stima minimizza una funzione di perdita (costo). Ad esempio, se si stima un modello lineare SISO dai dati della risposta in frequenza f, l’algoritmo di stima minimizza la seguente funzione di perdita dei minimi quadrati:

minimizeG(ω)k=1Nf|W(ωk)(G(ωk)f(ωk))|2

In questo caso, W è una ponderazione dipendente dalla frequenza che si specifica, G è il modello lineare che deve essere stimato, ω è la frequenza e Nf è il numero delle frequenze a cui i dati sono disponibili. La quantità (G(ωk)f(ωk)) è l’errore della risposta in frequenza. Per i dati in ingresso-in uscita nel dominio della frequenza, l’algoritmo minimizza la norma ponderata dell’errore in uscita anziché dell’errore della risposta in frequenza. Per ulteriori informazioni, vedere Loss Function and Model Quality Metrics. Durante la stima, dinamiche spurie o non acquisite nei dati possono influenzare la funzione di perdita e determinare una stima insoddisfacente del modello.

  • Dinamica spuria non prevista: si osserva tipicamente quando gli intervalli di ampiezza elevati dei dati hanno un basso rapporto del segnale-rumore. L’errore di adattamento intorno a queste porzioni di dati ha un grande contributo sulla funzione di perdita. Di conseguenza, l’algoritmo di stima può sovraadattare e assegnare dinamiche non previste al rumore in questi intervalli. Per risolvere questo problema:

    • Migliorare il rapporto rumore-segnale: è possibile acquisire più di una serie di dati e calcolarne la media. Se si dispone di dati in ingresso-in uscita nel dominio della frequenza, è possibile combinare più insiemi di dati utilizzando il comando merge. Utilizzare questi dati per la stima onde ottenere un risultato migliore. In alternativa, è possibile filtrare il set di dati e utilizzarli per la stima. Ad esempio, utilizzare un filtro di media mobile sui dati per appianare la risposta misurata. Applicare il filtro smoothing solo negli intervalli dei dati per i quali si ha la certezza che l’irregolarità è dovuta al rumore e non alla dinamica del sistema.

    • Ridurre l’impatto di determinate porzioni di dati sulla funzione di perdita: è possibile specificare una ponderazione dipendente dalla frequenza. Ad esempio, se si stima un modello di funzione di trasferimento, specificare la ponderazione nell’opzione WeightingFilter dell’insieme delle opzioni di stima tfestOptions. Specificare una piccola ponderazione negli intervalli di frequenza in cui la dinamica spuria è presente. In alternativa, utilizzare meno punti dati intorno a questo intervallo di frequenza.

  • Dinamica non acquisita: si osserva tipicamente quando l’ampiezza della dinamica che si desidera acquisire è inferiore rispetto al resto dei dati. Poiché un adattamento scarso ai dati di bassa ampiezza contribuisce meno alla funzione di perdita, l’algoritmo può ignorare questa dinamica per ridurre gli errori alle altre frequenze. Per risolvere questo problema:

    • Specificare una ponderazione dipendente dalla frequenza: specificare una larga ponderazione per l’intervallo di frequenza in cui si desidera acquisire la dinamica.

    • Utilizzare più punti dati intorno a questo intervallo.

Per un esempio di queste tecniche di risoluzione dei problemi, vedere Troubleshoot Frequency-Domain Identification of Transfer Function Models.

Se non si ottiene un modello soddisfacente utilizzando queste tecniche di risoluzione dei problemi, provare una struttura del modello diversa o un algoritmo di stima diverso.

Passaggi successivi dopo l’identificazione di un modello

Dopo aver stimato un modello, è possibile eseguire trasformazioni del modello, estrarre i parametri del modello e simulare e prevedere la risposta del modello. Alcune delle attività che si possono eseguire sono:

Argomenti complementari