Managing iddata Objects
Modifying Time and Frequency Vectors
The iddata
object stores time-domain data or
frequency-domain data and has several properties that specify the time or frequency values.
To modify the time or frequency values, you must change the corresponding property
values.
Note
You can modify the property SamplingInstants
by setting it to a
new vector with the length equal to the number of data samples. For more information, see
Constructing an iddata Object for Time-Domain Data.
The following tables summarize time-vector and frequency-vector properties,
respectively, and provides usage examples. In each example, data
is an
iddata
object.
Note
Property names are not case sensitive. You do not need to type the entire property name if the first few letters uniquely identify the property.
iddata Time-Vector Properties
Property | Description | Syntax Example |
---|---|---|
Ts |
Sample time.
|
To set the sample time to set(data,'ts',0.05) or data.ts = 0.05 |
Tstart |
Starting time of the experiment.
|
To change starting time of the first data sample to
data.Tstart = 24 Time units are set by the property |
SamplingInstants |
Time values in the time vector, computed from the properties
|
To retrieve the time vector for
To plot the input data as a function of time: plot(data.sa,data.u) Note
|
TimeUnit | Unit of time. Specify as one of the following:
'nanoseconds' , 'microseconds' ,
'milliseconds' , 'seconds' ,
'minutes' , 'hours' ,
'days' , 'weeks' ,
'months' , and 'years' . |
To change the unit of the time vector to
data.ti = 'milliseconds' |
iddata Frequency-Vector Properties
Property | Description | Syntax Example |
---|---|---|
Frequency |
Frequency values at which the Fourier transforms of the signals are defined.
|
To specify data.freq = logspace(-1,2,100) |
FrequencyUnit |
Unit of Frequency. Specify as one of the following: be one of the following:
For multi-experiment data with |
Set the frequency unit to Hz: data.FrequencyUnit = 'Hz' Note that changing the frequency unit does not scale the frequency vector. For
a proper translation of units, use |
Naming, Adding, and Removing Data Channels
What Are Input and Output Channels?
A multivariate system might contain several input variables or several output variables, or both. When an input or output signal includes several measured variables, these variables are called channels.
Naming Channels
The iddata
properties
InputName
and OutputName
store the channel names
for the input and output signals. When you plot the data, you use channel names to select
the variable displayed on the plot. If you have multivariate data, it is helpful to assign
a name to each channel that describes the measured variable. For more information about
selecting channels on a plot, see Selecting Measured and Noise Channels in Plots.
You can use the set
command to specify the names of individual
channels. For example, suppose data
contains two input channels
(voltage and current) and one output channel (temperature). To set these channel names,
use the following syntax:
set(data,'InputName',{'Voltage','Current'}, 'OutputName','Temperature')
Tip
You can also specify channel names as follows:
data.una = {'Voltage','Current') data.yna = 'Temperature'
una
is equivalent to the property InputName
,
and yna
is equivalent to OutputName
.
If you do not specify channel names when you create the iddata
object, the toolbox assigns default names. By default, the output channels are named
'y1','y2',...,'yn'
, and the input channels are named
'u1','u2',...,'un'
.
Adding Channels
You can add data channels to an iddata
object.
For example, consider an iddata
object named
data
that contains an input signal with four channels. To add a fifth
input channel, stored as the vector Input5
, use the following
syntax:
data.u(:,5) = Input5;
Input5
must have the same number of rows as the other input
channels. In this example, data.u(:,5)
references all samples as
(indicated by :
) of the input signal u
and sets the
values of the fifth channel. This channel is created when assigning its value to
Input5
.
You can also combine input channels and output channels of several
iddata
objects into one iddata
object using
concatenation. For more information, see Increasing Number of Channels or Data Points of iddata Objects.
Modifying Channel Data
After you create an iddata
object, you can modify or remove
specific input and output channels, if needed. You can accomplish this by subreferencing
the input and output matrices and assigning new values.
For example, suppose the iddata
object data
contains three output channels (named y1
, y2
, and
y3
), and four input channels (named u1
,
u2
, u3
, and u4
). To replace
data
such that it only contains samples in y3
,
u1
, and u4
, type the following at the
prompt:
data = data(:,3,[1 4])
The resulting data object contains one output channel and two input channels.
Subreferencing iddata Objects
See Select Data Channels, I/O Data and Experiments in iddata Objects.
Concatenating iddata Objects
See Increasing Number of Channels or Data Points of iddata Objects.