Scilab Function
Last update : 12/1/2004

st_ility - stabilizability test

### Calling Sequence

  `[ns, [nc, [,U [,Slo] ]]]=st_ility(Sl [,tol])`

### Parameters

- `Sl`: `syslin` list (linear system)
- `ns`: integer (dimension of stabilizable subspace)
- `nc`: integer (dimension of controllable subspace `nc <= ns`)
- `U`: basis such that its `ns` (resp. `nc`) first components span the stabilizable (resp. controllable) subspace
- `Slo`: a linear system (`syslin` list)
- `tol`: threshold for controllability detection (see contr)

### Description

`Slo=( U'*A*U, U'*B, C*U, D, U'*x0 )` (`syslin` list) displays the stabilizable form of `Sl`. Stabilizability means `ns=nx` (dim. of `A` matrix).

             [*,*,*]            [*]
    U'*A*U = [0,*,*]     U'*B = [0]
             [0,0,*]            [0]

where `(A11,B1)` (dim(A11)= `nc`) is controllable and `A22` (dim(A22)=`ns-nc`) is stable. "Stable" means real part of eigenvalues negative for a continuous linear system, and magnitude of eigenvalues lower than one for a discrete-time system (as defined by `syslin`).

### Examples

    A=diag([0.9,-2,3]);B=[0;0;1];Sl=syslin('c',A,B,[]);
    [ns,nc,U]=st_ility(Sl);
    U'*A*U
    U'*B
    [ns,nc,U]=st_ility(syslin('d',A,B,[]));
    U'*A*U
    U'*B

### See Also

`dt_ility`, `contr`, `stabil`, `ssrand`,

### Author

S. Steer INRIA 1988