ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Unit Delay

信号を 1 サンプリング周期遅延

ライブラリ

Discrete

説明

Unit Delay block ブロックは、指定したサンプリング期間だけその入力を保持して遅らせます。このブロックは、z-1 離散時間演算子と等価です。ブロックは 1 つの入力を受け入れ、1 つの出力を生成します。各信号はスカラーでもベクトルでもかまいません。入力がベクトルの場合、ベクトルのすべての要素を指定されたサンプリング周期だけ保持して遅らせます。

最初のサンプリング期間のブロック出力は、[初期条件] パラメーターを使って指定します。十分注意してこのパラメーターを選択すると、不要な出力の動作を最小限度に抑えることができます。サンプル間の時間は、[サンプル時間] パラメーターを使って指定します。-1 に設定すると、ブロックは [サンプル時間] を継承します。

Unit Delay ブロックが連続サンプル時間を継承する場合、ブロックは Memory ブロックと同様になります。

    ティップ   異なるサンプルレートで動作しているブロック間の、低速から高速への遷移を生成するために、Unit Delay ブロックを使用しないでください。代わりに、Rate Transition ブロックを使用してください。

同様のブロックとの比較

同様の機能のブロック

Unit Delay ブロック、Memory ブロック、および Zero-Order Hold ブロックは、類似する機能をもっていますが、それぞれ別の機能も備えています。また、使用目的も異なります。以下の節では、これらの違いの一部を説明します。

各ブロックに推奨される使用方法

ブロックブロックの使用目的リファレンスの例
Unit Delay指定された離散サンプル時間を使用して遅延を実装します。理想的には、ブロックで離散サンプル時間の信号を受け入れ、出力するようにします。
「Memory」1 積分タイム ステップで遅延を実装します。理想的には、ブロックで連続信号 (マイナー タイム ステップで固定された信号) を受け入れ、マイナー タイム ステップで固定された信号を出力します。
Zero-Order Hold連続サンプル時間の入力信号を離散サンプル時間の出力信号に変換します。

ブロックの機能の概要

機能ブロック
Unit DelayMemoryZero-Order Hold
初期条件の指定ありありいいえ、t = 0 の際のブロック出力が入力値と一致しなければならないため
サンプル時間の指定ありいいえ、ブロックはサンプル時間のみを継承できるため (モデル全体に使用される駆動ブロックまたはソルバーから)あり
フレームベースの信号のサポートありなし あり
状態のログ作成のサポートありなしなし

ブロック出力に対するソルバー指定の効果

Unit Delay ブロックまたは Zero-Order Hold ブロックのダイアログ ボックスに離散サンプル時間を指定すると、モデルのソルバーの仕様に応じてブロック出力が変化することがあります。

いずれも離散サンプル時間 1 を使用する Unit Delay ブロックと Zero-Order Hold ブロックのモデルモデルがあるとします。

Repeating Sequence Stair ブロックは、連続サンプル時間 0 を使用して Unit Delay ブロックと Zero-Order Hold ブロックに入力信号を渡します。

モデルでステップ サイズ 1 の固定ステップ ソルバーを使用している場合、スコープには次のシミュレーション結果が表示されます。

モデルで可変ステップ ソルバーを使用している場合、スコープには次のシミュレーション結果が表示されます。

Zero-Order Hold ブロックは、t = 0、1、2、...、9 のときに Repeating Sequence Stair ブロックの入力値を受け取り、サンプリング周期 (1 秒) で各入力値を保持します。Unit Delay ブロックは同じように Repeating Sequence Stair の各入力値を 1 秒間保持するだけでなく、各値をサンプリング周期だけ遅らせます。[初期条件] パラメーターは、最初のサンプリング周期中の Unit Delay ブロックの出力を指定します。サンプル時間の詳細は、「サンプル時間とは」および「 サンプル時間の指定」を参照してください。

モデルのソルバーの仕様も、Memory ブロックの動作に影響を与えます。詳細は、「Memory ブロックの使用方法の例」を参照してください。

サポートするデータ型

Unit Delay ブロックは、Simulink® がサポートするすべてのデータ型 (固定小数点データ型および列挙型データを含む) の実数および複素数信号を受け入れます。入力信号のデータ型がユーザー定義データ型の場合、初期条件はゼロでなければなりません。

詳細は、Simulink ドキュメンテーションの「 Simulink でサポートされているデータ型」を参照してください。

パラメーターとダイアログ ボックス

シミュレーション時、このブロックは次の値を使用します。

  • 状態名が関係付けられる信号オブジェクトの初期値

  • 信号オブジェクトの最大値と最小値

詳細は、Simulink Coder™ ドキュメンテーションの「状態」を参照してください。

