您好,对我的英语感到抱歉。我的问题很简单。我有下面的四阶BVP
,它描述了梁在给定载荷和拉力作用下的挠度。但是,该梁的惯性矩在某个位置发生变化,即:梁的横截面在梁的整个长度上都不均匀。
# Constants definition:
L = (1203*3.281)
d = 60
OD_straked = 18.44
ID = 12.7
ID_sj = 12.75
OD_tubo = 14
OD_sj = 16.62
w = 322E3 / L
T = 525E3
E = 2.9E7
I1 = (np.pi/4)*(pow(OD_tubo/2,4) - pow(ID/2,4))
I2 = (np.pi/4)*(pow(OD_sj/2,4) - pow(ID_sj/2,4))
def model(x,y):
F = 5000
dydx = y[1]
d2dx2 = y[2]
d3dx3 = y[3]
d4dx4 = (F/(E*I)) + (1/(E*I))*(w*(x-L) + T)*d2dx2 + (w/(E*I))*dydx
return np.vstack((dydx,d2dx2,d3dx3,d4dx4))
def bc(ya,yb):
return np.array([ya[0],yb[0]-d,ya[1],yb[2]])
x = np.linspace(0,L,10000)
y_a = np.zeros((4,x.size))
sol = solve_bvp(model,bc,x,y_a)
我想根据x内的值更改I的值。例如:如果x中的值小于43英尺,我想设为I = I2
。如果值大于43,则I = I1
。
是否有一种方法可以更改I值,例如,使用类似这样的方法:
if value_of_x < 43:
I = I2
else:
I = I1