Main Content

AUTOSAR ソフトウェア コンポーネントの結合とシミュレーション

相互接続され、連携して動作する複数の AUTOSAR ソフトウェア コンポーネント モデルを開発する場合は、シミュレーション用に AUTOSAR コンポジション モデルに結合できます。コンポジションは、ソフトウェア コンポーネントの関連グループを集約する AUTOSAR ソフトウェア コンポーネントです。

AUTOSAR コンポジションの Simulink® 表現を作成するには、次のいずれかの操作を行います。

  • コンポジションの AUTOSAR XML (ARXML) 記述をインポートする (Classic Platform)。

  • モデルを作成し、Model ブロックを使用して AUTOSAR コンポーネント モデルを参照および接続する。

あるいは、System Composer™ ソフトウェアがある場合は、AUTOSAR アーキテクチャ モデルを作成し、Software Composition ブロックを使用して AUTOSAR コンポジションをモデル化できます。詳細については、ソフトウェア アーキテクチャのモデル化を参照してください。

コンポジション モデルをシミュレーションする場合、集約された AUTOSAR コンポーネントを組み合わせた動作をシミュレーションします。

AUTOSAR コンポーネントとコンポジションの開発が終わった後、1 つのシステムレベルのシミュレーションに属するコンポーネントのグループをテストすることができます。たとえば、コンポジション、コンポーネント、スケジューラ、プラント モデル、および場合によっては基本ソフトウェア サービス コンポーネントおよび呼び出し元を含む、システムレベルのモデルを作成できます。システムレベルのモデルを構成して閉ループ システムのシミュレーションや開ループ システムのシミュレーションを実行できます。

AUTOSAR コンポジションのモデル (Classic Platform) としてのインポート

コンポジションは、ソフトウェア コンポーネントの関連グループを集約する AUTOSAR ソフトウェア コンポーネントです。コンポジションはコンポーネントのスケーリングをサポートし、設計における複雑度を管理するのに役立ちます。

AUTOSAR Classic Platform 向けのソフトウェア コンポーネントを開発している場合、ARXML ファイルからコンポジション記述をインポートして AUTOSAR コンポジション モデルを作成できます。AUTOSAR インポーター関数 createCompositionAsModel を使用します。この関数呼び出しでは、ARXML ファイル例 ThrottlePositionControlComposition.arxml からコンポジション モデル ThrottlePositionControlComposition が作成されます。

openExample('ImportAUTOSARCompositionToSimulinkExample');
ar = arxml.importer('ThrottlePositionControlComposition.arxml');
createCompositionAsModel(ar,'/Company/Components/ThrottlePositionControlComposition');

集約された AUTOSAR コンポーネントを組み合わせた動作をシミュレーションするには、コンポジション モデルをシミュレーションします。モデル ウィンドウで [実行] ボタンをクリックするか、またはこの MATLAB® コマンドを入力します。

simOutComposition = sim('ThrottlePositionControlComposition');

詳細については、AUTOSAR コンポジションの Simulink へのインポートを参照してください。

AUTOSAR コンポーネントのシミュレーションのためのコンポジション モデルの作成

関連する AUTOSAR ソフトウェア コンポーネントをシミュレーションのためコンポジション モデルに結合するには、Simulink モデルを作成し、Model ブロックを使用して AUTOSAR コンポーネント モデルを参照して結合します。

この例では、AUTOSAR コンポジション モデルを作成します。作成されたモデルは AUTOSAR モデル例 autosar_composition の簡略化バージョンです。構成を効率よく行い、問題を解決するため、新しいモデルをモデル例 autosar_composition と比較できます。必要であれば、モデル間の入力端子と出力端子などの要素をコピーできます。完成したコンポジション モデルの図については、手順 4 を参照してください。

  1. 一緒にシミュレーションする AUTOSAR ソフトウェア コンポーネント モデルを作業フォルダーに移動し、そのフォルダーに cd コマンドを実行します。この例では、次のコンポーネント モデルを使用します。

    • autosar_swc_actuator

    • autosar_swc_controller

    • autosar_swc_pedal_sensor

    • autosar_swc_throttle_sensor

    これらのモデルには、openExample コマンドを使用してアクセスできます。ここで、入力引数は文字ベクトルとして指定されたモデルの名前です。

  2. Simulink モデルを作成します。モデルを composition の名前をもつ作業フォルダーに保存します。

  3. 各 AUTOSAR コンポーネント モデルについて、次を行います。

    1. コンポーネント モデルを個別に開いて、シミュレーションができることを検証します。

    2. composition モデルで Model ブロックを追加し、そのブロックを、コンポーネントを参照するよう構成します。Model ブロック パラメーターで、オプション [レートのスケジュール] を選択します。このオプションにより、レートベースのランナブル タスクが、エクスポートされた関数と同じようにスケジュールされます。

    3. コンポーネントで必要な端子を追加します。

    4. コンポーネント モデル autosar_swc_throttle_sensor には特別な調整が必要です。親モデル composition が (モデル例 autosar_composition とは異なり) コンポーネントを 1 回だけ参照するためです。モデル エクスプローラーを開き、autosar_swc_throttle_sensor のモデル ワークスペースを開いて、データ オブジェクト TPSPercent_LkupTbl を選択し、[引数] オプションをクリアします。

  4. 各 AUTOSAR コンポーネントについて Model ブロックを作成したら、ここに示すようにコンポーネントを接続します。

集約された AUTOSAR コンポーネントを組み合わせた動作をシミュレーションするには、コンポジション モデルをシミュレーションします。モデル ウィンドウで [実行] ボタンをクリックするか、またはこの MATLAB コマンドを入力します。

simOutComposition = sim('composition');

詳細については、AUTOSAR コンポーネントと生成されたコードの設計とシミュレーションを参照してください。

AUTOSAR のシステムレベル シミュレーションの代替方法

AUTOSAR コンポーネントとコンポジションの開発が終わった後、1 つのシステムレベルのシミュレーションに属するコンポーネントのグループをテストすることができます。たとえば、コンポジション、コンポーネント、プラント モデル、および場合によっては基本ソフトウェア サービス コンポーネントおよび呼び出し元を含む、システムレベルのモデルを作成できます。システムレベルのモデルを構成して閉ループ システムのシミュレーションや開ループ システムのシミュレーションを実行できます。システムレベルのモデルについては、Simulink モデル、または Simulink Test™ テスト ハーネス モデルを使用します。

閉ループ シミュレーションの例については、モデル例 autosar_system を開きます。このモデルは、AUTOSAR コンポジション モデル autosar_composition についてシステムレベルのテスト ハーネスを提供します。

openExample('autosar_system');

スロットル位置のスコープがモデルと共に開きます。システムレベルのモデル autosar_system をシミュレートする場合、スコープには、コンポジション モデル autosar_composition のスロットル位置コントロール アルゴリズムがどの程度ペダルの入力を追跡しているかが示されます。この動作を改善するには、コンポジション内のコンポーネントのアルゴリズムを変更することも、センサー ソースを変更することもできます。

simOutSystem = sim('autosar_system');

詳細については、AUTOSAR コンポーネントと生成されたコードの設計とシミュレーションを参照してください。

Simulink Test を使用した開ループ シミュレーションの例については、Testing AUTOSAR Compositions (Simulink Test)を参照してください。この例では、AUTOSAR コンポジション モデルについて back-to-back テストを実行します。

AUTOSAR 基本ソフトウェア サービスをシミュレーションする例については、AUTOSAR 基本ソフトウェア サービスとランタイム環境のシミュレーションを参照してください。

参考

関連する例

詳細