李 琦,韓 穎
(內蒙古科技大學 信息工程學院,包頭 014010)
針對短期熱負荷預測,學者們分別提出了多種不同類型的神經網絡預測模型。文獻[1]給出一種小波神經網絡的熱負荷預測方法;文獻[2]做了基于Elman型神經網絡的集中供熱系統熱負荷預測;文獻[3]開展了神經網絡遺傳算法在供熱負荷預測中的應用研究。但考慮影響熱負荷變化的天氣因素[4],將天氣預報加進神經網絡模型的研究卻很少。當天氣驟變,供熱量過低不能滿足人們需求,供熱量高于人們舒適度的要求又將造成能源浪費。因而,天氣因素的獲取,尤其是實時天氣預報的獲取,將大大提高熱負荷預測的準確性和及時性[5]。
API即應用程序編程接口,是指軟件或網站為第三方開發人員提供的接口,利用這個接口,可以僅靠幾條簡單的指令就能訪問網站里所需要的數據,而不必詳盡地了解其內部機理[6]。
獲取數據的具體步驟如下:
1)在Matlab軟件平臺中編寫應用程序,訪問中國天氣網的 API接口:http://www.Weather.com.cn/data/sk/101230101.html,獲得實時天氣信息和未來時刻天氣預報。
2)通過API接口從網絡資源中得到的文本是城市天氣信息的URL。URL(uniform resource locator)即統一資源定位器,指的是Internet文件在網上的地址,好比一個街道在城市地理上的地址。URL使用數字和字母按一定順序排列以確定一個地址。
3)執行URL,得到json格式的返回文本。json是一種輕量級的數據交換格式,采用完全獨立于語言的文本格式。json可以將javascript對象中表示的一組數據轉換為字符串,并在函數之間輕松地傳遞這個字符串,或者在異步應用程序中將字符串從Web客戶機傳遞給服務器端程序。
json形式的數據格式示例:
{"Name1":"aa","Name2":"123"}
冒號前面是屬性名,冒號后面是該屬性的值,多個屬性用逗號隔開。
4)在API返回的諸多json參數中采用特殊符號查找的方法提取有用信息,即實時溫度值和未來時刻的預測溫度。
本次實驗通過API接口來獲取實時天氣和預報天氣,開發平臺采用Matlab軟件,將天氣預報的獲取和神經網絡模型的建立都結合在Matlab程序中,大大提高了由數據采集到熱負荷預測的方便性和可操作性。
BP神經網絡有收斂速度慢和容易陷入極小值的缺點,為解決此問題,在網絡訓練過程中采用動態調節學習率以及在調整權值的過程中加入動量項的方法[7]。
BP神經網絡是一種多層前饋神經網絡,一般具有3層或3層以上的神經元結構,包括輸入層、隱藏層和輸出層。上下層之間實現全連接,同一層神經元之間無連接,輸入信息由輸入層到隱藏層,并傳向輸出層,每一層的神經元狀態只影響下一層神經元的狀態。由一層節點輸出傳送到另一層節點時,通過調整網絡權值ωij來達到增強或減弱這些輸出的作用。除輸入層外,隱藏層和輸出層節點的輸入是前一層節點輸出的加權和。BP神經網絡的結構如圖1所示。

圖1 BP神經網絡結構圖Fig.1 Structure of BP neural network
圖中,BP神經網絡有n個輸入節點,j個輸出節點,隱含層有k個神經元。x1,x2,…xn為網絡的實際輸入,y1,y2,…yj為網絡的實際輸出,從 xn到 Ri的連接權值為ωni,從Ri到yj的連接權值為ωij,隱含層傳遞函數為sigmoid函數,輸出層傳遞函數為線性函數。BP學習算法的基本原理是梯度下降法,中心思想是調整權值使網絡總誤差最小。
算法具體步驟如下:
1)神經網絡的構建和初始化
2)提供訓練集,

3)按下列公式計算實際輸出:定義隱層函數為f1(·),輸出層函數為 f2(·)

4)計算期望值與實際輸出的誤差,定義目標函數:

6)調節學習率,修正權值,并且在修正權值中加入動量項:

7)判斷是否滿足要求,滿足退出,不滿足返回步驟3循環執行,直到誤差滿足要求為止。
本實驗以BP神經網絡作為預測模型,考慮到影響熱負荷變化的最重要因素,即外界溫度的高低,因而選取神經網絡的輸入變量為熱負荷值、實時天氣溫度和未來時刻的天氣預報3方面;目標是預測一天的熱負荷變化,因而將預測日24 h,每間隔一小時對應的熱負荷值作為神經網絡的輸出量。
實驗中采用的熱負荷值來源于包鋼技校2013年12月的數據,包鋼技校的供熱系統有自動監控界面,可獲取熱負荷值,采樣間隔為10 min,通過API接口獲取的實時天氣和未來天氣每小時更新一次,由于神經網絡模型2個輸入變量的采樣數據時間間隔不統一,因此需要對數據進行整合處理,鑒于集中供熱系統數據變化緩慢,所以以1 h的時間間隔為準。
集中供熱系統的熱負荷是受多種因素影響的既有規律性又含隨機性的時間序列[8],由于采集系統的不完全可靠和工程實際對負荷預測的要求,使得篩選歷史數據中的異常數據并對它們進行有效的預處理成為預測工作的前提。對于該研究對象,采用比較簡單的方法處理數據,如果熱負荷值在整點時刻出現異常,則用前10 min采集到的值和后10 min采集到的數值求平均數作為該整點時刻的熱負荷。
任意選取48 h的熱負荷值和溫度值作為訓練數據,一天的數據作為神經網絡的輸入量,一天的數據作為神經網絡的輸出量,驗證神經網絡的訓練情況。處理后的神經網絡模型訓練數據如表1所示。

