夏曉靖,高尚,陳虹麗
1. 上海機電工程研究所,上海 201109
2. 哈爾濱工程大學 自動化學院,黑龍江 哈爾濱 150001
天然氣是當今世界最為綠色、高效的優質能源之一,被世界各國人民廣泛使用[1]。隨著全球經濟的快速發展和人類生存環境的不斷惡化,人類對天然氣的需求量急劇提升[2]。因此,對城市燃氣負荷進行預測顯得尤為重要[3]。本文主要對城市燃氣日負荷進行短期預測。由于在全年范圍內,每2 個月內的溫度和人口等因素變化范圍不大。因此,將某市某年的燃氣日負荷歷史數據分為6 組,以每2 個月為1 組進行建模,利用廣義動態模糊神經網絡(GD-FNN)對燃氣日負荷進行組合預測,得到預測精度(平均)和預測時間。
數據預處理的作用主要是防止異常數據的波動而引起訓練時間的增加,嚴重時可能會導致廣義回歸神經網絡(GRNN)無法收斂,需要對原始數據進行歸一化處理。在訓練樣本中采用式(1)將參數歸一化到[0, 1]:

而在輸出層中,用式(2)換算得到的數值就是燃氣日負荷預測值:

式中:Xmax為訓練樣本的最大值;Xmin為訓練樣本的最小值;Xi為歸一化后的數據;X為反歸一化后得到的燃氣日負荷預測值[4]。
為了避免不穩定數據對網絡訓練的干擾,可以在歸一化前留出余量,使其歸一化后的數值落在[0.1, 0.9]中,對歸一化公式重新進行推導,由于ln0.1=-2.302 6,ln0.9=-0.105 4,使

可以推導出新的歸一化公式:

反歸一化公式為

根據式(3)和(4)可將數據歸一化到[0.1, 0.9],有利于加快神經網絡訓練[5]。


圖1 GRNN 結構示意
對某市的燃氣日負荷歷史數據進行訓練建模。神經網絡輸入節點取4 個(預測日前3 d 的燃氣日負荷數據和一周前1 d 的日負荷數據);輸出節點取1 個,即預測日燃氣負荷。本文中,限于篇幅,僅列出12 月25 日至31 日(以下同)的燃氣日負荷預測結果及誤差,見表1 及圖2、3。預測的相對誤差公式如式(5)所示:


表1 各種預測方法相對誤差

圖2 4 種方法預測值對比

圖3 4 種方法預測相對誤差對比
在GRNN 中,平滑系數[5]σ=0.12。由表1 可知,GRNN 燃氣日負荷預測數據在12 月27 日的相對誤差較大,超過20%,可能是由于燃氣日負荷數據不準確或預測模型故障導致的預測精度降低。可以通過其他預測模型的預測精度進行驗證或進行組合預測提高其預測精度。在全年范圍內,GRNN 最大預測誤差為26.707%,平均預測精度達到81.838%。
灰色理論法是一門研究信息部分清楚,部分不清楚并帶有不確定性現象的應用數學。其主要工作原理是對燃氣日負荷數據進行整理和分析,發現其中的規律性,通過其中的規律對燃氣日負荷進行預測,其核心是對數的操作,主要是為了減小數據的干擾性和隨機性,增加數據的規律性[7]。
灰色理論首先要求歷史數據必須具有序列走勢平緩的特點,并且在經過一次累加后的數據序列必須具有指數增長的規律性,否則無法建立灰色預測模型。但是可以利用灰色理論對燃氣日負荷的歷史數據進行預處理,減少錯誤數據的干擾以提高預測模型的精度[8]。
灰色-GRNN 共有3 種網絡結構,主要包括串聯型結構、并聯型結構和嵌入式型結構。本文主要采用嵌入式型網絡結構進行神經網絡的建模工作。嵌入式型灰色-GRNN 模型如圖4 所示。

