jw_cad 外部変形 - (2921) はりを解く(両端回転ばね+鉛直ばね:集中曲げ) -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

maximaではりを解いています。

 

(はりを解く(両端回転ばね+鉛直ばね:集中曲げ))

KB : 回転ばね Rotation Spring

KV : 鉛直ばね Virtical Spring

L : スパン長 Span Length

a : 集中曲げの位置 Position of  load

x : はりの位置 Position

PM : 集中曲げ 左回りが正 turn-left is positive-direction

Q : せん断力 Shear ↓-↑ is positive-direction

M : 曲げモーメント 左回りが正 Bending Moment

T : たわみ角 Deflection Angle

V : たわみ Deflection

EI : 曲げ剛性 一定 Bending Stiffness (constant)

RA, MA, TA, VA : A 点の反力、曲げモーメント、たわみ角、たわみ

RB, MB, TB, VB : B 点の反力、曲げモーメント、たわみ角、たわみ

 

[ 実用弾性曲線式 ]

    EI * V(4)(x) = -p(x)
    p(x) = -w(x)
    Q(x) = C1 + ∫ p(x) dx
    M(x) = C2 + ∫ Q(x) dx
    r(x) = -M(x) / EI
    T(x) = C3 + ∫ r(x) dx
    V(x) = C4 + ∫ T(x) dx
  ただし
    w(x) : 分布荷重 上方向が正
    p(x) : 分布荷重 kN/m 上方向が正
    Q(x) : せん断力 kN ↓-↑が正
    M(x) : 曲げモーメント kNm 左回りが正
    r(x) : 曲率 1/m 上に凸が正
    T(x) : たわみ角 rad 左回りが正
    V(x) : たわみ m 上方向が正
    EI : 曲げ剛性(一定) kN*m*m
    C1,C2,C3,C4 : 積分定数

 

スクリプト例

:はりを解く(両端回転ばね+鉛直ばね:集中曲げ)
@echo off
path C:\maxima-5.49.0\bin;%path%
more +4 %0 | maxima --very-quiet & pause & goto:eof
/*
:            PM
:   _________/________
   ◎                ◎ KB
    >                 > KV
:   0        a        L ---> x
:   |--------L--------|

    y
    |
    |_____x
  /
 z

  PM : 集中曲げ 左回りが正 kNm
  a : 集中曲げの位置 m
  KB : 回転ばね kNm/rad
  KV : 鉛直ばね kN/m
  Q : せん断力 ↓・↑ が正 kN
  M : 曲げモーメント 左回りが正 kNm
  T : たわみ角 rad
  V : たわみ mm
  L : スパン長 m
  EI : 曲げ剛性(一定)

  エンコード UTF-8(BOM無し) で保存して実行してください。
*/
assume(L>0,a>=0)$
P: 0$

define(Q1(x), C1)$
define(M1(x), C2 + integrate(Q1(x), x))$
define(T1(x), C3 - integrate(M1(x) / EI, x))$
define(V1(x), C4 + integrate(T1(x), x))$
define(Q2(x), C5)$
define(M2(x), C6 + integrate(Q2(x), x))$
define(T2(x), C7 - integrate(M2(x) / EI, x))$
define(V2(x), C8 + integrate(T2(x), x))$

co: [Q1(a) - Q2(a) = P, /* P は 上向きが正 */
  M1(a) - M2(a) = -PM, /* PM は 左回りが正 */
  T1(a) = T2(a),
  V1(a) = V2(a)]$
s: solve(append(
  [M1(0) =-T1(0)*KB, Q1(0) = V1(0)*KV, M2(L) = T2(L)*KB, Q2(L) =-V2(L)*KV], co),
  [C1, C2, C3, C4, C5, C6, C7, C8])$

[Q1, M1, T1, V1]: ev([Q1(x), M1(x), T1(x), V1(x)], s)$
[Q2, M2, T2, V2]: ev([Q2(x), M2(x), T2(x), V2(x)], s)$
[C1,C2,C3,C4,C5,C6,C7,C8]:ev([C1,C2,C3,C4,C5,C6,C7,C8],s)$

Q:if x <= a then Q1 else Q2$
M:if x <= a then M1 else M2$
T:if x <= a then T1 else T2$
V:if x <= a then V1 else V2$

xMmax:a$

/*
RA: 6*KV*PM*(KB*(a-L)*a-EI*L)/((KB*L+6*EI)*KV*L^2+24*EI*KB)$
MA:-KB*PM*((KB*L*(a-L)*(3*a-L)+2*EI*(3*a*(a-2*L)+2*L^2))*KV*L-24*EI*(KB*(a-L)-EI)
)/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
RB:-RA$
MB: KB*PM*((KB*L*a*(3*a-2*L)+2*EI*(3*a^2-L^2))*KV*L+24*EI*(KB*a+EI)
)/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
TA:-MA/KB$
VA: RA/KV$
TB: MB/KB$
VB: RB/KV$

Q1: RA$
Q2:-RB$
M1: MA+RA*x$
M2: MB-RB*(x-L)$
T1: TA-MA*x/EI-RA*x^2/(2*EI)$
T2: TB-MB*(x-L)/EI+RB*(x-L)^2/(2*EI)$
V1: VA+TA*x-MA*x^2/(2*EI)-RA*x^3/(6*EI)$
V2: VB+TB*(x-L)-MB*(x-L)^2/(2*EI)+RB*(x-L)^3/(6*EI)$
*/

[L,a,PM,B,D,E]: [5,2,-50,0.15,0.30,6.5]$

KB:1000*10$
KV:1000*10$
EI: E * B * D^3 / 12 * 10^6$ /* kN*m*m */

/* xVmax 100,000,000 divisions */
vvv:0$ xxx:0$
m:L*100$ dx: L/m$
for i:0 thru m do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx1:xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:1$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx2:if xxx=0 then xx1 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.01$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx3:if xxx=0 then xx2 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.0001$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xVmax:if xxx=0 then xx3 else xxx$

/* 総合図 */
pm:if a > L-a then [[xMmax, 0], [xMmax, ev(M1,x=ev(xMmax))]] else [[xMmax, 0], [xMmax, ev(M2,x=ev(xMmax))]]$
pv:[[xVmax, 0], [xVmax, ev(V,x=ev(xVmax))*1000]]$
plot2d([Q,M,T*1000,V*1000,[discrete,pm],[discrete,pv]], [x,0,L], grid2d, [title, "Euler-Bernoulli's beam"],
  [legend,"Q kN","M kNm","T x1/1,000 rad","V mm","Mmax","Vmax"],
  [style,lines,lines,lines,lines,linespoints,linespoints],
  [color,red,blue,green,magenta,blue,magenta])$

/* 画面表示 */
print("Virtical Deflection")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "V(~06,3f)=~09,3f~%",i*dx,float(ev(V,x=dx*i))*1000)$

print("Vmax of calcurated value")$
printf(true, "V(~09,06f)=~015,12f~%",ev(xVmax),ev(V,x=ev(xVmax))*1000)$

print("Bending Moment")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "M(~06,3f)=~09,3f~%",i*dx,float(ev(M,x=dx*i)))$

print("Mmax of calcurated value")$
printf(true, "1(~09,6f)=~015,12f~%",ev(xMmax),ev(M1,x=ev(xMmax)))$
printf(true, "2(~09,6f)=~015,12f~%",ev(xMmax),ev(M2,x=ev(xMmax)))$
printf(true, "A(~09,6f)=~015,12f~%",0,ev(M,x=0))$
printf(true, "B(~09,6f)=~015,12f~%",L,ev(M,x=L))$

