Main Content

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

MATLAB Function ブロックへのバス信号の付加

MATLAB Function ブロック内での構造体

この例では、MATLAB Function ブロックで構造体を使用して、Simulink® バス信号を読み書きする方法を示します。

このモデルでは、MATLAB Function ブロックがバス信号を構造体 inbus を使って入力端子 1 で受け取ります。ブロックは、出力端子 1 の構造体 outbus と、出力端子 2 の構造体 outbus1 の 2 つのバス信号を出力します。入力信号は、Bus Creator ブロック MainBusCreator からのもので、そこで信号 ele1ele2 および ele3 が 1 つにまとめられています。信号 ele3 は別の Bus Creator ブロック SubBusCreator の出力で、信号 a1 および a2 が 1 つにまとめられています。構造体 outbus および outbus1 は、Bus Selector ブロックに接続し、その後 Display ブロックに接続します。

MATLAB 関数 fcn を確認するには、MATLAB Function ブロックをダブルクリックします。コードは、関数 struct を使ってローカル構造体変数 mystruct を暗黙的に定義し、このローカル構造体変数を使って最初の出力 outbus の値を初期化することに注意してください。2 番目の出力 outbus1 はそれによって構造体 inbusele3 フィールドの値に初期化されます。

例の中の構造体の定義

[端子とデータの管理] で見ると、例の中の MATLAB Function ブロックには次のような構造体の定義があります。

バス オブジェクトが定義する構造体の入力と出力

構造体の各入力と出力は、ベース ワークスペース内の Simulink.Bus オブジェクトによって定義されなければなりません (MATLAB Function ブロック内での構造体の作成を参照)。これは、構造体がバス オブジェクトと同じプロパティ (フィールドの数、名前、データ型、シーケンスなど) を共有することを意味します。この例では、次のバス オブジェクトが構造体の入力と出力を定義します。

Simulink.Bus オブジェクト MainBus が構造体の入力 inbus と構造体の出力 outbus を定義します。Simulink.Bus オブジェクト SubBus が構造体の出力 outbus1 を定義します。これらの定義に基づいて、inbusoutbusMainBus と同じプロパティをもち、ドット表記を使って MainBus 内のフィールドと同じ名前でフィールドを参照します (サブ構造体とフィールドのインデックス付けを参照)。同様に、outbus1 はそのフィールドを SubBus のフィールドと同じ名前で参照します。この例の各構造体のフィールド参照を下に示します。

構造体最初のフィールド2 番目のフィールド3 番目のフィールド
inbusinbus.ele1inbus.ele2inbus.ele3
outbusoutbus.ele1outbus.ele2outbus.ele3
outbus1outbus1.a1outbus1.a2

関連する例

詳細