weixin 发表于 2022-7-8 10:32

仿真收敛不看残差,看什么?

收敛表示仿真软件已经把流场反复修正到位,可以结束仿真运算了。

如何判断仿真是否已经收敛,让我们很为难。

· 放宽收敛标准,可能把没有收敛的错误结果当作收敛结果接受了。

· 收紧收敛标准,又会多运行很多步,白白浪费很多时间。

所以,我们希望有个放之四海而皆准的收敛标准,在仿真运行到收敛的时候,正好结束仿真。

这个标准,不是一个数,不是一个公式。从把握全局标准的残差,到追求终局目标的设计参数,最后深挖局部观察的流动现象。从表及里,一层层剥开。

看完这三层,才敢说是否已经收敛。

01、全局标准残差——仿真软件估算的误差。

常规的收敛判断是:残差小到十的负四次方、负六次方……。对于简单算例,直接用软件给你的标准,残差达到标准就认为收敛;对于复杂算例,谁也无法只用残差判断是否收敛。

仿真软件运行几十步后,残差完成了漂亮的跳水,就不死不活地上上下下波动。

你猜不透,残差背后,仿真软件是在辛苦地修正流场,还是在搅乱流场。

你猜不透,残差下降到十的负六次方,表示流动已经修正合理,还是软件根本忽视了不合理的分布。

残差只是软件估算的整个流场的残余误差,并没有告诉你流场在发生什么。

· 大形势与你有什么关系,大趋势好的时候也有赔钱的,大形势不好的时候,也有赚钱的。

· 残差与你有什么关系,残差小的时候,也有流场乱的,残差大的时候,也有流场收敛的。

没有人可以只用股票指数炒股赚钱。没有人可以只用残差判断复杂算例收敛情况。计算机不能自动设置一个收敛准则,取代你的判断,所以你有存在的价值。

你抱怨的就是你存在的意义。

02、终局目标换个思路,仿真的终局目标就是获得设计参数。如果你要算阻力,为什么不直接观察阻力变化?

直接观察你关心的参数变化。例如:阻力、升力、薄弱点的温度、漩涡附近的压强、掺混处的浓度。

管它残差如何,反正你又不用残差做设计。只要你最挂念的位置没有出问题,你最关注的设计参数平稳下来,这个仿真结果基本可以用了。

如果阻力还在持续下降,即使残差再小,你也不敢说收敛了,还要继续运行;如果你关心的阻力,波动范围超出了容忍的范围,管它残差是大是小,你都要继续运行下去。

还有一种收敛,例如阻力虽然在波动,但是逐步出现了周期性。说明你遇到了个非要波动的流场,你再继续运行,仿真软件也无法消除流场的波动。

这个时候,残差也大,参数也波动,但是仿真已经收敛了。

把重要参数随仿真运行步数变化的曲线与残差一起动态显示出来,这种简单粗暴的方法很有效。

时刻记住:你追求的是参数,不是残差。

03、局部观察以上只是帮助你判断是否收敛。最好你还能够明白仿真运行为什么会收敛,为什么不收敛。

建议你,每运行几百步自动存储一个仿真结果。以前这么做也许是怕运行突然中断,可以从存储的这一步重新启动。现在要打开流场数据,看看每过几百步发生了什么变化。

但是我们要看什么呢?流场中要看的数不胜数,根本看不过来。所以,只看这两种情况:

· 对设计参数很重要的位置,比如影响阻力最大的表面附面层、底部分离涡。其他位置闹翻了天对设计参数影响也不大,就放过吧。

· 变化最大的位置:速度变化最大的位置、压强变化最大的区域、温度最高的区域。这种位置的数据在仿真运行过程中波动最大,往往是残差的发源地。

观察这些细节,你就会发现收敛是真收敛还是假收敛。也许是一个关键的漩涡,仿真软件的数值粘性把它固化了,该动不能动,表面上是收敛了,实际是被抹杀了;也许是一个无关的小波动,被仿真软件放大,流场实在消化不了,在流场中来回乱窜。表面上是不收敛,实际是被干扰了。

看到流场的细节,你才知道仿真发生了什么故事。但是只有对流动观察思考,你才能知道该看什么细节,否则你会被细节淹没。

观察让你知道应该观察什么,观察对了地方才能观察到真相。

04、结    论用残差这个全局标准判断收敛,只适用于简单的算例。复杂的算例要用你的大脑判断。

盯着设计参数这个终局目标,因为你追求的是参数,不是残差。

观察关键局部读懂仿真运行的内在故事,判断是真收敛、假收敛。然而,只有观察思考才能知道哪里是关键。

你能看透收敛的三重标准吗?

来源:陆姐说微信公众号(ID:Lujieshuo2015),作者:陆宏志。

页: [1]
查看完整版本: 仿真收敛不看残差,看什么?