ANSYS如何采用命令流获得最大值最小值

Please Share Us

点击此处查看 ✿水哥原创ANSYS视频教程清单 ✿

水哥专属答疑服务已开通,点此此处查看详情

最近发现群里有不少同学在咨询ANSYS获取最值的问题,水哥这里就简单总结下常用的最值获取命令流,主要是利用*get命令,仅供大家参考。
一、编号最值获取
问题描述:在参数化建模中,新建几何对象、或者节点单元的时候,需要知道当前模型中的元素编号的最值。
参考命令:
以关键点为例,其余类型替换成关键词即可,如查询单元最大编号,将KP换成Elem,查询节点最大编号,将Kp换为node。
!最大值
*get,kpmax,kp,0,num,max
*get,kpmaxd,kp,0,num,maxd
!最小值
*get,kpmin,kp,0,num,min
*get,kpmind,kp,0,num,mind
注意这里max、maxd和min、mind的区别,max和min分别是获取当前选择集中的最大或者最小编号,而maxd和mind则是获取当前模型中的最大或者最小编号,当采用Allsel,all命令选择全部时,两者等效。
二、坐标值最值获取
问题描述:获取当前指定对象几何坐标的最值。
参考命令:
!以关键点X方向坐标为例,其他对象替换方法可参考前文所述。
!X方向坐标最大值
*get,kpxmax,kp,0,mxloc,x
!X方向坐标最小
*get,kpxmin,kp,0,mnloc,x
注意此处的坐标值是在当前激活坐标系下的坐标值,获取之前应首先用csys命令确定当前坐标系,除此之外,有些元素并无坐标值概念,例如Line。
三、位移最大值及相应的节点编号获取
问题描述:模型分析完毕之后为了评定模型状态,可能会需要获取结构在当前工况下的位移最大值以及相应的节点编号以便做下一步计算分析。
参考命令:
!获取节点X方向位移最大值
!首先将研究对象按照真实值或者绝对值升序或者降序排序
/post1
set,1,last            !指定具体的荷载步
allsel,all
nsort,u,x,0,1    !可自行Help查看nsort使用方法
*get,Uxmax,sort,0,max    !最大值获取
*get,Uxmaxd,sort,0,imax   !最大值对应的编号获取
除此之外,还可以通过绘制云图后,在通过命令获取最大值,但相应的节点编号缺无法获取,命令如下:
/post1
set,1,last            !指定具体的荷载步
allsel,all
plnsol,u,x
*get,Uxmax,plnsol,0,max 
注意上述值均为当前结果坐标系下的值,若要获取不同坐标系下的值,如想要获取周向、径向的值,需通过Rsys命令将结果坐标系进行转换,默认为笛卡尔坐标系。将上述命令中的max改为min即可获取最小值,将X改为其他标识符(如Y、Z、Sum)即可以获取在其他方向的值。
四、最大应力值及相应的节点编号获取
这里需要分两种类型来讲,一种是没有采用单元表,如实体单元、壳单元的应力;一种是采用了单元表,如杆单元和梁单元,两者区别主要在于对单元表的运用。
1、实体单元、壳单元应力最值获取
提取方法同上述位移最值,只是将标识符稍作改变即可,如下:
!获取节点等效应力最大值
!首先将研究对象按照真实值或者绝对值升序或者降序排序
/post1
set,1,last            !指定具体的荷载步
allsel,all
nsort,s,eqv,0,1    !可自行Help查看nsort使用方法
*get,Semax,sort,0,max    !最大值获取
*get,Semaxd,sort,0,imax   !最大值对应的编号获取
2、梁单元、杆单元应力、内力等最大值最小值获取
对于梁单元、杆单元,除了位移结果外,其余大部分结果都需要通过单元表获取,例如弯矩、轴力、剪力、应力等,在提取相应结果的最大值最小值时命令流略有不同,总的说来,对于采用单元表提取最值,主要有两种情况:
1)单元表项中不分I节点和J节点,如link180中的轴力Force

ANSYS如何采用命令流获得最大值最小值

最大值最小值提取方式如下:
/post1
set,1,last            !指定具体的荷载步
allsel,all
Etable,Zforce,smisc,1  !采用单元获取轴力
Esort,etab,Zforce,0,1   !对单元表进行排序
*get,Zforce_max,sort,0,max    !最大值获取
*get,Zforce_maxd,sort,0,imax   !最大值对应的单元编号获取
2)单元表项中需要分I节点和J节点,如Beam189中弯矩、剪力等

ANSYS如何采用命令流获得最大值最小值

对于此种情况,需要分别获取I节点和J节点的最大值,最后通过比较大小,获取最终最大值。有同学可能会有疑问为什么要比较I和J节点的最大值, 因为在一个结构连续体中,1号单元的J节点就是2号单元的I节点,那么是不是只需要提取I节点的最大值就可以了。
这里之所以要比较两者最大值,主要是考虑端部出现最大值的情况,例如悬臂梁受力情况,参考命令流如下,以提取beam189单元My最大值为例:

/post1

set,1,last            !指定具体的荷载步

allsel,all

Etable,MYI,smisc,2  !采用单元获取I节点MY值

Etable,MYJ,smisc,15  !采用单元获取J节点MY值

Esort,etab,MYI,0,1   !对单元表MYI进行排序

*get,MYI_max,sort,0,max    !最大值获取

Esort,etab,MYJ,0,1   !对单元表MYJ进行排序

*get,MYJ_max,sort,0,max    !最大值获取

!获取绝对值

MYI_max=abs(MYI_max)

MYj_max=abs(MYJ_max)

!比较两者大小,取最大值

MYmax=MYI_max

*if,MYmax,le,MYJ_max,then

MYmax=MYJ_max

*endif

*status,MYmax

五、时间历程后处理中变量的最大值获取
前面四种情况主要适用于通用后处理中,而对于时间历程后处理的变量情况,有时候也需要获取最大值最小值,如果打开时间历程后处理界面,可以直接看到最大值最小值,如下所示:

ANSYS如何采用命令流获得最大值最小值

但如果需要采用命令获取最大值最小值,目前本人还没发现可以直接获取的命令,如果有同学知道,可以留言共享一下,目前本人的思路如下:
1、将 时间历程变量转为数组
2、写数组循环,根据需求获取最大值最小值
参考命令流如下:
/post26
Nsol,2,230,u,x    !获取230号节点X方向位移时程.
!获取总的子步数,以确定需要定义数组的维度

*get,WD,active,0,solu,ncmss

*dim,Ux2,array,WD

!将变量转为数组

VGET,Ux2(1),2

Ux2_max=Ux2(1)

Ux2_min=Ux2(1)

*do,i,1,wd

!最大值判定

*if,Ux2_max,le,Ux2(i),then

Ux2_max=Ux2(i)

*endif

!最小值判定

*if,Ux2_min,ge,Ux2(i),then

Ux2_min=Ux2(i)

*endif

*enddo

*status,Ux2_max  !最大值

*status,Ux2_min   !最小值

ANSYS如何采用命令流获得最大值最小值

以上便为在ANSYS中常见的获取最值的命令流,仅供大家参考学习~!

祝好

ANSYS结构院

2020.10.27

欢迎扫描如下二维码关注本站微信公众号:ANSYS结构院

有时间麻烦帮忙点击下公众号文末的广告哦, 权当码字的辛苦费,感谢大家!

Please Share Us
© 版权声明
THE END
喜欢就支持一下吧
点赞3赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容

YOU MAY LIKE…