FLUENT不收斂案例及解決方法:壓力出口導(dǎo)致的不收斂【轉(zhuǎn)發(fā)】
2017-06-25 by:CAE仿真在線 來(lái)源:互聯(lián)網(wǎng)
今天分享一個(gè)FLUENT的不收斂案例及其解決方法。計(jì)算的對(duì)象是一個(gè)新型的渦扇發(fā)動(dòng)機(jī)加力燃燒室(圖1)。在這種新型加力燃燒室中,火焰穩(wěn)定器被整合到整流支板上,因此整流支板和整流錐都需要冷卻。在整流支板和整流錐上開(kāi)了很多小孔,冷卻氣從這些孔滲出,形成冷卻氣膜。
圖1 加力燃燒室
這個(gè)算例模擬的是實(shí)驗(yàn)的工況。實(shí)驗(yàn)中沒(méi)有在加力燃燒室內(nèi)燃燒,而只是在“主流入口”處引入高溫氣體,在“冷卻氣入口”處引入冷卻氣,以檢驗(yàn)氣膜冷卻的效能。
整流支板共有15塊,為了減小計(jì)算量,只計(jì)算其中的一塊(360°/15=24°)。主流入口和冷卻氣入口都采用“mass-flow-inlet”條件,其中主流入口的流量是0.8kg/s,總溫是1241.3K,冷卻氣入口的流量是0.024kg/s,總溫是490.3K。出口采用“pressure-outlet”條件,反壓是101325Pa(絕對(duì)壓力)。由于形狀比較復(fù)雜,特別是其中有很多小孔,所以采用非結(jié)構(gòu)網(wǎng)格,四面體單元。流體的狀態(tài)方程采用理想氣體(ideal-gas)模型,湍流模型采用Realizable k-ε模型。采用基于壓力的求解器。
采用定常算法計(jì)算不收斂(圖2;這里我們使用FLUENT默認(rèn)的收斂條件,即能量方程的殘差降低到1e-6以下,其余方程降低到1e-3以下)。考慮到可能是分離流誘發(fā)的非定常效應(yīng)導(dǎo)致不收斂(見(jiàn)公眾號(hào)先前的文章“為何我這個(gè)流動(dòng)總是算不收斂?我要砸電腦!”),我們嘗試使用非定常算法。但是不幸的是非定常算法仍然不能在每個(gè)時(shí)間步內(nèi)收斂。非定常計(jì)算的典型殘差曲線如圖3所示。
圖2 定常計(jì)算的殘差曲線
圖3 非定常計(jì)算仍然不收斂。此圖是時(shí)間步長(zhǎng)設(shè)為3×10-6秒時(shí)的結(jié)果。圖中顯示了5個(gè)時(shí)間步的殘差曲線。
為了弄清不收斂的原因,我們用MATLAB編寫(xiě)兩個(gè)小程序。第一個(gè)程序用來(lái)產(chǎn)生一個(gè)命令文件j1.jou,讓FLUENT迭代30次,并把每次迭代后的流場(chǎng)都保存到文件里面:
clear fid=fopen('j1.jou','wt'); % 打開(kāi)命令文件 n=30; fprintf(fid,'solve update-physical-time\n'); % 下一個(gè)時(shí)間步 for i=1:n fprintf(fid,'solve iterate 1\n'); % 迭代一次 fprintf(fid,'file interpolate write-data "d:\\case1-%d" yes yes \n',i); % 將計(jì)算結(jié)果保存到文件 end fclose(fid); % 關(guān)閉命令文件在FLUENT中打開(kāi)非定常計(jì)算的case和data,在菜單欄選擇[File]->[Read]->[Journal…],選取命令文件j1.jou,FLUENT便會(huì)更新到下一個(gè)時(shí)間步并迭代30次,并在D盤(pán)根目錄下產(chǎn)生30個(gè)計(jì)算結(jié)果文件(圖4)。
圖4 計(jì)算結(jié)果文件
第二個(gè)程序分析這些計(jì)算結(jié)果,找出壓力波動(dòng)最劇烈的點(diǎn):
clear n=30; m=375045; % 網(wǎng)格數(shù)量 n_points=15; fid1=fopen('j2.jou','wt'); % 打開(kāi)命令文件 L=1; for i=27:n filename=sprintf('d:\\case1-%d.ip',i); fid2=fopen(filename); % 打開(kāi)計(jì)算結(jié)果文件 % ASCII碼中,40代表左圓括號(hào) % FLUENT的計(jì)算結(jié)果文件中,每一組數(shù)據(jù)都是以左圓括號(hào)開(kāi)頭的 % 因此,可以通過(guò)查找左圓括號(hào)的方法找到每一組數(shù)據(jù)的起點(diǎn) % 需要了解更多關(guān)于FLUENT計(jì)算結(jié)果文件格式的內(nèi)容,請(qǐng) % 閱讀User's Guide中“Format of the Interpolation File”這一節(jié) % until函數(shù)需要自己編寫(xiě),見(jiàn)注1 until(fid2,40); arrx=fread(fid2,[m,1],'double'); % 讀取x坐標(biāo) until(fid2,40); arry=fread(fid2,[m,1],'double'); % 讀取y坐標(biāo) until(fid2,40); arrz=fread(fid2,[m,1],'double'); % 讀取z坐標(biāo) until(fid2,40); arrp=fread(fid2,[m,1],'double'); % 讀取壓力場(chǎng) fclose(fid2); if i>27 % 只關(guān)注最后三次迭代 % 比較相鄰兩次迭代的結(jié)果,找出壓力波動(dòng)最大的15個(gè)點(diǎn) [sorted,ix]=sort(abs(arrp_old-arrp),'descend'); x_maxchange=arrx(ix(1:n_points)); y_maxchange=arry(ix(1:n_points)); z_maxchange=arrz(ix(1:n_points)); for j=1:n_points % 讓FLUENT標(biāo)出這些點(diǎn) fprintf(fid1,'surface point-surf point_%d %e %e %e\n',L,x_maxchange(j),y_maxchange(j),z_maxchange(j)); L=L+1; end end arrp_old=arrp; end fclose(fid1); % 關(guān)閉命令文件運(yùn)行這個(gè)程序后將生成一個(gè)FLUENT命令文件j2.jou,在FLUENT中執(zhí)行它,便將最后三次迭代中壓力波動(dòng)最劇烈的一些點(diǎn)標(biāo)記了出來(lái)(每次迭代標(biāo)記15個(gè),共45個(gè)點(diǎn))。
在FLUENT菜單欄選擇[Display]->[Mesh…],將這些點(diǎn)顯示出來(lái),可以發(fā)現(xiàn),壓力波動(dòng)最劇烈的點(diǎn)都位于出口截面上(圖5)。因此推測(cè)可能是出口邊界設(shè)置不當(dāng)導(dǎo)致不收斂。
圖5 壓力波動(dòng)最劇烈的點(diǎn)
嘗試對(duì)出口的邊界條件進(jìn)行修改,發(fā)現(xiàn)當(dāng)使用“無(wú)反射”選項(xiàng)(Non-Reflecting Boundary,圖6)的時(shí)候,不收斂的問(wèn)題就得以解決(圖7)。
圖6 “無(wú)反射”選項(xiàng)。
由于參考?jí)毫υO(shè)為101325Pa,所以表壓(Gauge Pressure)是0。
圖7 非定常計(jì)算的殘差曲線。時(shí)間步長(zhǎng)設(shè)為3×10-6秒。出口邊界使用“無(wú)反射”選項(xiàng)。圖中顯示了約25個(gè)時(shí)間步的殘差曲線??梢钥闯?在每一個(gè)時(shí)間步內(nèi),殘差都能降低到默認(rèn)的收斂標(biāo)準(zhǔn)以下。
究其原因,在這個(gè)算例中出口邊界已經(jīng)達(dá)到了壅塞狀態(tài),這可以從馬赫數(shù)云圖上看出來(lái)(圖8)。從圖中可以看出,出口附近有馬赫數(shù)超過(guò)1的局部超音速區(qū)域。馬赫波在出口邊界的反射導(dǎo)致了出口截面的參數(shù)不斷振蕩,不能收斂。這種反射是邊界條件的數(shù)學(xué)處理造成的——因?yàn)槲覀儚?qiáng)制地讓出口截面的壓力等于指定的數(shù)值,而這是不符合物理事實(shí)的?!盁o(wú)反射”的具體處理方法涉及特征線理論,這里不予以敘述,有興趣的讀者可以看計(jì)算流體力學(xué)原理方面的資料(例如[1];以及FLUENT的User's Guide中的“General Non-Reflecting Boundary Conditions”這一節(jié))。
圖8 馬赫數(shù)云圖
如果計(jì)算域的出口沒(méi)有局部超音速區(qū)域,就不必將出口邊界設(shè)置為無(wú)反射的了。計(jì)算實(shí)踐表明,這時(shí)不將出口設(shè)成無(wú)反射的也是可以收斂的。
作者非常感謝北京航空航天大學(xué)能源與動(dòng)力工程學(xué)院的研究生王昌勝。他提供了本文算例的case文件。此外,北航航空科學(xué)與工程學(xué)院的研究生李亮閱讀了本文的初稿并提出了寶貴的修改意見(jiàn)。
未經(jīng)許可,不得轉(zhuǎn)載
長(zhǎng)按二維碼關(guān)注流體那些事兒
參考文獻(xiàn)
[1] 吳子牛. 計(jì)算流體力學(xué)基本原理. 北京: 科學(xué)出版社, 2001
注1:函數(shù)M文件until.m的代碼如下,這個(gè)函數(shù)的作用是在文件中從當(dāng)前位置向后查找指定的字符:
function until(fid,ch) while true a=fread(fid,1,'char*1'); if a==ch break end end
轉(zhuǎn)自微信公眾號(hào):流體那些事兒 葉漢玉
相關(guān)標(biāo)簽搜索:FLUENT不收斂案例及解決方法:壓力出口導(dǎo)致的不收斂【轉(zhuǎn)發(fā)】 Fluent培訓(xùn) Fluent流體培訓(xùn) Fluent軟件培訓(xùn) fluent技術(shù)教程 fluent在線視頻教程 fluent資料下載 fluent分析理論 fluent化學(xué)反應(yīng) fluent軟件下載 UDF編程代做 Fluent、CFX流體分析 HFSS電磁分析