Main Content

n-D Lookup Table

  • n-D Lookup Table block

ライブラリ:
Simulink / Lookup Tables
HDL Coder / Lookup Tables

説明

サポートされているブロック演算

1-D、2-D および n-D の Lookup Table ブロックは、N 個の変数で関数のサンプル値表現を評価します。

y=F(x1,x2,x3,...,xN)

関数 F は経験的なものです。このブロックは、ブロックのパラメーターで定義した値のテーブルの検索または内挿により、入力を出力値にマップします。このブロックは、フラット (定数)、線形 (線形の点と勾配)、ラグランジュ (線形ラグランジュ)、最も近い整数への丸め、3 次スプライン、および Akima スプライン内挿法をサポートしています。これらの方法は、1 ~ 30 の任意の次元のテーブルに適用できます。

次のブロックでは、最初の入力は最初の次元 (行) ブレークポイントのブレークポイントを、2 番目の入力は 2 番目の次元 (列) のブレークポイントをというように、識別します。

ブロックの向きに関する端子の順番の詳細は、回転または反転したブロックの端子の位置の特定を参照してください。

[数学とデータ型][行優先の配列レイアウトに最適化されたアルゴリズムを使用] コンフィギュレーション パラメーターが設定された場合、2-D Lookup Table ブロックおよび n-D Lookup Table ブロックの動作が列優先から行優先に変化します。これらのブロックでは、列優先のアルゴリズムと行優先のアルゴリズムは出力計算の順序が異なる場合があり、結果的に数値がわずかに異なる可能性があります。この機能には Simulink® Coder™ または Embedded Coder® のライセンスが必要です。行優先のサポートの詳細については、行列および配列のコード生成 (Simulink Coder)を参照してください。

ブレークポイントとテーブル データの指定

これらのブロック パラメーターはブレークポイントとテーブル データを定義します。

ブロック パラメーター目的
テーブルの次元数 ルックアップ テーブルの次元数を指定します。
ブレークポイント ルックアップ テーブルの各次元に対応するブレークポイント ベクトルを指定します。
テーブル データ 関連する出力値のセットを定義します。

ヒント

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

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

n-D、1-D および 2-D の Lookup Table ブロックはその入力値に基づき、テーブル値をルックアップまたは推定することにより、ブロックの出力を生成します。

ブロック入力n-D Lookup Table ブロックの動作
ブレークポイント ベクトルのインデックスの値と一致する行と列、および高次元のブレークポイントの交差部の表の値を出力します。
ブレークポイント ベクトルのインデックスの値とは一致しないが、範囲内選択した [内挿法] を使用して適切な表の値を内挿します。
ブレークポイント ベクトルのインデックスの値とは一致せず、範囲外選択した [外挿法] を使用して出力値を外挿します。

同等な演算を実行する他のブロック

Interpolation Using Prelookup ブロックを Prelookup ブロックと共に使用して、1 つの n-D Lookup Table ブロックと同等の演算を実行できます。ブロックをこのように組み合わせると、フレキシビリティが大きくなるので、線形内挿のためのシミュレーションのパフォーマンスがより効果的になります。

ルックアップ演算が、内挿を必要としない配列アクセスの場合は、Direct Lookup Table (n-D) ブロックを使用します。たとえば、整数値 k があり、テーブルの k 番目の要素 y = table(k) が必要な場合は、内挿は必要ありません。

端子

入力

すべて展開する

u1 端子への実数値入力。定義される値のテーブルのルックアップまたは内挿により出力値にマッピングされます。

例: 0:10

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

uN 端子への実数値入力。定義される値のテーブルのルックアップまたは内挿により出力値にマッピングされます。

例: 0:10

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

実行時に調整可能な信号を使用して、出力値のテーブルを指定します。

シミュレーションの実行中、行列のサイズは [テーブルの次元数] パラメーターで定義されたサイズに一致していなければなりません。ただし、ブロック線図の編集時には、空行列 ([] として指定) または未定義のワークスペース変数を入力できます。この手法により、テーブル データに対する適切な次元の行列の指定は後回しにして、ブロック線図の編集を続けることができます。

依存関係

この端子を有効にするには、次のように設定します。

  • [データの仕様][テーブルとブレークポイント]

  • [テーブル データ][入力端子]

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

実行時に調整可能な信号を使用して、[ブレークポイントの指定] パラメーターの値に基づいて、ブレークポイント データを明示的に指定します。

  • [ブレークポイントの指定][明示的な値] に設定した場合は、各 [ブレークポイント] 行でテーブル データの各次元に対応するブレークポイント ベクトルを入力します。各次元に対して、厳密に単調増加する値をもつ 1 行 n 列または n 行 1 列のベクトルとしてブレークポイントを指定します。

