| Control System Toolbox関数リファレンス | ![]() |
表示
impulse(sys) impulse(sys,t) impulse(sys1,sys2,...,sysN) impulse(sys1,sys2,...,sysN,t) impulse(sys1,'PlotStyle1',...,sysN,'PlotStyleN') [y,t,x] = impulse(sys)
詳細
impulse
は、線形システムの単位Impulse応答を計算します。Impulse応答は、連続システムの場合、Dirac入力
に対する応答で、離散システムの場合、
での単位パルスに対する応答です。状態空間の場合には、ゼロ初期状態が仮定されます。左辺の引数を設定しないと、この関数はスクリーン上にImpulse応答をプロットします。
impulse(sys)
は、任意のLTIモデルsysのImpulse応答をプロットします。このモデルは、連続でも離散でも、あるいはSISOでもMIMOでも構いません。多入力システムのImpulse応答は、各入力チャンネルに対するImpulse応答の集合です。シミュレーションの継続時間は、応答の過渡的挙動を表示するように自動的に決定します。
impulse(sys,t)
は、明示的にシミュレーション区間を設定します。最終時間t = Tfinal(秒単位)か、つぎの形式の一定間隔の時間サンプルベクトルのいずれかを設定することができます。
t = 0:dt:Tfinal
離散システムの場合、間隔dtはサンプル時間と一致しなければなりません。連続システムの場合、dtは離散化したシミュレーションモデルのサンプル時間となるため(下のアルゴリズムを参照)、過渡現象を捉えるのに十分小さなdtを必ず選択してください。
1つのFigureに複数のLTIモデルsys1,..., sysNのImpulse応答をプロットするには、つぎのように行ないます。
impulse(sys1,sys2,...,sysN)impulse(sys1,sys2,...,sysN,t)
bodeまたはplotと同様に、システム毎に特定のカラー、ラインスタイル、マーカを設定することができます。たとえば、つぎのとおりです。
impulse(sys1,'y:',sys2,'g--')
詳細については、マニュアルの"複数のシステムのプロトと比較"およびbodeの入力を参照してください。
[y,t] = impulse(sys) [y,t,x] = impulse(sys) % 状態空間モデルに対してのみ y = impulse(sys,t)
は、出力応答y、シミュレーションに使用する時間ベクトルt、および状態量の軌跡x(状態空間モデルに対してのみ)を出力し、スクリーン上にはプロットされません。単入力システムの場合、yは時間サンプルと同数の行(tの長さ)と出力と同数の列をもっています。多入力の場合、各入力チャンネルのImpulse応答は、yの3番目の次元に沿って貯えられます。yの次元は、つぎのようになります。
また、y(:,:,j)は、j番目の入力チャンネルに入力するImpulse外乱に対する応答です。同様に、xの次元は、つぎのようになります。
例題
a = [-0.5572 -0.7814;0.7814 0]; b = [1 -1;0 2]; c = [1.9691 6.4493]; sys = ss(a,b,c,0); impulse(sys)
![]()
左側のプロットは、最初の入力チャンネルのImpulse応答を示しており、右側のプロットは、2番目の入力チャンネルのImpulse応答を示しています。
つぎのようにして、Impulse応答データをMATLAB配列にストアすることができます。
[y,t] = impulse(sys)
このシステムには、2つの入力があるので、yはつぎの次元をもつ3次元配列です。
size(y) ans = 101 1 2
(最初の次元はtの長さです)。最初の入力チャンネルのImpulse応答には、つぎのようにして、アクセスできます。
y(:,:,1)
アルゴリズム
連続系モデルは、まず状態空間に変換されます。つぎの単入力状態空間モデル
のImpulse応答は、外部からの励起のない初期状態の応答
と等価です。
この応答をシミュレーションするために、システムは入力をゼロ次ホールドを使って離散化します。サンプリング周期は、時間ベクトルt = 0:dt:Tfが与えられる場合(dtは、つぎにサンプリング周期として使用されます)を除いて、システムのダイナミクスに基づいて自動的に選択されます。
制限
非ゼロ行列
をもつ連続システムのImpulse応答は
で無限大になります。impulseは、この不連続性を無視し、
で、低い方の連続値
を出力します。
参考
ltiview LTIシステムビューワの起動
stepStep応答
initial初期値に対する自由応答
lsim任意入力に対する応答のシミュレーション
| hasdelay | initial | ![]() |