唐 怡,楊福軍,付 眸,馮 姣,萬春明
(中國空氣動力研究與發展中心 計算空氣動力研究所,四川 綿陽 621000)
隨著數值計算能力與方法的不斷提升,計算機科學與流體力學、物理數學、航空工程等學科的交叉融合得到了快速發展,用于模擬求解各類流動問題的CFD軟件層出不窮。CFD軟件的可信度決定了其是否具有實際應用價值,而科學、客觀的驗證與確認是評價CFD可信度的唯一途徑,也是CFD軟件質量保障的重要手段[1]。CFD驗證與確認的研究在國內外一直備受重視,1992年NASA對CFD驗證與確認研究的投入就高達七百多萬美元,并先后啟動了多項大型氣動數值模擬可信度研究項目。21世紀初期,我國在空氣動力學預研基金中設立了CFD的驗證與確認研究項目,主要為飛行器設計提供高可信度的數值模擬軟件[2]。2018年啟動的國家數值風洞(NNW,national numerical windtunnel)工程項目五大系統之一的驗證與確認系統[3],初步完成了驗證與確認從理論方法、評價指標、標準算例到應用平臺的體系建設,使國內CFD驗證與確認工作從分散研究逐步向體系建設發展。
可靠的驗證與確認標準數據不僅是風洞試驗技術、CFD技術建立和發展的基礎性支撐,同時也是各類飛行器研制過程中不可或缺的標準性、基礎性、功能性檢驗依據,國內外空氣動力研究機構歷來都十分重視標準數據的收集與其數據庫的建設。為支撐CFD軟件的驗證與確認研究,國外多家機構收集整理了各類專用標準數據集,并建立起相應的數據庫。作為評估計算方法對飛行器氣動力和力矩預測水平與能力召開的國際會議,各屆AIAA高升力、阻力預測會議會將收集到的典型標模數據進行公開[3-11];歐盟的FLOWNET數據庫收錄了56種驗證與確認專用標準案例數據[12];QNET-CFD知識庫收錄了大量工業實驗和CFD數據[13]。國內目前幾乎沒有公開共享的驗證與確認標準數據庫,部分研究機構內部建設有用于開展CFD可信度分析的數據庫或數據集[14]。為支持國家數值風洞工程CFD系列軟件的自動化測試和可信度評價工作,同時為CFD相關研究提供標準算例數據支持。驗證與確認系統收集、整理了若干國內外經典標準算例與多項自主設計的試驗標準算例,并建設CFD驗證與確認數據庫平臺存儲管理這些數據。
驗證與確認標準算例數據類型多樣,參數復雜多變。從傳統應用角度出發設計數據結構,多數算例將存在數據冗余、存儲空間浪費的情況。針對參數不固定的標準算例來流狀態和結果數據,設計一種靈活的數據結構,動態管理氣動參數,減少數據冗余,確保氣動數據類型與參數在數據結構管理上可無限擴展。
驗證與確認數據庫平臺是基于國家數值風洞工程驗證與確認標模體系建立的共享數據庫,具有數據錄入、數據管理、數據應用、文件在線展示、數據質檢、元數據管理、系統管理以及接口管理等功能[15]。數據錄入提供算例基礎信息、結果數據及相關文檔的標準化錄入,入庫時調用校驗規則進行數據校驗與審批,以確保入庫數據準確無誤;數據管理提供標模、標簽、標準參數、數據類型、速域、工程應用、基本流動特征等管理,實現算例分類、分層次管理和維護擴展;數據應用提供算例瀏覽、查詢、下載、分析繪圖等功能;文件在線展示提供數模文件、文本文件、辦公文件、圖片以及音視頻文件的在線預覽;數據質檢提供質檢規則,并針對數據管理和應用制定具體質檢方案,進行數據批量質檢;元數據管理提供了數據庫平臺對象和數據結構的定義與描述等;系統管理提供用戶管理、權限管理、日志管理以及數據清理、備份等維護功能;接口管理為CFD軟件可信度評價平臺和自動化測試平臺提供接口,實現標準算例數據跨平臺查詢與自動提取。具體功能結構如圖1所示。

