Main Content

Lookup Table ブロックの Prelookup 操作を最適化することによるシミュレーション効率の向上

モデル トランスフォーマー ツールを使用して変換の条件を満たす n-D Lookup Table ブロックを特定し、それらを Interpolation ブロックおよび共有 Prelookup ブロックに置き換えることにより、モデル シミュレーションの効率を向上します。冗長な Prelookup ブロックを除去することで、線形内挿のシミュレーション速度が向上します。モデル トランスフォーマーは、これらの置換ブロックを使用してモデルを作成します。この新しいモデルの機能は元のモデルと同じです。

モデル トランスフォーマーは、次の条件に合致する Lookup Table ブロックを置換できます。

  • 同じソースが Lookup Table ブロックを駆動している。

  • Lookup Table ブロックが、同じブレークポイントの指定、値、データ型を共有している。

  • Lookup Tables のブレークポイントの入力端子が同じ入力ソースに接続されている。

  • Lookup Table ブロックが、ブロック パラメーター ダイアログ ボックスで同じアルゴリズム パラメーターを共有している。

  • Lookup Table ブロックが、ブロック パラメーター ダイアログ ボックスで、小数部パラメーターに対して同じデータ型を共有している。

モデル トランスフォーマーを使用して Lookup Table ブロックの Prelookup 操作を最適化することによるシミュレーション効率の向上

この例では、モデル トランスフォーマーを使用して変換の条件を満たす Lookup Table ブロックを特定し、それらを Interpolation ブロックおよび共有 Prelookup ブロックに置き換える方法を説明します。

モデル ex_lut_optimize には、次の 3 つの Lookup Table ブロックが含まれています。LUT1、LUT2、および LUT3。ブロックは、同じ入力ソース In1 および In2 から駆動されています。

Prelookup 操作のマージ

変換の条件を満たす n-D Lookup Table ブロックを特定し、それらを 1 つの共有 Prelookup ブロックおよび複数の Interpolation ブロックに置き換えます。

  1. モデル ex_lut_optimize を開きます。

  2. モデルを作業フォルダーに保存します。

  3. [アプリ] タブで、[モデル トランスフォーマー] をクリックします。

  4. [変換] フォルダーで、Transform Table Lookup Blocks to Prelookup and Interpolation Using Prelookup Blocksチェックを選択します。

  5. [この変換で、ライブラリ内の Lookup Table (n-D) ブロックをスキップします] オプションを選択して、ライブラリにリンクされている Lookup Table ブロックが置換されないようにします。

  6. [リファクタされたモデルの接頭辞] フィールドで、リファクタリングされた新しいモデルの接頭辞を指定します。

  7. [このチェックを実行] ボタンをクリックします。上部の [結果] テーブルには、Lookup Table ブロックと、それに対応する入力端子のインデックスへのハイパーリンクが含まれています。

  8. 変換しない [Candidate Groups] をクリアします。

  9. [モデルのリファクタリング] ボタンをクリックします。[結果] テーブルには、新しいモデルへのハイパーリンクが含まれています。テーブルには、共有 Prelookup ブロックと、それに対応する Interpolation ブロックへのハイパーリンクも含まれています。これらのブロックは、元の Lookup Table ブロックを置換したものです。ツールによって m2m_ex_lut_optimize フォルダーが作成されます。このフォルダーには新しい gen_ex_lut_optimize.slx モデルが含まれています。

gen_ex_lut_optimize.slx の Lookup Table ブロック LUT1、LUT2 および LUT3 には、データ ソースに 1 つずつ、合計 2 つの共有 Prelookup Table ブロック LUT1_Prelookup_1 および LUT1_Prelookup_2 があります。また、Lookup Table ブロックを置換する 3 つの Interpolation ブロック LUT1_InterpNDLUT2_InterpND および LUT3_InterpND もあります。

条件と制限

モデル トランスフォーマーは、次の場合は Lookup Table ブロックを置換できません。

  • Rate Transition ブロックが Lookup Table ブロックを駆動している。

  • Lookup Table ブロックがコメントアウトされた領域で、非アクティブなバリアントである。

  • Lookup Table ブロックがマスクされている。

  • Output ブロックのデータ型が Inherit:Same as first input に設定されている。

  • Lookup Table ブロックのブロック パラメーター ダイアログ ボックスの [アルゴリズム] ペインで、[内挿法][外挿法]Cubic spline に設定されている。

  • Lookup Table ブロックのブロック パラメーター ダイアログ ボックスの [アルゴリズム] ペインで、[入力設定][すべての入力データに対して入力端子を使用] が選択されている。

    Lookup Table ブロックのブロック パラメーター ダイアログ ボックスの [アルゴリズム] ペインで、[コード生成][コード生成で調整可能なテーブル サイズをサポート] が選択されている。

モデル トランスフォーマー ツールでは、Atomic サブシステム、参照モデル、ライブラリにリンクされたブロックの境界を越える Lookup Table ブロックの置換は行われません。

関連するトピック