仿真分析与误差的纠葛 一、什么是误差 对于误差,首先你得分清楚它和错误的区别。其实这两者有本质的区别,误差就是你通过努力后还是无法消除的偏差。我们用4个等式来区分: 数据有偏差+大家都知道(除了你只有你不知道)=错误 数据有偏差+别人可消除(只有你做不到)=错误 数据有偏差+无人知晓=未知的误差 数据有偏差+无人消除=已知的误差 只要你的仿真达到平均水平,你的实验数据就叫有误差而不是有错误。这个世界上就没有绝对正确的事情。没有人敢说自己的模型绝对准确,自己的算法精度绝对够高,自己的网格最密。所以,只要你有了仿真计算,最后取得的结果就都会有偏差。当然你要保证,这个偏差不是一个内行可以轻松消除的偏差。 二、有多少种误差 1、建模错误 指一个物理系统的区别及其数学模型。它应该保持在一个可接受的程度。否则,需要修正的数学模型。通常,简化了数学模型。在模型中,例如,可能小洞和其他几何结构中的违规行为被忽视;载荷简化;边界条件理想化,治疗一个组件作为刚性较大的刚度。通常一个二维问题研究,忽视其三维特征;执行静态分析,忽略了动态特性。 2、离散化误差 自由度的数学模型有无数,但有限的自由度用于有限元分析。有限元的解决方案是影响模型中元素的个数,每个节点的自由度,数值积分规则,等。实际上,这种错误已经在第一部分的最后一章讨论。 3、截断误差和舍入误差 它指损失的信息由于截断或舍入的数字来适应一个有限的计算机字长。 4、累积误差 这种错误出现在全球方程解决多次非线性或动态问题。术语数值误差的综合结果截断或舍入误差和累积误差。 有限元的误差比较重要的例如: (1)有限元的形函数不能包括所有的变形方式,比如线性单元,通常刚度偏(2)尤其是三角形单元,这也是题中所谓的位移下限性的来源。 (2)单元形状不良,造成单元的变换矩阵接近奇异,带入数值计算误差。 有人说,他做的仿真特别困难,没有合适的模型,谁也没有办法降低误差,所以这种仿真没法做。其实不然,如果仿真特简单,大家都能够把误差降到很低,请问你要将误差降到多低,才叫做的好?设计员接受你的数据也会提出无比高的要求,那时你会发现所谓特别成熟特别好做的仿真,其实最不好做。 比如你做平板层流,计算精度会要求达到1%。你做一个有湍流转捩又有分离的流动,计算精度达到10%就算高水平。如果是一种谁都不知道是什么的流动,你能够告诉参数的量级就算高水平。 既然误差无所不在,那我们就要摆正心态,尽自己最大的努力去面对它,完全没有必要因为有误差就否定自己的实验结果,有误差的结果也是一种结果,而且通过努力让有误差的结果有用。 三、如何让误差有用 如何让误差的结果有用?其实这是句废话,既然所有的结果都有误差,当然有误差的结果是有用的,否则全世界的研究都无用了。所以要让别人敢于使用你有误差的结果,以下四个问题至少要提前说清楚一个: 1、体现自己对于实验数据的判断准则 结果可靠不可靠,主要还是要看判断准则是合乎常理。每个现象要有起源、有过程。从无数个角度,分析它的成长过程是否合理。拿到结果,很熟练地切出大家都看的那几个位置,永远读出那几个数据,然后对比大家熟知的规律。请你忘记那些惯例,重新建立你自己的常识。专门切出你以前不看的位置,画出你以前不看的数据,假装已有的规律是错误的,重新证明他们正确。 2.表明误差的量级 知道误差的量级,知道误差与某些现象和某些参数的关系。比如你告诉误差是50%,我们只知道用这个数据要留出50%的偏差范围,最好能说明误差源于什么,误差的大小和哪个某参数相关。比如误差源于漩涡,误差大小与速度梯度成正比,说得如此明白,让用数据的人更放心了,原来只要没有漩涡这个数据就很准确了,如果速度梯度很大就要小心了。 3.说明误差的极限值 有时候要明白误差的量级有困难,可以用很简单的极限值办法,为误差画一个范围。比如一个流体特别复杂,无法想象湍流模型会带来多大误差。你可以做个简单的数值实验,用层流(不使用湍流模型)对比用湍流模型的状态,两者之间的差异就是湍流模型误差的最大值。 湍流模型不同导致的模型误差,小于有无湍流的差异,有无之间的差异就是误差的极限值。同样可以用:有浮力无浮力,有摩擦无摩擦,有传热无传热,来判断浮力、摩擦、传热的误差极限。 4.说清楚误差的影响 说明误差的大小,别人敢于在安全范围使用你的数据,但是到底如何使用你的数据,这里必须分析误差对后续工作的影响。 这需要了解别人如何使用你的数据,会不会放大你的误差,以致于一个误差导致整个产品设计失败。有一次别人要我计算阻力系数,我预计误差小于0.1,先问了一句,如果增加或减少0.1的阻力对设计有多大影响,回答没有什么影响,于是我轻松地完成了工作。 如果四个问题下来,发现误差很大,而且影响严重,那恭喜你,要投入精力彻底解决问题,或者干脆放弃这个方向。其实,知道无路可走也是完成任务。 俗话的好:“世界上的垃圾,只有放错地方的东西”,只要在实验中将误差表述清楚,有误差的数据完全可以被采纳。