最大 3 つのブレークポイントのデータ入力端子を作成できます。ブレークポイント 4 から 30 までについては、対応する [ブレークポイント] パラメーターを介してのみブレークポイント データを指定できます。

メモ

ブレークポイントを等間隔指定形式で指定するには、[ブレークポイントの指定][等間隔] に設定し、[ブレークポイント] の [最初の点] と [間隔] パラメーターを使用します。

依存関係

この端子を有効にするには、次のように設定します。

  • [データの仕様][テーブルとブレークポイント]

  • [ブレークポイントの指定][明示的な値]

  • [ブレークポイント 1][入力端子]

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

実行時に調整可能な信号を使用して、[ブレークポイントの指定] パラメーターの値に基づいて、ブレークポイント データを明示的に指定します。

  • [ブレークポイントの指定][明示的な値] に設定した場合は、各 [ブレークポイント] 行でテーブル データの各次元に対応するブレークポイント ベクトルを入力します。各次元に対して、厳密に単調増加する値をもつ 1 行 n 列または n 行 1 列のベクトルとしてブレークポイントを指定します。

最大 3 つのブレークポイントのデータ入力端子を作成できます。ブレークポイント 4 から 30 までについては、対応する [ブレークポイント] パラメーターを介してのみブレークポイント データを指定できます。

メモ

等間隔のブレークポイント データを指定するには、[ブレークポイント] パラメーターを使用します。入力端子を通じて等間隔のブレークポイント データを指定することはできません。

依存関係

この端子を有効にするには、次のように設定します。

  • [データの仕様][テーブルとブレークポイント]

  • [ブレークポイントの指定][明示的な値]

  • [ブレークポイント 2][入力端子]

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

実行時に調整可能な信号を使用して、[ブレークポイントの指定] パラメーターの値に基づいて、ブレークポイント データを明示的に指定します。

  • [ブレークポイントの指定][明示的な値] に設定した場合は、各 [ブレークポイント] 行でテーブル データの各次元に対応するブレークポイント ベクトルを入力します。各次元に対して、厳密に単調増加する値をもつ 1 行 n 列または n 行 1 列のベクトルとしてブレークポイントを指定します。

最大 3 つのブレークポイントのデータ入力端子を作成できます。ブレークポイント 4 から 30 までについては、対応する [ブレークポイント] パラメーターを介してのみブレークポイント データを指定できます。

メモ

等間隔のブレークポイント データを指定するには、[ブレークポイント] パラメーターを使用します。入力端子を通じて等間隔のブレークポイント データを指定することはできません。

依存関係

この端子を有効にするには、次のように設定します。

  • [データの仕様][テーブルとブレークポイント]

  • [ブレークポイントの指定][明示的な値]

  • [ブレークポイント 3][入力端子]

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

出力

すべて展開する

入力値に基づいて、テーブル値をルックアップまたは推定することにより、生成された出力。

ブロックの入力n-D Lookup Table ブロック
ブレークポイント ベクトルのインデックスの値と一致する行と列、および高次元のブレークポイントの交差部の表の値を出力します。
ブレークポイント ベクトルのインデックスの値とは一致しないが、範囲内選択した [内挿法] を使用して適切な表の値を内挿します。
ブレークポイント ベクトルのインデックスの値とは一致せず、範囲外選択した [外挿法] を使用して出力値を外挿します。

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

パラメーター

すべて展開する

テーブルとブレークポイント

ルックアップ テーブルの次元数を入力します。このパラメーターにより以下が決定されます。

  • テーブルの独立変数の数、およびブロック入力数

  • 指定するブレークポイント ベクトル数

設定

1、2、3、または 4

ドロップダウン リストから値を選択します。

大きいテーブルの次元

フィールドに正の整数を直接入力します。

このブロックがサポートするテーブルの最大の次元数は 30 です。

たとえば、サイズが M x N x ... のテーブルとは、次元 1 のサイズが M、次元 2 のサイズが N、という意味です。M は最初のブレークポイントの長さと一致していなければならず、N は 2 番目のブレークポイントの長さと一致していなければならないというようになります。

プログラムでの使用

ブロック パラメーター: NumberOfTableDimensions
型: 文字ベクトル
値: '1' | '2' | '3' | '4' | ... | 30
既定の設定: '3'

