今日和各位分享一个后处理小技巧,也即杆梁系结构在ANSYS中如何像设计软件那般显示构件应力比的云图。 用过设计软件诸如3D3S、Midas、YJK的同学都知道,在复核杆件强度和稳定性的时候,这些软件可以一键生成构件应力比云图或者稳定性云图,这样可以非常方便的知道在整个结构体系中哪些杆件处于薄弱,需要适当加强,从而指导后续的结构设计工作。
首先在做完工况分析后,根据上述公式,需要手动提取杆件的轴力、杆件的Mx、My,并按公式8.1.1-2计算杆件应力,两边同时除以f,则可到强度应力比,命令流如下:
!计算构件应力比--强度复核
!单层网壳--梁单元计算
!根据《钢标》3.5.1确定宽厚比等级,截面等级为S1
Rm=1.15
!净截面模量、净面积计算
!325x12
Ab1=(325-12*2)/325
Wn1=3.14*325**3*(1-Ab1**4)/32
An1=3.14/4*325**2*(1-Ab1**2)
!325x10
Ab2=(325-10*2)/325
Wn2=3.14*325**3*(1-Ab2**4)/32
An2=3.14/4*325**2*(1-Ab2**2)
!325x8
Ab3=(325-8*2)/325
Wn3=3.14*325**3*(1-Ab3**4)/32
An3=3.14/4*325**2*(1-Ab3**2)
!=================
esel,s,ename,,188
*get,ele_max,elem,0,count
*dim,Mz_i,,ele_max
*dim,Mz_j,,ele_max
*dim,My_i,,ele_max
*dim,My_j,,ele_max
*dim,Axial_i,,ele_max
*dim,Axial_j,,ele_max
*dim,Stress_ratio,,ele_max
*dim,Ele_xuhao,char,ele_max
*do,i,1,ele_max
Ele_xuhao(i)=chrval(i)
!获取单元的实常数编号确定截面类型
*get,Real_num,elem,i,attr,real
*if,Real_num,eq,1,then
An=An1
Wn=Wn1
*elseif,Real_num,eq,2,then
An=An2
Wn=Wn2
*elseif,Real_num,eq,3,then
An=An3
Wn=Wn3
*endif
!获取单元i、j节点 X、Y方向的弯矩
*get,Mz_i(i),elem,i,smisc,3
*get,Mz_j(i),elem,i,smisc,16
*get,My_i(i),elem,i,smisc,2
*get,My_j(i),elem,i,smisc,15
Mzy_i=(Mz_i(i)**2 My_i(i)**2)**0.5
Mzy_j=(Mz_j(i)**2 My_j(i)**2)**0.5
!获取单元的i、j的轴力
*get,Axial_i(i),elem,i,smisc,1
*get,Axial_j(i),elem,i,smisc,14
!计算应力比,注意Q345对应的抗拉强度设计值为305Mpa
fn=305
Stress_ratio_i=abs(Axial_i(i))/An/fn Mzy_i/rm/Wn/fn
Stress_ratio_j=abs(Axial_j(i))/An/fn Mzy_j/rm/Wn/fn
Stress_ratio(i)=max(Stress_ratio_i,Stress_ratio_j)
*enddo
上述数组 Stress_ratio 即为根据单元序号存储的单元强度应力比,接下来需要将该应力比反应到云图当中。
主要思路为:使用命令*vput更改单元表的结果。
命令流如下:
esel,s,ename,,188
etable,ZL,smisc,1
pletab,ZL
*do,i,1,ele_max
*vput,Stress_ratio(i),elem,i,etab,ZL
*enddo
pletab,ZL
上述命令流中,首先定义了一个单元表,这个单元表可随意定义,这里定义的是轴力单元表,然后用vput命令覆盖单元表里面的数据,将原来轴力的数据替换为了计算的应力比,最后重新绘制单元表即可显示的是应力比云图。
没有覆盖之前,轴力云图如下:
覆盖之后,应力比云图如下:
从应力比云图则可清楚的了解杆件的应力分布,最大应力比,最小应力比等,从而对后续的结构优化提供指导意义。
稳定系系数云图的显示工作原理同理,这里就不在单独演示。