Main Content

モデルの作成またはリンクによる AUTOSAR コンポーネントの動作の定義

AUTOSAR アーキテクチャ モデルに Software Composition ブロックと Software Component ブロックを追加し、接続した後、Simulink® の動作をコンポーネントおよびコンポジションに追加します。各 AUTOSAR Software Component ブロックと Software Composition ブロックでは、以下を実行できます。

  • ブロック インターフェイスに基づいてモデルを作成する。

  • 実装モデルにリンクする。

  • AUTOSAR XML (ARXML) コンポーネント記述からモデルを作成する。

これらのアクションを開始するには、Classic Component ブロックまたは Adaptive Component ブロックを選択します。表示される省略記号にカーソルを合わせ、コンポーネント モデルのキューを [Simulink 動作の作成][モデルにリンク]、または [ARXML からコンポーネントを作成] から選択します。

選択を行うと、コンポーネントの Simulink 動作を定義するモデルを作成またはリンクするのに役立つダイアログ ボックスが開きます。

作成とリンクの処理は、アーキテクチャ ブロックのコンテキスト メニューやツールストリップの [モデル化] タブなどの他の方法でも開始できます。

Embedded Coder® ソフトウェアを使用している場合、実装モデルを AUTOSAR コンポーネントに関連付けた後、コンポーネント ブロックのキューまたは右クリック オプションを使用して、コードを生成して ARXML ファイルをエクスポートできます。ARXML エクスポートには、親のアーキテクチャ モデルの XML オプションが使用されます。

アーキテクチャ モデルに含まれるコンポーネントに動作が定義されると、集約されたコンポーネントの動作をシミュレーションできるようになります。AUTOSAR のスケジューリングとシミュレーションの構成を参照してください。

ブロック インターフェイスに基づく Simulink 動作の作成

スタブ実装モデルを作成し、それを AUTOSAR ソフトウェア コンポーネントにマッピングするには、Classic Component または Adaptive Component で、キュー [Simulink 動作の作成] を使用します。

このキューをクリックすると、作成したコンポーネントのインターフェイスに基づいてモデルが作成されます。実装モデルには、Software Component ブロック上に作成したポートが存在します。

この例では、Classic アーキテクチャ コンポーネントの Simulink 動作の作成方法について説明します。Adaptive コンポーネントの動作を作成する場合も同じワークフローです。

  1. アーキテクチャ モデルを作成するか、開きます。モデルを作成するには、Simulink スタート ページを開きます。AUTOSAR Blockset[ソフトウェア アーキテクチャ] テンプレートを開きます。

  2. [モデル化] タブの [プラットフォーム] セクションで、AUTOSAR プラットフォームが正しいことを確認します。この例では [Classic Platform] を選択します。

  3. [モデル化] タブまたはキャンバスの左側にあるパレットから、Classic Component ブロックをモデルに追加し、Controller という名前を付けます。プロパティ インスペクターにコンポーネントの [種類] プロパティとして [Application] が表示され、このコンポーネントに適しています。

  4. ブロックの端をクリックし、APP_Percent という名の要求側 (入力) ポート、TPS_Percent という名の要求側 (入力) ポート、ThrCmd_Percent という名の提供側 (出力) ポートを追加します (同じ命名を使用する Controller コンポーネントについては、アーキテクチャ モデル内の AUTOSAR Classic コンポジションおよびコンポーネントの作成の例を参照してください)。

  5. Controller ブロックを選択し、表示される省略記号にカーソルを合わせ、キュー [Simulink 動作の作成] を選択します。モデルの作成ダイアログ ボックスが開きます。

    1. モデル参照のタイプとして、周期的レートのランナブル ([レートベース]) または関数呼び出しランナブル ([エクスポート関数]) を入力します。モデリング パターンの詳細については、AUTOSAR ランナブルのモデル化パターンを参照してください。

      この例では、Classic アーキテクチャ コンポーネントの動作を作成するには、[レートベース] を選択します。

    2. 新しいモデルの名前を入力するか、既定のブロック名を受け入れます。

    3. 新しいモデルのカスタム Simulink テンプレートを選択するか、既定の空のテンプレートを受け入れます。独自の Simulink テンプレートの作成の詳細については、モデルからのテンプレートの作成を参照してください。

    スタブ実装モデルを作成し、それを AUTOSAR Controller コンポーネントにマッピングするには、[OK] をクリックします。

    作業フォルダーに、モデル Controller.slx が作成されます。

  6. 初期のモデル コンテンツを確認するには、Controller ブロックを開きます。端子は Ground ブロックと Terminator ブロックでスタブされるため、モデルは即座に更新されシミュレーションされることができます。

  7. 開いている Controller モデルについて、モデルのマッピングとディクショナリを表示するには、AUTOSAR コンポーネント デザイナー アプリを開きます。このビューには、モデル端子 APP_Percent.Value のマッピングとプロパティが表示されます。このモデル端子は、AUTOSAR コンポーネント ポート APP_Percent にマッピングされています。

    現在選択されている要素の追加の AUTOSAR プロパティを表示および変更するには、 アイコンをクリックします。

  8. AUTOSAR コンポーネントのスタブ モデル表現を作成した後、Simulink ツールを使用して、コンポーネントの実装を作成します。AUTOSAR コンフィギュレーションを調整し、アルゴリズム モデル コンテンツを作成します。Controller ブロックの実装の例については、アーキテクチャ モデル内の AUTOSAR Classic コンポジションおよびコンポーネントの作成の例で提供されるモデル autosar_tpc_controller を参照してください。

