転がり運動のモデル化について
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
yuki watanabe
il 3 Dic 2019
Modificato: yuki watanabe
il 15 Gen 2020
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 Commenti
Risposta accettata
Hiroumi Mita
il 23 Dic 2019
この場合の代数ループとは
Revolute Jointの出力qが、Prismatic jointの入力pになっているからです。
Revolute JointとPrismatic jointの間には遅れがありません。
Revolute Jointの計算をするのに、Prismatic jointの情報が必要ですが、Prismatic jointの情報は
Revolute Jointの情報から計算されます。
このように、自分自身の現在の情報を計算をするのに自分自身の現在の情報を
遅れなく使う場合が代数ループとなります。
簡単な対処法は、添付のように、Memory blockなどを置き、過去の情報から計算するようにモデルを変えます。
このとき、Memory Blockは、入力の1ステップ前の値を出すの代数ループエラーは回避されます。
1 Commento
Più risposte (0)
Vedere anche
Categorie
Scopri di più su ダイナミクス in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!