Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

モデルの作成またはリンクによる AUTOSAR コンポーネントの動作の定義

AUTOSAR アーキテクチャ モデルに Software Component ブロックと Software Composition ブロックを追加し、接続した後、Simulink® の動作をコンポーネントに追加します。各 AUTOSAR Software Component ブロックについて、以下が可能です。

  • ブロック インターフェイスに基づいてモデルを作成する。

  • 実装モデルにリンクする。

  • AUTOSAR XML (ARXML) コンポーネント記述からモデルを作成する。

以上の処理を開始するには、Software Component ブロックを選択し、表示される省略記号にカーソルを合わせ、コンポーネント モデルのキューを [Create Model][Link to Model]、または [Create Component Model from ARXML] から選択します。

選択を行うと、コンポーネントの Simulink 動作を定義するモデルを作成またはリンクするのに役立つダイアログ ボックスが開きます。

作成とリンクの処理は、アーキテクチャ ブロックのコンテキスト メニューやツールストリップの [モデル化] タブなどの他の方法でも開始できます。

Embedded Coder® ソフトウェアを使用している場合、実装モデルを AUTOSAR コンポーネントに関連付けた後、コンポーネント ブロックのキューまたは右クリック オプションを使用して、コードを生成して ARXML ファイルをエクスポートできます。ARXML エクスポートには、親のアーキテクチャ モデルの XML オプションが使用されます。

アーキテクチャ モデルに含まれるコンポーネントに動作が定義されると、集約されたコンポーネントの動作をシミュレーションできるようになります。AUTOSAR のスケジューリングとシミュレーションの構成を参照してください。

ブロック インターフェイスに基づくモデルの作成

スタブ実装モデルを作成し、それを AUTOSAR ソフトウェア コンポーネントにマッピングするには、Software Component ブロック キューの [Create Model] を使用します。

このキューをクリックすると、作成したコンポーネントのインターフェイスに基づいてモデルが作成されます。実装モデルには、Software Component ブロック上に作成したポートが存在します。

  1. アーキテクチャ モデルを作成するか、開きます。モデルを作成するには、Simulink スタート ページを開きます。AUTOSAR Blockset[ソフトウェア アーキテクチャ] テンプレートを開きます。

  2. [モデル化] タブまたはパレットから、Software Component ブロックをモデルに追加して、Controller という名前を付けます。プロパティ インスペクターにコンポーネントの [種類] プロパティとして [アプリケーション] が表示され、このコンポーネントに適しています。

  3. ブロックの端をクリックし、APP_Percent という名の要求側 (入力) ポート、TPS_Percent という名の要求側 (入力) ポート、ThrCmd_Percent という名の提供側 (出力) ポートを追加します (同じ命名を使用する Controller コンポーネントについては、アーキテクチャ モデルによる AUTOSAR コンポジションおよびコンポーネントの作成の例を参照してください)。

  4. Controller ブロックを選択し、表示される省略記号にカーソルを合わせ、キュー [Create Model] を選択します。モデルの作成ダイアログ ボックスが開きます。

    1. 新しいモデルの名前を入力するか、既定のブロック名を受け入れます。

    2. 新しいモデルのカスタム Simulink テンプレートを選択するか、既定の空のテンプレートを受け入れます。独自の Simulink テンプレートの作成の詳細については、モデルからのテンプレートの作成を参照してください。

    スタブ実装モデルを作成し、それを AUTOSAR Controller コンポーネントにマッピングするには、[OK] をクリックします。

  5. 作業フォルダーに、モデル Controller.slx が作成されます。初期のモデル コンテンツを確認するには、Controller ブロックを開きます。端子は Ground ブロックと Terminator ブロックでスタブされるため、モデルは即座に更新されシミュレーションされることができます。

  6. 開いている Controller モデルについて、モデルのマッピングとディクショナリを表示するには、AUTOSAR Component Designer アプリを開きます。このビューには、モデル端子 APP_Percent.Value のマッピングとプロパティが表示されます。このモデル端子は、AUTOSAR コンポーネント ポート APP_Percent にマッピングされています。

    現在選択されている要素の追加の AUTOSAR プロパティを表示および変更するには、 アイコンをクリックします。

  7. AUTOSAR コンポーネントのスタブ モデル表現を作成した後、Simulink ツールを使用して、コンポーネントの実装を作成します。AUTOSAR コンフィギュレーションを調整し、アルゴリズム モデル コンテンツを作成します。Controller ブロックの実装の例については、アーキテクチャ モデルによる AUTOSAR コンポジションおよびコンポーネントの作成の例で提供されるモデル autosar_tpc_controller を参照してください。

