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 要素に対して更新で行われた変更をリストします。このレポートでは、ハイパーリンクをクリックして変更の説明からモデルの変更部分に移動したり、メイン レポートから個別のコンポーネント レポートに移動したりできます。