Simulink forループ内の結果を次の周の入力にする方法

16 vues (au cours des 30 derniers jours)
tak
tak le 30 Jan 2025
Commenté : tak le 12 Fév 2025
Simulinkでforループ内の結果を次の周の入力にする方法を考えています。
たとえば下図のようなイメージです。
モデルが複雑でわかりにくくなってしまうのですが、もっと効率の良い、スマートな表現方法はあるでしょうか?
恐れ入りますが、ご教示願います。

Réponse acceptée

交感神経優位なあかべぇ
こちらはどうでしょうか?
For Iterator ブロックの開始時の状態をリセットに設定し、Delayブロックを使用して前ループの結果を渡します。開始時の状態をリセットに設定しているので、Delayの初期条件は毎ステップ入力値から始まります。
  1 commentaire
tak
tak le 4 Fév 2025
ありがとうございます。
だいぶスマートになりました。

Connectez-vous pour commenter.

Plus de réponses (1)

Atsushi Ueno
Atsushi Ueno le 1 Fév 2025
質問の例に挙げられた処理は「Nが4以上ならを出力、Nが1~3なら(何か)を出力」です。
2のN乗は Math Function でOK。その場合、MemoryFor Iterator Subsystem は不要になります。
  3 commentaires
Atsushi Ueno
Atsushi Ueno le 11 Fév 2025
気になる事:
最後のSwitch((1:N)>=4)は、有っても無くても動作に影響しないのではないでしょうか?
For Iterator Subsystem内で繰り返し処理が行われている間の出力は使われず、全ての繰り返し処理が終わった後に始めて出力が使われます。 @交感神経優位なあかべぇ氏の回答からも最後のSwitchは除去されています。
tak
tak le 12 Fév 2025
ありがとうございます。
私も実際にswitchを外してみたところ、結果に変わりがありませんでした。
意図としてはループの最後の結果のみ出力させようとしていました。

Connectez-vous pour commenter.

Catégories

En savoir plus sur Simulink dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!