?sleep(10)$
quit()$

 

(総合図)

  KB=1000*10 kNm/rad

  KV=1000*10 kN/m

  L=5.0m

  a=2.0m

  PM=-50 kNm

  B x D = 150x300mm

  E65-F225 構造用集成材 すぎ(JAS)

 

(計算結果)

 

jw_cad 外部変形 - (2920) はりを解く(両端回転ばね+鉛直ばね:集中荷重) -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

maximaではりを解いています。

 

(はりを解く(両端回転ばね+鉛直ばね:集中荷重))  2026/05/09 訂正

KB : 回転ばね Rotation Spring

KV : 鉛直ばね Virtical Spring

L : スパン長 Span Length

a : 集中荷重の位置 Position of concentrated load

x : はりの位置 Position

P : 集中荷重 上方向が正 Concentrated Load UP-side is positive-direction

Q : せん断力 Shear ↓-↑ is positive-direction

M : 曲げモーメント 左回りが正 Bending Moment

T : たわみ角 Deflection Angle

V : たわみ Deflection

EI : 曲げ剛性 一定 Bending Stiffness (constant)

RA, MA, TA, VA : A 点の反力、曲げモーメント、たわみ角、たわみ

RB, MB, TB, VB : B 点の反力、曲げモーメント、たわみ角、たわみ

 

[ 実用弾性曲線式 ]

    EI * V(4)(x) = -p(x)
    p(x) = -w(x)
    Q(x) = C1 + ∫ p(x) dx
    M(x) = C2 + ∫ Q(x) dx
    r(x) = -M(x) / EI
    T(x) = C3 + ∫ r(x) dx
    V(x) = C4 + ∫ T(x) dx
  ただし
    w(x) : 分布荷重 上方向が正
    p(x) : 分布荷重 kN/m 上方向が正
    Q(x) : せん断力 kN ↓-↑が正
    M(x) : 曲げモーメント kNm 左回りが正
    r(x) : 曲率 1/m 上に凸が正
    T(x) : たわみ角 rad 左回りが正
    V(x) : たわみ m 上方向が正
    EI : 曲げ剛性(一定) kN*m*m
    C1,C2,C3,C4 : 積分定数

 

スクリプト例

:はりを解く(両端回転ばね+鉛直ばね:集中荷重)
@echo off
path C:\maxima-5.49.0\bin;%path%
more +4 %0 | maxima --very-quiet & pause & goto:eof
/*
:            P
:   _________|________
   ◎                ◎ KB
    >                 > KV
:   0        a        L ---> x
:   |--------L--------|

    y
    |
    |_____x
  /
 z

  P : 集中荷重 上方向が正 kN
  a : 集中荷重の位置 m
  KB : 回転ばね kNm/rad
  KV : 鉛直ばね kN/m
  Q : せん断力 ↓・↑ が正 kN
  M : 曲げモーメント 左回りが正 kNm
  T : たわみ角 rad
  V : たわみ mm
  L : スパン長 m
  EI : 曲げ剛性(一定)

  エンコード UTF-8(BOM無し) で保存して実行してください。
*/
assume(L>0,a>=0)$
PM: 0$

define(Q1(x), C1)$
define(M1(x), C2 + integrate(Q1(x), x))$
define(T1(x), C3 - integrate(M1(x) / EI, x))$
define(V1(x), C4 + integrate(T1(x), x))$
define(Q2(x), C5)$
define(M2(x), C6 + integrate(Q2(x), x))$
define(T2(x), C7 - integrate(M2(x) / EI, x))$
define(V2(x), C8 + integrate(T2(x), x))$

co: [Q1(a) - Q2(a) = P, /* P は 上向きが正 */
  M1(a) - M2(a) = -PM, /* PM は 左回りが正 */
  T1(a) = T2(a),
  V1(a) = V2(a)]$
s: solve(append(
  [M1(0) =-T1(0)*KB, Q1(0) = V1(0)*KV, M2(L) = T2(L)*KB, Q2(L) =-V2(L)*KV], co),
  [C1, C2, C3, C4, C5, C6, C7, C8])$

[Q1, M1, T1, V1]: ev([Q1(x), M1(x), T1(x), V1(x)], s)$
[Q2, M2, T2, V2]: ev([Q2(x), M2(x), T2(x), V2(x)], s)$
[C1,C2,C3,C4,C5,C6,C7,C8]:ev([C1,C2,C3,C4,C5,C6,C7,C8],s)$

Q:if x <= a then Q1 else Q2$
M:if x <= a then M1 else M2$
T:if x <= a then T1 else T2$
V:if x <= a then V1 else V2$

xMmax:a$

/*
RA: P*((KB*(a-L)*(2*a+L)-6*EI*L)*KV*(a-L)+12*EI*KB)/((KB*L+6*EI)*KV*L^2+24*EI*KB)$
MA:-KB*P*((KB*L*(a-L)+2*EI*(a-2*L))*KV*L*a*(a-L)-6*EI*(KB*(2*a*(a-2*L)+L^2)-2*EI*(2*a-L))
)/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
RB: P-RA$
MB:KB*P*((KB*L*a+2*EI*(a+L))*KV*L*a*(a-L)+6*EI*(KB*(2*a^2-L^2)+2*EI*(2*a-L))
)/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
TA:-MA/KB$
VA: RA/KV$
TB: MB/KB$
VB: RB/KV$

Q1: RA$
Q2:-RB$
M1: MA+RA*x$
M2: MB-RB*(x-L)$
T1: TA-MA*x/EI-RA*x^2/(2*EI)$
T2: TB-MB*(x-L)/EI+RB*(x-L)^2/(2*EI)$
V1: VA+TA*x-MA*x^2/(2*EI)-RA*x^3/(6*EI)$
V2: VB+TB*(x-L)-MB*(x-L)^2/(2*EI)+RB*(x-L)^3/(6*EI)$
*/

[L,a,P,B,D,E]: [5,2,-20,0.15,0.30,6.5]$

KB:1000*10$
KV:1000*10$
EI: E * B * D^3 / 12 * 10^6$ /* kN*m*m */

/* xVmax 100,000,000 divisions */
vvv:0$ xxx:0$
m:L*100$ dx: L/m$
for i:0 thru m do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx1:xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:1$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx2:if xxx=0 then xx1 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.01$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx3:if xxx=0 then xx2 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.0001$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xVmax:if xxx=0 then xx3 else xxx$

/* 総合図 */
pm:if a > L-a then [[xMmax, 0], [xMmax, ev(M1,x=ev(xMmax))]] else [[xMmax, 0], [xMmax, ev(M2,x=ev(xMmax))]]$
pv:[[xVmax, 0], [xVmax, ev(V,x=ev(xVmax))*1000]]$ plot2d([Q,M,T*1000,V*1000,[discrete,pm],[discrete,pv]], [x,0,L], grid2d, [title, "Euler-Bernoulli's beam"], [legend,"Q kN","M kNm","T x1/1,000 rad","V mm","Mmax","Vmax"], [style,lines,lines,lines,lines,linespoints,linespoints], [color,red,blue,green,magenta,blue,magenta])$ /* 画面表示 */ print("Virtical Deflection")$ m:L*100$ dx: L/m$ for i:0 thru m do if mod(i,m/10) = 0 then printf(true, "V(~06,3f)=~09,3f~%",i*dx,float(ev(V,x=dx*i))*1000)$ print("Vmax of calcurated value")$ printf(true, "V(~09,06f)=~015,12f~%",ev(xVmax),ev(V,x=ev(xVmax))*1000)$ print("Bending Moment")$ m:L*100$ dx: L/m$ for i:0 thru m do if mod(i,m/10) = 0 then printf(true, "M(~06,3f)=~09,3f~%",i*dx,float(ev(M,x=dx*i)))$ print("Mmax of calcurated value")$
printf(true, "1(~09,6f)=~015,12f~%",ev(xMmax),ev(M1,x=ev(xMmax)))$
printf(true, "2(~09,6f)=~015,12f~%",ev(xMmax),ev(M2,x=ev(xMmax)))$
printf(true, "A(~09,6f)=~015,12f~%",0,ev(M,x=0))$ printf(true, "B(~09,6f)=~015,12f~%",L,ev(M,x=L))$ ?sleep(10)$ quit()$

 

