Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

iddata

Eingangs-/Ausgangsdaten und ihre Eigenschaften zur Systemidentifikation in der Zeit- oder Frequenzdomäne

Beschreibung

Verwenden Sie das iddata-Objekt, um Eingangs- und Ausgangsmessdaten für das System, das Sie identifizieren möchten, zusammenzufassen. Systemidentifizierungsfunktionen verwenden diese Messungen, um ein Modell zu schätzen. Modellvalidierungsfunktionen verwenden die Eingabemessungen als Input für Simulationen und die Ausgabemessungen, um zu vergleichen, wie gut die geschätzte Modellreaktion mit den Originaldaten übereinstimmt.

iddata-Objekte können einen einzelnen Satz oder mehrere Sätze von Messungen enthalten. Jeder Datensatz entspricht einem Experiment. Die Objekte haben die folgenden Merkmale, die in den Objekteigenschaften kodiert sind:

  • Die Daten können in der Frequenz- oder Zeitdomäne liegen. Sie können Objekte von einer Domäne in die andere konvertieren.

  • In der Zeitdomäne können die Daten gleichmäßig oder ungleichmäßig abgetastet werden. Zur Verwendung des iddata-Objekts zur Schätzung müssen die Daten jedoch gleichmäßig abgetastet werden, und die Eingangs- und Ausgangsdaten für jedes Experiment müssen zu denselben Zeitpunkten aufgezeichnet werden.

  • Sie können Dateneigenschaften angeben, wie z. B. die Abtastzeit, die Startzeit, die Zeitpunkte, die Frequenzabtastpunkte und das Verhalten zwischen den Abtastungen.

  • Sie können Beschriftungen und Kommentare eingeben, um Datenkomponenten, Experimente und das Objekt als Ganzes zu unterscheiden und zu kommentieren.

Verwenden Sie die Punktschreibweise, um auf die Objekteigenschaften zuzugreifen. Nehmen wir zum Beispiel an, Sie erstellen ein iddata-Objekt mit dem Befehl sys = iddata(ym,um,Tsamp), wobei ym gemessene Ausgangsdaten sind, um gemessene Eingangsdaten sind und Tsamp die Abtastzeit ist. iddata speichert diese Variablen in den Eigenschaften InputData, OutputData und Ts ab. Sie können die Daten mit sys.InputData, sys.OutputData und sys.Ts anzeigen oder ändern. Ein Beispiel für die Verwendung der Punktnotation zum Anzeigen und Ändern von Eigenschaften finden Sie unter Anzeigen und Ändern von Eigenschaften.

Erstellung

Beschreibung

Verwenden von Zeitdomänendaten

data = iddata(y,u,Ts) erstellt ein iddata-Objekt, das ein Ausgangssignal y in der Zeitdomäne und ein Eingangssignal u enthält. Ts gibt die Abtastzeit der experimentellen Daten an.

Sie können mit iddata ein Multiexperiment-iddata-Objekt erstellen, indem Sie y und u als Zellenarrays angeben. Alternativ können Sie auch Einzelexperiment-iddata-Objekte erstellen und die Objekte mit merge (iddata) zu einem Multiexperiment-iddata-Objekt kombinieren. Weitere Informationen über Multiexperiment-iddata-Objekte finden Sie unter Create Multiexperiment Data at the Command Line.

Beispiel

data = iddata(y,[],Ts) erstellt ein iddata-Objekt für Zeitreihendaten. Das Objekt enthält ein Ausgangssignal y in der Zeitdomäne und ein leeres Eingangssignal []. Ts gibt die Abtastzeit der experimentellen Daten an.

Beispiel

data = iddata(tt) erstellt ein iddata-Objekt aus dem Zeitplan tt.

Die Software extrahiert die Variablennamen und die Abtastzeit aus tt.

Standardmäßig interpretiert die Software die letzte Variable in tt als den einzigen Ausgangskanal und alle anderen Variablen als Eingangskanäle. Um diese Interpretation zu ändern, legen Sie die Eigenschaften 'InputName' und 'OutputName' mit Name-Wert-Argumenten fest.

Beispiel

