果澤泉,蔣雅玲
(京能東風(fēng)〈十堰〉能源發(fā)展有限公司,湖北 十堰 442002)
隨著集中供熱體系更新,分戶計(jì)量采暖系統(tǒng)推廣,如今對(duì)熱網(wǎng)系統(tǒng)能源的高效利用提出更高要求[1],其中熱網(wǎng)負(fù)荷預(yù)測(cè)對(duì)熱網(wǎng)系統(tǒng)調(diào)度生產(chǎn)具有重要指導(dǎo)意義。為實(shí)現(xiàn)節(jié)能減排目標(biāo),建立智慧熱網(wǎng)平臺(tái)是大勢(shì)所趨。熱網(wǎng)負(fù)荷預(yù)測(cè)不僅有利于提高運(yùn)行的安全性、穩(wěn)定性與經(jīng)濟(jì)性,也是電廠調(diào)度的重要依據(jù)之一[2]。但運(yùn)行中熱網(wǎng)負(fù)荷變化復(fù)雜,利用傳統(tǒng)方式來(lái)確定負(fù)荷比較困難。目前短期負(fù)荷預(yù)測(cè)方法大致兩類:數(shù)理統(tǒng)計(jì)法和智能預(yù)測(cè)法[3]。數(shù)理統(tǒng)計(jì)法如時(shí)間序列法、回歸分析法等簡(jiǎn)單易實(shí)現(xiàn),但難以描述負(fù)荷的變化特點(diǎn)。智能預(yù)測(cè)法是利用機(jī)器學(xué)習(xí)的方法,其主要包括隨機(jī)森林、人工神經(jīng)網(wǎng)絡(luò)等算法,記憶和學(xué)習(xí)以往數(shù)據(jù),預(yù)測(cè)未來(lái)數(shù)據(jù)。
近年來(lái),深度學(xué)習(xí)在搜索技術(shù)、數(shù)據(jù)挖掘、自然語(yǔ)言處理等領(lǐng)域都取得了很多成果[4]。在負(fù)荷預(yù)測(cè)方面,例如:宗玲等[5]用人工神經(jīng)網(wǎng)絡(luò)對(duì)熱網(wǎng)負(fù)荷進(jìn)行短時(shí)預(yù)測(cè)。陳卓等[6]基于LSTM(長(zhǎng)短期記憶人工神經(jīng)網(wǎng)絡(luò))預(yù)測(cè)短期電力負(fù)荷。但對(duì)于熱網(wǎng)負(fù)荷的研究來(lái)說(shuō),以往很少采用LSTM深度學(xué)習(xí)算法來(lái)進(jìn)行研究,而本文則嘗試采用LSTM建立短期熱網(wǎng)負(fù)荷預(yù)測(cè)模型,基于此創(chuàng)建智慧供熱平臺(tái),以預(yù)測(cè)換熱站及熱源鍋爐負(fù)荷,重點(diǎn)結(jié)合氣象數(shù)據(jù)預(yù)測(cè)未來(lái)幾小時(shí)內(nèi)供熱負(fù)荷,進(jìn)而實(shí)現(xiàn)換熱站與鍋爐協(xié)同,形成閉環(huán)控制流程,實(shí)現(xiàn)對(duì)熱網(wǎng)系統(tǒng)的綜合調(diào)度。
LSTM的原理要從RNN循環(huán)神經(jīng)網(wǎng)絡(luò)[7]說(shuō)起。深度學(xué)習(xí)是模仿人類大腦的算法[8],RNN是深度學(xué)習(xí)的一種,其允許信息持久化。RNN循環(huán)展開(kāi)圖如圖1所示。A為神經(jīng)網(wǎng)絡(luò)內(nèi)部隱藏層,Xt為輸入數(shù)據(jù),ht為每個(gè)隱藏層的輸出結(jié)果。每個(gè)隱藏層有兩個(gè)輸入來(lái)源,分別為Xt和上一隱藏層的輸出量。RNN如同普通神經(jīng)網(wǎng)絡(luò)的復(fù)制,通過(guò)循環(huán)過(guò)程,信息從上一步傳至下一步。因此,RNN很適合用于處理時(shí)間序列數(shù)據(jù)。
圖1 RNN循環(huán)展開(kāi)示意圖
RNN能連接先前信息和當(dāng)前需要處理的問(wèn)題。但在很多情況下,RNN并不盡如人意,諸多因素影響算法發(fā)揮。例如,信息和預(yù)測(cè)位置的間隔過(guò)大,RNN會(huì)喪失學(xué)習(xí)相關(guān)信息的能力,這就是長(zhǎng)期依賴問(wèn)題[9]。理論上,優(yōu)化相關(guān)參數(shù),RNN可以處理間隔長(zhǎng)的問(wèn)題。但在實(shí)際中,會(huì)增加工作量,且發(fā)揮并不盡人意。Bengio等于1994年對(duì)此問(wèn)題進(jìn)行研究,發(fā)現(xiàn)一些使訓(xùn)練RNN很困難的根本原因[10]。
Long short term memory,簡(jiǎn)稱為L(zhǎng)STM,是RNN的一種。LSTM由Hochreiter和Schmidhuber于1997年提出[11],2013年被改進(jìn)[12]。相較RNN隱藏層,LSTM隱藏層更復(fù)雜[13],LSTM有“門(mén)”的結(jié)構(gòu),用于增加、減少信息,其包含一個(gè)σ神經(jīng)網(wǎng)絡(luò)層和一個(gè)按位的乘法操作。σ層輸出[0,1]的數(shù)值,描述每個(gè)門(mén)有多少量通過(guò)。0代表“不許任何量通過(guò)”,1代表“允許任意量通過(guò)”。如圖2所示,LSTM擁有三個(gè)門(mén)[14],分別是Input gate(輸入門(mén)),F(xiàn)orget gate(遺忘門(mén)),Output gate(輸出門(mén))。用公式表達(dá)為:
圖2 遺忘門(mén),輸入門(mén),輸出門(mén)示意圖
式(1)為遺忘門(mén)的計(jì)算,其中σ為激活函數(shù),將輸出量控制在[0,1]。xt為輸入量,ht-1為上一步的輸出量,這一層作為輸入量輸入。Wf,Wi及bf,bi,bc,b0為參數(shù)矩陣,隱藏層通過(guò)這些參數(shù)進(jìn)行運(yùn)算。式(2)、式(3)、式(4)為輸入門(mén)的計(jì)算。其中,it為輸入門(mén)的輸出,Ct表征細(xì)胞狀態(tài)。tanh層會(huì)創(chuàng)建新的向量?Ct,用于更新細(xì)胞狀態(tài)。式(4)對(duì)狀態(tài)進(jìn)行更新,將Ct-1更新為Ct,把舊狀態(tài)與ft相乘,丟棄掉不需要的信息,接著加上it·?Ct,從而創(chuàng)建新的候選值,由此決定狀態(tài)的更新度。式(5)、式(6)為輸出門(mén)的計(jì)算,0t為輸出門(mén)的輸出結(jié)果。細(xì)胞狀態(tài)通過(guò)tanh層計(jì)算,得到一個(gè)[-1,1]的值,并將其與輸出門(mén)結(jié)果0t相乘,最終輸出結(jié)果ht。經(jīng)過(guò)多次隱藏層計(jì)算,實(shí)現(xiàn)對(duì)運(yùn)算結(jié)果的保留和遺忘,以處理和學(xué)習(xí)連續(xù)性數(shù)據(jù),這就是LSTM深度學(xué)習(xí)的主要原理。
熱網(wǎng)數(shù)據(jù)取自湖北省某地級(jí)市,共五條管線供熱數(shù)據(jù)。選取熱網(wǎng)負(fù)荷及氣象數(shù)據(jù)較為完整的2022年2月12日至2022年3月3日二十日的負(fù)荷數(shù)據(jù)及氣象數(shù)據(jù),時(shí)間間隔為1小時(shí),共480條熱網(wǎng)數(shù)據(jù)。
實(shí)際數(shù)據(jù)中一般存在缺失值、離群值和噪聲,在建模前需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。確保數(shù)據(jù)計(jì)算和分析是準(zhǔn)確有意義的[15]。對(duì)數(shù)據(jù)進(jìn)行逐條檢測(cè),有缺失數(shù)據(jù)6條,缺少氣象數(shù)據(jù)中溫度、濕度、風(fēng)速、風(fēng)力四項(xiàng)。由于氣象數(shù)據(jù)具有連續(xù)性,則可采用前后數(shù)據(jù)的平均值來(lái)填補(bǔ)。其中,風(fēng)力一項(xiàng)為整數(shù)值,使用平均值替代會(huì)產(chǎn)生小數(shù),故采用上一小時(shí)風(fēng)力數(shù)據(jù)來(lái)填補(bǔ)。填補(bǔ)后,篩查數(shù)據(jù)范圍,去除異常值,保證數(shù)據(jù)有效性,提高模型學(xué)習(xí)的準(zhǔn)確度。對(duì)數(shù)據(jù)進(jìn)行如表1內(nèi)的篩查。
表1 數(shù)據(jù)范圍
本模型目標(biāo)是用預(yù)測(cè)時(shí)間點(diǎn)過(guò)去時(shí)間內(nèi)供熱負(fù)荷相關(guān)數(shù)據(jù),對(duì)未來(lái)6小時(shí)內(nèi)供熱負(fù)荷進(jìn)行預(yù)測(cè)。選定與供熱負(fù)荷有關(guān)的氣象數(shù)據(jù)和小時(shí)數(shù)作為輸入量,初次記憶時(shí)間為24小時(shí)。要實(shí)現(xiàn)預(yù)測(cè)時(shí)間為6小時(shí)的目標(biāo),需要對(duì)應(yīng)輸入量和輸出量的時(shí)序。數(shù)據(jù)重組劃分后,按照8∶2劃分深度學(xué)習(xí)的訓(xùn)練集和測(cè)試集,并對(duì)數(shù)據(jù)歸一化處理,使數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布[16]。數(shù)據(jù)歸一化可以加快模型訓(xùn)練速度,同時(shí)提高預(yù)測(cè)準(zhǔn)確度。數(shù)據(jù)歸一化公式為:
其中Xnorm、Xmean、Xstd、X分別為歸一化后的數(shù)據(jù)平均值、訓(xùn)練集數(shù)據(jù)標(biāo)準(zhǔn)差、原始數(shù)據(jù)。利用式(7)對(duì)測(cè)試集數(shù)據(jù)標(biāo)準(zhǔn)化需要使用訓(xùn)練集的均值和標(biāo)準(zhǔn)差,以避免模型在學(xué)習(xí)之前提前接觸到測(cè)試集的信息。
針對(duì)本文的神經(jīng)網(wǎng)絡(luò)模型,本文使用深度學(xué)習(xí)平臺(tái)Tensorflow[17]與python計(jì)算機(jī)語(yǔ)言進(jìn)行模型訓(xùn)練與測(cè)試。首次建模,設(shè)定一層LSTM隱藏層,一層輸出層的Dense層,輸出量維度為6,loss設(shè)為mse(均方誤差),Dropout設(shè)為0.1,防止過(guò)擬合,迭代次數(shù)為100。求解器采用Adam,Adam由Kingma和Lei Ba于2014年提出,其結(jié)合Adagrad和Rmspop的優(yōu)點(diǎn)[18],有著實(shí)現(xiàn)簡(jiǎn)單、計(jì)算高效、能自動(dòng)調(diào)整學(xué)習(xí)率等優(yōu)點(diǎn)[19]。
對(duì)測(cè)試集、訓(xùn)練集loss值繪圖,如圖3所示。模型訓(xùn)練集、測(cè)試集loss隨迭代減小,直至收斂趨于零。向模型輸入測(cè)試集驗(yàn)證,得到預(yù)測(cè)值。對(duì)預(yù)測(cè)值反歸一化處理,得到實(shí)際預(yù)測(cè)值。與實(shí)際值對(duì)比,擬合優(yōu)度如表2所示,繪制對(duì)比圖如圖3所示。
圖3 訓(xùn)練集,測(cè)試集損失
表2 R2(擬合優(yōu)度)表
圖4 預(yù)測(cè)值與實(shí)際值對(duì)比(1時(shí),6時(shí))
對(duì)于初次建模結(jié)果,R2低,擬合程度差,需要對(duì)模型進(jìn)行調(diào)參,使模型具有更好的泛用性。
為進(jìn)一步優(yōu)化模型,需要調(diào)整模型參數(shù)。首先對(duì)模型迭代計(jì)算,查看運(yùn)算結(jié)果,并對(duì)不同模型設(shè)立一個(gè)共同誤差評(píng)價(jià)指標(biāo),確立最佳模型。將模型定義為函數(shù)進(jìn)行迭代,修改學(xué)習(xí)記憶小時(shí)數(shù)、LSTM內(nèi)部隱藏層數(shù)目、輸出層維度Dense、神經(jīng)元個(gè)數(shù)等參數(shù),設(shè)定迭代值,得到多個(gè)的預(yù)測(cè)模型(見(jiàn)表3)。
表3 不同模型迭代值
如表3所示,修改參數(shù)尋找最佳模型,迭代次數(shù)3×3×3×2=54次,生成54個(gè)模型。選定測(cè)試集平均絕對(duì)百分比誤差mape為評(píng)價(jià)指標(biāo)確定最佳模型,mape為能夠衡量預(yù)測(cè)準(zhǔn)確性的統(tǒng)計(jì)指標(biāo),是百分比值。不同模型結(jié)果如表4所示。
表4 不同模型預(yù)測(cè)誤差
其中綠色標(biāo)記為原模型,黃色標(biāo)記為優(yōu)秀模型(mape<25),計(jì)算優(yōu)秀模型R2,結(jié)果如表5所示。
表5 不同模型R2
模型(32)對(duì)比其他模型,明顯擬合程度好。新舊模型擬合程度對(duì)比如表6所示。
表6 R2對(duì)比
新模型擬合效果明顯優(yōu)于原模型,將新模型預(yù)測(cè)結(jié)果與負(fù)荷實(shí)際值進(jìn)行可視化對(duì)比,如圖5所示。
圖5 預(yù)測(cè)值與實(shí)際值對(duì)比
為了解特征對(duì)供熱負(fù)荷的影響,需要對(duì)特征進(jìn)行重要性分析。LSTM隱藏層內(nèi)部算法復(fù)雜,無(wú)法像有些機(jī)器學(xué)習(xí)算法一樣直接查看特征重要性[20],所以要定義特征重要性[21]。對(duì)于已訓(xùn)練的模型,可在不改變參數(shù)和模型的情況下去除測(cè)試集內(nèi)某一項(xiàng)特征或在某一項(xiàng)特征中添加噪聲的方式來(lái)重新預(yù)測(cè),然后用相同的模型誤差評(píng)價(jià)指標(biāo)來(lái)衡量?jī)纱晤A(yù)測(cè)的差距。若去掉的是重要特征,模型精度會(huì)明顯下降,若是不重要特征,模型精度則不會(huì)明顯下降。由此可對(duì)特征重要性進(jìn)行排名,模型評(píng)判指標(biāo)選擇平均絕對(duì)百分比誤差mape。為不改變?cè)P徒Y(jié)構(gòu),將要測(cè)試的特征設(shè)為平均值來(lái)去除這一項(xiàng)的影響,即將歸一化處理的測(cè)試集特征數(shù)據(jù)置為0。利用原模型重新預(yù)測(cè)結(jié)果如表7所示。并進(jìn)行可視化處理,以此得到直觀的特征重要性排名如圖6所示。
表7 不同特征去除后平均絕對(duì)百分比誤差對(duì)比
圖6 特征重要性排名
由此得出,風(fēng)速、溫度、風(fēng)力對(duì)供熱負(fù)荷的影響大;小時(shí)數(shù)、濕度對(duì)供熱負(fù)荷的影響小,太陽(yáng)輻射對(duì)供熱負(fù)荷基本無(wú)影響。天氣預(yù)報(bào)中數(shù)值最準(zhǔn)確的是溫度一項(xiàng),觀察溫度與供熱負(fù)荷關(guān)系圖,如圖7所示,雖然一天內(nèi)供熱負(fù)荷有波動(dòng),但隨著溫度升高,供熱負(fù)荷整體有明顯下降趨勢(shì)。因此,有針對(duì)性地結(jié)合溫度數(shù)據(jù)能有效提高模型預(yù)測(cè)精度。
圖7 供熱負(fù)荷隨溫度變化曲線
基于LSTM預(yù)測(cè)模型,參考供熱管網(wǎng)運(yùn)行和氣象的實(shí)際情況,結(jié)合智慧熱網(wǎng)平臺(tái)實(shí)時(shí)生成的負(fù)荷和氣象數(shù)據(jù),建立如圖8所示的自學(xué)習(xí)的全網(wǎng)熱負(fù)荷預(yù)測(cè)系統(tǒng),可以看到,預(yù)測(cè)值能在一定程度上貼合實(shí)際值,隨著實(shí)際運(yùn)行數(shù)據(jù)的增加,預(yù)測(cè)精度能夠進(jìn)一步提升。該系統(tǒng)還可顯示過(guò)往供熱負(fù)荷、氣象數(shù)據(jù)并結(jié)合天氣預(yù)報(bào)數(shù)據(jù)來(lái)預(yù)測(cè)未來(lái)供熱負(fù)荷,并生成曲線直觀顯示。其能為供熱系統(tǒng)運(yùn)行、故障處理以及過(guò)往數(shù)據(jù)查詢提供依據(jù)。并為節(jié)能減排、提高熱網(wǎng)經(jīng)濟(jì)性等提供優(yōu)化方向。
圖8 全網(wǎng)熱負(fù)荷預(yù)測(cè)系統(tǒng)界面
本研究基于LSTM長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò),結(jié)合供熱負(fù)荷及氣象數(shù)據(jù),編寫(xiě)了熱網(wǎng)時(shí)序供熱負(fù)荷預(yù)測(cè)程序,通過(guò)進(jìn)一步調(diào)節(jié)參數(shù)優(yōu)化模型,減小預(yù)測(cè)誤差,完善預(yù)測(cè)程序,并佐以對(duì)數(shù)據(jù)各特征按重要性排名的方式來(lái)分析模型。主要結(jié)論如下:
(1)收集整合智慧熱網(wǎng)平臺(tái)數(shù)據(jù),建立初步預(yù)測(cè)模型,迭代優(yōu)化預(yù)測(cè)模型。通過(guò)調(diào)參進(jìn)一步提高模型精度。
(2)對(duì)比預(yù)測(cè)值與實(shí)際值,預(yù)測(cè)數(shù)據(jù)反映供熱負(fù)荷趨勢(shì),雖有一定誤差,但在可接受范圍內(nèi)。隨著平臺(tái)數(shù)據(jù)增加,預(yù)測(cè)結(jié)果會(huì)更準(zhǔn)確。
(3)按重要性對(duì)數(shù)據(jù)各項(xiàng)特征進(jìn)行分析并排名。其中溫度、風(fēng)力、風(fēng)速為最重要特征,其他特征與供熱負(fù)荷關(guān)聯(lián)不大。了解特征重要性后,智慧供熱平臺(tái)可結(jié)合未來(lái)氣象溫度更具針對(duì)性地優(yōu)化供熱策略。