Hauptinhalt

margin

Amplitudenrand, Phasenrand und Übergangsfrequenzen

Beschreibung

Randdiagramme

margin(sys) plottet die Bode-Antwort von sys auf dem Bildschirm und zeigt die Amplituden- und Phasenräder im Diagramm an. Die Amplitudenränder werden im Diagramm in dB angegeben.

Durchgehende vertikale Linien markieren den Amplitudenrand und den Phasenrand. Die gestrichelten vertikalen Linien markieren die Position von Wcp, der Frequenz, bei der der Phasenrand gemessen wird, und Wcg, der Frequenz, bei der der Amplitudenrand gemessen wird. Der Titel des Diagramms enthält den Betrag und die Position des Amplituden- und Phasenrands.

Gm und Pm eines Systems geben die relative Stabilität des geschlossenen Regelkreises an, der durch Anwendung negativer Einheitsrückkopplung auf sys gebildet wird, wie in der folgenden Abbildung gezeigt.

Gm ist der Betrag der Verstärkungsvarianz, der erforderlich ist, um für eine unitäre Schleifenverstärkung bei der Frequenz Wcg zu sorgen, bei der der Phasenwinkel –180° (modulo 360°) beträgt. Mit anderen Worten, der Amplitudenrand ist 1/g, wenn g die Verstärkung bei der Phasenfrequenz –180° ist. In ähnlicher Weise ist der Phasenrand die Differenz zwischen der Phase der Antwort und –180°, wenn die Schleifenverstärkung 1,0 beträgt. Die Frequenz Wcp mit Betrag 1,0 wird als Einheitsverstärkungsfrequenz oder Amplitudendurchtrittsfrequenz bezeichnet. Wenn sys mehr als einen Übergang hat, gibt margin die Frequenzen an, deren Amplitudenrand am nächsten an 0 dB und deren Phasenrand am nächsten an 0° liegt.

In der Regel führen Amplitudenränder von 3 oder mehr in Kombination mit Phasenrändern zwischen 30° und 60° zu einem vernünftigen Kompromiss zwischen Bandbreite und Stabilität. In einigen multivariablen Systemen kann die Stabilität jedoch bei einer anderen Frequenz für viel kleinere Verstärkungs- und Phasenabweichungen verloren gehen. Für solche Systeme liefert der Begriff der Disk Margins zuverlässigere Schätzungen der wahren Amplituden- und Phasenränder. Weitere Informationen über Disk Margins finden Sie unter diskmargin (Robust Control Toolbox).

Beispiel

margin(sys,w) plottet die Bode-Antwort von sys unter Verwendung des Vektors der Frequenzen w in rad/TimeUnit. Verwenden Sie diese Syntax bei schwach besetzten Modellen wie sparss oder mechss-Modellobjekten.

Randwerte

[Gm,Pm,Wcg,Wcp] = margin(sys) gibt den Amplitudenrand Gm in absoluten Einheiten, den Phasenrand Pm und die entsprechenden Frequenzen Wcg und Wcp von sys zurück. Wcg ist die Frequenz, bei der der Amplitudenrand gemessen wird, d. h. die Phasendurchtrittsfrequenz bei einer Phase von –180°. Wcp ist die Frequenz, bei der der Phasenrand gemessen wird, d. h. die Amplitudendurchtrittsfrequenz bei einer Verstärkung von 0 dB. Diese Frequenzen werden in Radiant/TimeUnit ausgedrückt, wobei TimeUnit die Einheit ist, die in der TimeUnit-Eigenschaft von sys angegeben ist. Wenn sys mehrere Übergänge hat, gibt margin die kleinsten Amplituden- und Phasenränder und die entsprechenden Frequenzen zurück.

margin gibt eine Warnung zurück, wenn Ihr System intern nicht stabil ist, d. h. wenn Ihr System nicht im geschlossenen Regelkreis stabil ist oder Pol-Nullstellen-Aufhebungen außerhalb der offenen linken Halbebene enthält.

Beispiel

[Gm,Pm] = margin(sys,J1,...,JN) gibt den Amplitudenrand Gm und den Phasenrand Pm der Einträge im Modell-Array sys mit tiefgestellten Indizes (J1,...,JN) zurück.

Beispiel

