このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
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 次元内挿の場合、列優先および行優先のアルゴリズムは出力計算の順序が異なる場合があり、数値結果がわずかに異なる原因となります。
例
外部ブレークポイントの仕様の Prelookup
この例では、ブレークポイント データセットを Constant ブロックから Prelookup ブロックの bp
入力端子に送る方法を示します。
Prelookup ブロックは bp
入力端子から次のブレークポイント属性を継承します。
最小値:
Inf
最大値:
Inf
データ型:
single
同様に、Constant ブロックによって、テーブル データ値が Interpolation Using Prelookup ブロックの T
入力端子に送られます。このとき、次の属性が継承されます。
最小値:
Inf
最大値:
Inf
データ型:
single
Simulink® は、倍精度浮動小数点データを使用して、このモデルの計算を実行します。ただし、このモデルでは、ブレークポイントとテーブル データを単精度浮動小数点データとして保存します。低精度のデータ型を使用してブレークポイントとテーブル データを使用することで、メモリ必要量を低く抑えます。
等間隔ブレークポイントの Prelookup
この例では、Prelookup 内の等間隔ブレークポイント データを指定する方法を示します。
[ブレークポイント データ] セクションで、[指定] パラメーターが [Even spacing
] に設定されます。[最初の点]、[間隔] および [点数] パラメーターはそれぞれ 25
、12
および 4
に設定されます。これらのパラメーターを指定すると、[25, 37, 49, 61]
の 4 つの等間隔ブレークポイントが作成されます。
等間隔ブレークポイントを指定する代替方法は、[仕様] を [Explicit values
] に設定し、[値] を [25:12:61]
に設定します。
Simulink® は、倍精度浮動小数点データを使用して、このモデルの計算を実行します。ただし、このモデルではブレークポイントとテーブル データを double として保存します。
インデックスと小数部をバスとして出力するための Prelookup ブロックの構成
この例では、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 ブロックの使用方法を示します。
端子
入力
k1 — テーブルの 1 番目の次元に対するインデックス k
スカラー | ベクトル | 行列
0 ベースのインデックス k
。テーブルの 1 番目の次元に対する入力 u
を含む区間を指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
f1 — テーブルの 1 番目の次元に対する小数部 f
スカラー | ベクトル | 行列
小数部 f
は、テーブルの 1 番目の次元に対する区間 k
上の入力の正規化された位置を表します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
kn — テーブルの n
番目の次元に対するインデックス k
スカラー | ベクトル | 行列
0 ベースのインデックス k
。テーブルの n
番目の次元に対する入力 u
を含む区間を指定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
fn — テーブルの n
番目の次元に対する小数部 f
スカラー | ベクトル | 行列
小数部 f
は、テーブルの n
番目の次元に対する区間 k
上の入力の正規化された位置を表します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
kf1 — インデックス k
と小数部 f
を含む入力
bus object
kf1 端子への入力には、バス オブジェクトとして指定されたインデックス k
と小数部 f
が含まれます。
依存関係
この端子を有効にするには、[インデックスと小数部をバスにする] チェック ボックスをオンにします。
利用可能な kf
入力端子数は、[次元数] パラメーターと [サブテーブル選択次元数] パラメーターの値に依存します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
| bus
kfn — インデックス k
と小数部 f
を含む入力
bus object
kfn 端子への入力には、バス オブジェクトとして指定された入力の n 番目の次元に対するインデックス k
と小数部 f
が含まれます。
依存関係
この端子を有効にするには、[インデックスと小数部をバスにする] チェック ボックスをオンにします。
利用可能な [kf] 入力端子数は、[次元数] パラメーターと [サブテーブル選択次元数] パラメーターの値に依存します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
| bus
sm — テーブル データのサブセットを選択して内挿
スカラー | ベクトル | 行列
列優先のアルゴリズムでは、ブロックは 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 — テーブル データ
スカラー | ベクトル | 行列 | N 次元配列
端子 [T] への入力として提供されるテーブル データ値。通常、これらのテーブル値は Prelookup ブロックで指定されたブレークポイント データセットに相当します。Interpolation Using Prelookup ブロックは、Prelookup ブロックから取得するインデックス (k
) および区間の小数部 (f
) の値に基づきテーブルの値を検索または推定し、出力を生成します。
依存関係
この端子を有効にするには、[ソース] を [入力端子]
に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
出力
Port_1 — N 次元関数の近似
スカラー | ベクトル | 行列
N 次元関数の近似。入力インデックス k
および小数部 f
からの値を使用して、テーブル データを内挿 (または外挿) することによって計算されます。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
パラメーター
メイン
テーブル データ次元数 — テーブル データの次元数
2
(既定値) | 1 と 30 の間の整数
テーブル データがもたなければならない次元の数を指定します。[次元数] はテーブルの独立変数の数を定義します。
指定する内容 | 方法 |
---|---|
1、2、3、または 4 | ドロップダウン リストから値を選択します。 |
大きいテーブルの次元 | フィールドに正の整数を直接入力します。 このブロックがサポートするテーブルの最大の次元数は 30 です。 |
プログラムでの使用
ブロック パラメーター: NumberOfTableDimensions |
型: 文字ベクトル |
値: '1' | '2' | '3' |'4' | ... | '30' |
既定の設定: '2' |
インデックスと小数部をバスにする — インデックスと小数部の入力はバスに結合できる
off
(既定値) | on
このチェック ボックスをオンにして、インデックス入力と小数部の入力をバスで結合します。
Prelookup ブロックを有効にして Interpolation Using Prelookup ブロックへの入力を指定するには、以下を設定します。
[出力の選択] を
[バスとしてのインデックスと小数部]
に設定[出力] を
[Bus: <object name>]
に設定。<object name>
はモデルにアクセスできる有効なバス オブジェクト名でなければなりません。
このチェック ボックスの設定にかかわらず、選択端子は常に非バス モードで動作します。
プログラムでの使用
ブロック パラメーター: RequireIndexFractionAsBus |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
指定 — テーブル データの入力方法を選択
明示的な値
(既定値) | ルックアップ テーブル オブジェクト
テーブル データを直接入力するか、ルックアップ テーブル オブジェクトを使用するかを指定します。以下はこのパラメーターの各設定です。
[明示的な値]
。[ソース] および [値] パラメーターがダイアログ ボックスに表示されます。[ルックアップ テーブル オブジェクト]
。[名前] パラメーターがダイアログ ボックスに表示されます。
プログラムでの使用
ブロック パラメーター: TableSpecification |
型: 文字ベクトル |
値: 'Explicit values' | 'Lookup table object' |
既定の設定: 'Explicit values' |
ソース — テーブル データのソース
ダイアログ
(既定値) | 入力端子
ダイアログ ボックスに table データを入力するか、入力端子からデータを継承するかを指定します。以下は [ソース] の各設定です。
[ダイアログ]
。[値] の下のテキスト ボックスにテーブル データを入力[入力端子]
。上流信号がテーブル データをテーブル入力端子に指定することを確認
依存関係
このパラメーターを有効にするには、[指定] を [明示的な値]
に設定します。
プログラムでの使用
ブロック パラメーター: TableSource |
型: 文字ベクトル |
値: 'Dialog' | 'Input port' |
既定の設定: 'Dialog' |
値 — テーブル データ値を指定
sqrt([1:11]' * [1:11])
(既定値) | テーブル データの多次元配列
テーブル データを N
次元配列として指定します。ここで N
は、[次元数] パラメーターの値です。空の行列 ([]
) を入力するか、未定義のワークスペース変数を [値] 編集フィールドに入力して、適切な次元の行列を指定せずにブロック線図を編集できます。MATLAB® で多次元配列を作成する方法の詳細については、多次元配列を参照してください。
[ソース] を [入力端子]
に設定する場合、上流信号がテーブル データを [T] 入力端子に提供することを確認します。テーブル データのサイズは [テーブルの次元数] の値に一致していなければなりません。このオプションの場合、ブロックは [T] 入力端子からテーブル属性を継承します。
ルックアップ テーブル エディターを使用してルックアップ テーブルを編集するには、[編集] をクリックします (Edit Lookup Tablesを参照)。
依存関係
このパラメーターを有効にして、ダイアロブ ボックスで明示的にテーブル値を指定するには、[指定] を [明示的な値]
、[ソース] を [ダイアログ]
に設定しなければなりません。
プログラムでの使用
ブロック パラメーター: Table |
型: 文字ベクトル |
値: scalar, vector, matrix, or N-D array |
既定の設定: 'sqrt([1:11]' * [1:11])' |
名前 — Simulink.LookupTable
オブジェクトの名前
Simulink.LookupTable object
Simulink.LookupTable
オブジェクトの名前を指定します。ルックアップ テーブル オブジェクトは、Simulink® ブレークポイント オブジェクトを参照します。Simulink.LookupTable
オブジェクトがない場合は、アクション ボタン をクリックして [作成] を選択します。新しいルックアップ テーブル オブジェクトの対応するパラメーターにブロック情報が自動的に入力されます。
依存関係
このパラメーターを有効にするには、[指定] を [ルックアップ テーブル オブジェクト]
に設定します。
プログラムでの使用
ブロック パラメーター: LookupTableObject |
型: 文字ベクトル |
値: Simulink.LookupTable object |
既定の設定: '' |
内挿法 — Linear point-slope
、Flat
、Nearest
、または Linear Lagrange
を選択
線形の点と勾配
(既定値) | 最も近い正の整数方向
| フラット
| Linear Lagrange
テーブル データの内挿にブロックが使用するメソッドを指定します。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' |
インデックスの入力を最後のインデックスに達するようにする — テーブル データの最後の要素へのアクセスを入力に許可
off
(既定値) | on
インデックス (k
) および区間の小数部 (f
) のブロック入力が、n 次元のテーブル データの最後の要素にアクセスする方法を指定します。インデックス値はゼロベースです。
このチェック ボックスは、入力インデックスがその次元のテーブルの最後のインデックス以上の場合に関連します。丸めのため、このチェック ボックスをオンにしてオフに戻すと、最後のインデックスについて、シミュレーションとコード生成との間で異なる結果となる可能性があります。
チェック ボックス | ブロックの動作 |
---|---|
| 次の場合に次元の最後の要素の値を返します。
|
| 次の場合に次元の最後の要素の値を返します。
|
依存関係
このチェック ボックスは、以下の場合にのみ表示されます。
[内挿法] が
[線形の点と勾配]
または[線形ラグランジュ]
の場合[外挿法] が
[クリップ]
の場合
ヒント
Interpolation Using Prelookup ブロックで [インデックスの入力を最後のインデックスに達するようにする] を選択した場合は、それに信号を送り込むすべての Prelookup ブロックでも [上限またはそれを超える入力に対して最後のブレークポイントを使用する] を選択しなければなりません。これにより、ブロックはブレークポイントとテーブル データのセットの最後の要素にアクセスするとき、同じインデックス付けの規則を使用できます。
プログラムでの使用
ブロック パラメーター: ValidIndexMayReachLast |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
範囲外入力の診断 — 入力が範囲外の場合のブロックのアクション
なし
(既定値) | 警告
| エラー
入力が範囲外の場合に警告を表示するかエラーを表示するかを指定します。オプションは次のとおりです。
なし
— 応答しません。警告
— 警告が表示され、シミュレーションは続行されます。エラー
— シミュレーションを終了し、エラーを表示します。
プログラムでの使用
ブロック パラメーター: DiagnosticForOutOfRangeInput |
型: 文字ベクトル |
値: 'None' | 'Warning' | 'Error' |
既定の設定: 'None' |
サブテーブル選択次元数 — 出力計算サブテーブルの次元数
0
(既定値) | テーブルの次元数以下の正の整数
このブロックで出力の計算に使用するサブテーブルの次元数を指定します。以下のルールに従います。
サブテーブル選択を有効にするには、正の整数を入力します。
この整数は テーブルの次元数 以下でなければなりません。
サブテーブル選択を無効にするには、
0
を入力して、テーブル全体を内挿します。
非ゼロの値の場合、[数学とデータ型] 、 [行優先の配列レイアウトに最適化されたアルゴリズムを使用] コンフィギュレーション パラメーターを選択すると、サブテーブルの選択動作が行優先のレイアウトに最適化されます。
詳細については、テーブル データのサブセットの内挿法を参照してください。
プログラムでの使用
ブロック パラメーター: NumSelectionDims |
型: 文字ベクトル |
値: '0' | '1' | '2' | '3' | '4' | ... | Number of table dimensions |
既定の設定: '0' |
生成コードの範囲外インデックスに対する保護を削除する — 範囲外のインデックス入力をチェックするコードを削除
off
(既定値) | on
チェック ボックス | 結果 | 使用時 |
---|---|---|
| 生成コードには範囲外のインデックス入力をチェックするための条件文が含まれません。 入力 | コード効率の場合 |
| 生成コードには範囲外のインデックス入力をチェックするための条件文が含まれます。 | セーフティ クリティカルなアプリケーションの場合 |
入力が範囲外でない場合、[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにしてコードの効率性を高めることができます。既定の設定では、このチェック ボックスはオフです。セーフティ クリティカルなアプリケーションの場合、このチェック ボックスをオンにしないでください。[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにする場合は、最初にモデルの入力が範囲内であることを確認します。次に例を示します。
[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオフにします。
[範囲外入力の診断] パラメーターを
[エラー]
に設定します。ノーマル モードでモデルのシミュレーションを実行します。
範囲外エラーがある場合は、範囲内に修正してシミュレーションをもう一度実行します。
シミュレーションによって範囲外の入力エラーが発生しなくなったら、[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにします。
メモ
[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにした際に入力
k
またはf
が範囲外の場合、生成されたコードの動作は未定義となります。
アプリケーションによって、次のモデル アドバイザー チェックを実行して、このチェック ボックスが使用されていることを確認できます。
[製品別] 、 [Embedded Coder] 、 [計算量が多い範囲外のチェック コードを生成する Lookup Table ブロックを識別します]
[製品別] 、 [Simulink Check] 、 [モデリング標準] 、 [DO-178C/DO-331 チェック] 、 [Lookup Table ブロックの使用をチェックします]
モデル アドバイザーの詳細については、モデル アドバイザー チェックの実行を参照してください。
また、このチェック ボックスをオンにしても安全かどうかを判断するには、Simulink Design Verifier™ ライセンスがある場合、ブロック入力範囲違反の検出 (Simulink Design Verifier)チェックを使用することを検討してください。
以下のいずれかが当てはまる場合、このチェック ボックスは生成コードに影響しません。
Prelookup ブロックが Interpolation Using Prelookup ブロックにインデックス値を送り込む場合。
Prelookup ブロックのインデックス値は常に有効なので、チェック コードは必要ありません。
入力
k
のデータ型により、データが有効なインデックス値に制限される場合。たとえば、符号なしの整数データ型では、非負のインデックス値が保証されます。したがって、
k
が符号なしの入力の場合、負値のチェック コードは必要ありません。
プログラムでの使用
ブロック パラメーター: RemoveProtectionIndex |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
サンプル時間 (継承は -1) — サンプルの間隔
-1
(既定値) | スカラー | ベクトル
サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1
に設定します。詳細については、サンプル時間の指定を参照してください。
依存関係
このパラメーターは、-1
以外の値に設定した場合にのみ表示されます。詳細は、サンプル時間が推奨されないブロックを参照してください。
プログラムでの使用
ブロック パラメーター: SampleTime |
型: string スカラーまたは文字ベクトル |
既定の設定: "-1" |
データ型
テーブル データ — テーブル値のデータ型
Inherit: Same as output
(既定値) | Inherit: Inherit from 'Table data'
| 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>
テーブル データ型を指定します。以下を指定可能です。
データ型継承ルール (例:
[継承: 出力と同じ]
)組み込みデータ型名 (例:
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 input' |
テーブルの最小値 — テーブル データの最小値
[]
(既定値) | スカラー
テーブル データの最小値を有限で実数の double のスカラーとして指定します。既定値は []
(指定なし) です。
プログラムでの使用
ブロック パラメーター: TableMin |
型: 文字ベクトル |
値: スカラー |
既定の設定: '[]' |
テーブルの最大値 — テーブル データの最大値
[]
(既定値) | スカラー
テーブル データの最大値を有限で実数の double のスカラーとして指定します。既定値は []
(指定なし) です。
プログラムでの使用
ブロック パラメーター: TableMax |
型: 文字ベクトル |
値: スカラー |
既定の設定: '[]' |
中間結果 — 中間結果のデータ型
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>
中間結果のデータ型を指定します。以下を指定可能です。
データ型継承ルール (例:
[継承: 出力と同じ]
)組み込みデータ型名 (例:
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: Same as input' |
出力 — 出力データ型
Inherit: Inherit from 'Table data'
(既定値) | Inherit: Inherit via back propagation
| 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>
出力データ型を指定します。以下を指定可能です。
データ型継承ルール (例:
[継承: 逆伝播による継承]
)組み込みデータ型名 (例:
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' |
固定小数点ツールによる変更に対してデータ型の設定をロックする — 固定小数点ツールがデータ型をオーバーライドするのを防止
off
(既定値) | on
このパラメーターを選択して、このブロックについて指定したデータ型を固定小数点ツールがオーバーライドするのを防止します。詳細については、出力データ型設定のロック (Fixed-Point Designer)を参照してください。
プログラムでの使用
ブロック パラメーター: LockScale |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
整数丸めモード — 固定小数点演算の丸めモード
負方向
(既定値) | 最も近い偶数方向
| 正方向
| 最も近い正の整数方向
| 最も近い整数方向
| 最も簡潔
| ゼロ方向
固定小数点演算の丸めモードを指定します。詳細については、丸め (Fixed-Point Designer)を参照してください。
ブロック パラメーターは常に最近傍の表現可能な値に丸められます。ブロック パラメーターの丸めを直接制御するには、MATLAB の丸め関数を使用する式をマスク フィールドに入力します。
プログラムでの使用
ブロック パラメーター: RndMeth |
型: 文字ベクトル |
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
既定の設定: 'Floor' |
整数オーバーフローで飽和 — オーバーフロー アクションの方法
off
(既定値) | on
オーバーフローで飽和するかラップするかを指定します。
動作 | 根拠 | オーバーフローの影響 | 例 |
---|---|---|---|
このチェック ボックスをオンにする ( | モデルでオーバーフローが発生する可能性があるので、生成コードに飽和保護を明示的に組み込むことをお勧めします。 | オーバーフローは、データ型が表現できる最小値または最大値のいずれかに飽和します。 |
|
このチェック ボックスをオンにしない ( | 生成コードの効率を最適化することをお勧めします。 ブロックが範囲外の信号を処理する方法を指定しすぎないようにすることをお勧めします。詳細については、信号範囲のエラーのトラブルシューティングを参照してください。 | オーバーフローは、データ型によって表現される適切な値にラップされます。 |
|
このチェック ボックスをオンにすると、飽和は出力や結果だけでなく、このブロックの内部演算すべてに適用されます。通常、オーバーフローが可能ではない場合は、コード生成プロセスで検出されます。この場合、コード ジェネレーターでは飽和コードは生成されません。
プログラムでの使用
ブロック パラメーター: SaturateOnIntegerOverflow |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
PLC コード生成
Simulink® PLC Coder™ を使用して構造化テキスト コードを生成します。
Simulink PLC Coder™ では、Lookup Table ブロックのサポートに制限があります。この Coder は以下をサポートしません。
2 を超える次元の数
3 次スプライン内挿法
前のインデックス モードを使用したインデックス検索の開始
3 次スプライン外挿法
固定小数点の変換
Fixed-Point Designer™ を使用して固定小数点システムの設計とシミュレーションを行います。
バージョン履歴
R2006b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)