ドキュメンテーション

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

Rate Transition

異なるレートで動作しているブロック間の、データの伝達を処理

  • ライブラリ:
  • Simulink / Signal Attributes

    HDL Coder / Signal Attributes

説明

Rate Transition ブロックは、あるレートで動作しているブロックの出力データを、異なるレートで動作しているブロックの入力に伝達します。ブロックのパラメーターを使用して、データの整合性と、高速応答や省メモリ性がより高い確定的な転送とをトレードします。データの整合性と確定的データ転送の詳細については、データ転送時の問題 (Simulink Coder)を参照してください。

遷移処理オプション

遷移処理オプションブロック パラメーター設定
  • データの整合性

  • データ転送の確定性

  • 最大レイテンシ

選択:

  • データ転送中の整合性を確保

  • 確定的にデータ転送を確保

  • データの整合性

  • 非確定的データ転送

  • 最小レイテンシ

  • より多くの必要メモリ量

選択:

  • データ転送中の整合性を確保

クリア:

  • 確定的にデータ転送を確保

  • 潜在的なデータ整合性損失

  • 非確定的データ転送

  • 最小レイテンシ

  • 省メモリ

クリア:

  • データ転送中の整合性を確保

  • 確定的にデータ転送を確保

依存関係

Rate Transition ブロックの動作は、以下の条件に依存します。

ブロックのラベル

ブロック線図を更新すると、シミュレーション動作を表すラベルが Rate Transition ブロックに表示されます。

ラベルブロックの動作
ZOH ゼロ次ホールドとして動作
1/z 単位遅延として動作
Buf セマフォの制御で入力を出力にコピー
Db_buf ダブル バッファーを使って入力を出力にコピー
3bufトリプル バッファーを使って入力を出力にコピー
Copy 入力から出力へのプロテクトされていないコピー
NoOp 何もしない
Mixed 動作が異なる複数のブロックに拡張

ブロック動作のラベルにより、別々のレートで動作しているタスク間の安全なデータ転送を確保するための方法が理解できます。サンプル時間を示す色を使って、ブロックが埋め合わせる相対的なレートを表示できます (サンプル時間情報の表示を参照)。たとえば、次のモデルがあります。

サンプル時間の色とブロックの動作ラベルは、次のことを示しています。

  • ブロック線図の上部の Rate Transition ブロックは、高速から低速への遷移におけるゼロ次ホールドとして動作する。

  • ブロック線図の下部の Rate Transition ブロックは、低速から高速への遷移における単位遅れとして動作する。

詳細については、レート変換の処理 (Simulink Coder)を参照してください。

同期サンプル時間の影響

次の表は、入力端子と出力端子 (inTsoutTs) のサンプル時間が周期的または同期を取るときに各ラベルがどのように表示されるかをまとめています。

ブロック設定

ブロック ラベル

Rate Transition

Rate Transition ブロックの条件

データの整合性と確定性を伴う

データの整合性のみ

データの整合性と確定性のいずれも伴わない

inTs = outTs

(等しい)

inTsOffset < outTsOffset

なし (エラー)

Buf

Copy または NoOp (表の後のメモを参照)

inTsOffset = outTsOffset

Copy または NoOp (表の後のメモを参照)

Copy または NoOp (表の後のメモを参照)

inTsOffset > outTsOffset

なし (エラー)

Db_buf

inTs < outTs

(高速から低速)

inTs = outTs / N

inTsOffset, outTsOffset = 0

ZOH

Buf

inTs = outTs / N

inTsOffsetoutTsOffset

なし (エラー)

inTs = outTs / N

inTsOffset > outTsOffset

なし (エラー)

Db_buf

inTsoutTs / N

なし (エラー)

inTs > outTs

(低速から高速)

inTs = outTs * N

inTsOffset, outTsOffset = 0

1/z

Db_buf

inTs = outTs * N

inTsOffsetoutTsOffset

なし (エラー)

inTs = outTs * N

inTsOffset > outTsOffset

なし (エラー)

inTsoutTs * N

なし (エラー)

KEY

  • inTs, outTs: 入力端子と出力端子のそれぞれのサンプル時間

  • inTsOffset, outTsOffset: 入力端子と出力端子のそれぞれのサンプル時間オフセット

  • N: 整数値 > 1

[コンフィギュレーション パラメーター] ダイアログ ボックスで [ブロック削減] パラメーターを選択すると、CopyNoOp に削減されます。NoOp ラベルの場合、Rate Transition ブロックでのコード生成は行われません。ブロック削減がオンのときにブロックが削減されないようにするには、ブロック出力にテスト ポイントを追加します (Simulink ドキュメンテーションのテスト ポイントを参照)。

非同期サンプル時間の影響

次の表は、入力端子または出力端子 (inTs または outTs) のサンプル時間が非周期的、または同期を取らないときに各ラベルがどのように表示されるかをまとめています。

ブロック設定

ブロック ラベル
データの整合性と確定性を伴うデータの整合性のみデータの整合性と確定性のいずれも伴わない

inTs = outTs

Copy

Copy

Copy

inTsoutTs