圖1 CFD驗證與確認數據庫功能結構
平臺集中存儲和管理著DLR-F6、HB-2標模、CT-1大迎角標模、CHN-T1標模等上百個國內外典型標模算例和69個精確解算例,涵蓋了氣動力、壓力分布、熱流、動導數、變形等十幾種氣動數據類型,附著流、分離流、自由剪切流等多種基本流動特征問題以及大展弦比飛機、小展弦比飛機、多體分離等典型工程應用,實現了驗證與確認全生命周期的標模覆蓋。
驗證與確認標準算例是經過篩選和整理,具有高可信度與代表性的標模試驗、數值計算與精確解數據,用于判定CFD軟件的可信度,以及相關氣動科學研究。根據CFD驗證與確認數據規范,平臺數據錄入以算例為核心,每個算例中包含的數據文件如圖2所示。

圖2 驗證與確認算例數據文件
算例核心數據為試驗結果與計算結果數據,包含點數據、曲線數據、云圖數據以及流線數據等。幾何數模文件存儲了.iges/.igs/.stp/.stl/.dwg/.3dxml等多種格式;網格文件存儲有算例對應的結構網格與非結構網格;控制輸入文件以文本格式給出控制參數信息;算例描述文件包含了算例信息、所屬標模信息、算例來源、試驗參數描述、計算參數描述等基本信息;實用工具提供求解器、數據處理小工具等;參考文獻包含算例來源文獻或算例經典應用案例文獻;音影文件包含試驗現場圖片、風洞設備圖片、典型結果圖片、音頻文件、視頻文件等。
由于驗證與確認標準算例數據量較大,數據存儲、管理和交換相對復雜,對于入庫的主要數據,應盡量做到結構化、規范化和標準化。算例數據以兩種方式進行存儲:1)將原文件整理為常規計算格式并存儲在文件服務器中,以滿足CFD計算研究人員對標準算例原始數據的查看、下載需求;2)為更高效地服務于CFD可信度評價平臺、自動化測試平臺,實現數據繪圖、數據質檢、元數據管理等功能,需要提取算例基本信息,解析、整理算例結果等結構數據存入關系型國產數據庫中。
良好的數據結構可以極大地提升數據檢索、插入、刪除等操作的性能。驗證與確認數據庫平臺數據結構設計需滿足:CFD軟件可信度評價等應用場景需求;分離算例主體與附屬;適當數據冗余;能應對可能出現的新需求以及后續大數據量等。
驗證與確認數據庫表分為了核心數據表、框架控制表、元數據表、質檢管理表、系統管理表、基本信息表等幾大類,標準算例數據全部保存在核心數據表中。核心數據表結構以算例信息表為中心,邏輯關聯算例數據類型表、算例結果數據表、標模信息表、文件信息表等,其結構如圖3所示。

圖3 算例核心數據表結構
驗證與確認標準算例數據結構復雜,同一算例下不同數據類型或不同算例相同數據類型對應的參數結構各不相同,尤其定常與非定常算例之間參數構成差異更大。針對這種情況,以往氣動類數據庫通常按不同數據類型單獨建表,每種數據類型表中盡可能預設出所有來流狀態與結果參數字段,氣動數據錄入時通過匹配字段名稱存入對應位置,缺省字段默認為空。這種數據結構設計存在幾個明顯缺陷:
1)相同算例不同數據類型的來流狀態參數雖有差異卻有大部分重疊情況,造成表中數據冗余;
2)提前預設好數據類型表與參數字段,雖然能滿足已有類型與參數的存儲,但出現新試驗或計算數據類型與參數時,無法動態增加,缺乏良好的可擴展性;
3)標準算例數據類型較多,常規類型就多達十幾種,每個數據類型表預設參數字段在存入算例數據時,都會出現大量空參數,浪費存儲空間;
4)由于不同算例參數差異導致空參數不明確,數據查詢功能需要增加多重判斷,影響查詢性能。
針對上述缺陷,在驗證與確認數據庫平臺數據結構設計中,采用較為靈活的動態存儲方式構建流動狀態表與結果數據表,其結構與參數設置如圖4所示。