初期条件

Unit Delay ブロックの出力が不定である間の最初のサンプリング周期に対するシミュレーションの出力を指定します。

設定

既定の設定: 0

[初期条件] パラメーターは、double (倍精度) から最近傍の丸めと飽和を使ってオフラインで入力のデータ型に変換されます。

コマンド ライン情報

ブロック固有のパラメーター」を参照してください。

入力処理

Unit Delay ブロックでサンプルベースかフレームベースのどちらの処理を実行するかを指定します。

設定

既定の設定: [チャンネルとしての要素 (サンプル ベース)]

[チャンネルとしての要素 (サンプル ベース)]

入力の各要素を別々のチャンネルとして扱います (サンプルベースの処理)。

[チャンネルとしての列 (フレーム ベース)]

入力の各列を別々のチャンネルとして扱います (フレームベースの処理)。

[継承]

ブロックの処理モードを入力信号から継承するように設定し、それに応じて入力を遅らせます。入力信号がサンプルベースかフレームベースかどうかを判断するには、信号線を確認します。Simulink は、サンプルベースの信号を単線で表し、フレームベースの信号を二重線で表します。

    メモ:    [入力処理] パラメーターの [継承] オプションが選択されており、入力信号がフレームベースの場合は、Simulink® は将来のリリースで警告またはエラーを発生します。

[入力処理] を使って、ブロックでサンプルベースかフレームベースのどちらの処理を実行するかを指定します。ブロックは、入力 u にフレームベースの信号を受け入れます。その他すべての入力信号はサンプルベースでなければなりません。

入力信号 u入力処理モードブロックは動作するか
サンプルベースサンプルベースはい
フレームベースいいえ、エラーが発生
サンプルベースフレームベースはい
フレームベースはい
サンプルベース継承はい
フレームベースはい

これらの 2 つの処理モードの詳細は、DSP System Toolbox™ ドキュメンテーションの「Sample- and Frame-Based Concepts」を参照してください。

依存関係

フレームベースの処理には、DSP System Toolbox のライセンスが必要になります。

コマンド ライン情報

ブロック固有のパラメーター」を参照してください。

サンプル時間 (継承は -1)

サンプル時間の離散間隔を入力します。あるいは、連続または継承などの他の適切なサンプル時間を指定します。

設定

既定の設定: -1

既定の設定では、ブロックはモデル内の前後関係に基づいてサンプル時間を継承します。他のサンプル時間を設定するには、「サンプル時間のタイプ」の表に基づいて有効なサンプル時間を入力します。

詳細は、オンライン ドキュメンテーションの「 サンプル時間の指定」を参照してください。

コマンド ライン情報

「ブロック固有のパラメーター」を参照してください。

状態名

各状態に固有名を割り当てるにはこのパラメーターを使用します。

設定

既定の設定: ' '

  • 空白のままの場合、状態名は割り当てられません。

ヒント

  • 有効な識別子は英字またはアンダースコア文字で始まり、英数字またはアンダースコア文字が続きます。

  • 状態名は選択されたブロックに対してのみ適用されます。

依存関係

このパラメーターを設定し、[適用] ボタンをクリックすると、[状態名を Simulink の信号オブジェクトに関連付ける] が有効になります。

詳細は、Simulink Coder ドキュメンテーションの「状態」を参照してください。

コマンド ライン情報

パラメーター: StateIdentifier
タイプ: 文字列
値: ' '
既定の設定: ' '

状態名を Simulink の信号オブジェクトに関連付ける

状態名を Simulink の信号オブジェクトに関連付けます。

設定

既定の設定: オフ

[オン]

状態名を Simulink の信号オブジェクトに関連付けます。

[オフ]

状態名を Simulink の信号オブジェクトに関連付けません。

依存関係

[状態名] によって、このパラメーターが有効になります。

このチェック ボックスをオンにすると、[コード生成ストレージ クラス] が無効になります。

コマンド ライン情報

パラメーター: StateMustResolveToSignalObject
タイプ: 文字列
値: 'off' | 'on'
既定の設定: 'off'

パッケージ

適用するカスタム ストレージ クラスを定義するパッケージを選択します。

設定

既定の設定: ---None---

---なし---

内部ストレージ クラスの属性を設定します。

mpt

組み込みの mpt パッケージを適用します。

Simulink

組み込みの Simulink パッケージを適用します。

依存関係

自分自身のパッケージを定義している場合は、[更新] をクリックします。この操作によりパッケージ リストへの検索パスにすべてのユーザー定義パッケージを追加します。

コード生成ストレージ クラス

状態のストレージ クラスを選択します。

設定

既定の設定: [Auto]

[Auto]

