はりの計算式を連載で紹介しています。
境界条件 等分布荷重 です。
支持条件
tp = 0 単純ばり
tp = 1 片持ち梁(自由固定)
tp = 2 片持ち梁(固定自由)
tp = 3 両端固定
tp = 4 1端ピン他端固定
tp = 5 1端固定他端ピン
qA = Q(x=0) せん断力
mA = M(x=0) 曲げモーメント
tA = T(x=0) たわみ角を曲げ剛性 EI で乗じたもの
vA = V(x=0) たわみを曲げ剛性 EI で乗じたもの
からはりを計算するやり方です。
計算式本体
チェック用プログラム
:境界条件 等分布荷重
@echo off
ruby -x %0
pause
goto:eof
#!ruby
def mq3(x, tp, l, w, qa, ma, ta, va, ei = nil, __g__ = 0)
q = qa - w * x
m = ma + qa * x - w / 2 * x ** 2
t = ta - ma * x - qa / 2 * x ** 2 + w / 6 * x ** 3
v = va + ta * x - ma / 2 * x ** 2 - qa / 6 * x ** 3 + w / 24 * x ** 4 + __g__ * (m - ma) * l ** 2
if ei == nil
return q, m, t, v
else
return q, m, t / ei, v / ei
end
end
x = 2.5 #m
l = 5.0 #m
w = 10.0 #kN/m
e = 6.5 * 10**6 #kN/m2
t = 0.15 #m
h = 0.30 #m
g = e/15 #kN/m2
ei = e * t * h ** 3 / 12
ga = g * t * h
__g__ = 1.2 * ei / ga / l ** 2
tp = 0
if tp == 0
# o-----o
qa = w * l / 2.0
ma = 0.0
ta = w * l ** 3 / 24.0
va = 0.0
elsif tp == 1
# ------|
qa = 0.0
ma = 0.0
ta = -w * l ** 3 / 6.0
va = w * l ** 4 * (4.0 * __g__ + 1.0) / 8.0
elsif tp == 2
# |------
qa = w * l
ma = -w * l ** 2 / 2.0
ta = 0.0
va = 0.0
elsif tp == 3
# |-----|
qa = w * l / 2.0
ma = -w * l ** 2 / 12.0
ta = 0.0
va = 0.0
elsif tp == 4
# o-----|
qa = w * l * (12.0 * __g__ + 3.0) / (8.0 * (3.0 * __g__ + 1.0))
ma = 0.0
ta = w * l ** 3 * (12.0 * __g__ + 1.0) / (48.0 * (3.0 * __g__ + 1.0))
va = 0.0
elsif tp == 5
# |-----o
qa = w * l * (12.0 * __g__ + 5.0) / (8.0 * (3.0 * __g__ + 1.0))
ma = -w * l ** 2 / (8.0 * (3.0 * __g__ + 1.0))
ta = 0.0
va = 0.0
end
q, m, t, v = mq3(x, tp, l, w, qa, ma, ta, va, ei, __g__)
p [x, q, m, t, v]
__END__
x = 2.5 #m
l = 5.0 #m
w = 10.0 #kN/m
e = 6.5 * 10**6 #kN/m2
t = 0.15 #m
h = 0.30 #m
g = e/15 #kN/m2
計算結果は
となります。[x, q, m, t, v]
はりの計算式とはいえ、公式ではありません。プログラムによる数値計算用の計算式です。
境界条件 qA, mA, tA, vA を与えて 弾性曲線式を解くための計算式です。