バスエディタでの構造体について

조회 수: 41 (최근 30일)
A.T
A.T 2023년 3월 16일
편집: Toshinobu Shintai 2023년 3월 20일
matlab simulinkの初心者です。
非常に初歩的な質問かもしれませんがよろしくお願いいたします。
バスエディタで構造体の中で構造体を使うといった変数の定義の仕方はできないのでしょうか
例えば、A[1]という構造体の中にはIDdouble型)、a[1]a[10]の配列があります。
a[1]a[10]はそれぞれtime(int)distance(double)2つの変数をもった構造体です。
Aの構造体の定義をバスエディタで行い、データ型アシスタントでバスオブジェクトをaとして次元を10とする。添付バスエディタ.PNGのようなイメージ)
その後、simulink上でBusSelectorSelectorを用いればMATLAbFunction上で変数として扱えると、考えたのですができませんでした。(simulink.PNGのような状態)
構造体の中に構造体を用いることは不可能で、a1,a2,・・・a10のように異なる変数名を定義する必要があるのでしょうか。
お手数ですが、よろしくお願いいたします。

채택된 답변

Toshinobu Shintai
Toshinobu Shintai 2023년 3월 17일
添付画像が見つかりませんので、私の予想も含めての回答になります。また、新しいバージョンではバスエディターではなくて型エディターという名前に変わっていますが、操作はほとんど変わらないと思いますので、それを用いて説明します。
まず、time(int型)、distance(double型)の2つの変数をもった構造体を作成します。
ここでは、名前をa_busとしました。次にaを10個持つ配列Aを定義しました。
次に、モデルエクスプローラーで、Simulink.Signalオブジェクトを作成します。
ここでは、信号の名前をAとして、次元を10としました。これにより、Aは構造体配列の信号として定義されます。
Simulinkでは、例えばInportブロックに以下のように設定し、
信号線を右クリックしてプロパティを開き、以下のように設定します。
これにより、以下のように構造体配列の信号を扱えるようになります。
  댓글 수: 2
A.T
A.T 2023년 3월 19일
コメントありがとうございます
私の方が、画像を添付できてなく申し訳ありませんでした。
ご教示いただいた内容理解できました。ありがとうございます。
ただ、当方プログラミング初心者のため、ご教示いただいた下記プログラムをどのように書いたらいいのかが分からないため、サンプルでもいいのでこちらのコードを教えていただけないでしょうか?
宜しくお願いします。
Toshinobu Shintai
Toshinobu Shintai 2023년 3월 20일
편집: Toshinobu Shintai 2023년 3월 20일
画像の中に置かれているブロックは左から「Inport」ブロック、「Selector」ブロック、「Bus Selector」ブロック、「Outport」ブロックです。申し訳ありませんが、作ったモデルは削除してしまいました。
ドキュメントを参考に、ブロックを並べて接続し、設定してみてください。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Simulink Function에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!