ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Simulink.Bus.createObject

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

構文

busInfo = Simulink.Bus.createObject(modelName, blks)
busInfo = Simulink.Bus.createObject(modelName,blks,fileName)
busInfo = Simulink.Bus.createObject(modelName,blks,fileName,format)
busInfo = Simulink.Bus.createObject(structTimeseries,fileName,format)
busInfo = Simulink.Bus.createObject(structNumeric,fileName,format)

説明

busInfo = Simulink.Bus.createObject(modelName, blks) は、指定されたブロックに対してバス オブジェクト (MATLAB® ベース ワークスペース内の Simulink.Bus クラスのインスタンス) を作成し、作成したオブジェクトの情報を返します。

busInfo = Simulink.Bus.createObject(modelName,blks,fileName) は、バス オブジェクトをセル配列のセル配列を含む MATLAB ファイルに保存します。下位の配列はそれぞれバス オブジェクトを表し、次のデータを含みます。

{BusName, HeaderFile, Description, DataScope, Alignment, Elements}

Elements フィールドは、各要素について以下のデータを含む配列です。

{ElementName, Dimensions, DataType, 
SampleTime, Complexity, SamplingMode, DimensionsMode, Min, Max,DocUnits, Description}

busInfo = Simulink.Bus.createObject(modelName,blks,fileName,format) は、バス オブジェクトをバス情報の入ったセル配列またはバス オブジェクト自体の入ったセル配列をもつファイルに保存します。

busInfo = Simulink.Bus.createObject(structTimeseries,fileName,format) は、時系列オブジェクトの MATLAB 構造体から MATLAB ワークスペースにバス オブジェクトを作成し、オプションとして指定されたファイルにバス オブジェクトを保存します。

busInfo = Simulink.Bus.createObject(structNumeric,fileName,format) は、数値の MATLAB 構造体から MATLAB ワークスペースにバス オブジェクトを作成し、オプションとして指定されたファイルにバス オブジェクトを保存します。

ヒント

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

入力引数

modelName

モデルの名前またはハンドル

blks

指定されたモデル内にあるサブシステム レベルの Inport ブロック、ルート レベルまたはサブシステム レベルの Outport ブロック、または Bus Creator ブロックのリスト。1 つのブロックのみ指定する場合、引数はブロックの絶対パスで指定します。そうでない場合は、ブロックのパス名を含むセル配列か、ブロック ハンドルのベクトルのいずれかになります。

fileName

この関数によって作成されるバス オブジェクトを保存するファイルの名前。ファイル名は一意でなければなりません。この引数を省略すると、関数は作成されたバス オブジェクトをファイルではなく、セル配列に保存します。

format

バス オブジェクトの保存に使用される形式。値は 'cell' または 'object' です。オブジェクトをコンパクトな形式で保存するには、セル配列を使用します。

既定値: 'cell'

structTimeseries

バス オブジェクトの作成に使用される MATLAB 時系列構造体変数

structNumeric

バス オブジェクトの作成に使用される数値構造体変数

出力引数

busInfo

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

blockブロックのハンドル
busNameブロックに関連付けられているバス オブジェクトの名前

Bus Creator ブロックを使用したバス オブジェクトの作成

Bus Creator2 という名前の Bus Creator ブロックからバス オブジェクトを作成します。

open_system('busdemo')
bus2Info = Simulink.Bus.createObject...
('busdemo', 'busdemo/Bus Creator2')
close_system('busdemo')

ブロックを指定するブロック ハンドルを使って、2 つの Bus Creator ブロックからバス オブジェクトを作成します。Simulink® エディターで、Bus Creator2 ブロック、Bus Creator ブロックの順に選択し、ブロック ハンドルを変数に割り当てます。ベクトル内でこれらの変数を使用して、バス オブジェクトの作成に使用するブロックを指定します。この例では、出力 (busdemo_busobject) を保存するためのファイルを指定する方法も示しています。

clear;
open_system('busdemo')
% Select the Bus Creator2 block
bc2 = gcbh;
% Select the Bus Creator block
bc1 = gcbh;
bus3Info = Simulink.Bus.createObject...
('busdemo', [bc2 bc1], 'busdemo_busobject')
 close_system('busdemo')

時系列オブジェクトの構造体を使用したバス オブジェクトの作成

COUNTERBUS バス信号のログ データから得られる時系列オブジェクトの MATLAB 構造体からバス オブジェクトを作成します。

model = 'sldemo_mdlref_bus';
open_system(model);
sim(model);
topOut
topOut = 

  Simulink.SimulationData.Dataset
  Package: Simulink.SimulationData

  Characteristics:
              Name: 'topOut'
    Total Elements: 3

  Elements:
    1: 'COUNTERBUS'
    2: 'OUTERDATA'
    3: 'INCREMENTBUS'

  -Use get or getElement to access elements by index or name.
  -Use addElement or setElement to add or modify elements.

  Methods, Superclasses
bus4Info = Simulink.Bus.createObject(topOut.get('COUNTERBUS').Values);
close_system(model);

モデルに依存せず、MATLAB 構造体からバス オブジェクトを作成します。

X = struct('a',1,'b',2)
bus3Info = Simulink.Bus.createObject(X)
この情報は役に立ちましたか?