圖4 標準參數結構設計
設計標準參數表,存儲管理所有算例來流狀態與結果參數,參數名稱與參數標識由標準規范進行限定,具有唯一性。標準參數表通過參數映射表與流動狀態表、結果數據表進行關聯。參數映射表作為中間表,用于存儲標準參數序號、參數代號(COL1、COL2…)、算例數據序號以及參數類型等字段,其中參數類型用于確定該參數是馬赫數、總溫、總壓等狀態參數還是氣動力、熱流等數據類型的結果參數,即當參數類型值為state時,表示該參數為狀態參數,關聯到流動狀態表;當參數類型值為force時,表示該參數為氣動力結果參數,值為heat時,表示該參數為熱流結果參數,關聯到結果數據表。流動狀態數據與結果數據動態存儲,流動狀態表中除每個算例都存在的狀態序號、數據類型、來源信息等固定字段,其余諸如馬赫數、雷諾數、總溫、總壓等字段用COL1、COL2…等參數代號動態表示,通過映射表到標準參數表中確定該狀態字段具體代表哪個參數。同樣結果數據表中除結果序號、狀態序號字段,其余諸如升力系數、阻力系數、壓力系數、速度等字段也用COL1、COL2…等參數代號動態表示,其具體參數含義通過參數代號到標準參數表中獲取。
上述方式可在數據冗余和處理速度之間找到一個合適的平衡點,解決氣動數據冗余問題。當算例中有數據類型或參數需要新增、修改、刪除時,可通過平臺基本信息管理界面對標準參數表、數據類型表進行維護,確保數據結構具有良好擴展性。
為全面、客觀、科學地評估不同流動現象的CFD模擬可信度,需要針對每一類流動現象提供具有代表性的標準算例,同時為便于檢索以及組織接口數據格式,需要對每個算例進行分類,并打上對應標簽。前端界面可通過標簽篩選快速定位具體算例,因此算例標簽數據結構設計需相對靈活,便于擴充。采用標簽分類表與標簽表管理具體標簽類型與內容,通過標簽映射表將標簽值與具體算例關聯起來。
算例標簽主要分為導航標簽與檢索標簽,導航標簽主要以速域范圍、基本流動特征、工程應用3個方面進行分類;檢索標簽依據驗證與確認評價指標按數據來源、時域屬性、數據類型、氣動特性、標模類型等進行分類。具體分類情況如表1所示。
高質量標準算例是開展CFD軟件驗證與確認的基礎,可直接用于CFD軟件可信度評估。存入驗證與確認數據庫中的標準算例是公認具有高品質的試驗數據或計算數據,為保證平臺入庫算例數據質量,減少人為因素導致的錯誤、重復、無用等數據存在,需對新入庫算例、歷史算例進行數據質量檢查。通過數據質檢及時發現、定位和解決標準算例在入庫、管理、應用等過程中隱藏的數據質量問題,完成問題數據的流轉和處理,并對數據質量進行評估和監控,不斷改進標準算例數據質量管理水平,有效提高驗證與確認數據庫建設效率及數據可靠性。

表1 算例分類表
數據質檢的關鍵環節在于質檢模型、質檢規則、質檢方案的確定[16-18]。標準算例數據質檢通過配置數據源,建立數據質檢模型。根據CFD數據標準設置質檢規則,并針對具體質檢內容給規則賦權重形成質檢方案。執行質檢方案并分析對應結果,生成質檢報告,實現算例核心數據正確性的自動化檢測,簡要流程如圖5所示。

圖5 數據質檢流程
數據質檢功能包括數據源管理、質檢規則管理、質檢模板管理、質檢方案管理、質檢分析、質檢統計以及任務執行記錄等功能。通過配置數據源獲取算例核心數據表,直接對數據庫表中參數值進行檢驗。數據質檢實體關系如圖6所示。

