Contenuto principale

nichols

Risposta di Nichols di un sistema dinamico

Descrizione

[mag,phase,wout] = nichols(sys) calcola la risposta in frequenza del modello di sistema dinamico sys e restituisce la grandezza e la fase della risposta a ciascuna frequenza nel vettore wout. La funzione determina automaticamente le frequenze in wout in base alla dinamica del sistema.

esempio

[mag,phase,wout] = nichols(sys,w) restituisce i dati di risposta alle frequenze specificate da w. È possibile specificare un intervallo di frequenze o un vettore di frequenze.

esempio

nichols(___) traccia un grafico di Nichols della risposta in frequenza di sys. Il grafico mostra la grandezza (in dB) e la fase (in gradi) della risposta del sistema in funzione della frequenza. Per ulteriori opzioni di personalizzazione dei grafici, utilizzare nicholsplot.

  • Per tracciare le risposte di più sistemi dinamici sullo stesso grafico, è possibile specificare sys come un elenco di modelli separati da virgole. Ad esempio, nichols(sys1,sys2,sys3) traccia le risposte di tre modelli sullo stesso grafico.

  • Per specificare un colore, uno stile della linea e un marcatore per ogni sistema nel grafico, specificare un valore LineSpec per ciascun sistema. Ad esempio, nichols(sys1,LineSpec1,sys2,LineSpec2) traccia due modelli e ne specifica lo stile di plottaggio. Per ulteriori informazioni sulla specifica di un valore LineSpec, vedere nicholsplot.

Esempi

comprimi tutto

Tracciare la risposta di Nichols con le linee della griglia di Nichols per il seguente sistema:

H(s)=-4s4+48s3-18s2+250s+600s4+30s3+282s2+525s+60.

H = tf([-4 48 -18 250 600],[1 30 282 525 60]);
nichols(H)
grid

MATLAB figure

Creare un grafico di Nichols su un intervallo di frequenza specificato. Utilizzare questo approccio quando si desidera concentrarsi sulla dinamica in un particolare intervallo di frequenze.

H = tf([-0.1,-2.4,-181,-1950],[1,3.3,990,2600]);
nichols(H,{1,100})

L'array di celle {1,100} specifica i valori di frequenza minima e massima nel grafico di Nichols. Quando si forniscono i limiti di frequenza in questo modo, la funzione seleziona i punti intermedi per i dati di risposta in frequenza.

In alternativa, specificare un vettore di punti di frequenza da utilizzare per valutare e tracciare la risposta in frequenza.

w = 1:0.5:100;
nichols(H,w,'.-')

MATLAB figure

MATLAB figure

nichols traccia la risposta in frequenza solo alle frequenze specificate.

Paragonare la risposta in frequenza di un sistema a tempo continuo con un sistema discretizzato equivalente sullo stesso grafico di Nichols.

Creare sistemi dinamici a tempo continuo e a tempo discreto.

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');

Creare un grafico di Nichols che visualizzi entrambi i sistemi.

nichols(H,Hd)

MATLAB figure

Specificare lo stile della linea, il colore o il marcatore per ogni sistema in un grafico di Nichols utilizzando l'argomento di input LineSpec.

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
Hd = c2d(H,0.5,'zoh');
nichols(H,'r',Hd,'b--')

MATLAB figure

Il primo LineSpec, 'r', specifica una linea rossa continua per la risposta di H. Il secondo LineSpec, 'b--', specifica una linea blu tratteggiata per la risposta di Hd.

Calcolare la grandezza e la fase della risposta in frequenza di un sistema SISO.

Se non si specificano le frequenze, nichols sceglie le frequenze in base alla dinamica del sistema e le restituisce nel terzo argomento di output.

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);
[mag,phase,wout] = nichols(H);

Poiché H è un modello SISO, le prime due dimensioni di mag e phase sono entrambe pari a 1. La terza dimensione è il numero di frequenze in wout.

size(mag)
ans = 1×3

     1     1   110

length(wout)
ans = 
110

Quindi, ogni voce lungo la terza dimensione di mag fornisce la grandezza della risposta alla frequenza corrispondente in wout.

Per questo esempio, creare un sistema a 2 output e 3 input.

rng(0,'twister');
H = rss(4,2,3);

Per questo sistema, nichols traccia le risposte in frequenza di ciascun canale di I/O in un grafico separato in un'unica figura.

nichols(H)

MATLAB figure

Calcolare la grandezza e la fase di queste risposte a 20 frequenze comprese tra 1 e 10 radianti.

w = logspace(0,1,20);
[mag,phase] = nichols(H,w);

mag e phase sono array tridimensionali, in cui le prime due dimensioni corrispondono alle dimensioni di output e input di H e la terza dimensione è il numero di frequenze. Ad esempio, esaminare le dimensioni di mag.

size(mag)
ans = 1×3

     2     3    20