[Gm,Pm,Wcg,Wcp] = margin(sys,Focus=[fmin,fmax]) berechnet die Amplituden- und Phasenränder im Frequenzbereich [fmin,fmax] und ignoriert Stabilitätsprobleme außerhalb dieses Bereichs. Verwenden Sie diese Syntax zum Beispiel, um zur Berechnung von Stabilitätsreserven sehr niederfrequente Dynamiken zu ignorieren. (seit R2024a)

Beispiel

[Gm,Pm,Wcg,Wcp] = margin(mag,phase,w) leitet die Amplituden- und Phasenränder aus den Frequenzgangdaten ab. Geben Sie die Verstärkungsdaten mag in absoluten Einheiten und die Phasendaten phase in Grad an. Sie können den Frequenzvektor w in beliebigen Einheiten angeben: margin gibt Wcg und Wcp in denselben Einheiten zurück.

Beispiel

Beispiele

alle reduzieren

Erstellen Sie für dieses Beispiel eine kontinuierliche Transferfunktion.

sys = tf(1,[1 2 1 0])
sys =
 
         1
  ---------------
  s^3 + 2 s^2 + s
 
Continuous-time transfer function.
Model Properties

Stellen Sie die Amplituden- und Phasenränder grafisch dar.

margin(sys)

MATLAB figure

Der Amplitudenrand (6,02 dB) und der Phasenrand (21,4 Grad), die im Titel angezeigt werden, sind mit durchgezogenen vertikalen Linien markiert. Die gestrichelten vertikalen Linien dienen zum Anzeigen der Positionen von Wcg, der Frequenz, bei der der Amplitudenrand gemessen wird, und Wcp, der Frequenz, bei der der Phasenrand gemessen wird.

Erstellen Sie für dieses Beispiel eine zeitdiskrete Transferfunktion.

sys = tf([0.04798 0.0464],[1 -1.81 0.9048],0.1)
sys =
 
   0.04798 z + 0.0464
  ---------------------
  z^2 - 1.81 z + 0.9048
 
Sample time: 0.1 seconds
Discrete-time transfer function.
Model Properties

Berechnen Sie den Amplitudenrand, den Phasenrand und die Frequenzen.

[Gm,Pm,Wcg,Wcp] = margin(sys)
Gm = 
2.0519
Pm = 
13.5711
Wcg = 
5.4376
Wcp = 
4.3544

Die Ergebnisse zeigen, dass eine Verstärkungsabweichung von über 2,05 (6,24 dB) bei einer Phasendurchtrittsfrequenz von 5,43 rad/s das System instabil machen würde. Ebenso führt eine Phasenabweichung von mehr als 13,57 Grad bei einer Amplitudendurchtrittsfrequenz von 4,35 rad/s dazu, dass das System die Stabilität verliert.

Seit R2024a

In einigen Anwendungen möchten Sie vielleicht Stabilitätsreserven innerhalb eines bestimmten Frequenzbereichs berechnen und die Dynamik außerhalb dieses Bereichs vernachlässigen. Betrachten Sie zum Beispiel das folgende System mit Dynamik sowohl bei relativ niedrigen als auch bei relativ hohen Frequenzen.

sys = tf(5,[1 1 10]) + tf(5e3,[1 20 1e4]);
damp(sys)
                                                                       
         Pole              Damping       Frequency      Time Constant  
                                       (rad/seconds)      (seconds)    
                                                                       
 -5.00e-01 + 3.12e+00i     1.58e-01       3.16e+00         2.00e+00    
 -5.00e-01 - 3.12e+00i     1.58e-01       3.16e+00         2.00e+00    
 -1.00e+01 + 9.95e+01i     1.00e-01       1.00e+02         1.00e-01    
 -1.00e+01 - 9.95e+01i     1.00e-01       1.00e+02         1.00e-01    

Die Stabilität des geschlossenen Regelkreises CL = feedback(sys,1) gegen Störungen bei niedrigen Frequenzen kann sich von der Stabilität bei höheren Frequenzen unterscheiden. Verwenden Sie die Option Focus, damit der Unterschied ersichtlich wird. Untersuchen Sie zunächst die Reserven unterhalb von 10 rad/s.

[GmL,PmL,WcgL,WcpL] = margin(sys,Focus=[0 10])
GmL = 
Inf
PmL = 
80.9920
WcgL = 
NaN
WcpL = 
3.5137

Untersuchen Sie die Reserven um 10 rad/s.