(総合図)

  KB=1000*10 kNm/rad

  KV=1000*10 kN/m

  L=5.0m

  a=2.0m

  P=-20 kN

  B x D = 150x300mm

  E65-F225 構造用集成材 すぎ(JAS)

 

(計算結果)

 

jw_cad 外部変形 - (2919) はりを解く(両端回転ばね+鉛直ばね:n次曲線分布荷重) -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

maximaではりを解いています。

 

(はりを解く(両端回転ばね+鉛直ばね:n次曲線分布荷重))  2026/05/09 訂正

KB : 回転ばね Rotation Spring

KV : 鉛直ばね Virtical Spring

L : スパン長 Span Length

x : はりの位置 Position

n : 荷重曲線の次数

w : 分布荷重 上方向が正 Distributed Load UP-side is positive-direction

Q : せん断力 Shear ↓-↑ is positive-direction

M : 曲げモーメント 左回りが正 Bending Moment

T : たわみ角 Deflection Angle

V : たわみ Deflection

EI : 曲げ剛性 一定 Bending Stiffness (constant)

RA, MA, TA, VA : A 点の反力、曲げモーメント、たわみ角、たわみ

RB, MB, TB, VB : B 点の反力、曲げモーメント、たわみ角、たわみ

 

[ 実用弾性曲線式 ]

    EI * V(4)(x) = -p(x)
    p(x) = -w(x)
    Q(x) = C1 + ∫ p(x) dx
    M(x) = C2 + ∫ Q(x) dx
    r(x) = -M(x) / EI
    T(x) = C3 + ∫ r(x) dx
    V(x) = C4 + ∫ T(x) dx
  ただし
    w(x) : 分布荷重 上方向が正
    p(x) : 分布荷重 kN/m 上方向が正
    Q(x) : せん断力 kN ↓-↑が正
    M(x) : 曲げモーメント kNm 左回りが正
    r(x) : 曲率 1/m 上に凸が正
    T(x) : たわみ角 rad 左回りが正
    V(x) : たわみ m 上方向が正
    EI : 曲げ剛性(一定) kN*m*m
    C1,C2,C3,C4 : 積分定数

 

スクリプト例

:はりを解く(両端回転ばね+鉛直ばね:n次曲線分布荷重)
@echo off
path C:\maxima-5.49.0\bin;%path%
more +4 %0 | maxima --very-quiet & pause & goto:eof
/*
:         ___w___
:   _________|________
   ◎                ◎ KB
    >                 > KV
:   0                 L ---> x
:   |--------L--------|

    y
    |
    |_____x
  /
 z

  n : 荷重曲線の次数
  w : 等分布荷重 上方向が正 kN/m
  KB : 回転ばね kNm/rad
  KV : 鉛直ばね kN/m
  Q : せん断力 ↓・↑ が正 kN
  M : 曲げモーメント 左回りが正 kNm
  T : たわみ角 rad
  V : たわみ mm
  L : スパン長 m
  EI : 曲げ剛性(一定)

  エンコード UTF-8(BOM無し) で保存して実行してください。
*/
assume(L>0,n>=0)$
p: -w*(x/L)^n$

define(Q(x), C1 + integrate(p, x))$
define(M(x), C2 + integrate(Q(x), x))$
define(T(x), C3 - integrate(M(x) / EI, x))$
define(V(x), C4 + integrate(T(x), x))$
s: solve([M(0) =-T(0)*KB, Q(0) = V(0)*KV,
          M(L) = T(L)*KB, Q(L) =-V(L)*KV], [C1, C2, C3, C4])$
[Q, M, T, V]: ev([Q(x), M(x), T(x), V(x)], s)$
[C1,C2,C3,C4]:ev([C1,C2,C3,C4],s)$

/*
RA: 6*L*(2*EI*KB*(n+2)*(n+3)*(n+4)+KV*L^2*(EI*(n+3)*(n+4)+KB*L*(n+2))
)*w/(((KB*L+6*EI)*KV*L^2+24*EI*KB)*(n+1)*(n+2)*(n+3)*(n+4))$
MA:-2*KB*L^2*(3*EI*(KB*L*(n+4)*((n+5)*n+2)+2*EI*n*(n+3)*(n+4))+KV*L^3*(EI*(n+1)*(n+6)+KB*L*(n+1))
)*w/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB)*(n+1)*(n+2)*(n+3)*(n+4))$
TA:-MA/KB$
VA: RA/KV$
RB: L*w/(n+1)-RA$
MB: KB*L^2*(6*EI*(KB*L*(n-1)*(n+2)*(n+4)+2*EI*n*(n+3)*(n+4))-KV*L^3*(KB*L*(n+1)*(n+2)+4*EI*(n+1)*(n+3))
)*w/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB)*(n+1)*(n+2)*(n+3)*(n+4))$
TB: MB/KB$
VB: RB/KV$

Q: RA-w*x^(n+1)/(L^n*(n+1))$
M: MA+RA*x-w*x^(n+2)/(L^n*(n+1)*(n+2))$
T: TA-MA*x/EI-RA*x^2/(2*EI)+w*x^(n+3)/(EI*L^n*(n+1)*(n+2)*(n+3))$
V: VA+TA*x-MA*x^2/(2*EI)-RA*x^3/(6*EI)+w*x^(n+4)/(EI*L^n*(n+1)*(n+2)*(n+3)*(n+4))$
*/

n:0.5$
[L,w,B,D,E]: [5,-10,0.15,0.30,6.5]$

KB:1000*10$
KV:1000*10$
EI: E * B * D^3 / 12 * 10^6$ /* kN*m*m */

/* xMmax 100,000,000 divisions */
vvv:0$ xxx:0$
m:L*100$ dx: L/m$
for i:m/5 thru m*4/5 do
  if abs(v:float(ev(M,x=dx*i))) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx1:xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:1$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(M,x=dx*i))) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx2:if xxx=0 then xx1 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.01$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(M,x=dx*i))) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx3:if xxx=0 then xx2 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.0001$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(M,x=dx*i))) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xMmax:if xxx=0 then xx3 else xxx$
xMmax:if xMmax < 0 then 0 else xMmax$
xMmax:if L < xMmax then L else xMmax$

/* xVmax 100,000,000 divisions */
vvv:0$ xxx:0$
m:L*100$ dx: L/m$
for i:0 thru m do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx1:xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:1$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx2:if xxx=0 then xx1 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.01$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx3:if xxx=0 then xx2 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.0001$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xVmax:if xxx=0 then xx3 else xxx$