Verwenden von Frequenzdomänendaten

data = iddata(y,u,Ts,'Frequency',W) erstellt ein iddata-Objekt, das Frequenzdomänendaten enthält. W setzt die iddata-Eigenschaft Frequency auf einen Vektor von Frequenzen. Typischerweise sind y und u die diskreten Fourier-Transformationen von Zeitdomänensignalen.

Beispiel

Konfigurieren zusätzlicher Eigenschaften

data = iddata(___,Name,Value) legt zusätzliche Eigenschaften mit Name-Wert-Argumenten fest. Legen Sie Name,Value nach einer der Eingangsargumentkombinationen in den vorangegangenen Syntaxen fest.

Beispiel

Eingangsargumente

alle erweitern

Ausgangssignal eines Systems, angegeben in Form einer der folgenden Möglichkeiten:

  • Ein N-mal-1-Vektor für ein Einzelausgangssystem, wobei N die Anzahl der Beobachtungen ist

  • Eine N-mal-Ny-Matrix für ein System mit mehreren Ausgängen, wobei Ny die Anzahl der Ausgangskanäle ist

  • Ein Zellenarray mit Ne Elementen für einen Multiexperiment-Datensatz, wobei Ne die Anzahl der Experimente ist und jede Zelle die Ausgangssignale für ein Experiment enthält

  • [] für ein System, das kein Ausgangssignal hat, z. B. wenn nur das Eingangssignal aufgezeichnet wird

y muss in derselben Domäne liegen wie die Eingangsdaten u. Wenn die Daten in der Zeitdomäne liegen, müssen y und u zu den gleichen Zeitpunkten aufgezeichnet werden.

Wenn Sie das iddata-Objekt zur Schätzung verwenden, müssen y und u gleichmäßig abgetastet werden. Wenn die Ungleichmäßigkeit gering ist, können Sie Ihre Daten möglicherweise mit ausreichender Integrität in einen einheitlich abgetasteten Satz konvertieren, so dass die konvertierten Daten eine Schätzung ermöglichen. Weitere Informationen über Techniken, die Sie ausprobieren können, finden Sie unter interp1 und Missing Data in MATLAB.

y legt die OutputData-Eigenschaft des iddata-Objekts fest.

Eingangssignal eines Systems, angegeben in Form einer der folgenden Möglichkeiten:

  • Ein N-mal-1-Vektor für ein einzelnes Eingangssystem, wobei N die Anzahl der Beobachtungen ist

  • Eine N-mal-Nu-Matrix für ein System mit mehreren Eingängen, wobei Nu die Anzahl der Eingangskanäle ist

  • Ein Zellenarray mit Ne Elementen für einen Multiexperiment-Datensatz, wobei Ne die Anzahl der Experimente ist und jede Zelle die Eingangssignale für ein Experiment enthält

  • [] für ein System, das kein Eingangssignal hat, wie z. B. eine Zeitreihe

u muss in derselben Domäne wie die Ausgangsdaten y liegen. Wenn die Daten in der Zeitdomäne liegen, müssen y und u zu den gleichen Zeitpunkten aufgezeichnet werden.

Wenn Sie das iddata-Objekt zur Schätzung verwenden, müssen y und u gleichmäßig abgetastet werden. Wenn die Ungleichmäßigkeit gering ist, können Sie Ihre Daten möglicherweise mit ausreichender Integrität in einen einheitlich abgetasteten Satz konvertieren, so dass die konvertierten Daten eine Schätzung ermöglichen. Weitere Informationen über Techniken, die Sie ausprobieren können, finden Sie unter interp1 und Missing Data in MATLAB.

u legt die InputData-Eigenschaft des iddata-Objekts fest.

Zeitplan der Eingangs- und Ausgangssignale, angegeben als Zeitplan, der einen regelmäßig verteilten Zeitvektor verwendet.

Geben Sie bei Multiexperiment-Daten tt als ein Ne-x-1-Zellenarray an, wobei Ne die Anzahl der Experimente ist.

