qbode
Purpose
Frequency response functions (in the xf format) for linear systems.
Syntax
xf = qbode(a,b,c,d,w)
xf = qbode(ss,w)
xf = qbode(num,den,w)
XF = qbode( ... ,'struct')
qbode( ... ,'iiplot ...')
Description
For state-space models described by matrices a, b, c, d, or the LTI state-space object sys (see Control System Toolbox), qbode uses an eigenvalue decomposition of a to compute, in a minimum amount of time, all the FRF xf at the frequency points w
xf = [C] (s [\ I \ ] - [A])-1 [B] + [D]
The result is stored in the xf format . 'iiplot XF(1) -po -reset' can be used to display results in iiplot(see section 3.1.2). The optional -po is used to save poles in XF('IdMain') so that they can be displayed. -reset reinitializes the curve stack.
qbode will not work if your model is not diagonalizable. A specific algorithm was developed to deal with systems with rigid-body modes (double pole at zero associated to non-diagonalizable matrices). This algorithm will not, however, indicate the presence of incoherent b and c matrices. In other cases, you should then use the direct routines res2xf, nor2xf, etc. or the bode function of the Control System Toolbox.
For the polynomial models num, den , qbode computes the FRF at the frequency points w
|
xf= |
num (j ) |
|
den (j ) |
|
Warnings
-
All the SISO FRF of the system are computed simultaneously and the
complex values of the FRF returned. This approach is good for speed but not always well numerically conditioned when using state space models not generated by the SDT.
- As for all functions that do not have access to options (IDopt for identification and Up.copt for FE model update) frequencies
are assumed to be given in the mathematical default (rad/s). If your
frequencies w are given in Hz, use qbode(sys,w*2*pi).
- Numerical conditioning problems may appear for systems with several
poles at zero.
See also
demo_fe, res2xf, nor2xf, and bode of the Control System Toolbox
©1991-2007 by SDTools