/* 総合図 */
pm:[[xMmax, 0], [xMmax, ev(M,x=ev(xMmax))]]$
pv:[[xVmax, 0], [xVmax, ev(V,x=ev(xVmax))*1000]]$
plot2d([Q,M,T*1000,V*1000,p,[discrete,pm],[discrete,pv]], [x,0,L], grid2d, [title, "Euler-Bernoulli's beam"],
  [legend,"Q kN","M kNm","T x1/1,000 rad","V mm","p kN/m","Mmax","Vmax"],
  [style,lines,lines,lines,lines,lines,linespoints,linespoints,linespoints],
  [color,red,blue,green,magenta,brown,blue,magenta])$

/* 画面表示 */
print("Virtical Deflection")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "V(~06,3f)=~09,3f~%",i*dx,float(ev(V,x=dx*i))*1000)$

print("Vmax of calcurated value")$
printf(true, "V(~09,06f)=~015,12f~%",ev(xVmax),ev(V,x=ev(xVmax))*1000)$

print("Bending Moment")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "M(~06,3f)=~09,3f~%",i*dx,float(ev(M,x=dx*i)))$

print("Mmax of calcurated value")$
printf(true, "M(~09,6f)=~015,12f~%",ev(xMmax),ev(M,x=ev(xMmax)))$
printf(true, "A(~09,6f)=~015,12f~%",0,ev(M,x=0))$
printf(true, "B(~09,6f)=~015,12f~%",L,ev(M,x=L))$

?sleep(10)$
quit()$

 

(総合図)

  KB=1000*10 kNm/rad

  KV=1000*10 kN/m

  n=0.5 (0=等分布、1=三角形分布、2=2次曲線)

  L=5.0m

  w=-10 kN/m

  B x D = 150x300mm

  E65-F225 構造用集成材 すぎ(JAS)

 

(計算結果)

 

jw_cad 外部変形 - (2918) はりを解く(両端回転ばね+鉛直ばね:等変分布荷重) -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

maximaではりを解いています。

 

(はりを解く(両端回転ばね+鉛直ばね:等変分布荷重))  2026/05/09 訂正

KB : 回転ばね Rotation Spring

KV : 鉛直ばね Virtical Spring

L : スパン長 Span Length

x : はりの位置 Position

w1, w2 : 分布荷重 上方向が正 Distributed Load UP-side is positive-direction

Q : せん断力 Shear ↓-↑ is positive-direction

M : 曲げモーメント 左回りが正 Bending Moment

T : たわみ角 Deflection Angle

V : たわみ Deflection

EI : 曲げ剛性 一定 Bending Stiffness (constant)

RA, MA, TA, VA : A 点の反力、曲げモーメント、たわみ角、たわみ

RB, MB, TB, VB : B 点の反力、曲げモーメント、たわみ角、たわみ

 

[ 実用弾性曲線式 ]

    EI * V(4)(x) = -p(x)
    p(x) = -w(x)
    Q(x) = C1 + ∫ p(x) dx
    M(x) = C2 + ∫ Q(x) dx
    r(x) = -M(x) / EI
    T(x) = C3 + ∫ r(x) dx
    V(x) = C4 + ∫ T(x) dx
  ただし
    w(x) : 分布荷重 上方向が正
    p(x) : 分布荷重 kN/m 上方向が正
    Q(x) : せん断力 kN ↓-↑が正
    M(x) : 曲げモーメント kNm 左回りが正
    r(x) : 曲率 1/m 上に凸が正
    T(x) : たわみ角 rad 左回りが正
    V(x) : たわみ m 上方向が正
    EI : 曲げ剛性(一定) kN*m*m
    C1,C2,C3,C4 : 積分定数

 

スクリプト例

:はりを解く(両端回転ばね+鉛直ばね:等変分布荷重)
@echo off
path C:\maxima-5.49.0\bin;%path%
more +4 %0 | maxima --very-quiet & pause & goto:eof
/*
:   w1_______________w2
:   |________|_______ |
   ◎                ◎ KB
    <                 < KV
:   0                 L ---> x
:   |--------L--------|

    y
    |
    |_____x
  /
 z

  w1, w2 : 等分布荷重 上方向が正 kN/m
  KB : 回転ばね kNm/rad
  KV : 鉛直ばね kN/m
  Q : せん断力 ↓・↑ が正 kN
  M : 曲げモーメント 左回りが正 kNm
  T : たわみ角 rad
  V : たわみ mm
  L : スパン長 m
  EI : 曲げ剛性(一定)

  エンコード UTF-8(BOM無し) で保存して実行してください。
*/
assume(L>0)$
p: -w1-(w2-w1)*x/L$

define(Q(x), C1 + integrate(p, x))$
define(M(x), C2 + integrate(Q(x), x))$
define(T(x), C3 - integrate(M(x) / EI, x))$
define(V(x), C4 + integrate(T(x), x))$
s: solve([M(0) =-T(0)*KB, Q(0) = V(0)*KV,
          M(L) = T(L)*KB, Q(L) =-V(L)*KV], [C1, C2, C3, C4])$
[Q, M, T, V]: ev([Q(x), M(x), T(x), V(x)], s)$
[C1,C2,C3,C4]:ev([C1,C2,C3,C4],s)$

xm:solve(Q=0,x)$
xMmax1:realpart(factor(rhs(xm[1])))$
xMmax2:realpart(factor(rhs(xm[2])))$
xMmax:if 0 <= xMmax1 and xMmax1 <= L then xMmax1 else xMmax2$
xMmax:if 0 <= float(ev(xMmax1)) and float(ev(xMmax1)) <= float(ev(L)) and 0 <= float(ev(xMmax2)) and float(ev(xMmax2)) <= float(ev(L)) and float(abs(ev(M, x=ev(xMmax1)))) < float(abs(ev(M, x=ev(xMmax2)))) then xMmax2 else xMmax$
/*
RA: L*((KB*L*(3*w2+7*w1)+20*EI*(w2+2*w1))*KV*L^2+120*EI*KB*(w2+w1))/(20*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
MA:-KB*L^2*((KB*L*(2*w2+3*w1)+EI*(14*w2+16*w1))*KV*L^3+120*EI*(KB*L*w2+EI*(w2-w1)))/(60*(KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
TA: L^2*((KB*L*(2*w2+3*w1)+EI*(14*w2+16*w1))*KV*L^3+120*EI*(KB*L*w2+EI*(w2-w1)))/(60*(KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
VA: L*((KB*L*(3*w2+7*w1)+20*EI*(w2+2*w1))*KV*L^2+120*EI*KB*(w2+w1))/(20*KV*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
RB: L*((KB*L*(7*w2+3*w1)+20*EI*(2*w2+w1))*KV*L^2+120*EI*KB*(w2+w1))/(20*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
RB: L*(w2+w1)/2-RA$
MB:-KB*L^2*((KB*L*(3*w2+2*w1)+EI*(16*w2+14*w1))*KV*L^3+120*EI*(KB*L*w1-EI*(w2-w1)))/(60*(KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
TB:-L^2*((KB*L*(3*w2+2*w1)+EI*(16*w2+14*w1))*KV*L^3+120*EI*(KB*L*w1-EI*(w2-w1)))/(60*(KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
VB: L*((KB*L*(7*w2+3*w1)+20*EI*(2*w2+w1))*KV*L^2+120*EI*KB*(w2+w1))/(20*KV*((KB*L+6*EI)*KV*L^2+24*EI*KB))$

Q: RA-x*((w2-w1)*x+2*L*w1)/(2*L)$
M: MA+RA*x-x^2*((w2-w1)*x+3*L*w1)/(6*L)$
T: TA-MA*x/EI-RA*x^2/(2*EI)+x^3*((w2-w1)*x+4*L*w1)/(24*EI*L)$
V: VA+TA*x-MA*x^2/(2*EI)-RA*x^3/(6*EI)+x^4*((w2-w1)*x+5*L*w1)/(120*EI*L)$
*/