Um festzustellen, welche Variablen Eingangssignale und welche Ausgangssignale sind, oder um eine Teilmenge der Variablen für die Konvertierung zu extrahieren, legen Sie die Eigenschaften 'InputName' und 'OutputName' mit Name-Wert-Argumenten fest.

Abtastzeit in den Einheiten, die durch die Eigenschaft TimeUnit festgelegt ist, angegeben in Form einer der folgenden Möglichkeiten:

  • Ein Skalar, wenn y und u gleichmäßig abgetastet werden.

  • 0 für zeitkontinuierliche Daten in der Frequenzdomäne.

  • [], wenn y und u nicht gleichmäßig abgetastet werden und Sie die Zeitwerte in der Eigenschaft SamplingInstants angeben. Bei ungleichmäßiger Abtastung müssen y und u in der Zeitdomäne liegen.

Ts legt die Ts-Eigenschaft des iddata-Objekts fest.

Eigenschaften

alle erweitern

Zeit- oder Frequenzdomäne der Daten, angegeben als eine der folgenden:

  • 'Time' – Die Daten liegen in der Zeitdomäne

  • 'Frequency' – Die Daten liegen in der Frequenzdomäne

Name jedes im iddata-Objekt enthaltenen Datensatzes, angegeben als ein Ne-x-1-Zellenarray von Zeichenvektoren, wobei Ne die Anzahl der Experimente ist. Jede Zelle enthält den Namen des entsprechenden Experiments. Zum Beispiel enthält {'MyMeas1';'MyMeas2';'MyMeas3'} Experimentnamen für ein iddata-Objekt für drei Experimente.

Frequenzwerte für Frequenzdomänendaten, angegeben als:

  • Ein N-mal-1-Vektor, wobei N die Anzahl der Frequenzwerte in einem einzelnen Experiment ist; oder

  • Ein 1-mal-Ne-Zellenarray, wobei Ne die Anzahl der Experimente ist und jede Zelle den Frequenzvektor für das entsprechende Experiment enthält. Die Frequenzvektoren müssen alle in denselben Einheiten vorliegen.

Frequenzeinheiten für Frequenzdomänendaten, angegeben als Skalar. Diese Eigenschaft gilt für alle Elemente des Datensatzes.

Durch die Änderung dieser Eigenschaft werden die Daten nicht skaliert oder konvertiert. Die Änderung der Eigenschaft ändert nur die Interpretation der vorhandenen Daten.

Eingangssignalwerte für das System, angegeben in Form einer der folgenden Möglichkeiten:

  • Bei einem einzelnen Experiment eine N-mal-Nu-Matrix, wobei N die Anzahl der Datenproben und Nu die Anzahl der Eingangskanäle ist

  • Bei Mehrfachexperimenten ein Zellenarray mit Ne Einzelexperiment-Matrizen, wobei Ne die Anzahl der Experimente ist

Beim Zugriff auf InputData von der Befehlszeile aus können Sie die Abkürzungsform u verwenden. Beispielsweise ist u1 = data.InputData gleichbedeutend mit u1 = data.u.

Eingangskanalnamen, angegeben als Nu-mal-1 Zellenarray, wobei Nu die Anzahl der Eingangskanäle ist.

Eingangskanaleinheiten, angegeben als Nu-mal-1-Zellenarray, wobei Nu die Anzahl der Eingangskanäle ist. Jede Zelle enthält die Einheiten des entsprechenden Eingangskanals.

Beispiel: {'rad';'rad/s'}

Das Verhalten zwischen den Abtastungen für Transformationen zwischen diskreter Zeit und kontinuierlicher Zeit, angegeben als Zeichenvektor oder als Zellenarray von Zeichenvektoren. Bei jedem Experiment sind die möglichen Werte für jeden Eingangskanal:

  • zoh – Das Halten der Null-Ordnung erhält ein stückweise konstantes Eingangssignal zwischen den Abtastungen aufrecht.

  • foh – Das Halten erster Ordnung erhält ein stückweise lineares Eingangssignal zwischen den Abtastungen aufrecht.

  • bl – Das bandbegrenzte Verhalten legt fest, dass das zeitkontinuierliche Eingangssignal oberhalb der Nyquist-Frequenz keine Leistung aufweist.

