バス配列はどのように作成しますか?

16 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2018 年 3 月 15 日
回答済み: MathWorks Support Team 2018 年 3 月 15 日
バス配列の作成の仕方を教えてください。bus creatorブロックで作ったバス信号をMUXブロックに接続したところエラーになり、バス配列にならないようです。どうすればバス配列を作成できますか?

採用された回答

MathWorks Support Team
MathWorks Support Team 2018 年 3 月 19 日
バス配列を作成するには、以下の手順で対応します。
1. まずMATLABワークスペースでSimulink.Busオブジェクトを定義し、bus creatorブロックで作成したバス信号にSimulink.Busを割り当てます。
bus1 = Simulink.Bus;
2. ワークスペースに生成されたbus1をダブルクリックし、バスエディタを開きます。
今回は、double型のデータとsingle型のデータを1つずつ含むバスオブジェクトbus1を以下のように定義します。
3. モデルに配置したbus creatorブロックをダブルクリックし、出力データ型をbus:bus1に設定し、さらに「非バーチャルバスとして出力」のチェックを入れます。
この手続きにより、当該バス信号は見た目だけバスとして出力するバーチャルバスではなく、バスとしての実体をもつ信号として出力されます。非バーチャルバスは、Cコードでは構造体に相当します。
4. 作成した非バーチャルバス信号は、MUXブロックではなくvector concatenateブロックに接続し、モデル中でバス配列を定義します。作成したバス配列は、selectorブロックでインデックスを指定することで中身のバス信号を取り出せます。
正しくバス配列が定義できているかは、Simulinkメニューの情報表示>信号と端子>端子のデータ型のチェックを入れ、今回の例ではbus1(2)型とバス信号かつ配列であることが示されていることで判断可能です。
今回作成したサンプルモデルは、回答欄上部からダウンロード可能です。サンプルモデルはMATLAB R2017bで作成されています。
より詳しい情報は
に掲載されています。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange合成信号 についてさらに検索

タグ

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!