[GmH,PmH,WcgH,WcpH] = margin(sys,Focus=[10 Inf])
GmH = 
Inf
PmH = 
28.6437
WcgH = 
Inf
WcpH = 
119.9618

Laden Sie für dieses Beispiel die Frequenzgangdaten eines Systems mit offenem Regelkreis, bestehend aus Beträgen (m) und Phasenwerten (p), die bei den Frequenzen in w gemessen wurden.

load('openLoopFRD.mat','p','m','w');

Berechnen Sie die Amplituden- und Phasenränder.

[Gm,Pm,Wcg,Wcp] = margin(m,p,w)
Gm = 
0.6249
Pm = 
48.9853
Wcg = 
1.2732
Wcp = 
1.5197

Laden Sie für dieses Beispiel die Datei invertedPendulumArray.mat, die ein 3-mal-3-Array von Modellen des inversen Pendels enthält. Die Masse des Pendels variiert, wenn Sie sich von Modell zu Modell entlang einer einzelnen Spalte von sys bewegen, und die Länge des Pendels variiert, wenn Sie sich entlang einer einzelnen Zeile bewegen. Die verwendeten Massen sind 100g, 200g und 300g und die verwendeten Pendellängen sind jeweils 3m, 2m und 1m.

Column1Column2Column3Row1100g,3m100g,2m100g,1mRow2200g,3m200g,2m200g,1mRow3300g,3m300g,2m300g,1m

load('invertedPendulumArray.mat','sys');
size(sys)
3x3 array of transfer functions.
Each model has 1 outputs and 1 inputs.

Ermitteln Sie den Amplituden- und Phasenrand für alle Modelle im Array.

[Gm,Pm] = margin(sys)
Gm = 3×3

    0.9800    0.9800    0.9800
    0.9800    0.9800    0.9800
    0.9800    0.9800    0.9800

Pm = 3×3

  -11.3798  -11.4118  -11.4433
  -11.4059  -11.4296  -11.4532
  -11.4228  -11.4410  -11.4592

margin gibt zwei Arrays zurück, Gm und Pm, in denen jeder Eintrag den Amplituden- und Phasenrandwerte des entsprechenden Eintrags in sys darstellt. Der Amplituden- und Phasenrand des Modells mit 100g Pendelgewicht und 2m Länge ist beispielsweise Gm(1,2) beziehungsweise Pm(1,2).

Eingabeargumente

alle reduzieren

Dynamisches System, spezifiziert als ein dynamisches SISO-Systemmodell oder ein Array dynamischer SISO-Systemmodelle. Zu den dynamischen Systemen, die Sie verwenden können, gehören zeitkontinuierliche und zeitdiskrete numerische LTI-Modelle wie z. B. tf, zpk, ss und sparss oder mechss-Modelle.

Wenn sys ein verallgemeinertes Zustandsraummodell genss oder ein unsicheres Zustandsraummodell uss ist, gibt margin den Amplituden- und Phasenrand des aktuellen oder nominalen Wertes von sys zurück. Wenn sys ein Array von Modellen ist, gibt margin Gm und Pm des Modells zurück, die seinem tiefgestellten Wert J1,...,JN in sys entsprechen. Weitere Informationen zu Modellarrays finden Sie unter Modellarrays.

Indizes der Modelle im Array, deren Amplituden- und Phasenränder Sie extrahieren möchten, angegeben als positive Ganzzahlen. Sie können so viele Indizes angeben, wie es in sys Array-Dimensionen gibt. Wenn zum Beispiel sys ein 4-mal-5-Array dynamischer Systemmodelle ist, extrahiert der folgende Befehl Gm und Pm für den Eintrag (2,3) im Array.

[Gm,Pm] = margin(sys,2,3);

Seit R2024a

Frequenzbereich, der bei der Stabilitätsanalyse berücksichtigt werden soll, angegeben als Zwei-Elemente-Vektor, der die untere und obere Grenze des Bereichs enthält. Die Berechnung der Reserve ignoriert die Dynamik außerhalb dieses Bereichs. Geben Sie die Frequenzen in rad/TimeUnit an, wobei TimeUnit die TimeUnit-Eigenschaft des dynamischen Eingangssystems ist.

Beispiel: [1e-3,1e6]

