SimulinkでのLoop処理方法に関して

27 views (last 30 days)
勇二 橋本
勇二 橋本 on 11 Feb 2022
Commented: 勇二 橋本 on 19 Feb 2022
お世話になっております。
SimulinkでのLoop処理方法について教えてください。
Simulinkにて下記の様な構造体配列変数(Data Table)の”N”をLoopにて変更し、これらのData Tableを用いて
LookUpを一括処理にて行いたいと考えています。
Data例:Table.Type(N).Val
教えて頂きたいこと
1.Loop処理で、反復回数(1~n)を”N”に反映する方法。
1.どのようなLoop処理を構築すればよいか。
以上です。よろしくお願いいたします。

Answers (2)

Toshinobu Shintai
Toshinobu Shintai on 12 Feb 2022
ループ処理に関しては、For Iterator Subsystem を用いることで実現できるかと思います。以下のリンク先をご参照ください。
構造体配列は Simulink では添付モデルのように MATLAB Function ブロックを用いて扱うことができます。モデルはR2021bで作成しています。モデル実行前に以下のコマンドを実行してください。
Table.Type(1).Val = 1;
Table.Type(2).Val = 2;
MATLAB Function ブロックの端子とデータの管理は以下のようにしています。
  4 Comments
Atsushi Ueno
Atsushi Ueno on 19 Feb 2022
このQ&Aに始まった事ではありませんが、Simulink関連のQ&Aで添付モデルを開けない為に完全な回答を閲覧出来ない事は由々しき問題です。MATLAB Answerのライブスクリプト上でSimulinkモデルを開く事は出来ないですし、相手のMATLABバージョン以上のライセンスを所有していないとSimulinkモデルを開く事が出来ません。Q&Aの内容はあまねくMATLAB民が享受すべきではないのはないでしょうか。
結局どういう回答だったのでしょうか?添付モデルを見ないとわかりません。忍法「バージョンが新しいモデルが開けなくても拡張子slxをzipに変えて解凍すればある程度中身が見える」を使ってモデルを閲覧しましたが、添付モデルの内容はこういう事でしょうか?MATLAB functionブロックの引数の数が異なるので恐らく正しいモデルの姿を見る事が出来ていないのだと思います。
function y = fcn(Table, index)
y = Table.Type(index).Val;
end
勇二 橋本
勇二 橋本 on 19 Feb 2022
MATLAB FunctionのInputをTable,indexとして、Tableをパラメータ設定にし、Table.Type(index).Valの値はBase Work Spaceで設定することにより、問題は解決いたしました。ありがとうございました。

Sign in to comment.


勇二 橋本
勇二 橋本 on 13 Feb 2022
ご回答ありがとうございます。組み込みチャレンジしてみます。

Products

Community Treasure Hunt

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

Start Hunting!