メインコンテンツ

createCompositionAsModel

AUTOSAR ARXML ソフトウェア コンポジションの Simulink 表現の作成

説明

[model,status] = createCompositionAsModel(ar,CompositionName) は、AUTOSAR アトミック ソフトウェア コンポジション CompositionName に対応する Simulink® モデルを作成し、モデルのハンドル (model で表される) とアクションが成功したかどうかを示すステータス (status で表される) を返します。

コンポジションの記述は以前に AUTOSAR XML (ARXML) ファイルからインポートした AUTOSAR 情報の一部です。これは arxml.importer オブジェクト ar で表されます。インポーターは、インポートされた AUTOSAR コンポジションの初期の Simulink 表現を作成します。この初期表現が、AUTOSAR 構成やモデルベース デザインの開始点となります。詳細については、AUTOSAR ARXML インポーターを参照してください。

[model,status] = createCompositionAsModel(ar,CompositionName,Name=Value) は、Simulink モデルの作成に、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、AUTOSAR の周期的なランナブルを、周期的レートをもつアトミック サブシステムとしてモデル化するようにインポーターに指示するには、ModelPeriodicRunnablesAs"AtomicSubsystem" に設定します。

すべて折りたたむ

AUTOSAR ソフトウェア コンポジション /Company/Components/ThrottlePositionControlComposition を ARXML ファイル ThrottlePositionControlComposition.arxml からインポートし、コンポジションの初期の Simulink 表現を作成します。

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

AUTOSAR ソフトウェア コンポジション /pkg/rootComposition を ARXML ファイル mySWCs.arxml からインポートし、コンポジションの初期の Simulink 表現を作成します。コンポジション内に含まれるコンポーネント mySwc1mySwc2 の場合、新しく作成するのではなく、既存の Simulink コンポーネント モデルを使用します。

ar = arxml.importer("mySWCs.arxml")
createCompositionAsModel(ar,"/pkg/rootComposition",ComponentModels={"mySwc1","mySwc2"})

AUTOSAR ソフトウェア コンポジション /pkg/rootComposition を ARXML ファイル mySWCs.arxml からインポートし、コンポジションの初期の Simulink 表現を作成します。AUTOSAR データ型に対応する Simulink データ オブジェクトをデータ ディクショナリ ardata.sldd にインポートします。

ar = arxml.importer("mySWCs.arxml")
createCompositionAsModel(ar,"/pkg/rootComposition",DataDictionary="ardata.sldd")

AUTOSAR ソフトウェア コンポジション /Company/Components/ThrottlePositionControlComposition を ARXML ファイル ThrottlePositionControlComposition.arxml からインポートし、コンポジションの初期の Simulink 表現を作成します。

インポートされた各コンポーネントに対して、インポーターはインターフェイス、データ型などの共有可能な AUTOSAR コンポーネント プロパティをデータ ディクショナリ ardata.sldd に格納します。その後、コンポジション内のコンポーネントは格納されたプロパティを共有できます。

openExample("ThrottlePositionControlComposition.arxml");
ar = arxml.importer("ThrottlePositionControlComposition.arxml")
createCompositionAsModel(ar,"/Company/Components/ThrottlePositionControlComposition",...
    ModelPeriodicRunnablesAs="Auto",...
    DataDictionary="ardata.sldd",ShareAUTOSARProperties=true);

共有プロパティを表示するには、コンポーネント モデルの AUTOSAR ディクショナリを開きます。この例では、ThrottlePositionSensor を開きます。AUTOSAR ディクショナリ ノード ardata.sldd を展開します。共有されたコンポーネント インターフェイスなどの読み取り専用プロパティを表示したり、コンポジションおよびコンポーネントのエクスポートに関する XML オプションを変更したりできます。

autosar_ui_launch("ThrottlePositionSensor")

AUTOSAR Dictionary dialog box. The ardata.sldd node is expanded.

AUTOSAR ソフトウェア コンポジション /pkg/rootComposition を ARXML ファイル mySWCs.arxml からインポートし、コンポジションの初期の Simulink 表現を作成します。AUTOSAR の周期的なランナブルを周期的レートをもつ Function-Call Subsystem としてモデル化します。

