「physics.js」による仮想物理実験室
球体を単振動運動させよう!~線形ばね相互作用の与え方~

文責:遠藤理平
公開日:2017年03月17日
最終更新日:2017年03月17日

はじめに

 本項物理シミュレーション環境構築用HTML5フレームワーク「physics.js」を用いて物理シミュレーションを行うための手順をチュートリアル形式で紹介する記事です。 最新版「physics.js」(リビジョン14、2017年03月12日現在)をここからダウンロードしてください。以下はチュートリアルの目次です。

単振動運動する重力場中の球体

 単振動運動とは、たとえばばねに吊るされたおもりが上下に運動する振動運動です。このような振動運動は元の位置に戻ろうとする復元力が働くことで生じます。 この復元力で最も単純なのが、支点からの距離に比例した復元力を与える線形ばねです。線形ばねについては後述する「物理学のはなし」にて解説します。
 図1はこの線形ばねで結合された重力場中の球体の運動です。単振動している様子がわかると思います。6つの振動運動はばね定数(距離に比例する復元力の比例定数)が異なり、左から順番に2.0, 2.2, 2.4, 2.6, 2.8, 3.0が与えられています。ばね定数が大きいほど、振動の振幅が小さく、かつ振動数が大きくなります。

(図1)支点に線形ばねで結合された球体の運動(GIFアニメーション

支点に線形ばねで結合された球体の運動
実際の仮想物理実験室はこちら

線形ばね相互作用の与え方

 線形ばね相互作用も仮想物理実験室オブジェクト(PhysLabクラス)のsetInteractionメソッドで追加します。 第一引数と第二引数に結合する3次元オブジェクト、第三引数に線形ばね相互作用を表すステート定数(PHYSICS.LinearSpringConnection)、 第四引数に線形ばねのパラメータを与えます。線形ばねのパラメータには、復元力を規定する「ばね定数」「ばねの自然長」の他に、復元力には影響を与えない線形ばね可視化用のばねオブジェクトのパラメータを指定することができます。

【プログラムソース1】支点に線形ばねで結合された球体(SimpleHarmonicMotion.html)
////////////////////////////////////////////////////////////////////
PHYSICS.physLab.balls = [];
PHYSICS.physLab.boxes = [];
for( var i = 0; i<5; i++ ){
	//球オブジェクトの準備
	PHYSICS.physLab.ball[ i ] = new PHYSICS.Sphere({ ~ 省略 ~ });
	//球オブジェクトを登場
	PHYSICS.physLab.objects.push( PHYSICS.physLab.balls[ i ] );
	//箱オブジェクトの準備
	PHYSICS.physLab.boxes[ i ] = new PHYSICS.Box({ ~ 省略 ~ });
	//箱オブジェクトを登場
	PHYSICS.physLab.objects.push( PHYSICS.physLab.boxes[ i ] );
}

////////////////////////////////////////////////////////////////////
//相互作用の準備
////////////////////////////////////////////////////////////////////
//球体同士の衝突相互作用
for( var i = 0; i<5; i++ ){
	//線形ばねの定義
	PHYSICS.physLab.setInteraction(
		PHYSICS.physLab.balls[ i ],
		PHYSICS.physLab.boxes[ i ],
		PHYSICS.LinearSpringConnection,
		{
			k : 2.0+0.2*i,     //ばね弾性力
			L0 : 0.0,          //ばねの自然長
			visible : true,    //ばねの表示
			color : 0x3e8987,  //描画色
			radius :0.15,      //ばねの半径
			tube :0.03,        //管の半径
			windingNumber : 10 //ばねの巻数
		}
	);
	//重力の設定
	(省略)
);
//仮想物理実験室のスタートメソッドの実行
PHYSICS.physLab.startLab();

物理学のはなし7:ばねの復元力と線形近似

 線形ばねの「線形」と「1次式」という意味を表す形容詞で、ばねの自然長からの伸びに比例した復元力が生じるばねを指します。 この比例定数はばね定数と呼ばれ、大きいほど強い復元力を生じます。ばね定数をk、ばねの伸びを\Delta \mathbf{r}と表した場合、復元力\mathbf{F}_k

\mathbf{F}_k = - k \Delta \mathbf{r}

で表されます。符号がマイナスなのは伸びの方向と反対方向の力であることを意味します。この復元力の表式は非常に理想化されているように感じるかもしれませんが、現実的なばねでも伸びが小さい領域ではこの表式が成り立ちます。というのも、現実的なばねの復元力は伸びに対して厳密には比例ではありません。つまり、伸びに比例する項だけではなく、伸びの2乗、伸びの3乗・・・に比例する項も存在します。

F_k = - k \Delta r - k_2 (\Delta r)^2 - k_3 (\Delta r)^3 + \cdots

しかしながら、\Delta rが1よりも十分小さい場合には、2乗以降の項は1乗よりも小さくなるため、無視することができます。 このように伸びの2乗以降を無視する近似は線形近似(第一次近似)と呼ばれ、物理現象を理解する上で最もよく利用される近似となります。
 伸びの2乗以降が復元力に寄与するばねは非線形ばねと呼ばれ、式では取り扱いが難しくなっていきます。