Main Content

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

AUTOSAR コンポーネントの Simulink へのインポート

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

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

以下に、自動車のスロットル位置制御システムのコントローラーを実装する AUTOSAR アプリケーション ソフトウェア コンポーネントを示します。コントローラー コンポーネントは、アクセル ペダル位置 (APP) センサーおよびスロットル位置センサー (TPS) からの入力値を受け取ります。コントローラーはその値をスロットル アクチュエータの入力値に変換します。

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

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

ar = arxml.importer('ThrottlePositionControlComposition.arxml');
names = getComponentNames(ar)
names = 5x1 cell
    {'/Company/Components/Controller'                     }
    {'/Company/Components/ThrottlePositionMonitor'        }
    {'/Company/Components/AccelerationPedalPositionSensor'}
    {'/Company/Components/ThrottlePositionActuator'       }
    {'/Company/Components/ThrottlePositionSensor'         }

Controller ソフトウェア コンポーネントについて、createComponentAsModel を使用して Simulink 表現を作成します。

createComponentAsModel(ar,'/Company/Components/Controller',...
    'ModelPeriodicRunnablesAs','AtomicSubsystem');

関数呼び出しにより AUTOSAR アプリケーション ソフトウェア コンポーネントを表すコンポーネント モデルが作成されます。Atomic サブシステムは AUTOSAR の周期的なランナブルを表し、Initialize Function ブロックは AUTOSAR 初期化ランナブルを表します。Simulink の入力端子と出力端子は AUTOSAR ポートを表します。

AUTOSAR コンポーネント アルゴリズムの開発、シミュレーションおよびコードの生成

AUTOSAR コンポーネントの初期 Simulink 表現を作成したらコンポーネントを開発します。AUTOSAR コンフィギュレーションを調整し、アルゴリズム モデル コンテンツを作成します。

たとえば、Controller コンポーネント モデルの 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,'Controller');
### Updating model Controller
### Saving original model as Controller_backup.slx
### Creating HTML report Controller_update_report.html

更新後、コンポーネント モデルでの強調表示は、変更が発生した部分を示します。

関数は、HTML AUTOSAR 更新レポートの生成と表示も行います。レポートには、コンポーネント モデルの Simulink および AUTOSAR 要素の変更内容がリストされます。レポートでは、ハイパーリンクをクリックして変更の説明からモデルの変更部分に移動できます。

追加されたブロックを接続し、サブシステム内の入力端子と出力端子を更新して、モデル ブロック線図を更新します。以下に例を示します。

関連するリンク