ar = arxml.importer("mySWCs.arxml")
createCompositionAsModel(ar,"/pkg/rootComposition",...
  ModelPeriodicRunnablesAs="FunctionCallSubsystem")

AUTOSAR ソフトウェア コンポジション /pkg/rootComposition を ARXML ファイル mySWCs.arxml からインポートし、コンポジションの初期の Simulink 表現を作成します。事前定義されたバリアント Senior を使用してモデル作成時にコンポーネント内の変動点を解決します。

ar = arxml.importer("mySWCs.arxml")
createCompositionAsModel(ar,"/pkg/rootComposition",...
  PredefinedVariant="/pkg/body/Variants/Senior");

AUTOSAR ソフトウェア コンポジション /pkg/rootComposition を ARXML ファイル mySWCs.arxml からインポートし、コンポジションの初期の Simulink 表現を作成します。システム定数値 AB を使用してモデル作成時にコンポーネント内の変動点を解決します。

ar = arxml.importer("mySWCs.arxml")
createCompositionAsModel(ar,"/pkg/rootComposition",...
  SystemConstValueSets={'/pkg/body/SystemConstantValues/A','/pkg/body/SystemConstantValues/B'});

入力引数

すべて折りたたむ

ARXML ファイルから以前にインポートした AUTOSAR 情報。arxml.importer オブジェクト ハンドルとして指定します。

ソフトウェア コンポジションの短縮名の絶対パス。文字ベクトルまたは string スカラーとして指定します。

例: "/Company/Powertrain/Components/RootComposition"

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: createCompositionAsModel(ar,"/pkg/rootComposition",ModelPeriodicRunnablesAs="AtomicSusbsytem")

コンポジションの Simulink 表現を作成する際に使用する既存のアトミック ソフトウェア コンポーネント モデルの名前。文字ベクトルの cell 配列または string 配列として指定します。この関数では、新しく作成する代わりに、指定した既存のコンポーネント モデルがコンポジション モデルに組み込まれます。

例: ComponentModels={"mySwc1","mySwc2"}

ARXML ファイル内の AUTOSAR データ型に対応するデータ オブジェクトのインポート先にする Simulink データ ディクショナリ。文字ベクトルまたは string スカラーとして指定します。指定されたディクショナリが存在しない場合は、インポーターが作成します。その後、そのデータ ディクショナリにモデルがリンクされます。

名前と値の引数 ShareAUTOSARPropertiestrue を指定した場合、指定されたデータ ディクショナリにインターフェイス、データ型などの共有可能な AUTOSAR コンポーネント プロパティも格納され、コンポジションのコンポーネント間で共有されます。

例: DataDictionary="ardata.sldd"

周期的なランナブルのサブシステムのタイプ。"AtomicSubsystem""FunctionCallSubsystem"、または "Auto" として指定します。

既定では、createCompositionAsModel は ARXML ファイル内で検出した AUTOSAR の周期的なランナブルをインポートし、周期的レートをもつアトミック サブシステムとしてモデル化します。アトミック サブシステムが使用できない状況の場合、この関数によって周期的なランナブルは周期的レートをもつ Function-Call Subsystem としてモデル化されます。

周期的なランナブルをアトミック サブシステムとしてのみモデル化するには、"AtomicSubsystem" を指定します。アトミック サブシステムが使用できない状況の場合、関数はエラーをスローします。

周期的なランナブルを Function-Call Subsystem としてのみモデル化するには、"FunctionCallSubsystem" を指定します。

詳細については、複数のランナブルをもつ AUTOSAR ソフトウェア コンポーネントのインポートを参照してください。

例: ModelPeriodicRunnablesAs="AtomicSubsystem"

ARXML ファイル内の事前定義されたバリアントへのパス。事前定義されたバリアントは、複数の有効な可能性のある組み合わせの中で、AUTOSAR ソフトウェア コンポーネントに適用するシステム定数値の組み合わせを記述します。この引数を使用して、モデルの作成時に AUTOSAR ソフトウェア コンポーネント内の変動点を解決します。指定した場合、インポーターは事前定義されたバリアントを使用して、変動点を制御する入力として機能するソフトウェア システム定数データを初期化します。

