
Simulink forループ内の結果を次の周の入力にする方法
12 views (last 30 days)
Show older comments
Simulinkでforループ内の結果を次の周の入力にする方法を考えています。
たとえば下図のようなイメージです。

モデルが複雑でわかりにくくなってしまうのですが、もっと効率の良い、スマートな表現方法はあるでしょうか?
恐れ入りますが、ご教示願います。
0 Comments
Accepted Answer
交感神経優位なあかべぇ
on 3 Feb 2025
こちらはどうでしょうか?
For Iterator ブロックの開始時の状態をリセットに設定し、Delayブロックを使用して前ループの結果を渡します。開始時の状態をリセットに設定しているので、Delayの初期条件は毎ステップ入力値から始まります。

More Answers (1)
Atsushi Ueno
on 1 Feb 2025
質問の例に挙げられた処理は「Nが4以上なら
を出力、Nが1~3なら(何か)を出力」です。

3 Comments
Atsushi Ueno
on 11 Feb 2025
気になる事:
最後のSwitch((1:N)>=4)は、有っても無くても動作に影響しないのではないでしょうか?
For Iterator Subsystem内で繰り返し処理が行われている間の出力は使われず、全ての繰り返し処理が終わった後に始めて出力が使われます。 @交感神経優位なあかべぇ氏の回答からも最後のSwitchは除去されています。
See Also
Categories
Find more on ループと条件付きステートメント in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!