Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

AUTOSAR 測定およびキャリブレーション用のルックアップ テーブルの設定

Simulink® で、AUTOSAR アプリケーション用の標準軸 (STD_AXIS) および共通軸 (COM_AXIS) ルックアップ テーブルを実装できます。AUTOSAR アプリケーションは、次のいずれかまたは両方の方法でルックアップ テーブルを使用できます。

  • 高速検索オペレーションを実装する。

  • 測定とキャリブレーションのツールでアプリケーションの調整をサポートする。

車載アプリケーションの調整のためにルックアップ テーブルをモデル化するには、Simulink.LookupTable クラスと Simulink.Breakpoint クラスを使用します。モデル ワークスペースで Simulink.LookupTable オブジェクトと Simulink.Breakpoint オブジェクトを作成して、ルックアップ テーブルとブレークポイント データを格納および共有し、AUTOSAR コード生成用にデータを設定できます。

ルックアップ テーブル オブジェクトを使用した STD_AXIS ルックアップ テーブルの設定

この例では、Simulink.LookupTable オブジェクトを使って Simulink で STD_AXIS ルックアップ テーブルを作成し、AUTOSAR コード生成用にルックアップ テーブルを設定する方法を示します。この例では、モデル matlabroot/help/toolbox/autosar/examples/mAutosarLutObjs.slx を使用します。モデルにアクセスするには、これを matlabroot/help/toolbox/autosar/examples (cd でフォルダーに移動) から作業フォルダーにコピーします。

  1. STD_AXIS 構成で AUTOSAR ルックアップ テーブルをモデル化します。

    1. マッピングされた AUTOSAR ソフトウェア コンポーネント モデルで、AUTOSAR Blockset Curve または Map ブロックを追加します。この例では、Curve ブロックを追加します。

    2. Curve ブロックを開き、AUTOSAR 4.0 コード置換ライブラリ (CRL) からルーチンを生成するように設定します。ブロック設定を変更すると、ブロック ダイアログ ボックスでターゲットの AUTOSAR ルーチンの名前が更新されます。

      ブロック ダイアログ ボックスで、次の選択を行います。

      • 浮動小数点ルーチンを生成するには、[IFL (floating-point)] を選択します。

      • [Table Specification] タブで、ルックアップ テーブル オブジェクトを使用してテーブル データを指定するには、[Data Specification][ルックアップ テーブル オブジェクト] に設定します。

    3. モデル ワークスペースで、Simulink.LookupTable オブジェクトを作成し、ルックアップ テーブル データが格納されるように設定します。

    4. Curve ブロック ダイアログ ボックスの [Table Specification] タブで、Simulink.LookupTable オブジェクト名を [Name] フィールドに入力します。

    5. ブロック ダイアログ ボックスの [Algorithm] タブで、[Integer Rounding Method][Zero] に設定します。[内挿法][線形の点と勾配] に設定し、[インデックス検索法][線形探索] に設定したままにします。

    テーブル データは生成された AUTOSAR C コードで単一の構造体のフィールドとして表示されます。構造体型の特性 (名前など) を制御するには、オブジェクトのプロパティを使用します。

  2. Curve ブロックまたは Map ブロックを結線します。

    • AUTOSAR 操作点をルックアップ テーブルに追加します。ルートレベルの入力端子を Curve ブロックまたは Map ブロックと結線します。あるいは、静的グローバル メモリで Curve ブロックまたは Map ブロックへの入力信号を設定します。

    • 出力端子を Curve ブロックまたは Map ブロックと結線します。

  3. AUTOSAR コード パースペクティブでは、コード マッピング エディターを使用して Simulink.LookupTable オブジェクトを AUTOSAR 内部キャリブレーション パラメーターにマッピングします。[Parameters] タブで、作成した Simulink.LookupTable オブジェクトをそれぞれ選択します。各オブジェクトを AUTOSAR パラメーターのタイプ [ConstantMemory][SharedParameter]、または [Auto] にマッピングします。ソフトウェア マッピングの既定値を受け入れる場合は、[Auto] を指定します。

    この例では、STD_AXIS ルックアップ テーブル オブジェクト L_4_single が AUTOSAR [ConstantMemory] にマッピングされます。

  4. 各パラメーターで、[Auto] 以外のパラメーターのタイプを選択する場合は、プロパティ インスペクターを使用して他のコードおよびキャリブレーション属性を表示または変更します。パラメーターのプロパティの詳細については、モデル ワークスペース パラメーターの AUTOSAR コンポーネント パラメーターへのマッピングを参照してください。

  5. AUTOSAR 4.0 ライブラリに基づいて C コードが生成されるようモデルを設定します。[コンフィギュレーション パラメーター] ダイアログ ボックスを開いて、[コード生成][インターフェイス] を選択します。[コード置換ライブラリ] パラメーターを [AUTOSAR 4.0] に設定します。詳細については、AUTOSAR コード置換ライブラリによるコード生成を参照してください。

  6. モデルを作成します。生成された C コードには期待される Ifl および Ifx ルックアップ関数呼び出しと Rte データ アクセス関数呼び出しが含まれます。たとえば、Ifl または Ifx ルーチンの接頭辞に対する HTML コード生成レポートを検索できます。

    生成された ARXML ファイルには、CURVE (1 次元テーブル データ) と MAP (2 次元テーブル データ) のカテゴリのデータ型が含まれます。データ型には設定したデータ キャリブレーション プロパテが含まれます。