[L,w1,w2,B,D,E]: [5,-10,-20,0.15,0.30,6.5]$

KB:1000*10$
KV:1000*10$
EI: E * B * D^3 / 12 * 10^6$ /* kN*m*m */

/* xVmax 100,000,000 divisions */
vvv:0$ xxx:0$
m:L*100$ dx: L/m$
for i:0 thru m do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx1:xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:1$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx2:if xxx=0 then xx1 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.01$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx3:if xxx=0 then xx2 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.0001$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xVmax:if xxx=0 then xx3 else xxx$

/* 総合図 */
pm:[[xMmax, 0], [xMmax, ev(M,x=ev(xMmax))]]$
pv:[[xVmax, 0], [xVmax, ev(V,x=ev(xVmax))*1000]]$
plot2d([Q,M,T*1000,V*1000,p,[discrete,pm],[discrete,pv]], [x,0,L], grid2d, [title, "Euler-Bernoulli's beam"],
  [legend,"Q kN","M kNm","T x1/1,000 rad","V mm","p kN/m","Mmax","Vmax"],
  [style,lines,lines,lines,lines,lines,linespoints,linespoints,linespoints],
  [color,red,blue,green,magenta,brown,blue,magenta])$

/* 画面表示 */
print("Virtical Deflection")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "V(~06,3f)=~09,3f~%",i*dx,float(ev(V,x=dx*i))*1000)$

print("Vmax of calcurated value")$
printf(true, "V(~09,06f)=~015,12f~%",ev(xVmax),ev(V,x=ev(xVmax))*1000)$

print("Bending Moment")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "M(~06,3f)=~09,3f~%",i*dx,float(ev(M,x=dx*i)))$

print("Mmax of calcurated value")$
printf(true, "1(~09,6f)=~015,12f~%",ev(xMmax1),ev(M,x=ev(xMmax1)))$
printf(true, "2(~09,6f)=~015,12f~%",ev(xMmax2),ev(M,x=ev(xMmax2)))$
printf(true, "A(~09,6f)=~015,12f~%",0,ev(M,x=0))$
printf(true, "B(~09,6f)=~015,12f~%",L,ev(M,x=L))$

?sleep(10)$
quit()$

 

(総合図)

  KB=1000*10 kNm/rad

  KV=1000*10 kN/m

  L=5.0m

  w1=-10 kN/m

  w2=-20 kN/m

  B x D = 150x300mm

  E65-F225 構造用集成材 すぎ(JAS)


(計算結果)

 

jw_cad 外部変形 - (2917) はりを解く(両端回転ばね+鉛直ばね:等分布荷重) -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

maximaではりを解いています。

 

(はりを解く(両端回転ばね+鉛直ばね:等分布荷重))  2026/05/08 訂正

KB : 回転ばね Rotation Spring

KV : 鉛直ばね Virtical Spring

L : スパン長 Span Length

x : はりの位置 Position

w : 分布荷重 上方向が正 Distributed Load UP-side is positive-direction

Q : せん断力 Shear ↓-↑ is positive-direction

M : 曲げモーメント 左回りが正 Bending Moment

T : たわみ角 Deflection Angle

V : たわみ Deflection

EI : 曲げ剛性 一定 Bending Stiffness (constant)

RA, MA, TA, VA : A 点の反力、曲げモーメント、たわみ角、たわみ

RB, MB, TB, VB : B 点の反力、曲げモーメント、たわみ角、たわみ

 

[ 実用弾性曲線式 ]

    EI * V(4)(x) = -p(x)
    p(x) = -w(x)
    Q(x) = C1 + ∫ p(x) dx
    M(x) = C2 + ∫ Q(x) dx
    r(x) = -M(x) / EI
    T(x) = C3 + ∫ r(x) dx
    V(x) = C4 + ∫ T(x) dx
  ただし
    w(x) : 分布荷重 上方向が正
    p(x) : 分布荷重 kN/m 上方向が正
    Q(x) : せん断力 kN ↓-↑が正
    M(x) : 曲げモーメント kNm 左回りが正
    r(x) : 曲率 1/m 上に凸が正
    T(x) : たわみ角 rad 左回りが正
    V(x) : たわみ m 上方向が正
    EI : 曲げ剛性(一定) kN*m*m
    C1,C2,C3,C4 : 積分定数

 

スクリプト例

:はりを解く(両端回転ばね+鉛直ばね:等分布荷重)
@echo off
path C:\maxima-5.49.0\bin;%path%
more +4 %0 | maxima --very-quiet & pause & goto:eof
/*
:   _________w_________
:   |________|_______ |
   ◎                ◎ KB
    <                 < KV
:   0                 L ---> x
:   |--------L--------|

    y
    |
    |_____x
  /
 z

  w : 等分布荷重 上方向が正 kN/m
  KB : 回転ばね kNm/rad
  KV : 鉛直ばね kN/m
  Q : せん断力 ↓・↑ が正 kN
  M : 曲げモーメント 左回りが正 kNm
  T : たわみ角 rad
  V : たわみ mm
  L : スパン長 m
  EI : 曲げ剛性(一定)

  エンコード UTF-8(BOM無し) で保存して実行してください。
*/
assume(L>0)$
p:-w$

define(Q(x), C1 + integrate(p, x))$
define(M(x), C2 + integrate(Q(x), x))$
define(T(x), C3 - integrate(M(x) / EI, x))$
define(V(x), C4 + integrate(T(x), x))$
s: solve([M(0) =-T(0)*KB, Q(0) = V(0)*KV,
          M(L) = T(L)*KB, Q(L) =-V(L)*KV], [C1, C2, C3, C4])$
[Q, M, T, V]: ev([Q(x), M(x), T(x), V(x)], s)$
[C1,C2,C3,C4]:ev([C1,C2,C3,C4],s)$

xMmax:L/2$
Mmax:L^2*(KB*L+6*EI)*w/(24*(KB*L+2*EI))$
xVmax:L/2$
Vmax:L*(KV*L^3+192*EI)*w/(384*EI*KV)+L^4*w/(48*(KB*L+2*EI))$
/*
RA: L*w/2$
MA:-KB*L^3*w/(12*(KB*L+2*EI))$
TA: L^3*w/(12*(KB*L+2*EI))$
VA: L*w/(2*KV)$
TB:-L^3*w/(12*(KB*L+2*EI))$
VB: L*w/(2*KV)$

Q: RA-w*x$
M: MA+RA*x-w*x^2/2$
T: TA-MA*x/EI-RA*x^2/(2*EI)+w*x^3/(6*EI)$
V: VA+TA*x-MA*x^2/(2*EI)-RA*x^3/(6*EI)+w*x^4/(24*EI)$
*/

[L,w,B,D,E]: [5,-10,0.15,0.30,6.5]$

KB:1000*10$
KV:1000*10$
EI: E * B * D^3 / 12 * 10^6$ /* kN*m*m */

