静力学:力の釣り合い
静止している物体に作用している力の釣り合いなどを扱う力学を静力学という。物体が静止している場合を考えてみる。例えば、机に物体を置いたとき、その物体の持つ重さによって力がかかるが、机そのものは動かない。このような状態のとき、その物体には様々な力がかかっていて、それぞれが釣り合っている状態にあると言える。
ここでは、物体が静止しているときに働く力やモーメントの釣り合いに関することについて説明していこうと思う。
目次
力の釣り合い
力の大きさと方向
図1のように、力はその大きさの単位だけで表現するのではなく、作用する方向と大きさを指し示すベクトル量で表すことにする。このベクトル量をFと表記することにすれば、Fはその矢印の方向に、力の大きさの単位の量だけの力量で作用する。ということを表す。
また、図1から、力を表すベクトルの前後に伸ばした点線を力の作用線と呼び、その力の作用線上でベクトルを移動させても、ベクトルが表す力の方向と量の単位は変化しない。
力の合成
2つ以上の力を合成して1つの力で表したベクトルを合力と呼ぶ、2つの力を合成するということは2つのベクトルの和を求めることに等しい。
2つの力F1とF2の合力をFとすると、合力Fは図2(a)のような平行四辺形の対角線として表される。または、図2(b)のように、図2(a)の平行四辺形を対角線で切り取ったような三角形の一辺(対角線)になる。
図2(a)において、F1とF2のなす角をθとすると、三角関数における余弦定理を用いて、次のような関係が成立する。
図2(b)の三角形O’A’B’において、そのなす角は
$$\angle{O’A’B’}=\pi-\theta$$
となるので、三角形O’A’B’において余弦定理よりFは次のように表される。
$$
F^2=F1^2+F2^2-2F1F2cos(\pi-\theta)
$$
$$
cos(\pi-\theta)=-cos\theta より
$$
$$
F^2=F1^2+F2^2+2F1F2cos\theta …式①
$$
合力も同じベクトル量なので、大きさと方向を持っている。以上を踏まえて、例題1を解いてみる。
【例題1】
F1=15N, F2=10N, θ=50° とするとき、図3(a)に示す2つの力F1、F2の合力の大きさFとF1とのなす角θ1を求めよ。
【解】
題意より、合力の大きさFを求める。式①より
$$
F^2=F1^2+F2^2+2F1F2cos\theta …式①
$$
$$F1=15N, F2=10N, θ=50° を代入すると$$
$$
F^2=15^2+10^2+2\times15\times10\cos50^{\circ}
$$
$$
F=\sqrt{15^2+10^2+2\times15\times10\cos50^{\circ}}
$$
$$\cos50^{\circ}=0.96より$$
$$F=24.8N$$
図3(a)から図3(b)のように作図して、F1と合力Fのなす角をθ1とする。
題意より、なす角θ1を求める。
$$F\sin\theta1=F2\sin\theta…② であるから$$
$$24.8\sin\theta1=10\sin50^{\circ}$$
$$よって \sin\theta1=0.104$$
$$ゆえに \theta1=6^{\circ}$$
例題1をpythonで計算する
先に示した例題をPythonによるプログラミングで解いてみる。
【例題1】
F1=15N, F2=10N, θ=50° とするとき、図3(a)に示す2つの力F1、F2の合力の大きさFとF1とのなす角θ1を求めよ。
- Python3の環境構築はこちら
F1とF2の合力を求める
#標準モジュールmathインポート
import math
# 題意から与えられた変数を定義する
F1 = 15
F2 = 10
# 式①を関数として定義する
def addfoce():
F = F1**2+F2**2+2*F1*F2*math.cos(50)
G = math.sqrt(F) #式①の平方根
return G
print(round(addfoce(), 1)) #小数点以下第一位野までの処理をして結果を出力
# 結果:24.8N
F1と合力Fとのなす角を求める
【例題1】
F1=15N, F2=10N, θ=50° とするとき、図3(a)に示す2つの力F1、F2の合力の大きさFとF1とのなす角θ1を求めよ。
- Python3の環境構築はこちら
#標準モジュールmathインポート
import math
# 題意から与えられた変数を定義する
F = 24.8
F2 = 10
# 式②を関数で定義する
def theta():
a = F2*math.sin(50)/F
b = math.degrees(a) #ラジアンから度に変換するのがmath.degrees()
return b
print(round(theta())) #小数点以下を丸めて結果を出力
#結果 6°