參指南:從模型選型到收斂控制的完整路徑)
簡介《Fluent燃燒算例詳細(xì)教程》是一份面向Fluent燃燒仿真場景的中文PDF技術(shù)資料適合需要處理燃燒、湍流與反應(yīng)流計算問題的工程師和科研人員。文檔系統(tǒng)梳理了燃燒模型、湍流模型、燃燒反應(yīng)模型以及計算流體力學(xué)仿真四個核心模塊重點介紹了渦耗散模型、標(biāo)準(zhǔn)k-ε模型等常用方法及其適用場景。資源包僅包含1個PDF文件大小約6.27MB結(jié)構(gòu)緊湊便于完整閱讀和按需查閱目前已有1437人瀏覽學(xué)習(xí)。內(nèi)容以實際算例為主線包括IFRF旋流煤粉火焰、GE LM-1600燃?xì)廨啓C(jī)燃燒室與大渦模擬燃燒不穩(wěn)定性等案例覆蓋從網(wǎng)格劃分、湍流與輻射模型選擇到離散相煤粉燃燒設(shè)置的完整流程并附有部分參數(shù)設(shè)置與建模要點可以幫助讀者把燃燒理論轉(zhuǎn)化為可落地的Fluent仿真操作兼具入門指導(dǎo)與工程參考價值。 Fluent的燃燒算例教程里看起來總是很簡單導(dǎo)入網(wǎng)格勾選模型點初始化然后點Calculate完事。但真到自己動手做的時候問題一個接一個火焰怎么都點不著溫度直接飆到上萬殘差曲線穩(wěn)定得像在做心電監(jiān)護(hù)算到一半突然發(fā)散。這絕對不是個例。這些年我?guī)腿伺挪檫^的燃燒算例十有八九不是操作失誤而是底層設(shè)置在教程里被一筆帶過了。這篇內(nèi)容我打算換個講法核心思路是把“燃燒算例為什么這么難調(diào)”講透再給你一條從模型選型、前處理、點火到收斂控制的完整路徑。我不保證每個按鈕都手把手截圖但保證把你最容易踩的坑都擺出來包括中斷續(xù)算、UDF編輯、梯度保存和多孔介質(zhì)參數(shù)這些高頻問題。1. 燃燒算例的本質(zhì)為什么它和普通流場仿真完全是兩碼事1.1 燃燒仿真需要多組分、多物理場同時參與很多剛接觸Fluent的人第一個燃燒算例往往是把之前做冷態(tài)流場的操作習(xí)慣直接搬過來。結(jié)果就是一跑就出問題。原因是燃燒仿真基本不是“一個”問題而是至少四個問題的疊加湍流流場、多組分輸運、化學(xué)反應(yīng)放熱、輻射換熱。溫度場通過氣體密度和粘性反作用于流場化學(xué)反應(yīng)速率又強(qiáng)烈依賴溫度和組分濃度輻射再把能量從高溫區(qū)搬到低溫區(qū)。這種強(qiáng)耦合意味著你在冷態(tài)流場里的一些“偷懶”做法在燃燒算例里都會被放大成不穩(wěn)定因素。比如網(wǎng)格太粗冷態(tài)可能只是殘差偏高燃燒算例里就會因為局部溫度異常直接導(dǎo)致反應(yīng)速率的指數(shù)項爆炸。從操作層面來說燃燒算例最少要開啟這幾個模型環(huán)節(jié)能量方程、粘性模型多數(shù)情況下用realizable k-epsilon或SST k-omega、組分輸運模型、輻射模型通常DO。少了任何一個物理上就不自洽。這不是“精度高低”的問題是“算出來到底對不對”的問題。1.2 化學(xué)時間尺度和網(wǎng)格尺度兩個決定成敗的鑰匙理解燃燒算例的難點繞不開“時間尺度”這個概念?;瘜W(xué)反應(yīng)的特征時間常常在微秒到毫秒量級而流動的特征時間可能是秒量級。兩者相差好幾個數(shù)量級這在數(shù)學(xué)上就構(gòu)成“剛性問題”——方程組的快速變化項和慢速變化項相互糾纏數(shù)值格式稍不留神就會震蕩。網(wǎng)格尺度則是另一個容易被忽視的點。火焰面通常很薄一個貧燃/富燃火焰前鋒的厚度可能只有零點幾毫米網(wǎng)格能不能分辨這個厚度直接決定火焰面能否在計算域里“立”起來。網(wǎng)格太粗時火焰面會被抹平溫度峰值被低估污染物預(yù)測就完全失真。我常打一個比方燃燒算例里的網(wǎng)格本質(zhì)上承擔(dān)著雙重任務(wù)一是分辨湍流渦結(jié)構(gòu)的空間尺度二是分辨化學(xué)反應(yīng)前鋒的空間尺度。這兩個尺度往往還不一致所以網(wǎng)格無關(guān)性驗證在燃燒算例里尤其重要但也是最常被跳過的步驟。更關(guān)鍵的是溫度場對化學(xué)反應(yīng)速率的Arrhenius形式呈指數(shù)敏感性溫度差個100K反應(yīng)速率可能差好幾倍。2. 選模型之前先把燃燒類型和化學(xué)反應(yīng)機(jī)理想清楚2.1 先回答我的工況是預(yù)混、非預(yù)混還是部分預(yù)混Fluent里的燃燒模型并不是隨便挑一個就能用。第一個問題永遠(yuǎn)是我的燃燒器到底是哪種燃燒組織方式。如果是燃料和氧化劑在進(jìn)入燃燒區(qū)前已經(jīng)混合均勻那是預(yù)混燃燒如果是通過兩個獨立入口分別送入燃料和空氣在爐膛內(nèi)部邊混合邊燃燒那是非預(yù)混燃燒如果既有預(yù)混又有擴(kuò)散火焰的混合特征比如部分預(yù)混的旋流燃燒器那就是部分預(yù)混燃燒。判斷錯燃燒類型后面所有設(shè)置都白搭。最典型的例子有人拿非預(yù)混燃燒模型Non-Premixed Combustion去做預(yù)混火焰得到的結(jié)果大概率是火焰位置偏前、溫度場嚴(yán)重失真因為混合分?jǐn)?shù)方法的基本假設(shè)就是“燃料和氧化劑不完全混合”。2.2 湍流燃燒模型怎么挑EDC、PDF火焰面與層流有限速率確定燃燒類型之后湍流與化學(xué)反應(yīng)的相互作用模型是下一個選擇點。Fluent里常用的三條路線層流有限速率Laminar Finite-Rate直接把Arrhenius公式用于平均流場不考慮湍流脈動對反應(yīng)的增強(qiáng)。對層流火焰可以用對湍流火焰預(yù)測偏慢實際工程應(yīng)用比較少。渦耗散概念模型EDC假設(shè)化學(xué)反應(yīng)發(fā)生在微尺度渦內(nèi)可以考慮詳細(xì)化學(xué)反應(yīng)機(jī)理對非預(yù)混、部分預(yù)混火焰的預(yù)測靠譜很多但代價是計算量大、對網(wǎng)格敏感。非預(yù)混PDF/火焰面模型Steady Laminar Flamelet基于混合分?jǐn)?shù)方法適合擴(kuò)散火焰對湍流脈動有較好處理計算量適中。但它要求燃燒接近“快速化學(xué)反應(yīng)”假設(shè)對慢反應(yīng)或污染物詳細(xì)機(jī)理有局限。選型的原則我給個粗淺建議做擴(kuò)散火焰、重點關(guān)注溫度場和NOx趨勢可以優(yōu)先考慮火焰面模型做詳細(xì)反應(yīng)機(jī)理、有熄火回火或污染物細(xì)節(jié)預(yù)測需求就上EDC做基礎(chǔ)研究、尺寸很小或機(jī)理簡單層流有限速率也能湊合。沒有萬能模型關(guān)鍵是要清楚每個模型的適用邊界也要做好心理準(zhǔn)備——EDC算一天一夜是常態(tài)。2.3 輻射、浮力與機(jī)理文件容易被忽略的配套項燃燒算例里輻射必須開。燃燒產(chǎn)物里的CO2和H2O都是強(qiáng)輻射參與介質(zhì)高溫下輻射換熱占比可能超過30%。DO模型是工程上最通用的選擇它和組分輸運、燃燒模型配合都沒有硬傷。S2S模型更適合對輻射不敏感的低溫問題燃燒工況基本不用。浮力項在低速燃燒器里不能關(guān)。燃燒室內(nèi)的溫升通常在1000K以上密度變化帶來的浮力驅(qū)動會顯著改變流型。在Operating Conditions里打開重力設(shè)置好重力方向密度模型選incompressible-ideal-gas或?qū)嶋H氣體密度。化學(xué)機(jī)理文件的準(zhǔn)備是整個流程里最“勸退”的一環(huán)。新手建議先從Fluent自帶的簡單兩步/四步甲烷機(jī)理入手等摸清流程再換GRI-3.0這樣的詳細(xì)機(jī)理。機(jī)理文件用Chemkin格式后綴通常是.chem和.thermoFluent里通過混合物材料的導(dǎo)入向?qū)Ъ虞d。3. 前處理與點火啟動從網(wǎng)格到火焰出現(xiàn)的完整路徑3.1 網(wǎng)格質(zhì)量的基本要求與邊界層考慮網(wǎng)格是燃燒算例的命根子。除了前面說的火焰厚度分辨率還要特別注意近壁面的處理。如果用了增強(qiáng)壁面處理或低雷諾數(shù)模型第一層網(wǎng)格高度要滿足y≈1如果用壁面函數(shù)y在30到300之間。有些燃燒室壁面有冷卻考慮共軛傳熱的話還要把固體域一并建模。我的習(xí)慣是在火焰可能存在的區(qū)域——回流區(qū)、剪切層附近——做局部加密網(wǎng)格尺寸至少小于火焰厚度預(yù)估值的五分之一。這個“預(yù)估”可以先用一維火焰計算比如Chemkin的premixed flame給個參考。對于湍流燃燒網(wǎng)格渦粘性比那些地方往往是誤差的另一個來源。如果你不確定網(wǎng)格質(zhì)量行不行先算一個等溫工況看流場是否合理再開啟反應(yīng)。這算是成本最低的驗證方式。3.2 導(dǎo)入反應(yīng)機(jī)理與設(shè)置混合物材料Fluent里加反應(yīng)機(jī)理的路徑是Models → Species → Species Transport勾選Volumetric Reactions然后在Mixture Material里創(chuàng)建或修改混合物。如果是復(fù)雜機(jī)理推薦用Chemkin Import向?qū)鼤詣幼x取機(jī)理文件里的組分、反應(yīng)和熱力學(xué)數(shù)據(jù)比手動一條條輸反應(yīng)靠譜得多。要給組分賦予正確的熱物性。溫度范圍對燃燒很重要Fluent默認(rèn)的NASA多項式數(shù)據(jù)通常能覆蓋300到3000K但如果你的工況溫度超過這個范圍熱力學(xué)數(shù)據(jù)的外推會讓比熱出現(xiàn)異常溫度響應(yīng)就會出問題。檢查每個組分的Cp多項式有效溫度范圍是老手和新手都會忽略但影響極大的細(xì)節(jié)。3.3 邊界條件里的“回流組分”陷阱這是燃燒算例里最隱蔽、也最容易坑人的設(shè)置。在大多數(shù)燃燒室中出口和部分壁面附近是強(qiáng)回流區(qū)流體會從出口邊界“吸回”計算域。默認(rèn)情況下回流處的組分分?jǐn)?shù)會直接從當(dāng)前計算域里的值插值如果回流區(qū)域有大量CO2和H2O這個默認(rèn)值問題不大。但如果你用的是壓力出口且回流段是未燃混合物或空氣Fluent會默認(rèn)回流組分等于域內(nèi)當(dāng)前值導(dǎo)致本該是空氣的回流帶上大量燃?xì)饨M分溫度場和火焰位置就會完全失真。正確的做法是在Species邊界條件里顯式指定回流組分的質(zhì)量分?jǐn)?shù)。對空氣入口回流組分就設(shè)為大氣成分如果入口是預(yù)混氣則需要按當(dāng)量比把回流組分設(shè)成未燃混合氣。這個細(xì)節(jié)往往能讓一個反復(fù)發(fā)散、火焰位置飄忽的算例瞬間老實下來。3.4 點火啟動路徑冷態(tài)流場、高溫patch與火焰發(fā)展燃燒算例最忌諱一上來就開反應(yīng)。我推薦的啟動順序是先做冷態(tài)流場關(guān)閉反應(yīng)只算流動和混合。這一步能讓流場穩(wěn)定下來形成合理的燃料/氧化劑分布為后面的點火提供一個好的初始場。保存冷態(tài)結(jié)果然后打開反應(yīng)模型。用Patch方法在點火位置填入一個高溫區(qū)通常1500到2000K范圍取點火器或火焰穩(wěn)定器附近的小區(qū)域。Patch支持在特定Cell Zone或Hexahedron區(qū)域內(nèi)設(shè)置溫度和組分。開瞬態(tài)計算時間步長從1e-5秒量級開始觀察火焰是否自己維持住?;鹧娼⒅笾鸩皆龃髸r間步等穩(wěn)態(tài)或進(jìn)入周期性振蕩之后再決定是否需要固定時間平均數(shù)據(jù)。整個過程聽起來不復(fù)雜但實際跑的時候火焰能否從初始火核發(fā)展成自持火焰非常依賴?yán)鋺B(tài)流場是否合理。如果回流區(qū)不夠強(qiáng)火核被吹跑或熄滅那問題往往不在點火設(shè)置而在燃燒室結(jié)構(gòu)和流動組織。4. 發(fā)散、殘差不降與溫度超限燃燒算例最燒腦的收斂問題4.1 殘差曲線一直降不下來該從哪幾個方向查燃燒算例里殘差曲線降到1e-4就停下來或者一直在1e-2附近振蕩這是常態(tài)。殘差不是越低越好關(guān)鍵要看關(guān)鍵物理量是否守恒。排查順序我會這么走先看進(jìn)出口質(zhì)量流量差燃燒算例中的氣流有熱膨脹流量偏差小于0.1%才能談收斂看整體能量平衡燃料輸入熱功率和壁面熱損失、煙氣帶走的焓之間是否匹配看監(jiān)測點的溫度和組分是否穩(wěn)定而不是只看殘差。如果殘差降不下去優(yōu)先懷疑回流組分設(shè)置、網(wǎng)格畸變率、近壁處理不一致、機(jī)理文件里某條反應(yīng)的剛性過大。還有一個容易忽略的原因組分輸運和能量方程的離散格式不一致導(dǎo)致溫度場和組分場來回“拉鋸”。4.2 欠松弛因子、時間步與溫度上限的調(diào)節(jié)邏輯穩(wěn)態(tài)燃燒算例的欠松弛因子調(diào)法跟冷態(tài)流場完全不同。冷態(tài)流場里壓力、動量欠松弛調(diào)低一點通常就穩(wěn)了。但燃燒算例里能量方程的欠松弛因子如果太小點火階段的熱反饋被抑制火焰就起不來太大會直接震蕩發(fā)散。我的經(jīng)驗是點火階段把能量欠松弛設(shè)在0.8到0.95之間密度和動量的欠松弛可以放在0.3到0.5若發(fā)散優(yōu)先把能量欠松弛降到0.6以下而不是去動組分方程。組分方程的欠松弛一般0.7到0.9但對于組分梯度極大的區(qū)域要舍得降到0.5。溫度上限在Solution Limits里可以設(shè)置我建議把最高溫度限制在絕熱火焰溫度的1.2倍左右。這個上限是最后一道防線防止局部溫度在數(shù)值上“跑飛”但不能指望它解決物理問題。如果你發(fā)現(xiàn)結(jié)果頂?shù)綔囟壬舷拚f明之前的模型設(shè)置或邊界條件肯定有一個地方是錯的。4.3 一次旋流燃燒器排錯的完整過程這里分享一個實際案例。去年幫一個同事排查旋流燃燒器模型現(xiàn)象是冷態(tài)算得好好的一開反應(yīng)溫度就往上竄點著火后幾分鐘就發(fā)散。我第一反應(yīng)是看回流組分。檢查之后發(fā)現(xiàn)壓力出口的回流組分確實沒設(shè)。因為燃燒室出口有很強(qiáng)回旋流出口附近就是高溫燃?xì)饣亓鲄^(qū)回流氣體把壁面附近本應(yīng)冷卻的低溫區(qū)域焓值抬得過高連鎖反應(yīng)導(dǎo)致反應(yīng)速率狂飆。把壓力出口的回流組分設(shè)為純空氣并限制回流溫度為1500K之后溫度場立刻恢復(fù)正常殘差也穩(wěn)定下來了。這只是排查思路之一。但我想強(qiáng)調(diào)的是燃燒算例發(fā)散絕大多數(shù)情況下不是“該調(diào)低松弛”這么簡單?;亓鬟吔?、壁面熱邊界、組分初始化、反應(yīng)機(jī)理中的某個自由基濃度異常都可能成為隱藏的引爆點。一定要按“邊界條件-網(wǎng)格質(zhì)量-模型參數(shù)-離散格式”的順序逐級排查而不是盲目調(diào)松弛因子。5. 中斷續(xù)算、UDF編輯、梯度保存與多孔介質(zhì)參數(shù)四個繞不開的工程化問題5.1 耦合中斷后繼續(xù)計算case/data的恢復(fù)路徑燃燒瞬態(tài)算例經(jīng)常要跑幾天幾夜中途死機(jī)、停電、或者雙向流固耦合計算因為某個原因被中斷幾乎是必然發(fā)生的事情。好在Fluent的續(xù)算機(jī)制并不復(fù)雜。前提是你設(shè)置了Autosave保存在File → Write → Autosave里設(shè)置好每N步保存一次case和data。中斷之后重啟Fluent打開最近的case和data文件然后直接點Calculate繼續(xù)跑就行。對于瞬態(tài)問題確保讀入data后時間步計數(shù)器從正確位置繼續(xù)如果Fluent在中斷時已經(jīng)丟失一部分瞬態(tài)統(tǒng)計窗口的數(shù)據(jù)那也不可避免所以計算中途的自動保存間隔不要設(shè)得太長否則一次中斷會丟掉大量已算結(jié)果。Sys Coupling雙向耦合的情形稍微麻煩一點。重新打開Fluent后要保證參與耦合的所有求解器都從對應(yīng)時間點恢復(fù)最好從Workbench里整體恢復(fù)工程文件而不是單獨打開Fluent的case和data。重啟耦合時優(yōu)先確認(rèn)交界面兩側(cè)的數(shù)據(jù)量綱和網(wǎng)格坐標(biāo)是否完全一致否則耦合面上可能出現(xiàn)莫名其妙的高頻振蕩。5.2 UDF文件在哪寫、怎么寫、怎么編譯Fluent里的UDF本質(zhì)上是C語言寫的文本文件后綴通常為.c。很多人第一次接觸時到處問“UDF文件在哪里編輯”其實它的編輯并不依賴Fluent本身。Fluent自帶的文本編輯器非常簡陋不建議在里面寫長代碼。更順手的方案是在Windows下用Notepad或Visual Studio Code在Linux下用vim或VSCode寫完保存為一個.c文件。文件路徑盡量不要有中文和空格否則部分版本在編譯時會出現(xiàn)奇怪錯誤。注意寫UDF時會include一個頭文件“udf.h”這個頭文件的路徑由Fluent自動配置不需要手動指定。寫完之后在Fluent里通過Define → User-Defined → Functions進(jìn)入編譯工具。如果只是個簡單的表達(dá)式或邊界profile用Interpreted模式就夠如果涉及循環(huán)遍歷網(wǎng)格單元、DPM源項或復(fù)雜CALL就要用Compiled模式。編譯式UDF需要C編譯器配合。Fluent 2020以上版本在安裝時通常自帶兼容的編譯器老版本需要單獨裝Visual Studio。5.3 保存梯度別等后處理時才發(fā)現(xiàn)數(shù)據(jù)不夠后處理想畫溫度梯度或速度梯度云圖卻發(fā)現(xiàn)在已有數(shù)據(jù)文件里找不著梯度變量這問題我見太多次了。Fluent默認(rèn)會保存一部分求解變量到data文件但梯度和衍變量并不是默認(rèn)全部保存。如果你打算在后處理階段直接用CFD-Post或Tecplot顯示溫度梯度、組分梯度等建議在計算之前就設(shè)置好進(jìn)入File → Data File Quantities勾選需要保存的梯度項和自定義場函數(shù)。Autosave和Solution Data Export里繼承這些設(shè)置。這樣每個自動保存的data文件里都會帶上梯度數(shù)據(jù)。不過也別隨手全勾。梯度量會增加data文件的體積瞬態(tài)算例如果每步都保存全部梯度硬盤幾下就被塞滿。我的做法是正式計算時只保存基礎(chǔ)量在計算到需要精細(xì)分析的工況穩(wěn)定期再加掛一個額外自動保存策略來記錄梯度或者用Sampling界面單獨做瞬態(tài)統(tǒng)計量的時間平均處理。5.4 多孔介質(zhì)參數(shù)設(shè)定從壓降數(shù)據(jù)到Fluent系數(shù)燃燒模擬里經(jīng)常出現(xiàn)多孔介質(zhì)區(qū)域催化燃燒床、多孔磚蓄熱體、火焰穩(wěn)定器里的蜂窩陶瓷等。在Fluent的多孔介質(zhì)設(shè)置面板里核心是粘性阻力系數(shù)和慣性阻力系數(shù)它們對應(yīng)Darcy定律中的兩項。如果沒有文獻(xiàn)值最通用的手段是Ergun公式。粒徑dp、孔隙率epsilon已知時粘性阻力系數(shù)1/alpha 150 * (1-epsilon)^2 / (dp^2 * epsilon^3)慣性阻力系數(shù)C2 3.5 * (1-epsilon) / (dp * epsilon^3)這套公式適用于規(guī)則顆粒填充床。如果你們實驗室有壓降實驗數(shù)據(jù)更好的方式是從ΔP/L與速度v的二次擬合曲線得到系數(shù)ΔP/L (μ/alpha)·v 0.5·C2·ρ·v2在Fluent的Porous Zone面板里方向向量可以分別設(shè)置三個方向的阻力和孔隙率多孔介質(zhì)的流動方向阻力與其他方向阻力往往有數(shù)量級差異這時候務(wù)必按方向分別填系數(shù)別圖省事只填一個各向同性的值。還有一點多孔介質(zhì)區(qū)域的溫度很高時孔隙率在溫度變化下可能發(fā)生改變這會直接影響流動阻力和傳熱面積有必要的話要通過UDF讓阻力和孔隙率隨溫度/位置變化才能反映真實行為。燃燒算例的參數(shù)設(shè)置是一條完整鏈路模型選型決定物理框架前處理決定初始質(zhì)量邊界條件和收斂控制決定能否跑通最后的工程化細(xì)節(jié)決定算完能不能出成果。我最后再提醒一句每個算例的坑都是它自己的參數(shù)和結(jié)論可以參考但自己的燃燒室一定會有自己的脾氣多存幾個工況對照著調(diào)比什么都管用。本文還有配套的精品資源點擊獲取