<< SLICOT License Subroutine Library In COntrol Theory slicot_ab04md >>

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


N = 5;
M = 2;
TOL = 0.
STAGES = 'F';
JOBU = 'N';
JOBV = 'N';
A_IN = [17.0   24.0    1.0    8.0   15.0;
   23.0    5.0    7.0   14.0   16.0;
   4.0    6.0   13.0   20.0   22.0;
   10.0   12.0   19.0   21.0    3.0;
   11.0   18.0   25.0    2.0    9.0];

% SLICOT 5.0 have an error in the example.
A_IN = A_IN.';

B_IN = [   -1.0   -4.0;
    4.0    9.0;
   -9.0  -16.0;
   16.0   25.0;
  -25.0  -36.0];

U_IN = zeros(N, N);
INDCON_IN = N;
NCONT_IN = 1;
KSTAIR_IN = zeros(1,N);
[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)

History


Version Description
1.0.0 initial version

Author


SLICOT Documentation

<< SLICOT License Subroutine Library In COntrol Theory slicot_ab04md >>