ブロックを積みながら(179) Scilab/Xcos、摩擦力、動き始めと止まるところメンド

Joseph Halfmoon

前回まで剛体の回転を練習してました。「回りもの」を止めるときはブレーキだよな。ブレーキといったら摩擦?という連想で、摩擦が取り扱えるようにしたかったです。高が摩擦?でも考えてみるとメンドイです。動き始めるところと止まるところ、知恵の回らないお惚け老人は場合分け連発で「メンドクセー」フローを描いてしまいましたぜ。

※「ブロックを積みながら」投稿順 index はこちら

※動作確認にはWindows 11の パソコン(64bit)上にインストールしたScilabの以下バージョンを使用しています。

    Scilab 2024.0.0

摩擦力

お惚け老人がごたくをならべてもせんないので、いつものように、摩擦力に関する文書を参照させていただきます。『北海道大学理学部物理学科』様の以下です。

摩擦力がある場合の運動 1 静止摩擦係数と動摩擦係数

そうですなあ、メンドクセーその1は、静止しているときの摩擦係数と動いているときの係数が見事に異なることです。適当な物体 M [kg] が摩擦のある床に置かれているとして、重力 g により力 M*g で床におしつけられておりますな。まだ動き始めていないときは、静止摩擦係数 μs をつかって表される静止摩擦力  μs*M*g にMを押す力Fが打ち勝たねば物体Mは動き始めませぬ。速度=0ね。しかし、ひとたび動き始めると摩擦力は不思議なことに軽減されます。動摩擦係数  μk が μs よりずっと小さいからです。

さて押す力Fを0にしたとしてもしばらくは動きつづけるハズ。でも摩擦力が反対方向に働くので、速度は低下しやがては0となって静止します。コマケー話?なんだが、速度が0になったら摩擦力も消えてなくなってくれないと困るなあ。メンドクセー。

今回実験のXcosフロー

ということで描いたフローが以下に。

FrictionFlow

 

真ん中右の「運動方程式」の部分はまあシンプルなのだけれども、左上の摩擦力を計算するところ、左下の外力Fと摩擦力を勘案して物体にかかる力を計算するところで、合計3つも場合分けしてます。分かり難いフローだ。

なお、上記のコンテキスト設定が以下に。FrictionContext

また、外力Fは、Scilabのワークスペース側で定義しているので、その「波形」が以下に。

F.time = (0:10)';
F.values = [0; 0.2; 2; 2; 0.2; 0; 0; 0; 0; 0; 0];
Xcosシミュレーション結果

10秒分をシミュレーションした結果が以下に。FrictionResults

外力Fが静止摩擦力を上回るまで、物体Mは「強大な静止摩擦力により」停止。しかし1.5秒付近で一端動き始めると摩擦力は低下。外力Fによって元気に動き始めます。しかし4秒前には外力Fは動摩擦力を下回り、以降は動摩擦力によって速度は落ちていくっと。そして10秒直前には停止してしまう。。。

まあ、頭で考えた雰囲気は出ているか。実際に使えるかどうかはまた今度だな。

ブロックを積みながら(178) Scilab/Xcos、剛体の回転、回転エネルギーも表示 へ戻る