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

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

답변 (2개)

Toshinobu Shintai
Toshinobu Shintai 2022년 2월 12일

0 개 추천

ループ処理に関しては、For Iterator Subsystem を用いることで実現できるかと思います。以下のリンク先をご参照ください。
構造体配列は Simulink では添付モデルのように MATLAB Function ブロックを用いて扱うことができます。モデルはR2021bで作成しています。モデル実行前に以下のコマンドを実行してください。
Table.Type(1).Val = 1;
Table.Type(2).Val = 2;
MATLAB Function ブロックの端子とデータの管理は以下のようにしています。

댓글 수: 4

勇二 橋本
勇二 橋本 2022년 2월 13일
ご回答ありがとうございます。添付していただいたMODELですが、当方R2020aで開くことが出来ません。お手数をお掛けし、誠に申し訳ございませんが、以前のVerで開けられるように保存して頂けないでしょうか。申し訳ありませんがよろしくお願いいたします。
Toshinobu Shintai
Toshinobu Shintai 2022년 2월 13일
R2020aのバージョンに変換しました。
Atsushi Ueno
Atsushi Ueno 2022년 2월 19일
この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
勇二 橋本
勇二 橋本 2022년 2월 19일
MATLAB FunctionのInputをTable,indexとして、Tableをパラメータ設定にし、Table.Type(index).Valの値はBase Work Spaceで設定することにより、問題は解決いたしました。ありがとうございました。

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

勇二 橋本
勇二 橋本 2022년 2월 13일

0 개 추천

ご回答ありがとうございます。組み込みチャレンジしてみます。

카테고리

제품

질문:

2022년 2월 11일

댓글:

2022년 2월 19일

Community Treasure Hunt

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

Start Hunting!