Quindi, in questo esempio, mag(1,3,10) è la grandezza della risposta dal terzo input al primo output, calcolata alla 10ª frequenza in w. In modo analogo, phase(1,3,10) contiene la fase della stessa risposta.

Creare un grafico di Nichols di un modello con coefficienti complessi e di un modello con coefficienti reali sullo stesso grafico.

rng(0)
A = [-3.50,-1.25-0.25i;2,0];
B = [1;0];
C = [-0.75-0.5i,0.625-0.125i];
D = 0.5;
Gc = ss(A,B,C,D);
Gr = rss(7);
nichols(Gc,Gr)
legend('Complex-coefficient model','Real-coefficient model','Location','southwest')

MATLAB figure

Per i modelli con coefficienti complessi, nichols mostra un contorno composto sia da frequenze positive che negative. Per i modelli con coefficienti reali, il grafico mostra solo le frequenze positive, anche in presenza di modelli con coefficienti complessi. È possibile fare clic sulla curva per analizzare più nel dettaglio quali sezioni e valori corrispondono alle frequenze positive e negative.

Argomenti di input

comprimi tutto

Sistema dinamico, specificato come modello di sistema dinamico SISO o MIMO o come array di modelli del sistema dinamico. È possibile utilizzare questi tipi di sistemi dinamici:

  • Modelli LTI numerici a tempo continuo o a tempo discreto, come i modelli tf, zpk o ss.

  • Modelli stato-spazio radi, come il modello sparss o il modello mechss. Per i modelli radi, la griglia di frequenza w deve essere specificata.

  • Modelli LTI generalizzati o incerti, come i modelli genss o uss (Robust Control Toolbox). Per utilizzare i modelli incerti è necessario disporre del software Robust Control Toolbox™.

    • Per i blocchi di progettazione di controllo sincronizzabili, la funzione valuta il modello al suo valore corrente per tracciare la risposta.

    • Per i blocchi di progettazione di controllo incerti, la funzione traccia il valore nominale e i campioni casuali del modello.

  • Modelli di dati di risposta in frequenza, come i modelli frd. Per tali modelli, la funzione traccia la risposta alle frequenze definite nel modello.

  • Modelli LTI identificati, come i modelli idtf (System Identification Toolbox), idss (System Identification Toolbox) o idproc (System Identification Toolbox). Per utilizzare i modelli identificati è necessario disporre del software System Identification Toolbox™.

Se sys è un array di modelli, il grafico mostra le risposte di tutti i modelli dell'array sugli stessi assi.

Frequenze alle quali calcolare e tracciare la risposta in frequenza, specificate come array di celle {wmin,wmax} o come vettore di valori di frequenza.

  • Se w è un array di celle di forma {wmin,wmax}, la funzione calcola la risposta alle frequenze comprese tra wmin e wmax.

  • Se w è un vettore di frequenze, la funzione calcola la risposta per ciascuna frequenza specificata. Ad esempio, utilizzare logspace per generare un vettore riga con valori di frequenza distanziati logaritmicamente. Il vettore w può contenere sia frequenze positive che negative.

  • []: selezione automatica delle frequenze in base alla dinamica del sistema.

Per i modelli con coefficienti complessi, se si specifica un intervallo di frequenza di [wmin,wmax] per il grafico, quest'ultimo mostrerà un contorno composto sia da frequenze positive [wmin,wmax] che da frequenze negative [–wmax,–wmin].

Specificare le frequenze in unità di rad/TimeUnit, dove TimeUnit è la proprietà TimeUnit del modello.

Argomenti di output

comprimi tutto

Grandezza della risposta del sistema in unità assolute, restituita come array tridimensionale. Le dimensioni di questo array sono (numero di output del sistema) x (numero di input del sistema) x (numero di punti di frequenza).

Per convertire la grandezza da unità assolute a decibel, utilizzare:

magdb = 20*log10(mag)

Fase della risposta del sistema in gradi, restituita come array tridimensionale. Le dimensioni di questo array sono (numero di output) × (numero di input) × (numero di punti di frequenza).

Frequenze alle quali la funzione restituisce la risposta del sistema, restituite come un vettore colonna. La funzione sceglie i valori di frequenza in base alla dinamica del modello, a meno che non si specifichino le frequenze utilizzando l'argomento di input w.

wout contiene inoltre i valori di frequenza negativi dei modelli con coefficienti complessi.

I valori di frequenza sono espressi in radianti/TimeUnit, dove TimeUnit è il valore della proprietà TimeUnit di sys.

Suggerimenti

  • Quando sono necessarie ulteriori opzioni di personalizzazione del grafico, utilizzare invece nicholsplot.

  • I grafici creati utilizzando nichols non supportano titoli o etichette su più righe specificati come array di stringhe o array di celle di vettori di caratteri. Per specificare titoli ed etichette su più righe, utilizzare una singola stringa con un carattere newline.

    nichols(sys)
    title("first line" + newline + "second line");

Cronologia versioni

Introduzione prima di R2006a

espandi tutto