Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

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

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

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

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

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

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

この例では、Simulink.LookupTable オブジェクトを使って Simulink で STD_AXIS ルックアップ テーブルを作成し、AUTOSAR コード生成用にルックアップ テーブルを設定する方法を示します。この例では、モデル mAutosarLutObjs.slx を使用します。モデル ファイルを開くには、次の MATLAB® コマンドを入力します。

openExample('mAutosarLutObjs');
  1. STD_AXIS 構成で AUTOSAR ルックアップ テーブルをモデル化します。

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

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

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

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

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

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

      Advanced tab of Properties dialog box for Simulink.LookupTable object, L_4_single. Support tunable size is selected.

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

    5. ブロック ダイアログ ボックスの [アルゴリズム] タブで、[整数丸めモード][ゼロ] に設定します。[内挿法][線形の点と勾配] に設定し、[インデックス検索法][線形探索] に設定したままにします。

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

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

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

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

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

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

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

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

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

    生成された ARXML ファイルには、CURVE (1 次元ルックアップ テーブル データ) と MAP (2 次元ルックアップ テーブル データ) のカテゴリのデータ型が含まれます。ConstantMemory パラメーターにマップされたルックアップ テーブル オブジェクトの場合、InstantiationDataDefProps も、生成された ARXML に含まれます。

    <INSTANTIATION-DATA-DEF-PROPSS>
         <INSTANTIATION-DATA-DEF-PROPS>
             <PARAMETER-INSTANCE>
                 <LOCAL-PARAMETER-REF DEST="PARAMETER-DATA-PROTOTYPE">/pkg/swc/fromScratch/mLUTobjs/L_4_single</LOCAL-PARAMETER-REF>
             </PARAMETER-INSTANCE>
             <SW-DATA-DEF-PROPS>
                 ...
                 <SW-CALPRM-AXIS>
                    <SW-AXIS-INDEX>1</SW-AXIS-INDEX>
                    <SW-AXIS-INDIVIDUAL>
                        ...
                        <AUTOSAR-VARIABLE-IREF>
                            <PORT-PROTOTYPE-REF DEST="R-PORT-PROTOTYPE">/pkg/swc/fromScratch/In1</PORT-PROTOTYPE-REF>
                            <TARGET-DATA-PROTOTYPE-REF DEST="VARIABLE-DATA-PROTOTYPE">/pkg/if/In1/In1</TARGET-DATA-PROTOTYPE-REF>
                        </AUTOSAR-VARIABLE-IREF>
                        ...    
                     </SW-AXIS-INDIVIDUAL>
                 </SW-CALPRM-AXIS>
                  ...
              </SW-DATA-DEF-PROPS>
           </INSTANTIATION-DATA-DEF-PROPS>
    </INSTANTIATION-DATA-DEF-PROPSS>

    データ型には設定したデータ キャリブレーション プロパティが含まれます。

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

この例では、Simulink.LookupTable オブジェクトと Simulink.Breakpoint オブジェクトを使って Simulink で COM_AXIS ルックアップ テーブルを作成し、AUTOSAR コード生成用にルックアップ テーブルを設定する方法を示します。この例では、モデル mAutosarLutObjs.slx を使用します。モデル ファイルを開くには、次の MATLAB コマンドを入力します。

openExample('mAutosarLutObjs')

この例では、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)] を選択します。

      • [テーブルの仕様] タブで、ブレークポイント オブジェクトを使用してブレークポイント データを指定するには、[ブレークポイントの指定][ブレークポイント オブジェクト] に設定します。

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

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

    5. ブロック ダイアログ ボックスの [アルゴリズム] タブで、[整数丸めモード][ゼロ] に設定します。[インデックス検索法][線形探索] に設定したままにします。

  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)] を選択します。

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

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

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

    5. ブロック ダイアログ ボックスの [アルゴリズム] タブで、[整数丸めモード][ゼロ] に設定します。[内挿法][線形の点と勾配] に設定したままにします。

    テーブル データの各セットは生成された 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 内部キャリブレーション パラメーターにマッピングします。[パラメーター] タブで、作成した Simulink.LookupTable オブジェクトと Simulink.Breakpoint オブジェクトをそれぞれ選択します。各オブジェクトを AUTOSAR パラメーターのタイプ [ConstantMemory][SharedParameter]、または [自動] にマッピングします。ソフトウェア マッピングの既定値を受け入れる場合は、[自動] を指定します。

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

  5. 各パラメーターで、[自動] 以外のパラメーターのタイプを選択する場合は、 アイコンをクリックして他のコードおよびキャリブレーション属性を表示または変更します。パラメーターのプロパティの詳細については、モデル ワークスペース パラメーターの 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 (軸データ) のカテゴリのデータ型が含まれます。データ型には設定したデータ キャリブレーション プロパティが含まれます。

