ドキュメンテーション

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

Lookup Table Dynamic

動的テーブルを使用した 1 次元関数の近似

  • ライブラリ:
  • Simulink / Lookup Tables

説明

他の Lookup Table ブロックとの違い

Lookup Table Dynamic ブロックは、xdat および ydat ベクトルを使用して関数 y = f(x) に対する近似を計算します。このルックアップ手法は、内挿、外挿、または入力の元の値を使用できます。

Lookup Table Dynamic ブロックを使用すると、シミュレーションを停止せずにテーブル データを変更できます。たとえば、シミュレーション中の物理システムに変更があった場合、新しいテーブル データを組み込むことができます。

ブレークポイントとテーブル データの入力

xdat ベクトルは、ブレークポイント データで、"厳密に単調増加" している必要があります。固定小数点データ型への変換後は、ベクトル内の次の要素の値は、前の要素の値よりも大きくなければなりません。量子化により、xdat は、浮動小数点データ型で厳密に単調増加させることができますが、固定小数点データ型への変換後は、それができません。

ydat ベクトルは、ブレークポイント値での関数の評価あるテーブル データです。

メモ

xdat および ydat にスカラー値 (1 要素配列) は入力できません。どちらか一方にスカラー値を入力した場合、シミュレーション時にエラーが示されます。xdat および ydat の両方に 1 行 n 列のベクトルを入力してください。

Lookup Table の定義

ルックアップ テーブルは、xdat および ydat を 1 行 n 列ベクトルとしてこのブロックに入力することにより、定義します。このブロックの生成コードが使用する ROM を削減するには、xdatydat に異なるデータ型を使用します。ただし、以下の制限が課せられます。

  • xdat ブレークポイント データと x 入力ベクトルは、同じ符号、バイアス、小数部の勾配をもつ必要があります。また、x の精度と範囲は、xdat の精度と範囲以上でなければなりません。

  • ydat テーブルのデータと y 出力ベクトルは、同じ符号、バイアス、小数部の勾配をもつ必要があります。

ヒント

ブレークポイントを均等な間隔で配置すると、Simulink® Coder™ で生成されたコードは分割されません。詳細については、Simulink ドキュメンテーションの fixpt_evenspace_cleanup および Simulink Coder ドキュメンテーションの問題のある固定小数点演算の特定 (Embedded Coder)を参照してください。

ブロックでの出力の生成方法

このブロックは、[ルックアップ手法] に選択した方法を使用して、入力値に基づいて出力を生成します。

ルックアップ手法ブロック アクション
[内挿 - 外挿]

入力の線形内挿と外挿を実行します。

  • 入力がブレークポイントに一致している場合、出力はテーブル データ内で対応する要素になります。

  • 入力と一致するブレークポイントがない場合は、このブロックはテーブルの 2 つの要素間で線形内挿を実行し、出力を決定します。入力がブレークポイント値の範囲外の場合、ブロックは最初の 2 つまたは最後の 2 つのポイントを使用して外挿を実行します。

メモ

このルックアップ手法を選択すると、Simulink Coder ソフトウェアではこのブロックのコードを生成できません。

[内挿 - 最後の値を使用] (既定の設定)

線形内挿を実行しますが、ブレークポイント データの両端のポイントの外では外挿しません。代わりに最後の値を使用します。

[入力の最近傍を使用]

現在の入力に最も近い xdat 内の要素を見つけます。対応する ydat 内の要素が出力となります。

[入力の下の値を使用]

現在の入力の下でそれに最も近い xdat 内の要素を見つけます。対応する ydat 内の要素が出力となります。xdat 内の要素で現在の入力の下方にあるものが存在しない場合は、最も近い要素を見つけます。

[入力の上の値を使用]

現在の入力の上でそれに最も近い xdat 内の要素を見つけます。対応する ydat 内の要素が出力となります。xdat 内の要素で現在の入力の上方にあるものが存在しない場合は、最も近い要素を見つけます。

メモ:

[入力の最近傍を使用]、[入力の下の値を使用]、および [入力の上の値を使用] の方法では、入力 x がブレークポイント値に一致すると、同じアクションが実行されます。

