本稿は ティモシェンコ梁でも モールの定理が使えることを紹介します。
本稿の弾性曲線式は以下のように扱っています。
モールの定理は以下の関係を利用します。
ただし 片持ち梁は 自由端と固定端を逆にして解きます。
今回は 等分布荷重の数式処理ソフト maxima のプログラム例を紹介します。
例(1) 単純ばり 等分布荷重
:モールの定理 単純ばり 等分布荷重
@echo off
path C:\maxima-5.47.0\bin;%path%
ruby -x %~f0 5 -10 0.15 0.30 6.5
pause
goto:eof
#!ruby
l, pw, b, d, e = ARGV.map { |x| x.to_f }
f = open "| maxima --very-quiet", "w"
f.print <<~Maxima
m: -w * x * (x - L) / 2$
Q: C5 - integrate(m, x)$
M: C6 + integrate(Q, x)$
[Q, M]: ev([Q, M], solve([ev(M, x = 0) = 0, ev(M, x = L) = 0], [C5, C6]))$
M: M + (m - ev(m, x = 0)) * κ * EI / GA$
print("T =", string(factor(ratsimp(factor(ratsubst(__g__, κ * EI / GA / L^2, Q))))))$
print("V =", string(factor(ratsimp(factor(ratsubst(__g__, κ * EI / GA / L^2, M))))))$
[L, w, B, D, e]: [#{l}, #{pw}, #{b}, #{d}, #{e}]$
EI: e * B * D^3 / 12 * 10^6$ /* kN*m*m */
κ: 1.2$
GA: e / 15 * B * D * 10^6$
plot2d([Q/EI*1000, M/EI*1000, m], [x, 0, L], [legend, "T x1000rad", "V kNm", "m"],
[box, false], grid2d, [title, "Lite & Seen Lite"])$
?sleep(10)$
quit()$
Maxima
f.close
__END__
計算結果は
となります。
例(2) 片持ち梁 等分布荷重
:モールの定理 片持ち梁 等分布荷重
@echo off
path C:\maxima-5.47.0\bin;%path%
ruby -x %~f0 2 -10 0.15 0.30 6.5
pause
goto:eof
#!ruby
l, pw, b, d, e = ARGV.map { |x| x.to_f }
f = open "| maxima --very-quiet", "w"
f.print <<~Maxima
m: -w * x^2 / 2$
Q: C5 - integrate(m, x)$
M: C6 + integrate(Q, x)$
[Q, M]: ev([Q, M], solve([ev(Q, x = L) = 0, ev(M, x = L) = 0], [C5, C6]))$
M: M + (m - ev(m, x = L)) * κ * EI / GA$
print("T =", string(factor(ratsimp(factor(ratsubst(__g__, κ * EI / GA / L^2, Q))))))$
print("V =", string(factor(ratsimp(factor(ratsubst(__g__, κ * EI / GA / L^2, M))))))$
[L, w, B, D, e]: [#{l}, #{pw}, #{b}, #{d}, #{e}]$
EI: e * B * D^3 / 12 * 10^6$ /* kN*m*m */
κ: 1.2$
GA: e / 15 * B * D * 10^6$
plot2d([Q/EI*1000, M/EI*1000, m], [x, 0, L], [legend, "T x1000rad", "V kNm", "m"],
[box, false], grid2d, [title, "Lite & Seen Lite"])$
?sleep(5)$
quit()$
Maxima
f.close
__END__
計算結果は
となります。
例(3) 両端固定 等分布荷重
:モールの定理 両端固定 等分布荷重
@echo off
path C:\maxima-5.47.0\bin;%path%
ruby -x %~f0 5 -10 0.15 0.30 6.5
pause
goto:eof
#!ruby
l, pw, b, d, e = ARGV.map { |x| x.to_f }
f = open "| maxima --very-quiet", "w"
f.print <<~Maxima
/* 単純ばりで計算 */
m: -w * x * (x - L) / 2$
Q: C5 - integrate(m, x)$
M: C6 + integrate(Q, x)$
[Q, M]: ev([Q, M], solve([ev(M, x = 0) = 0, ev(M, x = L) = 0], [C5, C6]))$
M: M + (m - ev(m, x = 0)) * κ * EI / GA$
/* 固定端モーメントを補正 */
C: w * L^2 / 12$
Q: Q - C * (L - 2 * x) / 2$
M: M - C * x * (L - x) / 2$
print("T =", string(factor(ratsimp(factor(ratsubst(__g__, κ * EI / GA / L^2, Q))))))$
print("V =", string(factor(ratsimp(factor(ratsubst(__g__, κ * EI / GA / L^2, M))))))$
[L, w, B, D, e]: [#{l}, #{pw}, #{b}, #{d}, #{e}]$
EI: e * B * D^3 / 12 * 10^6$ /* kN*m*m */
κ: 1.2$
GA: e / 15 * B * D * 10^6$
plot2d([Q/EI*1000, M/EI*1000, m], [x, 0, L], [legend, "T x1000rad", "V kNm", "m"],
[box, false], grid2d, [title, "Lite & Seen Lite"])$
?sleep(5)$
quit()$
Maxima
f.close
__END__
計算結果は
となります。
例(4) 1端ピン他端固定 等分布荷重
:モールの定理 1端ピン他端固定 等分布荷重
@echo off
path C:\maxima-5.47.0\bin;%path%
ruby -x %~f0 5 -10 0.15 0.30 6.5
pause
goto:eof
#!ruby
l, pw, b, d, e = ARGV.map { |x| x.to_f }
f = open "| maxima --very-quiet", "w"
f.print <<~Maxima
/* 単純ばりで計算 */
m : w * x * (L - x) / 2$
Q: C5 - integrate(m, x)$
M: C6 + integrate(Q, x)$
[Q, M]: ev([Q, M], solve([ev(M, x = 0) = 0, ev(M, x = L) = 0], [C5, C6]))$
M: M + (m - ev(m, x=0)) * κ * EI / GA$
/* 固定端モーメントを補正 */
C: w * L^2 / (8 * (3 * __g__ + 1))$
Q: Q - C * (L^2 - 3 * x^2) / (6 * L)$
M: M - C * x * (L - x) * (L + x) / (6 * L)$
print("T =", string(factor(ratsimp(factor(ratsubst(__g__, κ * EI / GA / L^2, Q))))))$
print("V =", string(factor(ratsimp(factor(ratsubst(__g__, κ * EI / GA / L^2, M))))))$
[L, w, B, D, e]: [#{l}, #{pw}, #{b}, #{d}, #{e}]$
EI: e * B * D^3 / 12 * 10^6$ /* kN*m*m */
κ: 1.2$
GA: e / 15 * B * D * 10^6$
__g__: κ * EI / GA / L^2$
plot2d([Q/EI*1000, M/EI*1000, m], [x, 0, L], [legend, "T x1000rad", "V kNm", "m"],
[box, false], grid2d, [title, "Lite & Seen Lite"])$
?sleep(5)$
quit()$
Maxima
f.close
__END__
計算結果は
となります。
モールの定理は「弾性曲線式が適用できるはりは モーメント分布(M)を曲げ剛性(EI)で除したものを荷重に見立てると、せん断力がたわみ角、曲げモーメントがたわみに相当する」とでも言うことができます。
ティモシェンコ梁のたわみを曲げとせん断に分けて考えるとモールの定理を曲げたわみの計算に利用できることもわかりました。ティモシェンコ梁のせん断たわみは曲げモーメント、曲げ剛性、せん断剛性、スパン長から簡単に計算できることも見つけました。
モール教授は 弾性曲線式をマウントするためのツールとしては見ていないと思います。
そうでないでも それはそれでおもしろいのですが。
モール教授の時代に パソコンと maxima があったら どうなっていたのか。