Simulink パラメーター オブジェクトを使用した FIX_AXIS ルックアップ テーブルの設定

この例では、Simulink.Parameter オブジェクトを使って Simulink で FIX_AXIS ルックアップ テーブルを作成し、AUTOSAR コード生成用にルックアップ テーブルを設定する方法を示します。

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

    1. マッピングされた AUTOSAR ソフトウェア コンポーネント モデルで、Simulink 1-D Lookup Table ブロックを追加します。

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

    3. 1-D Lookup Table ブロックを開きます。[テーブルとブレークポイント] タブで、テーブルを固定軸に設定するために、[ブレークポイントの指定][等間隔] に設定します。

    4. 1-D Lookup Table ブロック ダイアログ ボックスの [テーブルとブレークポイント] タブで、Simulink.Parameter オブジェクト名を [値] フィールドに入力します。

    5. ブロック ダイアログ ボックスの [アルゴリズム] タブで、[外挿法][クリップ] に設定します。[最後のブレークポイントまたはそれを超える入力に対してテーブルの最後の値を使用する] を有効にします。

  2. 入力端子と出力端子を 1-D Lookup Table ブロックに結線します。

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

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

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

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

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

メモ

FIX_AXIS ルックアップ テーブル オブジェクトでは、軸の値は固定されているため調整できません。テーブル データは調整できます。

多次元ルックアップ テーブルの配列レイアウトの設定

AUTOSAR モデルに多次元ルックアップ テーブルが含まれる場合は、列優先または行優先として生成されるコードのルックアップ テーブル配列データのレイアウトを設定できます。Simulink の [コンフィギュレーション パラメーター] ダイアログ ボックスの [インターフェイス] ペインで、[配列のレイアウト] (Simulink Coder)[列優先] (既定) または [行優先] に設定します。配列レイアウトの選択は、C コードおよびエクスポートされた ARXML 記述などのコード生成に影響します。

行優先のレイアウトを選択する場合、[数学とデータ型] ペインに移動して、コンフィギュレーション オプション [行優先の配列レイアウトに最適化されたアルゴリズムを使用] を選択します。アルゴリズムの選択は、シミュレーションとコード生成に影響します。

多次元ルックアップ テーブルをエクスポートすると、SwRecordLayout カテゴリが COLUMN_DIR または ROW_DIR に設定された ARXML ルックアップ テーブル記述が生成されます。たとえば、次のプログラム コードは、2 次元の行優先のルックアップ テーブルを含む AUTOSAR モデルに対してエクスポートされる SwRecordLayout 記述を示しています。ルックアップ テーブルは AUTOSAR Map ブロックを使用して実装されています。

