線形システムでのむだ時間
次のモデル プロパティを使用して、線形システムでむだ時間を表します。
InputDelay
、OutputDelay
— システム入力または出力でのむだ時間ioDelay
、InternalDelay
— システムの内部にあるむだ時間
離散時間モデルにおいて、これらのプロパティは、サンプル時間の整数倍として表現される遅延を表す整数値に制限されます。サンプル時間の非整数倍である遅延を伴う離散時間モデルを近似するには、thiran
を使用します。
1 次モデルにデッド タイムを付加したモデル
この例は、tf
の InputDelay
プロパティまたは OutputDelay
プロパティを使用して 1 次モデルにデッド タイムを付加したモデルを作成する方法を示します。
次の 1 次伝達関数を 2.1 秒のむだ時間で作成するには、
次のように入力します。
G = tf(1,[1 10],'InputDelay',2.1)
ここで、InputDelay
は伝達関数の入力時の遅延です。
SISO 伝達関数の場合、入力の遅延は出力の遅延と同じです。そのため、次のコマンドは同じ伝達関数を作成します。
G = tf(1,[1 10],'OutputDelay',2.1)
むだ時間の値を調査または変更するにはドット表記を使用します。たとえば、次のようにむだ時間を 3.2 に変更します。
G.OutputDelay = 3.2;
現在の値を確認するには、次のように入力します。
G.OutputDelay ans = 3.2000
ヒント
むだ時間を伴うモデルを作成するその他の方法は、s で式として遅延付きで伝達関数を指定することです。
変数 s の伝達関数モデルを作成します。
s = tf('s');
s で式として G(s) を指定します。
G = exp(-2.1*s)/(s+10);
状態空間モデルでの入力遅延と出力遅延
この例では、ss
の InputDelay
プロパティまたは OutputDelay
プロパティを使用して、入力と出力で遅延付きで状態空間モデルを作成する方法を示します。
次の 1 入力 2 出力システムを記述する状態空間モデルを作成します。
このシステムには 1.5 の入力遅延があります。最初の出力は 0.7 の出力遅延があり、2 番目の出力は遅延されません。
メモ
SISO 伝達関数と比較すると、入力遅延は状態空間モデルの出力遅延と等価ではありません。状態空間モデルで入力から出力に遅延をシフトするには、モデル状態で時間のシフトを導入することが必要です。たとえば、この例のモデルでは、T = t – 1.5 と X(T) = x(T + 1.5) を定義すると、次の等価なシステムになります。
すべてのむだ時間は出力側にありますが、新しい状態変数 X はオリジナルの状態変数 x に比べて時間がシフトされています。そのため、状態に物理的意味がある場合、または、既知の状態初期条件がある場合、入力と出力の間で時間をシフトする前に十分に検討してください。
このシステムを作成するには次のようにします。
状態空間行列を定義します。
A = -2; B = 3; C = [1;-1]; D = 0;
モデルを作成します。
G = ss(A,B,C,D,'InputDelay',1.5,'OutputDelay',[0.7;0])
G
は ss
モデルです。
MIMO 伝達関数での伝達遅延
この例は、各入出力 (I/O) 組に対して異なる伝達遅延で MIMO 伝達関数を作成する方法を示します。
MIMO 伝達関数を作成します。
MIMO システムのむだ時間は、この例にあるように、各 I/O 組で特定になります。InputDelay
と OutputDelay
を使用して I/O 固有の伝達遅延をモデル化することはできません。その代わりに、ioDelay
を使用して各 I/O 組にわたる伝達遅延を指定します。
この MIMO 伝達関数を作成するには、次の手順に従います。
変数
s
の伝達関数モデルを作成します。s = tf('s');
変数
s
を使用して、むだ時間なしでH
の伝達関数を指定します。H = [2/s (s+1)/(s+10); 10 (s-1)/(s+5)];
各 I/O 組の伝達遅延に対応する配列値として、
H
のioDelay
プロパティを指定します。H.IODelay = [0.1 0.3; 0 0.2];
H
は 2 入力 2 出力の tf
モデルです。H
の各 I/O 組には、tau
の対応するエントリによって指定されるむだ時間があります。
むだ時間のある離散時間伝達関数
この例は、むだ時間を使用して離散時間伝達関数モデルを作成する方法を示します。
離散時間モデルにおいて、1 つのサンプリング周期の遅延は伝達関数での の因子に相当します。たとえば、次の伝達関数は、25 サンプリング周期の遅延がある離散時間 SISO システムを表します。
MATLAB の離散時間システムでの整数の遅延を表すために、モデル オブジェクトの 'InputDelay'
プロパティを整数値に設定します。たとえば次のコマンドは、サンプリング時間が 0.1 秒の を表す tf
モデルを作成します。
H = tf(2,[1 -0.95],0.1,'InputDelay',25)
H = 2 z^(-25) * -------- z - 0.95 Sample time: 0.1 seconds Discrete-time transfer function.
システムにサンプリング時間の整数倍ではないむだ時間がある場合、thiran
コマンドを使用して、オールパス フィルターでむだ時間の非整数部分を近似します。むだ時間近似を参照してください。