リストから以下を選択します。

  • テーブルとブレークポイント — テーブル データとブレークポイントを指定します。このオプションを選択すると以下のパラメーターが有効になります。

    • テーブル データ

    • ブレークポイントの指定

    • ブレークポイント 1

    • ブレークポイント 2

    • ブレークポイント 3

    • テーブルとブレークポイントの編集

    入力端子を使用してテーブルとブレークポイントを指定するには、[ソース] パラメーターを参照してください。

  • ルックアップ テーブル オブジェクト — 既存のルックアップ テーブル (Simulink.LookupTable) オブジェクトを使用します。このオプションを選択すると、[名前] フィールドおよび [テーブルとブレークポイントの編集] ボタンが有効になります。

プログラムでの使用

ブロック パラメーター: DataSpecification
型: 文字ベクトル
値: 'Table and breakpoints' | 'Lookup table object'
既定の設定: 'Table and breakpoints'

ルックアップ テーブル (Simulink.LookupTable) オブジェクトの名前を入力します。Simulink.LookupTable オブジェクトがない場合は、アクション ボタン をクリックして [作成] を選択します。新しいルックアップ テーブル オブジェクトの対応するパラメーターにブロック情報が自動的に入力されます。

依存関係

このパラメーターを有効にするには、[データの仕様][ルックアップ テーブル オブジェクト] に設定します。

プログラムでの使用

ブロック パラメーター: LookupTableObject
型: 文字ベクトル
値: Simulink.LookupTable オブジェクトの名前
既定の設定: ''

明示的なブレークポイントまたは等間隔のブレークポイントを生成するパラメーターのどちらでデータを入力するか指定します。

  • ブレークポイント データを明示的に指定するには、このパラメーターを [明示的な値] に設定し、[ブレークポイント] パラメーターの横にあるテキスト ボックスにブレークポイント データを入力します。

  • 等間隔のブレークポイントを生成するパラメーターを指定するには、このパラメーターを [等間隔] に設定し、ブレークポイント データの次元ごとに [最初の点] パラメーターと [間隔] パラメーターに値を入力します。ブロックは、テーブル データから生成される点の数を計算します。

依存関係

  • このパラメーターを有効にするには、[データの仕様][テーブルとブレークポイント] に設定します。

  • このパラメーターが [等間隔] に設定されている場合、ブレークポイント データの指定はこのダイアログを通じてのみ行うことができます。

プログラムでの使用

ブロック パラメーター: BreakpointsSpecification
型: 文字ベクトル
値: 'Explicit values' | 'Even spacing'
既定の設定: 'Explicit values'

テーブルとブレークポイント データのソースを次のように指定します。

  • ダイアログ — テーブルまたはブレークポイント データを [値] パラメーターに指定します。

  • 入力端子 — テーブルまたはブレークポイント データを関連付けられている入力端子を通じて指定します。

    最大 3 つのブレークポイントのデータ入力端子を作成できます。ブレークポイント 4 から 30 までについては、対応する [ブレークポイント] パラメーターを介してのみブレークポイント データを指定できます。

メモ

テーブルまたはブレークポイント データを指定するために入力端子を使用すると、実行時チェックによりブロックのシミュレーションのパフォーマンスに悪影響を及ぼす可能性があります。

依存関係

  • このパラメーターを有効にするには、[データの仕様][テーブルとブレークポイント] に設定します。

  • 関連付けられている [値] を有効にするには、このパラメーターを [ダイアログ] に設定します。

  • 関連付けられている入力端子を有効にするには、このパラメーターを [入力端子] に設定します。

  • このパラメーターを [入力端子] に設定すると、[値] フィールドは無効になり、[データ型] タブの対応するパラメーターは非表示になります。

  • パラメーターのいずれかについてこのパラメーターを [入力端子] に設定すると、[テーブルとブレークポイントの編集] ボタンが無効になります。

プログラムでの使用

ブロック パラメーター: TableSource | BreakpointsForDimension1Source | BreakpointsForDimension2Source | BreakpointsForDimension3Source
型: 文字ベクトル
値: Dialog | Input port
既定の設定: 'Dialog'

関連付けられている [値] フィールドの出力値のテーブルを入力します。

シミュレーションの実行中、行列のサイズは [テーブルの次元数] パラメーターで定義されたサイズに一致していなければなりません。ただし、ブロック線図の編集時には、空行列 ([] として指定) または未定義のワークスペース変数を入力できます。この手法により、テーブル データに対する適切な次元の行列の指定は後回しにして、ブロック線図の編集を続けることができます。

依存関係

