frd
Frequenzgang-Datenmodell
Beschreibung
Verwenden Sie frd, um reellwertige oder komplexwertige Frequenzgang-Datenmodelle zu erstellen oder um dynamische Systemmodelle in die Frequenzgang-Datenmodell-Form zu konvertieren.
Frequenzgang-Datenmodelle speichern komplexe Frequenzgangdaten mit entsprechenden Frequenzpunkten. Ein Frequenzgang-Datenmodell H(jwi) speichert beispielsweise den Frequenzgang bei jeder Eingangsfrequenz wi, wobei i = 1,…,n. Das frd-Modellobjekt kann SISO- oder MIMO-Frequenzgang-Datenmodelle in kontinuierlicher oder diskreter Zeit darstellen. Weitere Informationen finden Sie unter Frequency Response Data (FRD) Models.
Sie können frd auch verwenden, um verallgemeinerte Frequenzgang-Datenmodelle (genfrd) zu erstellen.
Erstellung
frd-Modelle erhalten Sie wie folgt.
Erstellen Sie das Modell aus Frequenzgangdaten mithilfe des Befehls
frd. Beispielsweise können Sie einfrd-Modell mit bei bestimmten Frequenzen abgerufenen Frequenzgangdaten erstellen.Ein Beispiel hierzu finden Sie unter SISO-Frequenzgang-Datenmodell.
Konvertieren Sie ein lineares Modell wie ein
ss-Modell in einfrd-Modell, indem Sie den Frequenzgang des Modells bei bestimmten Frequenzen berechnen.Ein Beispiel hierzu finden Sie unter Konvertieren des Zustandsraummodells in ein Frequenzgang-Datenmodell.
Schätzen Sie das Modell mithilfe von Offline-Frequenzgang-Schätzungsworkflows. Für diese Workflows wird die Software Simulink® Control Design™ benötigt.
Weitere Informationen finden Sie unter Estimate Frequency Response at the Command Line (Simulink Control Design) und Estimate Frequency Response Using Model Linearizer (Simulink Control Design).
Syntax
Beschreibung
legt die Eigenschaften des Frequenzgang-Datenmodells mit einem oder mehreren Name-Wert-Argumenten für eine beliebige vorherige Eingang-Argument-Kombination fest.sys = frd(___,Name,Value)
interpretiert die Frequenzen in den von sys = frd(ltiSys,frequency,FrequencyUnits)FrequencyUnit angegebenen Einheiten.
Eingangsargumente
Frequenzgangdaten, angegeben als Vektor oder mehrdimensionales Array mit komplexen Zahlen.
Bei SISO-Systemen geben Sie einen Vektor der Frequenzgangwerte an den in
frequencyfestgelegten Frequenzpunkten an.Bei MIMO-Systemen mit
NuEingängen undNyAusgängen geben Sie einNy-mal-Nu-mal-Nf-Array an, wobeiNfdie Anzahl der Frequenzpunkte ist.Für ein
S1-...mal-Sn-Array aus Modellen mitNuEingängen undNyAusgängen geben Sie ein mehrdimensionales Array der Größe [NyNuNfS1...Sn] an.Ein
responsemit Größe [Ny,Nu,Nf,3,4] stellt beispielsweise die Antwortdaten für ein 3-mal-4-Array aus Modellen dar. Jedes Modell weistNyAusgänge,NuEingänge undNfFrequenzpunkte auf.
Dieser Eingang legt die Eigenschaft ResponseData fest.
Frequenzpunkte, die response entsprechen, angegeben als Vektor mit Nf Punkten. frequency kann sowohl positive als auch negative Frequenzen umfassen.
Dieser Eingang legt die Eigenschaft Frequency fest.
Abtastzeit, angegeben als ein Skalar.
Der Eingang legt die Eigenschaft Ts fest.
Dynamisches System, das als dynamisches Systemmodell vom Typ SISO oder MIMO oder als Array von dynamischen Systemmodellen angegeben wird. Zu den dynamischen Systemen, die Sie verwenden können, zählen:
Zeitkontinuierliche oder zeitdiskrete numerische LTI-Modelle, wie
tf,zpk,ssoderpid.Verallgemeinerte oder unsichere LTI-Modelle wie z. B.
genss- oderuss(Robust Control Toolbox)-Modelle. (Für die Verwendung unsicherer Modelle ist die Software Robust Control Toolbox™ erforderlich.)Das resultierende
frd-Modell geht von den folgenden Annahmen aus:Aktuelle Werte der optimierbaren Komponenten für optimierbare Regelungsentwurf-Blöcke
Nominale Modellwerte für unsichere Regelungsentwurf-Blöcke
Identifizierte LTI-Modelle wie
idtf(System Identification Toolbox)-,idss(System Identification Toolbox)-,idproc(System Identification Toolbox)-,idpoly(System Identification Toolbox)- undidgrey(System Identification Toolbox)-Modelle. (Für die Verwendung von identifizierten Modellen ist die Software System Identification Toolbox™ erforderlich.)
Eigenschaften
Frequenzgangdaten, angegeben als mehrdimensionales Array aus komplexen Zahlen.
Bei SISO-Systemen ist
ResponseDataein1-mal-1-mal-Nf-Array aus Frequenzgangwerten bei denNfFrequenzpunkten, die von der EigenschaftFrequencyangegeben werden.Bei MIMO-Systemen mit
NuEingängen undNyAusgängen istResponseDataeinNy-mal-Nu-mal-Nf-Array, wobeiNfdie Anzahl der Frequenzpunkte ist.Beispielsweise stellt
ResponseData(ky,ku,kf)den Frequenzgang vom Eingangkuzum Ausgangkymit FrequenzFrequency(kf)dar.Bei einem
S1-...-mal-Sn-Array aus Modellen mitNuEingängen undNyAusgängen istResponseDataein mehrdimensionales Array der Größe [NyNuNfS1...Sn].Ein
ResponseDatamit Größe [Ny,Nu,Nf,3,4] stellt beispielsweise die Antwortdaten für ein 3-mal-4-Array aus Modellen dar. Jedes Modell weistNyAusgänge,NuEingänge undNfFrequenzpunkte auf.
Frequenzpunkte, die ResponseData entsprechen, angegeben als Vektor mit Nf Punkten, in den von FrequencyUnit angegebenen Einheiten.
Einheiten des Frequenzvektors in der Eigenschaft Frequency, angegeben als einer der folgenden Werte:
'rad/TimeUnit''cycles/TimeUnit''rad/s''Hz''kHz''MHz''GHz''rpm'
Die Einheiten 'rad/TimeUnit' und 'cycles/TimeUnit' sind relativ zu den Zeiteinheiten, die in der Eigenschaft TimeUnit festgelegt wurden.
Eine Änderung dieser Eigenschaft bewirkt keine Neuabtastung oder Konvertierung der Daten. Die Änderung der Eigenschaft ändert nur die Interpretation der vorhandenen Daten. Verwenden Sie chgFreqUnit, um die Daten in andere Frequenzeinheiten zu konvertieren.
Transportverzögerung, die als eine der folgenden Optionen angegeben wird:
Skalar: Geben Sie die Transportverzögerung für ein SISO-System oder die gleiche Transportverzögerung für alle Eingangs-/Ausgangspaare eines MIMO-Systems an.
NyxNu-Array: Geben Sie separate Transportverzögerungen für jedes Eingangs-/Ausgangspaar eines MIMO-Systems an. Dabei istNydie Anzahl der Ausgänge undNudie Anzahl der Eingänge.
Für zeitkontinuierliche Systeme geben Sie die Transportverzögerungen in der Zeiteinheit an, die durch die Eigenschaft TimeUnit festgelegt ist. Für zeitdiskrete Systeme geben Sie die Transportverzögerungen in ganzzahligen Vielfachen der Abtastzeit Ts an.
Eingangsverzögerung für jeden Eingangskanal, die als eine der folgenden Optionen angegeben wird:
Skalar: Geben Sie die Eingangsverzögerung für ein SISO-System oder die gleiche Transportverzögerung für alle Eingänge eines Systems mit mehreren Eingängen an.
Nux1-Vektor: Geben Sie separate Eingangsverzögerungen für die Eingänge eines Systems mit mehreren Eingängen an, wobeiNudie Anzahl der Eingänge ist.
Für zeitkontinuierliche Systeme geben Sie die Eingangsverzögerungen in der Zeiteinheit an, die durch die Eigenschaft TimeUnit festgelegt ist. Für zeitdiskrete Systeme geben Sie die Eingangsverzögerungen in ganzzahligen Vielfachen der Abtastzeit Ts an.
Weitere Informationen finden Sie unter Time Delays in Linear Systems.
Ausgangsverzögerung für jeden Ausgangskanal, die als eine der folgenden Optionen angegeben wird:
Skalar: Geben Sie die Ausgangsverzögerung für ein SISO-System oder die gleiche Verzögerung für alle Ausgänge eines Systems mit mehreren Ausgängen an.
Nyx1-Vektor: Geben Sie separate Ausgangsverzögerungen für die Ausgänge eines Systems mit mehreren Ausgängen an, wobeiNydie Anzahl der Ausgänge ist.
Für zeitkontinuierliche Systeme geben Sie die Ausgangsverzögerungen in der Zeiteinheit an, die durch die Eigenschaft TimeUnit festgelegt ist. Für zeitdiskrete Systeme geben Sie die Ausgangsverzögerungen in ganzzahligen Vielfachen der Abtastzeit Ts an.
Weitere Informationen finden Sie unter Time Delays in Linear Systems.
Abtastzeit, angegeben als:
0bei zeitkontinuierlichen Systemen.Ein positiver Skalar, der die Abtastzeit eines zeitdiskreten Systems angibt. Geben Sie
Tsin der Zeiteinheit an, die durch die EigenschaftTimeUnitfestgelegt ist.-1für ein zeitdiskretes System mit einer nicht festgelegten Abtastzeit.
Hinweis
Eine Änderung von Ts bewirkt keine Diskretisierung oder Neuabtastung des Modells.
Die Zeitvariablen können folgende Einheiten haben:
'nanoseconds''microseconds''milliseconds''seconds''minutes''hours''days''weeks''months''years'
Die Änderung von TimeUnit hat keine Auswirkungen auf andere Eigenschaften, ändert aber das gesamte Systemverhalten. Verwenden Sie chgTimeUnit, um zwischen Zeiteinheiten zu konvertieren, ohne das Systemverhalten zu ändern.
Namen der Eingangskanäle, die als eine der folgenden Optionen angegeben werden:
Zeichenvektor, für Modelle mit einem Eingang.
Zellenarray von Zeichenvektoren, für Modelle mit mehreren Eingängen.
'', ohne Angabe von Namen, für beliebige Eingangskanäle.
Sie können aber auch Eingangsnamen für Modelle mit mehreren Eingängen mithilfe der automatischen Vektorerweiterung zuweisen. Wenn sys zum Beispiel ein Modell mit zwei Eingängen ist, geben Sie Folgendes ein.
sys.InputName = 'controls';Die Eingangsnamen werden automatisch zu {'controls(1)';'controls(2)'} erweitert.
Sie können die Kurzschreibweise u verwenden, um auf die Eigenschaft InputName zu verweisen. Beispielsweise ist sys.u gleichbedeutend mit sys.InputName.
Verwenden Sie InputName, um:
Kanäle auf der Modellanzeige und in Diagrammen zu identifizieren.
Subsysteme von MIMO-Systemen zu extrahieren.
Verbindungspunkte festzulegen, wenn Sie Modelle miteinander verbinden.
Die Eingangskanäle können folgende Einheiten haben:
Zeichenvektor, für Modelle mit einem Eingang.
Zellenarray von Zeichenvektoren, für Modelle mit mehreren Eingängen.
'', ohne Angabe von Einheiten, für beliebige Eingangskanäle.
Verwenden Sie InputUnit, um die Einheiten des Eingangssignals anzugeben. InputUnit hat keine Auswirkung auf das Systemverhalten.
Eingangskanalgruppen, angegeben als Struktur. Verwenden Sie InputGroup, um die Eingangskanäle von MIMO-Systemen in Gruppen einzuteilen und jede Gruppe mit einem Namen zu versehen. Die Feldnamen von InputGroup sind die Gruppennamen und die Feldwerte sind die Eingangskanäle der einzelnen Gruppen. Geben Sie zum Beispiel Folgendes ein, um Eingangsgruppen mit den Namen controls und noise zu erstellen, die die Eingangskanäle 1 und 2 bzw. 3 und 5 enthalten.
sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5];
Sie können dann das Subsystem von den controls-Eingängen auf alle Ausgänge extrahieren, indem Sie Folgendes verwenden:
sys(:,'controls')Standardmäßig ist InputGroup eine Struktur ohne Felder.
Namen der Ausgangskanäle, die als eine der folgenden Optionen angegeben werden:
Zeichenvektor, für Modelle mit einem Ausgang.
Zellenarray von Zeichenvektoren, für Modelle mit mehreren Ausgängen.
'', ohne Angabe von Namen, für beliebige Ausgangskanäle.
Sie können aber auch Ausgangsnamen für Modelle mit mehreren Ausgängen mithilfe der automatischen Vektorerweiterung zuweisen. Wenn sys zum Beispiel ein Modell mit zwei Ausgängen ist, geben Sie Folgendes ein:
sys.OutputName = 'measurements';Die Ausgangsnamen werden automatisch zu {'measurements(1)';'measurements(2)'} erweitert.
Sie können auch die Kurzschreibweise y verwenden, um auf die Eigenschaft OutputName zu verweisen. Beispielsweise ist sys.y gleichbedeutend mit sys.OutputName.
Verwenden Sie OutputName, um:
Kanäle auf der Modellanzeige und in Diagrammen zu identifizieren.
Subsysteme von MIMO-Systemen zu extrahieren.
Verbindungspunkte festzulegen, wenn Sie Modelle miteinander verbinden.
Die Ausgangskanäle können folgende Einheiten haben:
Zeichenvektor, für Modelle mit einem Ausgang.
Zellenarray von Zeichenvektoren, für Modelle mit mehreren Ausgängen.
'', ohne Angabe von Einheiten, für beliebige Ausgangskanäle.
Verwenden Sie OutputUnit, um die Einheiten des Ausgangssignals anzugeben. OutputUnit hat keine Auswirkung auf das Systemverhalten.
Ausgangskanalgruppen, angegeben als Struktur. Verwenden Sie OutputGroup, um die Ausgangskanäle von MIMO-Systemen in Gruppen einzuteilen und jede Gruppe mit einem Namen zu versehen. Die Feldnamen von OutputGroup sind die Gruppennamen und die Feldwerte sind die Ausgangskanäle der einzelnen Gruppen. Geben Sie zum Beispiel Folgendes ein, um Ausgangsgruppen mit den Namen temperature und measurement zu erstellen, die die Ausgangskanäle 1 bzw. 3 bzw. 5 enthalten.
sys.OutputGroup.temperature = [1]; sys.OutputGroup.measurement = [3 5];
Sie können dann das Subsystem von allen Eingängen in die measurement-Ausgänge extrahieren, indem Sie Folgendes verwenden:
sys('measurement',:)Standardmäßig ist OutputGroup eine Struktur ohne Felder.
Systemname, angegeben als Zeichenvektor. Zum Beispiel: 'system_1'.
Vom Benutzer angegebener Text, den Sie mit dem System verknüpfen möchten, angegeben als Zeichenvektor oder Zellenarray von Zeichenvektoren. Zum Beispiel: 'System is MIMO'.
Benutzerspezifische Daten, die Sie mit dem System verknüpfen möchten, angegeben als beliebiger MATLAB-Datentyp.
Abtastgitter für Modellarrays, angegeben als Struktur-Array.
Verwenden Sie SamplingGrid, um die Variablenwerte zu verfolgen, die mit jedem Modell in einem Modellarray verbunden sind, einschließlich identifizierter linearer zeitinvarianter Modellarrays (IDLTI-Modellarrays).
Setzen Sie die Feldnamen der Struktur auf die Namen der Abtastvariablen. Setzen Sie die Feldwerte auf die Werte der Abtastvariablen, die mit jedem Modell im Array verbunden sind. Alle Abtastvariablen müssen numerische Skalare sein und alle Arrays der Abtastwerte müssen den Dimensionen des Modellarrays entsprechen.
Sie können zum Beispiel ein 11x1-Array mit linearen Modellen, sysarr, erstellen, indem Sie Schnappschüsse eines linearen zeitvariablen Systems zu den Zeiten t = 0:10 machen. Der folgende Code speichert die Zeitabtastungen mit den linearen Modellen.
sysarr.SamplingGrid = struct('time',0:10)In ähnlicher Weise können Sie ein 6x9-Modellarray M erstellen, indem Sie zwei Variablen, zeta und w, unabhängig voneinander abtasten. Der folgende Code ordnet die (zeta,w)-Werte M zu.
[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',w)
Wenn Sie M anzeigen, enthält jeder Eintrag im Array die entsprechenden Werte für zeta und w.
M
M(:,:,1,1) [zeta=0.3, w=5] =
25
--------------
s^2 + 3 s + 25
M(:,:,2,1) [zeta=0.35, w=5] =
25
----------------
s^2 + 3.5 s + 25
...Bei Modellarrays, die durch die Linearisierung eines Simulink-Modells bei mehreren Parameterwerten oder Betriebspunkten erzeugt werden, füllt die Software das SamplingGrid automatisch mit den Variablenwerten auf, die den einzelnen Einträgen im Array entsprechen. Zum Beispiel füllen die Simulink Control Design-Befehle linearize (Simulink Control Design) und slLinearizer (Simulink Control Design) das SamplingGrid automatisch auf.
Standardmäßig handelt es sich bei SamplingGrid um eine Struktur ohne Felder.
Objektfunktionen
Die folgenden Listen enthalten eine repräsentative Teilmenge der Funktionen, die Sie mit frd-Modellen verwenden können. Im Allgemeinen sind viele Funktionen, die auf Dynamische Systemmodelle anwendbar sind, ebenfalls auf das frd-Objekt anwendbar. frd-Modelle funktionieren nicht mit Zeitdomänen-Analysefunktionen.
bode | Bode-Frequenzgang eines dynamischen Systems |
sigma | Singular values of frequency response of dynamic system |
nyquist | Nyquist-Antwort eines dynamischen Systems |
nichols | Nichols response of dynamic system |
bandwidth | Frequency response bandwidth |
freqresp | Evaluate system response over a grid of frequencies |
margin | Amplitudenrand, Phasenrand und Übergangsfrequenzen |
chgFreqUnit | Change frequency units of frequency-response data model |
chgTimeUnit | Change time units of dynamic system |
frdfun | Apply a function to the frequency response value at each frequency of an
frd model object |
fselect | Select frequency points or range in FRD model |
interp | Interpolate FRD model |
fcat | Concatenate FRD models along frequency dimension |
fnorm | Pointwise peak gain of FRD model |
pidtune | PID tuning algorithm for linear plant model |
Beispiele
Erstellen Sie ein frd-Objekt aus Frequenzgangdaten.
Laden Sie für dieses Beispiel die für ein Wassertankmodell gesammelten Frequenzgangdaten.
load wtankData.matDiese Daten umfassen die Frequenzgangdaten, die für den Frequenzbereich rad/s bis rad/s erfasst wurden.
Erstellen Sie das Modell.
sys = frd(response,frequency)
sys =
Frequency(rad/s) Response
---------------- --------
0.0010 1.562e+01 - 1.9904i
0.0018 1.560e+01 - 2.0947i
0.0034 1.513e+01 - 3.3670i
0.0062 1.373e+01 - 5.4306i
0.0113 1.047e+01 - 7.5227i
0.0207 5.829e+00 - 7.6529i
0.0379 2.340e+00 - 5.6271i
0.0695 7.765e-01 - 3.4188i
0.1274 2.394e-01 - 1.9295i
0.2336 7.216e-02 - 1.0648i
0.4281 2.157e-02 - 0.5834i
0.7848 6.433e-03 - 0.3188i
1.4384 1.916e-03 - 0.1740i
2.6367 5.705e-04 - 0.0950i
4.8329 1.698e-04 - 0.0518i
8.8587 5.055e-05 - 0.0283i
16.2378 1.505e-05 - 0.0154i
29.7635 4.478e-06 - 0.0084i
54.5559 1.333e-06 - 0.0046i
100.0000 3.967e-07 - 0.0025i
Continuous-time frequency response.
Model Properties
Plotten Sie sys.
bode(sys)

Betrachten Sie in diesem Beispiel die folgenden zufällig generierten Antwortdaten und -Frequenzen.
Erstellen Sie ein komplexes Array mit den Dimensionen 3-mal-2-mal-7 und einen Frequenzvektor mit sieben Punkten zwischen 0,01 und 100 rad/s. Setzen Sie die Abtastzeit Ts auf 5 Sekunden.
rng(0) r = randn(3,2,7)+1i*randn(3,2,7); w = logspace(-2,2,7); Ts = 5;
Erstellen Sie das Modell.
sys = frd(r,w,Ts)
sys =
From input 1 to:
Frequency(rad/s) output 1 output 2 output 3
---------------- -------- -------- --------
0.0100 0.5377 + 0.3192i 1.8339 + 0.3129i -2.2588 - 0.8649i
0.0464 -0.4336 + 1.0933i 0.3426 + 1.1093i 3.5784 - 0.8637i
0.2154 0.7254 - 0.0068i -0.0631 + 1.5326i 0.7147 - 0.7697i
1.0000 1.4090 - 1.0891i 1.4172 + 0.0326i 0.6715 + 0.5525i
4.6416 0.4889 - 1.4916i 1.0347 - 0.7423i 0.7269 - 1.0616i
21.5443 0.8884 - 0.1924i -1.1471 + 0.8886i -1.0689 - 0.7648i
100.0000 0.3252 - 0.1774i -0.7549 - 0.1961i 1.3703 + 1.4193i
From input 2 to:
Frequency(rad/s) output 1 output 2 output 3
---------------- -------- -------- --------
0.0100 0.8622 - 0.0301i 0.3188 - 0.1649i -1.3077 + 0.6277i
0.0464 2.7694 + 0.0774i -1.3499 - 1.2141i 3.0349 - 1.1135i
0.2154 -0.2050 + 0.3714i -0.1241 - 0.2256i 1.4897 + 1.1174i
1.0000 -1.2075 + 1.1006i 0.7172 + 1.5442i 1.6302 + 0.0859i
4.6416 -0.3034 + 2.3505i 0.2939 - 0.6156i -0.7873 + 0.7481i
21.5443 -0.8095 - 1.4023i -2.9443 - 1.4224i 1.4384 + 0.4882i
100.0000 -1.7115 + 0.2916i -0.1022 + 0.1978i -0.2414 + 1.5877i
Sample time: 5 seconds
Discrete-time frequency response.
Model Properties
Die angegebenen Daten resultieren in einem frd-Modell mit zwei Eingängen und drei Ausgängen.
Für dieses Beispiel erstellen Sie ein Frequenzgang-Datenmodell mit Eigenschaften, die von einem Transferfunktionsmodell geerbt wurden.
Erstellen Sie eine Transferfunktion sys1, deren Eigenschaft TimeUnit auf 'minutes' und deren Eigenschaft InputDelay auf 3 gesetzt ist.
numerator1 = [2,0]; denominator1 = [1,8,0]; sys1 = tf(numerator1,denominator1,'TimeUnit','minutes','InputDelay',3)
sys1 =
2 s
exp(-3*s) * ---------
s^2 + 8 s
Continuous-time transfer function.
Model Properties
propValues1 = {sys1.TimeUnit,sys1.InputDelay}propValues1=1×2 cell array
{'minutes'} {[3]}
Erstellen Sie ein frd-Modell mit von sys1 geerbten Eigenschaften.
rng(0) response = randn(1,1,7)+1i*randn(1,1,7); w = logspace(-2,2,7); sys2 = frd(response,w,sys1)
sys2 =
Frequency(rad/minute) Response
--------------------- --------
0.0100 0.5377 + 0.3426i
0.0464 1.8339 + 3.5784i
0.2154 -2.2588 + 2.7694i
1.0000 0.8622 - 1.3499i
4.6416 0.3188 + 3.0349i
21.5443 -1.3077 + 0.7254i
100.0000 -0.4336 - 0.0631i
Input delays (minutes): 3
Continuous-time frequency response.
Model Properties
propValues2 = {sys2.TimeUnit,sys2.InputDelay}propValues2=1×2 cell array
{'minutes'} {[3]}
Beachten Sie, dass das frd-Modell sys2 dieselben Eigenschaften wie sys1 aufweist.
Laden Sie für dieses Beispiel die für ein Wassertankmodell gesammelten Frequenzgangdaten.
load wtankData.matDas Modell weist einen Eingang, Spannung, und einen Ausgang, Wasserstand, auf.
Erstellen Sie ein frd-Modell und geben Sie die Namen für Eingang und Ausgang an.
sys = frd(response,frequency,'InputName','Voltage','OutputName','Height');
Plotten Sie den Frequenzgang.
bode(sys)

Die Namen des Eingangs und des Ausgangs werden auf dem Bode-Diagramm angezeigt. Die Eingänge und Ausgänge zu benennen, kann nützlich sein, wenn Sie mit den Antwortdiagrammen für MIMO-Systeme arbeiten.
Berechnen Sie in diesem Beispiel das frd-Modell des folgenden Zustandsraummodells:
Erstellen Sie ein Zustandsraummodell unter Verwendung der Zustandsraummatrizen.
A = [-2 -1;1 -2]; B = [1 1;2 -1]; C = [1 0]; D = [0 1]; ltiSys = ss(A,B,C,D);
Konvertieren Sie das Zustandsraummodell ltiSys in ein frd-Modell für die Frequenzen zwischen 0,01 und 100 rad/s.
w = logspace(-2,2,50); sys = frd(ltiSys,w);
Vergleichen Sie die Frequenzgänge.
bode(ltiSys,'b',sys,'r--')

Die Antworten sind identisch.
Um Array aus frd-Modellen zu erstellen, können Sie ein mehrdimensionales Array der Frequenzgangdaten angeben.
Beispiel: Wenn Sie die Antwortdaten als numerisches Array mit Größe [NY NU NF S1 ... Sn] angeben, gibt die Funktion ein S1-mal-...-mal-Sn-Array aus frd-Modellen zurück. Jedes dieser Modelle weist NY Ausgänge, NU Eingänge und NF Frequenzpunkte auf.
Erstellen Sie ein 2-mal-3-Array aus zufälligen Antwortdaten mit Modellen mit einem Ausgang und zwei Eingängen mit 10 Frequenzpunkten zwischen 0,1 und 10 rad/s.
w = logspace(-1,1,10); r = randn(1,2,10,2,3)+1i*randn(1,2,10,2,3); sys = frd(r,w);
Extrahieren Sie das Modell bei Index (2,1) aus dem Modellarray.
sys21 = sys(:,:,2,1)
sys21 =
From input 1 to:
Frequency(rad/s) output 1
---------------- --------
0.1000 0.6715 + 0.0229i
0.1668 0.7172 - 1.7502i
0.2783 0.4889 - 0.8314i
0.4642 0.7269 - 1.1564i
0.7743 0.2939 - 2.0026i
1.2915 0.8884 + 0.5201i
2.1544 -1.0689 - 0.0348i
3.5938 -2.9443 + 1.0187i
5.9948 0.3252 - 0.7145i
10.0000 1.3703 - 0.2248i
From input 2 to:
Frequency(rad/s) output 1
---------------- --------
0.1000 -1.2075 - 0.2620i
0.1668 1.6302 - 0.2857i
0.2783 1.0347 - 0.9792i
0.4642 -0.3034 - 0.5336i
0.7743 -0.7873 + 0.9642i
1.2915 -1.1471 - 0.0200i
2.1544 -0.8095 - 0.7982i
3.5938 1.4384 - 0.1332i
5.9948 -0.7549 + 1.3514i
10.0000 -1.7115 - 0.5890i
Continuous-time frequency response.
Model Properties
Sie können negative Frequenzwerte in einem frd-Objekt angeben. Diese Funktion ist nützlich, wenn Sie die Frequenzgangdaten von Modellen mit komplexen Koeffizienten erfassen möchten.
Erstellen Sie einen Frequenzvektor mit positiven und negativen Werten.
w0 = sort([-logspace(-2,2,50) 0 logspace(-2,2,50)]);
Erstellen Sie ein Zustandsraummodell mit komplexen Koeffizienten.
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);
Konvertieren Sie das Modell in ein frd-Modell mit den angegebenen Frequenzen.
sys = frd(Gc,w0);
Plotten Sie den Frequenzgang der Modelle.
bode(Gc,'b',sys,'r--')

Die Diagrammantworten ähneln sich stark. Das Diagramm umfasst bei Modellen mit komplexen Koeffizienten zwei Zweige, einen für positive Frequenzen mit Pfeil nach rechts und einen für negative Frequenzen mit Pfeil nach links. Bei beiden Zweigen weisen die Pfeile auf die Richtung zunehmender Frequenzen hin.
Versionsverlauf
Eingeführt vor R2006a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)