File: contr.cat

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (49 lines) | stat: -rw-r--r-- 1,473 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
CONTR            Scilab Group            Scilab Function              CONTR
NAME
   contr - controllability, controllable subspace
  
CALLING SEQUENCE
 [n [,U]]=contr(A,B [,tol]) 
 [A1,B1,U,ind]=contr(A,B [,tol])
PARAMETERS
 A, B   : real matrices 
        
 tol    : may be the constant rtol or the 2 vector [rtol atol]
        
 rtol   :tolerance used when evaluating ranks (QR factorizations).
        
 atol   :absolute tolerance (the B matrix is assumed to be 0 if
        norm(B)<atol)
        
 n      :  dimension of controllable subspace.
        
 U      : orthogonal change of basis which puts (A,B) in canonical form.
        
 A1     : block Hessenberg matrix
        
 B1     : is U'*B.
        
 ind    : 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.
  
   [A1,B1,U,ind]=contr(A,B) returns the Hessenberg controllable form of
  (A,B). 
  
EXAMPLE
 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))    
SEE ALSO
   canon, cont_mat, unobs, stabil