<AR-PACKAGE>
    <SHORT-NAME>SwRecordLayouts</SHORT-NAME>
    <ELEMENTS>
        <SW-RECORD-LAYOUT UUID="...">
            <SHORT-NAME>Map_s16</SHORT-NAME>
            <SW-RECORD-LAYOUT-GROUP>
                <SHORT-LABEL>Val</SHORT-LABEL>
                <CATEGORY>ROW_DIR</CATEGORY>
                <SW-RECORD-LAYOUT-GROUP-AXIS>1</SW-RECORD-LAYOUT-GROUP-AXIS>
                <SW-RECORD-LAYOUT-GROUP-INDEX>X</SW-RECORD-LAYOUT-GROUP-INDEX>
                <SW-RECORD-LAYOUT-GROUP-FROM>1</SW-RECORD-LAYOUT-GROUP-FROM>
                <SW-RECORD-LAYOUT-GROUP-TO>-1</SW-RECORD-LAYOUT-GROUP-TO>
                <SW-RECORD-LAYOUT-GROUP>
                    <SW-RECORD-LAYOUT-GROUP-AXIS>2</SW-RECORD-LAYOUT-GROUP-AXIS>
                    <SW-RECORD-LAYOUT-GROUP-INDEX>Y</SW-RECORD-LAYOUT-GROUP-INDEX>
                    <SW-RECORD-LAYOUT-GROUP-FROM>1</SW-RECORD-LAYOUT-GROUP-FROM>
                    <SW-RECORD-LAYOUT-GROUP-TO>-1</SW-RECORD-LAYOUT-GROUP-TO>
                    <SW-RECORD-LAYOUT-V>
                        <SHORT-LABEL>Val</SHORT-LABEL>
                        <BASE-TYPE-REF DEST="SW-BASE-TYPE">
                          /DataTypes/SwBaseTypes/sint32
                        </BASE-TYPE-REF>
                        <SW-RECORD-LAYOUT-V-AXIS>0</SW-RECORD-LAYOUT-V-AXIS>
                        <SW-RECORD-LAYOUT-V-PROP>VALUE</SW-RECORD-LAYOUT-V-PROP>
                        <SW-RECORD-LAYOUT-V-INDEX>X Y</SW-RECORD-LAYOUT-V-INDEX>
                    </SW-RECORD-LAYOUT-V>
                </SW-RECORD-LAYOUT-GROUP>
            </SW-RECORD-LAYOUT-GROUP>
        </SW-RECORD-LAYOUT>
        <SW-RECORD-LAYOUT UUID="...">
            <SHORT-NAME>Distr_s8_M</SHORT-NAME>
            <SW-RECORD-LAYOUT-GROUP>
                <SHORT-LABEL>Y</SHORT-LABEL>
                <CATEGORY>INDEX_INCR</CATEGORY>
                <SW-RECORD-LAYOUT-GROUP-AXIS>1</SW-RECORD-LAYOUT-GROUP-AXIS>
                <SW-RECORD-LAYOUT-GROUP-FROM>1</SW-RECORD-LAYOUT-GROUP-FROM>
                <SW-RECORD-LAYOUT-GROUP-TO>-1</SW-RECORD-LAYOUT-GROUP-TO>
                <SW-RECORD-LAYOUT-V>
                    <SHORT-LABEL>VALUE</SHORT-LABEL>
                    <BASE-TYPE-REF DEST="SW-BASE-TYPE">
                      /DataTypes/SwBaseTypes/sint32
                    </BASE-TYPE-REF>
                    <SW-RECORD-LAYOUT-V-AXIS>1</SW-RECORD-LAYOUT-V-AXIS>
                    <SW-RECORD-LAYOUT-V-PROP>VALUE</SW-RECORD-LAYOUT-V-PROP>
                </SW-RECORD-LAYOUT-V>
            </SW-RECORD-LAYOUT-GROUP>
        </SW-RECORD-LAYOUT>
    </ELEMENTS>
</AR-PACKAGE>

多次元ルックアップ テーブル記述を含む ARXML ファイルをインポートすると、[配列のレイアウト][列優先] または [行優先] に設定された Simulink ルックアップ テーブルが作成されます。ARXML ファイルに行優先の多次元ルックアップ テーブル記述のみが含まれる場合は、ARXML インポーターにより、[配列のレイアウト][行優先] に設定されて [行優先の配列レイアウトに最適化されたアルゴリズムを使用] が有効になっている Simulink ルックアップ テーブルが作成されます。

再利用可能な参照モデルのルックアップ テーブルとブレークポイントのインスタンスのパラメーター化

AUTOSAR モデルの階層構造で、ルックアップ テーブルまたはブレークポイントを参照モデル内に配置してから参照モデルをパラメーター化することで、ルックアップ テーブルまたはブレークポイントをパラメーター化できます。参照モデルのパラメーター化では、モデル引数を使用するように参照モデルを設定してから、親モデルのモデル引数値を設定します。

再利用可能な参照モデルのルックアップ テーブルのインスタンスをパラメーター化することで、ルックアップ テーブルのサブユニットの複数のインスタンスを AUTOSAR モデルの階層構造に配置できます。サブユニット レベルのテストはルックアップ テーブルで使用できます。

参照モデルにルックアップ テーブルまたはブレークポイントが含まれていて、それが含まれる最上位モデルがルックアップ テーブルのパラメーター値またはブレークポイント オブジェクトを参照モデルのモデル引数に渡す場合、最上位モデルのエクスポートによってルックアップ テーブル パラメーターまたはブレークポイントのアプリケーション データ型が生成されます。

参照モデルの 2 次元ルックアップ テーブルの 2 つのインスタンスをパラメーター化する最上位モデルについて考えます。最上位モデル パラメーター LUTForInst1 は AUTOSAR PerInstanceParameter にマッピングされ、その値は最初のルックアップ テーブル インスタンスのモデル引数に渡されます。最上位モデル パラメーター LUTForInst2 は AUTOSAR SharedParameter にマッピングされ、その値は 2 番目のルックアップ テーブル インスタンスのモデル引数に渡されます。