/* 総合図 */
pm:[[xMmax, 0], [xMmax, ev(M,x=ev(xMmax))]]$
pv:[[xVmax, 0], [xVmax, ev(V,x=ev(xVmax))*1000]]$
plot2d([Q,M,T*1000,V*1000,p,[discrete,pm],[discrete,pv]], [x,0,L], grid2d, [title, "Euler-Bernoulli's beam"],
  [legend,"Q kN","M kNm","T x1/1,000 rad","V mm","p kN/m","Mmax","Vmax"],
  [style,lines,lines,lines,lines,lines,linespoints,linespoints,linespoints],
  [color,red,blue,green,magenta,brown,blue,magenta])$

/* 画面表示 */
print("Virtical Deflection")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "V(~06,3f)=~09,3f~%",i*dx,float(ev(V,x=dx*i))*1000)$

print("Vmax of calcurated value")$
printf(true, "V(~09,06f)=~015,12f~%",ev(xVmax),ev(V,x=ev(xVmax))*1000)$

print("Bending Moment")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "M(~06,3f)=~09,3f~%",i*dx,float(ev(M,x=dx*i)))$

print("Mmax of calcurated value")$
printf(true, "M(~09,6f)=~015,12f~%",ev(xMmax),ev(M,x=ev(xMmax)))$
printf(true, "A(~09,6f)=~015,12f~%",0,ev(M,x=0))$
printf(true, "B(~09,6f)=~015,12f~%",L,ev(M,x=L))$

?sleep(10)$
quit()$

 

(総合図)

  KB=1000*10 kNm/rad

  KV=1000*10 kN/m

  L=5.0m

  w=-10 kN/m

  B x D = 150x300mm

  E65-F225 構造用集成材 すぎ(JAS)

 

(計算結果)

 

 

jw_cad 外部変形 - (2916) はりを解く(両端回転ばね+鉛直ばね:材端曲げ) -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

maximaではりを解いています。

 

(はりを解く(両端回転ばね+鉛直ばね:材端曲げ))

KB : 回転ばね Rotation Spring

KV : 鉛直ばね Virtical Spring

L : スパン長 Span Length

x : はりの位置 Position

M1, M2 : 材端曲げ

Q : せん断力 Shear ↓-↑ is positive-direction

M : 曲げモーメント 左回りが正 Bending Moment

T : たわみ角 Deflection Angle

V : たわみ Deflection

EI : 曲げ剛性 一定 Bending Stiffness (constant)

RA, MA, TA, VA : A 点の反力、曲げモーメント、たわみ角、たわみ

RB, MB, TB, VB : B 点の反力、曲げモーメント、たわみ角、たわみ

 

[ 実用弾性曲線式 ]

    EI * V(4)(x) = -p(x)
    p(x) = -w(x)
    Q(x) = C1 + ∫ p(x) dx
    M(x) = C2 + ∫ Q(x) dx
    r(x) = -M(x) / EI
    T(x) = C3 + ∫ r(x) dx
    V(x) = C4 + ∫ T(x) dx
  ただし
    w(x) : 分布荷重 上方向が正
    p(x) : 分布荷重 kN/m 上方向が正
    Q(x) : せん断力 kN ↓-↑が正
    M(x) : 曲げモーメント kNm 左回りが正
    r(x) : 曲率 1/m 上に凸が正
    T(x) : たわみ角 rad 左回りが正
    V(x) : たわみ m 上方向が正
    EI : 曲げ剛性(一定) kN*m*m
    C1,C2,C3,C4 : 積分定数

 

スクリプト例

:はりを解く(両端回転ばね+鉛直ばね:材端曲げ)
@echo off
path C:\maxima-5.49.0\bin;%path%
more +4 %0 | maxima --very-quiet & pause & goto:eof
/*
:     M1                M2
:    /________________ /
   ◎                ◎ KB
    >                 > KV
:   0                 L ---> x
:   |--------L--------|

    y
    |
    |_____x
  /
 z

  M1, M2 : 材端曲げ 左回りが正 kNm
  KB : 回転ばね kNm/rad
  KV : 鉛直ばね kN/m
  Q : せん断力 ↓・↑ が正 kN
  M : 曲げモーメント 左回りが正 kNm
  T : たわみ角 rad
  V : たわみ mm
  L : スパン長 m
  EI : 曲げ剛性(一定)

  エンコード UTF-8(BOM無し) で保存して実行してください。
*/
assume(L>0)$
p: 0$

define(Q(x), C1 + integrate(p, x))$
define(M(x), C2 + integrate(Q(x), x))$
define(T(x), C3 - integrate(M(x) / EI, x))$
define(V(x), C4 + integrate(T(x), x))$
s: solve([M(0) =-T(0)*KB + M1, Q(0) = V(0)*KV,
          M(L) = T(L)*KB - M2, Q(L) =-V(L)*KV], [C1, C2, C3, C4])$
[Q, M, T, V]: ev([Q(x), M(x), T(x), V(x)], s)$
[C1,C2,C3,C4]:ev([C1,C2,C3,C4],s)$

a0:(KV^2*L^4*((KB*L+6*EI)*KB*L+12*EI^2)-24*EI*KB*KV*L^2*(KB*L+3*EI)-144*EI^2*(EI*KV*L-KB^2)
)*(M2^2+M1^2)+(KV*L^3*(KB^2*(KV*L^3-96*EI)-12*EI^2*KV*L)-144*EI^2*((3*KB*L+2*EI)*KV*L+2*KB^2))*M1*M2$
xVmax1:-(sqrt(a0)-KB*KV*L^3*(M2+2*M1)+12*EI*KB*(M2-M1)-6*EI*KV*L^2*M1)/(3*KV*L*(KB*L+2*EI)*(M2+M1))$
xVmax2: (sqrt(a0)+KB*KV*L^3*(M2+2*M1)-12*EI*KB*(M2-M1)+6*EI*KV*L^2*M1)/(3*KV*L*(KB*L+2*EI)*(M2+M1))$
/*
RA:-6*EI*KV*L*(M2+M1)/((KB*L+6*EI)*KV*L^2+24*EI*KB)$
MA: 2*EI*(KB*(KV*L^3*(M2+2*M1)-12*EI*(M2-M1))+6*EI*KV*L^2*M1)/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
RB: 6*EI*KV*L*(M2+M1)/((KB*L+6*EI)*KV*L^2+24*EI*KB)$
RB:-RA$
MB:-2*EI*(KB*(KV*L^3*(2*M2+M1)+12*EI*(M2-M1))+6*EI*KV*L^2*M2)/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
TA:-(2*EI*KV*L^3*(M2-2*M1)-24*EI^2*(M2+M1)-(KV*L^3+24*EI)*KB*L*M1)/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
VA:-6*EI*L*(M2+M1)/((KB*L+6*EI)*KV*L^2+24*EI*KB)$
TB: (2*EI*KV*L^3*(2*M2-M1)+24*EI^2*(M2+M1)+(KV*L^3+24*EI)*KB*L*M2)/((KB*L+2*EI)*((KB*L+6*EI)*KV*L^2+24*EI*KB))$
VB: 6*EI*L*(M2+M1)/((KB*L+6*EI)*KV*L^2+24*EI*KB)$
Q: RA$
M: MA+RA*x$
T: TA-MA*x/EI-RA*x^2/(2*EI)$
V: VA+TA*x-MA*x^2/(2*EI)-RA*x^3/(6*EI)$
*/

[L,M1,M2,B,D,E]: [5,-10,-20,0.15,0.30,6.5]$

KB:1000*10$
KV:1000*10$
EI: E * B * D^3 / 12 * 10^6$ /* kN*m*m */

