Input-output data and its properties for system identification in the time or frequency domain
Use the iddata object to encapsulate input and output measurement
data for the system you want to identify. System identification functions use these
measurements to estimate a model. Model validation functions use the input measurements to
provide the input for simulations, and the output measurements to compare how well the
estimated model response fits the original data.
iddata objects can contain a single set of measurements or multiple sets.
Each set of data corresponds to an experiment. The objects have the
following characteristics, which are encoded in the object properties:
Data can be in the frequency domain or the time domain. You can convert objects from one domain to the other.
In the time domain, the data can be uniformly or nonuniformly sampled. To use the
iddata object for estimation, however, the data must be uniformly
sampled, and the input and output data for each experiment must be recorded at the same
time instants.
You can specify data properties, such as the sample time, start time, time points, frequency sample points, and intersample behavior.
You can provide labels and comments to differentiate and annotate data components, experiments, and the object as a whole.
.
creates an data = iddata(y,u,Ts)iddata object containing a time-domain output signal
y and input signal u.
Ts specifies the sample time of the experimental data.
You can use iddata to create a multiexperiment
iddata object by specifying y and
u as cell arrays. Alternatively, you can create single-experiment
iddata objects and use merge (iddata) to combine the objects into one multiexperiment
iddata object. For more information on multiexperiment
iddata objects, see Create Multiexperiment Data at the Command Line.
sets additional properties using name-value pair arguments. Specify
data = iddata(___,Name,Value)Name,Value after any of the input argument combinations in the
previous syntaxes.
In general, any function applicable to system identification data is applicable to an
iddata object. These functions are of three general types.
Functions that both operate on and return iddata objects enable you
to manipulate and process iddata objects.
Use fft and ifft to transform existing
iddata objects to and from the time and frequency domains. For
example:
datafd = fft(Data); datatd = ifft(Dataf);
Use merge (iddata) to merge
iddata objects into a single iddata object
containing multiple experiments. To extract an experiment from a multiexperiment
iddata object, use getexp. For
example:
data123 = merge(data1,data2,data3); data2 = getexp(data123,2);
For a more detailed example, see Extract and Model Specific Data Segments.
Use preprocessing functions such as detrend or idfilt to filter data in
iddata objects and to remove bad data. For
example:
data_d = detrend(data); data_f = idfilt(data,filter);
Functions that perform analytical processing on iddata objects and
create plots or return specific parameters or values let you analyze data and determine
inputs to use for estimation.
Functions that use the data in iddata objects to estimate,
simulate, and validate models let you create dynamic models and evaluate how closely the
model response matches validation data.
The following lists contain a representative subset of the functions you can use
with iddata objects.