Main Content

Zero-Order Hold

ゼロ次ホールドのサンプリング周期を実装します。

  • Zero-Order Hold block

ライブラリ:
Simulink / Discrete
HDL Coder / Discrete

説明

Zero-Order Hold ブロックは、指定されたサンプリング周期の間、入力を保持します。入力がベクトルの場合、ベクトルのすべての要素が指定されたサンプリング周期の間、保持されます。

サンプル間の時間は、サンプル時間 パラメーターを使って指定します。-1 に設定すると、ブロックは サンプル時間 を継承します。

ヒント

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

バス サポート

Zero-Order Hold ブロックはバス対応ブロックです。入力は、バーチャルまたは非バーチャルのバス信号にすることができます。ブロック固有の制約はありません。Zero-Order Hold ブロックへの非バーチャル バス入力内のすべての信号は、対応するバス オブジェクトの要素が継承されたサンプル時間を指定していても、同じサンプル時間でなければなりません。Rate Transition ブロックを使って個々の信号のサンプル時間、またはバス内のすべての信号のサンプル時間を変更することができます。詳細については、非バーチャル バスのサンプル時間の変更およびバス対応ブロックを参照してください。

バス配列を Zero-Order Hold ブロックの入力信号として使用できます。バス配列の定義と使用方法の詳細は、非バーチャル バスのバス配列へのグループ化を参照してください。

同様のブロックとの比較

Memory ブロック、Unit Delay ブロック、および Zero-Order Hold ブロックは、類似の機能を提供しますが、異なる機能をもっています。また、使用目的も異なります。

この表は各ブロックに推奨される使用方法を示しています。

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

各ブロックには次の機能があります。

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

端子

入力

すべて展開する

ブロックが 1 サンプル周期の間保持する入力信号です。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

出力

すべて展開する

出力信号。1 サンプル周期の間保持された入力です。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

パラメーター

すべて展開する

サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1 に設定します。詳細については、サンプル時間の指定を参照してください。

連続サンプル時間 (0 または [0,0]) を指定しないでください。このブロックは離散サンプル時間のみをサポートしています。このパラメーターが -1 の場合、継承されるサンプル時間は連続ではなく、離散でなければなりません。

プログラムでの使用

ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。

ブロック パラメーターの値をプログラムで取得するには、関数 get_param を使用します。

パラメーター: SampleTime
値: -1 (既定値) | positive scalar number
データ型: char | string

例: set_param("mdl/Zero-Order Hold","SampleTime","0.1") specifies a discrete sample time of 0.1 for the Zero-Order Hold block named Zero-Order Hold in the model named mdl.

ブロックの特性

データ型

Boolean | bus | double | enumerated | fixed point | integer | single

直達

はい

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。

固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。

バージョン履歴

R2006a より前に導入