ssrand
乱数生成器
呼び出し手順
sl=ssrand(nout,nin,nstate) [sl,U]=ssrand(nout,nin,nstate,flag)
引数
- nout
整数 (出力の数)
- nin
整数 (入力の数)
- nstate
整数 (状態空間の次元)
- flag
1文字の文字列および 1つまたは複数の整数からなるリスト
- sl
リスト (
syslin
リスト)- U
正方
(nstate x nstate)
非特異行列
説明
sl=ssrand(nout,nin,nstate)
は,
syslin
リストで定義され,
nstate
個の状態変数を有する
大きさ [nout,nint]
の
厳密にプロパー(D=0
)でランダムな状態空間システム
を返します.
[sl,U]=ssrand(nout,nin,nstate,flag)
は
flag
で指定したプロパティを有する線形システムを
返します.flag
は以下のどれかとすることができます:
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)
Sys
の完全な説明は,
(SCIDIR/macros/util
にある)
ssrand
関数の
コード内に記述されています.
例えば,
flag=list('co',dim_cont_subs)
を指定すると,
可制御でないシステムが返され,
dim_cont_subs
はSys
の
可制御部分空間の次元となります.
文字列'co','uo','ncno','st','dt','on','ui'
は
"可制御(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
参照
- syslin — 線形システムを定義する
Report an issue | ||
<< ssprint | Linear System Representation | sysconv >> |