参照モデルには 2 次元ルックアップ テーブルが含まれ、インスタンス パラメーター LUT_arg を定義します。参照モデルでのインスタンス パラメーターの設定および Model ブロックでのインスタンス固有の値の指定については、再利用可能な参照モデルのインスタンスのパラメーター化を参照してください。

最上位モデルをビルドする際、エクスポートされる ARXML はアプリケーションのプリミティブ データ型 Appl_LUTForInst1Appl_LUTForInst2 を定義し、それらを実装データ型 LUT_arg_Type にマッピングします。

<APPLICATION-PRIMITIVE-DATA-TYPE UUID="...">
    <SHORT-NAME>Appl_LUTForInst1</SHORT-NAME>
    <CATEGORY>MAP</CATEGORY>
    ...
</APPLICATION-PRIMITIVE-DATA-TYPE>
<APPLICATION-PRIMITIVE-DATA-TYPE UUID="...">
    <SHORT-NAME>Appl_LUTForInst2</SHORT-NAME>
    <CATEGORY>MAP</CATEGORY>
    ...
</APPLICATION-PRIMITIVE-DATA-TYPE>

<DATA-TYPE-MAP>
    <APPLICATION-DATA-TYPE-REF DEST="APPLICATION-PRIMITIVE-DATA-TYPE">
      /DataTypes/ApplDataTypes/Appl_LUTForInst1
    </APPLICATION-DATA-TYPE-REF>
    <IMPLEMENTATION-DATA-TYPE-REF DEST="IMPLEMENTATION-DATA-TYPE">
      /DataTypes/LUT_arg_Type
    </IMPLEMENTATION-DATA-TYPE-REF>
</DATA-TYPE-MAP>
<DATA-TYPE-MAP>
    <APPLICATION-DATA-TYPE-REF DEST="APPLICATION-PRIMITIVE-DATA-TYPE">
      /DataTypes/ApplDataTypes/Appl_LUTForInst2
    </APPLICATION-DATA-TYPE-REF>
    <IMPLEMENTATION-DATA-TYPE-REF DEST="IMPLEMENTATION-DATA-TYPE">
      /DataTypes/LUT_arg_Type
    </IMPLEMENTATION-DATA-TYPE-REF>
</DATA-TYPE-MAP>

その後、アプリケーションのプリミティブ データ型は AUTOSAR のインスタンスごとのパラメーター LUTForInst1 と AUTOSAR 共有パラメーター LUTForInst2 によって参照されます。

<PER-INSTANCE-PARAMETERS>
    <PARAMETER-DATA-PROTOTYPE UUID="...">
        <SHORT-NAME>LUTForInst1</SHORT-NAME>
        <CATEGORY>MAP</CATEGORY>
        ...
        <TYPE-TREF DEST="APPLICATION-PRIMITIVE-DATA-TYPE">
          /DataTypes/ApplDataTypes/Appl_LUTForInst1
        </TYPE-TREF>
        <INIT-VALUE>
            <CONSTANT-REFERENCE>
                <SHORT-LABEL>LUTForInst1</SHORT-LABEL>
                <CONSTANT-REF DEST="CONSTANT-SPECIFICATION">
                  /DataTypes/Constants/LUTForInst1
                </CONSTANT-REF>
            </CONSTANT-REFERENCE>
        </INIT-VALUE>
    </PARAMETER-DATA-PROTOTYPE>
</PER-INSTANCE-PARAMETERS>

<SHARED-PARAMETERS>
    <PARAMETER-DATA-PROTOTYPE UUID="...">
        <SHORT-NAME>LUTForInst2</SHORT-NAME>
        <CATEGORY>MAP</CATEGORY>
        ...
        <TYPE-TREF DEST="APPLICATION-PRIMITIVE-DATA-TYPE">
          /DataTypes/ApplDataTypes/Appl_LUTForInst2
        </TYPE-TREF>
        <INIT-VALUE>
            <CONSTANT-REFERENCE>
                <SHORT-LABEL>LUTForInst2</SHORT-LABEL>
                <CONSTANT-REF DEST="CONSTANT-SPECIFICATION">
                  /DataTypes/Constants/LUTForInst2
                </CONSTANT-REF>
            </CONSTANT-REFERENCE>
        </INIT-VALUE>
    </PARAMETER-DATA-PROTOTYPE>
</SHARED-PARAMETERS>

