Interpolation Using Prelookup
あらかじめ計算されたインデックスと小数部の値を使用して、n 次元関数の近似を加速する
ライブラリ:
Simulink /
Lookup Tables
説明
Interpolation Using Prelookup ブロックは、Prelookup ブロックと共に使用するのが最も効率的です。PreLookup ブロックは、その入力値 u がブレークポイント データセットとどのように関連するかを指定するインデックスと区間の小数部を計算します。n 次元 table を内挿するために、結果のインデックスと割合の値を Interpolation Using Prelookup ブロックに入力します。これらの 2 つのブロックには分散アルゴリズムがあります。それらを組み合わせることで、n-D Lookup Table ブロックの統合アルゴリズムと同じ処理になります。ただし、Prelookup ブロックと Interpolation Using Prelookup ブロックを使用すると、シミュレーションとコード生成の効率を上げることができる場合があります。詳細については、処理効率を参照してください。
サポートされているブロック演算
Interpolation Using Prelookup ブロックを使用するには、ダイアログ ボックス上で一連のテーブル データ値を直接指定するか、[T] 入力端子に値を入力します。通常は、これらの表の値は Prelookup ブロックで指定されたブレーク ポイント データセットに相当します。Interpolation Using Prelookup ブロックは、Prelookup ブロックから取得するインデックスおよび区間の小数部の値に基づき表の値を検索または推定し、出力を生成します。インデックスと区間の小数部のラベルは、Interpolation Using Prelookup ブロック アイコンでは k および f として表示されます。
| インデックスおよび区間の小数部の入力 | Interpolation Using Prelookup ブロック |
|---|---|
| ブレークポイント データセットのインデックスの値にマッピングされる場合 | 行と列、および高次元のブレークポイントの交差部の表の値を出力します。 |
| ブレークポイント データセットのインデックスの値にはマッピングされないが範囲内の場合 | 選択した [内挿法] を使用して適切なテーブルの値を内挿します。 |
| ブレークポイント データセットのインデックスの値にはマッピングされず範囲外の場合 | 選択した [外挿法] を使用して出力値を外挿します。 |
テーブル データのサブセットの内挿法
[サブテーブル選択次元数] パラメーターを使用すると、そのテーブル データのサブセットにおいてのみ内挿されるように指定できます。この内挿モードをアクティブにするには、このパラメーターを正の整数に設定します。既定の列優先のアルゴリズムでは、この値によってテーブル データの最高次元から始めて、選択する次元数が定義されます。したがって、値は テーブルの次元数 以下でなければなりません。
行優先のアルゴリズムでは、内挿はテーブル データの最初または最も低い次元から始まります。
非ゼロの値の場合、[数学とデータ型] 、 [行優先の配列レイアウトに最適化されたアルゴリズムを使用] コンフィギュレーション パラメーターを選択すると、サブテーブルの選択動作が行優先のレイアウトに最適化されます。
Interpolation Using Prelookup ブロックに 3 次元のテーブル データがあるとします。次の動作は列優先のアルゴリズムに適用されます。
| 選択次元数 | ブロックの動作 | ブロックの外観 |
|---|---|---|
| 0 | テーブル全体を内挿し、サブテーブル選択をアクティブにしません。 | 変更されません。 |
| 1 | 最初の 2 つの次元を内挿し、3 番目の次元を選択します。 | 2 次元テーブルの選択と内挿に使用するラベル s3 の付いた入力端子を表示します。 |
| 2 | 最初の次元を内挿し、2 番目と 3 番目の次元を選択します。 | 1 次元テーブルの選択と内挿に使用するラベル s2 と s3 の付いた 2 つの入力端子を表示します。 |
サブテーブル選択では、0 ベースのインデックス指定を使用します。テーブル データのサブセットを内挿する例は、Prelookup ブロックと Interpolation ブロックの使用を参照してください。
サブテーブル選択を使用しない 2 次元または n 次元内挿の場合、列優先および行優先のアルゴリズムは出力計算の順序が異なる場合があり、数値結果がわずかに異なる原因となります。
例
この例では、ブレークポイント データ セットを Constant ブロックから Prelookup ブロックの bp 入力端子に送る方法を示します。

