ANSYS or Abaqus? 一个过来人的工作感悟
小孩子才做选择题,大人肯定都要。
这是个永无休止的热门讨论话题。
1. 从入门到入门
我是在研究生阶段开始接触有限元分析的。我本科学的高分子材料,研究生学的是复合材料,因此开始接触结构分析。14 年上研究生,教研室同时有材料学院的学生(复合材料专业)和理学院的学生(力学专业),力学专业的主要依托材料来做一些理论研究性的内容。在 15 年的时候,我开始跟着教研室学习有限元分析,使用的是 ANSYS,那时候跟着实验室从 APDL 学起,发现很费劲,也就学了一点点就中止了,那时候也压根没想着去学习有限元理论等等,就是好奇的学一下。
后来 16 年到了中科院工程热物理研究所联合培养,研究胶接结构的失效分析(渐进失效分析),发现大部分论文都用的 Abaqus,后来也跟着用 Abaqus。包括 Abaqus/CAE、用户子程序 USDFLD、Python 后处理等,但是折腾 Abaqus+VS+Fortran 的匹配问题都折腾了我半个月,乐此不疲。
再后来 17 年参加工作,在金风科技(主要从事风力发电机组的研发设计工作,包括铸件、螺栓、结构件、复合材料部件的静强度分析)都是用的 ANSYS(经典黑窗窗)。当时同事之间的工作和学习的氛围都很浓,老员工也很不吝啬地指导我们(非常建议大家毕业第一份工作去一个大公司,这样学习机会更多、知识体系会系统很多,当然了,学习最重要是靠自觉),所以在工作之后对 ANSYS 进行结构分析有了系统的学习,比如简单的有限元理论、 ANSYS 中各种单元的特性、接触设置、建模方法、以及 APDL 等内容。那时候主要用 Hypermesh 或其它前处理软件做前处理、用 ANSYS 经典作为求解器、ANSYS APDL 提取结果数据、ANSYS 经典或者 Hyperviewer 做后处理、用femfat或者 nCode 做疲劳分析。然后同时,同事们也兴高采烈地学习 Python,慢慢地,大伙们或多或少地用 Python 完成了一些项目,产出了一些可以解决实际工程问题的脚本或者软件。那个时候,我也编写了复合材料经典层合板理论强度预测的小工具(持续脱/脱更中……链接),还有维护升级了轴承计算软件,也是蛮有趣的工作。
再后来 20 年 7 月,到了武汉单位 A(主要从事复合材料军品的研发,包括结构分析、热分析、声固耦合分析等)工作的三个月,用的是 Abaqus+ANSYS。单位主要用 Abaqus,因为 Abaqus 相对于 ANSYS,在对实体模型进行复合材料建模方面更有优势,再加上与高校的合作比较多,所以就采用了Abaqus平台,偶尔使用hypermesh作为前处理器。另外也用ANSYS workbench,ANSYS workbench用于快速响应一些紧急、模型复杂但是不重要的任务(也就是有个图就行,不求准不准确)。
再后来20年10月,来到北京单位B(从事工作与武汉单位A类似),又开始转变为ANSYS,因为仿真的3位同事之前都是用ANSYS。不过比较有趣的是,我们3个搞仿真的以前都是用的ANSYS经典,也没有用过workbench这个新平台,来这边后,我开始尝试就在ANSYS workbench这一套产品中完成前处理、求解、后处理等一系列工作,包括小型、大型复杂产品的静力学分析、热分析、随机振动、冲击、声固耦合等分析内容,逐渐感受到了spaceclaim处理几何的强大,workbench的某些神奇功能很好用,且在项目开发时,对工程管理、模型修改很方便。
2. ANSYS 与 ANSYS Workbench
2.1 利器1: spaceclaim
模型的树状结构管理。很方便的激活和抑制部分组件。可以非常方便的点击面、双击选择附近的面,然后delete删除,甚至可以很容易直接删除同样的特征,包括倒角、圆角、圆孔等特征。
可以非常方便的对模型进行尺寸修改,拖拉拽就行。也有一些不好忍受的缺点,比如对于一些面、实体共节点的处理、对细碎面的缝合、一些不重要的线的抑制,这些和hm比还是差一些。;还有很多其它优秀的功能。可以参考网上的spaceclaim分析手册等资料进行学习。
- Abaqus与之对比
Abaqus对于大型复杂模型的装配是很力不从心的,需要每个部件(part)都一个个进行前处理。而且如果后期某个part变更了,你需要把原来的part删了,再把新的part重新前处理一次。
2.2 利器2: 方便的分析模块管理
WB 有非常直观的分析模块管理,这个可以在不同项目、但是分析步骤相近的产品开发时,非常容易进行复用(比如某一类产品需要静压载荷、过载等静力学分析,随机振动、冲击等动力学。特别是搭配上很好用的 named selection 进行特征识别,甚至都不太需要修改,就可以完成分析。
- Abaqus与之对比
在之前使用 ANSYS 经典时,主要经验是在 hm 中划分网格,再使用 APDL 命令流进行加载。所以对于这种“不同项目、但是分析步骤相近的产品开发”,是通过复用 APDL 来实现的。Abaqus 比较好的方式采用相近的思路,使用 Python 脚本进行处理。
2.3 一些不足
- 帮助文档
wb 的帮助文档简直烂的不行。学习的话基本都需要依靠官方、或者机构的培训教程,看帮助文档基本无法帮助你上手和了解这个产品。我分析的,主要原因可能是 wb 是个大杂烩,每个模块的开发都是比较独立的,通过数据交换进行连接,但是帮助文档的更新速度甚至无法赶上产品的开发速度。因此帮助文档极其混乱,不太友好。wb 足够好用,因此大大增加了使用者的信心,很多都使用默认设置,可以很傻瓜式的就得出结果(以至于会让使用者忽略正确去检查设置这一步骤)。而 ANSYS APDL 经典界面或者 Abaqus,你需要自己主动去控制每一个步骤,虽然复杂,但是可靠。不得不说,wb 的帮助文档很烂。但 ANSYS APDL 的帮助文档、Abaqus 帮助文档很好用,且 Abaqus 早期的教材是真的好(强烈推荐庄教授的《基于Abaqus的有限元分析和应用》,对于理解分析的原理很有帮助。
- 网格划分能力
WB 的网格划分能力有时候很捉急。对于实体四面体一顿划分,倒是没问题,但是对于(复合材料常用的)实体-壳共节点时,就不太好控制了。甚至对于面-体共享的时候,对于面加压强的无法实现,还需要用插入command 的方式。且 WB 对模型进行切分需要在 spaceclaim 中进行操作,而每次操作后,就会生成新的部件part,这些part之间几何共享网格共节点也需要另外进行设置,而在分析模块中更新模型后,有会改变分析模块中的模型树,材料属性、集合等特征也可能会丢失,这一点不如 Abaqus 和 hm 。WB 中对单元属性的控制也很弱。它会根据你的分析自动帮你选择单元并设置属性。这一步甚至要到求解的时候看到求解信息时你才知道它用的啥单元设置。
- 界面割裂
模块太多,以至于每个界面都是割裂的。这个无解。Abaqus就是千年不怎么变化,现在看Abaqus6.6的官方帮助文档时,看到6.6和最新的2022界面基本都没有变化。Abaqus与之相比,优点在于界面统一,功能足够可用,但只是不够好用而已。
- 查错麻烦
查错麻烦。对于涉及到稍微底层一点的节点编号、单元编号、接触设置等等,有时候还需要用ANSYS APDL经典界面或者是HM去查错。
- WB中二次开发受限
这个也有一部原因是帮助文档的锅。API写的很抽象。
2.4 总结
WB 平台有着非常方便、强大的前处理工具 spaceclaim,有着非常优秀的项目管理方式,可以很方便的实现复用。但是也有些很令人着急的缺点。
3. 但是,但是,为什么我又开始怀念Abaqus了?
(1)、因为workbench太强大了,因此有些无聊。
无聊到不想特意去继续学习workbench,因为很直观,只需要凭感觉找到对应的按钮就行了,复杂一些的或无法实现的,通过插入command(APDL),但是并不会像在经典里那样运行一行解释一行直接反馈。
我怀念写APDL和Python的日子,那种开心和惊喜与使用workbench很不相同。
(2)、还有一部分原因是因为工作原因,某些项目需要的水下振动分析内容,在ANSYS中实现起来比较麻烦(比如声固耦合)。
声固耦合分析时,对于上、下表面均有水体的壳单元模型,在ANSYS中建模比较麻烦,水域与结构域之间需要共节点;Abaqus相对来说简单一些,只需用tie绑定即可(ANSYS:“你礼貌吗?”)。从论文发表来看,这可能是行业相关高校(哈工程、海工大、华科等军工船舶强校)和研究所(中船下属)的相关研究人员基本都从ANSYS倒戈至Abaqus的原因?
(3)、自己的个人兴趣。
在网上看到一些大神用Abaqus做出了很帅的仿真案例,比如usim、君莫、蓝牙、孔祥宏等,具有趣味性和研究性,感觉很cool。除了工程上的那些模型复杂但是分析内容简单、理论熟悉的项目,自己还想增加一些带研究性的内容,也想逼着自己跟随操作和编程去继续深入学习一些之前没尝试过的显式分析和耦合分析等内容,并在这过程中学习相应的理论知识和编程动手能力。Abaqus加上Python这门胶水语言,有很丰富的想象力,我觉得是比圈在ANSYS平台内的APDL更大的。Python在工程上的应用,我朋友在这方面给了我很大的启发,推荐去他家逛逛(Hulunbuir , https://blog.csdn.net/Hulunbuir?spm=1001.2014.3001.5512 )。
4. 感悟与小结
4.1 感悟
从前有个观点,Abaqus 适合搞工程,ANSYS 适合搞研究。这句话出现的背景是零几年因为相对于早期基本靠 APDL 驱动的 ANSYS 经典,Abaqus/CAE(Complete Abaqus Environment) 有较齐全的前处理环境,可以靠点点点就能完成一般复杂的分析内容,直到后来 ANSYS workbench 的日益强大,再加上 Abaqus 独有的特性,这种关系对调了。
在我的理解看来,Workbench 有着强大的前处理能力和很多内置好用的工具,一般规模不大的单位或咨询机构用workbench能快速响应项目的分析需求,而不需要再配备前处理软件。而对于业务固定、产品复杂但分析内容固定的企业,比如汽车行业(一般不用ANSYS)、风电行业(金风、远景、上海电气、明阳、海装均使用 ANSYS 作为求解器,使用 ANSYS 经典)、航空(航空航天通用的是 nastran)、电子行业(华为使用Abaqus),依然依靠专业的前处理软件(hypermesh或ansa等),由于有着强大的研发财力和团队实力的加持,允许这些大企业去专门二次开发前处理软件来满足公司产品开发需求,ANSYS、nastran或Abaqus只作为求解器使用。由于Abaqus公认的非线性强大,材料本构丰富、以及显示/隐式分析切换方便,且Abaqus自带基本的建模和前处理能力,因此高校等研究机构的科研人员在硕士/博士阶段就开始使用Abaqus解决问题,一些车企、电子行业也使用Abaqus满足自己的研究分析及开发定制的需求。
高校等研究机构在复合材料的分析研究方面基本都是用的 Abaqus,主要有几点吧:1)研究机构对 ANSYS认知还在好些年前的 ANSYS 经典、对 workbench 认知不足,workbench 迭代很快,而高校对于软件的版本更新带来的新功能并不敏感,更加考虑是否可以满足自己的研究内容的分析需求,这一点,Abaqus相对于ANSYS经典更好上手,更加友好,更容易出分析结果,带来小成就感。2)研究机构的研究对象通常模型较“小”,但有两个极端:a)要么模型简单,但是需要进行参数化分析,因此需要建很多结构类似,但是尺寸有差别的模型,需要通过编程来更快捷地生成大量的模型;b)模型小、规则,但是极其复杂,需要通过编程来驱动模型的建模,这一点,ANSYS和Abaqus均需要通过编程来实现。比如:
来自 http://structures.dhu.edu.cn/f3/92/c14173a193426/page.htm
来自 http://structures.dhu.edu.cn/f3/92/c14173a193426/page.htm
来自 https://blog.csdn.net/weixin_44275842/article/details/117621583
来自 https://www.sohu.com/a/246999539_276332 中钢协设计分会 | 建筑黑科技——CSEPA 结构工程师的无限手套
workbench中确实有很多神奇的功能,比如接触的自动生成;比如External data模块可以很方便地对一个区域压强载荷进行插值到加载面,而这种功能之前通常需要自己编程完成;比如workbench中对joint模拟螺栓可以通过named selection+object generator实现批量实现。以及各种好用的功能……
但是,完全使用自带的功能总会遇到无法解决的瓶颈,workbench的上限来自于workbench开发人员的功能增加(不考虑插入command)。如果没有学习过APDL的人,是基本完成不了某些模型的建模的,比如使用杆单元模拟的轴承模型、带内嵌帘子线的轮胎、传送带等。
需要编程的ANSYS APDL或Abaqus的上限来自于自己的水平。
人的兴趣很多时候是来源于成就感。如果自己的分析能力完全由工具软件开发者掌握,自身的能力提升是有限的。相反,若能通过将自己的理论认知和工程经验进行打包封装固化再分享,成为工具开发者的一部分,我认为对于一个工程师而言,是很有成就感的一件事。
4.2 小结
我并不无意在此评价ANSYS或Abaqus孰好孰坏,我自身也并不会依赖单一平台去完成所有工作。我会依然保持很多项目的分析工作在ANSYS平台中完成,但是也会根据自己对Abaqus显式分析和Python的兴趣,开展对Abaqus的学习,借着之前对Abaqus、Python的学习基础以及pyqt界面开发基础,再融合自己的专业知识和工程经验的理解,争取做出一些令自己开心,对别人有用的工具。
ANSYS平台很好用,Abaqus也很棒,工具的意义在于解决问题,重要的是用的顺手,玩的开心。
建议大家在选择的时候看参考如下几点:
-
传承性。公司用啥我用啥、周围人用啥我用啥。看看自己周围的人用啥,看看关于自己感兴趣的内容在网上的热度情况,这样遇到问题也好解决一点。
-
解决问题的时间成本。如果需要快速的评估某个产品的结果,且这个产品在你的职位中并不存在传承性,即你可能就对这一类部件分析这么一次,那么wb是个不错的选择,简单易用。不需要靠代码来进行复用。对于成熟的产品,有现有的分析流程SOP,那么用啥都一样。
-
自己的产品喜好。如果你确实对某一款产品感兴趣,更习惯于他的使用逻辑,不管周围人用的啥,学就是了。
-
自己的职业定位。如果你准备就专注于CAE,那么选择一个能尽快解决问题的产品已经不能满足于你,需要的是更深、更专业的应用,Abaqus是个不错的选择,可以很好的理解操作过程中每一步的意义和对结果的影响,因此准确的相对更可控,且Abaqus的二次开发会方便很多。如果是关注于某个全新产品的开发,由于缺少经验积累,仿真的准确性和在项目开发过程中的重要性就会相对稍低;类推,仿真精确度的优先级低于迭代的速度,那workbench倒腾起来比较快。
“小孩子才做选择题,大人肯定都要”。这是句玩笑话,但是在有限的学习时间里,大家肯定想选择最快上手、最早能解决问题的工具。 希望本文能对大家有所启发,当然,什么启发都没有的可能性也是存在的啦!(✿◡‿◡)
选择好就好好学习、全力以赴啦!祝大家学的开心,想有所成~
附:行业经验
来自于达索工程师很客观的评价,原文如下:
What are the advantages of Abaqus over ANSYS? (researchgate.net)
26th Oct, 2018
Giovanni De Morais Teixeira
Dassault Systèmes
The best software is the one you know how to use well and fits in your budget. Abaqus licensing has changed to extended tolkens which is way cheaper than ANSYS. Also, ANSYS relies on the partnership with DYNA for explicit analysis whereas Abaqus has it all integrated. You can switch from explicit/implicit between analysis steps. ANSYS WB is easier for the beginners, however difficult to get a really good meshes. In any case you’d have to use a more professional mesher (as Hypermesh or ANSA). In terms of industries, Abaqus has greater penetration in the Automotive while ANSYS is preferred in the Energy Industry. ANSYS APDL interface is outdated by 20 years (Abaqus CAE is way better and more intuitive). The ANSYS Parametric Design Language is still useful though, but you can get the same results using Python with Abaqus. ANSYS doesn’t offer an API to interface with the RST. So you if you’re developing an application that depends on reading ANSYS results (file.rst) that could be a pain. Abaqus offers a very good API, so you don’t need to worry about the details on how the database is structured. People prefer to develop UMATs in Abaqus rather than ANSYS as far as I am aware. My hint for a good choice: Have a look at the whole family. What else is there to support you along the product development? Will you need optmization, fatigue, multi-body, CFD, explicit, acoustics, electromagnetics, etc.? ANSYS comes with CFX, FLUENT, etc. But you have to pay for all of them separately of course. Abaqus comes with TOSCA, fe-safe, Simpack, xFlow, xFEM and you don’t need to pay for all of them. You buy tolkens. Depending on how many tolkens you bought you may be able to use few of them simultaneously. It is worth mentioning that in aerospace NASTRAN is still the reference. And in Academia COMSOL is getting increasing acceptance.
来自 https://www.researchgate.net/post/What-are-the-advantages-of-Abaqus-over-ANSYS
我总结如下:
在航天产业,NASTRAN依然是参考。
A.1 行业选择
根据我认识的,进行总结,不一定全面。
风电行业,国内ANSYS经典+HM是主流。国外就是workbench一套。
电子行业,Abaqus是主流, Abaqus在电子行业的认可度还是挺高的(华为是Abaqus+HM/ANSA)。因为电子行业很多材料本构都需要Abaqus的umat等用户子程序,且需要使用显式分析。
航天方面,通常用nastran,但是Abaqus也有上升趋势,特别是涉及到复合材料的。国内的航天机构,usim、孔祥宏都属于在航天从业者,也都是Abaqus的大佬;我认识的航天一院、商业航天一些伙伴,也是在使用Abaqus。NASA也是用Abaqus做复合材料相关的研究。究其原因也在于Abaqus的Python二次开发方便,umat等用户子程序好用。
复合材料研究,高校和研究所基本都是Abaqus。
土木行业,现在也大量使用Abaqus,也是因为土木材料非线性需要依靠Abaqus的umat、土木的建模需要使用Python进行二次开发与其它软件进行数据交换。
A.2 知乎某位大佬
由于禁止转载,我就不粘贴了,原文如下。ANSYS还是Abaqus?新手入门求推荐? - coady的回答 - 知乎 https://www.zhihu.com/question/21967792/answer/1757086981
更多推荐
所有评论(0)