表1 訓練數據Tab.1 Training data
考慮到將24 h的熱負荷值同時作為輸出量,神經網絡將過于冗余,導致訓練時間過長,因而采取一種滾動優化的方式,將24個預測點依次輸出,將輸出層節點數減為1個。具體步驟如下:
第1步確定具體輸入量,輸出量的神經元個數。 輸入神經元為 7 個,分別是(k-2)時刻、(k-1)時刻、k 時刻的熱負荷值,(k-2)時刻、(k-1)時刻、k 時刻的溫度值以及k+1時刻的天氣預報,輸出神經元1個,為k+1時刻的熱負荷值。
第2步去除 (k-2)時刻的熱負荷值和溫度值,將計算出的k+1時刻的熱負荷和溫度值,連同(k-1)時刻的熱負荷和溫度值,k時刻的熱負荷和溫度值,再加上調用API接口獲得的(k+2)時刻的天氣預報溫度值,作為輸入量,輸出量為(k+2)時刻的熱負荷。
第3步以此往復,每預測出下一時刻的熱負荷值,就將最前面時刻的熱負荷和溫度值剔除掉,將新時刻的熱負荷和對應的溫度以及預測時刻的天氣預報作為輸入,輸出預測時刻的熱負荷,直到預測出(k+24)時刻的熱負荷為止。本次試驗采用45組數據進行訓練。
建立的BP神經網絡模型如圖2所示。

圖2 神經網絡模型Fig.2 Model of neural network
在建立模型網絡時隱含層節點數的選取也是至關重要的,根據一些經驗公式先嘗試一個較小的節點數,再加大,最后確定當隱含層節點數為14時,預測結果較好。最大訓練次數為1000次,誤差目標定位0.0004。在Matlab中編寫算法程序,得到預測結果如圖3所示,圖4是預測誤差。

圖3 測試結果Fig.3 Test result

圖4 預測誤差Fig.4 Forecast error
由圖3、圖4可以看出,預測值和期望輸出值較為接近,從相對誤差上看,大部分時間點的預測誤差都在2%以內,只有個別幾點誤差偏大,如上午九點誤差約為12%,下午三點誤差約為8%。同時預測輸出基本能反應出夜晚溫度較低時熱負荷較大,白天溫度較高時熱負荷較小的變化趨勢。
本文在建立神經網絡模型預測集中供熱系統的熱負荷時,考慮了影響熱負荷變化的重要因素,即溫度的變化,并采用了以Matlab為平臺,通過中國天氣網的API接口獲取溫度預報值的方式。由天氣預報和熱負荷建立起來的新型BP神經網絡模型做出的熱負荷預測有較好的精度,并能在一定程度上反應一天中熱負荷走向,提前得到未來的熱負荷序列,便于控制。本實驗提出的方法切實可行,對熱負荷預測提出了新的思路與實踐。
[1]Ma Tao,XuXiangdong.Load predictions for district heating systems based on a WNN model[J].Journal of Tsinghua University(Science and Technology),2005,45(5):708-710.
[2]崔高健,凡東生,曲永利.基于Elman型神經網絡集中供熱負荷預測模型的研究[J].建筑節能,2011,39(3):9-11.
[3]王東亞,張琳,趙國材.神經網絡遺傳算法在供熱負荷預測中應用[J].遼寧工程技術大學學報:自然科學版,2005,24(4):161-163.
[4]謝靜芳,王寶書,姜紅.基于小時氣象因子的神經網絡短期負荷預測模型[J].中國電力,2007,40(9):82-86.
[5]賀蓉,曾剛,姚建剛,等.天氣敏感型神經網絡在地區電網短期負荷預測中的應用[J].電力系統自動化,2001,25(17):32-35,52.
[6]李余琨,楊平,朱燊權.支持開放的API接口的增強型業務[J].計算機工程與應用,2004,40(10):134-136.
[7]張文鴿,吳澤寧,逯洪波.BP神經網絡的改進及其應用[J].河南科學,2003,21(2):202-206.
[8]康重慶,周安石,王鵬,等.短期負荷預測中實時氣象因素的影響分析及其處理策略[J].電網技術,2006,30(7):5-10.