圖4 嵌入式灰色-GRNN 結構示意
灰化層的作用主要是用來減少原始數據的隨機性,由于原始數據中可能存在異常的壞數據,這樣會增加訓練時間或使神經網絡無法收斂,灰化層主要是對數值的運算,一般是對原始數據進行至少一次的累加,使經過累加的數據具有單調遞增的特性,這樣可以有效地減少原始數據的隨機性,顯著提高預測精度。
白化層的作用是對灰化層的逆運算,是對已經通過GRNN 預測得到的預測值進行累減操作,最后得到的結果就是灰色-GRNN 的預測值。
灰色-廣義回歸神經網絡(灰色-GRNN)的建模流程與GRNN 相似,主要是在灰化層和白化層的處理上與單獨使用GRNN 有所不同。
2.2.1 輸入/輸出設計
由于燃氣日負荷的真實值中就包括了各種影響因素對燃氣日負荷的作用,所以建模時輸入(輸出)向量設置為經過灰色生成(白化)處理的燃氣日負荷歷史真實值。灰色-GRNN 輸入節點取4 個(預測日前3 d 的數據和預測日前7 d 的數據累加生成數據);輸出節點取1 個,即預測日燃氣負荷。
2.2.2 灰化層處理
對原始的燃氣日負荷數據采用一次累加的方法進行灰色生成,這樣可以大大減少燃氣日負荷的不平穩性。首先給定原始時間序列X(0)={X(0)(0),X(0)(1),···,X(0)(n)},對其進行一次累加后,得到灰化處理值X(1)={X(1)(0),X(1)(1),···,X(1)(n)},其中

根據式(6)得到燃氣日負荷灰化值,x(0)(i)為燃氣日負荷歷史數據;x(1)(i)為經過一次累加生成的燃氣日負荷值。在經過白化層處理后可得到燃氣日負荷預測值。白化公式如下

式中:X(1)(k+1)為第(k+1) d 的燃氣日負荷灰化值預測;X(0)(k+1)為第(k+1) d 的燃氣日負荷預測值。
2.2.3 數據的預處理
為了進一步減少原始數據對燃氣日負荷預測的影響,對已經經過灰色生成的數據再進行歸一化處理,這樣能夠有效減少歷史數據的隨機性帶來的影響,防止異常數據的波動引起訓練時間的增加及GRNN 發散,通過式(3)使最后的預處理數值在[0.1, 0.9]。
2.2.4 網絡訓練
在GRNN 中,進行網絡訓練最重要的是找到系統的平滑系數 σ,同樣在MATLAB 中采用試驗法確定 σ的值,通過不斷變換 σ的值進行測試,最終找到誤差最小的 σ值作為系統的平滑系數,經過最終測試,確定灰色-GRNN 的平滑系數σ=0.35。
2.2.5 基于灰色-GRNN 模型進行燃氣日負荷預測
通過已經搭建好的灰色-GRNN 預測模型進行燃氣日負荷預測,再將得到的預測值進行反歸一化處理,利用式(4)得到反歸一化數據,隨后再進行白化層處理。白化層處理的主要作用是為了抵消灰化層的影響,經過一系列的處理后得到的數值就是最終的燃氣日負荷預測值,預測結果見表1 及圖2、3。
由表1 可見,灰色-GRNN 在12 月27 日的預測精度為8.133%,由此說明GRNN 模型在12 月27 日的預測中發生了故障。在全年范圍內,灰色-GRNN 的最大預測誤差為20.215%,平均預測精度為83.982%。
1996 年,Mulgrew.B 提出了一種用于消除時間序列不平穩性的非線性神經網絡建模方法,稱為梯度神經網絡法,可以利用這種梯度神經網絡建模法進行燃氣日負荷原始數據的預處理工作[9]。
梯度神經網絡法主要是通過對時間序列的差分來去除非平穩性的[10]。在經過梯度處理后,能夠有效減少由于原始數據的不平穩性和隨機性所導致的誤差,十分有利于提高預測的準確性,具體的處理方式如下:

