MV-7007:ジョイントへの摩擦の追加
本チュートリアルでは、MotionSolveのジョイント摩擦モデルの詳細、MotionView/MotionSolveでのジョイント摩擦のモデル化方法、摩擦結果の確認方法について学習します。
- 接触面がより滑らかになり、より近づけられると、分子接着力が運動に対する抵抗を形成します。
- 接触面の粗さが大きいと摺動時に摩耗が発生し、表面の粗さが運動に抵抗します。
- 一方の接触面が比較的軟らかい場合は、掘り起こしの効果によりほとんどの抵抗が発生します。
- サーフェスの接触形状とトポロジー
- バルク材と表面材の特性
- 変位と相対速度
- 潤滑
摩擦は非線形性が高く、静摩擦状態、過渡状態、滑り(または)動摩擦状態のようなシステム状態に依存しています。
![](../../../images/tutorials/mv/mv-7007_friction_function_characteristics_example.png)
- 摩擦の動力学
- 摩擦と速度の関係または摩擦の減衰特性は、振動を減衰させるのに役立ちます。また、動解析では、プリスライドや潤滑剤の流体力学的効果などの摩擦挙動が見られます。駆動系や高精度サーボ機構の設計では、上記の効果による抵抗力を考慮する必要があります。そのため、システムのダイナミクスを捉えるためには、摩擦を正確にモデル化することが重要です。
- ジョイントの摩擦
- ジョイント内の摩擦は、その形状に依存しています。MotionSolveは、形状、初期荷重、トルク、潤滑に基づいて、さまざまなジョイントの摩擦を解析モデルで表現します。
- LuGre摩擦モデルを用いたジョイントの摩擦の特性評価
- MotionSolveは、LuGreモデルを用いて摩擦を表現します。LuGreモデルは、制御アプリケーション用に開発されたブリスルモデルです。LuGreモデルはCanudas de Wit、Olsson、Åstro¨m、Lischinskyによって発表されました。ルンド工科大学(スウェーデン)とフランスのグルノーブル研究所(Laboratoire d'Automatique de Grenoble)の研究者の共同研究から生まれたLuGreモデルは、滑り摩擦の速度・加速度依存性からヒステリシス効果、プリスリップ変位、潤滑まで、実験で観察されたさまざまな挙動を捉えます。
LuGreモデルは、ジョイントの形状、初期荷重、モーメントアーム、力、トルクを考慮した摩擦をモデル化することができます。摩擦は、回転、球、並進ジョイント、円筒およびユニバーサルジョイントのサブセットでサポートされています。各制約の摩擦についての詳細な説明は、MotionSolveオンラインヘルプをご参照ください。
本チュートリアルでは、“テーブルの上を滑るブロック”の実験モデルを用いて、スティックスリップ状態での摩擦力と摩擦力の周波数依存性を実証します。
![](../../../images/tutorials/mv/mv-7007_sliding_block_model_example.png)
リーダーとフォロワーモデルは、2つの剛体すなわちLeaderとFollowerを構成しており、それらはそれぞれ並進ジョイントによってGroundボディに接続され、線形ばねで内部接続されています。以下のステップでは、摩擦を追加し、運動を付与して、並進ジョイントの摩擦挙動を検証します。
ジョイントの摩擦の追加
- ProjectブラウザからJointsフォルダーに進み、Follower Translation Jointを選択します。
- JointsパネルからFriction Propertiesタブに進みます。
-
Friction Propertiesタブから、Use Frictionオプションにチェックマークを入れ、ジョイントの摩擦をアクティブにします。
図 4. 注: MotionViewはパネルにN、mm、秒の単位で適切なデフォルトのプロパティを表示します。Stiction Transition Velocity、Force Preload、形状のプロパティ(Initial Overlap、Reaction Arm)といったプロパティを単位に応じてスケーリングする必要があります。 -
デフォルトの設定を次のように変更します:Dynamic friction coefficientを0.1に、Static friction coefficientを0.15に、Stiction Transition Velocityを1.0に。Bending MomentとTorsion Momentのオプションからチェックマークを外し、形状のズレによるジョイント反力を除外します。Initial Overlapの値を10mmに修正し、残りの値はデフォルトの設定のままとします。
図 5. -
LuGre Parametersタブを選択し、Bristleのプロパティを修正します。Damping Coefficient値を0.0316に変更します。
図 6. 注: ブリスルのデフォルトのプロパティは、N、mm、秒の単位で適切です。 - LuGreパラメータはすべて、デフォルト値のままとします。
摩擦力に出力リクエストを追加
このステップでは、Follower並進ジョイントの摩擦力を測定するための出力を作成します。
-
General MDL EntityツールバーでOutputアイコン
を右クリックします。
Add Outputダイアログが表示されます。 - LabelをFriction_Forceに変更します。
-
Variableをo_frictionに変更します。
図 7. - OKをクリックし、出力リクエストを追加します。
-
Propertiesタブから出力タイプにExpressionsを選択します。
図 8. - F2Expression欄内をクリックします。
-
ボタンをクリックします。
Expression Builderダイアログが表示されます。 -
Expression BuilderでFRICTION関数式に以下のように入力します:
`FRICTION({j_contact.id},1)`
.- Follower Translation Joint ID
= {j_contact.id},
- Fx component
= 1
図 9. - OKをクリックします。
-
F3、F4、F6、F7、F8について、手順を繰り返します。2番目のパラメータはそれぞれ2、3、4、5、6に変更します。
関数FRICTION(ID, comp)は、ジョイントIDに対応するcompで指定された摩擦力成分を計算します。
ID ジョイントのID comp 力成分。現在は、1~18の範囲がサポートされています。 1 = ジョイントのJマーカーのx軸に沿った摩擦力FX。 2 = ジョイントのJマーカーのy軸に沿った摩擦力FY。 3 = ジョイントのJマーカーのz軸に沿った摩擦力FZ。 4 = ジョイントのJマーカーのx軸周りの摩擦トルクTX。 5 = ジョイントのJマーカーのy軸周りの摩擦トルクTY。 6 = ジョイントのJマーカーのz軸周りの摩擦トルクTZ。 図 10.
滑り速度に出力リクエストを追加
摩擦力は、接触している物体間の相対速度に関して特徴づけられます。したがって、出力リクエストを作成し、Followerボディの速度を測定します。
-
General MDL EntityツールバーのOutputsアイコン
を右クリックします。
Add Outputダイアログが表示されます。 - LabelにFollower_Velocityと入力します。
- Variableにo_velocityと入力します。
- OKをクリックし、出力リクエストを追加します。
-
Propertiesタブから出力タイプにVelocityを選択します。
図 11. -
Velocityの下のドロップダウンメニューでEntityを選択します。
図 12. -
エンティティタイプが
となるよう選択します。
-
はGlobal Frameのままとします。
図 13.
Leader Translation Jointに定速運動を追加
本ステップでは、Leaderボディに一定速度を追加します。線形ばねで結合されたFollowerボディは、摩擦力によりスティックスリップ運動を呈します。
-
ConstraintツールバーのMotionアイコンを右クリックします。
Add Motion or MotionPairダイアログが表示されます。
- LabelにStick Slipと入力します。
- Variableにmot_leaderと入力します。
- OKをクリックし、運動を追加します。
-
Connectivityタブで:
-
Propertiesタブで:
モデルの解析
-
アイコン
をクリックし、モデルをチェックします。
-
Runアイコン
をクリックし、Runパネルに切り替えます。
-
Mainタブの下で
アイコンをクリックし、MotionSolve .xmlファイルの名称と場所を指定します。ファイルを作業ディレクトリにStick_Slip.xmlとして保存します。
図 16. - ファイルを保存すると、右側のRunボタンがアクティブになります。
- End timeを25 secに指定し、Print intervalの値を0.001に変更します。残りの値はデフォルト設定のままとします。
- Runボタンをクリックし、シミュレーションを実行します
アニメーションとプロットの確認
実行が完了したら、パネルの右側にある別のボタン群がアクティブになります。
-
Animateボタンをクリックし、アニメーションを表示します。
これでHyperViewが起動され、Stick_Slip.h3dアニメーションファイルを読み込みます。
-
続いて、プロットを確認するために、Plotボタンをクリックします。
これでHyperGraphが起動され、Stick_Slip.abf結果ファイルを読み込みます。
- HyperGraphウィンドウ上をクリックし、アクティブウィンドウとします。
-
Followerの速度vs.時間をプロットします。
-
摩擦力vs.時間をプロットします。
- TimeにX-axis Data Typeを選択します。
- 下記のY軸データを選択します:
オプション 説明 Y Type Expression Y Request Friction_Force Y Component F4 図 17. アニメーションウィンドウとプロットウィンドウ -
アニメーションを開始するには、ツールバーのStart/Pause Animation
アイコンをクリックします。
-
Stick_Slip運動は、アニメーションとプロットで明らかに認められます。
図 18. 時間スケール上での速度と摩擦力 等速で移動するLeaderボディは、ばねを伸長させ、ばねの力を直線的に増加させます。摩擦力はばねの力に対抗し、付与された力が離脱力に達するとFollowerボディの変位が小さくなります。
離脱力 = mu static x Normal Load = 0.15x1x9.81 = 1.47 Newton.
Follower並進ジョイントに時間変化速度を追加
このステップでは、Follower並進ジョイントに“時間変化速度”を追加します。1 rad/sec、10rad/sec、25rad/secの異なる周波数で1.1mm/secから3mm/secの間で速度を変化させ、摩擦のヒステリシスを観察しています。
-
ConstraintツールバーのMotionsアイコン
を右クリックします。
Add Motion or MotionPairダイアログが表示されます。 - LabelにHysteresisと入力します。
-
Variableにmot_freq_varyingと入力します。
図 19. - OKをクリックし、運動を追加します。
-
Connectivityタブで:
-
Propertiesタブで:
- 前のステップで作成したLeader並進ジョイントの運動を無効にします。
異なる周波数で速度が変化するモデルのシミュレーション
-
アイコン
をクリックし、モデルをチェックします。
-
Runアイコン
をクリックし、Runパネルに切り替えます。
-
Mainタブの下で
アイコンをクリックし、MotionSolve .xmlファイルの名称と場所を指定します。ファイルを作業ディレクトリにHysteresis_1radpersec.xmlとして保存します。
-
End timeを3秒、Print interval値を0.0001秒に指定します。
図 24. - Runボタンをクリックし、シミュレーションを実行します
-
Follower並進ジョイントの速度式を修正し、下の表に指定したファイル名と終了時刻でモデルを実行します:
Frequency Expression File name End Time (sec) 10 rad/sec `1.1+1.9*ABS(sin(PI*(10*time)))`
Hysteresis_10radpersec.xml 0.3 25 rad/sec `1.1+1.9*ABS(sin(PI*(25*time)))`
Hysteresis_10radpersec.xml 0.12
ヒステリシスカーブのプロット
- ウィンドウをクリックしてHyperGraphを選択します。
-
1 rad/secの周波数の結果を読み込みます。
-
Followerの速度vs.時間をプロットします。
-
Friction force とTimeをプロットします。
-
摩擦ヒステリシスカーブ(摩擦力対速度)のプロッティング。
摩擦力の値には初期遷移があるため、1サイクル目のデータを除いたヒステリシスカーブをプロットします(つまり、0~1秒)。
-
同様に、上記の手順3 -5に従って、周波数10rad/sec(Hysteresis_10radpersec.abf)および25 rad/sec(Hysteresis_10radpersec.abf)のヒステリシスカーブをプロットします。
図 33. 異なる周波数におけるヒステリシスカーブ より高い周波数で速度が変化すると、ヒステリシスループが大きくなります。