詳細については、事前定義値の組み合わせを使用した AUTOSAR バリアントの制御を参照してください。

例: PredefinedVariant="/pkg/body/Variants/Senior"

AUTOSAR コンポーネント プロパティを共有データ ディクショナリに追加するオプション。数値または logical の 1 (true) または 0 (false) として指定します。AUTOSAR コンポーネントのプロパティを共有するには、ShareAUTOSARPropertiestrue に指定し、名前と値の引数 DataDictionary を使用して Simulink データ ディクショナリを指定します。インポートされた各コンポーネントに対して、関数はインターフェイス、データ型などの共有可能な AUTOSAR コンポーネント プロパティを、名前と値の引数 DataDictionary を使用して指定された Simulink データ ディクショナリに格納します。

Simulink データ ディクショナリに格納された AUTOSAR コンポーネント プロパティを共有すると、AUTOSAR コンポジションのモデル化において一般的なタスクのパフォーマンスを改善できます。コンポーネント プロパティがデータ ディクショナリに格納されると、コンポジション内のコンポーネントはその格納されたプロパティを共有できます。20 個を超えるソフトウェア コンポーネントを含むコンポジションの場合、コンポーネント間で AUTOSAR プロパティを共有することで、インポート、ディクショナリ ナビゲーション、AUTOSAR 検証、コード生成といったコンポジション ワークフローのパフォーマンスを大幅に改善できます。コンポーネント間でのプロパティの複製を制限することで、コンポーネント モデルのファイル サイズも削減できます。

AUTOSAR ディクショナリは、AUTOSAR コンポジションとコンポーネントのプロパティを一元的に表示および構成するための場所を提供します。共有されたコンポーネント インターフェイスなどの読み取り専用プロパティを表示したり、コンポジションおよびコンポーネントのエクスポートに関する XML オプションを変更したりできます。

詳細については、AUTOSAR コンポジションのインポートと AUTOSAR ディクショナリの共有を参照してください。

例: ShareAUTOSARProperties=true

ARXML ファイルで定義された 1 つ以上のシステム定数値セットへのパス。文字ベクトルの cell 配列または string 配列として指定します。システム定数値セットは、AUTOSAR ソフトウェア コンポーネントに適用する一連のシステム定数値を指定します。この引数を使用して、モデルの作成時に AUTOSAR ソフトウェア コンポーネント内の変動点を解決します。指定した場合、インポーターはシステム定数値セットを使用して、変動点を制御する入力として機能するソフトウェア システム定数データを初期化します。

詳細については、事前定義値の組み合わせを使用した AUTOSAR バリアントの制御を参照してください。

例: SystemConstValueSets={'/pkg/body/SystemConstantValues/A','/pkg/body/SystemConstantValues/B'}

クライアント/サーバー ポートを Simulink 関数端子としてインポートするオプション。数値または logical の 1 (true) または 0 (false) として指定します。

  • true — 端子スコープ内の Simulink 関数と関数呼び出し元を使用します。

  • false — グローバルの Simulink 関数と関数呼び出し元を使用します。

例: UseFunctionPorts=true

データ型: logical

AUTOSAR データ型を Simulink.ValueType データ型オブジェクトとしてインポートするオプション。数値または logical の 1 (true) または 0 (false) として指定します。

例: UseValueTypes=true

データ型: logical

出力引数

すべて折りたたむ

指定された AUTOSAR ソフトウェア コンポジション CompositionName に対応するモデルのハンドル。

インポートの成功または失敗のステータス。次の値のいずれかとして返されます。

  • true — インポートが正常に完了しました。

  • false — インポートが正常に完了しませんでした。

ヒント

arxml.importer オブジェクト関数を呼び出す入力の最後にセミコロンを付けない場合、インポーターは指定された ARXML ファイルの AUTOSAR の内容をリストします。この情報には、AUTOSAR パッケージ構造のソフトウェア コンポーネントへのパスが含まれます。これは、importFromARXML および createComponentAsModel への呼び出しで指定できます。

バージョン履歴

R2017b で導入

すべて展開する