張り出し梁
・申し訳ありません。sympyのBeamができていません。数をこなして戻ってきます。
・SlopeE と BMDがでました。他
オリジナル
基本例題4.19 p97(頁下)<「材料力学演習(20221021)一括(ver.3.3)」を勉強したい。#sympy
???タブレット等で、pdfを開く事ができないかも。???
sympyで。微分で(オリジナル 様の方法です。)
・ver0.1 基本例題4.19 P97
# ver0.1 基本例題4.19 P97
from sympy import *
from decimal import Decimal, ROUND_HALF_UP
var('FAC,x,a,b,c,MAC,FCB,P,MCB,l,RB',real=True)
var('P' ,real=True)
def myRound1(x, d=1):
p = Decimal(str(x)).quantize(Decimal(str(1/10**d)), rounding=ROUND_HALF_UP)
p = float(p)
return p
MAB=RA*x ;print("# MAB =",MAB)
MBC=RA*x+RB*(x-a) ;print("# MBC =",MBC)
FAB=diff(MAB,x) ;print("# FAB =",FAB)
FBC=diff(MBC,x) ;print("# FBC =",FBC)
RARB=solve([Eq(MAB.subs({x:0}),0),
Eq(MBC.subs({x:l}),0),
Eq(-RA-RB ,P)
],[RA,RB]) ;print("# RA,RB =",factor(RARB[RA]),",",RARB[RB])
print()
rep1={RA:RARB[RA],RB:RARB[RB]}
rep2={P:1000,l:1.0,a:0.4}
print("# MAB =", MAB.subs(rep1).subs(rep2) )
print("# MBC =", MBC.subs(rep1).subs(rep2) )
print("# FAB =",myRound1(diff(MAB.subs(rep1).subs(rep2),x),1))
print("# FBC =",myRound1(diff(MBC.subs(rep1).subs(rep2),x),1))
# MAB = RA*x
# MBC = RA*x + RB*(-a + x)
# FAB = RA
# FBC = RA + RB
# RA,RB = -P*(a - l)/a , -P*l/a
# MAB = 1500.0*x
# MBC = 1000.0 - 1000.0*x
# FAB = 1500.0
# FBC = -1000.0
sympyのBeamで
・ver0.2 基本例題4.19 P97
??? 以下はエラーです。
(1)SFDで、...ValueError: value of A was not passed.
(2)計算と作図が、同時にできませんでした。?b2にしてもだめでした。
# ver0.2 基本例題4.19 P97
# ??? 以下はエラーです。
from sympy import *
from decimal import Decimal, ROUND_HALF_UP
from sympy.physics.continuum_mechanics.beam import Beam
from sympy import symbols
E,I,P= symbols('E,I,P')
R1,M1=symbols('R1,M1')
R2,M2=symbols('R2,M2')
var(' P, l, la')
var('myP,myl,myla')
def myRound1(x, d=1):
p = Decimal(str(x)).quantize(Decimal(str(1/10**d)), rounding=ROUND_HALF_UP)
p = float(p)
return p
def myBeam_Haridasi_reaction_loads(l,E,I,P,la):
b1=Beam(l,E,I)
b1.apply_load(R1,0 ,-1)
b1.apply_load(R2,la ,-1)
b1.apply_load(P ,l ,-1)
b1.bc_deflection = [(0, 0), (la, 0)]
b1.solve_for_reaction_loads(R1,R2)
R1R2=b1.reaction_loads
return R1R2[R1],R1R2[R2]
def myBeam_Haridasi_Sakuzu_draw (l,E,I,P,la):
b2=Beam(l,E,I)
b2.apply_load (P ,l ,-1)
b2.apply_support(0 ,'pin')
b2.apply_support(la,'roller')
p = b2.draw()
p.show()
return
def myBeam_Haridasi_Sakuzu_SFDBMD (l,E,I,P,la):
b3=Beam(l,E,I)
b3.apply_load(P ,l ,-1)
b3.apply_load(R1,0 ,-1)
b3.apply_load(R2,la,-1)
b3.bc_deflection = [(0,0),(la,0)]
b3.solve_for_reaction_loads(R1,R2)
b3.plot_slope()
b3.plot_bending_moment()
b3.plot_shear_stress()
return
# --------------------------------------------------------------------------------------------------------------------
myl,myE,myI,myP,myla=1.0,200*(10**9),400*(10**6),1000,0.4
# R1,R2=myBeam_Haridasi_reaction_loads(myl,myE,myI,myP,myla);print ("#",myRound1(R1),myRound1(R2))
# myBeam_Haridasi_Sakuzu_draw (myl,myE,myI,myP,myla)
myBeam_Haridasi_Sakuzu_SFDBMD (myl,myE,myI,myP,myla)
(勉強中) Mathematicaで
(勉強中) MATLAB 追加のオプションSymbolic Math Toolbox で
いつもの? sympyの実行環境と 参考のおすすめです。
いつもと違うおすすめです。
参考文献
>一部に等分布荷重を受ける単純支持はり
>JSME p89
>張出しばり x)
>構造力学公式集 表5.5 張出しばりの公式 p154