/* 総合図 */
pv1:[[xVmax1, 0], [xVmax1, ev(V,x=ev(xVmax1))*1000]]$
pv2:[[xVmax2, 0], [xVmax2, ev(V,x=ev(xVmax2))*1000]]$
plot2d([Q,M,T*1000,V*1000,[discrete,pv1],[discrete,pv2]], [x,0,L], grid2d, [title, "Euler-Bernoulli's beam"],
  [legend,"Q kN","M kNm","T x1/1,000 rad","V mm","Vmax1","Vmax2"],
  [style,lines,lines,lines,lines,linespoints,linespoints],
  [color,red,blue,green,magenta,magenta,magenta])$

/* 画面表示 */
print("Virtical Deflection")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "V(~06,3f)=~09,3f~%",i*dx,float(ev(V,x=dx*i))*1000)$

print("Vmax of calcurated value")$
printf(true, "1(~09,06f)=~015,12f~%",ev(xVmax1),ev(V,x=ev(xVmax1))*1000)$
printf(true, "2(~09,06f)=~015,12f~%",ev(xVmax2),ev(V,x=ev(xVmax2))*1000)$

print("Bending Moment")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "M(~06,3f)=~09,3f~%",i*dx,float(ev(M,x=dx*i)))$

print("Mmax of calcurated value")$
printf(true, "A(~09,6f)=~015,12f~%",0,ev(M,x=0))$
printf(true, "B(~09,6f)=~015,12f~%",L,ev(M,x=L))$

?sleep(10)$
quit()$

 

(総合図)

  KB=1000*10 kNm/rad

  KV=1000*10 kN/m

  L=5.0m

  M1=-10 kNm

  M2=-20 kNm

  B x D = 150x300mm

  E65-F225 構造用集成材 すぎ(JAS)

 

(計算結果)

 

jw_cad 外部変形 - (2915) はりを解く(両端回転固定:両端鉛直変位:部分台形分布荷重) -

外部変形は データのやり取りをテキストファイルで行うので プログラム言語は 自由に選ぶことができます。図形は機能的かつシンプルなため、数多くのユーザーに受け入れられています。

 

maximaではりを解いています。

 

(はりを解く(両端回転固定:両端鉛直変位:部分台形分布荷重))

SV1, SV2 : 材端の鉛直変位 m 上方向が正

L : スパン長 Span Length

a, b, c : 分布荷重の位置 Position of distributed load

x : はりの位置 Position

w : 分布荷重 上方向が正 Distributed Load UP-side is positive-direction

Q : せん断力 Shear ↓-↑ is positive-direction

M : 曲げモーメント 左回りが正 Bending Moment

T : たわみ角 Deflection Angle

V : たわみ Deflection

EI : 曲げ剛性 一定 Bending Stiffness (constant)

RA, MA, TA, VA : A 点の反力、曲げモーメント、たわみ角、たわみ

RB, MB, TB, VB : B 点の反力、曲げモーメント、たわみ角、たわみ

 

[ 実用弾性曲線式 ]

    EI * V(4)(x) = -p(x)
    p(x) = -w(x)
    Q(x) = C1 + ∫ p(x) dx
    M(x) = C2 + ∫ Q(x) dx
    r(x) = -M(x) / EI
    T(x) = C3 + ∫ r(x) dx
    V(x) = C4 + ∫ T(x) dx
  ただし
    w(x) : 分布荷重 上方向が正
    p(x) : 分布荷重 kN/m 上方向が正
    Q(x) : せん断力 kN ↓-↑が正
    M(x) : 曲げモーメント kNm 左回りが正
    r(x) : 曲率 1/m 上に凸が正
    T(x) : たわみ角 rad 左回りが正
    V(x) : たわみ m 上方向が正
    EI : 曲げ剛性(一定) kN*m*m
    C1,C2,C3,C4 : 積分定数

 

スクリプト例

:はりを解く(両端回転固定:両端鉛直変位:部分台形分布荷重)
@echo off
path C:\maxima-5.49.0\bin;%path%
more +4 %0 | maxima --very-quiet & pause & goto:eof
/* SV1               SV2
:   |      ___w___      |
:   |____/___|___\____|
    | ① ②   ③  ④ ⑤ |
          a+b   L-b-c
:   0   a          L-c  L ---> x
:   |---------L---------|

    y
    |
    |_____x
  /
 z

  SV1, SV2 : 材端鉛直変位 上方向が正 m
  a, b, c : 荷重の位置 m
  w : 分布荷重 上方向が正 kN/m
  Q : せん断力 ↓・↑ が正 kN
  M : 曲げモーメント 左回りが正 kNm
  T : たわみ角 rad
  V : たわみ mm
  L : スパン長 m
  EI : 曲げ剛性(一定)

  エンコード UTF-8(BOM無し) で保存して実行してください。
*/
assume(L>0,a>=0,b>0,c>=0,L>=a+2*b+c)$
p1:0$
p2:-w*(x-a)/b$
p3:-w$
p4:-w+w/b*(x-L+b+c)$
p5:0$

define(Q1(x), C1 + integrate(p1, x))$
define(M1(x), C2 + integrate(Q1(x), x))$
define(T1(x), C3 - integrate(M1(x) / EI, x))$
define(V1(x), C4 + integrate(T1(x), x))$
define(Q2(x), C5 + integrate(p2, x))$
define(M2(x), C6 + integrate(Q2(x), x))$
define(T2(x), C7 - integrate(M2(x) / EI, x))$
define(V2(x), C8 + integrate(T2(x), x))$
define(Q3(x), C9 + integrate(p3, x))$
define(M3(x), C10 + integrate(Q3(x), x))$
define(T3(x), C11 - integrate(M3(x) / EI, x))$
define(V3(x), C12 + integrate(T3(x), x))$
define(Q4(x), C13+ integrate(p4, x))$
define(M4(x), C14+ integrate(Q4(x), x))$
define(T4(x), C15- integrate(M4(x) / EI, x))$
define(V4(x), C16+ integrate(T4(x), x))$
define(Q5(x), C17+ integrate(p5, x))$
define(M5(x), C18+ integrate(Q5(x), x))$
define(T5(x), C19- integrate(M5(x) / EI, x))$
define(V5(x), C20+ integrate(T5(x), x))$

c1:[Q1(a)=Q2(a),M1(a)=M2(a),T1(a)=T2(a),V1(a)=V2(a)]$
c2:[Q2(a+b)=Q3(a+b),M2(a+b)=M3(a+b),T2(a+b)=T3(a+b),V2(a+b)=V3(a+b)]$
c3:[Q3(L-b-c)=Q4(L-b-c),M3(L-b-c)=M4(L-b-c),T3(L-b-c)=T4(L-b-c),V3(L-b-c)=V4(L-b-c)]$
c4:[Q4(L-c)=Q5(L-c),M4(L-c)=M5(L-c),T4(L-c)=T5(L-c),V4(L-c)=V5(L-c)]$
s: solve(append(
  [T1(0) = 0, V1(0) = SV1,
   T5(L) = 0, V5(L) = SV2], c1, c2, c3, c4),
  [C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20])$
[Q1, M1, T1, V1]: ev([Q1(x), M1(x), T1(x), V1(x)], s)$
[Q2, M2, T2, V2]: ev([Q2(x), M2(x), T2(x), V2(x)], s)$
[Q3, M3, T3, V3]: ev([Q3(x), M3(x), T3(x), V3(x)], s)$
[Q4, M4, T4, V4]: ev([Q4(x), M4(x), T4(x), V4(x)], s)$
[Q5, M5, T5, V5]: ev([Q5(x), M5(x), T5(x), V5(x)], s)$
[C1,C2,C4,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20]:ev([C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20],s)$

