Main Content

Transport Delay

設定した時間分だけ入力を遅延

  • Transport Delay block

ライブラリ:
Simulink / Continuous

説明

Transport Delay ブロックは、指定した時間分だけ入力を遅らせます。このブロックを時間遅延のシミュレーションに使用できます。このブロックへの入力は連続信号にする必要があります。

シミュレーションの開始時に、このブロックは [初期出力] パラメーターを出力します。これはシミュレーション時間が [時間遅延] パラメーターを超えるまで続きます。その後、ブロックは遅延入力を出力し始めます。シミュレーション中は、ブロックによって入力点とシミュレーション時間がバッファーに保存されます。バッファーのサイズは [初期バッファー サイズ] パラメーターで指定します。

保存された入力値の時間に対応しない時間での出力が要求されると、ブロックはデータ点の間を線形内挿します。遅れがステップ サイズより小さい場合、ブロックは最後の出力点から外挿するため、結果が不正確になることがあります。ブロックには直達がないので、現在の入力を使ってその出力値を計算することはできません。たとえば、ステップ サイズが 1 で現在の時間が t = 5 の固定ステップ シミュレーションを考えます。遅れが 0.5 の場合、ブロックは t = 4.5 でデータ点を生成する必要があります。最後に格納した時間は t=4 なので、ブロックは前進外挿を行います。

Transport Delay ブロックは、離散信号の内挿は行わず、代わりに、要求された時間での離散値を返します。

このブロックは、サンプル ヒットのみで出力を遅らせ、保持する Unit Delay ブロックとは異なります。

ヒント

linmod を使って、Transport Delay ブロックを含むモデルを線形化することは避けてください。詳細については、モデルの線形化を参照してください。

端子

入力

すべて展開する

遅延させる入力信号。スカラー、ベクトルまたは行列として指定します。

[時間遅延] パラメーターの値が 0 の場合、この端子は直達をもちます。[時間遅延] パラメーターは実行時に調整可能であるため、Transport Delay ブロックはこの端子が常に直達をもつかのように扱われます。

データ型: double

出力

すべて展開する

入力信号。指定した時間分だけ遅延させます。出力は、入力信号と同じ次元とデータ型となります。

データ型: double

パラメーター

すべて展開する

非負のスカラー、ベクトルまたは行列として出力に伝播する前に入力信号を遅らせるシミュレーション時間の量を指定します。

プログラムでの使用:

ブロック パラメーター: DelayTime
型: 文字ベクトル、string
値: 非負のスカラー、ベクトルまたは行列
既定の設定: '1'

シミュレーション時間がスカラー、ベクトルまたは行列として入力された時間遅延をはじめて超える前に、ブロックが生成する出力を指定します。

制限

このブロックの初期出力を inf または NaN にはできません。

シミュレーションの実行中には Run-to-run tunable parameter を変更できません。ただし、シミュレーションの開始前に変更しても、アクセラレータまたはラピッド アクセラレータではコードの再生成は行われません。

プログラムでの使用

ブロック パラメーター: InitialOutput
型: 文字ベクトル、string
値: スカラー | ベクトル | 行列
既定の設定: '0'

格納する入力データ点の数に対応するメモリ割り当ての初期サイズを定義します。

  • 入力点の数が初期バッファー サイズを超えた場合、ブロックは追加のメモリを割り当てます。

  • シミュレーションが終了したら、必要だった総バッファー サイズを示すメッセージが出ます。

ヒント

  • メモリの割り当てはシミュレーションを減速させるので、シミュレーション速度が問題になる場合は、このパラメーター値を慎重に選択してください。

  • 時間遅延が長い場合、このブロックは、特に多次元化された入力に対して大量のメモリを使用する可能性があります。

プログラムでの使用

ブロック パラメーター: BufferSize
型: 文字ベクトル、string
値: 正の整数スカラー
既定の設定: '1024'

このチェック ボックスをオンにして、固定サイズ バッファーを使用して前のタイム ステップからの入力データを保存します。

[初期バッファー サイズ] パラメーターは、バッファーのサイズを指定します。バッファーがいっぱいの場合、新しいデータによって既にバッファーにあるデータが置き換えられます。Simulink® は線形外挿を使ってバッファー内にない出力値を推定します。

メモ

Simulink Coder™ のライセンスを保有している場合、ERT または GRT コード生成は、このチェック ボックスをオンにしない場合でも固定サイズ バッファーを使用します。

ヒント

  • 入力データが線形の場合、このチェック ボックスをオンにするとメモリを節約できます。

  • 入力が非線形の場合は、このチェック ボックスをオンにしないでください。結果が不正確になる可能性があります。

プログラムでの使用

ブロック パラメーター: FixedBuffer
型: 文字ベクトル、string
値: 'off' | 'on'
既定の設定: 'off'

線形化と平衡化を行うとき、ブロックがその入力を出力するようにします。つまり、ブロックを直達モードに設定します。

ヒント

  • このチェック ボックスをオンにすると、関数 linmod、関数 dlinmod、または関数 trim の使用時にモデルでの状態配列順序が変わります。この新しい状態配列順序を抽出するには次のようにします。

    1. 次のコマンドを使ってモデルをコンパイルします。model は Simulink モデルの名前です。

          [sizes, x0, x_str] = model([],[],[],'lincompile'); 
    2. 次のコマンドを使ってコンパイルを終了します。

        model([],[],[],'term'); 
  • Simulink モデルの状態の cell 配列である出力引数 x_str には、新しい状態配列順序が入ります。状態のベクトルを関数 linmod、関数 dlinmod、または関数 trim に入力として渡すと、状態ベクトルはこの新しい状態配列順序を使用しなければなりません。

プログラムでの使用

ブロック パラメーター: TransDelayFeedthrough
型: 文字ベクトル、string
値: 'off' | 'on'
既定の設定: 'off'

線形化ルーチンのパデ近似の次数を非負の整数のスカラー、ベクトルまたは行列として設定します。

  • 既定値は 0 です。この場合、動的状態のない単位ゲインが得られます。

  • 次数を正の整数 n に設定すると、n 個の状態がモデルに追加されますが、伝達遅延のより正確な線形モデルが得られます。

プログラムでの使用

ブロック パラメーター: PadeOrder
型: 文字ベクトル、string
値: スカラー | ベクトル | 行列
既定の設定: '0'

ブロックの特性

データ型

double

直達

はい

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

バージョン履歴

R2006a より前に導入