Prelookup ブロックは bp 入力端子から次のブレークポイント属性を継承します。
最小値:
Inf最大値:
Infデータ型:
single
同様に、Constant ブロックによって、テーブル データ値が Interpolation Using Prelookup ブロックの T 入力端子に送られます。このとき、次の属性が継承されます。
最小値:
Inf最大値:
Infデータ型:
single
Simulink® は、倍精度浮動小数点データを使用して、このモデルの計算を実行します。ただし、このモデルでは、ブレークポイントとテーブル データを単精度浮動小数点データとして保存します。低精度のデータ型を使用してブレークポイントとテーブル データを使用することで、メモリ必要量を低く抑えます。
この例では、Prelookup 内の等間隔ブレークポイント データを指定する方法を示します。
[ブレークポイント データ] セクションで、[指定] パラメーターが [Even spacing] に設定されます。[最初の点]、[間隔] および [点数] パラメーターはそれぞれ 25、12 および 4 に設定されます。これらのパラメーターを指定すると、[25, 37, 49, 61] の 4 つの等間隔ブレークポイントが作成されます。
等間隔ブレークポイントを指定する代替方法は、[仕様] を [Explicit values] に設定し、[値] を [25:12:61] に設定します。

Simulink® は、倍精度浮動小数点データを使用して、このモデルの計算を実行します。ただし、このモデルではブレークポイントとテーブル データを double として保存します。
この例では、Prelookup ブロックからインデックス (k) と小数部 (f) を含むバスを出力する方法を示します。バス オブジェクトを Interpolation Using Prelookup ブロックへの入力として使用できます。また、バス オブジェクトを使用せずに同じ結果を得る方法についても示します。
モデルを開いてシミュレートします。

