張迪博,施鎏鎏,張文杰
(上海理工大學能源與動力工程學院,上海 200093)
“雙碳”背景下,氫能得到了人們的重點關注。氫能的應用方式之一:質子交換膜燃料電池(PEMFC)具有零污染、轉化過程噪聲低、電池效率高的優點[1]。由于電池處于變工況的工作環境下,通過供應過量氫氣的方法來保證輸出功率的穩定,導致部分氫氣未被完全消耗,目前常用引射器(圖1)對該部分氫氣進行回收利用。

圖1 引射器
根據目前主流引射器設計方法所得到的引射器存在嚴重的設計點偏離問題[2]。對前人的工作進行研究總結,發現優化引射器的結構尺寸可以提高引射器的性能[3]。引射器的優化通常經過以下幾個步驟:結構參數計算、計算域建模、網格劃分和數值模擬,再經過多輪迭代從而得到一個性能較優的設計方案。手動進行多次迭代所需時間成本較高,尚不一定能找到最佳方案,且不考慮人為因素帶來的各種影響。本文針對PEMFC 引射器,通過Python 將結構參數計算、計算域建模、網格劃分、數值模擬、代理模型、優化算法等功能集成,形成一套參數化自動仿真設計平臺,提升引射器性能以及提高開發速度。
PEMFC 引射器優化設計平臺的功能分為5 個模塊:1)引射器設計工況點參數的輸入;2)引射器結構參數初步計算及結果展示;3)調節優化參數范圍;4)選擇文件保存目錄并輸入SSH遠程連接所需參數;5)優化結果展示等功能。
Qt是一個C++可視化開發平臺,是一個跨平臺的C++圖形用戶界面應用程序框架(C++ GUI),能夠為應用程序開發者提供建立圖形用戶界面所需的功能。Qt是完全面向對象的、易擴展,可應用于組件編程,并可以用于嵌入式開發。它是目前流行的Linux桌面環境KDE 的基礎,是Linux 和嵌入式操作系統下的主流圖形界面開發環境,其最大優勢在于只需編寫一次代碼,就能編譯部署在任何操作系統和硬件上。
PyQt是一個創建Python GUI應用程序的工具包,是Qt 和Python 結合的一個產物,可以說是為了將Qt的功能用于Python 開發的一個Qt 的Python 包裝器。它是Python編程語言和Qt庫的成功融合。
Qt Designer 是一個使用PyQt 庫進行圖形化界面開發時可視化的界面設計工具,可以方便地通過拖拽等方式來設計界面。
如圖2所示,來自高壓氫氣罐的氣體(工作流體)通過壓力調節器達到適當的壓力,經噴嘴加速后在噴嘴出口處會產生一個低壓區,在壓差的作用下使來自燃料電池中未被完全消耗的氫氣(引射流體)到達吸入腔,二者在混合室充分混合后進入擴壓室,經減速擴壓達到允許壓力后通過電池陽極側入口進入電池,重新參與反應[2]。

圖2 PEMFC氫氣循環流程
通常用引射系數(ER)來評價引射器的性能[2],它表示引射流體質量流量與工作流體質量流量之比:
式中:ms為引射流體的質量流量,kg/s;mp為工作流體的質量流量,kg/s。
基于Python 的PEMFC 引射器優化設計平臺是一個可以通過輸入引射器設計點工況參數、參數的變化范圍、優化過程文件的存儲位置及SSH遠程連接所需的參數后實現引射器結構參數的初步計算、拉丁超立方(LHS)實驗設計方案(DOE)的設計、Python 調用OpenFOAM進行流體域建模,網格劃分,數值模擬、基于試驗設計方案和數值模擬結果構建代理模型并進行超參數尋優、使用優化算法進行全局尋優并判斷是否達到收斂結果等功能,最后將展示優化結果。具體優化流程如圖3所示。

圖3 基于Python的引射器自動設計流程
1)PEMFC 引射器結構參數初步計算。使用Python編程語言并參照索科洛夫引射器設計方法[2]編寫引射器結構參數計算程序,對引射器的結構尺寸進行初步計算。
Python 作為一門簡單易用且功能強大的開源免費計算機語言,其以學習成本相較于其他編程語言較低、應用范圍廣等優點得到人們的廣泛使用。
2)拉丁超立方(LHS)實驗設計方案(DOE)的設計。基于上一步獲得的PEMFC引射器的初步結構尺寸,采用拉丁超立方(LHS)試驗設計方法,創建PEMFC 引射器結構優化參數的初始樣本點集合,樣本點個數為n= 90個。
由于PEMFC 引射器噴嘴的等熵效率較高,引射流體入口處的形狀對引射器效率的影響可以忽略不計[4]。因此,引射器的幾何形狀可以簡化為如圖4 所示的軸對稱形式,并且該軸對稱模型完全可由圖4中所標識的9 個PEMFC 引射器幾何參數進行數學計算得到。為了最大限度地提高引射器的性能,對這9個幾何參數進行全因子優化。

