Simulink.Bus.createObject
ブロックまたは MATLAB 構造体からの Simulink.Bus
オブジェクトの作成
構文
説明
は、busInfo
= Simulink.Bus.createObject(___,file
,fileFormat
)fileFormat
が "object"
の場合、Simulink.Bus
オブジェクトの定義を配列を使用して保存します。"object"
形式を使用すると、関数が読みやすくなります。fileFormat
の既定の設定は cell 配列を使用する "cell"
であり、こちらの方がコンパクトになります。
は、busInfo
= Simulink.Bus.createObject(S
,file
,fileFormat
,scope
)scope
で指定されるデータ ディクショナリ内に Simulink.Bus
オブジェクトを作成します。
例
Bus Creator ブロックからの Simulink.Bus
オブジェクトの作成
複数レベルの階層をもつバスを作成する Bus Creator ブロックから Simulink.Bus
オブジェクトを作成します。
BusHierarchy
という名前のモデル例を開きます。
mdl = "BusHierarchy";
open_system(mdl)
Bus Creator1
という名前の Bus Creator ブロックから Simulink.Bus
オブジェクトを作成します。このブロックは、ソース ブロックおよび別の Bus Creator ブロックから入力を受け取ります。
block = "BusHierarchy/Bus Creator1";
busInfo = Simulink.Bus.createObject(mdl,block);
このコマンドにより、TopBus
および NestedBus
という名前の Simulink.Bus
オブジェクトがベース ワークスペース内に作成されます。それぞれのバス オブジェクトがバス階層内のバスを表します。
Simulink.Bus
オブジェクトを表示するには、型エディターを開きます。
typeeditor
バス要素端子からの Simulink.Bus
オブジェクトの作成
Out Bus Element ブロックで表されるバス要素端子から Simulink.Bus
オブジェクトを作成します。
BusOutput
という名前のモデル例を開きます。
mdl = "BusOutput";
open_system(mdl)
出力バスに複数レベルの階層があります。最上位のバスに入れ子にされたバスが含まれています。
OutBus
という名前の出力端子のバス階層を定義する Simulink.Bus
オブジェクトを作成します。
port = "BusOutput/OutBus";
busInfo = Simulink.Bus.createObject(mdl,port);
オブジェクトを表示するには、型エディターを開きます。
typeeditor
Simulink.Bus
オブジェクトの作成と関数への保存
Bus Creator ブロックから Simulink.Bus
オブジェクトを作成し、その Simulink.Bus
オブジェクトの定義を関数内に保存します。
BusHierarchy
という名前のモデル例を開きます。
mdl = "BusHierarchy";
open_system(mdl);
Bus Creator1
という名前の Bus Creator ブロックから Simulink.Bus
オブジェクトを作成します。このブロックは、ソース ブロックおよび別の Bus Creator ブロックから入力を受け取ります。Simulink.Bus
オブジェクトの定義を関数内に保存するには、ファイル名も指定します。
block = "BusHierarchy/Bus Creator1"; file = "BusObjectFunction"; busInfo = Simulink.Bus.createObject(mdl,block,file);
これらのコマンドにより、TopBus
および NestedBus
という名前の Simulink.Bus
オブジェクトがベース ワークスペース内に作成され、BusObjectFunction
という名前のファイルが現在のフォルダー内に作成されます。
ファイルの内容を調べるには、ファイルを開きます。既定では、"cell"
形式がファイルで使用されます。たとえば、cell 配列で Chirp
要素が定義されています。
{'Chirp', 1, 'double', 'real', 'Sample', 'Fixed', [], [], '', ''};
読みやすさを考慮して書式設定されたファイルにするには、ファイルの形式を "object"
として指定します。
file1 = "BusObjectFunctionFormatted"; busInfo1 = Simulink.Bus.createObject(mdl,block,file1,"object");
ファイルの内容を調べるには、ファイルを開きます。"object"
形式では、ドット表記を使用してプロパティ値を割り当てる配列によって Chirp
要素が定義されています。
elems(1) = Simulink.BusElement; elems(1).Name = 'Chirp'; elems(1).Dimensions = 1; elems(1).DimensionsMode = 'Fixed'; elems(1).DataType = 'double'; elems(1).Complexity = 'real'; elems(1).Min = []; elems(1).Max = []; elems(1).DocUnits = ''; elems(1).Description = '';
MATLAB 構造体からの Simulink.Bus
オブジェクトの作成
Constant ブロックで非バーチャル バスを作成する場合は、[定数値] に MATLAB 構造体を指定し、[出力データ型] として Simulink.Bus
オブジェクトを指定する必要があります。
この例では、他の構造体を含む構造体を作成します。
bus_struct.A.A1 = 0; bus_struct.A.A2 = [0 + 0i;0 + 0i;0 + 0i;0 + 0i;0 + 0i]; bus_struct.B = 5; bus_struct.C.C1 = 0; bus_struct.C.C2.A1 = 0; bus_struct.C.C2.A2 = [0 + 0i;0 + 0i;0 + 0i;0 + 0i;0 + 0i];
構造体に対応する Simulink.Bus
オブジェクトを作成します。
busInfo = Simulink.Bus.createObject(bus_struct);
この関数により 4 つの Simulink.Bus
オブジェクトが作成されます。slBus1
という名前のオブジェクトは最上位の構造体に対応し、既定の名前を使用したものです。A
、C
、および C2
という名前のオブジェクトは、入れ子にされた構造体に対応します。
オブジェクトを表示するには、型エディターを開きます。
typeeditor
入力引数
mdl
— モデル名またはハンドル
文字ベクトル | string スカラー
モデルの名前またはハンドル。文字ベクトルまたは string スカラーとして指定します。
指定するモデルは正常にコンパイルされている必要があります。
busSource
— バス定義のソース
文字ベクトル | string スカラー | ブロック パスの cell 配列 | ブロック名のベクトル
バス定義のソース。文字ベクトル、string スカラー、ブロック パスの cell 配列、またはブロック ハンドルのベクトルとして指定します。
この関数は、次のソースのバスから Simulink.Bus
オブジェクトを作成できます。
Bus Creator ブロック
In Bus Element ブロックで表される入力端子
Out Bus Element ブロックで表される出力端子
サブシステム Inport ブロック
サブシステム Outport ブロック
バスに階層がある場合、関数はバス階層内の入れ子にされたバスについて Simulink.Bus
オブジェクトを作成します。
Bus Creator ブロック、Inport ブロック、または Outport ブロックのバスを指定するには、対応するブロックのパスまたはハンドルを使用します。
例: Simulink.Bus.createObject(mdl,"BusHierarchy/Bus Creator")
では、ブロック パスで 1 つのバス ソースを指定しています。
例: Simulink.Bus.createObject(mdl,{'BusHierarchy/Bus Creator','BusHierarchy/Bus Creator1'})
では、ブロック パスの cell 配列で複数のバス ソースを指定しています。
例: Simulink.Bus.createObject(mdl,[bc bc1])
では、ブロック ハンドルのベクトルで複数のバス ソースを指定しています。
In Bus Element ブロックまたは Out Bus Element ブロックで表される端子のバスを指定するには、端子または要素のパスを使用します。端子の場合、パスはモデル名と端子名で構成されます。端子の要素の場合は、モデル名、端子名、および 1 つ以上の要素名でパスが構成されます。
例: Simulink.Bus.createObject(mdl,"BusOutput/OutBus")
では、ルートレベルのバス要素端子の最上位のバスを指定しています。
例: Simulink.Bus.createObject(mdl,"BusOutput/OutBus.NestedBus")
では、ルートレベルのバス要素端子の入れ子にされたバスを指定しています。
S
— オブジェクトの構造体または数値構造体
MATLAB timeseries
、MATLAB timetable
、および matlab.io.datastore.SimulationDatastore
オブジェクトの構造体 | 数値構造体
オブジェクトの構造体または数値構造体。MATLAB timeseries
、MATLAB timetable
、および matlab.io.datastore.SimulationDatastore
のいずれかのオブジェクトを含む構造体、または数値構造体として指定します。
階層をもつ構造体を指定すると、この関数は階層内の各構造体について Simulink.Bus
オブジェクトを作成します。
file
— 生成されている関数の名前
文字ベクトル | string スカラー
生成される関数の名前。文字ベクトルまたは string スカラーとして指定します。ファイル名は一意でなければなりません。
fileFormat
— 生成されている関数の形式
"cell"
(既定値) | "object"
生成される関数の形式。"cell"
または "object"
のいずれかとして指定します。"cell"
形式の方がコンパクトですが、"object"
形式の方が読みやすくなります。
"cell"
形式では、Simulink.Bus
オブジェクトを cell 配列の cell 配列で定義し、Simulink.Bus.cellToObject
を呼び出してオブジェクトを作成します。後続のそれぞれの cell 配列は Simulink.Bus
オブジェクトを表しており、次のプロパティを含んでいます。
バス名
ヘッダー ファイル
説明
データ スコープ
配置
要素の次元を保持
要素
要素フィールドは、Simulink.Bus
オブジェクトが参照するそれぞれの Simulink.BusElement
オブジェクトについてのこの情報を含む cell 配列です。
要素名
次元
データ型 — このフィールドで
Simulink.Bus
オブジェクトが指定されている場合、仕様に接頭辞Bus:
は含まれません。この接頭辞は、Simulink.BusElement
オブジェクトのデータ型をSimulink.Bus
オブジェクトに設定する場合はオプションです。サンプル時間 — サンプル時間が継承されていないと、cell 配列にこのフィールドが含まれます。サンプル時間が継承されていないと、モデルのコンパイル中にエラーが発生します。詳細については、Simulink.BusElement オブジェクトで SampleTime プロパティはサポートされなくなるを参照してください。
実数/複素数
サンプリング モード
次元モード
最小値
最大値
単位
説明
"object"
形式では、Simulink.Bus
オブジェクトを配列で定義します。関数は、配列インデックス付けを使用して配列の要素にアクセスし、ドット表記を使用してプロパティ値を割り当てます。
scope
— オブジェクトを含めるデータ ディクショナリ
Simulink.data.Dictionary
オブジェクト
データ ディクショナリ。Simulink.data.Dictionary
オブジェクトとして指定します。この引数を使用する前に、関数 Simulink.data.dictionary.create
や関数 Simulink.data.dictionary.open
を使用してディクショナリを Simulink.data.Dictionary
オブジェクトで表しておきます。
scope
が空の場合、関数は Simulink.Bus
オブジェクトのソースとして MATLAB ベース ワークスペースを使用します。
出力引数
busInfo
— バス オブジェクト情報
構造体配列
バス オブジェクト情報。構造体配列として返されます。
バス ソースとしてブロックを指定する場合、busInfo
構造体配列の各要素が 1 つのブロックに対応し、次のフィールドが含まれます。
block
— ブロックのハンドルbusName
— ブロックに関連付けられているSimulink.Bus
オブジェクトの名前
構造体またはバス要素端子のバスを指定する場合、busInfo
構造体には次のフィールドが含まれます。
block
— 空行列 ([]
)busName
— 構造体またはバスに対応するSimulink.Bus
オブジェクトの名前
バージョン履歴
R2006a より前に導入R2024a: バス要素端子からのオブジェクトの作成
バス要素端子のバスから Simulink.Bus
オブジェクトを作成します。詳細については、busSource
を参照してください。
R2020b: Simulink.BusElement
オブジェクトで SampleTime
プロパティはサポートされなくなる
Simulink.BusElement
オブジェクトの SampleTime
プロパティはサポートされなくなりました。
サンプル時間を指定する BusElement
オブジェクトが原因でコンパイル中にエラーが発生します。サンプル時間の指定を BusElement
オブジェクトから削除するには、SampleTime
を -1
に設定します。
Simulink.Bus.cellToObject
は、バス要素のサンプル時間を指定する cell 配列を引き続き受け入れます。Simulink.Bus.objectToCell
、Simulink.Bus.save
、および Simulink.Bus.createObject
は、サンプル時間が継承されない場合に、サンプル時間を含む cell 配列または配列を引き続き返します。サンプル時間が継承される場合 (-1
)、そのサンプル時間は省略されます。同様に、型エディターとモデル エクスプローラーは、継承時にサンプル時間を省略します。
バスの要素のサンプル時間を指定するには、対応するブロックの SampleTime
ブロック パラメーターを使用する。たとえば、In Bus Element、Out Bus Element、および Signal Specification ブロックを使用してサンプル時間を指定できます。
R2016b: Simulink.BusElement
オブジェクトで SamplingMode
プロパティはサポートされなくなりました。
Simulink.BusElement
オブジェクトの SamplingMode
プロパティは削除されました。Simulink.BusElement
オブジェクトの SamplingMode
プロパティを使用するスクリプトは引き続き機能します。関数 Simulink.Bus.cellToObject
は SamplingMode
フィールドを引き続き必要とします。関数 Simulink.Bus.objectToCell
では引き続き出力 cell 配列にサンプリング モードが含まれます。cell 配列を使用する関数に Simulink.Bus
オブジェクトの定義を保存すると、引き続き cell 配列にサンプリング モードが含まれます。
将来のリリースでは、SamplingMode
プロパティのサポートは削除される予定です。
信号がサンプルベースとフレームベースのどちらかであるか指定するには、信号レベルではなく、ブロック レベルで入力信号のサンプリング モードを定義してください。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)