Main Content

アーキテクチャ モデルへの AUTOSAR コンポジションのインポート

AUTOSAR ソフトウェア コンポジションの ARXML 記述をアーキテクチャ モデルにインポートします。

AUTOSAR アーキテクチャ モデルを作成 (System Composer が必要) した後に、最上位の AUTOSAR ソフトウェア設計を開発します。コンポジション エディターには、AUTOSAR 仮想機能バス (VFB) に基づいて AUTOSAR ソフトウェア アーキテクチャが表示されます。

ARXML ファイルからの AUTOSAR コンポジションのインポート

AUTOSAR ソフトウェア コンポジションの ARXML 記述がある場合は、コンポジションを AUTOSAR アーキテクチャ モデルにインポートできます。インポートでは、アーキテクチャ モデルの最上位にコンポジションの Simulink 表現が作成されます。コンポジションのインポートには、機能コンテンツのない開いている AUTOSAR アーキテクチャ モデルが必要です。AUTOSAR アーキテクチャ モデルの既存の AUTOSAR ソフトウェア コンポジションを更新するには、関数updateModelを使用します。

AUTOSAR ソフトウェア コンポジションを ARXML ファイルからアーキテクチャ モデルにインポートするには、以下を行います。

1. 機能コンテンツのない AUTOSAR アーキテクチャ モデルを作成または開きます。たとえば、次の MATLAB® コマンドを入力します。

% Create AUTOSAR architecture model
modelName = "myArchModel";
archModel = autosar.arch.createModel(modelName);

2. 開いているアーキテクチャ モデルの [モデル化] タブの [コンポーネント] メニューで、[ARXML からインポート] を選択します。

3. AUTOSAR インポーター アプリの [ARXML の選択] ペインにある [ARXML ファイル] フィールドで、AUTOSAR ソフトウェア コンポジションを記述する 1 つ以上の ARXML ファイル (コンマ区切り) の名前を入力します。この例では、ThrottlePositionControlComposition.arxml と入力します。

[次へ] をクリックします。アプリで、指定された ARXML ファイルが解析されます。

4. [コンポジションの作成] ペインの [コンポジション名] メニューに、解析された ARXML ファイルで検出されたコンポジションがリストされます。コンポジション /Company/Components/ThrottlePositionControlComposition を選択します。

オプションで、コンポジションの作成に関する追加のモデリング オプションを表示するには、[モデリング オプションの構成] を選択します。

以下を指定できます。

  • コンポジションの動作を定義する AUTOSAR ソフトウェア コンポーネントを含めるか除外するか。既定では、インポートにコンポジション内のコンポーネントが含まれます。

  • インポートされた AUTOSAR データ型のデータ オブジェクトを配置する Simulink データ ディクショナリ。

  • インポートされた AUTOSAR ソフトウェア コンポーネントにリンクする既存の Simulink 動作モデルの名前。

  • インポートされた AUTOSAR ソフトウェア コンポーネントの Simulink 動作モデルを作成するときに適用されるコンポーネント オプション。周期的なランナブル、またはコンポーネント変動点を解決するために使用する PredefinedVariant または SwSystemconstantValueSet をモデル化する方法など。

モデリング オプションと動作の詳細については、importFromARXML リファレンス ページを参照してください。

5. アーキテクチャ モデルへのコンポジションのインポートを完了するには、[終了] をクリックします。診断ビューアーに、コンポジションの作成の進捗状況が表示されます。完了すると、インポートされたコンポジションがソフトウェア アーキテクチャのキャンバスに表示されます。

手順 2 ~ 5 をプログラムで実行するには、以下のコマンドを実行します。

% Import composition from file ThrottlePositionControlComposition.arxml
importerObj = arxml.importer("ThrottlePositionControlComposition.arxml");  % Parse ARXML
importFromARXML(archModel,importerObj,...
  "/Company/Components/ThrottlePositionControlComposition");
Created model 'ThrottlePositionSensor' for component 1 of 5: /Company/Components/ThrottlePositionSensor
Created model 'ThrottlePositionMonitor' for component 2 of 5: /Company/Components/ThrottlePositionMonitor
Created model 'Controller' for component 3 of 5: /Company/Components/Controller
Created model 'AccelerationPedalPositionSensor' for component 4 of 5: /Company/Components/AccelerationPedalPositionSensor
Created model 'ThrottlePositionActuator' for component 5 of 5: /Company/Components/ThrottlePositionActuator
Importing composition 1 of 1: /Company/Components/ThrottlePositionControlComposition

このコンポジションのインポートが、AUTOSAR ソフトウェア コンポーネントが含まれるように構成されているため (モデリング オプション [内部動作をインポートから除外] がオフ)、インポートによって、コンポジション内のコンポーネントごとに Simulink モデルが作成されています。

AUTOSAR コンポーネント アルゴリズムの開発

AUTOSAR コンポジションの最初の Simulink 表現を作成した後、各コンポーネントをコンポジション内に開発します。各コンポーネント用に AUTOSAR 構成を調整し、アルゴリズム モデル コンテンツを作成します。

たとえば、ThrottlePositionControlComposition コンポジション モデル内の Controller コンポーネント モデルには、AUTOSAR の周期的なランナブルを表す Atomic サブシステム Runnable_Step_sys が含まれます。Runnable_Step_sys サブシステムにはコントローラーの動作の初期スタブ実装が含まれます。

次に、スロットル位置のコントローラーの動作の可能な実装を示します (この実装を調べるには、例AUTOSAR コンポーネントと生成されたコードの設計とシミュレーションに含まれているモデル autosar_swc_controller を参照してください)。コンポーネントは、ペダル位置センサーから APP センサーの割合を、スロットル位置センサーから TPS の割合を入力として受け取ります。これらの値に基づいて、コントローラーは "誤差" を計算します。誤差は、オペレーターがペダル センサーに基づいて想定するスロットルの位置と現在のスロットルの位置の間の差です。この実装では、Discrete PID Controller ブロックは、スロットル コマンドの割合を計算してスロットル アクチュエータに提供するために誤差値を使用します。スコープには、誤差値および Discrete PID Controller ブロックの出力値が経時的に表示されます。

AUTOSAR コンポーネントを開発すると、以下が可能になります。

  • コンポーネント モデルを個別にまたはアーキテクチャ モデル内のグループとしてシミュレーションする。

  • Simulink でのテストまたは AUTOSAR ランタイム環境への統合用に ARXML 記述ファイルおよびアルゴリズム C コードを生成する (AUTOSAR コード生成には Simulink Coder および Embedded Coder が必要です)。

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

関連するリンク