我和有限元的缘分实在不浅。大一刚入学,学校给我们班每五个人配了一个导师。导师第一次见我们就问,知不知道有限元。
我以为是多元函数那个元,就按照这个说了一下。老师微微一笑,给我们讲了一遍。那会我连基础概念都没有,所以老师具体怎么说的,我也记不得了。
怎么判断你和一个人有缘分呢?很简单,如果两个人看似没什么关联,但是经常因为各种原因能碰到面,这大概率就是有缘分。
我与有限元的缘分也是这样。严格来说,我光有限元的课程就上了6次,本科阶段的弹性力学、结构力学、变分有限元,研究生又上了一遍变分有限元、数值计算。博士又选修了一门有限元基础。
主打一个只要有,我就选。
当时学的时候,并没有想过以后要搞有限元软件开发,并且这些课程教学目的也是让学生了解有限元理论,没指望大家从事有限元基础研究。所以我相当于手机上打掼蛋,每次都是打二,尽管学了多次,都还是从入门到入门。
我正儿八经主动编写有限元算法,并实际应用是在做硕士论文的时候。
我当时课题中需要解决一个问题,想通过理论推导出一种复材结构在各个基础工况下的失效载荷预测公式,其中一个工况需要给出三维折线结构的失稳载荷。结构力学里面有个压杆失稳的公式,但是这个是针对一根直杆的,不适用于折线。

为了保证理论预测部分的统一性,我没有使用商用软件去模拟。有天我随手翻看有限元教材,忽然想到还是得用有限元做,但是需要我自己要把算法写出来。实际上屈曲失稳在有限元计算中十分简单,只要有了刚度矩阵,失稳问题就是一个求矩阵特征值的事。
就这样,我把三维折线模型几何参数化,写了一个梁单元屈曲算法,完成了这部分工作。
虽然这个东西并不难,但是这是我第一次在工程问题中,主动想到通过开发有限元算法解决问题。对我后面处理很多工程问题启发很大。
更关键的是,我从此对梁单元开始感兴趣。
梁是一种常用的力学模型。常用于能够抗弯的刚(注意不是“钢”)架结构的力学分析,典型的刚架结构见下图。简单理解:细细长长结构骨架,就可以用梁模型来处理。
|
|
|
梯架 | 高铁站棚顶 | 埃菲尔铁塔 |
我之前在文章中专门“吹嘘”过梁单元。可以这样说,梁模型就是专门为工程而生的。工程上的很多结构,如果采用实体单元,其单元数量是难以想象的,一旦用梁模拟,可能上百个单元就可以把非常复杂的宏观结构力学响应模拟出来。
比如管道。且不说天然气、石油这种大型、远距离的管网系统,我们就到地下车 库去看下就会发现,头顶上各类管道密密麻麻。对于发电厂、核电这种设施,管道系统更是复杂,且服役环境恶劣。

图来源:https://speedchina.cn/detail/2204011413342517
如此复杂的模型,如果我们在ANSYS或者ABAQUS中进行模拟,无论是建模还是计算量都是不可想象的。在管道设计领域,最核心的力学分析就是采用梁单元,并且诞生了CAESARII这种占据行业主导地位的商用软件。
梁单元之所以这么牛,核心原因在于,它把一个三维的东西简化成了1维,一根柱子在这里就是一根线。再复杂的管道,到它那无非就是一堆线。
力学的魅力就在于简化,水平越高的人越能够简化问题。
由此,计算量指数级下降。《道德经》讲,圣人抱一为天下式。按我的理解,就是找到一个“道”,天下所有的问题都可以按这个“道”来处理。有限元就是这个特点,梁单元更具有这个特点。
管道中有很多奇特的本身不太适合用梁来处理的结构,比如下图这个膨胀节。但是为了让梁统一管网,针对各种结构,开发了对应的特殊梁单元进行处理。
再强调一次,梁单元就是专门为工程而生的。
说了半天的管道,是因为我曾经主导过一款管道应力分析有限元软件的开发,也是在这个过程里面我才见识到,竟然有如此多奇怪的工程梁单元。
我此前一直觉得,搞有限元软件就应该像搞ABAQUS那样。在这之后我意识到,对于起步阶段来说,先搞行业类的有限元软件或许才是破局关键。
在国内搞通用有限元软件最难的一点是,在起步阶段,这个软件功能只能做到非常基础,和国外软件比没有任何优势,并且还处处比不过。大家没有使用的兴趣,更没有那么多时间等你赶超上来。如果从一个小的点和领域开始做,以快速解决工程实际需求为目标,一切就都具体了,有限元软件变得不再遥远,开发出来就能用,就能建功。
实际上,ABAQUS最初也是从梁单元项目起家的。当时团队开发梁单元用于美国核电设施的设计仿真,后来以此为基础,成立了ABAQUS。
我现在下决心开发复合材料工程壳有限元软件,就是出于这个考虑。
除了开发这个管道应力软件之外,我自我感觉在叶轮机械领域用这个梁单元用的比较成功。
最开始是领导找我讨论能否解决,叶轮机械轴系安装的标高设计问题。
简单理解这个背景,大尺寸叶轮机组一般由多个轴组成,每个轴两个安装支点。这样以来,每个轴都有重力变形,大家重力变形又不匹配,轴和轴连接位置就会有较大应力。


大概就是这个图的意思
所谓的“标高”设计,就是调整每个轴两侧支点的高度,让整个轴系变形后,是自然过渡的抛物线,从而消除连接应力。
我当时就想到可以用梁来解决。因为思路肯定是,不停迭代调整每个轴的两个支点的高度,一直到满足悬链线为止。所以算法就应该是迭代算法+梁单元求解器。
如果借助商用软件就麻烦了,因为需要开发数据交互接口和调用接口。但是有了自己的求解器,一切都变得可实现了。
为了提高结果展示效果,我还开发了映射渲染功能。
什么是映射渲染呢?ABAQUS里面就有类似的功能,通过“Render”把本来是线条显示的梁,转换成带有截面效果的三维模型显示。
就这样,我开发出了轴系标高设计软件,可以在几分钟内完成多个轴构成的轴系的标高自动设计。目前整个软件已经成功应用在多个叶轮机械安装设计中。

2025年,我又开发了三维梁单元的振动分析模块,实现了叶轮机械设计遇到的振动相关性能预测功能。

之前的文章提到过,我在立体织物研究中,用梁来模拟纤维束,并且那时候我就开发针对纤维的映射渲染技术,给出了三维渲染的仿真结果。

目前我的体会,梁单元,也包括壳单元,最大的瓶颈在于它无法模拟厚度方向的细节。比如我想固定一根柱子的侧面,然后在另一个侧面拉伸。但是在梁单元中,就没有厚度方向的节点,所以无法模拟这问题一个截面就一个节点,无法既固定又拉伸。
但是在一些特殊问题中,可以有一些替代策略。这里就不细说了,我最近做的工作就是开发专门用于复合材料固化变形的梁单元,它可以在极短时间内完成固化变形的预测。而复合材料厚度方向的固化效应对结构整体变形影响很大,因此就需要做一些特殊处理。
以上种种,足以说梁单元妙用无穷。作为一种非常典型的工程单元,值得我们在工程问题中思考它的用法。