记录一下ADAMS柔性体仿真的前置工作。常见的Ansys导出模态文件都是基于老版本的Ansys,本篇基于Ansys Workbench 2021R2。
首先,关于模态的部分基础知识:https://zhuanlan.zhihu.com/p/444291906https://zhuanlan.zhihu.com/p/444291906
这里在ansys里对单个零件分析其自由模态,然后导入ADAMS里做约束与动力学。考虑到ADAMS里可以将一个刚性零件用mnf文件替换为柔性体,并且ADAMS里要精确调整零件的位置与姿态相当复杂,因此前置工作需要在SolidWorks的装配体里,压缩其他所有零件,保留一个零件,然后再导出为parasolid文件,进入ansys里做模态分析,这样才能保证adams里文件替换以后零件位置姿态不变。
例如一个四杆机构在SolidWorks里装配好之后:
比如要单独导出曲柄,就把机架、连杆和摇杆都压缩掉:
然后再导出成parasolid,这样就会保存零件在装配体中的位姿信息。
之后,在Ansys Workbench里新建一个模态分析,并且导入刚才保存的零件模型。
网格划分什么的这里就不提了,目前我还不太会。这里说一下远程点。
远程点在我们的工作里有一定作用,但不算太重要。在Ansys里定义的远程点,可以通过控制代码导出到mnf文件中被adams读取,这样在adams中获取零件的一些重要点位会比较方便(众所周知adams找特征点特别阴间)。
在模型上右键→插入→远程点,新建一个远程点。
随后可以通过选择几何结构来定义远程点,比如这里选择连杆孔洞的柱面,它会自动定义为柱面形成的圆柱体的重心。
xyz坐标可能略有一点误差,可以手动修改一下。 然后在远程点上右键,插入命令。
这里输入的命令是:Crank1=_npilot,意思是把这个远程点命名为Crank1,如果要做远程点导出,这一步是必须的,否则有可能报错。采用其他名字,把等号左边的替换就行。
随后,在【求解】上右键,插入命令。
OUTRES,all,all
/PREP7
/UNITS,user
nsel,s,,,Crank1
nsel,a,,,Crank2
adams,20,1
FINISH
需要注意的是units,要检查一下ansys里的单位系统与adams是否一致,我的ansys与ADAMS都被我设置成SI国际单位制了,所以这里写user或者si都可以。
下面的nsel是指建立导出集合,就是我们的远程点,s是新建一个导出集合,a是往集合里加东西。所以对于第一个远程点,要写s,后面的都写a就行。
具体的参数含义可以参考Mechanical APDL Command Reference
但该网址的版本较老,可能与实际略有出入。
命令写完之后,直接开始求解就行。 完事之后在求解方案文件夹里可以找到file.mnf文件。
这里有一个很莫名其妙的问题。在分析设置里可以调整最大模态阶数,默认是6阶,但是众所周知对于自由零件而言前6阶模态就是6个自由度的运动,没啥意义。但是生成的mnf文件是内含了32阶模态的,从adams里可以看出来。
更奇怪的是,如果你一开始就求32阶模态,很可能会报错,出不来结果(虽然mnf文件能正常生成)。这时候先把最大阶数设置成6,跑通一遍之后再设置成32,就能跑通了,很邪门。
生成mnf文件之后,ansys就可以不去管它了。进ADAMS里,可以先把整个装配体导入进去,然后一个一个替换柔性文件,也可以直接把柔性文件一个一个导入进来,没有太大区别。
把要柔性化的零件替换成柔性零件之后,要做的事情跟常规的动力学仿真没啥区别,添加约束什么的。这里可以注意到之前设置的远程点能够被adams读出来(图片中经过重命名),对于我们建立约束、测量之类的有很大的帮助。
仿真结果:
这个是右边那根摇杆的长度变化曲线,可以发现在运动过程中由于变形有轻微的长度变化。
1677586436547