Hauptinhalt

nyquist

Nyquist-Antwort eines dynamischen Systems

Beschreibung

[re,im,wout] = nyquist(sys) liefert die Real- und Imaginärteile des Frequenzgangs bei jeder Frequenz im Vektor wout. Diese Funktion ermittelt die Frequenzen in wout automatisch auf Basis der Systemdynamik. Diese Syntax zeichnet kein Diagramm.

Beispiel

[re,im,wout] = nyquist(sys,w) gibt die Antwortdaten für die von w angegebenen Frequenzen aus.

  • Wenn w ein Zellenarray der Form {wmin,wmax} ist, dann enthält wout Frequenzen im Bereich zwischen wmin und wmax.

  • Wenn w ein Vektor von Frequenzen ist, gilt wout = w.

Beispiel

[re,im,wout,sdre,sdim] = nyquist(sys,w) gibt auch die geschätzte Standardabweichung der Real- und Imaginärteile des Frequenzgangs für das identifizierte Modell sys zurück. Wenn Sie w weglassen, bestimmt die Funktion auf der Grundlage der Systemdynamik automatisch die Frequenzen in wout.

Beispiel

nyquist(___) erstellt ein Nyquist-Diagramm des Frequenzgangs von sys mit standardmäßigen Darstellungsoptionen für alle vorherigen Kombinationen von Eingangsargumenten. Das Diagramm zeigt die Real- und Imaginärteile der Systemantwort als Funktion der Frequenz. Weitere Informationen zu den Anpassungsmöglichkeiten von Diagrammen finden Sie unter nyquistplot.

  • Um Antworten für mehrere dynamische Systeme auf einem Diagramm zu plotten, können Sie sys als kommagetrennte Modellliste angeben. nyquist(sys1,sys2,sys3) plottet beispielsweise die Antworten für drei Modelle auf demselben Diagramm.

  • Um eine Farbe, einen Linienstil und eine Markierung für jedes System im Diagramm darzustellen, geben Sie für jedes System einen Wert LineSpec an. Mithilfe von nyquist(sys1,LineSpec1,sys2,LineSpec2) können Sie beispielsweise zwei Modelle zeichnen und deren Diagrammstil festlegen. Weitere Informationen zum Festlegen eines LineSpec-Werts finden Sie unter nyquistplot.

Beispiele

alle reduzieren

Erstellen Sie die folgende Transferfunktion und plotten Sie ihre Nyquist-Antwort.

H(s)=2s2+5s+1s2+2s+3.

H = tf([2 5 1],[1 2 3]);
nyquist(H)

MATLAB figure

Die Funktion nyquist kann ein Raster von M-Kreisen anzeigen, die die Konturen konstanter Beträge des geschlossenen Regelkreises darstellen. M-Kreise sind definiert als jene Orte der komplexen Zahlen, an denen die folgende Größe einen konstanten Wert über die Frequenz hinweg aufweist.

T(jω)=|G(jω)1+G(jω)|.

Hier ist ω die Frequenz in Radiant/TimeUnit, wobei TimeUnit die Zeiteinheit des Systems und G die Menge komplexer Zahlen ist, die die Bedingung der konstanten Beträge erfüllen.

Rechtsklicken Sie zum Anzeigen des Rasters der M-Kreise in das Diagramm und wählen Sie Raster. Sie können auch den grid-Befehl verwenden.

grid on

MATLAB figure

Erstellen Sie ein Nyquist-Diagramm, das einen festgelegten Frequenzbereich abdeckt. Verwenden Sie diesen Ansatz, wenn Sie sich auf die Dynamik in einem bestimmten Frequenzbereich konzentrieren möchten.

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

MATLAB figure

Das Zellenarray {1,100} gibt einen Frequenzbereich [1,100] für den positiven Frequenzzweig und [–100,–1] für den negativen Frequenzzweig im Nyquist-Diagramm an. Der negative Frequenzzweig ergibt sich durch Symmetrie bei Modellen mit reellen Koeffizienten. Wenn Sie die Frequenzgrenzen auf diese Weise angeben, wählt die Funktion Zwischenpunkte für die Frequenzgangdaten aus.

Alternativ können Sie einen Frequenzpunkt-Vektor festlegen, um den Frequenzgang zu evaluieren und zu plotten.

w = 1:0.1:30;
nyquist(H,w,'.-')

MATLAB figure

nyquist plottet die Frequenzantwort bei den angegebenen Frequenzen.

Vergleichen Sie den Frequenzgang mehrerer Systeme in einem einzigen Nyquist-Diagramm.

Erstellen Sie die dynamischen Systeme.

rng(0)
sys1 = tf(3,[1,2,1]);
sys2 = tf([2 5 1],[1 2 3]);
sys3 = rss(4);

Erstellen Sie ein Nyquist-Diagramm, das alle Systeme anzeigt.

nyquist(sys1,sys2,sys3)
legend('Location','southwest')

MATLAB figure

Über das Eingangsargument LineSpec können Sie Linienstil und -farbe sowie Marken für ein Nyquist-Diagramm festlegen.

