csim 線形システムのシミュレーション (時間応答) 呼び出し手順 [y [,x]]=csim(u,t,sl,[x0 [,tol]]) 引数 u 関数, リストまたは文字列 (制御入力) t 時間を指定するための実数ベクトルで、t(1) は 初期時間 (x0=x(t(1)))を表す. sl 連続時間系のsyslinリスト (SIMO線形システム) y y=[y(t(i)], i=1,..,n となる行列 x x=[x(t(i)], i=1,..,n となる行列 tol 2つの要素 [atol rtol] からなるベクトルであり、それぞれ ODEソルバ(ode参照)の絶対許容誤差および相対許容誤差を定義する 説明 線形制御系 slのシミュレーションを行います. ただし,slは, syslinリストで表された連続時間システムとします. u は制御入力,x0 は状態量初期値です. y は出力,x は状態量です. 制御入力は以下のいずれかとすることができます: 1. 関数 : [inputs]=u(t) 2. リスト : list(ut,parameter1,....,parametern). ただし、inputs=ut(t,parameter1,....,parametern) (ut は関数) 3. インパルス応答の計算を表す文字列 "impuls" (ここで,slの入力は単一でx0=0が必要). 直達項を有する系の場合, t=0における無限インパルスは無視されます. 4. ステップ応答の計算を表す文字列 "step" (ここで、slの入力は単一で,x0=0が必要) 5. t の各値に対応する u の値を指定するベクトル. s=poly(0,'s'); rand('seed',0); w=ssrand(1,1,3); w('A')=w('A')-2*eye(); t=0:0.05:5; plot2d([t',t'],[(csim('step',t,tf2ss(s)*w))',0*t']) s=poly(0,'s'); rand('seed',0); w=ssrand(1,1,3); w('A')=w('A')-2*eye(); t=0:0.05:5; plot2d([t',t'],[(csim('impulse',t,w))',0*t']) s=poly(0,'s'); rand('seed',0); w=ssrand(1,1,3); w('A')=w('A')-2*eye(); t=0:0.05:5; plot2d([t',t'],[(csim('step',t,w))',0*t']) s=poly(0,'s'); rand('seed',0); w=ssrand(1,1,3); w('A')=w('A')-2*eye(); t=0:0.05:5; plot2d([t',t'],[(csim('impulse',t,tf2ss(1/s)*w))',0*t']) s=poly(0,'s'); rand('seed',0); w=ssrand(1,1,3); w('A')=w('A')-2*eye(); t=0:0.05:5; deff('u=timefun(t)','u=abs(sin(t))') clf();plot2d([t',t'],[(csim(timefun,t,w))',0*t']) 参照 syslin dsimul flts ltitr rtitr ode impl