実装モデルへのリンク

AUTOSAR ソフトウェア コンポーネントから既存の Simulink 実装モデルを参照するには、Software Component ブロックのキュー [モデルにリンク] を使用します。このキューをクリックすると、コンポーネント ブロックと指定した実装モデルのリンクが開始されます。既存のモデルにリンクすると、再検定を実施することなく、AUTOSAR 設計に検証済みの実装モデルを展開できます。

実装モデルはモデルのリンク要件を満たさなければなりません。モデルは以下でなければなりません。

  • アーキテクチャ モデルと同じ AUTOSAR ターゲットを使用する。

  • Simulink モデル要素の AUTOSAR コンポーネント要素へのマッピングが完了している。

  • Inport ブロックと Outport ブロックの代わりに In Bus Element ブロックと Out Bus Element ブロックをもつルートレベルの端子を実装する。

  • 固定ステップ ソルバーを使用する。

  • コンポジション階層内の別のモデルにまだマッピングされていない AUTOSAR ソフトウェア コンポーネントにマッピングする。

指定した実装モデルがリンク要件を満たしている場合は、コンポーネント ブロックがそのモデルにリンクされ、それに合わせてブロックとモデル インターフェイスが更新されます。

実装モデルが 1 つ以上のリンク要件を満たしていない場合は、AUTOSAR Model Linker アプリが開き、満たされていない要件に対する修正が提案されます。たとえば、実装モデルでルートの Inport ブロックと Outport ブロックが使用されている場合は、信号端子をバス端子に変換して問題を修正するように提案されます。[すべて修正] をクリックすると、満たされていない要件が修正され、コンポーネント ブロックとモデルのリンクが完了します。

AUTOSAR ソフトウェア コンポーネントを既存の Simulink 実装モデルにリンクするには、次のようにします。

  1. アーキテクチャ モデルを作成するか、開きます。モデルを作成するには、Simulink スタート ページを開きます。AUTOSAR Blockset[ソフトウェア アーキテクチャ] テンプレートを開きます。

  2. [モデル化] タブまたはパレットから、Software Component ブロックをモデルに追加します。プロパティ インスペクターにコンポーネントの [種類] プロパティとして [アプリケーション] が表示され、このコンポーネントに適しています。

  3. Component ブロックを、アーキテクチャ モデルで使用するためにまだ構成されていない実装モデルにリンクします。たとえば、AUTOSAR 用に構成されていないモデルや、ルート レベルでバス端子の代わりに信号端子を使用するモデルを選択します。この例では、AUTOSAR サンプル フォルダーにある swc モデルを使用します。この swc モデル ファイルを作業フォルダーにコピーするには、次の MATLAB® コマンドを入力します。

    copyfile(fullfile(matlabroot,'examples/autosarblockset/main/swc.slx'),'.')
  4. Component ブロックを選択し、表示される省略記号にカーソルを合わせ、キュー [モデルにリンク] を選択します。[モデルにリンク] ダイアログ ボックスで、実装モデル swc を参照します。

    AUTOSAR Component コンポーネントから実装モデルを参照するには、[OK] をクリックします。

  5. 指定した実装モデルが 1 つ以上のリンク要件を満たしていない場合は、AUTOSAR Model Linker アプリが開き、満たされていない要件に対する修正が提案されます。swc に対して開くビューを次に示します。

    [Linking Requirements] ペインに [すべて修正] ボタンが表示される場合は、満たされていないリンク要件を修正してコンポーネント ブロックを実装モデルにリンクできます。[すべて修正] をクリックします。

    この例のように、実装モデルで AUTOSAR コンポーネントのマッピングが完了していない場合は、リンクする前にモデルをマッピングしなければなりません。[次へ] をクリックし、マッピング ペイン [Set Component] および [Set Interface] での作業を行います。詳細については、Simulink での AUTOSAR ソフトウェア コンポーネントの作成を参照してください。[Set Interface] ペインでの作業が完了したら、[すべて修正] をクリックします。

  6. Simulink では Component ブロックがモデル swc にリンクされ、モデル実装と一致するようにブロック インターフェイスが更新されます。

  7. モデル コンテンツを表示するには、Component ブロックを開きます。開いている Component モデルで、モデルのマッピングとディクショナリを表示するには、AUTOSAR Component Designer アプリを開きます。

  8. AUTOSAR コンポーネントを実装モデルにリンクした後、Component ブロックを設計に含まれるその他のブロックまたはルート端子に接続できます。

