Main Content

Prelookup

Curve Using Prelookup ブロックまたは Map Using Prelookup ブロックで使用するインデックスと分割の計算

  • ライブラリ:
  • AUTOSAR Blockset / Classic Platform / Library Routines / Interpolation

  • Prelookup block

説明

Prelookup ブロックは、その入力値 u がブレークポイント データセットとどのように関連するかを示すインデックスと分割を計算します。Prelookup ブロックは、結果のインデックスと分割の出力値を 1 次元テーブルの内挿を行う Curve Using Prelookup ブロックまたは 2 次元テーブルの内挿を行う Map Using Prelookup ブロックにバスとして送ります。Prelookup ブロックを Curve Using Prelookup ブロックまたは Map Using Prelookup ブロックと組み合わせて使用すると、Curve ブロックまたは Map ブロックと同じアルゴリズム演算を実行できます。2 つのブロックを組み合わせて使用した方がシミュレーションやコード生成の柔軟性と効率が高くなります。

AUTOSAR モデルに対して AUTOSAR 4.0 コード置換ライブラリ (CRL) を選択した場合は、このブロックから生成されるコードがブロック パラメーター ダイアログ ボックスで設定した AUTOSAR ライブラリ ルーチンに置き換えられます。

端子

入力

すべて展開する

Prelookup ブロックは、Simulink™ がサポートする任意の数値データ型の実数値信号を受け入れますが、boolean は例外となります。Prelookup ブロックは、信号およびブレークポイント データの固定小数点データ型をサポートします。

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

出力

すべて展開する

インデックスと分割をバスとして出力します。入力を含む区間とその区間における入力の正規化された位置を示します。bus の型は、[Targeted Routine Library] が固定小数点 (IFX) コード置換と浮動小数点 (IFL) コード置換のどちらに設定されているかに基づいて自動的に定義されます。

データ型: bus

パラメーター

すべて展開する

モデルに対して AUTOSAR 4.0 コード置換ライブラリ (CRL) を選択した場合は、このブロックから生成されるコードが、選択した AUTOSAR ルーチン ライブラリから置き換えられます。このパラメーターで、コード置換と検証チェックに固定小数点 (IFX) と浮動小数点 (IFL) のどちらを使用するかを選択できます。

このパラメーターは、このブロックで生成されるコードの置き換えに使用される AUTOSAR コード置換ライブラリ (CRL) ルーチンの名前を反映した値になります。命名規則に従って、ターゲットのルーチン ライブラリ、内挿法、およびブロック タイプを組み合わせた名前が付けられます。このパラメーターは参照のみを目的としており、編集することはできません。

テーブルの指定

以下はこのパラメーターの各設定です。

  • [Explicit values][Breakpoints] パラメーターがダイアログ ボックスに表示されます。

  • [Breakpoint object][Name] パラメーターがダイアログ ボックスに表示されます。

プログラムでの使用

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

ブレークポイント データを明示的に指定します。各ブレークポイント データセットは、2 つ以上の要素を含み、厳密に単調増加するベクトルでなければなりません。

依存関係

このパラメーターを有効にするには、[Breakpoints Specification][Explicit values] に設定します。

プログラムでの使用

ブロック パラメーター: BreakpointsData
型: 文字ベクトル
値: '[1 2 3]'
既定の設定: '[1 2 3]'

Simulink.Breakpoint オブジェクトの名前を指定します。Simulink.Breakpoint オブジェクトがない場合は、アクション ボタン をクリックして [作成] を選択します。新しいブレークポイント オブジェクトの対応するパラメーターにブロック情報が入力されます。

依存関係

このパラメーターを有効にするには、[Breakpoints Specification][Breakpoint object] に設定します。

プログラムでの使用

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

アルゴリズム

各検索法は、さまざまな状況で速度の利点をもっています。

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

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

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

区間サイズに関してゆっくりと変化する入力値 u に対して、このオプションをオンにするとパフォーマンスを改善できます。そうでない場合、線形探索法と二分探索法は非常に長い時間を要します。特に、ブレークポイントセットが大きな場合には長い時間を要します。

プログラムでの使用

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

モデルから生成されたコードのシミュレーションや実行において固定小数点または浮動小数点のルックアップ テーブルの計算で使用する丸めモードを指定します。

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

プログラムでの使用

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

拡張機能

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

バージョン履歴

R2019a で導入