実装モデルへのリンク

AUTOSAR ソフトウェア コンポーネントから既存の Simulink 実装モデルを参照するには、Classic Component ブロックまたは Adaptive Component ブロックのキュー [モデルにリンク] を使用します。このキューをクリックすると、コンポーネント ブロックと指定した実装モデルのリンクが開始されます。既存のモデルにリンクすると、再検定を実施することなく、AUTOSAR 設計に検証済みの実装モデルを展開できます。

実装モデルはモデルのリンク要件を満たさなければなりません。モデルは以下でなければなりません。

  • アーキテクチャ モデルと同じ AUTOSAR ターゲットを使用する。

  • Simulink モデル要素の AUTOSAR コンポーネント要素へのマッピングが完了している。

  • Inport ブロックと Outport ブロックの代わりに In Bus Element ブロックと Out Bus Element ブロックをもつルートレベルの端子を実装する。

  • 固定ステップ ソルバーを使用する。

  • コンポジション階層内の別のモデルにまだマッピングされていない AUTOSAR ソフトウェア コンポーネントにマッピングする。

指定した実装モデルがリンク要件を満たしている場合は、コンポーネント ブロックがそのモデルにリンクされ、それに合わせてブロックとモデル インターフェイスが更新されます。

実装モデルが 1 つ以上のリンク要件を満たしていない場合は、AUTOSAR モデル リンカー アプリが開き、満たされていない要件に対する修正が提案されます。たとえば、実装モデルでルートの Inport ブロックと Outport ブロックが使用されている場合は、信号端子をバス端子に変換して問題を修正するように提案されます。[すべて修正] をクリックすると、満たされていない要件が修正され、コンポーネント ブロックとモデルのリンクが完了します。

この例では、AUTOSAR Classic コンポーネントを既存の実装モデルにリンクする方法について説明します。Adaptive コンポーネントを実装モデルにリンクする場合も同じワークフローです。

  1. アーキテクチャ モデルを作成するか、開きます。モデルを作成するには、Simulink スタート ページを開きます。AUTOSAR Blockset[ソフトウェア アーキテクチャ] テンプレートを開きます。

  2. [モデル化] タブの [プラットフォーム] セクションで、AUTOSAR プラットフォームが正しいことを確認します。この例では [Classic Platform] を選択します。

  3. [モデル化] タブまたはパレットから、Classic Component ブロックをモデルに追加します。プロパティ インスペクターにコンポーネントの [種類] プロパティとして [Application] が表示され、このコンポーネントに適しています。

  4. Component ブロックを、アーキテクチャ モデルで使用するためにまだ構成されていない実装モデルにリンクします。たとえば、AUTOSAR 用に構成されていないモデルや、ルート レベルでバス端子の代わりに信号端子を使用するモデルを選択します。この例では、swc モデルを使用します。

    openExample('swc')
  5. Component ブロックを選択し、表示される省略記号にカーソルを合わせ、キュー [モデルにリンク] を選択します。[モデルにリンク] ダイアログ ボックスで、実装モデル swc を参照します。

    AUTOSAR Component コンポーネントから実装モデルを参照するには、[OK] をクリックします。

    指定した実装モデルが 1 つ以上のリンク要件を満たしていない場合は、AUTOSAR モデル リンカー アプリが開き、満たされていない要件に対する修正が提案されます。

  6. swc のリンク要件を確認します。

    [リンク要件] ペインに [すべて修正] ボタンが表示される場合は、満たされていないリンク要件を修正してコンポーネント ブロックを実装モデルにリンクできます。[すべて修正] をクリックします。

    この例のように、実装モデルで AUTOSAR コンポーネントのマッピングが完了していない場合は、リンクする前にモデルをマッピングしなければなりません。[次へ] をクリックし、マッピング ペイン [コンポーネントの設定] および [インターフェイスの設定] での作業を行います。詳細については、Simulink での AUTOSAR ソフトウェア コンポーネントの作成を参照してください。[インターフェイスの設定] ペインでの作業が完了したら、[すべて修正] をクリックします。

  7. Simulink では Component ブロックがモデル swc にリンクされ、モデル実装と一致するようにブロック インターフェイスが更新されます。

  8. モデル コンテンツを表示するには、Component ブロックを開きます。開いている Component モデルで、モデルのマッピングとディクショナリを表示するには、AUTOSAR コンポーネント デザイナー アプリを開きます。

  9. AUTOSAR コンポーネントを実装モデルにリンクした後、Component ブロックを設計に含まれるその他のブロックまたはルート端子に接続できます。