このパラメーターを有効にするには、次のように設定します。

  • [データの仕様][テーブルとブレークポイント]

  • [テーブル データ: ソース][ダイアログ]

プログラムでの使用

ブロック パラメーター: Table
型: 文字ベクトル
値: テーブルの値の行列
既定の設定: 'reshape(repmat([4 5 6;16 19 20;10 18 23],1,2),[3,3,2])'

[ブレークポイントの指定] パラメーターの値に基づいて、ブレークポイント データを明示的にまたは等間隔のブレークポイントとして指定します。

  • [ブレークポイントの指定][明示的な値] に設定した場合は、関連付けられている [値] フィールドの各 [ブレークポイント] 行でテーブル データの各次元に対応するブレークポイント ベクトルを入力します。各次元に対して、厳密に単調増加する値をもつ 1 行 n 列または n 行 1 列のベクトルとしてブレークポイントを指定します。

  • [ブレークポイントの指定][等間隔] に設定した場合は、各 [ブレークポイント] 行で [最初の点] および [間隔] パラメーターを入力し、それぞれの次元で等間隔のブレークポイントを生成します。テーブル データによって、等間隔の点の数が決まります。

依存関係

  • このパラメーターを有効にするには、次のように設定します。

    • [データの仕様][テーブルとブレークポイント]

    • [テーブル データ: ソース][ダイアログ]

  • [ブレークポイントの指定] パラメーターが [等間隔] に設定されている場合、ブレークポイント データの指定はこのダイアログを通じてのみ行うことができます。

プログラムでの使用

ブロック パラメーター: BreakpointsForDimension1 | BreakpointsForDimension2 | ... | BreakpointsForDimension30 |
型: 文字ベクトル
値: 単調増加する値の 1 行 n 列、または n 行 1 列のベクトル
既定の設定: '[10, 22, 31]'

等間隔のブレークポイント データの最初の点を、実数値で有限のスカラーとして指定します。このパラメーターは、[ブレークポイントの指定][等間隔] に設定されている場合に使用できます。

依存関係

このパラメーターを有効にするには、[データの仕様][テーブルとブレークポイント] に、および [ブレークポイントの指定][等間隔] に設定します。

プログラムでの使用

ブロック パラメーター: BreakpointsForDimension1FirstPoint | BreakpointsForDimension2FirstPoint | ... | BreakpointsForDimension30FirstPoint |
型: 文字ベクトル
値: 実数値、有限、スカラー
既定の設定: '1'

等間隔ブレークポイント データのポイントの間隔を指定します。

依存関係

このパラメーターを有効にするには、[データの仕様][テーブルとブレークポイント] に、および [ブレークポイントの指定][等間隔] に設定します。

プログラムでの使用

ブロック パラメーター: BreakpointsForDimension1Spacing | BreakpointsForDimension2Spacing | ... | BreakpointsForDimension30Spacing |
型: 文字ベクトル
値: 正、実数値、有限、スカラー
既定の設定: '1'

ルックアップ テーブル エディターを開くには、このボタンをクリックします。詳細については、Edit Lookup Tablesを参照してください。

ルックアップ テーブル オブジェクトのこのボタンをクリックすると、オブジェクトを編集してオブジェクトの新しい値を保存できます。

アルゴリズム

ルックアップ手法

入力がブレークポイント値の範囲内にある場合、ブロックは隣接するブレークポイントを使って出力値を内挿します。内挿法の詳細については、内挿法を参照してください。

依存関係

  • [3 次スプライン] を選択すると、ブロックはスカラー信号のみをサポートします。他の内挿法は、非スカラー信号をサポートします。

  • [Akima スプライン] を選択すると、外挿法には [Akima スプライン] だけを指定できます。

    修正 Akima 内挿法に設定すると、このブロックでは以下はサポートされません。

    • 行優先の配列レイアウト、および行優先の配列レイアウトに最適化されたアルゴリズム

    • スケーリングされた double および固定小数点データ型

    • Simulink.LookupTable オブジェクト

    • コンフィギュレーション パラメーター [コード生成][インターフェイス][非有限数のサポート] チェック ボックスがオンになっている場合のコード生成

    修正 Akima 内挿法に設定すると、このブロックは、以下の条件が満たされている場合に実行速度が低下することが知られています。

    • アクセラレータ モード用、ラピッド アクセラレータ モード用、保護モデル用などのコード生成ベースのシミュレーション ターゲット。

    • サイズが大きいブレークポイントとデータ テーブル用に生成されたコード。たとえば、テーブル サイズが 629x1601 の場合。