なし (エラー)

Db_buf

KEY

  • inTs, outTs: 入力端子と出力端子のそれぞれのサンプル時間

端子

入力

すべて展開する

新しいサンプルレートに遷移する入力信号。スカラー、ベクトル、行列、または N 次元配列として指定します。応答速度や省メモリ性を向上するため、データ整合性と確定的な転送をトレードするために使用できるブロック パラメーターについては、遷移処理オプションを参照してください。

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

出力

すべて展開する

出力信号は、指定したサンプルレートに変換された入力信号です。既定の構成では、安全で確定的なデータ転送が確保されます。応答速度や省メモリ性を向上するため、データ整合性と確定的な転送をトレードするために使用できるブロック パラメーターについては、遷移処理オプションを参照してください。

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

パラメーター

すべて展開する

このチェック ボックスをオンにすると、ブロックがデータを転送する際のデータの整合性が確保されるコードが生成されます。このチェック ボックスが選択されていて、転送が非確定的 ([確定的にデータ転送を確保] を参照) である場合、生成コードは入力レートと出力レートの優先順位に応じて単一または複数のバッファーによる適切なアルゴリズムを使用して、データ転送中の整合性を確保します。

そうしないと、Rate Transition ブロックが少なくなるか、コピー動作を使用するコードが生成されてデータ転送に悪影響を与えます。この非保護モードでは、メモリ消費は少なくなりますが、コピー動作が割り込みで発生することもあるため、データ転送中にデータの整合性が損なわれる可能性があります。生成コードによる動作に最大の応答性 (すなわち、非確定的動作) とデータの整合性をもたせるには、このチェック ボックスをオンにしてください。詳細については、Rate Transition ブロックのオプション (Simulink Coder)を参照してください。

プログラムでの使用

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

このチェック ボックスをオンにすると、生成コードは、より遅いブロックのサンプルレート (すなわち、確定的に) でデータを転送するコードを生成します。このチェック ボックスをオフにすると、ソース ブロックから新しいデータが得られ、受信ブロックでデータの受け取り準備ができたときに、データ転送が行われます。転送遅延を避けるため、システムが最大の反応性で動作するようにします。しかし、その転送は予測されない状態で発生することがあり、それは一部のアプリケーションでは望ましくありません。詳細については、Rate Transition ブロックのオプション (Simulink Coder)を参照してください。

プログラムでの使用

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

このパラメーターは、低速から高速への転送だけに適用されます。このパラメーターは、低速のブロックからの出力が Rate Transition ブロックの入力に何も接続されていないときに、転送の始めに Rate Transition ブロックの初期出力を指定します。Simulink では、このブロックの初期出力を Inf または NaN にすることはできません。指定する値はスカラーにするか、入力信号と同じ次元をもたなければなりません。

プログラムでの使用

ブロック パラメーター: InitialCondition
型: 文字ベクトル
値: 有限のスカラー
既定の設定: '0'

出力端子のサンプル時間を設定するためのモードを指定します。次のオプションがあります。

  • [指定][出力端子のサンプル時間] パラメーターを使用して、Rate Transition ブロックが入力レートから変換される出力レートを指定します。

  • 継承 - Rate Transition ブロックの出力端子が接続されるブロックから、Rate Transition ブロックが出力レートを継承することを指定します。

  • [入力端子のサンプル時間の倍数][サンプル時間の倍数 (>0)] パラメーターを使って、Rate Transition ブロックの出力レートを入力レートの倍数として指定できます。

[継承] を選択し、出力端子に接続されたすべてのブロックもサンプル時間を継承する場合は、モデル内の最速のサンプル時間が適用されます。

プログラムでの使用

ブロック パラメーター: OutPortSampleTimeOpt
型: 文字ベクトル
値: 'Specify' | 'Inherit' | 'Multiple of input port sample time'
既定の設定: 'Specify'

出力レートの指定値を入力します。ブロックは入力レートを、ここで指定した出力レートに変換します。既定値 (-1) は、Rate Transition ブロックが、その出力端子の接続先のブロックから出力レートを継承するよう指定します。出力レートの指定方法については、Simulink ドキュメンテーションのサンプル時間の指定を参照してください。

依存関係

このパラメーターを有効にするには、[出力端子のサンプル時間オプション][指定] に設定します。

プログラムでの使用

ブロック パラメーター: OutPortSampleTime
型: 文字ベクトル
値: スカラー | ベクトル
既定の設定: '-1'

入力端子のサンプル時間の倍数として出力レートを指定する正の値を入力します。既定値 (1) は、入力レートと同じ出力レートを指定します。値 0.5 は、出力レートを入力レートの半分に指定します。値 2 は、出力レートを入力レートの 2 倍に指定します。

依存関係

このパラメーターを有効にするには、[出力端子のサンプル時間オプション][入力端子のサンプル時間の倍数] に指定します。

プログラムでの使用

ブロック パラメーター: OutPortSampleTimeMultiple
型: 文字ベクトル
値: スカラー
既定の設定: '1'

ブロックの特性

データ型

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

直接フィードスルー

はい

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

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

R2006a より前に導入