simscapeでi​fブロックを使用した​際のエラーについて

物体間の距離に応じてjointに入力される信号を変更できるようなプログラムを作成しています.
具体的には,Cylindrical SolidとBrick Solid2の距離を計測し,その値をifブロックに入力して2物体間の距離が0.15を下回る場合は1,それ以外は0をjointブロックに入力されるような回路を組んでいます.
シミュレーションを実行すると「エラー:'kakunin/Solver Configuration' の入力端子 (1) はループ内にあります。」,「エラー:'kakunin/If' の入力端子 (1) はループ内にあります。」,「エラー:'kakunin/If Action Subsystem' の入力端子 (Action) はループ内にあります。」といったエラーが出てしまいます.
どのように変更すればよいかをご教授いただければ幸いです.よろしくお願いいたします.

 Accepted Answer

Toshinobu Shintai
Toshinobu Shintai on 17 Jun 2024

0 votes

いわゆる代数ループという現象が発生しています。
Simscapeから出た信号がSimscapeに戻ってくるまでの間に、遅れ要素を入れることで解消できます。例えば、以下のようにUnit Delayブロックを入れることでシミュレーションができました。

More Answers (0)

Categories

Find more on Simscape Multibody in Help Center and File Exchange

Products

Release

R2024a

Tags

Community Treasure Hunt

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

Start Hunting!