Betrag der Systemantwort in absoluten Einheiten, angegeben als 3-D-Array. Da margin nur SISO-Systeme akzeptiert, ist mag ein 1-mal-1-mal-N-Array, wobei N die Anzahl der Frequenzpunkte ist. Ein Beispiel hierzu finden Sie unter Erfassen von Größen- und Phasendaten.

Phase der Systemantwort in Grad, angegeben als 3-D-Array. Da margin nur SISO-Systeme akzeptiert, ist phase ein 1-mal-1-mal-N-Array, wobei N die Anzahl der Frequenzpunkte ist. Ein Beispiel hierzu finden Sie unter Erfassen von Größen- und Phasendaten.

Frequenzen, bei denen die Beträge und Phasenwerte der Systemantwort ermittelt werden, angegeben als Spaltenvektor.

Ausgangsargumente

alle reduzieren

Amplitudenrand, zurückgegeben als Skalar oder Array. Wenn sys:

  • Ein einzelnes Modell ist, dann wird Gm als Skalar zurückgegeben.

  • Ein Modell-Array ist, dann ist Gm ein Array von Amplitudenrändern von jedem Modell in sys.

Gm ist der Betrag der Verstärkungsvarianz, der erforderlich ist, um für eine unitäre Schleifenverstärkung bei der Frequenz Wcg zu sorgen, bei der der Phasenwinkel –180° (modulo 360°) beträgt. Mit anderen Worten, der Amplitudenrand ist 1/g, wenn g die Verstärkung bei der Phasenfrequenz –180° ist. Wenn sys mehrere Übergänge hat, gibt margin den Amplitudenrand zurück, der am nächsten an 0 dB liegt. Negative Amplitudenränder bedeuten, dass die Stabilität durch Verringern der Verstärkung verloren geht, während positive Amplitudenränder bedeuten, dass die Stabilität durch Erhöhen der Verstärkung verloren geht.

Der Amplitudenrand Gm wird in absoluten Einheiten berechnet. Sie können den Amplitudenrand folgendermaßen in dB berechnen:

Gm_dB = 20*log10(Gm)

Phasenrand, zurückgegeben als Skalar oder Array. Wenn sys:

  • Ein einzelnes Modell ist, dann wird Pm als Skalar zurückgegeben.

  • Ein Modell-Array ist, dann ist Pm ein Array der Phasenränder von jedem Modell in sys.

Der Phasenrand ist die Differenz zwischen der Phase der Antwort und –180°, wenn die Schleifenverstärkung 1,0 beträgt. Wenn sys mehrere Übergänge hat, gibt margin den Phasenrand zurück, der am nächsten an 0° liegt.

Der Phasenrand Pm wird in Grad ausgedrückt.

Phasendurchtrittsfrequenz, zurückgegeben als Skalar. Wcg ist die Frequenz, bei der der Amplitudenrand gemessen wird, d. h. eine Frequenz, bei der die Phasenverschiebung –180° beträgt.

Wcg wird in Radiant/TimeUnit ausgedrückt, wobei TimeUnit die Einheit ist, die in der TimeUnit-Eigenschaft von sys angegeben ist.

Amplitudendurchtrittsfrequenz, zurückgegeben als Skalar. Wcp ist die Frequenz, bei der der Phasenrand gemessen wird, d. h. eine Frequenz, bei der der Betrag der Übertragungsfunktion 0 dB beträgt.

Wcp wird in Radiant/TimeUnit ausgedrückt, wobei TimeUnit die Einheit ist, die in der TimeUnit-Eigenschaft von sys angegeben ist.

Tipps

  • Wenn Sie margin(mag,phase,w) verwenden, verlässt sich margin auf Interpolation, um die Reserven anzunähern, was im Allgemeinen zu weniger genauen Ergebnissen führt. Wenn sich zum Beispiel kein 0-dB-Übergang innerhalb des Bereichs w befindet, gibt margin einen Phasenrand von Inf zurück. Bei einem analytischen Modell sys ist daher die Verwendung von [Gm,Pm,Wcg,Wcp] = margin(sys) eine fehlerresistentere Methode zum Erhalten der Reserven.

  • Wenn Sie Robust Control Toolbox™-Software haben, können Sie mit diskmargin (Robust Control Toolbox) Disk Margins berechnen, die einen Bereich „sicherer“ Amplituden- und Phasenränder definieren, für die die Rückkopplungsschleife stabil bleibt.

Versionsverlauf

Eingeführt vor R2006a

alle erweitern