Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

線形システムでのむだ時間

次のモデル プロパティを使用して、線形システムでむだ時間を表します。

  • InputDelayOutputDelay — システム入力または出力でのむだ時間

  • ioDelayInternalDelay — システムの内部にあるむだ時間

離散時間モデルにおいて、これらのプロパティは、サンプル時間の整数倍として表現される遅延を表す整数値に制限されます。サンプル時間の非整数倍である遅延を伴う離散時間モデルを近似するには、thiran を使用します。

1 次モデルにむだ時間を付加したモデル

この例は、tfInputDelay プロパティまたは OutputDelay プロパティを使用して 1 次モデルにむだ時間を付加したモデルを作成する方法を示します。

次の 1 次伝達関数を 2.1 秒のむだ時間で作成するには、

G(s)=e2.1s1s+10,

次のように入力します。

G = tf(1,[1 10],'InputDelay',2.1)

ここで、InputDelay は伝達関数の入力時の遅延です。

ヒント

InputDelay は、tf のときと同様に zpk で使用できます。

G = zpk([],-10,1,'InputDelay',2.1)

SISO 伝達関数の場合、入力の遅延は出力の遅延と同じです。そのため、次のコマンドは同じ伝達関数を作成します。

G = tf(1,[1 10],'OutputDelay',2.1)

むだ時間の値を調査または変更するにはドット表記を使用します。たとえば、次のようにむだ時間を 3.2 に変更します。

 G.OutputDelay = 3.2;

現在の値を確認するには、次のように入力します。

G.OutputDelay

ans =

    3.2000

ヒント

むだ時間を伴うモデルを作成するその他の方法は、s で式として遅延付きで伝達関数を指定することです。

  1. 変数 s の伝達関数モデルを作成します。

    s = tf('s');          
  2. s で式として G(s) を指定します。

    G = exp(-2.1*s)/(s+10);

状態空間モデルでの入力遅延と出力遅延

この例では、ssInputDelay プロパティまたは OutputDelay プロパティを使用して、入力と出力で遅延付きで状態空間モデルを作成する方法を示します。

次の 1 入力 2 出力システムを記述する状態空間モデルを作成します。

dx(t)dt=2x(t)+3u(t1.5)y(t)=[x(t0.7)x(t)].

このシステムには 1.5 の入力遅延があります。最初の出力は 0.7 の出力遅延があり、2 番目の出力は遅延されません。

メモ

SISO 伝達関数と比較すると、入力遅延は状態空間モデルの出力遅延と等価ではありません。状態空間モデルで入力から出力に遅延をシフトするには、モデル状態で時間のシフトを導入することが必要です。たとえば、この例のモデルでは、T = t – 1.5X(T) = x(T + 1.5) を定義すると、次の等価なシステムになります。

dX(T)dT=2X(T)+3u(T)y(T)=[X(T2.2)X(T1.5)].

すべてのむだ時間は出力側にありますが、新しい状態変数 X はオリジナルの状態変数 x に比べて時間がシフトされています。そのため、状態に物理的意味がある場合、または、既知の状態初期条件がある場合、入力と出力の間で時間をシフトする前に十分に検討してください。

このシステムを作成するには次のようにします。

  1. 状態空間行列を定義します。

    A = -2;
    B = 3;
    C = [1;-1];
    D = 0;
    
  2. モデルを作成します。

    G = ss(A,B,C,D,'InputDelay',1.5,'OutputDelay',[0.7;0])

Gss モデルです。

ヒント

delayss を使用して、形式の入力、出力、状態遅延のより一般的な組み合わせで状態空間モデルを作成します。

dxdt=Ax(t)+Bu(t)+j=1N(Ajx(ttj)+Bju(ttj))y(t)=Cx(t)+Du(t)+j=1N(Cjx(ttj)+Dju(ttj))

MIMO 伝達関数での伝達遅延

この例は、各入出力 (I/O) 組に対して異なる伝達遅延で MIMO 伝達関数を作成する方法を示します。

MIMO 伝達関数を作成します。

H(s)=[e0.12se0.3s+1s+1010e0.2s1s+5].

MIMO システムのむだ時間は、この例にあるように、各 I/O 組で特定になります。InputDelayOutputDelay を使用して I/O 固有の伝達遅延をモデル化することはできません。その代わりに、ioDelay を使用して各 I/O 組にわたる伝達遅延を指定します。

この MIMO 伝達関数を作成するには、次の手順に従います。

  1. 変数 s の伝達関数モデルを作成します。

    s = tf('s');          
  2. 変数 s を使用して、むだ時間なしで H の伝達関数を指定します。

    H = [2/s (s+1)/(s+10); 10 (s-1)/(s+5)];
    
  3. 各 I/O 組の伝達遅延に対応する配列値として、HioDelay プロパティを指定します。

    H.IODelay = [0.1 0.3; 0 0.2];

H は 2 入力 2 出力の tf モデルです。H の各 I/O 組には、tau の対応するエントリによって指定されるむだ時間があります。

むだ時間のある離散時間伝達関数

この例は、むだ時間を使用して離散時間伝達関数モデルを作成する方法を示します。

離散時間モデルにおいて、1 つのサンプリング周期の遅延は伝達関数での z-1 の因子に相当します。たとえば、次の伝達関数は、25 サンプリング周期の遅延がある離散時間 SISO システムを表します。

H(z)=z-252z-0.95.

MATLAB の離散時間システムでの整数の遅延を表すために、モデル オブジェクトの 'InputDelay' プロパティを整数値に設定します。たとえば次のコマンドは、サンプリング時間が 0.1 秒の H(z) を表す 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コマンドを使用して、オールパス フィルターでむだ時間の非整数部分を近似します。むだ時間近似を参照してください。

関連する例

詳細