Scilab Function

sysfact - system factorization

### Calling Sequence

  `[S,Series]=sysfact(Sys,Gain,flag)`

### Parameters

- `Sys` : `syslin` list containing the matrices `[A,B,C,D]` .
- `Gain` : real matrix
- `flag` : string `'post'` or `'pre'`
- `S` : `syslin` list
- `Series` : `syslin` list

### Description

If `flag` equals `'post'` , `sysfact` returns in `S` the linear system with ABCD matrices `(A+B*Gain, B , Gain, I)` , and `Series` , a minimal realization of the series system `Sys*S` . If `flag` equals `'pre'` , `sysfact` returns the linear system `(A+Gain*C, Gain , C, I)` and `Series` , a minimal realization of the series system `S*Sys` .

### Examples

    //Kalman filter
    Sys=ssrand(3,2,4);Sys('D')=rand(3,2);
    S=sysfact(Sys,lqr(Sys),'post');
    ww=minss(Sys*S);
    ss2tf(gtild(ww)*ww),Sys('D')'*Sys('D')
    //Kernel
    Sys=ssrand(2,3,4);
    [X,d,F,U,k,Z]=abinv(Sys);
    ss2tf(Sys*Z)
    ss2tf(Sys*sysfact(Sys,F,'post')*U)

### See Also

`lqr` , `lqe` ,

### Author

F.D.