slicot_ab01od
Staircase form for multi-input systems using orthogonal state and input transformations.
Syntax
[A_OUT, B_OUT, U_OUT, V, NCONT_OUT, INDCON_OUT, KSTAIR_OUT, INFO] = slicot_ab01od(STAGES, JOBU, JOBV, A_IN, B_IN, U_IN, NCONT_IN, INDCON_IN, KSTAIR_IN, TOL)
Input argument
STAGES - Specifies the reduction stage: 'F': Perform the forward stage only; 'B': Perform the backward stage only; 'A': Perform both (all) stages.
JOBU - Indicates whether the user wishes to accumulate in a matrix U the state-space transformations: 'N': Do not form U; 'I': U is internally initialized to the unit matrix
JOBV - Indicates whether the user wishes to accumulate in a matrix V the input-space transformations: 'N': Do not form V; I': V is initialized to the unit matrix and the orthogonal transformation matrix V is returned.
A_IN - the leading N-by-N part of this array must contain the state transition matrix A to be transformed
B_IN - the leading N-by-M part of this array must contain the input matrix B to be transformed.
U_IN - If STAGES ~= 'B' or JOBU = 'N', then U need not be set on entry. If STAGES = 'B' and JOBU = 'I', then, on entry, the leading N-by-N part of this array must contain the transformation matrix U that reduced the pair to the orthogonal canonical form.
NCONT_IN - The order of the controllable state-space representation. NCONT_IN is input only if STAGES = 'B'.
INDCON_IN - The number of stairs in the staircase form (also, the controllability index of the controllable part of the system representation).
TOL - The tolerance to be used in rank determination when transforming (A, B).
Output argument
A*OUT - On exit, the leading N-by-N part of this array contains the transformed state transition matrix U' * A _ U. The leading NCONT-by-NCONT part contains the upper block Hessenberg state matrix Acont in Ac, given by U' _ A _ U, of a controllable realization for the original system. The elements below the first block-subdiagonal are set to zero. If STAGES ~='F', the subdiagonal blocks of A are triangularized by RQ factorization, and the annihilated elements are explicitly zeroed.
B*OUT - On exit with STAGES = 'F', the leading N-by-M part of this array contains the transformed input matrix U' * B, with all elements but the first block set to zero. On exit with STAGES ~= 'F', the leading N-by-M part of this array contains the transformed input matrix U' _ B * V, with all elements but the first block set to zero and the first block in upper triangular form.
U_OUT - if JOBU = 'I', the leading N-by-N part of this array contains the transformation matrix U that performed the specified reduction. If JOBU = 'N', the array U is not referenced and can be supplied as a dummy array.
V - If JOBV = 'I', then the leading M-by-M part of this array contains the transformation matrix V.
NCONT_OUT - NCONT_OUT is input only if STAGES = 'B'.
INDCON_OUT - INDCON is input only if STAGES = 'B'.
KSTAIR_OUT - KSTAIR is input if STAGES = 'B', and output otherwise.
INFO - 0: successful exit; if INFO = -i, the i-th argument had an illegal value.
Description
To reduce the matrices A and B using (and optionally accumulating) state-space and input-space transformations U and V respectively, such that the pair of matrices
Ac = U' * A * U, Bc = U' * B * V
Used function(s)
AB01OD
Bibliography
http://slicot.org/objects/software/shared/doc/AB01OD.html
Example
History
Version | Description |
---|---|
1.0.0 | initial version |
Author
SLICOT Documentation
Last updated