靳方圓 熊 超 周海峰* 黃元慶
(1.集美大學(xué) 輪機(jī)工程學(xué)院, 廈門 361021; 2.福建省船舶與海洋工程重點(diǎn)實(shí)驗(yàn)室, 廈門 361021;3.廈門大學(xué) 航空航天學(xué)院, 廈門 361102)
固體氧化物燃料電池(solid oxide fuel cell, SOFC)的工作溫度在600~1 000 ℃之間,是一種很有前途的可持續(xù)能源轉(zhuǎn)換裝置,具有廣泛的應(yīng)用前景。該裝置的優(yōu)點(diǎn)是效率高、燃料靈活、污染物排放低,并且可以與熱電聯(lián)產(chǎn)利用SOFC產(chǎn)生的余熱實(shí)現(xiàn)能量的充分利用。然而較高的工作溫度也給該技術(shù)帶來嚴(yán)峻的挑戰(zhàn),如材料的選擇、熱管理、可靠性和耐久性等等。與溫度及其分布相關(guān)的熱管理因可以對電池完整性、電池電壓、電流密度分布和功率輸出等方面產(chǎn)生直接影響,是決定電池性能和堆棧行為的關(guān)鍵因素[1-3]。
SOFC是一種大時滯、強(qiáng)耦合和非線性的動態(tài)裝置,分析其動態(tài)特性行為需要精確的動力學(xué)模型。目前學(xué)界已在SOFC的非線性動力學(xué)建模方面取得許多進(jìn)展[4-6]。這些模型適合用于電堆結(jié)構(gòu)的設(shè)計和優(yōu)化,但對于控制器的設(shè)計來說卻過于復(fù)雜。因此為提高SOFC的壽命和性能,采取現(xiàn)代控制策略作為SOFC的電控器算法勢在必行。燃料利用率、堆棧終端電壓和堆棧內(nèi)溫度是SOFC系統(tǒng)控制的3個最重要變量,其中燃料利用率和堆棧終端電壓對負(fù)載的階躍變化的響應(yīng)速度較快,且具有較強(qiáng)的非線性,因此采用模型預(yù)測控制(model predictive control,MPC)對其進(jìn)行控制;而堆棧內(nèi)溫度對負(fù)載階躍變化的響應(yīng)速度緩慢,傳統(tǒng)的比例積分微分(proportion integration differentiation,PID)控制即可以滿足控制需求。MPC是近年來備受關(guān)注的一種先進(jìn)控制方法[7-9]。文獻(xiàn)[10]針對燃料流量和燃料利用率,在現(xiàn)有技術(shù)的約束條件下提出一種約束計算有效的非線性模型預(yù)測控制算法。文獻(xiàn)[11]針對SOFC系統(tǒng)實(shí)際操作中存在的問題,提出一種帶區(qū)域跟蹤的SOFC系統(tǒng)模糊模型預(yù)測控制方法,將模糊模型與預(yù)測控制相結(jié)合以達(dá)到控制要求。文獻(xiàn)[12]提出了高溫管式SOFC的動態(tài)準(zhǔn)二維模型,并結(jié)合噴射器和預(yù)轉(zhuǎn)化器模型,使用受限的多輸入多輸出(multi-input multi-output,MIMO)模型預(yù)測控制算法進(jìn)行閉環(huán)仿真,仿真結(jié)果證明該算法可實(shí)現(xiàn)有效的負(fù)荷跟蹤、可操作性的約束控制和抑制干擾。文獻(xiàn)[13]基于帶約束的收縮視界模型預(yù)測控制方法和基于虛擬參考反饋整定的數(shù)據(jù)驅(qū)動方法來識別控制器參數(shù),結(jié)果表明兩種控制方法均能在無超調(diào)或無超調(diào)的約束范圍內(nèi)提供魯棒的功率跟蹤性能。
為了滿足直流負(fù)載電壓的穩(wěn)定性及SOFC的耐用性和安全性的要求,本文在保證燃料利用率處于設(shè)定值的前提下提出一種基于支持向量機(jī)(support vector machine,SVM)的非線性模型預(yù)測控制算法,用于控制堆棧電壓。鑒于預(yù)測模型的預(yù)測精度和準(zhǔn)確度直接影響預(yù)測控制的效果,因此采用人工蜂群算法(artificial bee colony algorithm,ABC)優(yōu)化支持向量機(jī),并利用Lipschitz quotients 準(zhǔn)則來確定ABC- SVM預(yù)測模型的輸入階數(shù)以達(dá)到提高預(yù)測模型精度和減小計算量的目的。仿真實(shí)驗(yàn)也驗(yàn)證了本文所提方法的有效性和優(yōu)越性。
在本文的研究體系中,希望可以相對容易地對模型預(yù)測控制器進(jìn)行設(shè)計,因此對其進(jìn)行一些簡化和假設(shè)。根據(jù)本文設(shè)計要求對SOFC系統(tǒng)作出如下假設(shè):
1)堆內(nèi)充入的燃料和空氣均為理想氣體;
2)由于氣體分布的偏差很小,因此假設(shè)電池間的氣體分布均勻;
3)電池間沒有熱傳遞,每個電池都有相同的溫度和電流密度;
4)電堆和周圍環(huán)境之間沒有熱交換;
5)沿電極傳輸氣體的通道有一個固定的體積和較小的尺寸,因此在電堆中有一個恒定的壓力。
在以氫氣為燃料的燃料電池中,氫氣在陽極表面釋放電子,電子通過外部負(fù)載進(jìn)入電池陰極與氧結(jié)合產(chǎn)生氧離子,氧離子通過電解質(zhì)到達(dá)陽極與氫離子結(jié)合產(chǎn)生水。該過程如下。
陽極 H2+O2-→H2O+2e-
(1)
(2)
由于電極間存在電位差E從而發(fā)生氧化還原反應(yīng),電路中的離子流由Nernst方程表示
(3)
式中,E0為標(biāo)準(zhǔn)電動勢;R和F分別為通用氣體常數(shù)和法拉第常數(shù);T為堆棧內(nèi)平均溫度;pH2、pO2和pH2O分別為氫氣、氧氣和水蒸氣的分壓。
SOFC堆棧通常由多個單電池堆疊,則對于N0個串聯(lián)堆疊的燃料電池,其堆棧終端電壓(考慮電阻、活化、濃度損失)為
Vs=V0-ηOhm-ηcon-ηact
(4)
式中,Vs為堆棧的終端電壓;V0為堆棧的開路電壓;ηOhm、ηact和ηcon分別為電阻損失電壓、活化損失電壓和濃度損失電壓。
開路電壓、電阻損失電壓、活化損失電壓和濃度損失電壓的計算公式分別為
(5)
ηOhm=r(T)I
(6)
ηact=a+blgI
(7)
(8)
式中,I為堆棧電流;電池電阻r(T)為關(guān)于電池溫度T的函數(shù);IL為堆棧的極限電流;a和b分別為Tafel常數(shù)和斜率[14]。
各氣體分壓根據(jù)Padullés等[15]提出的方法計算。
(9)
(10)
(11)
富含氫元素的燃料(如天然氣等)從燃料存儲器經(jīng)過燃料閥進(jìn)入燃料處理器中,燃料處理器將富含氫元素的燃料轉(zhuǎn)換為富含氫氣的燃料和副產(chǎn)品。假設(shè)副產(chǎn)品與式(1)中的水蒸氣完全反應(yīng)。本文的燃料處理器模型采用一種簡單的一階傳遞函數(shù),取燃料轉(zhuǎn)換時間常數(shù)τf=5 s[1],則氫氣入口流速的計算如式(12)所示。
(12)
其中,根據(jù)式(1)、(2)可知?dú)錃夂脱鯕庀牡奈镔|(zhì)的量比為2∶1,但為保證氫氣完全反應(yīng)和調(diào)節(jié)溫度需要過量的氧氣,因此本文取氫氣和氧氣的流速比為1.145∶1[1]。
燃料利用率是SOFC重要的操作變量之一,燃料利用率的大小對電池堆棧有很大的影響。當(dāng)燃料利用率較高時(高于0.9),意味著堆棧內(nèi)的燃料濃度較低,對電堆會遭成不可逆的損害,從而大大削減電堆的使用壽命和性能;而當(dāng)燃料利用率低于0.7時,則會造成燃料的浪費(fèi)和終端電壓的異常升高,當(dāng)尾氣處理不當(dāng)時又會造成環(huán)境污染,嚴(yán)重時甚至可能發(fā)生爆炸,威脅到工作人員的生命安全[2]。
燃料利用率uc的定義為
(13)
文獻(xiàn)[1]表明堆棧穩(wěn)態(tài)下燃料利用率應(yīng)在0.7~0.9之間,本文取堆棧電流I=250 A,則穩(wěn)態(tài)時燃料利用率uc=0.83。
燃料利用率是SOFC的重要參數(shù)??紤]電堆的動態(tài)變化,當(dāng)電流發(fā)生微小變化時保持燃料利用率恒定,則恒燃料利用率下的進(jìn)口燃料流速的微小變化可以通過求解式(13)的全微分方程來表示。
(14)
燃料利用率控制策略如圖1所示。
圖1 恒燃料利用率控制策略Fig.1 Constant fuel utilization control strategy
2.2.1SVM理論
對于給定的訓(xùn)練樣本D={(x1,y1),(x2,y2),…,(xm,ym)},構(gòu)造非線性回歸函數(shù)
f(xk)=wTxk+b
式中,xk=(x1,x2,…,xn)為k時刻的樣本輸入;b為偏置;w為法向量。支持向量機(jī)回歸問題可轉(zhuǎn)化為[16]
(15)
設(shè)φ(x)為x映射后的特征向量,則其在特征空間對應(yīng)的模型為
根據(jù)Mercer條件,核函數(shù)κ(xk,xi)=φ(xk)T·φ(xi),則SVM預(yù)測模型輸出為
本文取核函數(shù)為高斯核函數(shù)(徑向基函數(shù))
式中,σ為高斯核函數(shù)的帶寬。
2.2.2SOFC預(yù)測控制
MPC是一種基于預(yù)測模型、滾動優(yōu)化和誤差校正的反饋控制策略。恒燃料利用率控制下SOFC電堆的ABC- SVM預(yù)測模型采用非線性自回歸滑動平均模型(NARX)[17],表達(dá)式為
(16)
式中,q(k)和I(k)分別為燃料流速和電堆電流在k時刻的輸入,U(k+d)為k時刻輸入對應(yīng)的輸出,n和m分別為輸入、輸出的階次,d為輸出延遲。本文采用ABC- SVM對非線性f(·)進(jìn)行估計,通過估計參數(shù)C和σ即可得到恒燃料利用率下電堆的非線性辨識模型為
(17)
s.t. 0 ①治愈:經(jīng)治療后,癥狀、體征均消失,情緒正常,心率、心電圖均正常,隨訪3個月無復(fù)發(fā)。②顯效:經(jīng)治療后,癥狀、體征明顯改善,情緒穩(wěn)定,心電圖大致正常。④無效:經(jīng)治療后,癥狀、體征、心率等無改善,或加重,心電圖無變化。 (18) 式中,N為訓(xùn)練數(shù)據(jù)的個數(shù)。本文選擇的預(yù)測模型結(jié)構(gòu)如式(16)所示,模型的結(jié)構(gòu)完全由m和n決定。在近幾十年的發(fā)展中,出現(xiàn)了許多選擇非線性模型階數(shù)的方法,本文采用He等[19]提出的Lipschitz quotients準(zhǔn)則,根據(jù)輸入輸出數(shù)據(jù)決定非線性系統(tǒng)的結(jié)構(gòu)。將式(16)結(jié)構(gòu)改寫為緊湊型 U=f(x1,x2,…,xk) 式中,k為輸入變量數(shù)目,k=n+2m+2。設(shè)x=[x1,x2,…,xk]T,根據(jù)輸入輸出對(x(i),U(i))定義Lipschitz quotients為 (19) 式中,|x(i)-x(j)|為輸入數(shù)據(jù)中兩個不同點(diǎn)間的距離;|U(i)-U(j)|為輸出數(shù)據(jù)中兩個不同點(diǎn)間的距離。式(19)可以擴(kuò)展為 (20) (21) 其中,ε=0.1即可滿足所有的情況。 SOFC是一種大時滯、多輸入且多輸出的非線性系統(tǒng)。根據(jù)Lipschitz quotients準(zhǔn)則,可以得到非線性自回歸滑動平均模型最佳輸入變量的階數(shù)m和n。動力學(xué)模型的輸入變量(q(k),I(k))、對應(yīng)的輸出電壓U(k+d)以及ABC- SVM預(yù)測模型的輸入變量則是根據(jù)動力學(xué)模型過去的輸入輸出和當(dāng)前的輸入組成,x(k)=[U(k+d-1),…,U(k+d-n),q(k),…,q(k-m),I(k),…,I(k-m)],可由ABC- SVM模型得到輸出估計量(k+d)。在預(yù)測控制中,為了實(shí)現(xiàn)對未來輸出的多步預(yù)測,本文根據(jù)式(16)、(17)建立p個串行的ABC- SVM模型,它們的原理相同,區(qū)別只是輸入量在時間上的相繼移位,從而達(dá)到p步預(yù)測的目的[7]。對于i步輸入變量中過去時刻的電壓值由i-1步的ABC- SVM預(yù)測模型的輸出電壓表示,因此p步預(yù)測輸出通過第p個ABC- SVM模型獲得,定義為 堆棧實(shí)際輸出電壓和ABC- SVM預(yù)測輸出電壓的誤差為 e(k+d)=U(k+d)-(k+d) (22) 通過由式(22)得到的誤差來修正ABC- SVM預(yù)測模型的輸出電壓(k+d+p),獲得修正后的預(yù)測輸出電壓為 Up(k+d+j)=(k+d+j)+e(k+d),j=1,2,…,p 本文設(shè)計的模型預(yù)測控制算法框圖如圖2所示,其中TDL為延時陣列。MPC控制器實(shí)際上是在一定范圍內(nèi)基于預(yù)定的輸入值對系統(tǒng)未來動態(tài)行為進(jìn)行預(yù)測,進(jìn)而求解在該預(yù)定輸入值下系統(tǒng)輸出的最小化成本函數(shù)的非線性優(yōu)化問題,因此成本函數(shù)的選擇關(guān)系到控制的效果。本文的成本函數(shù)包括預(yù)測輸出電壓和期望軌跡的二次函數(shù),同時包括防止燃料流速變化過大的二次函數(shù)。成本函數(shù)定義為 圖2 基于ABC- SVM模型的SOFC預(yù)測控制Fig.2 SOFC predictive control based on the ABC- SVM model s.t.q∈[0.6,1.2] 式中,yr為參考軌跡,q(k+j)為預(yù)測輸入,n0為預(yù)測步長,m0為控制步長。 參考軌跡是通過將系統(tǒng)設(shè)置值r和SOFC動力學(xué)模型輸出U進(jìn)行比較得來,其定義為 yr(k+d+i)=ciU(k+d)+(1-ci)r(i=1,2,…,p;0≤c≤1) 本文采用單步預(yù)測控制方法,因此為了獲得最優(yōu)的控制器輸出q(k+1),采用黃金分割算法,該算法結(jié)構(gòu)簡單,可靠性強(qiáng),是在實(shí)際中比較常用的一種在線優(yōu)化算法。具體計算流程如下。 1)設(shè)初始搜索區(qū)間為[a1,a2]=[qmin,qmax],定義搜索停止條件ξ,初始化k=1。初始搜索點(diǎn)為 a3=a1+0.382(a2-a1) a4=a1+0.618(a2-a1) 計算成本函數(shù)f3=F(a3)和f4=F(a4),并比較f3、f4。 2)若f3 a2←a4,a4←a3,f4←f3 同時取新點(diǎn)a3=a1+0.382(a2-a1),并計算成本函數(shù)f3=F(a3)。 3)若f3>f4,則舍棄a1點(diǎn),設(shè)新的搜索區(qū)間為[a3,a2]并作如下替換 a1←a3,a3←a4,f3←f4 同時取新點(diǎn)a4=a1+0.618(a2-a1),并計算成本函數(shù)f4=F(a4)。 4)每次縮短區(qū)間后均進(jìn)行一次判斷,若滿足 本文設(shè)計的模型預(yù)測控制器為基于ABC- SVM的預(yù)測模型,預(yù)測模型算法流程如下。 1)根據(jù)式(3)~(12)在Matlab/Simulink環(huán)境中建立SOFC動力學(xué)模型。 2)采集數(shù)據(jù)。設(shè)q∈[0.6 1.2] mol/s,I∈[200 300]A,輸入變量為均勻隨機(jī)信號,收集輸入、輸出數(shù)據(jù)。 4)選擇部分采集的數(shù)據(jù)計算出Lipschitz quotients,并確定SVM辨識模型的輸入、輸出階數(shù)n和m。 5)將采集的數(shù)據(jù)分為訓(xùn)練集和測試集,通過ABC算法優(yōu)化SVM參數(shù),并建立ABC- SVM預(yù)測模型。 基于文獻(xiàn)[6]和文獻(xiàn)[13]給出的非線性SOFC動力學(xué)模型進(jìn)行仿真,仿真平臺為個人計算機(jī),雙核2.60 GHz內(nèi)存,所有算法均采用Matlab/Simulink編程語言實(shí)現(xiàn)。 在數(shù)據(jù)采集階段,設(shè)q∈[0.6 1.2] mol/s,I∈[200 300] A,輸入變量均由均勻隨機(jī)序列產(chǎn)生,共采集t=5 000 s的數(shù)據(jù),將前3 000 s數(shù)據(jù)作為訓(xùn)練集,后2 000 s數(shù)據(jù)作為測試集,燃料流速、電堆電流和電堆電壓的采集數(shù)據(jù)分別如圖3~5所示。 圖3 燃料流速Fig.3 Fuel flow rate 圖4 電堆電流Fig.4 State current 根據(jù)采集的輸入、輸出數(shù)據(jù)計算出Lipschitz quotients,并以此確定ABC- SVM辨識模型的結(jié)構(gòu)。圖6顯示了不同階數(shù)的Lipschitz quotients,經(jīng)計算在點(diǎn)(4,2)處滿足停止條件(式(21)),因此確定非線性自回歸滑動平均模型的最佳階數(shù)為m=4和n=2。 圖5 電堆電壓Fig.5 State voltage 圖6 Lipschitz quotients曲線Fig.6 Lipschitz quotients curve 通過人工蜂群算法優(yōu)化SVM參數(shù)進(jìn)而得到堆棧的辨識模型,根據(jù)訓(xùn)練集訓(xùn)練ABC- SVM模型,得到SVM的最優(yōu)參數(shù)為C=485.207 9,σ=0.010 0。利用測試集測試所得到的ABC- SVM模型,測試結(jié)果如圖7所示。 圖7 動力學(xué)模型和ABC- SVM模型的輸出結(jié)果Fig.7 Output results of the kinetic model and the ABC- SVM model 由圖7可知,ABC- SVM模型可以準(zhǔn)確地預(yù)測堆棧的輸出值。為顯示所建模型的優(yōu)越性,在相同的數(shù)據(jù)、初始條件和約束條件下將本文模型與支持向量機(jī)、遺傳算法(genetic algorithm,GA)優(yōu)化支持向量機(jī)(GA- SVM)、粒子群算法(particle swarm optimization, PSO)優(yōu)化支持向量機(jī)(PSO- SVM)、誤差反向傳播(error back propagation, BP)神經(jīng)網(wǎng)絡(luò)和徑向基函數(shù)(radical basis function, RBF)神經(jīng)網(wǎng)絡(luò)這5種算法進(jìn)行了對比。將由式(18)計算的均方誤差(MSE)作為算法的性能指標(biāo),仿真結(jié)果如表1所示。 表1 預(yù)測模型對比Table 1 Comparison of prediction model 由表1可知,ABC- SVM模型在訓(xùn)練集和測試集上的均方誤差相較于SVM、GA- SVM、PSO- SVM、BP和RBF均要更小,表明本文所建的ABC- SVM模型有著更高的精度和準(zhǔn)確度,較符合預(yù)測控制對模型精度的設(shè)計需求。 假設(shè)堆棧在穩(wěn)態(tài)工作下的電流為250 A,堆棧的期望終端電壓為261 V。假設(shè)負(fù)載電流軌跡如下:在t=400 s時,電流發(fā)生階躍變化(由250 A階躍至280 A);在t=1 200 s時,電流發(fā)生階躍變化(由280 A階躍至265 A),電流軌跡如圖8所示。當(dāng)電流發(fā)生階躍變化時,相對應(yīng)的堆棧電壓也發(fā)生變化,如圖9所示。從圖9可以看出在恒燃料利用率控制下電堆電壓對電流的階躍變化有更好的抵抗效果(電壓變化量小以及達(dá)到穩(wěn)態(tài)的時間短)。如圖10所示,在恒燃料利用率控制下,當(dāng)干擾電流突變時可以控制燃料利用率穩(wěn)定在設(shè)定值;相同條件下,當(dāng)沒有恒燃料利用率控制器的控制作用時燃料利用率有較長一段時間超過0.9,這將會損害堆棧的使用壽命和性能,在實(shí)驗(yàn)中是不允許發(fā)生的。圖11給出了k+1步預(yù)測模型的預(yù)測輸出情況。為了進(jìn)一步達(dá)到控制電堆電壓的目的,在恒燃料利用率控制器作用下保持燃料利用率恒定,設(shè)計了一種基于支持向量機(jī)預(yù)測模型的預(yù)測控制器來控制堆棧電壓,如圖12所示。由圖12的放大圖可知當(dāng)電堆啟動和干擾電流突變時,恒燃料利用率控制下的堆棧預(yù)測控制電壓超調(diào)較小且調(diào)節(jié)時間更短。在保證燃料利用率恒定的情況下,本文提出的預(yù)測控制算法既可以保證燃料利用率處于恒定值,也確保了堆棧電壓能夠跟蹤電壓設(shè)定值,且具有一定的自適應(yīng)能力和魯棒性。 圖8 負(fù)載電流階躍Fig.8 Load current step 圖9 無MPC控制下的堆棧電壓Fig.9 Stack voltage without MPC control 圖10 燃料利用率Fig.10 Fuel utilization 圖11 k+1步預(yù)測模型輸出Fig.11 k+1 step prediction model output 圖12 MPC控制下的堆棧電壓Fig.12 Stack voltage under MPC control (1)在考慮電堆濃度損耗的前提下提出ABC- SVM模型來識別輸出電壓和燃料流速之間的非線性動態(tài)行為,仿真實(shí)驗(yàn)結(jié)果表明了與傳統(tǒng)的優(yōu)化算法相比,所提ABC- SVM模型在模擬SOFC非線性動態(tài)特性方面有較好的精度和準(zhǔn)確度。 (2)燃料利用率是重要的控制變量之一,本文通過設(shè)計一種簡單的控制回路,實(shí)現(xiàn)了對燃料利用率的恒定控制,并在此基礎(chǔ)上提出一種基于ABC- SVM模型的非線性模型預(yù)測控制器,通過對氫氣流速的控制實(shí)現(xiàn)了將堆棧電壓穩(wěn)定在設(shè)定值。仿真實(shí)驗(yàn)結(jié)果表明本文提出的控制策略既可以保持恒定的燃料利用率,又可以滿足堆棧輸出電壓的控制要求。3 仿真分析
4 結(jié)論