[Auto] は、外部コードのインターフェイスを必要としない状態に対して適切なストレージ クラスです。

[ExportedGlobal]

状態はグローバル変数に格納されます。

[ImportedExtern]

model_private.h は、状態を外部変数として宣言します。

[ImportedExternPointer]

model_private.h は、状態を外部ポインターとして宣言します。

依存関係

[状態名] によって、このパラメーターが有効になります。

このパラメーターを [ExportedGlobal][ImportedExtern]、または [ImportedExternPointer] に設定すると、[コード生成ストレージ型修飾子] が有効になります。

コマンド ライン情報

コマンド ライン情報

パラメーター: StateStorageClass
タイプ: 文字列
値: 'Auto' | 'ExportedGlobal' | 'ImportedExtern' | 'ImportedExternPointer'
既定の設定: 'Auto'

コード生成ストレージ クラス

状態に対してカスタム ストレージ クラスを選択します。

設定

既定の設定: [自動]

[自動]

[Auto] は、外部コードのインターフェイスを必要としない状態に対して適切なストレージ クラスです。

[SimulinkGlobal]

model_P は、ワークスペース内の対応する値に状態を初期化します。

[ExportedGlobal]

状態はグローバル変数に格納されます。

[ImportedExtern]

model_private.h は、状態を外部変数として宣言します。

[ImportedExternPointer]

model_private.h は、状態を外部ポインターとして宣言します。

[既定の設定]

編集不可能なプレースホルダ ストレージ クラスが作成されています。

BitField

struct 宣言は Boolean データを組み込むように作成されています。

Volatile

Volatile 型修飾子は状態宣言に使用されます。

ExportToFile

グローバル変数宣言を含むヘッダー (.h) ファイルは、ユーザー指定の名前で生成されます。

ImportFromFile

グローバル変数宣言を含む事前定義されたヘッダー (.h) ファイルが含まれています。

FileScope

状態宣言の前に静的な修飾子が生成され、状態を現在のファイルだけに表示できるようにします。

Struct

struct 宣言は、パラメーターまたは信号オブジェクト データをカプセル化するために作成されます。

StructVolatile

Volatile 型修飾子は struct 宣言に使用されます。

GetSet

メモリの読み取りと書き込みを行う特殊な関数呼び出しをサポートします。

依存関係

[状態名] によって、このパラメーターが有効になります。

有効なストレージ クラスのリストは [パッケージ] の選択によって異なります。

このパラメーターを [ExportedGlobal][ImportedExtern]、または [ImportedExternPointer] に設定すると、[コード生成ストレージ型修飾子] が有効になります。

参考

Simulink Coder ドキュメンテーションの「状態のストレージ クラス」

コード生成ストレージ型修飾子

Simulink Coder ストレージ型修飾子を指定します。

設定

既定の設定: ' '

空白のままの場合、修飾子は割り当てられません。

依存関係

[コード生成ストレージ クラス][ExportedGlobal][ImportedExtern]、または [ImportedExternPointer] に設定すると、このパラメーターが有効になります。

コマンド ライン情報

パラメーター: RTWStateStorageTypeQualifier
タイプ: 文字列
値: ' '
既定の設定: ' '

バス サポート

Unit Delay ブロックは、バス対応ブロックです。入力は、次の制限を満たすバーチャルまたは非バーチャル バス信号です。

  • [初期条件] は、ゼロ、非ゼロのスカラー、または有限の数値構造でなければなりません。

  • [初期条件] がゼロまたは構造であり、[状態名] を指定した場合、入力をバーチャル バスにすることはできません。

  • [初期条件] が非ゼロのスカラーの場合、[状態名] は指定できません。

初期条件構造体の指定方法の詳細は、「バス信号の初期条件の指定」を参照してください。

Unit Delay ブロックへの非バーチャル バス入力内のすべての信号は、対応するバス オブジェクトの要素が継承されたサンプル時間を指定していても、同じサンプル時間でなければなりません。個々の信号またはバスの中のすべての信号のサンプル時間の変更に Rate Transition ブロックを使用できます。詳細は、「合成信号」「バス対応ブロック」を参照してください。

Unit Delay ブロックの使用方法については、sldemo_enginewcsldemo_enginewc を参照してください。Unit Delay ブロックは Compression サブシステムに表示されます。

特性

バス機能

あり。制限は「バス サポート」を参照。

直接フィードスルー

なし

サンプル時間

[サンプル時間] パラメーターで指定

スカラー拡張

あり、入力または初期条件について

状態数

あり、固定小数点以外のデータ型について駆動ブロックから継承

離散化

あり

多次元化

あり

ゼロクロッシング検出

なし

この情報は役に立ちましたか?