圖6 數據質檢實體關系示意圖
數據質檢功能具有一定獨立性,可對數據庫表中某個參數或多個參數進行質量檢查,具體檢查對象可自定義配置。數據質檢模塊以規則表為中心,構建了數據源表、規則分組表、規則分類表、規則模板表、質檢方案表、校驗結果表、定時任務表以及檢查日志表。定時任務表存儲數據質檢定時任務相關信息,用于支撐平臺提供的質檢方案定時執行功能,通過配置執行時間,使系統在運行到指定時間時,自動執行質檢方案。同時提供趨勢、占比、環比分析等多種手段,對質檢方案執行的結果進行自動分析,幫助用戶從歷史趨勢、問題發生概率、問題發生數量等多角度來分析數據質量。
數據質檢支持值域檢查、邏輯檢查、規范檢查、空值檢查、重復性檢查、有效性檢查、異常值檢查等10項規則。具體規則如表2所示。

表2 質檢規則
元數據是描述數據對象相關概念、關系和規則的結構化數據,按用途不同分為技術元數據、業務元數據和管理元數據[19-22]。驗證與確認數據庫平臺主要實現技術元數據的管理,即平臺數據庫對象和數據結構的定義和描述。
算例元數據是以氣動數據為描述對象的元數據。其管理功能模塊同樣相對獨立,通過配置數據庫IP地址、端口、用戶、密碼等信息,直接從數據庫表中獲取數據,可更直觀、高效的查詢、分析數據。元數據管理模塊包含元數據信息表、元數據節點表、連接信息表、算例表,其實體關系如圖7所示。

圖7 元數據管理結構示意圖
元數據管理的核心功能是提供宏觀層面的算例數據信息,并設置定時任務,確保元數據自動、周期的隨算例數據的變化而更新。具體功能包括元數據查詢、元數據列表展示、元數據圖形化顯示、元數據導入、導出以及更新等。平臺元數據管理通過列表或圖譜形式直觀展示算例所屬標模信息、算例基本信息、算例數據信息、數據類型、流動狀態參數以及結果參數等信息,如圖8所示。

圖8 DLR-F6全機算例元數據譜圖
驗證與確認數據庫平臺的建立實現了標準算例數據的有效管理與共享應用。平臺中收錄了上百個國內外標準算例,向用戶開放數據檢索查看、在線預覽、下載、繪圖分析、數據標記等功能權限,為CFD科學計算應用提供有力數據支撐。
平臺提供標準的WebService接口和開發API,為國家數值風洞工程驗證與確認可信度評價平臺與自動化測試平臺提供數據支撐。接口數據根據核心數據結構,以“算例信息-數據來源-數據類型-來流狀態-結果數據”五層結構進行組織。WebService接口采用實現SOAP協議的CXF框架開發,基于SpringBoot實現微服務部署,如圖9所示。在WebService接口中嵌套了FTP協議,用于幾何文件、網格文件、音影文件等大文件的傳輸,算例中結構數據通過XML格式進行傳輸。

圖9 數據接口
高質量、高可靠的CFD驗證與確認數據庫平臺可以實現對標準算例數據的有效管理和高效應用,有力支撐國家數值風洞工程和國內相關CFD軟件的驗證和確認,降低CFD軟件開發成本,提高軟件開發效率,確保軟件產品質量。通過設計一種良好的數據結構,減少算例參數冗余,實現數據類型與參數可無限擴展,有效提升驗證與確認數據庫平臺性能。
隨著CFD新技術、新方法的不斷涌現,對氣動數據的準確獲取、氣動性能的可靠性評估提出了更高層次的要求。驗證與確認標準算例作為評估的數據基礎,應進一步擴大其數據范圍的收集整理,同時提升驗證與確認數據庫智能共享能力,為全國CFD軟件的測試、可信度評價和不確定度量化等研究工作提供精準數據服務,實現行業軟件的可靠認證。