p:if x<=a then p1 elseif a<x and x<a+b then p2 elseif a+b<=x and x<L-b-c then p3 elseif L-b-c<=x and x<L-c then p4 else p5$
Q:if x<=a then Q1 elseif a<x and x<a+b then Q2 elseif a+b<=x and x<L-b-c then Q3 elseif L-b-c<=x and x<L-c then Q4 else Q5$
M:if x<=a then M1 elseif a<x and x<a+b then M2 elseif a+b<=x and x<L-b-c then M3 elseif L-b-c<=x and x<L-c then M4 else M5$
T:if x<=a then T1 elseif a<x and x<a+b then T2 elseif a+b<=x and x<L-b-c then T3 elseif L-b-c<=x and x<L-c then T4 else T5$
V:if x<=a then V1 elseif a<x and x<a+b then V2 elseif a+b<=x and x<L-b-c then V3 elseif L-b-c<=x and x<L-c then V4 else V5$

/*
RA: 12*EI*(SV2-SV1)/L^3+(c+b+a-L)*((c+b-a-L)*c^2+(c-a)*b^2+(c-b-a+L)*a^2-L*(c+a)*b-L^2*(c-a+L))*w/(2*L^3)$
MA:-6*EI*(SV2-SV1)/L^2-(c+b+a-L)*((3*(c+b-a)-L)*c^2+(3*(c-a)+L)*b^2+(3*(c-b-a)+5*L)*a^2-2*L*(b*c+a*c-2*a*b)-L^2*(c+b+a+L))*w/(12*L^2)$
TA: 0$
VA: SV1$
RB:-(c+b+a-L)*w-RA$
MB:-(c+b+a-L)*((2*c+b-2*a-L)*c+(b+a)*(b-L)+2*a^2-L^2)*w/(6*L)-MA$
MB:-(c+b+a-L)*(2*(c-a)*c+(c+b+a)*(b-L)+2*a^2-L^2)*w/(6*L)-MA$
TB: 0$
VB: SV2$
Q1: RA$
Q2: Q1-w*(L^2*(x-a)^2-2*a*b^2*(c+b+a-L))/(2*L^2*b)$
Q3: Q2+w*(x-b-a)^2/(2*b)$
Q5:-RB$
Q4: Q5+w*(L^2*(x+c-L)^2+2*a*b^2*(c+b+a-L))/(2*L^2*b)$
M1: MA+RA*x$
M2: M1-w*(L^2*(x-a)^3-6*a*b^2*(c+b+a-L)*x)/(6*L^2*b)$
M3: M2+w*(x-b-a)^3/(6*b)$
M5: MB-RB*(x-L)$
M4: M5+w*(L^2*(x+c-L)^3+6*a*b^2*(c+b+a-L)*(x-L))/(6*L^2*b)$
T1: TA-MA*x/EI-RA*x^2/(2*EI)$
T2: T1+w*(L^2*(x-a)^4-12*a*b^2*(c+b+a-L)*x^2)/(24*EI*L^2*b)$
T3: T2-w*(x-b-a)^4/(24*EI*b)$
T5: TB-MB*(x-L)/EI+RB*(x-L)^2/(2*EI)$
T4: T5-w*(L^2*(x+c-L)^4+12*a*b^2*(c+b+a-L)*(x-L)^2)/(24*EI*L^2*b)$
V1: VA+TA*x-MA*x^2/(2*EI)-RA*x^3/(6*EI)$
V2: V1+w*(L^2*(x-a)^5-20*a*b^2*(c+b+a-L)*x^3)/(120*EI*L^2*b)$
V3: V2-w*(x-b-a)^5/(120*EI*b)$
V5: VB+TB*(x-L)-MB*(x-L)^2/(2*EI)+RB*(x-L)^3/(6*EI)$
V4: V5-w*(L^2*(x+c-L)^5+20*a*b^2*(c+b+a-L)*(x-L)^3)/(120*EI*L^2*b)$
*/

[L,a,b,c,w,B,D,E]: [5,1.5,1.0,1.0,-30,0.15,0.30,6.5]$

[SV1, SV2]:[-10/1000,10/1000]$

EI: E * B * D^3 / 12 * 10^6$ /* kN*m*m */

/* xMmax 100,000,000 divisions */
vvv:0$ xxx:0$
m:L*100$ dx: L/m$
for i:0 thru m*8/10 do
  if abs(v:float(ev(M,x=dx*i))) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx1:xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:1$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(M,x=dx*i))) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx2:if xxx=0 then xx1 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.01$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(M,x=dx*i))) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx3:if xxx=0 then xx2 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.0001$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(M,x=dx*i))) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xMmax:if xxx=0 then xx3 else xxx$
xMmax:if xMmax < 0 then 0 else xMmax$
xMmax:if L < xMmax then L else xMmax$

/* xVmax 100,000,000 divisions */
vvv:0$ xxx:0$
m:L*100$ dx: L/m$
for i:0 thru m do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx1:xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:1$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx2:if xxx=0 then xx1 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.01$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xx3:if xxx=0 then xx2 else xxx$ mxxx:xxx/dx$ m:m*100$ dx: L/m$ dt:0.0001$ xxx:0$
for i:mxxx*(100-dt) thru mxxx*(100+dt) do
  if abs(v:float(ev(V,x=dx*i))*1000) > abs(vvv) then [vvv, xxx]: [v, dx*i]$
xVmax:if xxx=0 then xx3 else xxx$

/* 総合図 */
pm:[[xMmax, 0], [xMmax, ev(M,x=ev(xMmax))]]$
pv:[[xVmax, 0], [xVmax, ev(V,x=ev(xVmax))*1000]]$
plot2d([Q,M,T*1000,V*1000,p,[discrete,pm],[discrete,pv]], [x,0,L], grid2d, [title, "Euler-Bernoulli's beam"],
  [legend,"Q kN","M kNm","T x1/1,000 rad","p kN/m","V mm","Mmax","Vmax"],
  [style,lines,lines,lines,lines,lines,linespoints,linespoints],
  [color,red,blue,green,magenta,brown,blue,magenta])$

/* 画面表示 */
print("Virtical Deflection")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "V(~06,3f)=~09,3f~%",i*dx,float(ev(V,x=dx*i))*1000)$

print("Vmax of calcurated value")$
printf(true, "V(~09,06f)=~015,12f~%",ev(xVmax),ev(V,x=ev(xVmax))*1000)$

print("Bending Moment")$
m:L*100$ dx: L/m$
for i:0 thru m do
  if mod(i,m/10) = 0 then printf(true, "M(~06,3f)=~09,3f~%",i*dx,float(ev(M,x=dx*i)))$

print("Mmax of calcurated value")$
printf(true, "M(~09,6f)=~015,12f~%",ev(xMmax),ev(M,x=ev(xMmax)))$
printf(true, "A(~09,6f)=~015,12f~%",0,ev(M,x=0))$
printf(true, "B(~09,6f)=~015,12f~%",L,ev(M,x=L))$

?sleep(10)$
quit()$

 

(総合図)

  SV1=-10/1000 m

  SV2= 10/1000 m

  L=5.0m

  a=1.5m

  b=1.0m

  c=1.0m

  w=-30 kN/m

  B x D = 150x300mm

  E65-F225 構造用集成材 すぎ(JAS)


(計算結果)