周 碩, 錢玉良, 王 丹
(上海電力大學(xué) 自動化工程學(xué)院, 上海 200090)
選擇性催化還原脫硝技術(shù)(Selective Catalyytic Reduction,SCR)是利用還原劑氨氣降低氮氧化物(NOx)含量的一種工藝,而還原反應(yīng)與機(jī)組負(fù)荷、含氧量、溫度和氨氣量等相關(guān)。目前,噴氨量控制方式有兩種:一種是固定氨氮摩爾比去除氮氧化物[1];另一種是固定濃度目標(biāo)值,利用實際值與目標(biāo)值的偏差,修正摩爾比,實現(xiàn)對濃度的控制。然而時變系統(tǒng)嚴(yán)重影響了傳統(tǒng)PID控制的控制性能[2]。管亞鑫[3]分析了SCR脫硝系統(tǒng)延時原因,將Smith預(yù)估控制器加入到控制系統(tǒng)中,解決了大時滯的問題。秦天牧等人[4]選擇多尺度核偏最小二乘法建立脫硝系統(tǒng)模型,并利用多向核偏最小二乘(Multiway Kernel Partial Least Squares,MKPLS)算法和預(yù)測控制方法對SCR脫硝系統(tǒng)進(jìn)行優(yōu)化控制,取得了良好的控制效果。卜平凡等人[5]研究并仿真了動態(tài)矩陣控制在控制系統(tǒng)中的有效性。
本文充分考慮了時變系統(tǒng)對預(yù)測控制的影響,基于滾動預(yù)測思想,在長短期記憶(Long Short-Term Memory,LSTM)神經(jīng)網(wǎng)絡(luò)輸入層疊加前一時刻輸出,深入學(xué)習(xí)數(shù)據(jù)的深層特征,持續(xù)在線更新參數(shù);以系統(tǒng)模型為基礎(chǔ),構(gòu)建噴氨量預(yù)測控制系統(tǒng);采用串級控制的系統(tǒng)架構(gòu),給出基于LSTM模型的SCR系統(tǒng)噴氨量串級預(yù)測控制方法,在LSTM預(yù)測控制系統(tǒng)中串聯(lián)一個PID控制器,內(nèi)環(huán)PID控制克服小擾動,外環(huán)預(yù)測控制快速及時跟蹤設(shè)定值。
LSTM網(wǎng)絡(luò)因其內(nèi)部擁有獨(dú)特的門結(jié)構(gòu)機(jī)制,能夠提取并共享長期時序數(shù)據(jù)的特征,并具有對NOx排放量的長期記憶功能。通過LSTM網(wǎng)絡(luò)構(gòu)建出口NOx預(yù)測模型,并引入滾動預(yù)測方式,實現(xiàn)了模型的自我微調(diào),提高了預(yù)測準(zhǔn)確率。
LSTM網(wǎng)絡(luò)是對循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的一種改良,利用其特殊結(jié)構(gòu)解決了因使用RNN而引起的梯度消失、爆炸等問題。對于應(yīng)用到LSTM的時序x={x1,x2,x3,…,xn},隱層記憶單元具有記憶前一時刻狀態(tài)的功能,并通過定向連接通道將該信息傳給當(dāng)前神經(jīng)元,輸入層與隱含層共同完成輸入特征的提取,并且通過權(quán)值與時間序列建立數(shù)學(xué)聯(lián)系,即
h(t)=φ(Ux(t)+Wh(t-1)+b)
(1)
式中:h(t),h(t-1)——隱含層在t時刻和t-1時刻的輸出;
φ(·)——激活函數(shù);
U——t時刻輸入層與隱含層間的權(quán)重;
W——(t-1)時刻與t時刻隱含層之間的權(quán)重;
x(t)——輸入層t時刻的輸入;
b——偏置量。
LSTM網(wǎng)絡(luò)通過門結(jié)構(gòu)增加或減少記憶單元的狀態(tài)信息,有效地利用長期時序數(shù)據(jù)。LSTM網(wǎng)絡(luò)隱含層內(nèi)部模塊結(jié)構(gòu)如圖1所示。隱含層增加自連接的存儲和門結(jié)構(gòu),使LSTM網(wǎng)絡(luò)具有讀取、寫入和判斷功能。
圖1 LSTM網(wǎng)絡(luò)隱含層內(nèi)部模塊結(jié)構(gòu)
i(t)=σ(Wxix(t-1)+Whih(t-1)+
Wcic(t-1)+bi)
(2)
Whch(t-1)+bc)
(3)
式中:σ(·)——Sigmoid激活函數(shù);
Wxi,Whi,Wci——輸入門的權(quán)重矩陣;
c(t-1)——t-1時刻記憶單元狀態(tài);
bi——輸入門偏置量;
tanh(·)——雙曲正切函數(shù);
Wxc,Whc——候選值的權(quán)重;
bc——候選值偏置量。
f(t)=σ(Wxfx(t-1)+Whfh(t-1)+
Wcfc(t-1)+bf)
(4)
(5)
式中:Wxf,Whf,Wcf——遺忘門的權(quán)重矩陣;
bf——遺忘門偏置量。
輸出門控制當(dāng)前神經(jīng)元的輸出信息o(t),并與單元狀態(tài)信息值c(t)共同決定細(xì)胞在下一時刻向隱含層傳遞的單元狀態(tài)信息h(t)。隱含層的輸出為一維列向量,經(jīng)線性回歸即得到處理后NOx濃度的預(yù)測值。輸出門更新計算如下
o(t)=σ(Wxox(t-1)+Whoh(t-1)+
Wcoc(t-1)+bo)
(6)
(7)
式中:Wxo,Who,Wco——輸出門的權(quán)重矩陣;
bo——輸出門偏置量。
LSTM網(wǎng)絡(luò)通過綜合靈活利用門結(jié)構(gòu),控制信息在隱含層內(nèi)外傳遞,使得梯度持續(xù)流動,并隨著時間遞進(jìn)動態(tài)修改循環(huán)權(quán)重,使得LSTM網(wǎng)絡(luò)能夠?qū)W習(xí)時間跨度較大的依賴關(guān)系[6-9]。
鍋爐燃燒是一個動態(tài)過程,導(dǎo)致脫硝系統(tǒng)具有不確定性,NOx排放的動態(tài)時序數(shù)據(jù)存儲在分布控制系統(tǒng)中,歷史條件影響著現(xiàn)狀[10]。基于歷史數(shù)據(jù)的NOx濃度預(yù)測實質(zhì)上是構(gòu)建一個模型來反映未來NOx濃度與歷史數(shù)據(jù)、時間和其他參數(shù)之間的映射關(guān)系。這種關(guān)系隨時間等因素而變化,因此需要提供相對完整的信息才能準(zhǔn)確地描述。根據(jù)系統(tǒng)特性,本文提出一種滾動預(yù)測的方法,其時序邏輯如圖2所示。該方法使網(wǎng)絡(luò)在實際應(yīng)用中能夠持續(xù)學(xué)習(xí),通過自我微調(diào)來改變性能,從而提高模型的預(yù)測質(zhì)量。
圖2 滾動預(yù)測的時序邏輯
滾動預(yù)測將網(wǎng)絡(luò)接收到的最新數(shù)據(jù)與上一時刻的預(yù)測結(jié)果共同形成訓(xùn)練數(shù)據(jù),重新訓(xùn)練權(quán)重,不斷尋找最佳權(quán)重。LSTM網(wǎng)絡(luò)從t2時刻起自動更新模型參數(shù),通過追蹤參數(shù)變化規(guī)律來提高預(yù)測質(zhì)量,可快速應(yīng)用于不同SCR系統(tǒng)和模型失配的情況。
基于SCR系統(tǒng)模型預(yù)測出口NOx濃度,預(yù)測控制將未來的參考信息納入控制問題,在每個時間步驟都進(jìn)行在線優(yōu)化,是將運(yùn)算結(jié)果驅(qū)動到參考值的最佳控制操作,改善了控制器的性能[11]。神經(jīng)網(wǎng)絡(luò)預(yù)測控制首先要全面感知系統(tǒng)的運(yùn)行狀態(tài),即
y(t)=g[y(t-1),…,y(t-n),x(t-d),…,
x(t-d-m)]+v(t)
(8)
式中:y(t)——t時刻系統(tǒng)的輸出;
n——?dú)v史時間步長;
v(t)——t時刻系統(tǒng)干擾;
d,m——時滯時間。
則t+k時刻,神經(jīng)網(wǎng)絡(luò)輸出預(yù)測值為
ym(t+k)=fNN[y(t),…,y(t-n+1);
x(t+k-d),…,
x(t+k-d-m);P]
(9)
式中:k——預(yù)測步長,k≥d;
P——模型參數(shù)。
以上文的LSTM網(wǎng)絡(luò)為基礎(chǔ),利用持續(xù)的新樣本更新預(yù)測模型,實現(xiàn)準(zhǔn)確預(yù)測未來時刻出口NOx濃度隨工況和操作變量的變化趨勢。
在控制系統(tǒng)中,模型的預(yù)測輸出與系統(tǒng)實際輸出存在偏差。為了防止僅依靠已建立模型的開環(huán)控制引起誤差,在計算k+1時刻優(yōu)化控制量前,將輸出實際值y(k)與預(yù)測值ym(k)之間的偏差,通過反饋校正補(bǔ)償?shù)絢時刻的預(yù)測輸出,使模型預(yù)測近似于對象輸出。反饋校正后的輸出值為
yp(k+1)=ym(k+1)+y(k)-ym(k)
(10)
滾動優(yōu)化是依據(jù)SCR脫硝系統(tǒng)目標(biāo)函數(shù)的約束要求,確定未來時刻的控制量{u(k+i-1),i=1,2,3,…,M},M為控制長度。通過最小化預(yù)測值與設(shè)定值之間的誤差,確保系統(tǒng)輸出NOx濃度保持在規(guī)定的范圍內(nèi)。通過解決以下問題來確定控制量
u(k+i-1)]2
(11)
s.t.u∈[umin,umax]
式中:mi,ni——誤差權(quán)重和控制權(quán)重;
yr——期望的輸出序列;
u(k)——k時刻氨氣流量控制量;
N——預(yù)測長度;
umax,umin——噴氨量范圍的上下限。
為了延長氨氣閥門的使用壽命,在目標(biāo)函數(shù)J(k)中對噴氨量的變化進(jìn)行約束,以確保在滿足目標(biāo)期望的同時減小控制量的變化,減少閥門調(diào)整次數(shù),對閥門起到一定程度的保護(hù)作用??蓪⒖刂崎L度M內(nèi)的每個控制變量視為需要由目標(biāo)函數(shù)計算的自由變量,因此控制長度越小,計算量越小。選擇控制長度的經(jīng)驗法則是將其設(shè)置為預(yù)測長度的10%~20%。預(yù)測長度的整定原則是使樣本涵蓋開環(huán)瞬態(tài)系統(tǒng)響應(yīng)。誤差權(quán)重確定原則是使SCR系統(tǒng)設(shè)定值與輸出值的誤差達(dá)到最小??刂茩?quán)重表示目標(biāo)函數(shù)受控制量變化的影響,用于約束控制增量。當(dāng)ni較小時,使系統(tǒng)響應(yīng)時間減小,控制增量變化較大。
基于上述LSTM建模方法和預(yù)測控制算法,本文給出了一種基于LSTM模型的SCR系統(tǒng)噴氨量串級預(yù)測控制方案。為處理非線性和不確定性,應(yīng)用LSTM辨識系統(tǒng)模型,利用滾動預(yù)測方式,實現(xiàn)對SCR系統(tǒng)出口NOx濃度狀態(tài)實時性的全面感知;以SCR系統(tǒng)模型為基礎(chǔ),建立基于LSTM的串級預(yù)測控制系統(tǒng),融合出口NOx濃度設(shè)定值,滾動優(yōu)化計算氨氣流量,并由PID副控制器計算噴氨量與反饋氨氣流量之間的控制量偏差,調(diào)節(jié)氨氣閥門開度。使用能得到快速響應(yīng)的PID控制器,有利于克服由小擾動引起副控制器對象的偏差幅值。雙層控制結(jié)構(gòu)把不同的控制性能要求交予不同層去處理,解決了抗干擾與魯棒性難以兼顧的問題[12]。具體控制策略如圖3所示。
圖3中,u(k)是預(yù)測控制滾動運(yùn)算得到的控制量,p(k)為氨氣流量反饋量,w(k)為實際噴氨量,y(k)為系統(tǒng)實際輸出。由副控制器給定輸入u(k)與氨氣流量反饋量p(k)構(gòu)成控制誤差為
e1(k)=u(k)-p(k)
(12)
利用PID控制系數(shù)Kp,Ti,Td與控制誤差的線性組合,計算氨氣控制量,并控制氨氣調(diào)節(jié)閥門??刂坡蔀?/p>
(13)
式中:T0——采樣間隔時間。
基于LSTM模型的串級預(yù)測控制既保留PID控制抗干擾能力強(qiáng)的特性,又利用預(yù)測控制實時預(yù)測和智能響應(yīng)的優(yōu)點;LSTM通過門結(jié)構(gòu)的配合使網(wǎng)絡(luò)具有記憶能力,能較好地跟蹤時間序列動態(tài)變化。利用LSTM滾動預(yù)測算法構(gòu)建出口NOx濃度預(yù)測模型,并將LSTM算法與預(yù)測控制相結(jié)合,提高算法精度,能夠快速適應(yīng)不確定系統(tǒng)?;贚STM模型的串級預(yù)測控制實現(xiàn)過程如下:
(1)設(shè)置控制和預(yù)測步長M,N;
(2)基于NOx濃度目標(biāo)值得到預(yù)期目標(biāo)序列,即參考軌跡yr(k+j)(j=k,k+1,k+2,…,Ny),Ny為時間序列范圍上限;
(3)以SCR系統(tǒng)對象的輸入輸出數(shù)據(jù)作為訓(xùn)練樣本對LSTM模型進(jìn)行訓(xùn)練;
(4)將某段時序數(shù)據(jù)作為輸入變量輸入到LSTM預(yù)測控制模型中,得到預(yù)測值ym(k+1)和實際輸出y(k+1);
(5)依據(jù)式(10),利用預(yù)測偏差在線修正模型預(yù)測,誤差序列為e2(k+j)=yr(k+j)-yp(k+j)(j=k,k+1,k+2,…,Ny);
(6)由式(11),根據(jù)目標(biāo)函數(shù)對控制量u迭代求解,得到作為PID副控制器輸入的最優(yōu)解u(k+j);
(7)由式(12)和式(13)計算控制誤差e1(k+j)和控制律w(k+j);
(8)設(shè)k=k+1,返回步驟1。
以電廠脫硝工藝的先驗知識為理論基礎(chǔ),選擇800組總煤量、總風(fēng)量、進(jìn)口含氧量、入口NOx濃度和前一時刻出口NOx濃度值的實際數(shù)據(jù)作為LSTM模型的輸入。為了減小輸入?yún)?shù)差異對模型性能及過擬合概率的影響,歸一化處理樣本數(shù)據(jù),將前400組數(shù)據(jù)作為訓(xùn)練集數(shù)據(jù),其余400組作為測試集數(shù)據(jù),驗證預(yù)測效果。
在訓(xùn)練過程中通過損失函數(shù)LSTM模型的輸出誤差,使用優(yōu)化算法尋找誤差最小值,更新模型權(quán)重,最終獲得收斂的LSTM模型。測試集數(shù)據(jù)通過確定好的收斂模型得到出口NOx濃度預(yù)測值,并利用損失函數(shù)調(diào)整更新模型參數(shù),以確保模型預(yù)測的準(zhǔn)確性。網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)由多次試驗得到,具體見表1。
表1 結(jié)構(gòu)參數(shù)
將測試集數(shù)據(jù)應(yīng)用到LSTM模型、徑向基函數(shù)(Radical Basis Function,RBF)模型和反向傳播(Back Propagation,BP)神經(jīng)網(wǎng)絡(luò)模型中,將預(yù)測結(jié)果與實際出口NOx濃度進(jìn)行比較。圖4為測試集數(shù)據(jù)在不同模型中的預(yù)測結(jié)果。
圖4 不同模型預(yù)測結(jié)果對比
采用均方根誤差(Root Mean Square Error,RMSE)和平均絕對誤差(Mean Absolute Percentage Error,MAPE)來驗證模型精度,仿真結(jié)果如表2所示。
表2 不同建模方法比較
從工程實踐來看,在用足夠多樣本建模時,MAPE小于10%,表明該模型可以反映對象的真實動態(tài)。通過表2可以發(fā)現(xiàn),LSTM模型的MAPE小于3%,RMSE小于1.5 mg/m3,能較好地表達(dá)模型映射關(guān)系,滾動預(yù)測明顯地減小了預(yù)測的偏差,增強(qiáng)了模型的適應(yīng)能力,網(wǎng)絡(luò)的預(yù)測精度滿足預(yù)測控制算法的設(shè)計要求。
根據(jù)國家規(guī)定的排放要求,設(shè)定SCR系統(tǒng)出口NOx濃度為50 mg/m3,分別采用PID串級控制以及基于LSTM模型的串級預(yù)測控制,實現(xiàn)對SCR系統(tǒng)噴氨量最優(yōu)化控制,仿真結(jié)果如圖5~圖7所示。
圖5 出口NOx濃度控制仿真結(jié)果
圖6 噴氨量控制仿真結(jié)果
圖7 機(jī)組變化導(dǎo)致模型失配對比的仿真結(jié)果
由圖5和圖6可知:基于LSTM模型的串級預(yù)測控制使SCR系統(tǒng)出口NOx濃度基本均低于設(shè)定目標(biāo)值,穩(wěn)定在45 mg/m3,出口濃度標(biāo)準(zhǔn)差為1.446 2 mg/m3,最長調(diào)節(jié)時間為8.6 min;PID串級控制的噴氨量曲線始終在基于LSTM模型的串級預(yù)測控制曲線之上,其出口NOx濃度標(biāo)準(zhǔn)差為3.478 2 mg/m3,平均噴氨量為98.425 3 kg/h,最長調(diào)節(jié)時間為18.8 min。相比之下,基于LSTM模型的串級預(yù)測控制不斷對噴氨量進(jìn)行優(yōu)化,及時跟蹤入口NOx濃度變化,控制精度更高,使噴氨量基本穩(wěn)定在95 kg/h,平均噴氨量為92.586 7 kg/h。
圖7表明,模型在200 min后處于不匹配的狀況,PID串級控制的出口NOx濃度超出國家要求,并持續(xù)失去控制作用,無法恢復(fù)到原有控制效果。基于LSTM模型的串級預(yù)測控制實現(xiàn)氨氣供需的實時匹配和智能響應(yīng),與PID串級控制相比,出口濃度在200 min后一段時間的波動較小,并將其穩(wěn)定在設(shè)定值,展示出了基于LSTM模型的串級預(yù)測控制在模型失配時優(yōu)越的控制性能。
本文將LSTM滾動預(yù)測應(yīng)用于SCR脫硝優(yōu)化系統(tǒng)中,建立了基于LSTM的SCR系統(tǒng)模型。采用LSTM預(yù)測控制策略,通過滾動計算找到最佳控制量。將LSTM預(yù)測控制與PID控制相結(jié)合,最終建立噴氨量的串級預(yù)測控制系統(tǒng)。仿真結(jié)果表明,基于滾動預(yù)測的LSTM算法建立的SCR系統(tǒng)模型精度要明顯好于RNN算法和BP算法。建立的基于LSTM模型的串級預(yù)測控制系統(tǒng)相比于傳統(tǒng)PID串級控制獲得較高的煙氣凈化率和較低的噴氨量,使出口NOx濃度接近設(shè)定目標(biāo)值,提高了SCR系統(tǒng)安全經(jīng)濟(jì)運(yùn)行的質(zhì)量水平。