モデルの最上位で、Prelookup ブロックのダイアログ ボックスを開きます。[メイン] タブで、[出力の選択] が [Index and fraction as bus] に設定されていることに注意してください。[データ型] タブで、[出力] が Bus: myBus に設定されていることに注意してください。Simulink® エディターで、[モデル化]、[モデル設定]、[モデル プロパティ] を選択し、[コールバック] タブを開きます。モデルの PreLoadFcn では、コードでバス オブジェクト myBus を定義します。ここでは、インデックスが最初のバス要素として、小数部が 2 番目の要素として指定されます。
Interpolation Using Prelookup ブロックのダイアログ ボックスを開きます。[メイン] タブで、[インデックスと小数部をバスにする] チェック ボックスがオンになっていることに注意してください。そのオプションにより、ブロックは Prelookup ブロックのバス出力を使用するように設定されます。
拡張例
Prelookup ブロックと Interpolation ブロックの使用
この例では、Prelookup ブロックと Interpolation Using Prelookup ブロックの使用方法を示します。
端子
入力
0 ベースのインデックス k。テーブルの 1 番目の次元に対する入力 u を含む区間を指定します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
小数部 f は、テーブルの 1 番目の次元に対する区間 k 上の入力の正規化された位置を表します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
0 ベースのインデックス k。テーブルの n 番目の次元に対する入力 u を含む区間を指定します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
小数部 f は、テーブルの n 番目の次元に対する区間 k 上の入力の正規化された位置を表します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
kf1 端子への入力には、バス オブジェクトとして指定されたインデックス k と小数部 f が含まれます。
依存関係
この端子を有効にするには、[インデックスと小数部をバスにする] チェック ボックスをオンにします。
利用可能な kf 入力端子数は、[次元数] パラメーターと [サブテーブル選択次元数] パラメーターの値に依存します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | bus
kfn 端子への入力には、バス オブジェクトとして指定された入力の n 番目の次元に対するインデックス k と小数部 f が含まれます。
依存関係
この端子を有効にするには、[インデックスと小数部をバスにする] チェック ボックスをオンにします。
利用可能な [kf] 入力端子数は、[次元数] パラメーターと [サブテーブル選択次元数] パラメーターの値に依存します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point | bus
列優先のアルゴリズムでは、ブロックは sm、sm+1、... sn 端子への入力を使用して選択とサブテーブル内での内挿を実行します。m は、テーブルの m 番目の次元にマッピングされます。n は [次元数] に等しくなります。
行優先のアルゴリズムでは、ブロックは s1、s2、... sm 端子への入力を使用して選択とサブテーブル内での内挿を実行します。m は、テーブルの m 番目の次元にマッピングされます。m は [サブテーブル選択次元数] に等しくなります。
依存関係
この端子を有効にするには、[サブテーブル選択次元数] が [次元数] 以下の正の整数でなければなりません。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus
端子 [T] への入力として提供されるテーブル データ値。通常、これらのテーブル値は Prelookup ブロックで指定されたブレークポイント データセットに相当します。Interpolation Using Prelookup ブロックは、Prelookup ブロックから取得するインデックス (k) および区間の小数部 (f) の値に基づきテーブルの値を検索または推定し、出力を生成します。
依存関係
この端子を有効にするには、[ソース] を [入力端子] に設定します。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
出力
N 次元関数の近似。入力インデックス k および小数部 f からの値を使用して、テーブル データを内挿 (または外挿) することによって計算されます。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point
パラメーター
メイン
テーブル データ
テーブル データがもたなければならない次元の数を指定します。[次元数] はテーブルの独立変数の数を定義します。
| 指定する内容 | 方法 |
|---|---|
| 1、2、3、または 4 | ドロップダウン リストから値を選択します。 |
| 大きいテーブルの次元 | フィールドに正の整数を直接入力します。 このブロックがサポートするテーブルの最大の次元数は 30 です。 |
プログラムでの使用
ブロック パラメーター: NumberOfTableDimensions |
| 型: 文字ベクトル |
値: '1' | '2' | '3' |'4' | ... | '30' |
既定の設定: '2' |
このチェック ボックスをオンにして、インデックス入力と小数部の入力をバスで結合します。
Prelookup ブロックを有効にして Interpolation Using Prelookup ブロックへの入力を指定するには、以下を設定します。
[出力の選択] を
[バスとしてのインデックスと小数部]に設定[出力] を
[Bus: <object name>]に設定。<object name>はモデルにアクセスできる有効なバス オブジェクト名でなければなりません。
このチェック ボックスの設定にかかわらず、選択端子は常に非バス モードで動作します。
プログラムでの使用
ブロック パラメーター: RequireIndexFractionAsBus |
| 型: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
テーブル データを直接入力するか、ルックアップ テーブル オブジェクトを使用するかを指定します。以下はこのパラメーターの各設定です。
[明示的な値]。[ソース] および [値] パラメーターがダイアログ ボックスに表示されます。[ルックアップ テーブル オブジェクト]。[名前] パラメーターがダイアログ ボックスに表示されます。
プログラムでの使用
ブロック パラメーター: TableSpecification |
| 型: 文字ベクトル |
値: 'Explicit values' | 'Lookup table object' |
既定の設定: 'Explicit values' |
このパラメーターを 'Explicit values' から 'Lookup table object' に設定するには、同じ set_param 呼び出しを使用して LookupTableObject パラメーターを設定します。以下に例を示します。
set_param('myModel/myInterpBlock',... 'TableSpecification','Lookup table object',... 'LookupTableObject','myLUTObject')
ダイアログ ボックスに table データを入力するか、入力端子からデータを継承するかを指定します。以下は [ソース] の各設定です。
[ダイアログ]。[値] の下のテキスト ボックスにテーブル データを入力[入力端子]。上流信号がテーブル データをテーブル入力端子に指定することを確認
依存関係
このパラメーターを有効にするには、[指定] を [明示的な値] に設定します。
プログラムでの使用
ブロック パラメーター: TableSource |
| 型: 文字ベクトル |
値: 'Dialog' | 'Input port' |
既定の設定: 'Dialog' |
テーブル データを N 次元配列として指定します。ここで N は、[次元数] パラメーターの値です。空の行列 ([]) を入力するか、未定義のワークスペース変数を [値] 編集フィールドに入力して、適切な次元の行列を指定せずにブロック線図を編集できます。MATLAB® で多次元配列を作成する方法の詳細については、多次元配列を参照してください。
[ソース] を [入力端子] に設定する場合、上流信号がテーブル データを [T] 入力端子に提供することを確認します。テーブル データのサイズは [テーブルの次元数] の値に一致していなければなりません。このオプションの場合、ブロックは [T] 入力端子からテーブル属性を継承します。
ルックアップ テーブル エディターを使用してルックアップ テーブルを編集するには、[編集] をクリックします (ルックアップ テーブル エディターを参照)。
依存関係
このパラメーターを有効にして、ダイアロブ ボックスで明示的にテーブル値を指定するには、[指定] を [明示的な値]、[ソース] を [ダイアログ] に設定しなければなりません。
プログラムでの使用
ブロック パラメーター: Table |
| タイプ: 文字ベクトル |
| 値: スカラー | ベクトル | 行列 | N 次元配列 |
既定の設定: 'sqrt([1:11]' * [1:11])' |
Simulink.LookupTable オブジェクトの名前を指定します。ルックアップ テーブル オブジェクトは、Simulink® ブレークポイント オブジェクトを参照します。Simulink.LookupTable オブジェクトがない場合は、アクション ボタン
をクリックして [作成] を選択します。新しいルックアップ テーブル オブジェクトの対応するパラメーターにブロック情報が自動的に入力されます。
依存関係
このパラメーターを有効にするには、[指定] を [ルックアップ テーブル オブジェクト] に設定します。
プログラムでの使用
ブロック パラメーター: LookupTableObject |
| 型: 文字ベクトル |
値: Simulink.LookupTable object |
既定の設定: '' |
アルゴリズム
テーブル データの内挿にブロックが使用するメソッドを指定します。Linear point-slope、Flat、Nearest、または Linear Lagrange を選択できます。詳細については、内挿法を参照してください。
プログラムでの使用
ブロック パラメーター: InterpMethod |
| 型: 文字ベクトル |
値: 'Flat' | 'Linear point-slope' | 'Nearest' | 'Linear Lagrange' |
既定の設定: 'Linear point-slope' |
ブレークポイント データセットの範囲に入っていないすべての入力に対する値の外挿にブロックで使用する方法を指定します。[クリップ] または [線形] を選択できます。詳細については、外挿法を参照してください。
外挿法が [線形] の場合、外挿値は選択された線形内挿法に基づいて計算されます。たとえば、内挿法が線形ラグランジュの場合、外挿法は線形ラグランジュ方程式を継承して外挿された値を計算します。
Prelookup ブロックと Interpolation Using Prelookup ブロックを使用して n-D Lookup Table ブロックの動作を複製するには、Prelookup ブロックと Interpolation Using Prelookup ブロックの両方の [外挿法] を、n-D Lookup Table ブロックのみを使用している場合と同じ設定にする必要があります。たとえば、[外挿法] を [線形] に設定した n-D Lookup Table ブロックと同じ動作を得るには、Prelookup ブロックと Interpolation Using Prelookup ブロックの両方で [外挿法] を [線形] に設定します。
依存関係
[外挿法] パラメーターを有効にするには、[内挿法] を [線形] に設定します。
Interpolation Using Prelookup ブロックは、その入力または出力信号が整数または固定小数点データ型を指定するとき、[線形] 外挿をサポートしません。
プログラムでの使用
ブロック パラメーター: ExtrapMethod |
| 型: 文字ベクトル |
値: 'Clip' | 'Linear' |
既定の設定: 'Linear' |
インデックス (k) および区間の小数部 (f) のブロック入力が、n 次元のテーブル データの最後の要素にアクセスする方法を指定します。インデックス値はゼロベースです。
このチェック ボックスは、入力インデックスがその次元のテーブルの最後のインデックス以上の場合に関連します。丸めのため、このチェック ボックスをオンにしてオフに戻すと、最後のインデックスについて、シミュレーションとコード生成との間で異なる結果となる可能性があります。
| チェック ボックス | ブロックの動作 |
|---|---|
|
| 次の場合に次元の最後の要素の値を返します。
|
|
| 次の場合に次元の最後の要素の値を返します。
|
依存関係
このチェック ボックスは、以下の場合にのみ表示されます。
[内挿法] が
[線形の点と傾き]または[線形ラグランジュ]の場合[外挿法] が
[クリップ]の場合
ヒント
Interpolation Using Prelookup ブロックで [インデックスの入力を最後のインデックスに達するようにする] を選択した場合は、それに信号を送り込むすべての Prelookup ブロックでも [上限またはそれを超える入力に対して最後のブレークポイントを使用する] を選択しなければなりません。これにより、ブロックはブレークポイントとテーブル データのセットの最後の要素にアクセスするとき、同じインデックス付けの規則を使用できます。
プログラムでの使用
ブロック パラメーター: ValidIndexMayReachLast |
| 型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
R2025a 以降
範囲外のインデックス値をチェックするコードを含むかどうかを指定します。このパラメーターを選択すると、ブロックに範囲外のインデックスがなく、ブロックでコードとシミュレーションをさらに最適化できることを保証することになります。有効なインデックス範囲は、ブレークポイント データと [外挿法] の設定によって決まります。
[インデックスが範囲内と仮定] を選択すると、次のようになります。
シミュレーション中は、ブロックは範囲外のインデックスはないものと仮定し、範囲外のインデックスに対してエラーを返すことでこの仮定を適用します。
コード生成では、ブロックは範囲外のインデックスはないものと仮定するため、範囲外のインデックスの処理コードを生成しません。これは、範囲外のインデックスによるエラーを返すモデルのコードをブロックで生成しようとした場合に、生成コードに同じインデックスが与えられたときの動作が未定義となり、深刻な結果になる可能性があることを意味します。
警告
モデルでコードを生成しようとして、ブロックによる範囲外のインデックスの検出によるエラーをモデルで代わりに生成すると、同じ範囲外のインデックスが展開コードに渡された場合の動作が未定義となります。この未定義の動作は重大な問題の原因になることがあります。セーフティ クリティカルなアプリケーションの場合、[インデックスが範囲内と仮定] を選択しないでください。
効率化のために [インデックスが範囲内と仮定] パラメーターを選択する場合は、モデルのインデックスが範囲内であることを確認します。以下に例を示します。
| パラメーター | 結果 | 使用目的 |
|---|---|---|
| シミュレーションと生成コードに範囲外のブレークポイント インデックスをチェックするための条件文が含まれません。 インデックスが範囲外の場合、シミュレーションと生成コードで未定義の動作が発生する可能性があります。 | シミュレーションとコードの効率化する場合 |
| シミュレーションと生成コードに範囲外のインデックスをチェックするための条件文が含まれます。 | セーフティ クリティカルなアプリケーションの場合 |
インデックスが範囲内であることに確信がある場合は、効率化のために [インデックスが範囲内と仮定] パラメーターを選択できます。既定では、このパラメーターはオフです。セーフティ クリティカルなアプリケーションの場合、このパラメーターを選択しないでください。[インデックスが範囲内と仮定] パラメーターを選択する場合は、最初にモデルのインデックスが範囲内であることを確認します。以下に例を示します。
[インデックスが範囲内と仮定] パラメーターをオフにします。
[範囲外インデックスの診断] パラメーターを
Errorに設定します。ノーマル モードでモデルのシミュレーションを実行します。
範囲外エラーがある場合は、ブロックから実行時エラーが返されます。それらを範囲内に修正してシミュレーションをもう一度実行します。
シミュレーションで範囲外インデックス エラーが生成されなくなったら、[インデックスが範囲内と仮定] パラメーターを選択します。
メモ
[インデックスが範囲内と仮定] パラメーターを選択している場合にインデックスが範囲外であると、シミュレーション時にブロックから実行時エラーが返されます。生成コードの動作は未定義となります。
アプリケーションによって、次のモデル アドバイザー チェックを実行して、このパラメーターが使用されていることを確認できます。
[製品別] 、 [Embedded Coder] 、 [計算量が多い範囲外のチェック コードを生成する Lookup Table ブロックを識別します]
[製品別] 、 [Simulink Check] 、 [モデリング標準] 、 [DO-178C/DO-331 チェック] 、 [Lookup Table ブロックの使用をチェックします]
モデル アドバイザーの詳細については、モデル アドバイザー チェックの実行を参照してください。
また、このパラメーターを選択しても安全かどうかを判断するには、Simulink Design Verifier™ ライセンスがある場合、ブロック入力範囲違反の検出 (Simulink Design Verifier)チェックを使用することを検討してください。
プログラムでの使用
ブロック パラメーター: RemoveProtectionIndex |
| 型: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
入力が範囲外の場合に警告を表示するかエラーを表示するかを指定します。オプションは次のとおりです。
なし— 応答しません。警告— 警告が表示され、シミュレーションは続行されます。エラー— シミュレーションを終了し、エラーを表示します。
依存関係
このパラメーターを有効にするには、[入力が範囲内と仮定] パラメーターまたは [インデックスが範囲内と仮定] パラメーターをオフにします。
プログラムでの使用
ブロック パラメーター: DiagnosticForOutOfRangeInput |
| 型: 文字ベクトル |
値: 'None' | 'Warning' | 'Error' |
既定の設定: 'None' |
このブロックで出力の計算に使用するサブテーブルの次元数を指定します。以下のルールに従います。
サブテーブル選択を有効にするには、正の整数を入力します。
この整数は テーブルの次元数 以下でなければなりません。
サブテーブル選択を無効にするには、
0を入力して、テーブル全体を内挿します。
非ゼロの値の場合、[数学とデータ型] 、 [行優先の配列レイアウトに最適化されたアルゴリズムを使用] コンフィギュレーション パラメーターを選択すると、サブテーブルの選択動作が行優先のレイアウトに最適化されます。
詳細については、テーブル データのサブセットの内挿法を参照してください。
プログラムでの使用
ブロック パラメーター: NumSelectionDims |
| 型: 文字ベクトル |
値: '0' | '1' | '2' | '3' | '4' | ... | Number of table dimensions |
既定: '0' |
サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1 に設定します。詳細については、サンプル時間の指定を参照してください。
依存関係
このパラメーターは、-1 以外の値に設定した場合にのみ表示されます。詳細は、サンプル時間が推奨されないブロックを参照してください。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。
| パラメーター: | SampleTime |
| 値: | "-1" (既定値) | scalar or vector in quotes |
データ型
テーブル データ型を指定します。以下を指定可能です。
データ型継承ルール (例:
[継承: 出力と同じ])組み込みデータ型名 (例:
single)データ型オブジェクト名 (例:
Simulink.NumericTypeオブジェクト)データ型を評価する式 (例:
fixdt(1,16,0))
[データ型アシスタントを表示] ボタン
をクリックして、table データ型の設定に役立つ [データ型アシスタント] を表示します。
ヒント
以下の場合には、出力データ型とは異なるテーブル データ型を指定します。
出力信号よりも小さいタイプを使用するテーブル データの保存のためのメモリ必要量が少ない場合
異なる出力データ型の 2 つの Interpolation Using Prelookup ブロック間で事前スケーリングされたテーブル データを共有する場合
異なる出力データ型のブロックに対して Simulink Coder™ で生成コード内のカスタム ストレージ テーブル データを共有する場合
プログラムでの使用
ブロック パラメーター: TableDataTypeStr |
| 型: 文字ベクトル |
値: 'Inherit: Inherit from table data' | 'Inherit: Same as output' | 'double' | 'single' | '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' |
テーブル データの最小値を有限で実数の double のスカラーとして指定します。既定値は [] (指定なし) です。
プログラムでの使用
ブロック パラメーター: TableMin |
| 型: 文字ベクトル |
| 値: スカラー |
既定の設定: '[]' |
テーブル データの最大値を有限で実数の double のスカラーとして指定します。既定値は [] (指定なし) です。
プログラムでの使用
ブロック パラメーター: TableMax |
| 型: 文字ベクトル |
| 値: スカラー |
既定の設定: '[]' |
中間結果のデータ型を指定します。以下を指定可能です。
データ型継承ルール (例:
[継承: 出力と同じ])組み込みデータ型名 (例:
single)データ型オブジェクト名 (例:
Simulink.NumericTypeオブジェクト)データ型を評価する式 (例:
fixdt(1,16,0))
データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、
をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
ヒント
このパラメーターを使用して、内部計算に対してテーブル データや出力データよりも高い精度を指定します。
プログラムでの使用
ブロック パラメーター: IntermediateResultsDataTypeStr |
| 型: 文字ベクトル |
値: 'Inherit: Inherit via internal rule' | 'Inherit: Same as output' | 'double' | 'single' | '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: Inherit via internal rule' |
出力データ型を指定します。以下を指定可能です。
データ型継承ルール (例:
[継承: 逆伝播による継承])組み込みデータ型名 (例:
single)データ型オブジェクト名 (例:
Simulink.NumericTypeオブジェクト)データ型を評価する式 (例:
fixdt(1,16,0))
[データ型アシスタントを表示] ボタン
をクリックして、出力データ型の設定に役立つ [データ型アシスタント] を表示します。
詳細は、信号のデータ型の制御を参照してください。
プログラムでの使用
ブロック パラメーター: OutDataTypeStr |
| 型: 文字ベクトル |
値: 'Inherit: Inherit via back propagation' | 'Inherit: Inherit from table data' | 'double' | 'single' | 'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16,0)' | 'fixdt(1,16,2^0,0)' | 'fixdt(1,16,2^0,0)' | '<data type expression>' |
既定の設定: 'Inherit: Inherit from table data' |
ブロックが出力する最小値を有限で実数値のスカラーとして指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。
パラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定を参照)
シミュレーション範囲のチェック (信号範囲の指定を参照)
固定小数点データ型の自動スケーリング
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなどの一部のシミュレーション モードの結果に影響を与えることがあります。詳細については、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
プログラムでの使用
ブロック パラメーター: OutMin |
| 型: 文字ベクトル |
| 値: スカラー |
既定の設定: '[]' |
ブロックが出力する最大値を有限で実数値のスカラーとして指定します。既定値は [] (指定なし) です。Simulink ソフトウェアは、以下を行う際にこの値を使用します。
パラメーター範囲のチェック (ブロック パラメーターの最小値と最大値の指定を参照)
シミュレーション範囲のチェック (信号範囲の指定を参照)
固定小数点データ型の自動スケーリング
モデルから生成するコードの最適化。この最適化により、アルゴリズム コードが削除され、SIL やエクスターナル モードなどの一部のシミュレーション モードの結果に影響を与えることがあります。詳細については、Optimize using the specified minimum and maximum values (Embedded Coder)を参照してください。
プログラムでの使用
ブロック パラメーター: OutMax |
| 型: 文字ベクトル |
| 値: スカラー |
既定の設定: '[]' |
中間計算の内部ルールを指定します。より速く計算するには [速度] を選択します。この場合、通常で最大 2 ビットの精度が失われる場合があります。
プログラムでの使用
ブロック パラメーター: InternalRulePriority |
| 型: 文字ベクトル |
値: 'Speed' | 'Precision' |
既定の設定: 'Speed' |
このパラメーターを選択して、このブロックについて指定したデータ型を固定小数点ツールがオーバーライドするのを防止します。詳細については、出力データ型設定のロック (Fixed-Point Designer)を参照してください。
プログラムでの使用
ブロック パラメーター: LockScale |
| 型: 文字ベクトル |
値: 'off' | 'on' |
既定: 'off' |
固定小数点演算の丸めモードを指定します。詳細については、丸めモード (Fixed-Point Designer)を参照してください。
ブロック パラメーターは常に最近傍の表現可能な値に丸められます。ブロック パラメーターの丸めを直接制御するには、MATLAB の丸め関数を使用する式をマスク フィールドに入力します。
プログラムでの使用
ブロック パラメーター: RndMeth |
| 型: 文字ベクトル |
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
既定の設定: 'Floor' |
オーバーフローで飽和するかラップするかを指定します。
on— オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。off— オーバーフローは、データ型によって表現される適切な値にラップされます。
たとえば、符号付き 8 ビット整数 int8 で表現できる最大値は 127 です。この最大値を超えるブロックの演算結果により 8 ビット整数のオーバーフローが発生します。
このパラメーターがオンになっていると、ブロック出力は 127 で飽和します。同様に、ブロック出力は最小出力値である -128 で飽和します。
このパラメーターをオフにすると、オーバーフローを引き起こした値は
int8として解釈され、意図しない結果が引き起こされる可能性があります。たとえば、int8として表されるブロック結果 130 (バイナリで 1000 0010) は -126 です。
ヒント
モデルでオーバーフローが発生する可能性があり、生成コードに飽和保護を明示的に組み込む必要があるときには、このパラメーターをオンにすることを検討してください。
生成コードの効率を最適化する場合には、このパラメーターをオフにすることを検討してください。このパラメーターをオフにすると、ブロックが範囲外の信号を処理する方法を指定しすぎないようにする点でも役立ちます。詳細については、信号範囲のエラーのトラブルシューティングを参照してください。
このパラメーターをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。
通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。
プログラムでの使用
ブロック パラメーターの値をプログラムで設定するには、関数 set_param を使用します。
| パラメーター: | SaturateOnIntegerOverflow |
| 値: | 'off' (既定値) | 'on' |
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
Simulink PLC Coder™ では、Lookup Table ブロックのサポートに制限があります。この Coder は以下をサポートしません。
2 を超える次元の数
3 次スプライン内挿法
前のインデックス モードを使用したインデックス検索の開始
3 次スプライン外挿法
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
バージョン履歴
R2006b で導入[生成コードの範囲外インデックスに対する保護を削除] パラメーターが [インデックスが範囲内と仮定] に置き換えられました。プログラム上の名前 RemoveProtectionInput は同じままです。
[インデックスが範囲内と仮定] が選択されたブロックに範囲外のインデックスが渡されることによるエラーがモデルのシミュレーションで生成された場合、そのモデルによって生成されたコードでは、生成コードの実行中に同じ範囲外のインデックスが発生したときの動作が未定義となります。この状況は重大な問題の原因になることがあります。この未定義の動作は重大な問題の原因になることがあります。セーフティ クリティカルなアプリケーションの場合、[生成コードの範囲外インデックスに対する保護を削除] を選択しないでください。
R2025a より前のリリースでは、[生成コードの範囲外インデックスに対する保護を削除] は、生成されたコードの範囲外の値に対するコード チェックのみを削除していました。それらの問題をブロックで検出することはできませんでした。回避策として、R2025a より前のリリースのモデルがあり、以降のリリースに移行できない場合は、[範囲外入力の診断] パラメーターを [エラー] に設定します。モデルの次回実行時、インデックスが範囲外である場合にエラーが生成されます。
参考
ブロック
ツール
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
