漫话CFD(二)——来自热管理_砖家的分享
2017-02-05 by:CAE仿真在线 来源:互联网
热管理_砖家:IND4汽车人资深注册用户。工程热物理专业,一直从事新能源乘用车整车电池,电机,空调,车舱舒适性等热管理开发工作。专注于CFD技术,热管理系统开发。
戳这里查看>>漫话CFD(一)
四、如何正确看待CFD技术
数值模拟,也称之为虚拟试验、数值仿真。通俗的说,就是利用计算机构建
虚拟实验环境,利用计算软件获取我们感兴趣的物理量。
(1)CFD软件≠CFD技术
对于初学 CFD的人员来说,大多都会认为 CFD技术仅仅就是那些 fluent、CFX等软件的熟练使用,起初很容易陷入拼命学习软件的操作上,以为学习好了这些软件的操作就写掌握了CFD技术,那您就大错特错了。因此,我们必须有这样一个概念:CFD软件仅仅是一种计算机辅助工具。
(2)CFD技术不是万能的
软件学习久了,难免会产生一些荒唐的想法,认为软件能够解决所有的事情,能解决所有的问题。首先我们必须承认CFD软件也是一堆代码,只要您在软件代码允许的范围内输入一定的参数都会得出对应的结果,但是这些结果的正确性就必须有专业的CFD工程师和专业人员去考评,以及实验和理论去验证。对于那些非计算机专业的学生来说,恐怕只有那些真正开发过软件的人才会明白,目前的软件所能做的事情,都是基于程序编程者的知识。因此,计算机软件所能做的事情,无法超越现有的知识。换句话来说,若想仅仅利用计算机软件去发现新知识,无异于痴人说梦(当然这里只是指数值模拟软件,不包括人工智能数据挖掘之类的软件),因此,CFD技术不能去创造理论,他永远逃不出软件本身基于的理论基础,CFD技术仅仅是开展研究工作的一种手段与方法。
(3)数值模拟是有用的
数值模拟有用吗?当然是。数值模拟在当今科学研究中的所占的比重越来越大,同时在工程领域应用也越来越广泛。但是在使用这类软件之前,有一些问题是必须要回答的,而要回答这些问题,则要求仿真者具有深厚的理论功底。若无法正确的回答这些问题,很可能陷入盲目。这些问题包括:
问题1:要模拟什么?
这个问题十分重要而且也对模拟者的理论功底要求较高。在真正进行计算之前,必须弄明白自己要模拟什么。包括将现实世界的物理现象抽象为数学模型,最后将视线聚焦到某些物理量上。举个最简单的例子,比如说两个人赛跑,我们要比较谁是优胜者。这是个很简单的生活现象,但是如果我们要更精确的去描述这个物理现象,可以将其抽象成数学模型,然后将物理量锁定在时间这一变量上。于是我们可以用使用时间的多与少来表征优胜者。当然这个例子过于简单,但是可以引而广之。实际上数值模拟与这类似,软件能求解计算的只是一些基本物理量,我们首先确保自己关注的物理量能够被基本量直接或间接的得到,这样也就能保证使用该软件能得到我们想要的东西了。
那么为什么说这一步对模拟者的理论功底要求高呢?因为模拟者若没有深厚的功底以及对物理现象深刻的认识,那么是不可能准确有效地挑选出的能够表征物理现象的物理量的。在回答这一问题之前,需要进行大量的资料收集工作,当然也少不了实验工作。
问题2:能不能模拟?
不管是自己编程还是选用成熟的商用软件,都需要回答这一问题。所要模拟的物理现象是否满足计算方法的前提条件。比如说,NS方程是建立在连续介质假设基础上的,因此对于一些稀薄流体则不能使用该方程,而一些计算 NS方程的数模软件自然也无法计算这类物理现象。回答此问题要求模拟者对软件所使用的算法有深刻的认识,也就是说你所研究的这个问题在不在您所使用软件的开发本身的理论范围内。比如,您所研究的理论问题远远超出现有您所在领域的基础理论,那么这个软件就可能不适合您的问题,或者您是不是要考虑借助该软件去进行二次开发呢?
问题3:怎样去模拟?
怎样去模拟呢?当然是选用计算机。但是数模软件就那么多,你难道不会感到迷惑吗?但是我们必须理解,是什么导致了计算结果产生差异?表现在我们自己的模型上是哪些因素?具体到操作中,就要关注几何模型与计算模型。哪些可以简化哪些是不能简化的?我们所做的简化对计算结果的影响有多大?这些都是模拟者必须研究的。这一步需要大量的实验数据配合。
问题4:为什么模拟?
这个问题最重要也最有意义。本来是计算完成后要进行的工作,但实际上在模拟计算之前就应当考虑清楚。计算结果到底如何使用才是模拟真正的目的所在。其实如何使用模拟结果,分为两种:一种是用于科研,揭示自然现象以及对已发生的事实进行再现;另一种是用于对现有结构的改进,以提高产品性能。其中第一种多用于研究机构,第二种多用于工程应用。这两种结果对计算精度要求是不一样的。
问题5:如何提高计算精度?
CFD若要想在工程中得到广泛的应用,必须克服两大难点:准确性与可信性。在工程上,尤其是一些关键的工程中,谁也不敢轻易的应用一些精度与可信度得不到保证的数据。有人会说,在固体计算领域,利用数值计算方法进行辅助设计已经很普遍了啊,用CFD支持设计存在哪些额外的困难呢?
与固体应力计算使用有限单元法不同,目前主流的CFD软件几乎都是采用的有限体积法(除了CFX采用混合有限元法与有限体积法外,FLUENT、STAR-CD、Phonecis、Flow-3D等都是采用的有限体积法)。在计算量上来说,相同网格数量的模型,有限体积法消耗的内存要少于有限元法。在有限单元网格中存在的高次单元,其单元节点位于网格边的中点及网格体的中心,但是有限体积法中的高阶格式,其并非在网格单元中添加节点,而地更多的利用周围的节点。但是正因为如此,有限体积法计算精度要低于有限元法(在相同网格数量情况下)。影响CFD计算精度及可信度的原因自然不可能全怪罪于算法,更多的是问题存在于使用者及客观环境。
CFD软件是一个黑盒子,利用CFD软件解决工程问题,软件使用者对于数据流向并不清楚,实际上对于非CFD专业的人事来说,也不必完全清楚CFD的内部运作方式,但是,如何有效的利用当前的软件,如何最大限度的发挥当前软件的计算性能,将计算结果精度及可信度提高,仍然是非常重要的,也是每一个从事CFD工程应用的人必须注意的。最需要注意的部分包括下面一些内容:
(1)影响精度的因素
①算法。一般来说,高阶算法的精度要高于低阶精度。但是收敛性却相反,采用高阶算法要比低阶算法收敛更困难一些。在一些高速流动情况中,采用迎风格式比中心差分格式能更好的收敛,在扩散占优的流动中则相反。以 FLUENT为例,其具有一阶迎风格式与二阶迎风格式、幂律格式、QUICK格式以及三阶MUSCL格式。通常一阶迎风格式用于初步求解,较少用于最终计算结果的获得。QUICK格式在结构网格中具有三阶精度且收敛性较好,但是在非结构网格中只有二阶精度。二阶迎风格式在实际工程中用得非常多。三阶MUSCL格式用得较少,收敛性不是很好。
②边界条件。边界条件会对计算结果产生本质影响。也就是说,不确切的边界条件会导致不确切的计算结果,错误的边界条件一定得不到正确的结果。在实际工程中,能做为边界的位置的信息一定是确切的。换句话说,用户使用不确切的边界值,责任不在软件。当然有时候受条件限制得不到边界物理量,但是,软件的使用者应当对自己输入的边界值负责。
其实相比较固体有限元应力计算,流体边界值难以测量也是导致计算精度及可信度降低的原因之一。在固体计算中,边界值可以是力可以是位移,这些都是容易测量的量。但是在流体中,边界值常常是压力、速度、流量、体积分数等物理量,这些量的测量都是对实验人员的考验。
③网格。网格是为计算所准备的。也许在将来对NS方程的数值求解不再依赖于网格呢。由于网格的存在,导致数值计算永远得不到真值。这里不去追究数学方程与真实世界的差异,只分辨数值计算结果与数学方程解的差别。在理论上,只有在计算网格大小为0的时候数值计算结果才等同于数学方程的解,但是大家都知道,网格大小为0是不可能的。同时由于计算机的精度限制,网格尺寸缩小会增加舍入误差,也就是说,计算精度并不是随着网格数量的减小而不断增加,同时,网格尺寸的减小会增加计算资源的消耗。在进行计算中,常常要进行网格独立性验证,也是避免做这类吃力不讨好的事情。
④模型。将模型放在精度这里其实是不太合适的,但是不恰当的模型的确会很大程度上影响到计算精度。例如 FLUENT中的湍流模型有很多种,如零方程模型、一方程模型、双方程模型等等,不同的模型有其最合适的使用范围,如果使用不当,势必会造成计算精度下降。合理的选择计算模型,不仅仅能提高计算精度,也能提高计算结果的可信度。但是要合理地选择模型,很大程度上依赖与使用者的理论功底和对问题的认识程度。
(2)影响可信度的因素
在AIAA的官方文档中,对于可信度的验证是有明确的说明的。可信度通常指数学模型与真实世界的差异。在这方面,CFD软件使用者能控制的部分并不多。主要有以下一些方面。
①几何模型。有时候为了网格划分方便或计算资源考虑,简化了真实模型细节。例如一些微小特征、将三维模型简化为二维计算、周期模型等等。需要注意的是,在进行简化之前,对模型简化所可能造成的后果有明确的认识。究竟能不能简化、简化会不会造成精度的严重损失,这些都是需要考虑的。比如计算一段直管中的流动问题,从几何上来讲,可以简化为平面模型、可以简化为轴对称旋转问题、可以简化为轴对称问题,但是对于不同的物理情况,能否简化就很值得商榷。
模型中的细小特征简化问题也是需要去思考的。将细小模型进行简化是处于计算资源上的考虑,但若细小特征处于敏感位置,对计算结果的影响比较大时,能否将其简化掉则也是必须考虑的问题。
②物理模型。现实世界是一个复杂的系统,我们在进行研究时,不可能考虑所有的影响因素,只能选取一些主要因素去进行考虑。很简单的例子,NS方程是从三大守恒定律出发的,所做的假设比较少,但是很遗憾,对于复杂结构直接数值求解NS方程目前还不可能,于是为了工程需要,对NS方程离散过程进行了一系列的简化,于是出现了各种湍流模式,出现了各种燃烧模型、多相流模型。
③模型参数。现在很多工程软件都集成了物理模型,其中很多模型参数都是一些半经验或经验参数,并不一定会适应自己的模型。但是这些模型参数的获取是一件非常困难的事情,通常都是通过实验获取。
(3)CFD计算结果的验证以及计算修正的问题
通常实验是最好的验证手段,但是存在一个问题,实验过程中的参数很难与计算输入的参数完全吻合。对于实际工程问题,采用实验有时候是唯一的验证手段。一般来说,数值计算结果在工程上与实验结果误差在 10%以内是被允许的。在数值计算结果与实验数据存在很大差异时,一般进行以下一些步骤的检查:
①检查几何模型。分析是否忽略了关键几何特征、检查边界位置是否合适。很多时候边界位置设得不合适,可能会导致计算振荡,不收敛等情况发生。同时由于不同的软件对于不同的边界组合方式处理方法存在差异,因此需要选择合适的边界组合方式(如FLUENT中压力边界与outflow边界相冲,最好不要同时出现,可能导致收敛问题。流量入口边界收敛要比压力入口困难)。
②检查物理模型。是否选用了不合适的模型。每一种模型都有一定的使用范围,使用者需要对这些使用限制有深刻的认识才能更好的进行选择。例如FLUENT中,湍流模型有很多,标准K-E模型适合一般的工程流动问题,但是对于强旋流误差较大,RNGK-E模型适合旋转流动湍流计算,SA模型适合航空外流计算K-W适合边界层计算,雷诺模型适合各向异性湍流的计算,但是计算量大不易收敛。因此在进行选择需要仔细的考虑选择的模型是否适合自己的问题,一旦模型选择错误,轻则造成大的误差,重则不收敛计算出错。
③检查是否忽略了不该忽略的物理现象。例如计算复杂几何模型时出现大的负压区,是否需要考虑空化。计算高压气体时,是否考虑可压缩性,是否考虑粘性热。还有一些情况下,是否考虑蒸发、冷凝等相变情况。有时候这些物理现象会导致计算的不收敛乃至计算错误。
④优化网格。网格质量始终是CFD工程师们的努力内容。好的网格质量能够增强收敛、提高计算精度、减少计算时间。因此在时间充足的情况下,尽可能的去提高网格质量。同时,对于流动情况复杂的区域进行网格加密处理。在计算结果达到要求后,还需要进行网格独立性验证。
⑤边界条件检查。测量精度是否满足要求?若边界信息不是通过仪器测量得出而是通过计算,那么采用的公式使用条件是否能够接受?
总之,虽然 CFD的输入输出较为简单,但是要想得到比较好的计算结果实际上是相当的困难的,不但需要良好的实验设备的支持,更需要使用者拥有深厚的理论功底。只有拥有良好的理论功底,才有可能将 CFD更好的应用于工程中,更好的让CFD指导产品设计。
五、CFD的理论基础
CFD目前很火,从学生的毕业论文采用CFD的数量可以看出来。但是我发现很多人其实并不明白什么是 CFD,他们想当然的以为 CFD就是 fluent,cfx,star-cd之类的软件。这从一开始就走入了误区,导致他们将巨量的时间都耗费在这些软件的学习上。到最后,碰到实际问题依然茫然不知所措,依旧不知道采用CFD的目的。很多时候我们根本就不曾考虑到这些,在现在的大学校园里到处都充斥着一种急功近利的想法,而CFD软件正好迎合了他们的口味,不管你会不会流体,不管你的力学数学背景有没有,软件总能给予人们漂亮的结果,至于计算结果的合理性及有效性则很少有人去深究。
这个词我们第一反应就是数值计算。那么数值计算涉及到哪些内容呢?最基本的就是算法了,当然还得包含有算法的稳定性、收敛性及误差分析等等。这些研究内容都被深深的藏在CFD软件中,用户很少能进行干涉的。
然后是 fluid,这个词直译为“流体”,也可以翻译为流动。试问有多少人能够准确的说出流体的概念。有人会问固体颗粒应当是定义为流体还是定义为固体。我都不知道该如何去回答。其实流体是一个相对与空间尺度来讲的概念。常见的流体有气体和液体。但是气体和液体是不是一定是流体呢,也不一定。在一个非常小的空间尺度,比如说分子水平,我们当然不能将气体或液体分子当做流体。还有就是浓度,在浓度非常稀薄的区域,我们也不能将其当做流体。固体呢,在一些场合我们是可以当做流体的,比如说粉尘,比如说泥石流中的石块,都可以当做流体。计算CFD是研究流体的,所以,是不可能包含固体壁面的变形计算的,涉及到固体的CFD能做的大概也就是热传导了。
再说 dynamic,动态的,动力的。CFD计算的是运动的流体或者说是流体的运动。静止的是没有办法计算的。当然现在的一些CFD软件也包含了静止流体的计算。
简单的说,CFD基于基本的输运方程,主要解决研究问题中的流体流动与换热问题。到底该如何去学习?那么应当包含以下几个方面的理论基础:
(1 )数学方面:数值分析、数学物理方程、偏微分方程的数值解法;
(2 )专业方面:流体力学、传热学、燃烧学、计算流体力学、计算传热学、计算燃烧学;
(3)编程方面:最好能会点C语言、matlab等等;
(4)相关研究问题方面相关的专门的CFD书籍。
六、常用的CFD软件
6.1前处理软件
前处理软件很多,首先肯定是各种网格划分软件。网格划分软件就是一种典型的前处理器。网格划分软件有很多。不过我们只要使用几个有代表性的就可以了。通常流体计算中最著名的前处理器包括:Gmabit、ICEM CFD,Gridgen,TureGrid,gridPro等,固体计算中常用的前处理器有:Hypermesh,ANSA,patran,femap等。当然这些软件存在交叉,比如ICEM CFD,hypermesh既可以划分固体网格也可以划分流体网格。用得最多的还是ICEM CFD。
6.2求解器
CFD求解器数量要远多于前处理器及后处理器。但是我们通常听到或见到的只是一些通用求解器,例如CFX, FLUENT, STAR-CD, phonecis等等。这些通用求解器的应用范围很广,而且应用于工业上精度还行。它们各自有各自的优点。比如star-cd做燃烧很强,目前广泛应用于内燃机燃烧模拟,FLUENT在各方面表现比较均衡,在不可压缩领域处于绝对领先地位,而且其动网格技术也别具特色。CFX的用户界面我认为最符合使用者的习惯,而且自从被ansys公司收购后,目前被整合在workbench中,与ansys进行双向流固耦合计算,比较方便。当然,fluent也被ansys收购,遗憾的是,目前尚不能与ansys进行双向流固耦合,只能进行单向耦合计算。除了这些最著名的通用计算软件外,还有比如flow-3d适合自由界面捕捉,在VOF方面有独特造诣,适合于铸造、水利等行业。Numeca是专为叶轮机械设计的,在叶轮机械建模、分网、计算方面独领风骚。Pumlinx是一款专门针对泵进行计算的软件,在泵设计中有自己的特色。Star-ccm+号称是新一代流体计算软件,沿袭了star-cd的特色,界面上更加友好。Esi-cfd是cfdrc软件被ESI公司收购后换的新名字,其中的fastran在超高音速计算方面特别有优势。当然,流体计算软件远不止上面列举的这些,我们可以根据实际工作需要,选取最适合的软件。
6.3后处理软件
在CFD后处理方面,目前应用最多的可能是tecpolt。我想原因大概有以下一些: tecplot体积小巧,功能比较强大,一般CFD需要的后处理功能它都具备;tecplot比较容易学习,不像一些高端后处理软件如ensigh,难以入门;tecplot拥有的数据接口很多,可以读入非常多的CFD计算数据。
其实,CFX的后处理软件CFX-POST也是一款非常好的后处理工具,现在新版本的ANSYS中已经将其改名为CFD-POST。利用CFD-POST我们可以制作出非常专业的后处理图形、曲线、数据、视频等。
相关标签搜索:漫话CFD(二)——来自热管理_砖家的分享 ansys-cfx流体分析培训 CFX培训 cfx技术教程 cfx资料下载 cfx视频教程 cfx学习资料 cfx软件下载 ansys cfx编程二次开发 CFX代做 CFX基础知识 Fluent、CFX流体分析 HFSS电磁分析