フック則とたわみ角法(11) - 番外 荷重項 -

ポテンシャルエネルギーを考えれば フック則からたわみ角法の基本式を求めることができました。


今回は 数式処理ソフト maxima で たわみ角法の基本式の荷重項を算定します。

 


(16), (17)式は 集中曲げの せん断変形には対応できません。

 


つぎのプログラムを 300-11.bat で保存して実行すると

: たわみ角法の基本式の荷重項
@echo off
path C:\maxima-5.47.0\bin;%path%
ruby -x %~f0
pause
goto:eof

#!ruby

$BETA_FLG = 1 # 0=曲げ 1=曲げ+せん断

def CD_1()
f = open "| maxima --very-quiet", "w"
f.print <<~Maxima
  assume(L > 0, a >= 0, L >= a)$

  L: a+b$

  PM: 0$
  p1: -0$
  Q1: C1 + integrate(p1, x)$
  M1: C2 + integrate(Q1, x)$
  p2: -0$
  Q2: C5 + integrate(p2, x)$
  M2: C6 + integrate(Q2, x)$

/* 単純支持ばりのせん断応力、曲げモーメント */
  s: solve([
    ev(M1, x = 0) = 0,
    ev(Q1, x = a) - ev(Q2, x = a) = P, /* P は 上向きが正 */
    ev(M1, x = a) - ev(M2, x = a) = -PM, /* PM は 右回りが正 */
    ev(M2, x = L) = 0],
    [C1, C2, C5, C6])$
  [Q1, M1]: ev([Q1, M1], s)$
  [Q2, M2]: ev([Q2, M2], s)$

  if #{$BETA_FLG} = 0 then [
    A1: integrate( (1 - x / L) ^ 2 / EI, x, 0, L),
    A2: integrate( (1 - x / L) * x / L / EI, x, 0, L),
    B1: A2,
    B2: integrate( (x / L) ^ 2 / EI, x, 0, L),
    A3: integrate(M1 * (1 - x / L) / EI, x, 0, a) + integrate(M2 * (1 - x / L) / EI, x, a, L),
    B3: -integrate(M1 * x / L / EI, x, 0, a) - integrate(M2 * x / L / EI, x, a, L)]
  else [
    A1: integrate( (1 - x / L) ^ 2 / EI, x, 0, L) + integrate(κ / GA / L ^ 2, x, 0, L),
    A2: integrate( (1 - x / L) * x / L / EI, x, 0, L) - integrate(κ / GA / L ^ 2, x, 0, L),
    B1: A2,
    B2: integrate( (x / L) ^ 2 / EI, x, 0, L) + integrate(κ / GA / L ^ 2, x, 0, L),
    A3: integrate(M1 * (1 - x / L) / EI, x, 0, a) + integrate(M2 * (1 - x / L) / EI, x, a, L) + 
        integrate(κ * Q1 / GA / L, x, 0, a) + integrate(κ * Q2 / GA / L, x, a, L),
    B3: -integrate(M1 * x / L / EI, x, 0, a) - integrate(M2 * x / L / EI, x, a, L) + 
        integrate(κ * Q1 / GA / L, x, 0, a) + integrate(κ * Q2 / GA / L, x, a, L)]$
  C1: -(A3 * B2 + B3 * A2) / (A1 * B2 - A2 * B1)$
  C2: -(A3 * B1 + B3 * A1) / (A1 * B2 - A2 * B1)$
  print("c1 =", string(factor(ratsubst(__g__, κ * EI / GA / L ^ 2, factor(ev(C1, x = 0))))))$
  print("c2 =", string(factor(ratsubst(__g__, κ * EI / GA / L ^ 2, factor(ev(C2, x = L))))))$
  D1: -ev(Q1, x=0) + (C1 + C2) / L$
  D2: -ev(Q2, x=L) - (C1 + C2) / L$
  print("d1 =", string(factor(ratsubst(__g__, κ * EI / GA / L ^ 2, factor(D1)))))$
  print("d2 =", string(factor(ratsubst(__g__, κ * EI / GA / L ^ 2, factor(D2)))))$
  quit()$
Maxima
f.close
end
CD_1()
__END__

 

計算結果は

となります。

 

わかりづらいので 整理しました。

[ 集中荷重 ]
c1 = -P*a*b^2/L^2
c2 = P*a^2*b/L^2
d1 = -P*b^2*(b+3*a)/L^3
d2 = P*a*(2*b^2+a*b+a^2)/L^3

[ 集中荷重  曲げ+せん断 ]

c1 = -P*a*b*(b+6*__g__*L)/( (12*__g__+1)*L^2)
c2 = P*a*b*(a+6*__g__*L)/( (12*__g__+1)*L^2)
d1 = -P*b*(b^2+3*a*b+12*__g__*L^2)/( (12*__g__+1)*L^3)
d2 = P*a*(2*b^2+a*b+a^2+12*__g__*L^2)/( (12*__g__+1)*L^3)

ただし __g__ は κ * EI / GA / L ^ 2

 

 

数式処理ソフトによって (16), (17)式 からでも 荷重項が求められることはわかったのですが、弾性曲線式を解いたほうが わかりやすい気がします。

 


次回は 番外 荷重項のまとめ です。