Main Content

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

Simulink.Bus.createObject

ブロックまたは MATLAB 構造体からの Simulink.Bus オブジェクトの作成

説明

busInfo = Simulink.Bus.createObject(model,blocks) は、指定されたブロックの Simulink.Bus オブジェクトを作成し、作成された Bus オブジェクトについての情報を返します。これらの Bus オブジェクトはベース ワークスペースで、または使用できる場合はモデルで使用されるデータ ディクショナリで作成されます。

busInfo = Simulink.Bus.createObject(struct) は、MATLAB® timeseries、MATLAB timetable、および matlab.io.datastore.SimulationDatastore オブジェクトを含むことができる構造体または数値構造体から Bus オブジェクトを作成します。これらの Bus オブジェクトはベース ワークスペースで、または使用できる場合はモデルで使用されるデータ ディクショナリで作成されます。

busInfo = Simulink.Bus.createObject(___,file) は、オブジェクトのプロパティを定義する関数内の Bus オブジェクトを cell 配列の cell 配列に保存し、その後 Simulink.Bus.cellToObject を呼び出して Bus オブジェクトを作成します。

busInfo = Simulink.Bus.createObject(___,file,format) は、Bus オブジェクトを指定された形式で関数内に保存します。関数では、cell 配列または配列を使用してオブジェクトのプロパティを定義できます。

busInfo = Simulink.Bus.createObject(___,file,format,scope) は、scope で指定されるデータ ディクショナリ内で Bus オブジェクトを作成します。

すべて折りたたむ

サンプル モデルを開きます。

open_system('BusObjectCreationModel')

Bus Creator ブロックによって作成されたバスに対応する Bus オブジェクトを作成します。

busInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    'BusObjectCreationModel/Bus Creator');

2 つの Bus Creator ブロックから Bus オブジェクトを作成し、その Bus オブジェクト定義を関数内に保存します。

サンプル モデルを開きます。

open_system('BusObjectCreationModel');

Bus Creator ブロックのブロック ハンドルを、関数 getSimulinkBlockHandle を使用して変数に代入します。

bc = getSimulinkBlockHandle('BusObjectCreationModel/Bus Creator');

あるいは、モデルで Bus Creator ブロックを選択し、関数gcbhを使用してそのブロック ハンドルを取得できます。

Bus Creator1 ブロックのブロック ハンドルを変数に代入します。

bc1 = getSimulinkBlockHandle('BusObjectCreationModel/Bus Creator1');

Bus オブジェクトを作成するには、ベクトル内でブロック ハンドル変数を指定します。Bus オブジェクト定義を保存するには、ファイル名も指定します。

busInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    [bc bc1], 'BusObjectFunction');

これらの Bus Creator ブロックはバス階層を作成するため、Bus Creator1 のみを指定すると、Bus オブジェクトがワークスペース内と関数内の両方に作成されます。

BusObjectFunction を、このコマンドにより作成された関数と比較します。

topBusInfo = Simulink.Bus.createObject('BusObjectCreationModel',...
    bc1, 'BusObjectFunctionFromHierarchy');

読みやすさを考慮して書式設定された関数では、関数の形式を object として指定します。

topBusInfo1 = Simulink.Bus.createObject('BusObjectCreationModel',...
    bc1, 'BusObjectFunctionFormatted','object');

入力引数

すべて折りたたむ

モデルの名前またはハンドル。文字ベクトルとして指定します。

バスに関連付けられたブロック。文字ベクトル、ブロックのパス名の cell 配列、またはブロック ハンドルのベクトルとして指定します。ブロックが 1 つの場合は、ブロックの絶対パス名を指定します。ブロックが複数ある場合は、ブロックのパス名の cell 配列またはブロック ハンドルのベクトルのいずれかを指定します。

関数は、次のブロックから Bus オブジェクトを作成できます。

  • Bus Creator ブロック

  • サブシステム Inport ブロック

  • サブシステム Outport ブロック

バスの階層構造に関連付けられたブロックを指定する場合、関数は階層内の入れ子にされたすべてのバスについても Bus オブジェクトを作成します。

オブジェクトの構造体または数値構造体。MATLAB timeseries、MATLAB timetable、および matlab.io.datastore.SimulationDatastore オブジェクト、または数値構造体を含むことができる構造体として指定します。

生成されている関数の名前。文字ベクトルとして指定します。ファイル名は一意でなければなりません。

生成されている関数の形式。'cell' または 'object' のいずれかとして指定します。'cell' 形式の方がコンパクトですが、'object' 形式の方が読みやすくなります。

'cell' 形式では、Bus オブジェクト定義を cell 配列の cell 配列に保存し、Simulink.Bus.cellToObject を呼び出して Bus オブジェクトを作成します。後続のそれぞれの cell 配列は Bus オブジェクトを表しており、次のプロパティを含んでいます。

  1. バス名

  2. ヘッダー ファイル

  3. 説明

  4. データ スコープ

  5. 配置

  6. 要素

要素フィールドは、Bus オブジェクトが参照するそれぞれの Simulink.BusElement オブジェクトについてのこの情報を含む cell 配列です。

  1. 要素名

  2. 次元

  3. データ型

  4. サンプル時間 — サンプル時間が継承されていないと、cell 配列にこのフィールドが含まれます。サンプル時間が継承されていないと、モデルのコンパイル中にエラーが発生します。詳細については、Simulink.BusElement オブジェクトで SampleTime プロパティはサポートされなくなるを参照してください。

  5. 実数/複素数

  6. 次元モード

  7. 最小値

  8. 最大値

  9. 単位

  10. 説明

'object' 形式では、Bus オブジェクト定義は配列として保存されます。関数は、配列インデックス付けを使用して配列の要素にアクセスし、ドット表記を使用してプロパティ値を割り当てます。詳細については、配列インデックス付けおよびプロパティ値へのアクセスを参照してください。

データ ディクショナリ。Simulink.data.Dictionary オブジェクトとして指定します。この引数を使用する前に、関数 Simulink.data.dictionary.create や関数 Simulink.data.dictionary.open を使用してディクショナリを Simulink.data.Dictionary オブジェクトで表しておきます。

scope が空の場合、関数は Bus オブジェクトのソースとして MATLAB ベース ワークスペースを使用します。

出力引数

すべて折りたたむ

指定されたブロックのバス情報。構造体配列として返されます。構造体配列の各要素は 1 つのブロックに対応し、次のフィールドがあります。

  • block — ブロックのハンドル

  • busName — ブロックに関連付けられている Bus オブジェクトの名前

ヒント

モデル名を指定する場合、Simulink.Bus.createObject コマンドを使用する前に、モデルは正常にコンパイルされていなければなりません。

互換性についての考慮事項

すべて展開する

R2020b 以降はエラー

R2006a より前に導入