CAE是计算机辅助工程的英文简写,所涵盖的范围甚是广泛。现在很多人提到CAE,总是联想到结构有限元计算,更有甚者认为有限元就是CAE。还有人把所有的工程数值计算都称作有限元。本文就这一话题,来谈谈关于CAE的那点儿破事儿,以最粗浅的文字来讲述CAE所涉及的那点儿东西。

1 到底是什么

CAE(Computer Aid Engineer,计算机辅助工程)。按中国话的语法习惯,“计算机辅助工程”是不太容易理解的,工程有什么好辅助的呢,这里可以换一种说法:“计算机辅助工程计算”,是不是觉得好理解了些呢。将CAE理解为计算机辅助工程计算,以与计算机辅助工程设计(CAD)相区分,以避免混淆。

又有人问了:“工程计算指的是什么?工程上有什么需要计算的?设计完了不就OK了么?”

那么我要问了:“设计的出来的各种数据是凭空想象出来的么?产品的长宽高、材料的性能要求、加工装配要求等等各种要求是拍脑袋得到的么?难道不需要计算?”。因此在工程上,CAE所做的计算工作是用于产品设计的,是为产品设计服务的。(在科学研究上,CAE有另外的用途,后面再说。)

在产品设计的前期、中期及后期,都有可能会应用到CAE。在前期,CAE主要用于概念设计;在中期,CAE主要用于优化设计;在后期,CAE主要用于性能校核。CAE的位置越靠前,对产品设计越有利。很不幸的是,目前我们国家CAE的应用大部分用于产品设计末期,上述用得好的企业可能用于中期。

总结:CAE是一种利用计算机解决工程设计中的计算问题,并利用计算结果数据指导工程设计的方法及手段。

有限元只是一种数学方法,其全称是“有限单元法”,是一种求解偏微分方程的数值方法。其实此类的方法很多,除了有限元法外,还有诸如有限体积法、边界元法、谱方法等等,多达N种,数都数不清。就拿有限元应用最广泛的结构应力计算领域来讲,实际上可以计算结构应力的数学方法很多,有限体积法和边界元法都能做这事儿,而且最近闹得比较火的无网格法、格子-波兹曼方法也可以解决这类问题。实际上结构应力计算就那么个偏微分方程,不管用什么方法,目的都是为了求解那个方程而已。

之所以很多人将CAE误认为是有限元,分析原因可能在于:

(1)目前CAE的一大块应用领域在于结构应力计算,而目前结构应力计算的主流方法是有限元法。

总结:CAE是一种工程技术手段,而有限元只是CAE所使用的众多数学方法中的其中一种数学方法。

2 能干些什么

CAE能干很多的事情。粗略来说,CAE可应用于以下一些领域:

  • 结构应力计算。这是一个很常见的CAE应用领域,包含的范围及其广泛。常规计算包括静力学计算、模态计算、谐响应分析、谱分析、随机响应分析,更复杂的还包含疲劳计算、裂纹扩展分析等等。
  • 流体流场计算。流体计算是CAE另外一个重要的应用领域。流体计算通常包括常规的流动计算、传热计算、多相流计算、化学反应及燃烧等等。
  • 电磁场计算。其中高频电磁场与低频电磁场又分别包含有不同的计算内容。
  • 声学计算。气动声学与振动声学是两个主要的声学计算领域。
  • 多体动力学计算。机械领域应用相当多的场合,主要用于分析机构在运动过程中的速度、加速度等物理量。
  • 光学计算。(对此领域不熟悉,不过的确是一个很大的CAE应用领域)
  • 多物理场耦合计算。以上各种计算搅和在一起,随着计算机性能的不断增强,越来越多的工程问题可以考虑多物理场耦合计算。
  • 系统仿真。(此领域不怎么熟悉,不过也是一个大的CAE应用领域)
  • 优化设计。工程优化问题通常涉及到大量的数值计算,同时优化设计还需要配合实验设计。

当然可能还有很多其他的领域并未包含进去,不过应该说是包含了大部分的领域。CAE包含的范围实在是太广泛了,因此单纯的去提CAE能干什么,并不是一件很理智的事情。经常有网友在群里问"学CAE要看那些书籍?",对于此类的问题,真真是没有答案的。

总结:CAE的应用范围及其广泛,不讲领域而单纯的去讲CAE的话题是没办法继续下去的。

3 人的作用

之所以会有这么一说,其实是源于群中问得最多的一个问题“搞CAE到底是否有前途”。要分析搞CAE是否有前途,那么就必须要弄清楚人在CAE中所起的作用。

随着计算机性能的不断提高,以及人工智能技术的不断发展, 很多人担心自己的饭碗会被计算机抢走,对于只会操作CAE软件的人尤为如此。你想嘛,点鼠标谁不会呢,计算机似乎比人类更擅长,不是吗?

