我算的CFD结果到底准不准?流体工程师往往关注这五大方面
相信大多数流体工程师在平时的工作中,总会被问道这样的问题:“这个仿真算例的置信度如何?”“与实验的误差有多少?”“我们如何才能相信CFD模拟结果是正确的?”由此可见,CFD仿真分析的准确性,实际上是大家非常关注的。对于成熟的工程师来讲,回答这一类仿真精度的问题,必须要从仿真的误差来源进行描述,才能够给出严谨合理的答案。
CFX软件作为全球第一个通过ISO9001质量认证的大型商业CFD软件,其丰富的求解功能与友好的操作界面早已得到广大用户的认可,同时,作为一款严谨的ANSYS流体求解器,CFX在误差的控制上也有着非常优秀的表现。
图1 使用CFX软件计算F1方程式赛车的外流场
CFX仿真计算中的误差来源:如下图所示,CFX仿真模拟过程中的误差来源主要有以下五个方面。分别是舍入误差、迭代误差、离散误差、模型误差和系统误差。同时,这五类误差所带来的精度损失是有一定差别的。
图2 CFX中的五种误差来源
1、舍入误差
舍入误差可以认为是对计算结果影响最小的一类误差,出现的原因主要是由于变量的数值精度不足所引起的。这一类误差经常出现在以下的问题当中:
• 模型的最大尺度与最小尺度差别过大
• 变量的最大值与最小值量级差别过大
• 网格存在大的纵横比(边界层网格除外)
减小舍入误差的办法主要有两种:一是开启双精度计算模型,二是使用参考变量值。
图3 选择双精度变量值(16位有效数字)可以有效减小舍入误差
图4 指定合理的参考压力,通常也可以减小舍入误差带来的影响
2、迭代误差
迭代误差表述的是当前迭代步的结果和收敛结果之间的差别。因此,对于大部分仿真问题,当迭代步数足够多、残差组够小的时候,都可以认为迭代的误差是非常小的。
图5 大部分情况下,迭代误差都会随着迭代步数的增加而减小
当然,无休止的增加迭代步数会带来更多的计算时间,耗费更大的计算资源,从而导致仿真效率降低。因此,看似容易解决的迭代误差问题,在实际案例中并没有明确简易的操作方法。相反,我个人认为这是一个权衡利弊的问题,通常需要同时兼顾计算精度与仿真效率。
3、离散误差
所有的数值方法计算都存在着误差,不管采用的是有限元法、有限差分法还是有限体积法。当然,离散误差并不是表征数值方法与真实物理场之间的误差,而是用来表征当前网格与“无限细分”网格之间的误差。
在这里需要多说几句,无限细分的网格,并不代表每个网格的大小都达到分子尺度的级别,而是要满足连续介质的基本假设:即每个微元在宏观上组够小(便于求极限)、微观上足够大(保证包含足够多的流体分子,从而满足流体属性),对于液体而言,最小的网格建议尺寸在0.01微米以上。
回到离散误差这个概念中来,既然任何工程所使用的网格都不是“无限细分”的,那么实际网格与理想网格之间就存在数值误差。对于这一类误差,我们通常通过“网格无关性验证”这一方法进行结果的评估。简单的讲,就是不改变边界条件与物理设定,只更换不同的网格来计算同一问题。
图6 努塞尔数在不同网格情况下的计算结果
如上图所示,显示了在不同网格上计算的底面上的最大努塞尔数。x轴是网格总数的倒数,因此图的左侧表示在“无限细分网格”上执行的计算。一阶计算的结果以蓝色显示,二阶计算的结果以红色显示。如果网格足够精细,则一阶或二阶离散化给出相同的结果,但是当网格变粗了以后,二阶结果总是更接近最终解,这就是为什么总是建议使用二阶离散化进行仿真的原因。
4、模型误差
在真实的物理世界中,变量(速度、压力、组分、湍流属性等)之间存在的关系是非常复杂的,如果我们希望把这些物理量通过数学方式建立联系,就必须要通过简化来实现。因此,这些简化过后的物理模型就会造成模型误差。这一类误差是没有办法来避免的,同时带来的数值差别,也通常远远大于上述三个误差。
图7 台阶流中的瞬态速度分布与时均速度分布
RANS湍流模型是我们应用最广的物理模型,绝大多数工程中的湍流问题都是通过时均模型来计算的,但是,这种方法会在细节位置造成巨大的数值误差,原本由无数大涡与小涡组成的时变流场,变成了稳定的单向简单流动。显然,这种由物理模型简化带来的误差是非常难以避免的(全部改成大涡模拟计算?显然是不可能的)。同时,这一类模型误差还会体现在多相流模型、组分模型、燃烧模型、热辐射模型之中,算例中模型应用的越多,产生的误差通常就会越大。
那么我们为什么还会认可这些差别巨大的结果呢?原因很简单,那就是因为这些简化的结果在很多我们关心的位置上,和真实结果有非常相近的特性,以上图为例:台阶流中回流点位置的预测、下游壁面的换热特性、台阶流整体压降等等,这些结果都和实验接近。经验表明,在大部分我们需要研究的位置,时均的湍流模型(或是多相流模型、热辐射模型等)都能带来相对准确的计算结果,误差也控制在可控的范围之内,这些,都能给我们的设计提供重要的参考。
因此,我们对待模型误差需要有一种即严谨又宽容的心态:通过不断的调整多种模型设定来调试案例,从而尽量匹配实际的真实物理情况;同时又要容忍计算结果与实际的偏差,要从心底接受这些模型简化带来的影响,做到有舍有得。
5、系统误差
最后要介绍的是系统误差,这一类误差是影响最大的,即便我们的物理模型非常精准,迭代、离散误差也都控制的十分完美,计算结果仍旧可能存在较大的误差,这一类误差就是由CFX建模本身造成的。
流体计算采用的是欧拉法,即我们选取位置固定的观测体,流体从一侧流入、另外一侧流出。这个时候通常就涉及到计算区域选取的问题,如果计算区域选的不好(通常是选小了),那就可能产生系统误差。如下图所示,对于三通管的CFX计算,通常不会考虑上下游太长的管道,但是该案例中的计算域选取就值得探讨,因为上方出口后面原本存在一个距离较近的弯管,而将这一块定义为出口以后,就认为后面是无限长的直管了。我个人认为这种情况会产生比较大的系统误差。
图8 由于计算区域选取导致的系统误差
另外,对于CAD几何模型的简化也是产生系统误差的原因之一。如下图所示,为了减小计算规模,我们在比较精细的几何位置选用了较大的网格,这样,真实的物理情况在这个位置就被改变了,也就会产生一定量的变量误差。
图9 系统误差通常由几何模型的简化造成
那么我们应该如何减少系统误差呢?最有效方法就是真正了解实际的工程情况,并给定最为合理的物理简化与计算域选取。对于上图而言,很可能这个位置并不是我们仿真需要关注的重点,那么进行几何模型的简化不但可以加速仿真效率,而且还不影响主要区域的计算结果,这个实际上是对系统误差的一种高效运用。
结论:CFX仿真分析的误差来源是固定的,只有我们清楚的了解这些误差产生的原因,才能更好的避免这些误差,才能更加清楚为何计算结果与实验存在差别,才能更好的为我们的产品设计提供数据支撑。
仿真 xiu优秀讲师