はりの計算式を解くやり方をいろいろと紹介しています。
本稿の弾性曲線式は
V''''(x) = p(x), x | 0 => L (technical theory of beam, Euler–Bernoulli beam theory)
V''''(x) = p(x) - κ * EI / GA * p''(x), x | 0 => L (Timoshenko beam theory)
と改めます。上は普通の梁で、下はせん断変形を考慮した梁の式です。
はりの計算式は
V''''(x) = p(x) = -w (1)
V''' (x) = Q(x) = C1 + ∫ p(x) dx (2)
V'' (x) = M(x) = C2 + ∫ Q(x) dx (3)
r(x) = -M(x) (4)
G(x) = κ * EI / GA * Q(x) (4-1)
V' (x) = T(x) = C3 + ∫ r(x) dx (5)
V (x) = V(x) = C4 + ∫ T(x) + G(x) dx (6)
ただし
κ せん断変形の形状係数
EI 曲げ剛性(一定)
GA せん断剛性(一定)
x 位置
L スパン長
p(x) 分布荷重
w 等分布荷重
Q(x) せん断力
M(x) 曲げモーメント
r(x) 曲率(δ''=φ=r(x)/EI)
G(x) せん断角(γ=G(x)/EI、鉛直方向のせん断歪は全断面で一定とし、材軸方向は0とする)
T(x) たわみ角(θ=T(x)/EI)
V(x) たわみ(δ=V(x)/EI)
C1 積分定数(Q(x=0))
C2 積分定数(M(x=0))
C3 積分定数(T(x=0))
C4 積分定数(V(x=0))
とします。G(x) = 0 とすれば普通の梁です。
この計算式は 荷重 p(x) を 与えると 機械的に解けます。パソコンを利用すれば 境界条件 C1, C2, C3, C4 を計算することは それほど難しくはありません。数式処理ソフトを使えば、手計算のように 静定 と 不静定を区別したり 仮想仕事や相反作用の原理を 持ち出す必要がないからです。また、普通の梁でもせん断変形を考慮した梁でも同じ計算式が使えるので便利です。
本稿のアイデアは たわみ角 T(x) と たわみ V(x) の与え方にあります。曲げ剛性とせん断剛性が一定のとき、T(x) と V(x) を たわみ角とたわみとみなすことで 弾性曲線式は積分を繰り返すとその都度 Q(x)、M(x)、T(x)、V(x) となります。たわみ角とたわみは T(x)/EI と V(x)/EI とすればもとに戻せます。
今回は 両端変位について考えます。
Mery で以下のスクリプトを書いて ファイル名 "000-10.bat" で保存して実行すれば両端変位が処理されます。
はりの両端に変位を与えます。
: 両端変位
@echo off
path C:\maxima-5.47.0\bin;%path%
ruby -x %~f0 5 -1.rad -1.5.rad 30 -10 0.15 0.3 6.5 6.5/15 1.2
pause
goto:eof
#!ruby
def pt_qm_tp_3(l, st1, st2, sv1, sv2, t, h, e, g, κ)
=begin
sv1 SV1 は(x=0)の強制たわみ mm 下向きが負、上向きが正(単位を m に補正して EI で除して計算)
sv2 SV2 は(x=L)の強制たわみ mm 下向きが負、上向きが正(単位を m に補正して EI で除して計算)
st1 ST1 は(x=0)の強制回転角 rad 右回りが負、左回りが正(EI で除して計算)
st2 ST2 は(x=L)の強制回転角 rad 右回りが負、左回りが正(EI で除して計算)
=end
f = open "| maxima --very-quiet", "w"
f.print <<~Maxima
p: -w$ /*(M1)*/
Q: C1 + integrate(p, x)$ /*(M2)*/
M: C2 + integrate(Q, x)$ /*(M3)*/
r: -M$ /*(M4)*/
G: κ * EI / GA * Q$ /*(M4-1)*/
T: C3 + integrate(r, x)$ /*(M5)*/
V: C4 + integrate(T + G, x)$ /*(M6)*/
s: solve([
ev(T, x = 0) = ST1 * EI,
ev(T, x = L) = ST2 * EI,
ev(V, x = 0) = SV1 * EI/1000,
ev(V, x = L) = SV2 * EI/1000
], [C1, C2, C3, C4])$ /*(M7)*/
[Q, M, T, V, G]: ev([Q, M, T/EI*1000, V/EI*1000, G/EI*1000], s)$ /*(M8)*/
[L, ST1, ST2, SV1, SV2, t, D, e, g, κ]: [#{l}, #{st1}, #{st2}, #{sv1}, #{sv2}, #{t}, #{h}, #{e}, #{g}, #{κ}]$ /*(M9)*/
[EI, GA]: [e*t*D^3/12, g*t*D] * 10^6$ /*(M10)*/
plot2d([Q, M, T, V], [x, 0, L], [legend, "Q", "M", "T", "V"])$ /*(M11)*/
?sleep(5)$ /*(M12) 5秒表示*/
quit()$ /*(M13) 終了*/
Maxima
f.close
end
class Numeric
def rad
self * Math::PI / 180.0
end
end
l, st1, st2, sv1, sv2, t, h, e, g, κ = ARGV.map { |x| eval(x) } # (R14) m, rad, rad, mm, mm, m, m, kN/mm2, kN/mm2
pt_qm_tp_3(l, st1, st2, sv1, sv2, t, h, e, g, κ) # (R15)
__END__
(M11)で
と表示されます。たわみ角 T は 1000倍に拡大されています。 -1.rad は -17.453 -1.5.rad は -26.180 となります。
あっさり解けました。当方が社会に出たときにはパソコンはありませんでした。たわみ角法ですら解くのは大変でした。言葉を失います。
座標系は右手右ねじ系としています。
(x) は材軸方向
(y) は上下方向で上向きが正、下向きが負
(z) は回転方向で左回りが正、右回りが負
y
|
|___________x
/
z
慣用の座標系も右手右ねじ系ですが向きが違います。
(x) は材軸方向
(y) は上下方向で下向きが正、上向きが負
(z) は回転方向で右回りが正、左回りが負
z
/
/__________x
|
|
y
次回は 両端曲げについて取り上げます。