プログラムでの使用

ブロック パラメーター: InterpMethod
型: 文字ベクトル
値: 'Linear point-slope' | 'Flat' | 'Nearest' | 'Linear Lagrange' | 'Cubic spline' | 'Akima spline'
既定の設定: 'Linear point-slope'

[クリップ][線形]、または [3 次スプライン] を選択します。詳細については、外挿法を参照してください。

外挿法が [線形] の場合、外挿値は選択された線形内挿法に基づいて計算されます。たとえば、内挿法が線形ラグランジュの場合、外挿法は線形ラグランジュ方程式を継承して外挿された値を計算します。

依存関係

  • [外挿法][3 次スプライン] を選択するには、[内挿法] にも [3 次スプライン] を選択する必要があります。

  • [外挿法][Akima スプライン] を選択するには、[内挿法] にも [Akima スプライン] を選択する必要があります。

プログラムでの使用

ブロック パラメーター: ExtrapMethod
型: 文字ベクトル
値: 'Linear' | 'Clip' | 'Cubic spline' | 'Akima spline'
既定の設定: 'Linear'

[等間隔のポイント][線形探索]、または [二分探索] を選択します。各検索法は、さまざまな環境で速度の利点をもっています。

  • ブレークポイント ベクトルが均等の間隔に並んでいる場合 (例: 10、20、30 など)、[等間隔のポイント] を選択してテーブル インデックスを計算することにより、速度を最大に上げることができます。

    このアルゴリズムは最初の 2つのブレークポイントのみを利用して残りのポイントのオフセットと間隔を求めます。

    メモ

    Simulink.LookupTable オブジェクトを使用してテーブルデータを指定するときは、[インデックス検索法][等間隔のポイント] に設定すると、参照先の Simulink.LookupTable オブジェクトの [ブレークポイントの指定] パラメーターが [等間隔] に設定されます。

  • 等間隔でないブレークポイント ベクトルについては、以下のガイドラインに従ってください。

    • あるタイム ステップから次のタイム ステップまでに入力信号があまり変化しない場合は、[前回のインデックス結果を使ってインデックス検索を始める] と組み合わせて [線形探索] を選択すると、最高のパフォーマンスが得られます。

    • 入力信号がタイム ステップあたり 2 個以上または 3 個以上のテーブル区間をジャンプする場合は、[二分探索] を選択すると、最高のパフォーマンスが得られます。

インデックス検索法に関する準最適な選択は、ルックアップ テーブルに大きく依存しているモデル内でパフォーマンスの低下をもたらします。

メモ

生成コードは、以下の場合、最初のブレークポイント、間隔、およびブレークポイントの数だけを保存します。

  • ブレークポイント データが調整不可能な場合。

  • インデックス検索法は [等間隔のポイント] です。

プログラムでの使用

ブロック パラメーター: IndexSearchMethod
型: 文字ベクトル
値: 'Binary search' | 'Evenly spaced points' | 'Linear search'
既定の設定: 'Binary search'

このチェック ボックスは、前のタイム ステップで発見されたインデックスを使ってこのブロックにそのブロックの探索を開始させたいときに選択します。区間サイズに関してゆっくりと変化する入力に対して、このオプションをオンにするとパフォーマンスを改善できます。そうでない場合、線形探索法と二分探索法は非常に長い時間を要します。特に、ブレークポイント ベクトルが大きな場合には長い時間を要します。

依存関係

このパラメーターを有効にするには、[インデックス検索法][線形探索] または [二分探索] に設定します。

プログラムでの使用

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

入力が範囲外の場合に警告を表示するかエラーを表示するかを指定します。オプションは次のとおりです。

  • なし — 応答しません。

  • 警告 — 警告が表示され、シミュレーションは続行されます。

  • エラー — シミュレーションを終了し、エラーを表示します。

プログラムでの使用

ブロック パラメーター: DiagnosticForOutOfRangeInput
型: 文字ベクトル
値: 'None' | 'Warning' | 'Error'
既定の設定: 'None'

このチェック ボックスを使用して、可能な場合には線形内挿ルックアップに完全精度の固定小数点アルゴリズム ルックアップを有効にします。通常は、このアルゴリズムによって、ハードウェア効率に優れた固定小数点丸めモードでより高い精度が得られます。

依存関係

このパラメーターを有効にするには、次のように設定します。

  • [テーブルの次元数][1]

  • [内挿法][線形の点と勾配]

  • [外挿法][クリップ]

プログラムでの使用

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

