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 ブロックに置き換えます。
モデル
ex_lut_optimize
を開きます。モデルを作業フォルダーに保存します。
[アプリ] タブで、[モデル トランスフォーマー] をクリックします。
[変換] フォルダーで、Transform Table Lookup Blocks to Prelookup and Interpolation Using Prelookup Blocksチェックを選択します。
[この変換で、ライブラリ内の Lookup Table (n-D) ブロックをスキップします] オプションを選択して、ライブラリにリンクされている Lookup Table ブロックが置換されないようにします。
[リファクタされたモデルの接頭辞] フィールドで、リファクタリングされた新しいモデルの接頭辞を指定します。
[このチェックを実行] ボタンをクリックします。上部の [結果] テーブルには、Lookup Table ブロックと、それに対応する入力端子のインデックスへのハイパーリンクが含まれています。
変換しない [Candidate Groups] をクリアします。
[モデルのリファクタリング] ボタンをクリックします。[結果] テーブルには、新しいモデルへのハイパーリンクが含まれています。テーブルには、共有 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_InterpND
、LUT2_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 ブロックの置換は行われません。