Main Content

内部遅延

InputDelayOutputDelay、および ioDelay プロパティを使用することによって、伝達遅延のあるシンプルな処理をモデル化できます。ただし、これらのプロパティは、遅延のあるフィードバック ループなどのより複雑な状況をモデル化することはできません。InputDelayOutputDelay のプロパティに加えて、状態空間 (ss) モデルには InternalDelay プロパティがあります。このプロパティによって、遅延のあるフィードバック ループを含めて、入力、出力、または伝達遅延のあるシステムの相互接続をモデル化できます。InternalDelay プロパティを使用して、遅延を含む任意の線形システムを正確にモデル化して解析できます。内部遅延は以下から生じます。

  • 入力遅延と出力遅延を含む状態空間モデルの連結。

  • 遅延信号のフィードバック。

  • MIMO tf または zpk モデルの伝達遅延から状態空間形式への変換。

内部むだ時間を使用して、次のことができます。

  • 連続時間系では、パデ近似で遅延を置き換える必要がないので、近似なしの時間と周波数のシミュレーションを生成できます。連続時間系では、長い遅延を含むシステムの正確な解析ができます。

  • 離散時間系では、遅延は z = 0 の極では置き換えられないので、他のシステム ダイナミクスから遅延を分離し続けることができます。これは、長い遅延のある離散時間システムの時間と周波数のシミュレーションの効率を飛躍的に向上させます。

  • 大部分の Control System Toolbox™ 関数を使用できます。

  • 遅延を含むシステムに対する高度な制御方法をテストできます。たとえば、スミス予測器の正確なモデルを実装してテストできます。長いデッド タイムをもつプロセス制御: スミス予測器の例を参照してください。

内部遅延が必要な理由

この例では、入力、出力、伝達遅延が動的システムで発生する可能性のあるすべての遅延のタイプをモデル化するには十分ではない理由を示します。ここでは、次のような 2 秒の遅延を含む簡単なフィードバック ループについて考えます。

閉ループ伝達関数は次のようになります。

e2ss+2+e2s

分子の遅延の項は出力遅延として表すことができます。ただし、分母の遅延の項ではできません。フィードバック ループ上の遅延の効果をモデル化するには、遅延と通常のダイナミクス間の内部結合を記録するために InternalDelay プロパティが必要です。

通常、行列 A、B、C、および D を一連の内部遅延にまとめて指定して、内部遅延を含む状態空間モデルを直接作成することは行いません。それよりも、そのようなモデルは遅延のあるモデルを相互接続するときに発生します。含まれる遅延の数やモデルの接続方法に制限はありません。フィードバック ループを閉じることで内部遅延を作成する例の詳細は、むだ時間のある閉フィードバック ループを参照してください。

内部遅延のあるモデルの動作

内部遅延を含むモデルを使用する場合は、次の動作に注意してください。

  • モデル相互接続が内部遅延を生じさせるときは、相互接続されているモデルのタイプに関係なく、ソフトウェアは ss モデルを返します。これは ss だけが内部遅延をサポートするためです。

  • フィードバック ループが完全にサポートされています。遅延を含むどのようなシステムにもフィードバック ループを設定できます。

  • 行列 ABC、および D を表示するときは、すべての遅延がゼロに設定されます (ゼロ次のパデ近似が行われます)。この近似は表示用だけに発生し、モデルを使用する計算には発生しません。

    システムによっては、遅延をゼロに設定すると、特異値の代数ループが作成されることがあります。そのため、ゼロ遅延の近似が正しく行われないか、間違って定義されることになります。これらのシステムには、次が当てはまります。

    • sys コマンドを入力すると、sys という名前のシステムの行列のサイズだけが出力される。

    • sys.A コマンドを入力すると、エラーが発生する。

      表示が不完全だったり、エラーが発生したりしても、モデル sys 自体に問題があるという意味ではありません。

内部むだ時間のモデル

状態空間オブジェクトでは、内部遅延を記録するために、一般化された状態空間方程式を使用します。概念的に、そのようなモデルは、2 つの相互接続した部分から構成されます。

  • 拡張された I/O セットを含む通常の状態空間モデル H(s)

  • 内部遅延のバンク。

対応する状態空間方程式は次のとおりです。

x˙=Ax(t)+B1u(t)+B2w(t)y(t)=C1x(t)+D11u(t)+D12w(t)z(t)=C2x(t)+D21u(t)+D22w(t)wj(t)=z(tτj),j=1,...,N

このツールを使用するために、このような内部表現について考える必要はありません。ただし、H または行列 AB1B2... などを抽出する場合は、次の例のように getDelayModel を使用できます。

P = 5*exp(-3.4*s)/(s+1); 
C = 0.1 * (1 + 1/(5*s));
T = feedback(ss(P*C),1);  
[H,tau] = getDelayModel(T,'lft'); 
size(H)

H は 2 入力 2 出力モデルで、T は SISO であることに注意してください。逆の操作 (Htau を組み合せて T を作成) は関数 setDelayModel で実行されます。

詳細は、[1][2]を参照してください。

内部むだ時間をサポートする関数

以下のコマンドでは、連続時間システムと離散時間システムの内部遅延がサポートされています。

  • すべての相互接続関数

  • 関数 impulseinitial 以外の時間領域応答関数

  • 関数 norm 以外の周波数領域関数

内部むだ時間をサポートする関数の制限

次のコマンドでは、連続時間システムと離散時間システムの内部遅延がサポートされていますが、制限がいくつかあります。

  • allmarginmargin—内挿を使用します。したがって、これらのコマンドの正確さは、指定したグリッドの細かさと同じになります。

  • polezero—すべての遅延をゼロに設定した場合のシステムの極と零点が出力されます。

  • ssdataget - SS モデルが内部遅延を含む場合は、すべての内部遅延がゼロに設定されたシステムの ABCD が出力されます。getDelayModel を使用して内部遅延のあるモデルの内部状態空間表現にアクセスします。

内部むだ時間をサポートしない関数

次のコマンドでは、内部むだ時間がサポートされていません。

参考文献

[1] P. Gahinet and L.F. Shampine, "Software for Modeling and Analysis of Linear Systems with Delays," Proc. American Control Conf., Boston, 2004, pp. 5600-5605

[2] L.F. Shampine and P. Gahinet, Delay-differential-algebraic Equations in Control Theory, Applied Numerical Mathematics, 56 (2006), pp. 574-588

関連するトピック