Next: systime, Previous: numerical, Up: Control Theory
Check for compatibility of the dimensions of the matrices defining the linear system [A, B, C, D] corresponding to
dx/dt = a x + b u y = c x + d uor a similar discrete-time system.
If the matrices are compatibly dimensioned, then
abcddim
returns
- n
- The number of system states.
- m
- The number of system inputs.
- p
- The number of system outputs.
Otherwise
abcddim
returns n = m = p = −1.Note: n = 0 (pure gain block) is returned without warning.
Build controllability matrix:
2 n-1 Qs = [ B AB A B ... A B ]of a system data structure or the pair (a, b).
ctrb forms the controllability matrix. The numerical properties of is_controllable are much better for controllability tests.
Computes the H-2 norm of a system data structure (continuous time only).
Reference: Doyle, Glover, Khargonekar, Francis, State-Space Solutions to Standard H-2 and H-infinity Control Problems, IEEE TAC August 1989.
Computes the H-infinity norm of a system data structure.
Inputs
- sys
- system data structure
- tol
- H-infinity norm search tolerance (default: 0.001)
- gmin
- minimum value for norm search (default: 1e-9)
- gmax
- maximum value for norm search (default: 1e+9)
- ptol
- pole tolerance:
- if sys is continuous, poles with |real(pole))| < ptol*||H|| (H is appropriate Hamiltonian) are considered to be on the imaginary axis.
- if sys is discrete, poles with |abs(pole)-1| < ptol*||[s1,s2]|| (appropriate symplectic pencil) are considered to be on the unit circle.
- Default value: 1e-9
Outputs
- g
- Computed gain, within tol of actual gain. g is returned as Inf if the system is unstable.
- gmin
- gmax
- Actual system gain lies in the interval [gmin, gmax].
References: Doyle, Glover, Khargonekar, Francis, State-space solutions to standard H-2 and H-infinity control problems, IEEE TAC August 1989; Iglesias and Glover, State-Space approach to discrete-time H-infinity control, Int. J. Control, vol 54, no. 5, 1991; Zhou, Doyle, Glover, Robust and Optimal Control, Prentice-Hall, 1996.
Build observability matrix:
| C | | CA | Qb = | CA^2 | | ... | | CA^(n-1) |of a system data structure or the pair (a, c).
The numerical properties of is_observable are much better for observability tests.
Plots the zeros and poles of a system in the complex plane.
Input
- sys
- System data structure.
Outputs
- pol
- zer
- if omitted, the poles and zeros are plotted on the screen. otherwise, pol and zer are returned as the system poles and zeros (see sys2zp for a preferable function call).
Returns retval = 1 if the dimensions of a, b, c, d are compatible, otherwise retval = 0 with an appropriate diagnostic message printed to the screen. The matrices b, c, or d may be omitted.
Logical check for system controllability.
Inputs
- sys
- system data structure
- a
- b
- n by n, n by m matrices, respectively
- tol
- optional roundoff paramter. default value:
10*eps
Outputs
- retval
- Logical flag; returns true (1) if the system sys or the pair (a, b) is controllable, whichever was passed as input arguments.
- u
- u is an orthogonal basis of the controllable subspace.
Method Controllability is determined by applying Arnoldi iteration with complete re-orthogonalization to obtain an orthogonal basis of the Krylov subspace
span ([b,a*b,...,a^{n-1}*b]).The Arnoldi iteration is executed with
krylov
if the system has a single input; otherwise a block Arnoldi iteration is performed withkrylovb
.
Test for detactability (observability of unstable modes) of (a, c).
Returns 1 if the system a or the pair (a, c) is detectable, 0 if not, and -1 if the system has unobservable modes at the imaginary axis (unit circle for discrete-time systems).
See is_stabilizable for detailed description of arguments and computational method.
Determine whether a continuous time state space system meets assumptions of DGKF algorithm. Partitions system into:
[dx/dt] [A | Bw Bu ][w] [ z ] = [Cz | Dzw Dzu ][u] [ y ] [Cy | Dyw Dyu ]or similar discrete-time system. If necessary, orthogonal transformations qw, qz and nonsingular transformations ru, ry are applied to respective vectors w, z, u, y in order to satisfy DGKF assumptions. Loop shifting is used if dyu block is nonzero.
Inputs
Outputs
- asys
- system data structure
- nu
- number of controlled inputs
- ny
- number of measured outputs
- tol
- threshold for 0; default: 200*
eps
.
- retval
- true(1) if system passes check, false(0) otherwise
- dgkf_struct
- data structure of is_dgkf results. Entries:
- nw
- nz
- dimensions of w, z
- a
- system A matrix
- bw
- (n x nw) qw-transformed disturbance input matrix
- bu
- (n x nu) ru-transformed controlled input matrix;
B = [Bw Bu]
- cz
- (nz x n) Qz-transformed error output matrix
- cy
- (ny x n) ry-transformed measured output matrix
C = [Cz; Cy]
- dzu
- dyw
- off-diagonal blocks of transformed system D matrix that enter z, y from u, w respectively
- ru
- controlled input transformation matrix
- ry
- observed output transformation matrix
- dyu_nz
- nonzero if the dyu block is nonzero.
- dyu
- untransformed dyu block
- dflg
- nonzero if the system is discrete-time
is_dgkf
exits with an error if the system is mixed discrete/continuous.References
- [1]
- Doyle, Glover, Khargonekar, Francis, State Space Solutions to Standard H-2 and H-infinity Control Problems, IEEE TAC August 1989.
- [2]
- Maciejowksi, J.M., Multivariable Feedback Design, Addison-Wesley, 1989.
Return nonzero if system is digital.
Inputs
- sys
- System data structure.
- eflg
- When equal to 0 (default value), exits with an error if the system is mixed (continuous and discrete components); when equal to 1, print a warning if the system is mixed (continuous and discrete); when equal to 2, operate silently.
Output
Exits with an error if sys is a mixed (continuous and discrete) system.
- digital
- When equal to 0, the system is purely continuous; when equal to 1, the system is purely discrete; when equal to -1, the system is mixed continuous and discrete.
Logical check for system observability.
Default: tol =
tol = 10*norm(a,'fro')*eps
Returns 1 if the system sys or the pair (a, c) is observable, 0 if not.
See is_controllable for detailed description of arguments and default values.
Returns nonzero if the system data structure sys is single-input, single-output.
Logical check for system stabilizability (i.e., all unstable modes are controllable). Returns 1 if the system is stabilizable, 0 if the the system is not stabilizable, -1 if the system has non stabilizable modes at the imaginary axis (unit circle for discrete-time systems.
Test for stabilizability is performed via Hautus Lemma. If dflg!=0 assume that discrete-time matrices (a,b) are supplied.
Returns 1 if the matrix a or the system sys is stable, or 0 if not.
Inputs
- tol
- is a roundoff parameter, set to 200*
eps
if omitted.- dflg
- Digital system flag (not required for system data structure):
- dflg
!= 0
- stable if eig(a) is in the unit circle
- dflg
== 0
- stable if eig(a) is in the open LHP (default)