CFD仿真的误差有下面几大来源:
模型误差是主要的误差来源。
产生模型误差的原因非常多,下面是一些常见的模型误差:
模型误差依赖于建模者的理论背景及试验数据。现实中的工程问题异常复杂,如何从复杂的问题中简化出既能够计算,又保留原始问题特征的计算模型,是仿真者技术水平的体现。
模型简化得怎样,需要通过试验来验证。比如说在简化过程中忽略了一些影响因素,那么这个忽略对计算结果的影响到底有多大,是否确实可以忽略,都有必要通过试验进行验证。
如下图所示的简单问题。
比较常见的工程描述(反正我碰到很多次):桌面上放置有一个温度比较高的发热物体,想知道10 s后物体表面及周围空间的温度分布。
这个问题描述并不明确。首先,“温度较高”对于计算来说毫无意义,应当明确。其次想要知道10 s后的温度分布,必须明确发热物体与外界环境之间的散热关系。
要想计算10 s后物体的温度分布,需要明确物体发热的原因,这对于后续的温度计算非常重要。这可能有多种原因:
两种原因会导致计算模型存在差异。对于第一种,建模的时候可以将固体区域去掉,而第二种则需要保留固体区域。但到底是哪一种情况,则依赖于试验测量。当然工程中大多数情况倾向于第二种,毕竟维持一个物体温度为恒温是个技术活儿。
那就说第二种情况,已知发热体的热功率,那这个热功率是测量得到的还是理论值?如何保证这个数据是可靠且有效?
还有个问题,要计算外部空间温度分布,需要建立计算区域。如下图所示建立一个外部散热空间。
这里同样有很多的麻烦事儿要确定。
上面的这些问题,都需要试验数据做标定。这里举的是个很简单的例子,实际的工程问题要比这个复杂得多。需要注意的是,模型误差是最主要的误差来源,处理不好的话,产生的就不是误差,而是错误。
然而现实中情况是:甲方扔给你一个问题描述,让你去做仿真计算,最后还要将你做的仿真结果与他们的试验测量数据进行比较,以此来验证你的水平。同时还有个让人无法反驳的理由:做仿真不就是为了不做或少做试验么?
就问尴尬不尴尬?
数值误差是在计算模型确定之后,在对计算模型进行数值求解的过程中,数值算法造成的误差。
数值误差的来源也非常多,最常见的无异于以下几种:
数值误差比较容易理解,这次就不展开去说了,后面有空再说。
(完)