但真实的情况应该是怎样的呢?真正的CAE人员会被人工智能取代么?人脑在CAE中应当处于什么地位?

在谈论这个话题之前,还是强调一点:CAE计算的目的不是为了得到一堆数据或花花绿绿的图片,而是为了发现问题和解决问题。

将来不敢说,不过就目前以及近几年来讲,计算机还只是一个死物。人工智能还远没有发展到使计算机能从复杂的现实世界中抽象出物理模型,以及将CAE计算结果应用到物理模型改进上。举个简单的例子。比如说一个苹果从树上掉下来了。当前的人工智能技术足以使计算机识别到这一现象,但也仅此而已,计算机并不会知道是什么原因导致苹果从树上掉下来。计算机可以识别到苹果下落的速度,但计算机不会知道该如何去控制苹果的下落速度。

工程CAE也是一样,人在其中所起的主要作用我觉得无外乎这两个:

  • 其一:告诉计算机现象背后所涉及到的物理模型
  • 其二:利用计算机提供的计算结果找寻规律或指导设计

有一类CAE从业者容易被人工智能取代。一种是纯粹的软件操作工。只会操作软件,不管物理现象背后的理论背景,不知道如何选择合适的计算模型,得出了计算结果也不会利用。这类人在当前CAE使用者中占了多数,他们熟悉各种前后处理软件以及求解器的操作,但是很遗憾,你点鼠标的速度再快也绝对快不过计算机的。

总结:骚年,CAE软件操作并不等同于CAE,单纯的软件操作工是混不长久的。

4 具备哪些素质

我一直很反对本科生搞CAE,这绝不是学历歧视,其实我见过很多本科学历的人CAE做得非常好。

为什么反对本科生搞CAE呢,这里把理由摆出来:(注:我觉得这里反对的声音肯定很多,不过我还是保留自己的意见)

  • 其一:理论准备不够。当然很多人会说:“很多研究生的基础也很差啊,搞机械的研究生连屈服强度是什么都不知道的都大有人在”。我不排除这种极端情况,但是你觉得机械专业的是本科生不知道屈服强度的人多还是研究生不知道屈服强度的人多?不争论这个。以结构应力计算为例。粗浅的来说,结构计算的核心内容在于材料本构、约束和载荷、强度理论等。很遗憾,我们国家绝大多数高校机械专业的学生学习的力学主要是理论力学和材料力学,开弹塑性力学的很少。那么关于材料本构,印象中材料力学只涉及到了线弹性;关于约束和载荷,貌似机械原理中会简单的讲到一点点;关于强度理论,在材料力学中提到了四个准则,更复杂一点儿的就没有了。对于这点儿基础,如果去做结构应力计算,显然只是储备是不够的。结构应力计算是相对来讲比较简单的,那更复杂的疲劳、接触以及裂纹呢?很多硕士研究生都未必有这方面的理论基础。
  • 其二:思维方式不足。还是那句话,CAE的目的并非得到一堆花花绿绿的图片,而是要反哺设计。本科生的思维大部分停留在正向思维上,习惯于利用设计参数获得设计结果。但是CAE的使用并非直接利用设计参数得到设计结果,通常CAE的使用是利用大量的计算数据获取物理规律,再利用得到的物理规律指导设计。这里存在一个反问题的解决上。最直接的例子就是优化设计。当然很多所谓的优化设计其实并不能称之为优化,而仅仅只能称为优选,因为其没有一个目标函数。那是怎么做的呢?比如说一个产品有5个参数可以控制,那么设计者凭借经验随机的修改其中的参数,然后对修改后的性能参数进行比较。这实际上碰运气的成分比较大,传说中的“试错法”。有时候运气好,修改参数后确实能提高性能,但并不能保证是最优的,当然更多的情况是无用功,尤其当产品控制参数相互关联相互影响的情况下。

当然上面说的本科生只是指普遍情况下,并非指所有的,也不排除特别的优秀的搞CAE特别好的本科生,但相对于研究生队伍来说,比例绝对不会高。

回到主题,需要具备哪些基本素质呢?以下是个人看法:

  • 熟悉自己所从事领域的物理理论背景。搞结构静力学计算的肯定要了解弹塑性力学,搞CFD计算的肯定要了解流体力学。这是最基本的素质。否则可能会沦为软件操作工,在不久的将来被人工智能抢了饭碗。
  • 熟悉本领域CAE处理流程。标准流程很重要,能够保证效率以及结果质量。
  • 学习能力。学习能力的重要性,我想不需要多说了。
  • 协作能力。CAE涉及领域越来越广,一个人精力有限不可能精通所有的领域,因此与其他人的协作能力很重要。
  • 良好的思维习惯。
  • 其他…

附件列表

05-11 22:06