Access transfer function data
[num,den] = tfdata(sys)
[num,den,Ts] = tfdata(sys)
[num,den,Ts,sdnum,sdden]=tfdata(sys)
[num,den,Ts,...]=tfdata(sys,J1,...,Jn)
[num,den] = tfdata(sys)
returns the numerator(s) and denominator(s) of the transfer function
for the TF, SS or ZPK model (or LTI array of TF, SS or ZPK models) sys
.
For single LTI models, the outputs num
and den
of tfdata
are
cell arrays with the following characteristics:
num
and den
have
as many rows as outputs and as many columns as inputs.
The (i,j)
entries num{i,j}
and den{i,j}
are
row vectors specifying the numerator and denominator coefficients
of the transfer function from input j
to output i
.
These coefficients are ordered in descending powers
of s or z.
For arrays sys
of LTI models, num
and den
are
multidimensional cell arrays with the same sizes as sys
.
If sys
is a state-space or zero-pole-gain
model, it is first converted to transfer function form using tf
.
For more information on the format of transfer function model data,
see the tf
reference page.
For SISO transfer functions, the syntax
[num,den] = tfdata(sys,'v')
forces tfdata
to return the numerator and
denominator directly as row vectors rather than as cell arrays (see
example below).
[num,den,Ts] = tfdata(sys)
also returns the sample time Ts
.
[num,den,Ts,sdnum,sdden]=tfdata(sys)
also
returns the uncertainties in the numerator and denominator coefficients
of identified system sys
. sdnum{i,j}(k)
is
the 1 standard uncertainty in the value num{i,j}(k)
and sdden{i,j}(k)
is
the 1 standard uncertainty in the value den{i,j}(k)
.
If sys
does not contain uncertainty information, sdnum
and sdden
are
empty ([]
).
[num,den,Ts,...]=tfdata(sys,J1,...,Jn)
extracts
the data for the (J1,...,JN)
entry in the model
array sys
.
You can access the remaining LTI properties of sys
with get
or
by direct referencing, for example,
sys.Ts sys.variable
Given the SISO transfer function
h = tf([1 1],[1 2 5])
you can extract the numerator and denominator coefficients by typing
[num,den] = tfdata(h,'v') num = 0 1 1 den = 1 2 5
This syntax returns two row vectors.
If you turn h
into a MIMO transfer function
by typing
H = [h ; tf(1,[1 1])]
the command
[num,den] = tfdata(H)
now returns two cell arrays with the numerator/denominator data
for each SISO entry. Use celldisp
to visualize
this data. Type
celldisp(num)
This command returns the numerator vectors of the entries of H
.
num{1} = 0 1 1 num{2} = 0 1
Similarly, for the denominators, type
celldisp(den) den{1} = 1 2 5 den{2} = 1 1
Extract the numerator, denominator and their standard deviations for a 2-input, 1 output identified transfer function.
load iddata7
transfer function model
sys1 = tfest(z7, 2, 1, 'InputDelay',[1 0]);
an equivalent process model
sys2 = procest(z7, {'P2UZ', 'P2UZ'}, 'InputDelay',[1 0]); [num1, den1, ~, dnum1, dden1] = tfdata(sys1); [num2, den2, ~, dnum2, dden2] = tfdata(sys2);