このチェック ボックスを使用してブレークポイント ベクトルの最後の要素とその対応するテーブル値のアドレス指定のためにブロックで使用するインデックス付けのルールを指定します。このチェック ボックスは、入力がブレークポイント データの最後の要素に等しい、またはより大きい場合に関係します。丸めのため、このチェック ボックスをオンにしてオフに戻すと、最後のブレークポイントについて、シミュレーションとコード生成との間で異なる結果となる可能性があります。

チェック ボックスブロックで使用されるインデックス区間の小数部
オン [テーブルとブレークポイント] タブのブレークポイント データの最後の要素 0
オフ [テーブルとブレークポイント] タブのブレークポイント データの最後から 2 番目の要素 1

ブレークポイント ベクトル bp の範囲内の入力 u が与えられたとき、区間の小数部 f は 0≦f<1 の範囲内で次のように計算されます。

ブレークポイント ベクトルが [1 4 5] で入力 u が [5.5] であると仮定します。このチェック ボックスをオンにした場合、インデックスは最後の要素 (5) のインデックスになり、区間の小数部は 0 です。このチェック ボックスをオフにした場合、インデックスは最後から 2 番目の要素 (4) になり、区間の小数部は 1 です。

依存関係

このパラメーターを有効にするには、次のように設定します。

  • [内挿法][線形]

  • [外挿法][クリップ]

プログラムでの使用

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

n 次元テーブルに対応した n 個の要素分の幅を有する信号を想定する入力端子を 1 つのみ使用するには、このチェック ボックスをオンにします。このオプションは、多数のルックアップ テーブルを含むブロック線図上でライン クラッターを削除するときに便利です。

メモ

このチェック ボックスを選択すると、u ラベルが付いた 1 つの入力端子がブロックに現れます。

プログラムでの使用

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

範囲外の入力値をチェックするコードを含むかどうかを指定します。

チェック ボックス結果使用時

on

生成コードには範囲外のブレークポイント入力をチェックするための条件文が含まれません。

入力が範囲外の場合、生成されたコードに未定義の動作が発生する可能性があります。

コード効率の場合

off

生成されたコードには範囲外の入力をチェックするための条件文が含まれます。

セーフティ クリティカルなアプリケーションの場合

