黃劉松,儲岳中,張 飛,2b,周明琴,吳慧林
(1.馬鞍山師范高等專科學校 軟件與互聯(lián)網(wǎng)學院,安徽 馬鞍山 243041; 2.安徽工業(yè)大學 a.計算機科學與技術(shù)學院 b.信息化處,安徽 馬鞍山 243032;3.國電南京自動化股份有限公司 信息技術(shù)事業(yè)部,南京 211100)
電廠發(fā)電機組的能耗分析一直都是電力企業(yè)節(jié)能減排的重要研究部分,是電力大數(shù)據(jù)背景下的研究熱點。理論研究指出,根據(jù)歷史數(shù)據(jù)進行數(shù)據(jù)分析和挖掘,判斷出影響煤耗指標較大的維度,然后運用機器學習算法對傳統(tǒng)依賴經(jīng)驗判斷能耗的方法進行改進是必然的趨勢。
在德國、英國等工業(yè)大國,具有非常超前的環(huán)保理念,這些國家正在將機器學習、深度學習運用在電廠能耗分析等傳統(tǒng)業(yè)務當中;國內(nèi)對此還處于探索研究的階段,將機器學習、深度學習運用到發(fā)電廠現(xiàn)場的能耗分析還僅僅在國內(nèi)幾個大型發(fā)電廠自己的信息化管理公司和科學研究機構(gòu)。耗差分析的方法有很多,較為常見的分析方法包括應用偏增量法、基于離散熱力學參數(shù)指標數(shù)據(jù)的BP神經(jīng)網(wǎng)絡等。
本文利用基于時序歷史能耗數(shù)據(jù)的BP神經(jīng)網(wǎng)絡構(gòu)建出負荷、環(huán)境溫度、主蒸汽溫度、主蒸汽壓力等輸入數(shù)據(jù)和短時發(fā)電能耗輸出之間的映射關(guān)系模型,經(jīng)過反復試驗最后選定10個計算發(fā)電能耗所需要的熱力參數(shù),同時加入連續(xù)時刻的5個歷史煤耗值作為輸入?yún)?shù),將發(fā)電煤耗作為輸出參數(shù),訓練神經(jīng)網(wǎng)絡模型。通過實驗表明,相對于離散的熱力學參數(shù)指標,基于時序數(shù)據(jù)的輸入?yún)?shù)在具有21個隱層節(jié)點數(shù)的BP神經(jīng)網(wǎng)絡模型上能夠在線仿真出較高精度的供電能耗。
數(shù)據(jù)預處理是進行數(shù)據(jù)模型建立、分析、檢驗、訓練的前提條件。數(shù)據(jù)預處理一般分為以下幾個過程:數(shù)據(jù)質(zhì)量探索、數(shù)據(jù)清洗、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)規(guī)約。
本文數(shù)據(jù)取自某火電廠最近三個月的連續(xù)運行數(shù)據(jù),理論上BP網(wǎng)絡的輸入?yún)?shù)可以從與熱力系統(tǒng)相關(guān)的參數(shù)中任意選取,但考慮最終構(gòu)建的BP神經(jīng)網(wǎng)絡的復雜程度以及電廠中熱力系統(tǒng)相關(guān)設(shè)備的工作原理,發(fā)現(xiàn)火電廠的不同參數(shù)之間存在某種耦合關(guān)系,最終選定網(wǎng)絡模型輸入?yún)?shù),主要包括如下參數(shù):負荷、環(huán)境溫度、主蒸汽溫度、主蒸汽壓力、排煙溫度、氧量、再熱蒸汽溫度、給水溫度、背壓、能耗。采集周期為60 s。
由于電廠生產(chǎn)運行過程中各輸入?yún)?shù)的傳感器一般都是在高溫高壓的環(huán)境下工作,一旦發(fā)生故障、損壞、或者傳輸過程中發(fā)生網(wǎng)絡抖動、網(wǎng)絡中斷會造成數(shù)據(jù)的跳變、丟失從而導致煤耗在線計算模型出錯甚至系統(tǒng)崩潰。因此對于采集數(shù)據(jù)需要進行預處理,數(shù)據(jù)清洗流程如圖1所示。
圖1 數(shù)據(jù)清洗流程
在針對電廠熱力系統(tǒng)相關(guān)熱力學參數(shù)的數(shù)據(jù)預處理過程中,需要清洗的臟數(shù)據(jù)主要包括:缺失值、異常值、不一致值、重復數(shù)據(jù)及含有特殊符號的數(shù)據(jù)。異常數(shù)據(jù)判別標準如表1所示。
表1 異常數(shù)據(jù)判別標準
在針對電廠熱力系統(tǒng)相關(guān)熱力學參數(shù)的數(shù)據(jù)預處理過程中,清洗臟數(shù)據(jù)的手段主要包括:歷史同期數(shù)據(jù),最近時間點數(shù)據(jù)替換、數(shù)據(jù)線性插值、同一位置傳感器數(shù)據(jù)替換、刪除重復數(shù)據(jù)及含有特殊符號的數(shù)據(jù)。
BP(Back Propagation,BP)又稱反向傳播神經(jīng)網(wǎng)絡,其基本原理是經(jīng)過樣本數(shù)據(jù)的訓練,通過不斷修正網(wǎng)絡的權(quán)值和閾值,從而使得誤差函數(shù)沿著負梯度方向下降,最終達到逼近期望輸出的過程。以三層BP神經(jīng)網(wǎng)絡為例,其網(wǎng)絡結(jié)構(gòu)包括輸入層、隱含層1、隱含層2、輸出層。BP神經(jīng)網(wǎng)絡基本結(jié)構(gòu)如圖2所示。
圖2 BP神經(jīng)網(wǎng)絡基本結(jié)構(gòu)
激活函數(shù)的作用是用來模擬神經(jīng)元的非線性特性。本文采用Relu作為激活函數(shù),函數(shù)表達式為:
(1)
系統(tǒng)平均誤差為(假設(shè)有個樣本):
(2)
式中:為第個輸入模式第個輸出層節(jié)點的期望輸出;為相應的計算輸出。
權(quán)重更新優(yōu)化器選擇Adam優(yōu)化器,其計算公式如下:
=·-1+(1-)·()
(3)
=·-1+(1-)·()·()
(4)
(5)
(6)
(7)
式中:為學習率;()為時刻對參數(shù)的損失梯度;(10)為防止分母為0的小數(shù);(0.9)、(0.999)控制衰減速度。
運用BP神經(jīng)網(wǎng)絡對電廠發(fā)電機組發(fā)電能耗的短時預測算法流程可分為如下步驟:首先,通過ETL抽取工具將電廠生產(chǎn)過程中產(chǎn)生的時序數(shù)據(jù)進行抽取,并按照數(shù)據(jù)預處理的要求,對數(shù)據(jù)進行篩選清洗,完成數(shù)據(jù)歸一化操作;然后將預處理后的熱力學指標和時序歷史能耗數(shù)據(jù)作為網(wǎng)絡的輸入?yún)?shù),發(fā)電能耗作為網(wǎng)絡輸出參數(shù),進行數(shù)據(jù)的正向計算和反向傳播,最終完成網(wǎng)絡的訓練;最后輸入測試數(shù)據(jù)進行煤耗預測分析。BP神經(jīng)網(wǎng)絡算法基本流程如圖3所示。
圖3 BP神經(jīng)網(wǎng)絡算法基本流程
對數(shù)據(jù)分析處理的機器環(huán)境:8核2.9 GHZ AMD銳龍4800H處理器,16 GB內(nèi)存,Windows 10(64位)平臺Python編程語言。由于BP神經(jīng)網(wǎng)絡算法的隱含層節(jié)點數(shù)對于網(wǎng)絡性能的影響非常大,在實際應用過程中當網(wǎng)絡結(jié)構(gòu)選擇過于簡單、隱含層節(jié)點數(shù)過少時,由于學習容量有限,此時建立起的網(wǎng)絡不足以反映樣本中蘊藏的內(nèi)部關(guān)系和規(guī)律;當網(wǎng)絡結(jié)構(gòu)選擇過于復雜,隱含層節(jié)點數(shù)過多時,會導致網(wǎng)絡訓練效率低,增加訓練時間而且可能出現(xiàn)過擬合現(xiàn)象,造成網(wǎng)絡容錯率下降,降低整個網(wǎng)絡的泛化能力。根據(jù)經(jīng)驗:一般BP神經(jīng)網(wǎng)絡的隱層節(jié)點數(shù)不宜超過25個;隱含層節(jié)點數(shù)有經(jīng)驗公式:=2+1,式中,為輸入層神經(jīng)元的數(shù)目;=++,式中:為輸出神經(jīng)元數(shù);為輸入神經(jīng)元數(shù);為1 ~10之間的常數(shù)。
本文選同一批樣本數(shù)據(jù)輸入層節(jié)點數(shù)15個,該輸入?yún)?shù)除去10個基本的熱力學參數(shù),還包含前五分鐘的煤耗參數(shù)5個;同時選用17層隱層節(jié)點數(shù)、21層隱層節(jié)點數(shù)、25層隱層節(jié)點數(shù)進行訓練,將不同情況下的文件參數(shù)保存,最后選取2 000組樣本數(shù)據(jù)進行仿真實驗,得出當輸入節(jié)點參數(shù)個數(shù)相同時,隱含層節(jié)點數(shù)的不同對仿真結(jié)果有極大的影響,不同隱含層對于預測結(jié)果統(tǒng)計表如表2所示。對仿真結(jié)果進行分析,隨著隱含層節(jié)點數(shù)變多,網(wǎng)絡變得復雜,網(wǎng)絡的表達能力提高,但同時也會存在過擬合問題。為了保證仿真結(jié)果具有較高精度(通過神經(jīng)網(wǎng)絡預測的能耗值和后期觀測能耗值的差值誤差小)并且具有較強的實用性,避免過擬合,基于上文神經(jīng)網(wǎng)絡隱層節(jié)點的選取經(jīng)驗值方法并結(jié)合數(shù)據(jù)的仿真誤差,最后確定本文基于時序能耗數(shù)據(jù)的BP神經(jīng)網(wǎng)絡的最佳隱層節(jié)點個數(shù)為21。
表2 不同隱含層對于預測結(jié)果統(tǒng)計表
為了進一步說明加入本文數(shù)據(jù)預處理方法(引入對原有數(shù)據(jù)進行數(shù)據(jù)預處理模塊解決了缺失值、異常值、重復值等異常數(shù)據(jù)情況)和時序歷史能耗數(shù)據(jù)(3分鐘、5分鐘歷史能耗數(shù)據(jù))后的BP算法相比較于原有未進行數(shù)據(jù)預處理和時序歷史能耗數(shù)據(jù)的BP算法(即0分鐘歷史能耗數(shù)據(jù))有更好的識別率和準確性。本文對以上三種情況進行對比試驗,實驗內(nèi)容為采用包含0、3、5分鐘歷史能耗數(shù)據(jù)作為網(wǎng)絡輸入,包含21層隱含節(jié)點的BP算法對測試數(shù)據(jù)進行能耗預測對比分析,不同輸入層(歷史能耗)對于預測結(jié)果統(tǒng)計表如表3所示。
表3 不同輸入層(歷史能耗)對于預測結(jié)果統(tǒng)計表
本文針對電廠中機組的能耗問題進行了分析研究,通過電廠生產(chǎn)過程中各類傳感器采集到負荷、環(huán)境溫度、主蒸汽溫度、主蒸汽壓力、排煙溫度、氧量、再熱蒸汽溫度、給水溫度、背壓等熱力學參數(shù)并加入時序歷史能耗數(shù)據(jù),運用BP神經(jīng)網(wǎng)絡算法進行建模,計算預測短期供電能耗。該模型具有計算精度高、速度快等特點,能夠進行短期能耗的在線仿真預測。但是仍有兩點不足:第一,由于影響電廠能耗的因素非常多,例如燃煤發(fā)電機組負荷率、環(huán)境溫度和燃用煤種、品質(zhì)等,因此在數(shù)據(jù)預處理過程中采用歷史同期數(shù)據(jù)來進行異常值替換的過程中會造成一定誤差,這在一定程度上對于算法準確率會有影響;第二,BP神經(jīng)網(wǎng)絡的隱含層選擇更多依賴于經(jīng)驗值,至今尚無一種統(tǒng)一而完整的理論指導,網(wǎng)絡結(jié)構(gòu)直接影響網(wǎng)絡性能。因此,在實際應用中如何選擇合適的網(wǎng)絡結(jié)構(gòu)就變成一個重要的問題。