ARXML コンポーネント記述からのモデルの作成

ARXML コンポーネント記述から AUTOSAR 実装モデルを作成し、それを AUTOSAR ソフトウェア コンポーネントにマッピングするには、Software Component ブロック キュー [Create Component Model from ARXML] を使用します。

このキューをクリックすると、指定した ARXML 記述に基づいてモデルが作成され、コンポーネント ブロックがそのモデルにリンクされ、それに合わせてブロックとモデル インターフェイスが更新されます。

  1. アーキテクチャ モデルを作成するか、開きます。モデルを作成するには、Simulink スタート ページを開きます。AUTOSAR Blockset[ソフトウェア アーキテクチャ] テンプレートを開きます。

  2. [モデル化] タブまたはパレットから、Software Component ブロックをモデルに追加して、Controller という名前を付けます。プロパティ インスペクターにコンポーネントの [種類] プロパティとして [アプリケーション] が表示され、このコンポーネントに適しています。

  3. Simulink への AUTOSAR XML 記述のインポートの例に、Controller コンポーネント記述を含む ARXML ファイルが提供されています。ARXML ファイルは、既定の MATLAB 検索パス上にあります。ARXML ファイルを作業フォルダーにコピーする必要がある場合は、次の MATLAB コマンドを入力します。

    copyfile(fullfile(matlabroot,...
        'examples/autosarblockset/data/ThrottlePositionControlComposition.arxml'),'.')
  4. Controller ブロックを選択し、表示される省略記号にカーソルを合わせ、キュー [Create Component Model from ARXML] を選択します。AUTOSAR Importer アプリが開きます。

    インポートとモデル作成の手順に従います。

  5. [Select ARXML] ペインで、1 つ以上のソフトウェア コンポーネント記述を提供する 1 つ以上の AUTOSAR XML ファイルを参照します。この例では、前の手順でコピーしたファイル ThrottlePositionControlComposition.arxml を使用しています。記述をインポートするには、[Next] をクリックします。

  6. [Create Component] ペインで、モデルの作成元となるソフトウェア コンポーネントを選択します。この例では、前の手順でインポートされたコンポーネントのリストから Controller を選択します。

    モデルの作成に関するオプションの設定を表示するには、[Configure Modeling Options] を選択します。

    次のことが可能です。

    • 周期的なランナブルをアトミック サブシステムとしてモデル化するか、Function-Call Subsystem としてモデル化するか、既定のモデリング スタイル選択 ([Auto]) を受け入れるかを選択する。

    • 既存の AUTOSAR ランナブルをコンポーネントの初期化ランナブルとして選択する。この例では、Controller_Init が選択可能です。

    • XML ファイル内の AUTOSAR データ型に対応するデータ オブジェクトのインポート先にする Simulink データ ディクショナリを指定する。指定されたディクショナリがまだ存在しない場合は、インポーターが作成します。その後、そのデータ ディクショナリにモデルが関連付けられます。

    • 変動点を制御する入力として機能する SwSystemconst データを初期化するため、AUTOSAR XML ファイルに定義された AUTOSAR PredefinedVariant を選択する。詳細については、事前定義値の組み合わせを使用した AUTOSAR バリアントの制御を参照してください。この例では、選択可能な PredefinedVariant はありません。

    モデル作成のオプションと動作の詳細については、createComponentAsModel を参照してください。

  7. モデルを作成して AUTOSAR Controller コンポーネントにマッピングするには、[Finish] をクリックします。Simulink では作業フォルダー内にモデル Controller.slx が作成されて、モデルの実装に合わせてブロック インターフェイスが更新されます。

  8. モデル コンテンツを表示するには、Controller ブロックを開きます。開いている Controller モデルについて、モデルのマッピングとディクショナリを表示するには、AUTOSAR Component Designer アプリを開きます。

  9. AUTOSAR 実装モデルを作成し、それに AUTOSAR コンポーネントをリンクした後、Component ブロックを設計に含まれるその他のブロックまたはルート端子に接続します。すべての接続が完了した Controller コンポーネントについては、アーキテクチャ モデルによる AUTOSAR コンポジションおよびコンポーネントの作成の例を参照してください。

参考

|

関連するトピック