入力が範囲外でない場合、[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにしてコードの効率性を高めることができます。既定の設定では、このチェック ボックスはオフです。セーフティ クリティカルなアプリケーションの場合、このチェック ボックスをオンにしないでください。[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにする場合は、最初にモデルの入力が範囲内であることを確認します。次に例を示します。

  1. [生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオフにします。

  2. [範囲外入力の診断] パラメーターを [Error] に設定します。

  3. ノーマル モードでモデルのシミュレーションを実行します。

  4. 範囲外エラーがある場合は、範囲内に修正してシミュレーションをもう一度実行します。

  5. シミュレーションによって範囲外の入力エラーが発生しなくなったら、[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにします。

    メモ

    [生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにした際に入力が範囲外の場合、生成されたコードの動作は未定義となります。

アプリケーションによって、次のモデル アドバイザー チェックを実行して、このチェック ボックスが使用されていることを確認できます。

  • [製品別][Embedded Coder][計算量が多い範囲外のチェック コードを生成する Lookup Table ブロックを識別します]

  • [製品別][Simulink Check][モデリング標準][DO-178C/DO-331 チェック][Lookup Table ブロックの使用をチェックします]

モデル アドバイザーの詳細については、モデル アドバイザー チェックの実行を参照してください。

また、このチェック ボックスをオンにしても安全かどうかを判断するには、Simulink Design Verifier™ ライセンスがある場合、ブロック入力範囲違反の検出 (Simulink Design Verifier)チェックを使用することを検討してください。

プログラムでの使用

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

このチェック ボックスを選択して、生成コード内で調節可能なテーブル サイズを有効にします。このオプションは、コードの再生成や再コンパイルを行わずに、ルックアップ テーブルのサイズと値および生成されたコードのブレークポイント データを変更できるようにします。ルックアップ テーブルのサイズとブレークポイント データのサイズは減らすことだけが可能です。

依存関係

[内挿法][3 次スプライン] に設定した場合、このチェック ボックスは使用できません。

プログラムでの使用

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

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

依存関係

このパラメーターは、-1 以外の値に設定した場合にのみ表示されます。詳細は、サンプル時間が推奨されないブロックを参照してください。

プログラムでの使用

ブロック パラメーター: SampleTime
型: string スカラーまたは文字ベクトル
既定の設定: "-1"

例: 5 行 7 列の表は [4 6]

ゼロベースのインデックスを使用して、テーブルの次元ごとに最大インデックス値を指定します。次のデータ型を使って、正の整数値のスカラーまたはベクトルを指定できます。

  • 組み込み浮動小数点型:double および single

  • 組み込み整数型:int8int16int32uint8uint16、およびuint32

有効な指定の例には次のものがあります。

依存関係

このパラメーターを有効にするには、[コード生成で調整可能なテーブル サイズをサポート] をオンにします。生成されたコードでこのパラメーターを調整すると、新しいテーブル データおよびブレークポイントが調整されたパラメーター値とともに提供されます。

プログラムでの使用

ブロック パラメーター: MaximumIndicesForEachDimension
型: 文字ベクトル
値: 正の整数値のスカラーまたはベクトル
既定の設定: '[]'

データ型

テーブル データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: [継承: 出力と同じ])

  • 組み込みデータ型名 (例: single)

  • データ型オブジェクト名 (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

ヒント

以下の場合には、出力データ型とは異なるテーブル データ型を指定します。

  • 出力信号よりも小さいタイプを使用するテーブル データの保存のためのメモリ必要量が少ない場合

  • 異なる出力データ型の 2 つの n-D Lookup Table ブロック間で事前スケーリングされたテーブル データを共有する場合

  • 異なる出力データ型のブロックに対して生成されたコード内のカスタム ストレージ テーブル データを共有する場合

依存関係

このパラメーターを有効にするには、[テーブルとブレークポイント] タブの [テーブル データ][ダイアログ] に設定します。

プログラムでの使用

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

テーブル データの最小値を指定します。既定値は [] (指定なし) です。

プログラムでの使用

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

テーブル データの最大値を指定します。既定値は [] (指定なし) です。

プログラムでの使用

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

ブレークポイント データのセットのデータ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 対応する入力と同じ])

  • 組み込みデータ型名 (例: single)

  • データ型クラスの名前 (例: 列挙データ型クラス)

  • データ型オブジェクト名 (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

ヒント

  • ブレークポイントは順序付けされていない列挙データをサポートします。結果として、線形探索も順序付けされていません。これは柔軟性をもたらしますが、パフォーマンスに影響する可能性があります。検索はブレークポイントの最初の要素から開始されます。

  • [前回のインデックス結果を使ってインデックス検索を始める] チェック ボックスがオンの場合、順序付けされた単調増加のデータを使用しなければなりません。この順序付けはパフォーマンスを向上させます。

  • 列挙型データでは、[外挿法][Clip] でなければなりません。

  • ブロックは列挙型データに対する範囲外の入力をサポートしません。列挙データを指定する場合、ブレークポイント ベクトルに列挙全体を含めるようにします。たとえば、関数 enumeration を使用します。

このブロックで列挙型データを使用する際の制限を次に示します。

  • ブロックは列挙型データに対する範囲外の入力をサポートしません。列挙データを指定する場合、ブレークポイント ベクトルに列挙全体を含めるようにします。たとえば、関数 enumeration を使用します。

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

ヒント

以下の場合には、対応する入力データ型とは異なるブレークポイント データ型を指定します。

  • 入力信号よりも小さいタイプを使用するブレークポイント データの保存のためのメモリ必要量が少ない場合

  • 異なる入力データ型をもつ 2 つの n-D Lookup Table ブロック間で事前スケーリングされたブレークポイント データを共有する場合

  • 異なる入力データ型のブロックに対して生成されたコード内のカスタム ストレージ ブレークポイント データを共有する場合

ブレークポイント データ型とその対応する入力データ型に同じ勾配とバイアスを指定します (いずれかが固定小数点データ型の場合)。

依存関係

このパラメーターを有効にするには、[テーブルとブレークポイント] タブの対応する [ブレークポイント] パラメーターを [ダイアログ] に設定します。

プログラムでの使用

ブロック パラメーター: BreakpointsForDimension1DataTypeStr | BreakpointsForDimension2DataTypeStr| ... | BreakpointsForDimension30DataTypeStr
型: 文字ベクトル
値: 'Inherit: Same as corresponding input' | 'Inherit: Inherit from 'Breakpoint data'' | 'double' | 'single' | 'half' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)'|'<data type expression>'
既定の設定: 'Inherit: Same as corresponding input'

ブレークポイント データのセットの最小値を指定します。既定値は [] (指定なし) です。

プログラムでの使用

ブロック パラメーター: BreakpointsForDimension1Min | BreakpointsForDimension2Min | ... | BreakpointsForDimension30Min
型: 文字ベクトル
値: スカラー
既定の設定: '[]'

ブレークポイント データのセットの最大値を指定します。既定値は [] (指定なし) です。

プログラムでの使用

ブロック パラメーター: BreakpointsForDimension1Max | BreakpointsForDimension2Max | ... | BreakpointsForDimension30Max
型: 文字ベクトル
値: スカラー
既定の設定: '[]'

小数部のデータ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 内部ルールによる継承)

  • 組み込みデータ型名 (例: single)

  • データ型オブジェクト名 (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

プログラムでの使用

ブロック パラメーター: FractionDataTypeStr
型: 文字ベクトル
値: 'Inherit: Inherit via internal rule' | 'double' | 'single' | 'fixdt(1,16,0)'|'<data type expression>'
既定の設定: 'Inherit: Inherit via internal rule'

中間結果のデータ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: [継承: 出力と同じ])

  • 組み込みデータ型名 (例: single)

  • データ型オブジェクト名 (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

ヒント

このパラメーターを使用して、内部計算に対してテーブル データや出力データよりも高い (または低い) 精度を指定します。

プログラムでの使用

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

出力データ型を指定します。以下を指定可能です。

  • データ型継承ルール (例: 継承: 逆伝播による継承)

  • 組み込みデータ型名 (例: single)

  • データ型オブジェクト名 (例: Simulink.NumericType オブジェクト)

  • データ型を評価する式 (例: fixdt(1,16,0))

データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、the Show data type assistant button をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。

プログラムでの使用

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

ブロックが出力する最小値を指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。

  • パラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定を参照)

  • シミュレーション範囲のチェック (信号範囲の指定を参照)

  • 固定小数点データ型の自動スケーリング

  • モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなどの一部のシミュレーション モードの結果に影響を与えることがあります。

プログラムでの使用

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

ブロックが出力する最大値を指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。

  • パラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定を参照)

  • シミュレーション範囲のチェック (信号範囲の指定を参照)

  • 固定小数点データ型の自動スケーリング

  • モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなどの一部のシミュレーション モードの結果に影響を与えることがあります。

プログラムでの使用

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

中間計算の内部ルールを指定します。より速く計算するには [速度] を選択します。この場合、通常で最大 2 ビットの精度が失われる場合があります。

依存関係

このパラメーターは、[中間結果] パラメーターが [継承: 内部ルールによる継承] に設定されている場合にのみ有効になります。

プログラムでの使用

ブロック パラメーター: InternalRulePriority
型: 文字ベクトル
値: 'Speed' | 'Precision'
既定の設定: 'Speed'

これを選択した場合、すべての入力が同じデータ型でなければなりません。

プログラムでの使用

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

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

プログラムでの使用

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

シミュレーションまたはモデルから生成されたコードの実行中に起こる固定小数点ルックアップ テーブルの計算の丸めモードを選択します。詳細については、丸め (Fixed-Point Designer)を参照してください。

このオプションは、ブロック パラメーターの値の丸めには影響しません。Simulink は、そのような値を最近傍の表現可能な整数値に丸めます。ブロックパラメーターの丸めを制御するためには、MATLAB® 丸め関数を使用する式を、ブロックのダイアログ ボックスの編集フィールドに入力します。

プログラムでの使用

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

アクションこのアクションを行う理由オーバーフロー発生時に起きること

このチェック ボックスをオンにする (on)。

モデルでオーバーフローが発生する可能性があるので、生成コードに飽和保護を明示的に組み込むことをお勧めします。

オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。

符号付き 8 ビット整数に関連付けられたオーバーフローは、-128 または 127 に飽和します。

このチェック ボックスをオンにしない (off)。

生成コードの効率を最適化することをお勧めします。

ブロックが範囲外の信号を処理する方法を指定しすぎないようにすることをお勧めします。詳細については、信号範囲のエラーのトラブルシューティングを参照してください。

オーバーフローは、データ型によって表現される適切な値にラップされます。

数値 130 は符号付き 8 ビット整数 1 つに収まりきらないので、-126 にラップされます。

ヒント

モデルを R2009a 以前のバージョンとして保存する場合、このチェック ボックスの設定による影響はなく、飽和コードも表示されません。これにより下位互換性が維持されます。

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

プログラムでの使用

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

ブロックの特性

データ型

double | enumerated | fixed point | half | integer | single

直達

はい

多次元信号

はい

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

詳細

すべて展開する

拡張機能

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

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

バージョン履歴

R2011a で導入