ソルバーの中には、シミュレーション時間をメジャー タイム ステップとマイナー タイム ステップに細かく分けるものがあります。マイナー タイム ステップは、メジャー タイム ステップの下位区分です。ソルバーは、各メジャー タイム ステップでの結果を生成し、マイナー タイム ステップでの結果を使ってメジャー タイム ステップでの結果の精度を向上させます。連続ソルバーでは、不正確な結果が生成されないように信号がマイナー タイム ステップで固定されるため、Lookup Table Dynamic ブロックの出力の外観は階段状になります。ブロック出力に対するソルバーの影響の詳細は、Simulink ドキュメンテーションのソルバーを参照してください。

端子

入力

すべて展開する

このブロックは実数値または複素数値の多次元入力を受け取ります。

例: 2:12

依存関係

x 入力ベクトルと xdat ブレークポイント データは、同じ符号、バイアス、小数部の勾配をもたなければなりません。また、x の精度と範囲は、xdat の精度と範囲以上でなければなりません。

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

xdat ベクトルは、ブレークポイント データで、厳密に単調増加している必要があります。固定小数点データ型への変換後は、ベクトル内の次の要素の値は、前の要素の値よりも大きくなければなりません。量子化により、xdat は、浮動小数点データ型で厳密に単調増加させることができますが、固定小数点データ型への変換後は、それができません。

ヒント

ブレークポイントを均等な間隔で配置すると、Simulink Coder で生成されたコードは分割されません。詳細については、Simulink ドキュメンテーションの fixpt_evenspace_cleanup および Simulink Coder ドキュメンテーションの問題のある固定小数点演算の特定 (Embedded Coder)を参照してください。

例: 1:10

依存関係

xdat ブレークポイント データと x 入力ベクトルは、同じ符号、バイアス、小数部の勾配をもつ必要があります。また、x の精度と範囲は、xdat の精度と範囲以上でなければなりません。

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

ydat 入力は、1 行 n 列の実数値または複素数値のデーブル データのベクトルです。これは、ブレークポイント値での関数の評価です。

例: [0 3 12 27 48 75 108 147 192 243 300]

依存関係

ydat テーブルのデータと y 出力ベクトルは、同じ符号、バイアス、小数部の勾配をもつ必要があります。

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

出力

すべて展開する

ブロックは、入力ベクトル xdat および ydat を使用して、関数 y = f(x) の近似を計算します。このルックアップ手法は、内挿、外挿、または入力の元の値を使用できます。

依存関係

ydat テーブルのデータと y 出力ベクトルは、同じ符号、バイアス、小数部の勾配をもつ必要があります。

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

パラメーター

すべて展開する

[メイン] タブ

ブロックは、ブレークポイント データ (xdat) およびテーブル データ (ydat) の入力ベクトルに、指定した [ルックアップ手法] を適用して出力を計算します。詳細については、ブロックでの出力の生成方法を参照してください。

プログラムでの使用

ブロック パラメーター: LookUpMeth
型: 文字ベクトル
値: 'Interpolation-Extrapolation' | 'Interpolation-Use End Values' | 'Use Input Nearest' | 'Use Input Below' | 'Use Input Above'
既定の設定: 'Interpolation-Use End Values'

[信号属性] タブ

出力信号 y のデータ型を指定します。

[データ型アシスタントを表示] ボタン をクリックして、データ型の属性の設定に役立つ [データ型アシスタント] を表示します。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

依存関係

ydat テーブルのデータと y 出力ベクトルは、同じ符号、バイアス、小数部の勾配をもつ必要があります。

プログラムでの使用

ブロック パラメーター: OutDataTypeStr
型: 文字ベクトル
値: 'Inherit: Inherit via back propagation' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'boolean' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|<data type expression>
既定の設定: 'double'

固定小数点ツールが、ブロックに指定した [出力] データ型をオーバーライドしないようにするには、このパラメーターを選択します。詳細については、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。

プログラムでの使用

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

固定小数点演算の丸めモードを指定します。詳細については、丸め (Fixed-Point Designer)を参照してください。

ブロック パラメーターは常に最近傍の表現可能な値に丸められます。ブロックパラメーターの丸めを直接制御するには、MATLAB® の丸め関数を使用する式をマスク フィールドに入力します。

プログラムでの使用

ブロック パラメーター: RndMeth
型: 文字ベクトル
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero'
既定の設定: 'Floor'

このチェック ボックスをオンにすると、オーバーフローを、データ型が表現できる最小値または最大値のいずれかに飽和させます。このオプションを選択しないと、オーバーフローはラップします。

このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。

プログラムでの使用

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

ブロックの特性

データ型

Boolean | double | fixed point | integer | single

直接フィードスルー

いいえ

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

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

R2006a より前に導入