ARXML コンポーネント記述からのモデルの作成

ARXML コンポーネント記述から AUTOSAR 実装モデルを作成し、それを AUTOSAR ソフトウェア コンポーネントにマッピングするには、Classic Component ブロックまたは Adaptive Component ブロックのキュー [ARXML からコンポーネントを作成] を使用します。

このキューをクリックすると、指定した ARXML 記述に基づいてモデルが作成され、コンポーネント ブロックがそのモデルにリンクされ、それに合わせてブロックとモデル インターフェイスが更新されます。

この例では、指定された ARXML 記述に基づいて AUTOSAR Classic モデルを作成する方法について説明します。ARXML から Adaptive モデルを作成する場合も同じワークフローです。

  1. アーキテクチャ モデルを作成するか、開きます。モデルを作成するには、Simulink スタート ページを開きます。AUTOSAR Blockset[ソフトウェア アーキテクチャ] テンプレートを開きます。

  2. [モデル化] タブの [プラットフォーム] セクションで、AUTOSAR プラットフォームが正しいことを確認します。この例では [Classic Platform] を選択します。

  3. [モデル化] タブまたはパレットから、Classic Component ブロックをモデルに追加して、Controller という名前を付けます。プロパティ インスペクターにコンポーネントの [種類] プロパティとして [Application] が表示され、このコンポーネントに適しています。

  4. Simulink への AUTOSAR XML 記述のインポートの例に、Controller コンポーネント記述を含む ARXML ファイルが提供されています。ARXML ファイルは、既定の MATLAB® 検索パス上にあります。次の MATLAB コマンドを使用して、ARXML ファイルを開きます。

    openExample('autosarblockset/ImportAUTOSARComponentToSimulinkExample',...
    'supportingfile','ThrottlePositionControlComposition.arxml');
    
  5. Controller ブロックを選択し、表示される省略記号にカーソルを合わせ、キュー [ARXML からコンポーネントを作成] を選択します。AUTOSAR インポーター アプリが開きます。

    インポートとモデル作成の手順に従います。

  6. [ARXML の選択] ペインで、1 つ以上のソフトウェア コンポーネント記述を提供する 1 つ以上の AUTOSAR XML ファイルを参照します。この例では、前の手順でコピーしたファイル ThrottlePositionControlComposition.arxml を使用しています。記述をインポートするには、[次へ] をクリックします。

  7. [コンポーネントの作成] ペインで、モデルの作成元となるソフトウェア コンポーネントを選択します。この例では、前の手順でインポートされたコンポーネントのリストから Controller を選択します。

    モデルの作成に関するオプションの設定を表示するには、[モデリング オプションの構成] を選択します。

    次のことが可能です。

    • 周期的なランナブルをアトミック サブシステムとしてモデル化するか、Function-Call Subsystem としてモデル化するか、既定のモデリング スタイル選択 ([自動]) を受け入れるかを選択する。

    • 既存の AUTOSAR ランナブルをコンポーネントの初期化ランナブルとして選択する。この例では、Controller_Init が選択可能です。

    • XML ファイル内の AUTOSAR データ型に対応するデータ オブジェクトのインポート先にする Simulink データ ディクショナリを指定する。指定されたディクショナリがまだ存在しない場合は、インポーターが作成します。その後、そのデータ ディクショナリにモデルが関連付けられます。

    • 変動点を制御する入力として機能する SwSystemconst データを初期化するため、AUTOSAR XML ファイルに定義された AUTOSAR PredefinedVariant を選択する。詳細については、事前定義値の組み合わせを使用した AUTOSAR バリアントの制御を参照してください。この例では、選択可能な PredefinedVariant はありません。

    モデル作成のオプションと動作の詳細については、createComponentAsModel を参照してください。

  8. モデルを作成して AUTOSAR Controller コンポーネントにマッピングするには、[終了] をクリックします。Simulink では作業フォルダー内にモデル Controller.slx が作成されて、モデルの実装に合わせてブロック インターフェイスが更新されます。

  9. モデル コンテンツを表示するには、Controller ブロックを開きます。開いている Controller モデルについて、モデルのマッピングとディクショナリを表示するには、AUTOSAR コンポーネント デザイナー アプリを開きます。

  10. AUTOSAR 実装モデルを作成し、それに AUTOSAR コンポーネントをリンクした後、Component ブロックを設計に含まれるその他のブロックまたはルート端子に接続します。すべての接続が完了した Controller コンポーネントについては、アーキテクチャ モデル内の AUTOSAR Classic コンポジションおよびコンポーネントの作成の例を参照してください。

参考

|

関連するトピック