ティモシェンコ梁とモールの定理(番外) - モールの定理の計算例 -

本稿は ティモシェンコ梁でも モールの定理が使えることを紹介します。

 

 

本稿の弾性曲線式は以下のように扱っています。

 

モールの定理は以下の関係を利用します。

ただし 片持ち梁は 自由端と固定端を逆にして解きます。

 

今回は 等分布荷重の数式処理ソフト 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 があったら どうなっていたのか。