本帖最后由 yuun 于 2023-5-25 08:45 编辑
在上一篇文章发布之后,有不少朋友问结果可靠吗,是怎么做出来的,能否让大家一起验证一下。
所以特意放出源码和释义,大家可以根据源码修改相应的尺寸,做调整。有兴趣的朋友可以复制后运行试试。
1. 定义参数
- FINISH
- /CLEAR
- /TITLE,saddle
- /FILN,test
- !定义材料参数,单位为国际单位制
- *AFUN,DEG ! 激活角度单位制
- !模型参数
- *SET,DI,4000 ! 筒体内径
- *SET,L1,40000 ! TL-TL
- *SET,TN,20 ! 筒体公称厚度
- *SET,Aa,1000 ! 鞍座中心至切线的距离
- *SET,Bb,430 ! 鞍座宽度
- *SET,THETA,162 ! 鞍座包角
- *SET,C,860 ! 垫板宽度
- *SET,TD,20 ! 垫板厚度
- *SET,H1,2000 ! 鞍座高H1
- *SET,H2,3492 ! 鞍座高H2
- *SET,H3,1970 ! 鞍座H3
- !材料参数
- *SET,DENSITY,7850E-12 ! 材料密度
- *SET,EXX,2.01E5 ! 材料弹性模量
- *SET,PRXY,0.3 ! 材料泊松比
- *SET,P1,1.0 ! 顶部均布内压
复制代码
设置参数也可以用等号,比如“L1=40000”,参数的示意图如下:
2. 建模
思路,先建立筒体封头和垫板,再建立鞍座的长方体(由于不研究鞍座本身,只研究鞍座对于设备影响,所以鞍座建成实心的长方块)。进行布尔运算
- !************************
- !*******前处理***********
- !************************
- /PREP7
- !定义单元及材料属性
- ET,1,SOLID186 ! 定义186号单元
- MP,EX,1,EXX ! 定义弹性模量
- MP,NUXY,1,PRXY ! 定义泊松比
- MP,DENS,1,DENSITY ! 定义密度
- !创建几何模型
- CYLIND,DI/2,DI/2+TN,0,L1/2,-90,90 ! 创建筒体
- SPHERE,DI/2+TN,DI/2,-90,90, ! 创建封头
- VSBW,ALL ! 采用工作平面切分体
- VDELE,4, , ,1 ! 删除多余的体积,得到封头
- CYLIND,DI/2+TN,DI/2+TN+TD,Aa-C/2,Aa+C/2,-90,-90+THETA/2 ! 创建垫板
- WPOFF,0,0,Aa-Bb/2 ! 将工作平面平移至鞍座角点
- BLC4,0,-DI/2-TN-TD-H1,H3,H2,Bb ! 创建鞍座长方体,没建鞍座本身细节
- VPTN,ALL ! 体互分
- ALLS ! 全选择
- LGLUE,ALL ! 粘合各线
- VDELE,5,,,1 ! 删除多余的体
- CYLIND,0,DI/4,0,-DI*4,-90,90 ! 创建筒体
- VPTN,ALL ! 体互分
- VDELE,2,3,1,1 ! 删除多余体及其附属
- !采用工作平面剖分体,切分体为了划分网格做准备
- WPROT,0,90,0 ! 旋转工作平面
- VSEL,S,VOLU,,4,5,1, ! 选中封头
- VSBW,ALL ! 采用工作平面切分封头
- ALLSEL ! 全选择
- WPROT,0,-90,0 ! 旋转工作平面
- KWPAVE,20 ! 将工作平面定位于关键点20
- VSBW,ALL ! 采用工作平面切分体
- KWPAVE,22 ! 将工作平面定位于关键点22
- VSBW,ALL ! 采用工作平面切分体
- KWPAVE,27 ! 将工作平面定位于关键点27
- VSBW,ALL ! 采用工作平面切分体
- KWPAVE,31 ! 将工作平面定位于关键点31
- VSBW,ALL ! 采用工作平面切分体
- WPROT,0,0,90 ! 旋转工作平面
- KWPAVE,43 ! 将工作平面定位于关键点43
- VSBW,9 ! 采用工作平面切分支撑部
- VGLUE,ALL ! 粘接体
- !创建组件,方便选择
- VSEL,S,VOLU,,14,17,3
- VSEL,A,VOLU,,6,16,10
- CM,INTANK,VOLU ! 创建连接处桶体内壁组件
- VSEL,S,VOLU,,13,15,2
- CM,BACKSTOP,VOLU ! 创建鞍座组件
- VSEL,S,VOLU,,5,7,2
- VSEL,A,VOLU,,10,12,2
- CM,GASKET,VOLU ! 创建垫板组件
- VSEL,S,VOLU,,1,2,1
- VSEL,A,VOLU,,3,8,5
- CM,CLOSE,VOLU ! 创建封头组件
- VSEL,S,VOLU,,4,11,7
- CM,TANK,VOLU ! 创建压力容器筒体组件
复制代码
3.划分网格
用ESIZE控制网格大小划分网格。划分完网格后,1/4模型通过镜像获得1/2的模型。
- !划分网格
- ALLSEL ! 全选择
- CMSEL,S,INTANK ! 选中连接处桶体内壁组件
- ESIZE,60 ! 设定单元大小
- VSWEEP,ALL ! 映射网格划分
- CMSEL,S,GASKET ! 选中垫板组件
- ESIZE,60 ! 设定单元大小
- VSWEEP,ALL ! 映射网格划分
- CMSEL,S,BACKSTOP ! 选中鞍座组件
- ESIZE,200 ! 设定单元大小
- VSWEEP,ALL ! 映射网格划分
- CMSEL,S,TANK ! 选中压力容器桶体组件
- ESIZE,200 ! 设定单元大小
- VSWEEP,ALL ! 映射网格划分
- ESIZE,200 ! 设定单元大小
- CMSEL,S,CLOSE ! 选中封头组件
- VSWEEP,ALL ! 映射网格划分
- ALLSEL ! 全选择
- WPCSYS,-1,0 ! 转换到原始坐标系
- LOCAL,11,0,0,0,L1/2, ! 创建局部坐标系
- CSYS,11 ! 激活局部坐标系
- VSYMM,Z,ALL, , , ,0,0 ! 镜像
- NUMMRG,ALL ! 合并
- NUMCMP,ALL ! 压缩
- FINISH
复制代码
4. 施加载荷
- !************************
- !*******加载与求解*******
- !************************
- /SOLU
- CSYS,0 ! 激活笛卡尔坐标系
- ALLSEL
- ACEL,0,9800,0, ! 施加重力加速度
- den=1000 !液体密度
- pc=den*0.001*10*0.000001 !单位MPa
- !*********注意,ANSYS中施加的重力为惯性力,其加速度方向与实际重力相反*************
- NSEL,S,LOC,Z,0.5*l1,L1
- NSEL,R,LOC,Y,-DI/2-TN-TD-H1 ! 选中前端鞍座底面
- D,ALL,ALL ! 施加固定约束
- ALLSEL
- NSEL,S,LOC,Z,0,0.5*l1
- NSEL,R,LOC,Y,-DI/2-TN-TD-H1 ! 选中后端鞍座底面
- D,ALL,UY,0 ! 固定Y方向约束
- ALLSEL
- NSEL,S,LOC,X,0 ! 选中对称面上所有节点
- DSYM,SYMM,X, ! 施加对称位移约束
- CSYS,0 ! 激活笛卡尔坐标系
- LSEL,S,LOC,Z,0,L1 ! 选中除封头之外的容器桶体及鞍座部分线段
- CSYS,1 ! 激活极坐标系
- LSEL,R,LOC,X,0,DI/2 ! 选中容器桶体内壁线段
- ASLL,S,1 ! 选中筒体内壁面
- ASEL,A,AREA,,10,11,1
- ASEL,A,AREA,,28,29,1
- ASEL,A,AREA,,92,118,26
- ASEL,A,AREA,,83,86,3 ! 选中桶体内壁及封头内表面
- cm,areain,area
- allsel
- WPCSYS,-1,0
- asel,s,,,areain
- NSLA,S,1 ! 选中依附于内表面的所有节点,选择1边界
- CSYS,0 ! 激活笛卡尔坐标系
- Sfgrad,pres,0,y,0.5*DI,-pc !Z=7000处压力为0,往y负方向每mm增加PC
- Sf,all,pres,p1
复制代码
一侧鞍座底板全约束,另一侧鞍座底板面Uy=0。 ACEL施加重力加速度。 对于内部的表面所有节点,施加压力和液柱静压力。 施加后的效果如下图:
5. 求解和后处理 - ALLSEL ! 全选择
- SOLVE ! 求解
- FINISH
- !************************
- !*******后处理***********
- !************************
- /POST1
- !*************容器整体分析******************************
- PLNSOL,S,EQV,0,1 ! 显示等效应力分布
- PLNSOL,U,Y,2,1 ! 显示Y向位移
复制代码
显示Y方向位移。 结果显示,位移58.4mm。
往期精彩:
|