网格划崩,仿真翻车——聊聊力学仿真分析里那个反直觉的网格陷阱
上周三晚上十一点,老张在群里甩了一张截图,求解器报错:“内存不足,请调整网格或增加计算资源”。他那根支架的静力分析,网格划了180万单元,工作站跑了三天三夜,最后卡在99%一动不动。我让他把网格砍到40万,两小时算完。你猜怎么着?跟试验数据一比对,误差反而比之前密网格的版本小了整整两个百分点。
老张当场就想把键盘砸了。我在屏幕这头笑出了声——这事儿在力学仿真分析里简直太常见了。别急着骂求解器,今天我就来扒一扒这个让无数工程师又爱又恨的东西:网格。
网格不是越密越好,这是个反直觉的坑
先说清楚,网格是啥。力学仿真分析的本质是解偏微分方程,但计算机不会处理连续体。你得把结构切成一个个小单元,单元集合就是网格。类比一下:用乐高积木拼一个球,积木越小,球越圆。但积木小了,块数就翻倍,你的手会拼断,桌子也放不下。
很多人有个根深蒂固的直觉:网格越密,结果越精确。理论上,误差确实随网格尺寸减小而收敛。但注意,这个结论有个隐藏前提——你的解是光滑的。现实工程结构呢?全是尖角、孔洞、倒角、台阶。这些地方会产生应力集中。你网格一细,数值就往无穷大猛跑。为什么?因为线弹性理论里,尖角的应力在数学上就是无穷大,你网格再密也追不上无穷大,结果就是应力值随网格加密一直涨。你信它吧,它让你把零件做得比砖头还厚;你不信吧,又不知道到底哪个值算数。
老张那个支架上有个小圆角,他以为全局加密能算准,结果180万单元下去,最大应力飙到800多兆帕,材料屈服才235。合着他设计的东西一加载就炸呗?后来我让他把圆角附近局部细化,其他地方用粗网格,再配合子模型技术,算出来应力350兆帕,做试验一测,370。这才叫靠谱。
所以说,别一根筋地加密。先搞清楚你的关注点在哪。应力奇异的地方,你算出来的数值本来就没有物理意义,纠结它毫无意义。正确做法是:要么忽略奇异点,看稍微远离奇异点的值;要么用弹塑性模型,让材料屈服来消除奇异性;要么干脆不关注那里。这些判断,比多划几百万个网格重要多了。
结构仿真网格密度对比云图
网格质量比数量要命,别只看云图漂亮
我见过太多新手,网格划得密密麻麻,结果长宽比大于50,雅可比惨不忍睹。这种网格跑出来的结果,还不如粗一点的规整网格。你知道吗?一个细长的三角形单元,它的形函数会严重畸变,算出来的刚度矩阵带着巨大误差。求解器可能直接不收敛,即使硬收敛了,结果也是垃圾。
打个比方,你用秤称东西,秤盘子歪了,你读数再精细有啥用?网格质量检查报告里那几个指标——长宽比、雅可比、翘曲度、内角——不是拿来好看的。每次算完,先看有没有红色警告。别急着点求解。
还有一个常见误解:网格越密,结果越“平滑”。错了。过于密集的网格在应力集中区域会产生虚假的应力震荡,你看着云图花花绿绿挺唬人,其实都是数值噪声。我见过有人拿着这种云图去汇报,被老专家一眼看穿,尴尬得想钻地缝。
再吐槽一个事儿。有人特别喜欢用高阶单元,觉得精度高。没错,二次单元在某些情况下确实比线性单元准,但代价是计算量剧增。你以为你在做仿真,其实你在给电网打工。合理选择单元阶次,配合适当的网格尺寸,才是性价比最高的方案。别跟我提什么‘高阶单元就是好’,那都是没算过账的人说的。
有限元网格质量检查报告样例
我的三条土经验,仅供参考
我的三条土经验,仅供参考
第一条,网格无关性验证必须做。同一个模型,换三套不同密度的网格,看关键位置的应力变化。变化小于5%就说明网格够用了。别嫌麻烦,总比你算完了被领导质疑强。老张就是没做这一步,白跑了三天三夜,电费都够吃一顿火锅了。
第二条,局部加密,全局粗放。把网格花在刀刃上——应力梯度大的区域、接触面、几何突变处。平坦区域用大单元,别浪费计算资源。自适应网格也是同理,二次分析时自动加密。你非要全局细化,那工作站的内存条可不答应。
第三条,别迷信六面体。四面体自动划分方便,对于复杂几何尤其友好。虽然同尺寸下精度差一些,但你可以局部加密来弥补。六面体质量好但划分费劲,有时候为了划六面体,把几何切得七零八落,反而引入更多误差。说白了,工具趁手就行,别跟几何较劲。
哦对了,还有一个容易忽略的点:网格划分完之后,记得检查节点是否连续,有没有自由节点或者重复节点。这些低级错误会让你的刚度矩阵直接奇异,求解器报错说你约束不足。其实往往是网格没合并好。我就干过这事儿,排查了一下午,最后发现是导入模型时没勾选“合并重合节点”。当时真想给自己一巴掌。
最后说句实在话:力学仿真分析是个手艺活,网格就是你手里的刻刀。刀太钝了切不动,刀太锋利了容易切到手。下次你点求解之前,先问问自己:这网格,我真的看清楚了吗?别等翻车了再砸键盘。