Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Change language to: Français - Português - 日本語 - Русский

contr

controllability, controllable subspace, staircase

Syntax

n=contr(A,B [,tol])
[n,U]=contr(A,B [,tol])
[n,U,ind,V,Ac,Bc]=contr(A,B,[,tol])

Arguments

A, B

real matrices

tol

tolerance parameter

n

dimension of controllable subspace.

U

orthogonal change of basis which puts (A,B) in canonical form.

V

orthogonal matrix, change of basis in the control space.

Ac

block Hessenberg matrix Ac=U'*A*U

Bc

is U'*B*V.

ind

p integer vector associated with controllability indices (dimensions of subspaces B, B+A*B,...=ind(1),ind(1)+ind(2),...)

Description

[n,[U]]=contr(A,B,[tol]) gives the controllable form of an (A,B) pair.(dx/dt = A x + B u or x(n+1) = A x(n) +b u(n)). The n first columns of U make a basis for the controllable subspace.

If V=U(:,1:n), then V'*A*V and V'*B give the controllable part of the (A,B) pair.

The pair (Bc, Ac) is in staircase controllable form.

|B |sI-A      *  . . .  *      *       |
| 1|    11       .      .      .       |
|  |  A    sI-A    .    .      .       |
|  |   21      22    .  .      .       |
|  |        .     .     *      *       |
[U'BV|sI - U'AU] = |0 |     0    .     .                  |
|  |            A     sI-A     *       |
|  |             p,p-1    pp           |
|  |                                   |
|0 |         0          0   sI-A       |
|  |                            p+1,p+1|

Reference

Slicot library (see ab01od in SCI/modules/cacsd/src/slicot).

Examples

W=ssrand(2,3,5,list('co',3));  //cont. subspace has dim 3.
A=W("A");B=W("B");
[n,U]=contr(A,B);n
A1=U'*A*U;
spec(A1(n+1:\$,n+1:\$))  //uncontrollable modes
spec(A+B*rand(3,5))

• canon — canonical controllable form
• cont_mat — controllability matrix
• unobs — unobservable subspace
• stabil — stabilization
• st_ility — stabilizability test