Bei einem einzelnen Experiment mit einem einzigen Eingangskanal enthält InterSample einen der Werte aus der vorstehenden Liste. Bei mehreren Experimenten ist InterSample ein Nu-mal-Ne-Zellenarray, wobei Nu die Anzahl der Eingangskanäle ist und Ne die Anzahl der Experimente ist. Jede Zelle enthält den Verhaltenswert, der mit dem in der Zelle dargestellten Experiment und Eingangskanal verbunden ist.

Name des Datensatzes, angegeben als Zeichenvektor.

Beispiel: 'dryer data'

Kommentare zum Datensatz, angegeben als Zeichenvektor oder, bei Multiexperiment-Datensätzen, als Ne-x-1-Zellenarray von Zeichenvektoren, wobei Ne die Anzahl der Experimente ist.

Beispiel: {'data from experiment 1';data from experiment 2'}

Ausgangssignalwerte des Systems, angegeben in Form einer der folgenden Möglichkeiten:

  • Bei einem einzelnen Experiment eine N-mal-Ny-Matrix, wobei N die Anzahl der Datenabtastungen und Ny die Anzahl der Ausgangskanäle ist

  • Bei Mehrfachexperimenten ein Zellenarray mit Ne Einzelexperiment-Matrizen, wobei Ne die Anzahl der Experimente ist

Beim Zugriff auf OutputData von der Befehlszeile aus können Sie die Abkürzungsform y verwenden. Beispielsweise ist y1 = data.InputData gleichbedeutend mit y1 = data.y.

Ausgabekanalnamen, angegeben als Ny-mal-1-Zellenarray, wobei Ny die Anzahl der Ausgangskanäle ist.

Ausgabekanaleinheiten, angegeben als Ny-mal-1-Zellenarray, wobei Nu die Anzahl der Ausgangskanäle ist. Jede Zelle enthält die Einheiten des entsprechenden Eingangskanals.

Beispiel: {'rad';'rad/s'}

Periode des Eingangssignals, angegeben als Double für jedes Experiment. Bei nichtperiodischen Eingangssignalen ist der Wert Inf und bei periodischen Eingangssignalen ist er die Periode in den durch die Eigenschaft TimeUnit festgelegten Einheiten.

  • Bei einem einzelnen Experiment mit einem einzigen Eingangskanal enthält Period einen einzigen Wert.

  • Bei einem System mit mehreren Eingängen ist Period ein Nu-mal-1-Vektor, wobei Nu die Anzahl der Eingangskanäle ist und der kte Eintrag die Periode des kten Eingangs enthält.

  • Bei Daten aus Mehrfachexperimenten ist Period ein 1-mal-Ne-Zellenarray, wobei Ne die Anzahl der Experimente ist und jede Zelle einen Skalar oder Vektor von Perioden für das entsprechende Experiment enthält.

Zeitwerte für Frequenzdomänendaten in Einheiten, die durch TimeUnit festgelegt sind als:

  • Ein N-mal-1-Vektor, wobei N die Anzahl der Datenpunkte ist

  • Ein 1-mal-Ne-Zellenarray, wobei Ne die Anzahl der Experimente ist und jede Zelle die Abtastzeitpunkte für das entsprechende Experiment enthält

Die Werte in SamplingInstants können einheitlich oder uneinheitlich sein. Wenn Sie die Ts-Eigenschaft angeben, berechnet die Software einheitliche Zeitwerte in SamplingInstants aus Ts und Tstart. Wenn Sie uneinheitliche Abtastpunkte haben, geben Sie die Zeitwerte in SamplingInstants an. Die Software setzt dann die Ts-Eigenschaft auf leer. Die Schätzfunktionen unterstützen keine uneinheitliche Abtastung.

Einheiten für die Zeitvariable und die Abtastzeit, angegeben als Skalar. Diese Eigenschaft gilt für alle Experimente des Datensatzes.

Eine Änderung dieser Eigenschaft bewirkt keine Neuabtastung oder Konvertierung der Daten. Die Änderung der Eigenschaft ändert nur die Interpretation der vorhandenen Daten.

Abtastzeit in durch TimeUnit angegebenen Einheiten, angegeben als Skalar oder Zellenarray. Für jedes Experiment ist der Wert einer der folgenden:

  • Ein Skalar, wenn y und u gleichmäßig abgetastet werden

  • 0 für zeitkontinuierliche Frequenzdomänendaten

  • [], wenn y und u nicht gleichmäßig abgetastet werden und in der Zeitdomäne liegen, weil die SamplingInstants-Eigenschaft die Zeitwerte für solche Daten festlegt.

Bei einem einzelnen Experiment ist Ts ein Skalar. Bei Multiexperiment-Daten ist Ts ein 1-mal-Ne-Zellenarray, wobei Ne die Anzahl der Experimente ist und jede Zelle die Abtastzeit für das entsprechende Experiment enthält.

Bei Frequenzdomänendaten verwendet die Software Ts zur Interpretation der Daten.

  • Wenn Ts 0 ist, interpretiert die Software die Eingänge und Ausgänge als zeitkontinuierliche Fourier-Transformationen (CTFTs) der entsprechenden Signale.

  • Wenn Ts ein Skalar ist, interpretiert die Software Eingänge und Ausgänge als zeitdiskrete Fourier-Transformationen (DTFTs) der entsprechenden Signale mit Ts als Abtastzeit.

Startzeitpunkt für Zeitdomänendaten, angegeben als:

  • Ein Skalar bei einem einzelnen Experiment

  • Ein 1-mal-Ne-Zellenarray bei mehreren Experimenten, wobei Ne die Anzahl der Experimente ist und jede Zelle die Startzeit des entsprechenden Experiments enthält

Der Standardwert von Tstart ist Ts bei gleichmäßig abgetasteten Daten und [] bei ungleichmäßig abgetasteten Daten.

Zusätzliche Kommentare zum Datensatz, angegeben als beliebiger MATLAB-Datentyp.

Objektfunktionen

Im Allgemeinen ist jede Funktion, die auf Systemidentifikationsdaten anwendbar ist, auch auf ein iddata-Objekt anwendbar. Diese Funktionen lassen sich in drei Typen unterteilen.

  1. Funktionen, die sowohl auf iddata-Objekte einwirken als auch diese Objekte zurückgeben können, ermöglichen es Ihnen, iddata-Objekte zu manipulieren und zu verarbeiten.

    • Verwenden Sie fft und ifft, um bestehende iddata-Objekte von der Zeitdomäne in die Frequenzdomäne zu transformieren und umgekehrt. Beispiel:

      datafd = fft(Data);
      datatd = ifft(Dataf);

    • Verwenden Sie merge (iddata), um iddata-Objekte zu einem einzigen iddata-Objekt zusammenzuführen, das mehrere Experimente enthält. Verwenden Sie getexp, um ein Experiment aus einem Multiexperiment-iddata-Objekt zu extrahieren. Beispiel:

      data123 = merge(data1,data2,data3);
      data2 = getexp(data123,2);
      

      Ein detailliertes Beispiel finden Sie unter Extract and Model Specific Data Segments.

    • Verwenden Sie Vorverarbeitungsfunktionen wie detrend oder idfilt, um Daten in iddata-Objekten zu filtern und schlechte Daten zu entfernen. Beispiel:

      data_d = detrend(data);
      data_f = idfilt(data,filter);

  2. Funktionen, die eine analytische Verarbeitung von iddata-Objekten durchführen und Diagramme erstellen oder bestimmte Parameter oder Werte zurückgeben, ermöglichen es Ihnen, Daten zu analysieren und zu bestimmen, welche Eingänge zur Schätzung verwendet werden sollen.

    • Verwenden Sie Analysefunktionen wie delayest und spa, um Variablen wie die Zeitverzögerung und das Frequenzspektrum zu berechnen.

  3. Mit Funktionen, die die Daten in iddata-Objekten verwenden, um Modelle zu schätzen, zu simulieren und zu validieren, können Sie dynamische Modelle erstellen und bewerten, wie gut die Modellreaktion mit den Validierungsdaten übereinstimmt.

    • Verwenden Sie Schätzungsfunktionen wie ssest und tfest, um Modelle mit bestimmten Strukturen zu schätzen.

    • Verwenden Sie Validierungsfunktionen wie compare und sim, um geschätzte Modelle zu simulieren und die simulierten Ausgänge mit Validierungsdaten und mit anderen Modellen zu vergleichen.

    Die folgenden Listen enthalten eine repräsentative Teilmenge der Funktionen, die Sie mit iddata-Objekten verwenden können.

alle erweitern

idplotPlot input and output channels of estimation data
getexpGet specific experiments from multiple-experiment data set
merge (iddata)Merge data sets into iddata object
detrendSubtract offset or trend from time-domain signals contained in iddata objects
retrendAdd offsets or trends to time-domain data signals stored in iddata objects
idfiltFilter data using user-defined passbands, general filters, or Butterworth filters
diffDifference signals in iddata objects
misdataReconstruct missing input and output data
idresampResample time-domain data by decimation or interpolation
fftFast Fourier transform (FFT) of iddata object
ifftTransform iddata objects from frequency to time domain
realdataDetermine whether iddata is based on real-valued signals
delayestEstimate time delay (dead time) from data
isrealDetermine whether model parameters or data values are real
impulseestNonparametric impulse response estimation
pexcitLevel of excitation of input signals
checkFeedbackIdentify possible feedback data
etfeEstimate empirical transfer functions and periodograms
spafdrEstimate frequency response and spectrum using spectral analysis with frequency-dependent resolution
spaEstimate frequency response with fixed frequency resolution using spectral analysis
dataPlotOptionsOption set for idplot when plotting input/output estimation data contained in a timetable, numeric matrices, or an iddata object
ssestEstimate state-space model using time-domain or frequency-domain data
tfestEstimate transfer function model
arEstimate parameters when identifying AR model or ARI model for scalar time series
simSimulate response of identified model
findstatesEstimate initial states of model
compareCompare identified model output with measured output
predictPredict identified model K-step-ahead output
goodnessOfFitGoodness of fit between test and reference data for analysis and validation of identified models
procestEstimate process model using time-domain or frequency-domain data
residCompute and test residuals

Beispiele

alle reduzieren

Erstellen Sie ein iddata-Objekt unter Verwendung von SISO-Daten (Single-Input/Single-Output) in der Zeitdomäne. Eingang und Ausgang enthalten jeweils 1000 Abtastungen mit einer Abtastzeit von 0,08 Sekunden.

load dryer2_data output input;
data = iddata(output,input,0.08)
data = 
Time domain data set with 1000 samples.
Sample time: 0.08 seconds              
                                       
Outputs      Unit (if specified)       
   y1                                  
                                       
Inputs       Unit (if specified)       
   u1                                  
                                       
Data Properties

Die Software ordnet dem ersten und einzigen Ausgangskanal den Standard-Kanalnamen 'y1' zu. Wenn das Ausgangssignal mehrere Kanäle enthält, vergibt die Software die Standardnamen 'y1','y2',...,'yn'. In ähnlicher Weise weist die Software den Standard-Kanalnamen 'u1' dem ersten und einzigen Eingangskanal zu. Weitere Informationen zur Benennung von Kanälen finden Sie unter Naming, Adding, and Removing Data Channels.

Plotten der Daten.

idplot(data)

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

Nebeneinander liegende Diagramme zeigen Ausgabedaten und Eingabedaten an.

Erstellen Sie ein iddata-Objekt aus Zeitreihendaten. Zeitreihendaten haben keinen Eingangskanal.

Laden Sie den Ausgangskanal eines Datensatzes, und erstellen Sie ein iddata-Objekt, das eine Abtastzeit von 0,08 Sekunden hat.

load dryer2_data output
data = iddata(output,[],0.08)
data = 
Time domain data set with 1000 samples.
Sample time: 0.08 seconds              
                                       
Outputs      Unit (if specified)       
   y1                                  
                                       
Data Properties

Plotten der Daten.

idplot(data)

Figure contains an axes object. The axes object with title y1 contains an object of type line. This object represents untitled1.

Sie können data für die Schätzung von Zeitreihenmodellen verwenden.

Laden Sie die Zeitplandaten tt7 und zeigen Sie die ersten vier Zeilen an.

load sdata7 tt7
head(tt7,4)
      t      u1      u2           y    
    _____    __    _______    _________

    1 sec     1     0.2749    -0.091981
    2 sec    -1    0.25148      0.22567
    3 sec    -1     1.2381     -0.28617
    4 sec    -1    -1.2216       1.4581

tt7 hat zwei Eingänge mit den Variablennamen u1 und u2 und einen Ausgang mit dem Variablennamen y. Konvertieren Sie tt7 in ein iddata-Objekt.

z7conv = iddata(tt7)
z7conv =

Time domain data set with 400 samples.
Sample time: 1 seconds                 
                                       
Outputs      Unit (if specified)       
   y                                   
                                       
Inputs       Unit (if specified)       
   u1                                  
   u2                                  
                                       
z7conv.OutputName
ans = 1×1 cell array
    {'y'}

z7conv.InputName
ans = 2×1 cell
    {'u1'}
    {'u2'}

z7conv behält die Abtastzeit bei und speichert die Variablennamen in den Eigenschaften OutputName und InputName.

Erstellen und untersuchen Sie ein iddata-Objekt aus komplexwertigen Eingangs-/Ausgangsdaten in der Frequenzdomäne. Konvertieren Sie das Objekt in die Zeitdomäne.

Eingangs- und Ausgangsdaten werden manchmal in Form von Fourier-Transformationen von Eingangs- und Ausgangssignalen in der Zeitdomäne ausgedrückt. Sie können diese Daten in einem Frequenzdomänen-iddata-Objekt zusammenfassen.

Laden Sie die Daten, die aus den komplexwertigen Eingangs-/Ausgangs-Frequenzdomänendaten U und Y, dem Frequenzvektor W und der Abtastzeit Ts bestehen.

load demofr1 U Y W Ts

Erstellen Sie das Frequenzdomänen-iddata-Objekt data_fr.

data_fr = iddata(Y,U,Ts,'Frequency',W)
data_fr = 
Frequency domain data set with responses at 501 frequencies.
Frequency range: 0 to 31.416 rad/seconds
Sample time: 0.1 seconds                                                                             
                                                                                                     
Outputs      Unit (if specified)                                                                     
   y1                                                                                                
                                                                                                     
Inputs       Unit (if specified)                                                                     
   u1                                                                                                
                                                                                                     
Data Properties

Untersuchen Sie die Eigenschaften. Frequenzdomänen-iddata-Objekte enthalten frequenzspezifische Eigenschaften, wie z. B. Frequency für den Frequenzvektor und FrequencyUnit für die Frequenzeinheiten. Im Gegensatz dazu enthalten Zeitdomänen-iddata-Objekte zeitspezifische Eigenschaften wie Tstart und SamplingInstants für Zeitdomänendaten.

get(data_fr)
ans = struct with fields:
            Domain: 'Frequency'
              Name: ''
        OutputData: [501×1 double]
        OutputName: {'y1'}
        OutputUnit: {''}
         InputData: [501×1 double]
         InputName: {'u1'}
         InputUnit: {''}
            Period: Inf
       InterSample: 'zoh'
                Ts: 0.1000
     FrequencyUnit: 'rad/TimeUnit'
         Frequency: [501×1 double]
          TimeUnit: 'seconds'
    ExperimentName: 'Exp1'
             Notes: [0×1 string]
          UserData: []

Weisen Sie den Inhalt der Eigenschaft „Frequenz“ der Variablen F zu.

F = data_fr.Frequency;

Fragen Sie die Frequenzeinheiten der Daten ab. Die Eigenschaft TimeUnit legt die Einheiten für die Abtastzeit fest.

frequ = data_fr.FrequencyUnit
frequ = 
'rad/TimeUnit'
timeu = data_fr.TimeUnit
timeu = 
'seconds'

Konvertieren Sie data_fr mit Hilfe der Funktion der inversen Fourier-Transformation ifft zurück in die Zeitdomäne.

data_t = ifft(data_fr)
data_t = 
Time domain data set with 1000 samples.
Sample time: 0.1 seconds               
                                       
Outputs      Unit (if specified)       
   y1                                  
                                       
Inputs       Unit (if specified)       
   u1                                  
                                       
Data Properties
get(data_t)
ans = struct with fields:
              Domain: 'Time'
                Name: ''
          OutputData: [1000×1 double]
          OutputName: {'y1'}
          OutputUnit: {''}
           InputData: [1000×1 double]
           InputName: {'u1'}
           InputUnit: {''}
              Period: Inf
         InterSample: 'zoh'
                  Ts: 0.1000
              Tstart: 0.1000
    SamplingInstants: [1000×1 double]
            TimeUnit: 'seconds'
      ExperimentName: 'Exp1'
               Notes: [0×1 string]
            UserData: []

Zeigen Sie die Eigenschaften eines iddata-Objekts an. Ändern Sie die Eigenschaften sowohl während als auch nach der Erstellung des Objekts.

Laden Sie die Eingangs- und Ausgangsdaten.

load dryer2_data input output

Erstellen Sie ein iddata-Objekt.

data = iddata(output,input,0.08)
data = 
Time domain data set with 1000 samples.
Sample time: 0.08 seconds              
                                       
Outputs      Unit (if specified)       
   y1                                  
                                       
Inputs       Unit (if specified)       
   u1                                  
                                       
Data Properties

Zeigen Sie alle Eigenschaften des iddata-Objekts an.

get(data)
ans = struct with fields:
              Domain: 'Time'
                Name: ''
          OutputData: [1000×1 double]
          OutputName: {'y1'}
          OutputUnit: {''}
           InputData: [1000×1 double]
           InputName: {'u1'}
           InputUnit: {''}
              Period: Inf
         InterSample: 'zoh'
                  Ts: 0.0800
              Tstart: 0.0800
    SamplingInstants: [1000×1 double]
            TimeUnit: 'seconds'
      ExperimentName: 'Exp1'
               Notes: [0×1 string]
            UserData: []

Bei der Erstellung eines iddata-Objekts können Sie die Eigenschaften mit Hilfe von Name-Werte-Paar-Argumenten angeben. Erstellen Sie ein iddata-Objekt aus denselben Dateneingängen, aber ändern Sie den Experimentnamen von der Standardeinstellung in Dryer2.

data = iddata(output,input,0.08,'ExperimentName','Dryer2')
data = 
Time domain data set with 1000 samples.
Sample time: 0.08 seconds              
                                       
Outputs      Unit (if specified)       
   y1                                  
                                       
Inputs       Unit (if specified)       
   u1                                  
                                       
Data Properties

Verwenden Sie zum Ändern von Eigenschaftswerten eines bestehenden iddata-Objekts die Punktschreibweise. Ändern Sie die Eigenschaft Ts (Abtastzeit) auf 0,05 Sekunden (0.05).

data.Ts = 0.05
data = 
Time domain data set with 1000 samples.
Sample time: 0.05 seconds              
                                       
Outputs      Unit (if specified)       
   y1                                  
                                       
Inputs       Unit (if specified)       
   u1                                  
                                       
Data Properties

Bei Eigenschaftsnamen wird nicht zwischen Groß- und Kleinschreibung unterschieden. Außerdem müssen Sie nicht den gesamten Eigenschaftsnamen eingeben, wenn die ersten Buchstaben die Eigenschaft eindeutig identifizieren.

data.exp = "Dryer2 January 2015"
data = 
Time domain data set with 1000 samples.      
Sample time: 0.05 seconds                    
                                             
Outputs                   Unit (if specified)
   y1                                        
                                             
Inputs                    Unit (if specified)
   u1                                        
                                             
Data Properties

Sie können data.y als Abkürzung für data.OutputData verwenden, um auf die Ausgangswerte zuzugreifen, und Sie können data.u als Abkürzung für data.InputData verwenden, um auf die Eingangswerte zuzugreifen.

y_data = data.y;
u_data = data.u;

Versionsverlauf

Eingeführt vor R2006a

alle erweitern