ssrand - random system generator
sl=ssrand(nout,nin,nstate) returns a random strictly proper (D=0) state-space system of size [nout,nint] represented by a syslin list and with nstate state variables.
[sl,U]=ssrand(nout,nin,nstate,flag) returns a test linear system with given properties specified by flag. flag can be one of the following:
flag=list('co',dim_cont_subs) flag=list('uo',dim_unobs_subs) flag=list('ncno',dim_cno,dim_ncno,dim_co,dim_nco) flag=list('st',dim_cont_subs,dim_stab_subs,dim_stab0) flag=list('dt',dim_inst_unob,dim_instb0,dim_unobs) flag=list('on',nr,ng,ng0,nv,rk) flag=list('ui',nw,nwu,nwui,nwuis,rk)
The complete description of the Sys is given in the code of the ssrand function (in SCIDIR/macros/util). For example with flag=list('co',dim_cont_subs) a non-controllable system is return and dim_cont_subs is the dimension of the controllable subspace of Sys. The character strings 'co','uo','ncno','st','dt','on','ui' stand for "controllable", "unobservable", "non-controllable-non-observable", "stabilizable","detectable","output-nulling","unknown-input".
//flag=list('st',dim_cont_subs,dim_stab_subs,dim_stab0) //dim_cont_subs<=dim_stab_subs<=dim_stab0 //pair (A,B) U-similar to: // [*,*,*,*; [*; // [0,s,*,*; [0; //A= [0,0,i,*; B=[0; // [0,0,0,u] [0] // // (A11,B1) controllable s=stable matrix i=neutral matrix u=unstable matrix [Sl,U]=ssrand(2,3,8,list('st',2,5,5)); w=ss2ss(Sl,inv(U)); //undo the random change of basis => form as above [n,nc,u,sl]=st_ility(Sl);n,nc