应力分类线
在压力容器的分析设计中,获得模型的应力分布后,需要对结果进行评定。
评定时,需要定义应力分类线SCL(Stress Classification Line),按此线的路径进行线性化。SCL一般是垂直于最大应力所在平面(三维)或线段(二维)或者垂直于设备横截面的中面。
表现在软件中,一般就是对危险截面上的,贯穿整个截面的应力分类线进行线性化。
常规做法
获得最大应力分类线的常规方法是,先获得应力分布:
然后找到最大应力点,定义路径
最大应力点可以用General Postproc->Nodal Solu中的Max按钮选择,可以看到节点编号以及应力值。
然后通过查询距离(目视观察),找到横截面上最近面上点,并定义路径。
如果最大应力节点处没有剖分形成关键点,那就先找到节点,然后以基准点数网格数量,找到内外表面能够基本对应的节点。
此时可以利用经典的各种Element选择技巧,一般采用多段线框选比较容易找到所需要的截面。
此过程比较耗体力,考眼力,无法用命令流,GUI操作每次重算都得重新来一次,效率非常低。
那么有没有更好的方法呢?
APDL实现
找到应力分类线路径,几何上的表述为:
已知曲面和曲面外一点A,找到曲面上一点B,使得A与B的距离最近。
那我们可以先获得最大应力点,记为N_MAX
NSORT,S,EQV,0,,1,SELECT !结果按应力大小进行排序*GET,N_MAX,NODE,0,NUM,MAX !取得应力最大点的节点编号NUSORT !恢复缺省的排序方式*GET,SEQV_MAX,NODE,N_MAX,S,EQV !取得最大应力值
然后找到最大点对应的面,本案例中面编号是4,位置如下图所示:
选择面上的所有节点,然后利用Node(x,y,z)命令,获得离面4上所有节点中离Node(x,y,z)最近的点。
然后用如下代码,min_Node为所求面上的点。 asel,s,,,4 !4为面的编号nsla,s,1 !4面上的所有节点min_NODE=NODE(nx(N_MAX),ny(N_MAX),nz(N_MAX)) !离节点N_MAX的面上的最近的节点。allselpath,set1,2ppath,1,N_MAXppath,2,min_NODE
这样就得到了n_max和min_node之间的路径,如下图所示。
上文中的路径7和9,可以先手动选择节点和对应的面的方式。假设节点编号为2046,面编号为4,修改代码如下:
asel,s,,,4 !4为面的编号nsla,s,1 !4面上的所有节点min_NODE2=NODE(nx(2046),ny(2046),nz(2046)) !离节点2046的面上的最近的节点。allselpath,set2,2ppath,1,2046ppath,2,min_NODE2
当然,有些时候,我们是可以计算出节点的坐标的,假设坐标为(x,y,z),那么可以用NODE(x,y,z)来找到与此坐标最接近的点,修改代码如下:
asel,s,,,4 !4为面的编号nsla,s,1 !4面上的所有节点min_NODE3=NODE(x,y,z) !离坐标(x,y,z)的面上的最近的节点。allselpath,set3,2ppath,1,NODE(x,y,z)ppath,2,min_NODE3
二维的应力分类线
对于二维单元,把面改为线即可。
比如对于一个夹套的轴对称模型,应力分布如下:
查询最大应力的节点,可以用节点编号或者用N_MAX表示,N_MAX可以用如下代码求:
NSORT,S,EQV,0,,1,SELECT !结果按应力大小进行排序*GET,N_MAX,NODE,0,NUM,MAX !取得应力最大点的节点编号
最大应力节点编号为61420: 对应的夹套外表面的线编号为14.
按照上文思路,代码如下:
lsel,s,,,14 !14为线的编号nsll,s,1 !线14上的所有节点min_NODE=NODE(nx(61420),ny(61420),nz(61420)) !离节点61420的面上的最近的节点。allselpath,path1,2ppath,1,61420ppath,2,min_NODE
点击Plot paths,可以看到path1的路径
其中距离最大应力点的外表面最近点是一个中间节点,比人工目视选择的节点更为准确。
总结
往期精彩:
欢迎关注公众号:VCAD001, 一个压力容器人的自我修养。
|