【摘要】利用ANSYS软件提供的APDL语言对一批节点的反力进行统计计算,较为容易得获得位移加载条件下,所有位移加载的节点的反力总和与时间或者位移的关系。并且不需要关注被分析节点的数量与节点编号。
【关键词】ANSYS后处理;节点反力计算
在我们应用ANSYS进行非线性有限元分析的过程中,收敛是一个难点,所以我们经常会在满足某种条件的一批节点上进行位移约束加载来代替力的加载。使用位移加载的优势非常明显,在进行各种非线性分析中,它更加容易获得收敛的结果,减少试算的次数。但是,在后处理过程中要想获得位移与力的关系、时间与力的关系等分析结果时就会比较困难,需要进一步处理才能获得理想的结果。因为这时我们不是简单的要获得某一个节点上力与时间或者力与位移之间的关系,而是与一批节点的力或者力矩总和与时间的关系。
1.GUI方式的操作方法与局限
ANSYS通用处理器可以很轻松获得一批节点在某一个子步上的反力总和。GUI方式为:选择所有位移加载的节点,General Postpone,Read Result,By load step;输入子步号;List,Result,Reaction solution;选择力矩或者力。这时所列出的结果仅仅局限于查看某一子步。要想分析随着时间或者位移的变化而变化的反力情况,需要多次操作,手动统计数据,还是比较繁琐。
2.时间历程后处理中变量数据的结构
ANSYS时间历程后处理器POST26用于处理节点的结果与频率或者时间的关系,其操作均基于变量。其中最常用的获取节点反力的命令Rforce,Nvar,Node,Item,Comp,Name.其中Nvar变量号,Node节点号,Item,Comp用于定义力或者力矩及其方向。例如Rforce,3,4,f,z代表将节点4上的Z方向的反力定义为变量3。使用命令PRVAR,3将3变量列表显示,其结果分为两列,一列为时间,一列为对应的反力数值。数据点的多少取决于收敛计算过程中我们设置的SUBSTEP数或者系统自动进行划分的子步数。范例见图1。Rforce命令一次只能读取一个节点的反力。在实际应用过程中,我们研究一个节点的情况非常少,也没有意义。位移加载往往是在一条边或者一个面上的所有节点,而研究这些几何特征上所有的节点反力和与时间或者位移之间的关系才是有价值的结果。
3.命令流方式范例
APDL语言本身提供了非常丰富的条件、循环、变量计算等语句。我们可以利用这些实用的命令来获得理想结果。以下为一组可以获得一个面上所有节点反力和与面位移之间关系的命令流,面上所有节点的Z坐标为10.
前处理的命令此处省略。
/post26
numvar,10 !定义POST26中允许的变量数量
nsel,s,loc,z,10 !选择所有Z坐标为10的节点,一般也是我们进行位移加载的节点。这里不应该有遗漏,因为理论上所有位移加载的节点都会产生反力。既节点上的应力和不等于零。
*get,nCount,NODE,,COUNT !获取被选择节点的数量,定义到变量Ncount中
nNow=0 !定义变量nNow,初始值为0,另外,所有的节点号都是大于0的。
nsol,6,NDNEXT(nNow),u,z,zdisplacement !以选择集中最小节点号的节点的Z方向位移定义为变量6,由于是在面上进行位移加载,所以面上任意一个节点的位移都可以代表面的位移。
add,6,6,,,,,,-1 !对位移数据进行绝对值处理
*do,I,1,nCount !循环语句判定,循环次数为节点个数
nNow = NDNEXT(nNow) !获取下一个节点号大于0的节点号,更新到变量nNow中
rforce,8,nNow,f,z,zforce !用节点反力定义变量8
add,7,7,8,,,,,,-1 !将变量8乘以-1累加到变量7当中,如果变量7中有数据则用新的计算结果覆盖原有数据。
*enddo !循环语句结束
xvar,6 !定义图表的X轴为变量6
/axlab,x,diplacement !设置x轴标题
/axlab,y,force !设置y轴标题
plvar,7 !打印图表,Y轴为变量7,输出结果参考图2。
nDNEXT(x)命令可以获得选择集中节点号为X的下一个最接近的节点号。假如选择集中最小的节点号为5,则nDNEX(0)指向节点5,这样即使选择集中的节点号是混乱无序的,我们也可以遍历所有节点而无任何遗漏。ADD命令对数组型变量相加时,相同行的数据会进行相加获得新的数组。
4.结语
通过以上的一组命令流,我们就可以利用APDL循环语句和功能强大的函数对一批预先选择好的位移加载节点,不论其编号是否有序,不论其节点数量多少,进行统计计算,以获得加载合力随时间或者位移的变化情况。
参考文献
[1]王新敏.Ansys工程结构数值分析[M].人民交通出版社,2007.