Create frequency-response data model, convert to frequency-response data model
sys = frd(response,frequency)
sys = frd(response,frequency,Ts)
sys = frd
sysfrd = frd(sys,frequency)
sysfrd = frd(sys,frequency,units)
sys = frd(response,frequency)
creates
a frequency-response data (frd
) model object sys
from
the frequency response data stored in the multidimensional array response
.
The vector frequency
represents the underlying
frequencies for the frequency response data. See Data Format for the Argument Response in FRD Models for
a list of response data formats.
sys = frd(response,frequency,Ts)
creates
a discrete-time frd
model object sys
with
scalar sample time Ts
. Set Ts
=
-1 to create a discrete-time frd
model object without
specifying the sample time.
sys = frd
creates an empty frd
model
object.
The input argument list for any of these syntaxes can be followed by property name/property value pairs of the form
'PropertyName',PropertyValue
You can use these extra arguments to set the various properties
the model. For more information about available properties of frd
models,
see Properties.
To force an FRD model sys
to inherit all
of its generic LTI properties from any existing LTI model refsys
,
use the syntax
sys = frd(response,frequency,ltisys)
sysfrd = frd(sys,frequency)
converts a
dynamic system model sys
to frequency response
data form. The frequency response is computed at the frequencies provided
by the vector frequency
, in rad/TimeUnit
,
where TimeUnit
is the time units of the input dynamic
system, specified in the TimeUnit
property
of sys
.
sysfrd = frd(sys,frequency,units)
converts
a dynamic system model to an frd
model and interprets
frequencies in the frequency
vector to have the
units specified by units
. For a list of values
that units
can take, see the FrequencyUnit
property
in Properties.
When you specify a SISO or MIMO FRD model, or an array of FRD
models, the input argument frequency
is always
a vector of length Nf
, where Nf
is
the number of frequency data points in the FRD. The specification
of the input argument response
is summarized in
the following table.
Data Format for the Argument Response in FRD Models
Model Form | Response Data Format |
---|---|
SISO model | Vector of length |
MIMO model with |
|
| Multidimensional array of size [ |
frd
objects have the following properties:
|
Frequency points of the frequency response data. Specify |
|
Frequency units of the model.
The units Changing this property changes the overall system behavior.
Use Default: |
|
Frequency response data. The |
|
Transport delays. For continuous-time systems, specify transport delays in the
time unit stored in the For a MIMO system with Default: |
|
Input delay for each input channel, specified as a scalar value
or numeric vector. For continuous-time systems, specify input delays
in the time unit stored in the For a system with You can also set Default: 0 |
|
Output delays. For a system with Default: 0 for all output channels |
|
Sample time. For continuous-time models, Changing this property does not discretize or resample the model. Default: |
|
Units for the time variable, the sample time
Changing this property has no effect on other properties, and
therefore changes the overall system behavior. Use Default: |
|
Input channel names, specified as one of the following:
Alternatively, use automatic vector expansion to assign input
names for multi-input models. For example, if sys.InputName = 'controls'; The input names automatically expand to You can use the shorthand notation Input channel names have several uses, including:
Default: |
|
Input channel units, specified as one of the following:
Use Default: |
|
Input channel groups. The sys.InputGroup.controls = [1 2]; sys.InputGroup.noise = [3 5]; creates input groups named sys(:,'controls') Default: Struct with no fields |
|
Output channel names, specified as one of the following:
Alternatively, use automatic vector expansion to assign output
names for multi-output models. For example, if sys.OutputName = 'measurements'; The output names automatically expand to You can use the shorthand notation Output channel names have several uses, including:
Default: |
|
Output channel units, specified as one of the following:
Use Default: |
|
Output channel groups. The sys.OutputGroup.temperature = [1]; sys.InputGroup.measurement = [3 5]; creates output groups named sys('measurement',:) Default: Struct with no fields |
|
System name, specified as a character vector. For example, Default: |
|
Any text that you want to associate with the system, stored as a string or a cell array of
character vectors. The property stores whichever data type you
provide. For instance, if sys1.Notes = "sys1 has a string."; sys2.Notes = 'sys2 has a character vector.'; sys1.Notes sys2.Notes ans = "sys1 has a string." ans = 'sys2 has a character vector.' Default: |
|
Any type of data you want to associate with system, specified as any MATLAB® data type. Default: |
|
Sampling grid for model arrays, specified as a data structure. For model arrays that are derived by sampling one or more independent variables, this property tracks the variable values associated with each model in the array. This information appears when you display or plot the model array. Use this information to trace results back to the independent variables. Set the field names of the data structure to the names of the sampling variables. Set the field values to the sampled variable values associated with each model in the array. All sampling variables should be numeric and scalar valued, and all arrays of sampled values should match the dimensions of the model array. For example, suppose you create a 11-by-1
array of linear models, sysarr.SamplingGrid = struct('time',0:10) Similarly, suppose you create a 6-by-9
model array, [zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>) M.SamplingGrid = struct('zeta',zeta,'w',w) When you display 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 ... For model arrays generated by linearizing a Simulink® model
at multiple parameter values or operating points, the software populates Default: |
Create Frequency-Response Model
Create a SISO FRD model from a frequency vector and response data:
% generate a frequency vector and response data freq = logspace(1,2); resp = .05*(freq).*exp(i*2*freq); % Create a FRD model sys = frd(resp,freq);
chgFreqUnit
| chgTimeUnit
| frdata
| frdfun
| set
| ss
| tf
| zpk
| idfrd
(System Identification Toolbox)