![desc.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/256816/image.png)
転がり運動のモデル化について
조회 수: 4 (최근 30일)
이전 댓글 표시
Simscape Multibody を使って物体の転がり運動をモデル化しようとしております.
現在,添付したモデルのように,転がらせたい物体の重心にRevolute Joint を取り付け,Revolute Jointの角度の情報をPrismatic Joint の位置へ反映させて,モデル化しています.
しかしこの場合,以下のような代数ループが発生して,複雑な構造物を扱うモデルの場合に,シミュレーション時間が大変長くなります.
次を含む代数ループが検出されました: Rolling/Solver Configuration/EVAL_KEY/INPUT_2_1_1Rolling/Solver Configuration/EVAL_KEY/OUTPUT_1_0Rolling/Solid radius (algebraic variable)
添付したブロック線図上で信号がどうのような仕組みで代数ループしているのか,よくわかりません.
代数ループを避けて,物体の転がり運動を表現できる方法がありましたら,ご教授ください.
何卒よろしくお願いします.
댓글 수: 0
채택된 답변
Hiroumi Mita
2019년 12월 23일
この場合の代数ループとは
Revolute Jointの出力qが、Prismatic jointの入力pになっているからです。
Revolute JointとPrismatic jointの間には遅れがありません。
Revolute Jointの計算をするのに、Prismatic jointの情報が必要ですが、Prismatic jointの情報は
Revolute Jointの情報から計算されます。
このように、自分自身の現在の情報を計算をするのに自分自身の現在の情報を
遅れなく使う場合が代数ループとなります。
簡単な対処法は、添付のように、Memory blockなどを置き、過去の情報から計算するようにモデルを変えます。
このとき、Memory Blockは、入力の1ステップ前の値を出すの代数ループエラーは回避されます。![desc.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/256816/image.png)
![desc.png](https://www.mathworks.com/matlabcentral/answers/uploaded_files/256816/image.png)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 アセンブリ에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!