モデルの作成と取り扱い | ![]() ![]() |
離散時間モデル
離散時間モデルの作成は、離散時間モデルに対するサンプリング周期またはサンプル時間を設定しなければならないことを除いて、連続時間モデルを作成することと類似しています。サンプル時間を設定しないままにするには、-1を使います。
tf
, zpk
, ss
, frd
を使って、離散時間LTIモデルを設定するには、入力引数に希望するサンプル時間値Ts
を単に付け加えるだけです。
sys1 = tf(num,den,Ts) sys2 = zpk(z,p,k,Ts) sys3 = ss(a,b,c,d,Ts) sys4 = frd(response,frequency,Ts)
h = tf([1 -1],[1 -0.5],0.1)
sys = ss(A,B,C,D,0.5)
を設定します。ベクトルは、n番目のサンプルの状態ベクトル、入力ベクトル、出力ベクトルを表します。
形式的に、連続系のサンプル時間はTs = 0
です。Ts = -1
の値を用いて離散系のサンプル時間を設定しないままの状態にします。たとえば、つぎのようになります。
h = tf([1 -0.2],[1 0.3],-1)
Transfer function: z - 0.2 ------- z + 0.3 Sampling time: unspecified
モデルを作成する場合にサンプル時間を設定することを忘れても、LTIプロパティTs
を再度設定することで、正しいものにすることができます。このプロパティの設定に関する詳細については、"サンプル時間"を参照してください。
離散時間TFモデルとZPKモデル
上に示したようにtf
とzpk
を使って、離散時間TFモデルとZPKモデルを設定することができます。また、つぎのようにして、これらのモデルを簡単に設定することもできます。
このアプローチは、有理数表現を使って連続時間のTFモデルまたはZPKモデルを記述した方法に対応しています。この手順は、"SISO伝達関数モデル"や"SISO零点/極/ゲインモデル"に記述されています。
z = tf('z', 0.1); H = (z+2)/(z^2 + 0.6*z + 0.9);
H = tf([1 2], [1 0.6 0.9], 0.1);
z = zpk('z', 0.1); H = [z/(z+0.1)/(z+0.2) ; (z^2+0.2*z+0.1)/(z^2+0.2*z+0.01)]
Zero/pole/gain from input to output... z #1: --------------- (z+0.1) (z+0.2) (z^2 + 0.2z + 0.1) #2: ------------------ (z+0.1)^2 Sampling time: 0.1
z = tf('z')
は、z = tf('z',-1)
と等価で、サンプル時間が設定されていない状態です。同じことが、z = zpk('z')
にも適用されます。z
での任意の有理数表現が、z
と同じサンプル時間をもち、同じタイプの離散時間モデルを作成します。DSP形式の離散時間伝達関数
デジタル信号処理(DSP)では、離散時間伝達関数をの有理表現として書き、分子と分母の係数を
の昇べき順で並べることが一般に行われています。たとえば、
の分子と分母は、それぞれ行ベクトル[1 0.5]
および[1 2 3]
として設定されます。分子と分母が異なる次元をもっている場合、この表現はtf
によって仮定される"の降べき順"表現と矛盾します( "伝達関数モデル"、または、
tf
を参照してください)。たとえば、
h = tf([1 0.5],[1 2 3])
そのような表現上の矛盾を回避するために、Control System Toolboxは、伝達関数のDSPに似た設定専用の独立した関数filt
を用意しています。その構文は、サンプル時間未設定の離散伝達関数に対しては
h = filt(num,den)
h = filt(num,den,Ts)
となります。この関数はtf
のようにTFオブジェクトを作成しますが、num
と den
は、 の昇べき順で分子と分母をリストします。たとえば、
h = filt([1 0.5],[1 2 3])
Transfer function: 1 + 0.5 z^-1 ------------------- 1 + 2 z^-1 + 3 z^-2 Sampling time: unspecified
また、filt
を使用して、でMIMO伝達関数を設定することができます。この場合、
tf
に関しては、入力引数num
およびden
は、行ベクトルのセル配列です(詳細は、"伝達関数モデル"を参照)。各行ベクトルは、の昇べき順表現に適合しなければなりません。
![]() | 周波数応答データ(FRD)モデル | データ抽出 | ![]() |