sys1 = tf(3,[1,2,1]);
sys2 = tf([2 5 1],[1 2 3]);
nyquist(sys1,'o:',sys2,'g')

MATLAB figure

Das erste LineSpec-Argument, 'o:', legt eine gepunktete Linie mit Kreismarkierungen für die Antwort von sys1 fest. Das zweite LineSpec-Argument, 'g', legt eine durchgezogene grüne Linie für die Reaktion von sys2 fest.

Berechnen Sie die Real- und Imaginärteile des Frequenzgangs eines SISO-Systems.

Wenn Sie keine Frequenzen angeben, wählt nyquist Frequenzen auf Grundlage der Systemdynamik aus und gibt sie im dritten Ausgangsargument aus.

H = tf([2 5 1],[1 2 3]);
[re,im,wout] = nyquist(H);

Da es sich bei H um ein SISO-Modell handelt, sind die ersten zwei Dimensionen von re und im 1. Die dritte Dimension ist die Anzahl der Frequenzen in wout.

size(re)
ans = 1×3

     1     1   141

length(wout)
ans = 
141

Somit gibt jeder Eintrag entlang der dritten Dimension von re den Realteil der Antwort bei der entsprechenden Frequenz in wout aus.

Erstellen Sie für dieses Beispiel ein System mit 2 Ausgängen und 3 Eingängen.

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

Bei diesem System plottet nyquist die Frequenzgänge jedes E/A-Kanals in einem eigenen Diagramm in einer einzigen Abbildung.

nyquist(H)

MATLAB figure

Berechnen Sie die Real- und Imaginärteile dieser Antworten bei 20 Frequenzen zwischen 1 und 10 Radiant.

w = logspace(0,1,20);
[re,im] = nyquist(H,w);

re und im sind dreidimensionale Arrays, bei denen die ersten zwei Dimensionen den Ausgangs- und Eingangsdimensionen von H entsprechen und die dritte Dimension der Anzahl der Frequenzen entspricht. Betrachten Sie beispielsweise die Dimensionen von re.

size(re)
ans = 1×3

     2     3    20

So ist zum Beispiel re(1,3,10) der Realteil der Antwort vom dritten Eingang zum ersten Ausgang, berechnet bei der 10. Frequenz in w. Ähnlich hierzu enthält im(1,3,10) den Imaginärteil derselben Antwort.

Berechnen Sie die Standardabweichungen der Real- und Imaginärteile des Frequenzgangs eines identifizierten Modells. Mit diesen Daten können Sie ein 3σ-Diagramm der Antwort-Unsicherheit erstellen.

Laden Sie die Schätzungsdaten z2.

load iddata2 z2;

Identifizieren Sie ein Transferfunktionsmodell anhand der Daten. Für den Befehl tfest ist System Identification Toolbox™ erforderlich.

sys_p = tfest(z2,2);

Ermitteln Sie die Standardabweichungen der Real- und Imaginärteile des Frequenzgangs für einen Satz von 512 Frequenzen, w.

w = linspace(-10*pi,10*pi,512);
[re,im,wout,sdre,sdim] = nyquist(sys_p,w);

re und im sind die Real- und Imaginärteile des Frequenzgangs, und sdre und sdim sind jeweils ihre Standardabweichungen. Die Frequenzen in wout sind identisch mit den Frequenzen, die Sie in w festgelegt haben.

Verwenden Sie die Standardabweichungsdaten, um ein 3σ-Diagramm für das Konfidenzintervall zu erstellen.

re = squeeze(re);
im = squeeze(im); 
sdre = squeeze(sdre);
sdim = squeeze(sdim);
plot(re,im,'b',re+3*sdre,im+3*sdim,'k:',re-3*sdre,im-3*sdim,'k:')
xlabel('Real Axis');
ylabel('Imaginary Axis');

Figure contains an axes object. The axes object with xlabel Real Axis, ylabel Imaginary Axis contains 3 objects of type line.

Erstellen Sie im selben Diagramm das Nyquist-Diagramm eines Modells mit komplexen Koeffizienten und eines Modells mit reellen Koeffizienten.

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(4);
nyquist(Gc,Gr)
legend('Complex-coefficient model','Real-coefficient model')

MATLAB figure

Das Nyquist-Diagramm zeigt immer zwei Zweige, einen für positive und einen für negative Frequenzen. Die Pfeile zeigen die Richtung der zunehmenden Frequenz für jeden Zweig an. Bei Modellen mit komplexen Koeffizienten sind die beiden Zweige nicht symmetrisch. Bei Modellen mit reellen Koeffizienten ergibt sich der negative Zweig durch Symmetrie.

Eingabeargumente

alle reduzieren