圖4 PEMFC引射器對稱計算模型
試驗設計方法(DOE)主要對試驗進行合理安排,以較小的試驗規模(試驗次數)、較短的試驗周期和較低的試驗成本,獲得理想的試驗結果以及得出科學的結論。LHS試驗設計方法通過保證各水平距離均勻、避免重復與隨機化,能高效生成高質量的試驗設計方案。
3)Python 調用OpenFOAM 進行流體域建模、網格劃分、數值模擬。針對各樣本點,通過OpenFOAM 中的blockMesh 工具和rhoSimpleF-oam 求解器分別進行計算域建模、網格劃分和數值模擬計算,獲得各樣本點的真實響應值。
Windows 系統下的Python 調用Linux 系統下的OpenFOAM進行相關操作時需要注意以下兩點:
①Windows 系統與Linux 系統是通過Secure Shell(SSH)進行遠程連接的。首先在Linux 系統下通過鍵入“sudo apt install openssh-server”和“sudo apt install openssh-clien”命令分別安裝SSH 服務的服務器與客戶端;接著鍵入“sudo service ssh status”命令查詢sshserver 是否已經啟動,若未啟動則鍵入“sudo service ssh start”命令打開ssh-server。SSH 有兩種遠程登錄方式,分別是口令登錄與公鑰登錄。使用口令方式登錄遠程主機時,每次都需要鍵入“ssh 客戶端用戶名@服務器ip 地址”和密碼(其中服務器ip 地址可以通過鍵入“ip a”來獲得服務器的ip地址),在優化過程中并不能實現自動化。而使用公鑰登錄則可以解決該問題,利用密鑰對進行連接,還可以提高安全性。首先鍵入“ssh-keygen-t rsa”命令生成密鑰對,執行結束以后會在“/home/當前用戶目錄”下生成一個.ssh文件夾,其中包含“私鑰文件id_rsa”和“公鑰文件id_rsa.pub”,接著可將“公鑰文件id_rsa.pub”復制到遠程主機。經過以上兩個步驟,以后再登錄這個遠程主機就無須再輸入密碼。
②通過SSH 遠程連接Linux 成功后,調用Open-FOAM 執行流體域建模、網格劃分、數值模擬等功能時,建議使用OpenFOAM 案例中的“./Allrun”腳本進行,這樣可以省去重復且費時的操作步驟。但是在編寫“./Allrun”腳本文件時,須特地在文件頭部加上如下4句命令,否則并不能成功調用OpenFOAM相關功能,這是筆者經過大量試錯所得到的經驗:
4)構建代理模型并進行超參數尋優。根據樣本數據中的所有樣本點及其對應的真實響應值,構造徑向基函數(RBF)代理模型,并對該代理模型進行Bayes超參數調優,提高代理模型性能。
采用代理模型方法不僅可大大提高優化設計效率,而且可降低優化難度,并有利于濾除數值噪聲和實現并行優化設計。常用的代理模型有多項式響應曲面模型、徑向基函數模型、Kriging 模型等。由于徑向基函數模型的預測精度高、模型預測曲線的光順程度好[5],故選擇徑向基函數模型。
Bayes 超參數優化[6]是在已有的超參數設置和對應的模型性能的基礎上,通過不斷地探索新的超參數組合來更新超參數的后驗分布,并最終選擇能夠提高代理模型性能的超參數組合。
5)全局優化及加點策略。首先對構造的徑向基函數代理模型進行Bayes 超參數優化,在已有的超參數設置和對應的模型性能的基礎上,通過不斷地探索新的超參數組合來更新超參數的后驗分布,并最終選擇能夠提高代理模型性能的超參數組合;接著使用粒子群優化算法(PSO)[7]對超參數優化過后的徑向基函數代理模型進行全局尋優;最后判斷是否滿足收斂條件,如果滿足則停止優化并輸出結果,否則,將尋優后的最優解加入樣本點中構造新的代理模型進行迭代。
6)判斷是否滿足收斂條件。若滿足,則停止優化并輸出優化結果;否則,繼續迭代。
通過使用Python 編程語言并結合PyQt5、Qt Designer設計出如圖5所示的PEMFC引射器優化設計平臺的GUI 界面。界面共分為5 個部分:1)引射器設計工況參數的輸入;2)引射器結構參數初步計算結果的展示;3)調節優化參數的可變范圍;4)選擇文件保存目錄并輸入SSH 遠程連接所需參數;5)優化結果的展示。

圖5 PEMFC引射器優化設計平臺界面
輸入如圖5 中第①部分所示的PEMFC 引射器的設計工況點參數,點擊“計算結構參數”按鈕后會自動執行使用Python編寫的引射器結構尺寸計算程序,運行結構尺寸計算程序后會將引射器結構參數具體數據展示在第②部分中以及第③部分的原始設計數據列。
第③部分中變化范圍(其值介于0~1)決定的是第②部分中所示的結構參數可以變化的上、下限具體值。調節好所需的變化范圍值后點擊確認即可固定引射器所有結構參數的具體變化范圍。以擴壓室長度Ld為例,圖5 中第③部分所示變化范圍的值為0.1,意味著擴壓室長度Ld的可變范圍為[0.9*Ld,1.1*Ld];同理0.2即意味著[0.8*Ld,1.2*Ld]。
確定好具體的變化范圍后,通過點擊圖5 中第④部分中的“瀏覽”按鈕,選擇具體的文件存放位置,將優化時所產生的數據文件保存在其中。接著通過輸入Ubuntu 中的用戶名以及相應的IP 地址用以使用SSH 進行遠程連接調用OpenFOAM 功能進行計算域建模、網格劃分、數值模擬計算。最后,點擊開始優化后即可進行如圖3所示的引射器的設計優化流程。
優化完成后的結果將在圖5中的第⑤部分進行展示。二者中,位置居上的為優化后引射器的二維模型,居下位的是優化后引射器的內部速度云圖。
本文針對PEMFC 引射器,通過Python 編程語言將結構參數計算、計算域建模、網格劃分、數值模擬、代理模型、優化算法等功能集成,形成一套參數化的自動仿真設計平臺。該平臺可以顯著加快引射器的設計優化過程,降低研發人員所需投入的時間,促進相關行業的發展。
該平臺尚有進一步的提升空間,如:提高網格質量以適應各種引射器模型、提高數值模擬的精度等,這也是以后要努力的方向。