ドキュメンテーション

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

Unit Delay

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

ライブラリ

Discrete

説明

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

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

    メモ:   異なるサンプル レートで動作するブロック間での遷移を作成するために 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 ブロックは、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 を指定してサンプル時間を継承します。

設定

既定の設定: -1

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

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

コマンド ライン情報

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

状態名

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

設定

既定の設定: ' '

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

ヒント

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

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

依存関係

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

詳細は、Simulink Coder ドキュメンテーションの「生成コードでの離散ブロック状態の名前付け」を参照してください。

コマンド ライン情報

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

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

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

設定

既定の設定: オフ

オン

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

オフ

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

依存関係

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

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

コマンド ライン情報

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

信号オブジェクト クラス

ターゲット パッケージが定義する信号オブジェクト クラスを選択してカスタム ストレージ クラスのパッケージを選択します。たとえば、組み込みパッケージ mpt からカスタム ストレージ クラスを適用するには [mpt.Signal] を選択します。Embedded Coder® ソフトウェアで ERT ベースのコード生成ターゲットを使用している場合を除き、カスタム ストレージ クラスは生成されたコードに影響しません。

設定

Simulink.Signal

組み込みパッケージ Simulink からカスタム ストレージ クラスを使用します。

Package.Class

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

目的のクラスがリストに表示されない場合は、[クラス リストのカスタマイズ] を選択します。詳細については、「Apply Custom Storage Classes Directly to Signal Lines, Block States, and Outport Blocks」を参照してください。

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

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

設定

既定の設定:Auto

Auto

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

StorageClass

リストから選択したストレージ クラスまたはカスタム ストレージ クラスを適用します。ストレージ クラスの詳細については、「ストレージ クラスの適用による、コード内での信号と状態の制御」を参照してください。カスタム ストレージ クラスの詳細については、「Control Data Representation by Applying Custom Storage Classes」を参照してください。

[信号オブジェクト クラス] を使用して、Simulink 以外のパッケージからカスタム ストレージ クラスを選択します。

依存関係

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

TypeQualifier

    メモ:   TypeQualifier は将来のリリースで削除されます。ストレージ型修飾子をデータに適用するには、カスタム ストレージ クラスとメモリ セクションを使用します。Embedded Coder ソフトウェアで ERT ベースのコード生成ターゲットを使用している場合を除き、カスタム ストレージ クラスとメモリ セクションは生成されたコードに影響しません。

const または volatile などのストレージ型修飾子を指定します。

設定

  • 既定の設定: ' ' (空の文字列)

  • const

  • volatile

依存関係

[コード生成ストレージ クラス][ExportedGlobal][ImportedExtern][ImportedExternPointer] または [SimulinkGlobal] に設定すると、このパラメーターが有効になります。このパラメーターは以前にこの値を設定している場合を除き、非表示です。

コマンド ライン情報

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

バス サポート

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

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

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

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

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

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

バス配列を Unit Delay ブロックの入力信号として使用できます。[初期条件] パラメーターを次のように指定できます。

  • 0。この場合、バスの配列内にある個々の信号はすべて初期値 0 を使用します。

  • バスの配列内にある個々の信号に対して初期条件を指定する構造体の配列。

  • バス タイプで定義される各要素の初期条件を指定する単精度スカラー構造体。この手法を使用して配列の各バスに同じ初期条件を指定します。

バス配列の定義と使用方法の詳細は、「バス配列へのバスの統合」を参照してください。

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

特性

データ型

double | single | boolean | 整数 | 固定小数点 | 列挙型 | バス

サンプル時間

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

直接フィードスルー

なし

多次元信号

あり

可変サイズの信号

あり

ゼロクロッシング検出

なし

コード生成

あり

R2006a より前に導入

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