下图所示为一厚壁圆筒,内半径r1=50mm,外半径r2=100mm,作用在内孔上的压力p=10MPa,无轴向力,轴向长度可视为无穷。欲计算径向应力σr和切向应力σt沿圆筒半径r方向的分布。

图1-1 厚壁圆筒问题
根据材料力学知识,σr、σt沿r方向的分布的解析解为:

将r1、r2以及p值带入上式进行计算,得到径向应力σr最大值为-10MPa,切向应力σt最大、最小值分别为16.67MPa、6.67MPa。
2.应力分量的坐标转换式
根据弹性力学知识,应力分量坐标转换计算图示以及转换结果见下图。

图2-1 应力分量坐标转换计算图示及计算公式
3.数值求解代码
该问题符合平面应变问题条件,故可以简化为平面应变问题。在FLAC3D中进行分析时,可将模型厚度(Y方向)取一小值进行建模分析。
# case-01import itasca as itimport mathit.command("python-reset-state false")# 模型参数r1 = 50 # 内半径/mmr2 = 100 # 外半径/mmth = 5 # 轴向厚度/mms_r = 30 # 径向网格数量s_th = 1 # 轴向网格数量s_t = 30 # 环向网格数量E = 2e5 # 弹性模量/MPav = 0.3 # 泊松比p = -10 # 内孔压力/MPa# 建模计算it.command("""model newmodel largestrain off;建模zone create cylindrical-shell point 0(0,0,0) point 1({0},0,0) point 2(0,{1},0) point 3(0,0,{0}) point 4({0},{1},0)...point 5(0,{1},{0}) point 8({2},0,0) point 9(0,0,{2}) point 10({2},{1},0) point 11(0,{1},{2}) size {3} {4} {5}zone reflect origin (0,0,0) normal (-1,0,0)zone reflect origin (0,0,0) normal (0,0,-1);赋予本构、参数zone cmodel assign elasticzone property young {6} poisson {7};边界条件zone face skinzone face apply velocity-normal 0 range group 'south' or 'north'zone face apply stress-normal {8} range group 'west';求解model solve""".format(r2,th,r1,s_r,s_th,s_t,E,v,p))# 圆心坐标xc = 0.0zc = 0.0# 遍历求解各单元径向、切向应力for z in it.zone.list():;计算夹角正弦、余弦xz = z.pos_x()zz = z.pos_z()r = math.sqrt((xz-xc)**2+(zz-zc)**2)sin = zz/rcos = xz/r;获取应力分量sxx = z.stress()[0][0]szz = z.stress()[2][2]sxz = z.stress()[2][0];根据图2-1计算各单元径向、切向应力sig_r = sxx*cos**2+szz*sin**2+2*sxz*cos*sinsig_t = sxx*sin**2+szz*cos**2-2*sxz*cos*sin;设置径向、切向应力Extra云图z.set_extra(1,sig_r)z.set_extra(2,sig_t)# 解析解sig_r_max = str(-1.0*r1**2*p/(r2**2-r1**2)*(1-r2**2/r1**2))sig_t_min = str(-1.0*r1**2*p/(r2**2-r1**2)*(1+r2**2/r2**2))sig_t_max = str(-1.0*r1**2*p/(r2**2-r1**2)*(1+r2**2/r1**2))print(sig_r_max,sig_t_min,sig_t_max)
3.结果对比
径向应力云图见图3-1。由图可知:径向应力最大值计算结果为-10.05MPa,与解析解-10MPa相比,误差率为0.5%。


图3-2 切向应力云图