得到新的數據序列ΔX1,ΔX2,···,ΔXn-1,并將得到的新數據序列作為廣義回歸神經網絡的輸入。
基于梯度-GRNN 的燃氣日負荷預測步驟與灰色-GRNN 相似,其主要不同之處在于使用的是梯度神經網絡法對燃氣日負荷歷史數據進行處理,再進行歸一化操作,在得到梯度-GRNN 的預測值后,同樣要進行反歸一化和反梯度化處理,才能得到最終的燃氣日負荷預測值。
3.2.1 梯度神經網絡法消除誤差
首先使用梯度神經網絡法對原始數據進行處理,利用式(7)對原始數據進行梯度處理,得到新的數據序列,再將得到的新的數據序列進行歸一化操作。
3.2.2 歸一化處理
將通過梯度神經網絡法得到的新數據序列進行歸一化處理,利用式(3)進行歸一化處理,將數據歸一化到[0.1, 0.9]。歸一化處理能夠有效減少異常數據的波動,加快梯度-GRNN 的訓練。
3.2.3 平滑系數 σ的確定
通過試驗法確定神經網絡的平滑系數 σ,平滑系數 σ的選取過程與GRNN 的平滑系數 σ的選取過程相同,最終確定平滑系數σ=0.27。
3.2.4 反歸一化與反梯度化處理
在得到梯度-GRNN 的預測值后,需要進行反歸一化處理和反梯度化處理。利用式(4)進行反歸一化處理,將得到的數值再進行反梯度化處理,相當于進行一次累加操作,最后得到的就是燃氣日負荷預測值。梯度-GRNN 輸入節點取3 個(預測日前3 d 的數據和預測日前7 d 的數據的一階差分),輸出節點取1 個(燃氣日燃氣負荷的一階差分)。預測結果見表1 及圖2、3。
由表1 可知,梯度-GRNN 在1 月27 日的預測精度沒有像GRNN 那樣出現較大的誤差,這同樣可以證明使用GRNN 進行建模在27 日發生故障,才導致它在27 日的預測中出現非常大的誤差。在全年范圍內,梯度-GRNN 燃氣日負荷預測的最大預測誤差為18.232%,平均預測精度為85.963%。
GD-FNN 的結構如圖5 所示。設r是輸入變量數,并且每個輸入變量xi(i=1,2,···,r)有u個隸屬函數Aij(j=1,2,···,u),它們位于第2 層,這些隸屬函數都是如下形式的高斯函數:

式中: μij是xi的第j個隸屬函數;cij和 σij分別為xi的第j個高斯隸屬函數的中心和寬度;i=1,2,···,r;j=1,2,···,u。

圖5 GD-FNN 結構
輸入層中第0 個節點的輸入值x0=1,它的作用是提供模糊后件中的常數項。第3 層的每個結點代表一條模糊規則,它的作用是用來匹配模糊規則的前件,計算出每條規則的適用度[11]:

后件網絡中第2 層的作用是計算每一條規則的后件,即

后件網絡中的第3 層計算系統的輸出為

GD-FNN 學習算法的基本步驟為[12]:
1)初始化系統預定義參數 εmin、 εmax、emin、emax、kmf、ks、keer,其含義見文獻[11]。
2)由第1 組樣本數據產生第一條規則,其參數的確定采用誤差反傳法[13]。

設Xk是第k個輸入樣本向量,tk是第k個期望的輸出,計算當前結構下的GD-FNN 輸出yk。定義系統誤差為

如果‖ek‖>ke,則應該考慮增加一條新的模糊規則。這里ke是預先定義的一個閾值,它在學習過程中按以下準則逐漸變化:

式中:k是學習的次數;β ∈(0,1)為收斂常數,可以很容易推導出β=(emin/emax)3/n;馬氏距離:



式中γ ∈(0,1)稱為衰減常數,它可以由式(9)推算出來:

5)若滿足ek>ke,則產生新規則,決定該規則的參數,計算出誤差減小率 ρj和第j條規則的重要性 ηj(j=1,2,···,u)[11],否則自動調整已存在的規則的后件參數。新規則參數的確定方法如下:

式中Φi∈{ximin,ci1,ci2,···,ciu,ximax},同時找到:


式中:ci-1和ci+1是與第i個隸屬函數臨近的2 個隸屬函數的中心;i=1,2,···,u。
后件參數的調整采用自適應學習律[13]。
6)若滿足ek<ke,則調整已存在規則前件參數中的寬度,再調整規則的后件參數,否則自動調整已存在的規則的后件參數。
前件參數寬度作如下調整:

式中ξ ∈(0,1)是衰減因子,它由式(10)決定:

定義

式中 ρij是與第j個規則中的第i個輸入變量對應的誤差減少率。
7)如果滿足ηj>keer,則刪除第j條規則,否則自動調整已有規則的后件參數。
8)判斷觀察是否結束,若沒有,返回步驟3),否則結束整個學習過程。
使用GD-FNN 進行組合預測,首先要確定輸入向量。前面已經將全年6 組燃氣日負荷歷史數據分別作為GRNN、灰色-GRNN 和梯度-GRNN的訓練樣本,通過各自的模型得到了相應的燃氣日負荷預測值,本節分別將GRNN、灰色-GRNN、梯度-GRNN 所得燃氣日負荷預測值作為GD-FNN的輸入向量,通過GD-FNN 進行組合預測。GDFNN 預測流程如圖6 所示。

圖6 GD-FNN 預測流程
經過反復試驗,最終確定GD-FNN[14]初始化參數為εmin=0.5,εmax=0.8,emin=0.009,emax=0.02,kmf=0.015,ks=0.9,keer=0.001。基于GD-FNN 模型進行燃氣日負荷預測結果見表1 及圖2、3。
預測結果表明,GD-FNN 在1 月27 日的相對誤差為7.028%,與前面的GRNN 相比有明顯提高,同樣可以證明GRNN 在1 月27 日的預測過程中發生了故障,并且通過GD-FNN 組合預測模型的預測,1 月27 日的預測精度也要高于灰色-GRNN和梯度-GRNN。全年預測值相對誤差及平均精度如表2 所示。在全年范圍內,GD-FNN 組合預測方法的最大預測誤差為9.619%,平均預測精度為93.637%,預測平均使用時間為7.668 s。

表2 全年預測的最大相對誤差及平均精度%
可以看出,在預測精度方面,GD-FNN 組合預測模型的預測精度明顯要高于GRNN、灰色-GRNN和梯度-GRNN 的預測模型精度,而且GD-FNN 所用的預測時間也較短,綜上,采用GD-FNN 進行燃氣日負荷預測效果最佳。
設計了一種短期燃氣日負荷的智能組合預測方法,將燃氣日負荷一年的歷史數據分為6 組分別建立預測模型,利用模型切換預測城市燃氣日負荷值。
1)由于廣義回歸神經網絡具有良好的非線性逼近功能。所以,分別采用GRNN、灰色-GRNN和梯度-GRNN 對燃氣日負荷數據進行預測,仿真表明,預測模型總體上可行,但預測精度并不是很高,而且無法處理預測過程中出現的預測模型故障現象。因此,采用組合預測模型對燃氣日負荷進行進一步的預測。
2)針對城市燃氣日負荷預測的隨機性和不確定性,采用廣義動態模糊神經網絡(GD-FNN)進行組合預測,將GRNN、灰色-GRNN 和梯度-GRNN的預測數據作為組合預測模型的數據基礎,通過MATLAB 平臺仿真,結果表明:從預測精度上看,組合預測模型的預測精度要明顯高于單一預測模型的預測精度,預測時間也在合理范圍內,并且能解決單一預測模型發生故障情況。