ssrand

random system generator

Calling Sequence

sl=ssrand(nout,nin,nstate)
[sl,U]=ssrand(nout,nin,nstate,flag)

Arguments

:nout integer (number of output) : :nin integer (number of input) : :nstate integer (dimension of state-space) : :flag list made of one character string and one or several integers : :sl list ( syslin list) : :U square (nstate x nstate) nonsingular matrix :

Description

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 SCI/modules/cacsd/macros/). 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”.

Examples

//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

See Also

  • syslin linear system definition

Table Of Contents

This Page