Main Content

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

AUTOSAR コンポジションの Simulink へのインポート

AUTOSAR ソフトウェア コンポジションの XML 記述から Simulink® モデルを作成します。

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

スロットル位置制御システムを実装する AUTOSAR ソフトウェア コンポジションは次のとおりです。コンポジションには相互接続された 6 つの AUTOSAR ソフトウェア コンポーネント プロトタイプ (4 つのセンサー/アクチュエータ コンポーネントと 2 つのアプリケーション コンポーネント) が含まれます。

コンポジションは AUTOSAR オーサリング ツールで作成され、ファイル ThrottlePositionControlComposition.arxml にエクスポートされました。

MATLAB 関数createCompositionAsModelを使用して AUTOSAR XML (ARXML) 記述をインポートし、AUTOSAR コンポジションの初期の Simulink 表現を作成します。最初に、ARXML 記述ファイルを解析して、含まれているコンポジションをリストします。

ar = arxml.importer('ThrottlePositionControlComposition.arxml');
names = getComponentNames(ar,'Composition')
names = 1x1 cell array
    {'/Company/Components/ThrottlePositionControlComposition'}

リストされたソフトウェア コンポジションについて、createCompositionAsModel を使用して Simulink 表現を作成します。

createCompositionAsModel(ar,'/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
Created model 'ThrottlePositionControlComposition' for composition 1 of 1:
/Company/Components/ThrottlePositionControlComposition

関数呼び出しは、コンポジション内にそれぞれ 1 つずつアトミック ソフトウェア コンポーネントの 6 つのコンポーネント モデルが含まれるコンポジション モデルを作成します。Simulink の入力端子と出力端子は AUTOSAR ポートを、信号線は AUTOSAR コンポーネント コネクタを表します。

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 コンポーネントと生成されたコードの設計とシミュレーションの例を参照してください。

オーサリング ツールからのアーキテクチャの変更による AUTOSAR コンポジション モデルの更新

AUTOSAR ソフトウェア コンポジションを Simulink にインポートし、アルゴリズムの開発を開始した後、AUTOSAR オーサリング ツールでコンポジションにアーキテクチャの変更が行われると仮定します。

修正したコンポジションは次のとおりです。この変更によりセンサー コンポーネントが削除され、ロガー コンポーネントが追加され、コンポジション レベルとコンポーネント レベルでポートと接続が追加されます。AUTOSAR オーサリング ツールで、修正されたコンポジションがファイル ThrottlePositionControlComposition_updated.arxml にエクスポートされます。

MATLAB 関数updateModelを使用して、ARXML ファイルからアーキテクチャの修正をインポートします。関数は、AUTOSAR コンポジション モデルを変更で更新し、結果をレポートします。

ar2 = arxml.importer('ThrottlePositionControlComposition_updated.arxml');
updateModel(ar2,'ThrottlePositionControlComposition');
### Updating model ThrottlePositionSensor
### Saving original model as ThrottlePositionSensor_backup.slx
### Creating HTML report ThrottlePositionSensor_update_report.html
Updated model 'ThrottlePositionSensor' for component 1 of 6:
/Company/Components/ThrottlePositionSensor
### Updating model ThrottlePositionMonitor
### Saving original model as ThrottlePositionMonitor_backup.slx
### Creating HTML report ThrottlePositionMonitor_update_report.html
Updated model 'ThrottlePositionMonitor' for component 2 of 6:
/Company/Components/ThrottlePositionMonitor
Updated model 'Logger' for component 3 of 6: /Company/Components/Logger
### Updating model Controller
### Saving original model as Controller_backup.slx
### Creating HTML report Controller_update_report.html
Updated model 'Controller' for component 4 of 6: /Company/Components/Controller
### Updating model AccelerationPedalPositionSensor
### Saving original model as AccelerationPedalPositionSensor_backup.slx
### Creating HTML report AccelerationPedalPositionSensor_update_report.html
Updated model 'AccelerationPedalPositionSensor' for component 5 of 6:
/Company/Components/AccelerationPedalPositionSensor
### Updating model ThrottlePositionActuator
### Saving original model as ThrottlePositionActuator_backup.slx
### Creating HTML report ThrottlePositionActuator_update_report.html
Updated model 'ThrottlePositionActuator' for component 6 of 6:
/Company/Components/ThrottlePositionActuator
Updated model 'ThrottlePositionControlComposition' for composition 1 of 1:
/Company/Components/ThrottlePositionControlComposition
### Updating model ThrottlePositionControlComposition
### Saving original model as ThrottlePositionControlComposition_backup.slx
### Creating HTML report ThrottlePositionControlComposition_update_report.html

更新後に、コンポジション モデルで、強調表示により変更が発生した場所が示されます。

関数は、HTML AUTOSAR 更新レポートの生成と表示も行います。レポートは、コンポジション モデルで Simulink 要素と AUTOSAR 要素に対して更新で行われた変更をリストします。このレポートでは、ハイパーリンクをクリックして変更の説明からモデルの変更部分に移動したり、メイン レポートから個別のコンポーネント レポートに移動したりできます。

関連するリンク