エクスポートされた ARXML ルックアップ テーブル記述は、Simulink と AUTOSAR オーサリング ツールの間をラウンドトリップできます。

ルックアップ テーブルの定数をレコード値指定としてエクスポート

ルックアップ テーブルの定数をアプリケーション値指定またはレコード値指定としてエクスポートするようにモデルを設定できます。ルックアップ テーブル オブジェクトを使用した STD_AXIS ルックアップ テーブルの設定のモデル例を参照してください。

既定では、ルックアップ テーブルの定数はアプリケーション値指定としてエクスポートされます。生成された ARXML ファイルには、以下に示すようにアプリケーション値指定が含まれます。

<CONSTANT-SPECIFICATION UUID="...">
    <SHORT-NAME>L_4_single</SHORT-NAME>
    <VALUE-SPEC>
        <APPLICATION-VALUE-SPECIFICATION>
            <SHORT-LABEL>L_4_single</SHORT-LABEL>
            <CATEGORY>CURVE</CATEGORY>
            <SW-AXIS-CONTS>
                <SW-AXIS-CONT>
                    <CATEGORY>STD_AXIS</CATEGORY>
                    <UNIT-REF DEST="UNIT">/pkg/dt/NoUnit</UNIT-REF>
                    <SW-AXIS-INDEX>1</SW-AXIS-INDEX>
                    <SW-ARRAYSIZE>
                        <V>4</V>
                    </SW-ARRAYSIZE>
                    <SW-VALUES-PHYS>
                        <V>1</V>
                        <V>2</V>
                        <V>3</V>
                        <V>4</V>
                    </SW-VALUES-PHYS>
                </SW-AXIS-CONT>
            </SW-AXIS-CONTS>
                <SW-VALUE-CONT>
                    <UNIT-REF DEST="UNIT">/pkg/dt/NoUnit</UNIT-REF>
                    <SW-ARRAYSIZE>
                        <V>4</V>
                    </SW-ARRAYSIZE>
                    <SW-VALUES-PHYS>
                        <V>10</V>
                        <V>20</V>
                        <V>30</V>
                        <V>40</V>
                    </SW-VALUES-PHYS>
                </SW-VALUE-CONT>
        </APPLICATION-VALUE-SPECIFICATION>
    </VALUE-SPEC>
</CONSTANT-SPECIFICATION>

定数をレコード値指定としてエクスポートするには、[AUTOSAR][AUTOSAR ディクショナリ] を開いて、[ルックアップ テーブルのアプリケーション値指定をエクスポート] オプションを無効にします。

または、次のコマンドを使用します。

modelProperties = autosar.api.getAUTOSARProperties(<modelName>);
modelProperties.set('XmlOptions','ExportLookupTableApplicationValueSpecification',false);

モデルを作成します。生成された ARXML には、以下に示すように Record Value Specification が含まれます。

<CONSTANT-SPECIFICATION UUID="...">
    <SHORT-NAME>L_4_single</SHORT-NAME>
    <VALUE-SPEC>
        <RECORD-VALUE-SPECIFICATION>
            <SHORT-LABEL>L_4_single</SHORT-LABEL>    
            <FIELDS>
                <NUMERICAL-VALUE-SPECIFICATION>
            <SHORT-LABEL>Nx</SHORT-LABEL>
            <VALUE>4</VALUE>
        </NUMERICAL-VALUE-SPECIFICATION>
        <ARRAY-VALUE-SPECIFICATION>
            <SHORT-LABEL>Bp1</SHORT-LABEL>
            <ELEMENTS>
                <NUMERICAL-VALUE-SPECIFICATION>
                    <SHORT-LABEL>Bp1_rt_Array_Float_4_1</SHORT-LABEL>
                    <VALUE>1</VALUE>
                </NUMERICAL-VALUE-SPECIFICATION>
                <NUMERICAL-VALUE-SPECIFICATION>
                    <SHORT-LABEL>Bp1_rt_Array_Float_4_2</SHORT-LABEL>
                    <VALUE>2</VALUE>
                </NUMERICAL-VALUE-SPECIFICATION>
                <NUMERICAL-VALUE-SPECIFICATION>
                    <SHORT-LABEL>Bp1_rt_Array_Float_4_3</SHORT-LABEL>
                    <VALUE>3</VALUE>
                </NUMERICAL-VALUE-SPECIFICATION>
                <NUMERICAL-VALUE-SPECIFICATION>
                    <SHORT-LABEL>Bp1_rt_Array_Float_4_4</SHORT-LABEL>
                    <VALUE>4</VALUE>
                </NUMERICAL-VALUE-SPECIFICATION>
            </ELEMENTS>
        </ARRAY-VALUE-SPECIFICATION>
        <ARRAY-VALUE-SPECIFICATION>
            <SHORT-LABEL>Table</SHORT-LABEL>
            <ELEMENTS>
                <NUMERICAL-VALUE-SPECIFICATION>
                    <SHORT-LABEL>Table_rt_Array_Float_4_1</SHORT-LABEL>
                    <VALUE>10</VALUE>
                </NUMERICAL-VALUE-SPECIFICATION>
                <NUMERICAL-VALUE-SPECIFICATION>
                    <SHORT-LABEL>Table_rt_Array_Float_4_2</SHORT-LABEL>
                    <VALUE>20</VALUE>
                </NUMERICAL-VALUE-SPECIFICATION>
                <NUMERICAL-VALUE-SPECIFICATION>
                    <SHORT-LABEL>Table_rt_Array_Float_4_3</SHORT-LABEL>
                    <VALUE>30</VALUE>
                </NUMERICAL-VALUE-SPECIFICATION>
                <NUMERICAL-VALUE-SPECIFICATION>
                    <SHORT-LABEL>Table_rt_Array_Float_4_4</SHORT-LABEL>
                    <VALUE>40</VALUE>
                </NUMERICAL-VALUE-SPECIFICATION>
            </ELEMENTS>
        </ARRAY-VALUE-SPECIFICATION>
    </FIELDS>
