はりの計算式は
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 とすれば普通の梁です。
今回は 数式をコマンドプロンプトに表示するやり方を紹介します。
Mery で以下のスクリプトを書いて ファイル名 "000-2.bat" で保存して実行すれば数式が表示されます。
: 等分布荷重 単純支持
@echo off
path C:\maxima-5.46.0\bin;%path%
ruby -x %~f0 5 -10 0.15 0.3 6.5 6.5/15 1.2
pause
goto:eof
#!ruby
def pt_qm_tp_0(l, w, b, h, e, g, κ)
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(M, x = 0) = 0, ev(V, x = 0) = 0, ev(M, x = L) = 0, ev(V, x = L) = 0]
, [C1, C2, C3, C4])$ /*(M7)*/
[Q, M, T, V]: subst(s, [Q, M, T/EI, V/EI]); /* (M8) */
print("q =", string(factor(ratsubst(__g__, κ*EI/GA/L^2, Q))))$ /* (M8-1) */
print("m =", string(factor(ratsubst(__g__, κ*EI/GA/L^2, M))))$ /* (M8-2) */
print("t =", string(factor(ratsubst(__g__, κ*EI/GA/L^2, T))))$ /* (M8-3) */
print("v =", string(factor(ratsubst(__g__, κ*EI/GA/L^2, V))))$ /* (M8-4) */
[L, w, B, D, e, g, κ]: [#{l}, #{w}, #{b}, #{h}, #{e}, #{g}, #{κ}]$ /* (M9) */
[EI, GA]: [e*B*D^3/12, g*B*D] * 10^6$ /* (M10) */
plot2d([Q, M, T*1000, V*1000, p], [x, 0, L])$ /* (M11) */
?sleep(5)$ /* (M12) 5秒表示 */
quit()$ /* (M13) 終了 */
Maxima
f.close
end
l, w, b, h, e, g, κ = ARGV.map { |x| eval(x) } # m, kN/m, m, m, kN/mm2, kN/mm2
pt_qm_tp_0(l, w, b, h, e, g, κ)
__END__
(M8)~(M8-4)で 数式がコマンドプロンプトに
と表示されます。
maxima で求めた数式は テキストファイルで数値化して ruby とやり取りできるので この数式を ruby で直接利用するのはやめます。おそらく泥沼です。
コマンドプロンプトに表示された数式をコピーしてエディタに貼り付ければなんとかなります。
せん断変形を考慮したはりの計算式は maxima を利用すれば簡単に解けることがわかりました。
次回は maxima により曲げとせん断の成分を表示するやり方を紹介します。
2023/11/06 に計算式に(4-1)式を追加しました。