Dynamisches System, das als SISO- oder MIMO-Modell für dynamische Systeme oder als Array von dynamischen Systemmodellen angegeben wird. Sie können diese Arten von dynamischen Systemen verwenden:

  • Zeitkontinuierliche oder zeitdiskrete numerische LTI-Modelle, wie tf-, zpk- oder ss-Modelle.

  • Schwach besetzte Zustandsraummodelle wie sparss- oder mechss-Modelle. Für schwach besetzte Modelle muss ein Frequenzraster w angegeben werden.

  • Verallgemeinerte oder unsichere LTI-Modelle wie z. B. genss- oder uss (Robust Control Toolbox)-Modelle. Für die Verwendung unsicherer Modelle ist die Software Robust Control Toolbox™ erforderlich.

    • Bei optimierbaren Regelungsentwurf-Blöcken wertet die Funktion das Modell mit dem aktuellen Wert aus, um die Antwort darzustellen.

    • Bei unsicheren Regelungsentwurf-Blöcken stellt die Funktion den Nennwert und Zufallsstichproben des Modells dar.

  • Frequenzgang-Datenmodelle, wie z. B. frd-Modelle. Bei diesen Modellen plottet die Funktion die Antwort bei den in dem Modell festgelegten Frequenzen.

  • Identifizierte LTI-Modelle wie idtf (System Identification Toolbox)-, idss (System Identification Toolbox)- oder idproc (System Identification Toolbox)-Modelle. Für die Verwendung von identifizierten Modellen ist die Software System Identification Toolbox™ erforderlich.

Handelt es sich bei sys um ein Array von Modellen, stellt das Diagramm die Antworten aller Modelle im Array auf derselben Achse dar.

Frequenzen, bei denen die Antwort berechnet werden soll, angegeben in einer der folgenden Formen:

  • Zellen-Array der Form {wmin,wmax} – Berechnet die Antwort bei den Frequenzen im Bereich von wmin bis wmax. Ist wmax größer als die Nyquist-Frequenz von sys, wird die Antwort nur bis zur Nyquist-Frequenz berechnet.

  • Vektor aus Frequenzen – Berechnet die Antwort bei jeder angegebenen Frequenz. Sie können beispielsweise logspace verwenden, um einen Zeilenvektor mit Frequenzwerten in logarithmischen Abständen zu generieren. Der Vektor w kann sowohl positive als auch negative Frequenzen enthalten.

  • [] – Wählt auf Grundlage der Systemdynamik automatisch Frequenzen aus.

Sie können Frequenzen als Einheiten rad/TimeUnit angeben, wobei TimeUnit die Eigenschaft TimeUnit des Modells ist.

Ausgangsargumente

alle reduzieren

Realteil der Systemantwort, zurückgegeben als 3-D-Array. Die Dimensionen dieses Arrays sind (Anzahl der Systemausgänge) mal (Anzahl der Systemeingänge) mal (Anzahl der Frequenzpunkte).

Imaginärteil der Systemantwort, zurückgegeben als 3-D-Array. Diese Arrays haben folgende Dimensionen: (Anzahl der Systemausgänge)-mal-(Anzahl der Systemeingänge)-mal-(Anzahl der Frequenzpunkte).

Frequenzen, bei denen die Funktion die Systemantwort ausgibt, ausgegeben als Spaltenvektor. Die Funktion wählt die Frequenzwerte auf der Grundlage der Modelldynamik, es sei denn, Sie legen mit w Frequenzen fest.

wout enthält zudem negative Frequenzwerte für Modelle mit komplexen Koeffizienten.

Frequenzwerte werden in Radiant pro TimeUnit angegeben, wobei TimeUnit der Wert der Eigenschaft TimeUnit von sys ist.

Geschätzte Standardabweichung des Realteils der Antwort für identifizierte Modelle, zurückgegeben als 3-D-Array mit denselben Dimensionen wie re.

Wenn es sich bei sys nicht um ein identifiziertes LTI-Modell handelt, ist sdre [].

Geschätzte Standardabweichung des Imaginärteils der Antwort für identifizierte Modelle, zurückgegeben als 3-D-Array mit denselben Dimensionen wie im.

Wenn es sich bei sys nicht um ein identifiziertes LTI-Modell handelt, ist sdim [].

Tipps

  • Zwei speziell für Nyquist-Diagramme geltende Zoom-Optionen sind über das Rechtsklickmenü verfügbar:

    • Full View – Schneidet nicht begrenzte Zweige des Nyquist-Diagramms ab, enthält aber noch den kritischen Punkt (–1, 0).

    • Zoom on (-1,0) – Zoomt um den kritischen Punkt (–1, 0) herum.

  • Verwenden Sie stattdessen die Funktion nyquistplot, wenn Sie weitere Optionen zur Anpassung von Diagrammen benötigen.

  • Diagramme, die mit nyquist erstellt werden, unterstützen keine mehrzeiligen Titel oder Beschriftungen, die als String-Arrays oder Zellenarrays von Zeichenvektoren angegeben sind. Verwenden Sie zur Angabe mehrzeilige Titel und Beschriftungen eine einzelne Zeichenkette mit einem newline-Zeichen.

    nyquist(sys,u,t)
    title("first line" + newline + "second line");

Versionsverlauf

Eingeführt vor R2006a

alle erweitern