ルックアップ テーブル オブジェクトとブレークポイント オブジェクトを使用した COM_AXIS ルックアップ テーブルの設定

この例では、Simulink.LookupTable オブジェクトと Simulink.Breakpoint オブジェクトを使って Simulink で COM_AXIS ルックアップ テーブルを作成し、AUTOSAR コード生成用にルックアップ テーブルを設定する方法を示します。この例では、モデル matlabroot/help/toolbox/autosar/examples/mAutosarLutObjs.slx を使用します。モデルにアクセスするには、これを matlabroot/help/toolbox/autosar/examples (cd でフォルダーに移動) から作業フォルダーにコピーします。

この例では、COM_AXIS 構成の AUTOSAR ルックアップ テーブルをモデル化するために、AUTOSAR Blockset の Prelookup ブロックを Curve Using Prelookup ブロックまたは Map Using Prelookup ブロックと組み合わせます。

  1. Prelookup ブロックを設定します。

    1. マッピングされた AUTOSAR ソフトウェア コンポーネント モデルで、AUTOSAR Blockset の Prelookup ブロックを 1 つ以上追加します。この例では、1 つの Prelookup ブロックを追加します。

    2. 各ブロックを開いて、AUTOSAR 4.0 コード置換ライブラリ (CRL) からルーチンを生成するように設定します。ブロック設定を変更すると、ブロックによってターゲットの AUTOSAR ルーチンの名前が更新されます。

      ブロック ダイアログ ボックスで、次の選択を行います。

      • 浮動小数点ルーチンを生成するには、[IFL (floating-point)] を選択します。

      • [Table Specification] タブで、ブレークポイント オブジェクトを使用してブレークポイント データを指定するには、[Breakpoints specification][Breakpoint object] に設定します。

    3. ブレークポイント ベクトルごとに、モデル ワークスペースで、Simulink.Breakpoint オブジェクトを作成し、設定します。

    4. Prelookup ブロック ダイアログ ボックスの [Table Specification] タブで、Simulink.Breakpoint オブジェクト名を [Name] フィールドに入力します。ルックアップ テーブル間でブレークポイント データを共有して、メモリ消費量を軽減できます。

    5. ブロック ダイアログ ボックスの [Algorithm] タブで、[Integer Rounding Method][Zero] に設定します。[Index Search Method][Linear search] に設定したままにします。

  2. Curve Using Prelookup ブロックと Map Using Prelookup ブロックを設定します。

    1. モデルで、AUTOSAR Blockset の Curve Using Prelookup ブロックまたは Map Using Prelookup ブロックを 1 つ以上追加します。各ブロックは、組み合わせる Prelookup ブロックの直後に続きます。この例では、1 つの Curve Using Prelookup ブロックを追加します。

    2. Curve Using Prelookup ブロックまたは Map Using Prelookup ブロックを開いて、AUTOSAR 4.0 コード置換ライブラリ (CRL) からルーチンを生成するように設定します。ブロック設定を変更すると、ブロック ダイアログ ボックスでターゲットの AUTOSAR ルーチンの名前が更新されます。

      ブロック ダイアログ ボックスで、次の選択を行います。

      • 浮動小数点ルーチンを生成するには、[IFL (floating-point)] を選択します。

      • [Table Specification] タブで、ルックアップ テーブル オブジェクトを使用してテーブル データを指定するには、[Data Specification][ルックアップ テーブル オブジェクト] に設定します。

    3. テーブル データのセットごとに、モデル ワークスペースで、Simulink.LookupTable オブジェクトを作成および設定します。

    4. Curve Using Prelookup または Map Using Prelookup ブロック ダイアログ ボックスそれぞれの [Table Specification] タブで、Simulink.LookupTable オブジェクト名を [名前] フィールドに入力します。

    5. ブロック ダイアログ ボックスの [Algorithm] タブで、[Integer Rounding Method][Zero] に設定します。[Interpolation Method][Linear point-slope] に設定したままにします。

    テーブル データの各セットは生成された C コードに個別の配列変数として表示されます。テーブル サイズが調整可能な場合、各ブレークポイント ベクトルは構造体で表現されます。この構造体にはブレークポイント データを格納するフィールドと、オプションでベクトルの長さを格納するフィールドが含まれます。2 番目のフィールドでは、テーブルの有効なサイズを調整できます。テーブル サイズが調整できない場合、各ブレークポイント ベクトルは配列として表示されます。

  3. Prelookup ブロック、Curve Using Prelookup ブロックおよび Map Using Prelookup ブロックを結線します。

    • AUTOSAR 操作点をルックアップ テーブルに追加します。ルートレベルの入力端子を Prelookup ブロックに結線します。あるいは、静的グローバル メモリで Prelookup ブロックへの入力信号を設定します。

    • 出力端子を Curve Using Prelookup ブロックと Map Using Prelookup ブロックに結線します。

    • Prelookup ブロックを、それぞれの一致する Curve Using Prelookup または Map Using Prelookup ブロックに結線します。

  4. AUTOSAR コード パースペクティブでは、コード マッピング エディターを使用して Simulink.LookupTable オブジェクトと Simulink.Breakpoint オブジェクトを AUTOSAR 内部キャリブレーション パラメーターにマッピングします。[Parameters] タブで、作成した Simulink.LookupTable オブジェクトと Simulink.Breakpoint オブジェクトをそれぞれ選択します。各オブジェクトを AUTOSAR パラメーターのタイプ [ConstantMemory][SharedParameter]、または [Auto] にマッピングします。ソフトウェア マッピングの既定値を受け入れる場合は、[Auto] を指定します。

    この例では、COM_AXIS ブレークポイント オブジェクト Bp_4_single およびルックアップ テーブル オブジェクト Lcom_4_single が AUTOSAR [SharedParameter] にマッピングされます。AUTOSAR ソフトウェア コンポーネントのすべてのインスタンスで COM_AXIS パラメーターは共有されます。

  5. 各パラメーターで、[Auto] 以外のパラメーターのタイプを選択する場合は、プロパティ インスペクターを使用して他のコードおよびキャリブレーション属性を表示または変更します。パラメーターのプロパティの詳細については、モデル ワークスペース パラメーターの AUTOSAR コンポーネント パラメーターへのマッピングを参照してください。

  6. AUTOSAR 4.0 ライブラリに基づいて C コードが生成されるようモデルを設定します。[コンフィギュレーション パラメーター] ダイアログ ボックスを開いて、[コード生成][インターフェイス] を選択します。[コード置換ライブラリ] パラメーターを [AUTOSAR 4.0] に設定します。詳細については、AUTOSAR コード置換ライブラリによるコード生成を参照してください。

  7. モデルを作成します。生成された C コードには期待される Ifl および Ifx ルックアップ関数呼び出しと Rte データ アクセス関数呼び出しが含まれます。たとえば、Ifl または Ifx ルーチンの接頭辞に対する HTML コード生成レポートを検索できます。

    生成された ARXML ファイルには、CURVE (1 次元テーブル データ)、MAP (2 次元テーブル データ)、および COM_AXIS (軸データ) のカテゴリのデータ型が含まれます。データ型には設定したデータ キャリブレーション プロパテが含まれます。

参考

| | | | | | | |

関連する例

詳細