</RECORD-VALUE-SPECIFICATION>
</VALUE-SPEC>
</CONSTANT-SPECIFICATION>

AdminData レコードのレイアウト注釈のエクスポート

AUTOSAR Blockset は、ARXML ルックアップ テーブル記述内の AdminData レコードのレイアウト注釈をサポートします。

AdminData レコードのレイアウト注釈を含む ARXML ルックアップ テーブルおよび軸記述をインポートすると、Simulink® ルックアップ テーブルと、AdminData 注釈が構造体要素の順序を決定するブレークポイントが作成されます。

ルックアップ テーブル AdminData のエクスポートは既定で無効になっています。AdminData のエクスポートを有効にするには、API のみの XML オプション 'ExportSwRecordLayoutAnnotationsOnAdminData' を true に設定します。以下に例を示します。

hModel = 'mAutosarLutObjs';
open_system(hModel);
arProps = autosar.api.getAUTOSARProperties(hModel);
set(arProps,'XmlOptions','ExportSwRecordLayoutAnnotationsOnAdminData',true);
evalc('slbuild(hModel)');

AdminData エクスポートが有効化されている場合、構造体要素を使用して Simulink® ルックアップ テーブルとブレークポイントをエクスポートすると、構造体要素 AdminData の注釈を含むルックアップ テーブルと軸 ImplementationDataTypes が生成されます。以下に例を示します。

<IMPLEMENTATION-DATA-TYPE UUID="...">
    <SHORT-NAME>LUT_4_single</SHORT-NAME>
    <CATEGORY>STRUCTURE</CATEGORY>
    <SUB-ELEMENTS>
        <IMPLEMENTATION-DATA-TYPE-ELEMENT UUID="...">
            <SHORT-NAME>Nx</SHORT-NAME>
            <CATEGORY>TYPE_REFERENCE</CATEGORY>
            <ADMIN-DATA>
                <SDGS>
                    <SDG GID="DV:RecLayoutAnnotation">
                        <SD GID="DV:Type">NO_AXIS_PTS_X</SD>
                    </SDG>
                </SDGS>
            </ADMIN-DATA>
            ...
        </IMPLEMENTATION-DATA-TYPE-ELEMENT>
        <IMPLEMENTATION-DATA-TYPE-ELEMENT UUID="...">
            <SHORT-NAME>Bp1</SHORT-NAME>
            <CATEGORY>TYPE_REFERENCE</CATEGORY>
            <ADMIN-DATA>
                <SDGS>
                    <SDG GID="DV:RecLayoutAnnotation">
                        <SD GID="DV:Type">AXIS_PTS_X</SD>
                    </SDG>
                </SDGS>
            </ADMIN-DATA>
            ...
        </IMPLEMENTATION-DATA-TYPE-ELEMENT>
        ...
    </SUB-ELEMENTS>
</IMPLEMENTATION-DATA-TYPE>

AdminData レコードのレイアウト注釈は、サードパーティの AUTOSAR ツールと一緒に使用できます。

参考

| | | | | | | |

関連する例

詳細