这是APDL Technology Showcase的第一个案例,描述的是一个刹车盘,在制动的时候会发出啸叫声。使用三种分析方法:
1)线性非预应力模态分析 linear non-prestressed modal;
2)部分非线性摄动模态分析 partial nonlinear perturbed modal;
3)全非线性摄动模态分析 full nonlinear perturbed modal。
综述和模型图片:
这个制动器长下面这个样子。还挺复杂的:
本案例通过刹车盘和刹车片之间的摩擦引入阻尼,然后在非对称模态分析中求出了包含虚部的不稳定模态。得到尖叫噪音的频率约6470Hz. 下图是官方文档中给出的第21阶模态,即第一个不稳定模态的形状:
好,下面我们正式开始。
把Technology showcase files下载好之后,里面有td-1到td-59这些文件夹。td是Technology Demonstration的缩写,也是很迷惑ANSYS这个版本为啥要给案例库改名。td-1文件夹里摆着5个文件:
分别对应开头写的三个分析方法,和一个参数研究(结尾带_par的那个)。如果想要重复出案例库给的结果的话,只需打开ANSYS APDL,将启动目录设置好,在该目录下放那个cdb文件和想要的dat文件,然后点击打开(或者File-Read input from),读取你想做的某一个dat文件,就可以一步到位完成计算了。
以这个linear_non_prestressed.dat为例,打开ANSYS Mechanical APDL Product Launcher,设置好工作目录和项目名。如果想要多核计算的话,还可以在高性能计算的选项卡页修改使用的核心数。不过18还是19以后都默认开两个核心了,这个算例不咋花时间,就不改它们啦。
比如读取这个linear_non_prestressed.dat,文件里面直接就有solve命令(后文会解析),所以等一小会儿,软件直接就求解好了。
然后读取结果呗。General Postproc,Read Results,By Pick,可以看到求出来的复数模态。第21阶模态的实部开始有非零值,对应的频率为6474.5Hz。和前面放的那张帮助文档里的求解结果(6474.25)相当一致哈。
依次访问Plot Results,Contour Plot,Nodal Solu,DOF Solution,Displacement vector sum,就能看到模态的形状啦。
(以后我也就不像保姆似的写这么细啦。但这毕竟是第一篇,也许有一些第一次碰APDL,对它不太熟悉或者曾经被这复古界面劝退的朋友,给扫个盲~)
模态结果中的位移没有物理意义,只有模态形状是有用的。
其他几个分析案例也可以这样操作,看到计算结果。那我们就先放一放,接下来首先读一下帮助文档中的建模介绍,然后再来学习一下做这个分析要用到的APDL命令。
先插入一个吐槽,ANSYS这个经典界面(从Workbench出来以后它就改名叫Mechanical APDL),是ANSYS软件梦开始的地方。它功能是真的强,但界面也是真的丑。差不多时期起步的那些软件,包括ABAQUS,Hypermesh,甚至Office等,都沿用同一套GUI不断更新,最近几年除了达索ABAQUS以外基本都拥抱微软的Ribbon界面了。就只有APDL,按说它还在更新功能,这界面应该也不是写死在Fortran代码里的啊,不知道为啥连个图标都不给更新。还有各种麻烦,没有撤销键这种事老生常谈就不多说了。
而且,APDL界面由于早期电脑显示分辨率比较低,它的左侧菜单就经常写单词的缩写。比如刚才我们看到的Nodal Solu,这个Solution单词似乎就是因为地方不够 (?我猜的哦) 而拼成了缩写。而且APDL的命令流,因为是Fortran那个时代过来的,真的是惜字如金,很多命令根本无法顾名思义猜到它是干啥的,必须得去查帮助文档才行。
和APDL形成鲜明对比的则是Abaqus(对,较个真,ABAQUS被达索收购以后就把后面几个字母改小写了),它的几乎每个GUI命令在后台都对应着一条Python代码,那代码读着简直就像在读英文。在面向对象的数据结构下,Abaqus的变量名和对象的方法名都写的特别长,让人几乎是一眼就能知道每一行代码是啥意思。——跑题了,这些吐槽以后有机会再细说。感兴趣可以翻翻我前面写的,有限元软件的比较。
然后是文档中的建模介绍。
刹车制动器的啸叫声,传统上需要人工计算来自滑动摩擦中的不对称项,然后使用MATRIX27单元输入这些不对称项。这太费劲了,好像还需要接触对之间的网格匹配。所以ANSYS这个案例没有这么做,而是使用了接触单元。用接触的方式描述摩擦,接触面和目标面的网格不需要节点与节点的匹配。
这个模型里,除了刹车片和刹车盘的两个接触使用滑动摩擦,摩擦系数0.3以外,其他的零件之间都使用绑定连接,绑定算法使用多点约束(MPC)。
这个制动器在发生啸叫的时候,刹车盘相对于刹车片是有相对滑动的。所以,在模态分析中要使用CMROTATE命令定义它们之间的相对滑动。
然后是网格划分。这个模型是一个非常规则的旋转体,可以画出方方正正的映射网格。不过中间有螺栓孔的那部分可能是因为不重要吧,ANSYS官方在画网格的时候估计也是放飞自我了。
材料参数就是线弹性的结构钢,没啥可说的。
边界条件随分析而不同,第一个分析只有位移边界条件,后面的分析还施加了预应力。
好,那么下面的1.6节讲的就是求解了,我们直接打开对应的dat文件读一下它给的APDL命令流。
linear_non_prestressed线性非预应力模态分析 命令流解析
让我们从最简单的这个项目开始。打开linear_non_prestressed.dat文件。
有用的就两行:
shpp,off,,nowarn
cdread,comb,disc_pad_model,cdb,,
第一行,关掉单元形状检查。否则就中间螺栓孔附近那放飞自我的网格划分,ANSYS APDL会看不过去而报错。
在APDL的菜单里,关闭单元形状检查的命令 位置在这:
第二行,打开cdb文件。comb代表这个文件里同时包含模型和边界条件等信息。
(这个愚蠢的翻译……聊胜于无吧)
这后面,就全都是/com 命令后面跟着的注释了。
注释结束后,有用的命令就这么一丢丢。
/soluantype,modal ! 执行模态分析
modopt,unsym,30 ! 使用非对称求解器,提取30阶模态
mxpand,30,,, ! 展开30阶模态
nropt,unsym ! 牛顿-拉夫森选项设置为非对称
cmsel,s,c1_r,
cmsel,a,c2_r,
cm,E_ROTOR,elem ! 创建刹车盘的单元集
allsel,all
cmrotate,e_rotor,,,2, ! 转它一下,让刹车片和刹车盘之间产生摩擦力
solve
前面几行没啥可说的。在APDL里对应了这些操作:
这个NROPT,其实我在APDL里这样操作的时候眼拙没看到这个选项。但尝试一下如果不输入NROPT, UNSYM的话,软件就报错。告诉我这个矩阵是对称的,让我别用非对称求解器来求它。果然是官方,人狠话不多,一句废话都不说。
后面cmsel那两行,实际上是选择了正反两面的刹车盘表面单元,然后将它们组合成了新的单元集,叫E_ROTOR。帮助文档截图写的很清楚了,s就是新建选择,a就是添加到选择。
最后,最重要的一行,CMROTATE,是用来指定转速的。为了看清楚一些,我放大点截图。
wow,这个命令就是专门为刹车盘噪声分析准备的诶。而且居然就连APDL界面上都没给这命令准备GUI访问方式。
好的。最后一行 solve求解。
求解结束后,在Read Results里,By Pick可以看到各阶模态。这里打开第22阶模态,画出实部对应的模态形状:
到此为止,这第一个分析——线性非预应力模态分析就算是做完了。将近三千字读下来,你学会什么了吗?
——反正我是啥也没学会。小朋友你一定有很多问号,为啥这么做啊?为啥接触就得用非对称的,为啥NROPT这儿也要选非对称,不选就不能求解啊?为啥模态求出来的频率有实部还有虚部,他凭啥说实部为正的模态就不稳定呢?为啥前面那么老些模态,咋偏偏就第21,22阶模态最重要呢?
跟着官方的命令流操作一遍,甚至把每个命令流的帮助文档都读了一遍。正确的结果倒是做出来了,甚至稍加调试一番,把这个结果在Workbench上重复出来也不算很难。但是……有用吗?学案例只学了操作没学到原理,东施效颦,下回给你换个模型,你还是不会。
我写这个APDL Showcase,既不是为了单纯写案例,也不是为了涨粉,最根本的原因还是给自己写一个学习笔记。既然是学习笔记,骗得了别人骗不了自己,而且反正也没人催我,我就想把每一个选项背后为啥这么做的原理都搞明白,都学透。
好的,下面是一大篇闲聊。但我觉得反而是最精华的部分。我马上就要回答开头提出来的问题了。
话说,不知道读者有没有过这样的体会:读书的时候,我们总说磨刀不误砍柴工。所以教科书就花了很大篇幅,事无巨细一五一十的教我们怎样磨刀。可是磨了半天刀,别说没看见要砍的柴了,我们连森林在哪都没见着。别人我不知道,反正我自己在学习的时候最常质疑自己的话就是:“学这东西到底™有啥用啊”。结果学的时候不认真,也不知道这东西能干什么,只为了拿来应付考试;等到多年以后要砍柴/砍树/屠龙了,拍脑袋发现诶当年磨的刀都钝啦,甚至对大部分人来说,这把刀从来就没锋利过。
我自己学有限元,读王勖成的《有限单元法》、曾攀老师的《有限元分析与应用》、辛科维奇的《The Finite Element Method - for Solid and Structural Mechanics》时,也有这种体会。有限元明明是一个生来就需要结合计算机的工具,读完了大半本书,却连一个最简单的梁单元分析案例都不会操作。书里讲的那些理论,在软件里分别对应到哪里,也是一头雾水。反过来,学习ANSYS Workbench等有限元软件操作的时候,理论讲的又浅尝辄止,仿佛会点鼠标会操作界面就是会了有限元分析。
有那么多大牛、前辈们写文章说,想做好有限元分析必须要有扎实的力学基础。但是这力学基础要怎么学呢?学完了怎么用上?不解决这些问题,就跟煮鸡汤不给勺子,没用嘛。
我前几天也试着写了一页模态分析的理论背景。但写出来重读一遍,发现了和我刚才说的一样的问题:没有实际问题背景,这些理论知识仍然就好像在远离森林的地方磨刀一样,你甚至不知道你这把刀以后是要拿来砍树、切菜还是屠龙。那太没意思了。也许有些学霸们的厉害之处就在于 能够在看不见未来应用前景的情况下专心把理论学好,但是不好意思 我不是这个品种的学霸。我的耐心有限、我的目光短浅,我只想要学习的过程里能多一点即时反馈,我只想知道,这些密密麻麻的公式背后,有没有藏着什么有趣的物理过程。
所以,我原本打算先写一篇理论背景,然后再用一篇文章的篇幅讲Showcase1 的软件操作的。但现在看来,我决定把它们拆开。写一点软件操作,接着就去搞懂它们背后的原理;然后再写一点软件操作,再接一点原理。不见兔子不撒鹰、不撞南墙不回头、不看到大树,我就不去磨我的“刀”。先把第一个线性非预应力模态分析完全弄明白了,再去研究带预应力的摄动模态分析。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删