転がり運動のモデル化について
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
yuki watanabe
el 3 de Dic. de 2019
Editada: yuki watanabe
el 15 de En. de 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 comentarios
Respuesta aceptada
Hiroumi Mita
el 23 de Dic. de 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 comentario
Más respuestas (0)
Ver también
Categorías
Más información sobre ダイナミクス en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!