このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
Prelookup
Interpolation Using Prelookup ブロックのためのインデックスと小数部を計算
ライブラリ:
Simulink /
Lookup Tables
HDL Coder /
Lookup Tables
説明
PreLookup ブロックは、その入力値 u
がブレークポイント データセットとどのように関連するかを指定するインデックスと区間の小数部を計算します。Prelookup ブロックは、Interpolation Using Prelookup ブロックと併用するのが最も効果的です。n 次元 table を内挿するために、結果のインデックスと割合の値を Interpolation Using Prelookup ブロックに入力します。これらの 2 つのブロックには分散アルゴリズムがあります。それらを組み合わせることで、n-D Lookup Table ブロックの統合アルゴリズムと同じ処理になります。ただし、Prelookup ブロックと Interpolation Using Prelookup ブロックを使用すると、n-D Lookup Table ブロックよりもシミュレーションとコード生成の柔軟性と効率を向上させることができます。詳細については、処理効率を参照してください。
サポートされているブロック演算
Prelookup ブロックを使用するには、一連のブレークポイント値を指定しなければなりません。[ソース] パラメーターを [ダイアログ]
または [入力端子]
に設定して、ブレークポイント値をダイアログ ボックスで直接指定するか、値を bp
入力端子に値を送るかを選択します。通常の使用では、このブレークポイント データセットは、Interpolation Using Prelookup ブロックのテーブル データの 1 次元に対応します。Prelookup ブロックは、以下を計算することにより各入力値 u
ごとに一組の出力を生成します。
u
に等しいか、その値よりも小さいブレークポイント セット要素のインデックスで、u
を含む区間を作成します。範囲 0 ≤ f < 1 の区間の小数部。これは、範囲内入力に対するインデックスとそれに隣接するインデックス値との間にあるブレークポイント区間上にある
u
の正規化された位置を表します。
たとえば、ブレークポイント データセットが [0 5 10 20 50 100]
に設定され、入力値 u
が 55 である場合、インデックスは 4 であり、小数部の値は 0.1 です。インデックスと区間の小数部のラベルは、Prelookup ブロック アイコンでは k および f として表示されます。インデックス値はゼロベースです。
区間の小数部は、範囲外入力に対して負または 1
より大きい数値になります。詳細については、[外挿法] ブロック パラメーターを参照してください。
例
端子
入力
Port_1 — 入力信号 u
スカラー | ベクトル | 行列
Prelookup ブロックは、Simulink® がサポートする任意の数値データ型の実数値信号を受け入れますが、boolean は例外となります。Prelookup ブロックは、信号およびブレークポイント データの固定小数点データ型をサポートします。
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
| enumerated
| bus
bp — ブレークポイント データ
実数値信号の 1 次元ベクトル
Prelookup ブロックは、実数値信号を Simulink がサポートする任意の数値データ型のブレークポイント データとして受け入れますが、boolean は例外となります。
データ型: half
| single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
| enumerated
出力
k — 入力 u
を含む区間のインデックス
スカラー | ベクトル | 行列
0 ベースのインデックス k は、入力 u
を含む区間を指定する実数値の整数です。
依存関係
この端子を有効にするには、[出力の選択] を [インデックスと小数部]
または [インデックスのみ]
に設定します。
データ型: int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fixed point
f — 区間 k 内で入力 u
の正規化された位置を表す小数部。
スカラー | ベクトル | 行列
区間 k 内で入力 u
の正規化された位置を表す小数部 f。
依存関係
この端子を有効にするには、[出力の選択] を [インデックスと小数部]
に設定します。
データ型: single
| double
| fixed point
Port_2 — インデックス k と小数部 f を含むバス
バス
インデックス k と小数部 f をバス オブジェクトとして出力すると、モデルを簡略化できます。
依存関係
この端子を有効にするには、[出力の選択] を [バスとしてのインデックスと小数部]
に設定します。
データ型: bus
パラメーター
メイン
ブレークポイント データ指定 — ブレークポイント データの入力方法を選択
明示的な値
(既定値) | 等間隔
| ブレークポイント オブジェクト
以下はこのパラメーターの各設定です。
[明示的な値]
。[ソース] および [値] パラメーターがダイアログ ボックスに表示されます。[等間隔]
。[最初の点]、[間隔] および [点数] パラメーターがダイアログ ボックスに表示されます。[ブレークポイント オブジェクト]
。[名前] パラメーターがダイアログ ボックスに表示されます。
プログラムでの使用
ブロック パラメーター: BreakpointsSpecification |
型: 文字ベクトル |
値: 'Explicit values' | 'Even spacing' | 'Breakpoint object' |
既定の設定: 'Explicit values' |
ソース — ブレークポイント データのソースを指定
ダイアログ
(既定値) | [入力端子]
以下は [ソース] の各設定です。
[ダイアログ]
。ブレークポイント データを [値] で指定します。[入力端子]
。上流信号がブレークポイント データをbp
入力端子に提供することを確認します。各ブレークポイント データセットは、2 つ以上の要素を含み、厳密に単調増加するベクトルでなければなりません。このオプションの場合、ブロックはbp
入力端子からブレークポイントの属性を継承します。
依存関係
このパラメーターを有効にするには、[指定] を [明示的な値]
に設定します。
プログラムでの使用
ブロック パラメーター: BreakpointsDataSource |
型: 文字ベクトル |
値: 'Dialog' | 'Input port' |
既定の設定: 'Dialog' |
値 — ブレークポイント データ値
[10:10:110]
(既定値) | 2 つ以上の要素を含む、厳密に単調増加の値のベクトル
ブレークポイント データを明示的に指定します。各ブレークポイント データセットは、2 つ以上の要素を含み、厳密に単調増加するベクトルでなければなりません。このオプションでは、[データ型] ペインで追加のブレークポイント属性を指定します。
ルックアップ テーブル エディターを開くには、[編集] をクリックします (Edit Lookup Tablesを参照)。
メモ
[指定] を [明示的な値]
に設定し、[ソース] を [入力端子]
に設定する場合、上流信号がブレークポイント データを bp
入力端子に提供することを確認します。各ブレークポイント データセットは、2 つ以上の要素を含み、厳密に単調増加するベクトルでなければなりません。このオプションの場合、ブロックは bp
入力端子からブレークポイントの属性 (データ型も含め) を継承します。
依存関係
このパラメーターを有効にするには、[指定] を [明示的な値]
、[ソース] を [ダイアログ]
に設定します。
プログラムでの使用
ブロック パラメーター: BreakpointsData |
型: 文字ベクトル |
値: 2 つ以上の要素を含む、厳密に単調増加の値のベクトル |
既定の設定: '[10:10:110]' |
最初の点 — 等間隔のブレークポイント データの最初の点
10
(既定値) | real-valued scalar
依存関係
このパラメーターを有効にするには、[指定] を [等間隔]
に設定します。
プログラムでの使用
ブロック パラメーター: BreakpointsFirstPoint |
型: 文字ベクトル |
値: real-valued scalar |
既定の設定: '10' |
間隔 — 等間隔のブレークポイント間の間隔
10
(既定値) | real-valued, positive scalar
依存関係
このパラメーターを有効にするには、[指定] を [等間隔]
に設定します。
プログラムでの使用
ブロック パラメーター: BreakpointsSpacing |
型: 文字ベクトル |
値: real-valued, positive scalar |
既定の設定: '10' |
点数 — 等間隔のポイントの数
11
(既定値) | real-valued, positive scalar
依存関係
このパラメーターを有効にするには、[指定] を [等間隔]
に設定します。
プログラムでの使用
ブロック パラメーター: BreakpointsNumPoints |
型: 文字ベクトル |
値: real-valued, positive scalar |
既定の設定: '11' |
名前 — Simulink.Breakpoint
オブジェクトの名前
no default
| Simulink.Breakpoint
Simulink.Breakpoint
オブジェクトの名前を指定します。ブレークポイント オブジェクトは、Simulink ブレークポイント オブジェクトを参照します。Simulink.Breakpoint
オブジェクトがない場合は、アクション ボタン をクリックして [作成] を選択します。新しいブレークポイント オブジェクトの対応するパラメーターにブロック情報が自動的に入力されます。
依存関係
このパラメーターを有効にするには、[指定] を [ブレークポイント オブジェクト]
に設定します。
プログラムでの使用
ブロック パラメーター: BreakpointObject |
型: 文字ベクトル |
値: Simulink.Breakpoint オブジェクト |
既定の設定: '' |
出力の選択 — ブロックが出力する信号を指定
インデックスと小数部
(既定値) | バスとしてのインデックスと小数部
| インデックスのみ
ブロックでインデックスおよび区間の小数部を出力する場合、ブロックで個々の信号またはインデックス信号と小数部信号の両方を含むバス信号のどちらを出力するかを指定できます。
[インデックスのみ]
はインデックスのみを出力し、小数部を出力しません。このオプションの代表的な適用例としては、次のようなものがあります。区間に内挿法を使用せずに Direct Lookup Table (n-D) ブロックを入力する
Interpolation Using Prelookup ブロックのサブテーブル選択の選択端子を入力する
非線形量子化の実行
[インデックスと小数部]
はインデックスと小数部を個々の信号として出力します。[バスとしてのインデックスと小数部]
はインデックス信号および小数部信号を含むバス信号を出力します。これらの信号にバスを使用することで以下を実現します。これらの 2 つの関連する信号をまとめることで、モデルを簡潔にする。
AUTOSAR 4.0 ライブラリのテストポイント
DpResult
構造体を作成する。AUTOSAR 4.0 ライブラリの場合、Prelookup および Interpolation Using Prelookup ブロックが別個のモデル内にあるときは、コード生成中に余分なコピーを作成しないようにする。
メモ
[バスとしてのインデックスと小数部]
を選択することにより、[データ型] ペインに [出力] パラメーターが表示され、[出力] パラメーターは[Inherit: auto]
に設定されます。ユーザー定義のバス オブジェクトを指定するように既定値を変更します。バス オブジェクトの定義の詳細については、[出力] パラメーターを参照してください。
プログラムでの使用
ブロック パラメーター: OutputSelection |
型: 文字ベクトル |
値: 'Index and fraction' | 'Index and fraction as bus' | 'Index only' |
既定の設定: 'Index and fraction' |
インデックス検索法 — ブレークポイント データを検索する方法
二分探索
(既定値) | 線形探索
| 等間隔のポイント
各検索法は、さまざまな状況で速度の利点をもっています。
ブレークポイント セットが均等の間隔に並んでいる場合 (例: 10, 20, 30, ...)、
[等間隔のポイント]
を選択してテーブル インデックスを計算することにより、速度を最大に上げることができます。このアルゴリズムは最初の 2つのブレークポイントのみを利用して残りのポイントのオフセットと間隔を求めます。不規則な間隔に並んでいるブレークポイント セットについては、以下のガイドラインに従ってください。
あるタイム ステップから次のタイム ステップまでに
u
の入力値が大きく変化しない場合は、[前回のインデックス結果を使ってインデックス検索を始める] と組み合わせて[線形探索]
を選択すると、最高のパフォーマンスが得られます。u
の入力値がタイム ステップあたり 2 個以上または 3 個以上のテーブル区間をジャンプする場合は、[二分探索]
を選択すると、最高のパフォーマンスが得られます。
インデックス検索法に関する準最適な選択は、ルックアップ テーブルに大きく依存しているモデル内でパフォーマンスの低下をもたらします。
メモ
生成コードは、以下の場合、最初のブレークポイント、間隔、およびブレークポイントの数だけを保存します。
ブレークポイント データが調整不可能な場合。
インデックス検索法は
[等間隔のポイント]
です。
プログラムでの使用
ブロック パラメーター: IndexSearchMethod |
型: 文字ベクトル |
値: 'Evenly spaced points' | 'Linear search' | 'Binary search' |
既定の設定: 'Binary search' |
前回のインデックス結果を使ってインデックス検索を始める — 前のタイム ステップで検出されたインデックスを使用して検索を開始
off
(既定値) | on
区間サイズに関してゆっくりと変化する入力値 u
に対して、このオプションをオンにするとパフォーマンスを改善できます。そうでない場合、線形探索法と二分探索法は非常に長い時間を要します。特に、ブレークポイントセットが大きな場合には長い時間を要します。
プログラムでの使用
ブロック パラメーター: BeginIndexSearchUsingPreviousIndexResult |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
外挿法 — 範囲外入力値を処理する方法
クリップ
(既定値) | 線形
オプションは次のとおりです。
[クリップ]
ブロック入力 ブロック出力 最初のブレークポイントより小さい場合
最初のブレークポイントのインデックス (
0
など)区間の小数部
0
最初のブレークポイントより大きい場合
最後から 2 つ目のブレークポイントのインデックス
区間の小数部
1
たとえば、範囲が
[1 2 3]
に等しいときにこのオプションを選択したと仮定します。u
が0.5
の場合、インデックスは0
であり、区間の小数部は0
です。u
が3.5
の場合、インデックスは1
であり、区間の小数部は1
です。線形
ブロック入力 ブロック出力 最初のブレークポイントより小さい場合
最初のブレークポイントのインデックス (
0
など)u
から最初のブレークポイントまでの線形距離を表す区間の小数部
最初のブレークポイントより大きい場合
最後から 2 つ目のブレークポイントのインデックス
最後のブレークポイントに隣接するブレークポイントから
u
までの線形距離を表す区間の小数部
たとえば、範囲が
[1 2 3]
に等しいときにこのオプションを選択したと仮定します。u
が0.5
の場合、インデックスは0
であり、区間の小数部は-0.5
です。u
が3.5
の場合、インデックスは1
であり、区間の小数部は1.5
です。
メモ
Prelookup ブロックは、次の条件がすべて真である場合に限り、線形外挿をサポートします。
入力
u
、ブレークポイント データ、小数部の出力が浮動小数点データ型を使用する。インデックスが組み込みの整数データ型を使用する。
Prelookup ブロックと Interpolation Using Prelookup ブロックを使用して n-D Lookup Table ブロックの動作を複製するには、Prelookup ブロックと Interpolation Using Prelookup ブロックの両方の [外挿法] を、n-D Lookup Table ブロックのみを使用している場合と同じ設定にする必要があります。たとえば、[外挿法] を [線形]
に設定した n-D Lookup Table ブロックと同じ動作を得るには、Prelookup ブロックと Interpolation Using Prelookup ブロックの両方で [外挿法] を [線形]
に設定します。
プログラムでの使用
ブロック パラメーター: ExtrapMethod |
型: 文字ベクトル |
値: 'Clip' | 'Linear' |
既定の設定: 'Clip' |
上限またはそれを超える入力に対して最後のブレークポイントを使用する — 上限またはそれを超える入力を処理する方法
off
(既定値) | on
最後のブレークポイント以上の入力値 u
に、インデックスを付ける方法を指定します。インデックス値はゼロベースです。入力が最後のブレークポイントと同じである場合、ブロック出力は次のように異なります。
チェック ボックス | ブロック出力 |
---|---|
選択 ( |
|
クリア ( |
|
ヒント
Prelookup ブロックの [上限またはそれを超える入力に対して最後のブレークポイントを使用する] を選択すると、これに接続されている Interpolation Using Prelookup ブロックの [インデックスの入力を最後のインデックスに達するようにする] も選択しなければなりません。これにより、ブロックはブレークポイントとテーブル データのセットの最後の要素にアクセスするとき、同じインデックス付けの規則を使用できます。
依存関係
このチェック ボックスは、以下の場合にのみ表示されます。
[インデックスのみ出力] がオフの場合
[外挿法] が
[クリップ]
の場合
ただし、[インデックスのみ出力] が選択され、[外挿法] が [クリップ]
である場合、このブロックは、このチェック ボックスが非表示であってもオンであるかのように動作します。
プログラムでの使用
ブロック パラメーター: UseLastBreakpoint |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
範囲外入力の診断 — 入力が範囲外の場合のブロックのアクション
なし
(既定値) | 警告
| エラー
オプションは次のとおりです。
なし
— 応答しません。警告
— 警告が表示され、シミュレーションは続行されます。エラー
— シミュレーションを終了し、エラーを表示します。
プログラムでの使用
ブロック パラメーター: DiagnosticForOutOfRangeInput |
型: 文字ベクトル |
値: 'None' | 'Warning' | 'Error' |
既定の設定: 'None' |
生成コードの範囲外入力に対する保護を削除 — 範囲外ブレークポイント入力をチェックするコードを削除
Off
(既定値) | On
チェック ボックス | 結果 | 使用時 |
---|---|---|
| 生成コードには範囲外のブレークポイント入力をチェックするための条件文が含まれません。 入力が範囲外の場合、生成されたコードに未定義の動作が発生する可能性があります。 | コード効率の場合 |
| 生成コードには範囲外のブレークポイント入力をチェックするための条件文が含まれます。 | セーフティ クリティカルなアプリケーションの場合 |
入力が範囲外でない場合、[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにしてコードの効率性を高めることができます。既定の設定では、このチェック ボックスはオフです。セーフティ クリティカルなアプリケーションの場合、このチェック ボックスをオンにしないでください。[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにする場合は、最初にモデルの入力が範囲内であることを確認します。次に例を示します。
[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオフにします。
[範囲外入力の診断] パラメーターを
[Error]
に設定します。ノーマル モードでモデルのシミュレーションを実行します。
範囲外エラーがある場合は、範囲内に修正してシミュレーションをもう一度実行します。
シミュレーションによって範囲外の入力エラーが発生しなくなったら、[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにします。
メモ
[生成コードの範囲外インデックスに対する保護を削除する] チェック ボックスをオンにした際に入力が範囲外の場合、生成されたコードの動作は未定義となります。
アプリケーションによって、次のモデル アドバイザー チェックを実行して、このチェック ボックスが使用されていることを確認できます。
また、このチェック ボックスをオンにしても安全かどうかを判断するには、Simulink Design Verifier™ ライセンスがある場合、ブロック入力範囲違反の検出 (Simulink Design Verifier)チェックを使用することを検討してください。
[製品別] 、 [Embedded Coder] 、 [計算量が多い範囲外のチェック コードを生成する Lookup Table ブロックを識別します]
[製品別] 、 [Simulink Check] 、 [モデリング標準] 、 [DO-178C/DO-331 チェック] 、 [Lookup Table ブロックの使用をチェックします]
モデル アドバイザーの詳細については、モデル アドバイザー チェックの実行を参照してください。
プログラムでの使用
ブロック パラメーター: RemoveProtectionInput |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
サンプル時間 (継承は -1) — サンプルの間隔
-1
(既定値) | スカラー | ベクトル
サンプルの時間間隔を指定します。サンプル時間を継承するには、このパラメーターを -1
に設定します。詳細については、サンプル時間の指定を参照してください。
依存関係
このパラメーターは、-1
以外の値に設定した場合にのみ表示されます。詳細は、サンプル時間が推奨されないブロックを参照してください。
プログラムでの使用
ブロック パラメーター: SampleTime |
型: string スカラーまたは文字ベクトル |
既定の設定: "-1" |
データ型
ブレークポイント — ブレークポイント データ型
Inherit: Same as input
(既定値) | Inherit: Inherit from 'Breakpoint data'
| double
| single
| int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16)
| fixdt(1,16,0)
| fixdt(1,16,2^0,0)
| Enum: <class name>
| <data type expression>
ブレークポイント データ型を指定します。以下を指定可能です。
データ型継承ルール (例:
継承: 入力と同じ
組み込みデータ型名 (例:
single
)データ型クラスの名前 (例: 列挙データ型クラス)
データ型を評価する式 (例:
fixdt(1,16,0)
)
データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、 をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
ヒント
以下の場合に入力
u
のデータ型と異なるブレークポイント データ型を指定します。入力信号
u
よりも小さいタイプを使用するブレークポイント データの保存のためのメモリ必要量が少ない場合入力
u
の異なるデータ型をもつ 2 つの Prelookup ブロック間で事前スケーリングされたブレークポイント データを共有する場合入力
u
の異なるデータ型のブロックに対して生成コード内のカスタム ストレージ ブレークポイント データを共有する場合
ブレークポイント データ型とその対応する入力データ型に同じ勾配とバイアスを指定します (いずれかが固定小数点データ型の場合)。
列挙型データ:
ブレークポイントは順序付けされていない列挙データをサポートします。結果として、線形探索も順序付けされていません。これは柔軟性をもたらしますが、パフォーマンスに影響する可能性があります。検索はブレークポイントの最初の要素から開始されます。
[前回のインデックス結果を使ってインデックス検索を始める] チェック ボックスがオンの場合、順序付けされた単調増加のデータを使用しなければなりません。この順序付けはパフォーマンスを向上させます。
列挙型データでは、[外挿法] は
[Clip]
でなければなりません。小数部が
1
または0
であるため、[出力の選択] 、 [インデックスのみ] を選択します。Interpolation Using Prelookup ブロックを設定したインデックスのみの出力選択を使用している場合、[サブテーブル選択次元数] パラメーターの使用を検討してください。
これらは、このブロックで列挙型データを使用する場合の制限です。
ブロックは列挙型データに対する範囲外の入力をサポートしません。列挙型データを指定する場合、ブレークポイント データセットに列挙全体を含めるようにします。たとえば、関数
enumeration
を使用します。ブレークポイント データ ソースを
Inport port
に設定すると、列挙データ型は既定値として0
をもたなければなりません。たとえば、この列挙型クラスの場合、GEAR1
の既定値は0
でなければなりません。classdef(Enumeration) Gears < Simulink.IntEnumType enumeration GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8), SPORTS(16), REVERSE(32), NEUTRAL(0) end end
依存関係
このパラメーターを有効にするにはブレークポイント データ [ソース] を [ダイアログ]
に設定します。
メモ
[ソース] を [入力端子]
に設定すると、ブロックはすべてのブレークポイント属性 (データ型、最小、最大) を bp
入力端子から継承します。
プログラムでの使用
ブロック パラメーター: BreakpointDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: Same as input' | 'Inherit: Inherit from 'Breakpoint 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>' |
既定の設定: 'Inherit: Same as input' |
インデックス — インデックス データ型
uint32
(既定値) | int8
| uint8
| int16
| uint16
| int32
| uint32
| int64
| uint64
| fixdt(1,16)
| <data type expression>
ブレークポイント データセットのすべての要素にインデックス付けできるデータ型を指定します。次のことが可能です。
リストから組み込みの整数データ型を選択します。
固定小数点表現を使って整数データ型を指定します。
データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、 をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
プログラムでの使用
ブロック パラメーター: IndexDataTypeStr |
型: 文字ベクトル |
値: |
'int8' | 'uint8' | 'int16' | 'uint16' | 'int32' | 'uint32' | 'int64' | 'uint64' | 'fixdt(1,16)' | '<data type expression>' |
既定の設定: 'uint32' |
小数部 — 小数部のデータ型
Inherit: Inherit via internal rule
(既定値) | double
| single
| fixdt(1,16,0)
| <data type expression>
区間の小数部のデータ型を指定します。次のことが可能です。
リストから組み込みのデータ型を選択します。
内部ルールからデータ型の継承を指定します。
スケーリングの表現として、「勾配とバイアス」、または「2 進小数点」のいずれかを使って、固定小数点データ型を指定します。
「勾配とバイアス」 の表現を使用する場合、スケーリングが自明 (勾配は
1
で、バイアスは0
) でなければなりません。「2 進小数点」の表現を利用する場合、2 のべき乗の指数は 0 以下でなければなりません。
データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、 をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
依存関係
[メイン] タブの [出力の選択] を、[インデックスと小数部]
に設定する場合にのみ、このパラメーターが表示されます。
プログラムでの使用
ブロック パラメーター: FractionDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: Inherit via internal rule' | 'double' | 'single' | 'fixdt(1,16,0)' | '<data type expression>' |
既定の設定: 'Inherit: Inherit via internal rule' |
出力 — 出力データ型
Inherit: auto
(既定値) | Bus: <object name>
バーチャル バスを出力するには、Inherit: auto
設定を使用します。得られるバーチャル バスには 2 つの要素、インデックス信号、小数部信号が含まれます。
非バーチャル バスを出力および指定するには、[Bus: <object name>]
テンプレートを使用します。<object name>
をインデックス信号および小数部信号を含むバス オブジェクトの名前に置き換えます。
バス オブジェクトには 2 つの要素が含まれていなければなりません。最初の要素はインデックス信号に対応し、2 番目は小数部信号に対応します。
インデックスおよび小数部のバス要素信号をバス信号にすることはできません。
[出力の選択] を
[インデックスと小数部]
に設定している場合、バス要素のデータ型および実数/複素数は、インデックスと小数部の信号に適用されるのと同じ制約を満たさなければなりません。
インデックスおよび小数部のバス要素をもつバス オブジェクトを作成するには、これに類似した MATLAB® コードを使用して、バス オブジェクト名およびバス要素の名前およびデータ型をカスタマイズします。
% Bus object: kfBus elems(1) = Simulink.BusElement; elems(1).Name = 'Index'; elems(1).DataType = 'int8'; elems(2) = Simulink.BusElement; elems(2).Name = 'Fraction'; elems(2).DataType = 'double'; kfBus = Simulink.Bus; kfBus.Elements = elems; clear elems;
あるいは、型エディターを使用して、Prelookup ブロックで使用するバス オブジェクトを作成または編集できます。
このブロックから Interpolation Using Prelookup ブロックにバス出力信号をフィードするには、フィード先のブロックで [インデックスと小数部をバスにする] チェック ボックスをオンにします。
メモ
固定小数点ツールのデータ型オーバーライド オプションを使用して、固定小数点データ型を浮動小数点データ型に置き換える新しいバス オブジェクトで、バス オブジェクトをオーバーライドします。
Prelookup ブロックで使用されるバス オブジェクトがオーバーライドされると、ブロックはバスの最初の要素として浮動小数点データ型を受け入れないため、エラーが発生する可能性があります。
この問題が発生する場合は、[修正] ボタンを使用して元のバス オブジェクトを再定義し、これがオーバーライドされないようにします。たとえば、バス オブジェクトの最初の要素を int32
に定義するとします。
myBus.Elements(1).DataType
int32
[修正] ボタンをクリックして最初のバス要素を次のように再定義します。
myBus.Elements(1).DataType = 'fixdt(''int32'',''DataTypeOverride'',''Off'')'
データ属性の設定には [データ型アシスタント] が役立ちます。[データ型アシスタント] を使用するには、 をクリックします。詳細については、データ型アシスタントを利用したデータ型の指定を参照してください。
依存関係
[メイン] タブの [出力の選択] を、[バスとしてのインデックスと小数部]
に設定する場合にのみ、このパラメーターが表示されます。
プログラムでの使用
ブロック パラメーター: OutputBusDataTypeStr |
型: 文字ベクトル |
値: 'Inherit: auto' | 'Bus: <object name>' | '<data type expression>' |
既定の設定: 'Inherit: auto' |
ブレークポイントの最小値 — ブレークポイント データが取りうる最小値
[]
(既定値) | スカラー
ブレークポイント データに使用できる最小値を指定します。既定値は []
(指定なし) です。
依存関係
このパラメーターを有効にするには、[メイン] タブで、ブレークポイント データ [ソース] を [ダイアログ]
に設定します。
プログラムでの使用
ブロック パラメーター: BreakpointMin |
型: 文字ベクトル |
値: スカラー |
既定の設定: '[]' |
ブレークポイントの最大値 — ブレークポイント データが取りうる最大値
[]
(既定値) | スカラー
ブレークポイント データに使用できる最大値を指定します。既定値は []
(指定なし) です。
依存関係
このパラメーターを有効にするには、[メイン] タブで、ブレークポイント データ [ソース] を [ダイアログ]
に設定します。
プログラムでの使用
ブロック パラメーター: BreakpointMax |
型: 文字ベクトル |
値: スカラー |
既定の設定: '[]' |
固定小数点ツールによる変更に対して出力データ型の設定をロックする — 固定小数点ツールが出力データ型をオーバーライドするのを防止するオプション
off
(既定値) | on
固定小数点ツールが、ブロックに指定した [出力] データ型をオーバーライドしないようにするには、このパラメーターを選択します。詳細については、[出力データ型の設定をロックする] の使用 (Fixed-Point Designer)を参照してください。
プログラムでの使用
ブロック パラメーター: LockScale |
型: 文字ベクトル |
値: 'off' | 'on' |
既定の設定: 'off' |
整数丸めモード — 固定小数点演算の丸めモード
負方向
(既定値) | 正方向
| 最も近い偶数方向
| 最も近い正の整数方向
| 最も近い整数方向
| 最も簡潔
| ゼロ方向
固定小数点演算の丸めモードを指定します。詳細については、丸め (Fixed-Point Designer)を参照してください。
ブロック パラメーターは常に最近傍の表現可能な値に丸められます。ブロックパラメーターの丸めを直接制御するには、MATLAB の丸め関数を使用する式をマスク フィールドに入力します。
プログラムでの使用
ブロック パラメーター: RndMeth |
型: 文字ベクトル |
値: 'Ceiling' | 'Convergent' | 'Floor' | 'Nearest' | 'Round' | 'Simplest' | 'Zero' |
既定の設定: 'Floor' |
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
詳細
Prelookup における列挙値
列挙値で Prelookup ブロックのシミュレーションを実行します。
次のように定義される列挙型クラスをもつ Prelookup ブロックがあるとします。
classdef(Enumeration) Gears < Simulink.IntEnumType enumeration GEAR1(1), GEAR2(2), GEAR3(4), GEAR4(8), SPORTS(16), REVERSE(-1), NEUTRAL(0) end end
Prelookup ブロックの設定を以下に示します。
[ブレークポイント データ] 値は
enumeration('Gears')
。[出力の選択] は
[インデックスのみ]
。順序付けされていない検索では、[インデックス検索法] を
[線形探索]
に設定し、[前回のインデックス結果を使ってインデックス検索を始める] チェック ボックスをオフにします。[外挿法] が
[クリップ]
の場合。
Prelookup ブロックを使用した内挿の設定を以下に示します。
[次元数] は
[1]
。[テーブル データ] 値は
[5 10 20 40 80 -5 0]
。[内挿法] が
[フラット]
。[サブテーブル選択次元数] は
[1]
。
シミュレーションはベクトル [10 -5 80]
を出力します。これは GEAR2
、REVERSE
、および SPORTS
に対応します。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
HDL コード生成
HDL Coder™ を使用して FPGA 設計および ASIC 設計のための VHDL、Verilog および SystemVerilog のコードを生成します。
HDL Coder™ には、HDL の実装および合成されたロジックに影響する追加のコンフィギュレーション オプションがあります。
このブロックには 1 つの既定の HDL アーキテクチャがあります。
ConstrainedOutputPipeline | 既存の遅延を設計内で移動することによって出力に配置するレジスタの数。分散型パイプラインではこれらのレジスタは再分散されません。既定の設定は |
InputPipeline | 生成されたコードに挿入する入力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
OutputPipeline | 生成されたコードに挿入する出力パイプライン ステージ数。分散型パイプラインと制約付き出力パイプラインでは、これらのレジスタを移動できます。既定の設定は |
必須のブロック設定
ブレークポイント データ:[ソース] には
[ダイアログ]
を選択します。指定:
[明示的な値]
または[等間隔]
を選択できます。インデックス検索法:
[等間隔のポイント]
を選択します。外挿法:
[クリップ]
を選択します。範囲外入力の診断:
[エラー]
を選択します。上限またはそれを超える入力に対して最後のブレークポイントを使用する:このチェック ボックスをオンにする。
ブレークポイント:[データ型] には
[Inherit: Same as input]
を選択します。整数丸めモード:
[ゼロ]
、[負方向]
、または[最も簡潔]
を選択します。
テーブル データの型指定とサイズ指定
ブレークポイントの間隔が 2 のべき乗であるようにテーブルを構築することが推奨されます。ブレークポイントの間隔がこの条件を満たしていない場合、HDL Coder は警告を発行します。ブレークポイントの間隔が 2 のべき乗である場合、Prelookup ステップ内の除算演算を右シフト演算に置き換えることができます。
ブロックのすべての端子にはスカラー値が必要です。
コーダーではブレークポイントに浮動小数点データが許可されます。
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)