羅 毅,陽 洋
(華北電力大學 控制與計算機工程學院,北京102206)
潮汐是由海水受到地心引力、地球自轉慣性離心力以及天體運動的引潮力而產生的潮水漲落現象。潮汐潮位預測對潮汐電站的日常運行是十分重要的,潮汐電站的日發電量與每日潮差大小密切相關,通過對潮水位的預測,可以預估潮汐電站日發電量、編制合適的發電計劃[1]。根據預報的潮位,優化調度計算后,可以決定各時刻運行的庫水位,并合理將電站總發電量流量分配至各臺機組,達到潮汐電站的日發電量最大[2]。提高潮位預測的精度可為庫水位調節、機組檢修計劃以及確定機組運行方式提供可靠依據,更好地制定運行調度計劃,使潮汐能源得到充分的利用。
調和分析法是傳統的潮位預測方法,將潮汐看作由許多振幅、周期及相位不同的分潮疊加而成,通過確定各分潮因子進行預報。其中,調和常數的確定常常需要大量的實測數據,不具有廣泛實用性[3~6]。而另一方面,潮汐并不完全由周期性因素產生,還受海面風力、氣壓等氣象因素以及海底地形變化等非周期性因素的影響,因此潮位變化具有非平穩性特點,這為潮位預測帶來了困難。調和分析法無法對這些偶然氣象因素或者某一海域的具體地形信息進行綜合計算,影響了潮位預報精度。
近年來,智能化的預測方法受到了廣泛關注,神經網絡具有自學習能力、泛化能力、非線性映射能力強等優勢而成為預報預測領域研究熱點。Tsai 等[7]應用人工神經網絡的方法,進行全日潮和半日潮的預測,與傳統的調和分析法比較,人工神經網絡的方法可以在有限數據基礎上進行較高精度的短期、長期預測,但同時存在著收斂速度慢、訓練時間長,預測與實際值之間的時滯問題。張巍等[8]根據潮汐形成的一般原理和規律,提出一種基于歷史數據的Elman 神經網絡預測模型,反映真實的潮汐趨勢,這種方法能很好地解決訓練時間、收斂速度的問題,但只能做幾小時以內的短期預測,在實際應用中的優勢并不明顯。王先甲[9]提出了基于小波多分辨分析的BP 神經網絡潮水位預測方法,將潮水位序列分解趨勢項、周期項和隨機項,利用BP 神經網絡對每一項進行預測,但這種方法增大了計算量,且對預測精度提高優勢并不明顯。李明昌等[10]采用周期分析的概念,提出在預測前有針對性的數據處理分析方法,解決了潮位預測中存在的時滯問題,但對數據的預先處理會造成數據非線性關系的變形,影響潮位預測的精度。
由于傳統神經網絡的局限性,許多學者對神經網絡算法進行了改進。粒子群算法和遺傳算法是基于群體的優化工具,被廣泛的用于函數優化,神經網絡訓練等多個領域[11~13]。盧輝斌[14]提出一種粒子群優化的RBF 神經網絡模型,用粒子群算法來優化RBF 神經網絡的權值,并用優化好的RBF 網絡進行預測,但RBF 神經網絡更多地針對負荷預測問題。肖遷[15]提出了遺傳算法和神經網絡的結合,通過優化神經初始網絡權值的方法解決傳統神經網絡中收斂速度慢,易陷入局部最優等問題,但還沒有見到應用于潮位預測的報道。
本文針對潮位變化具有非平穩性、周期性等特點,首先通過潮位數據的異常值檢測,采用均值替換法克服由觀測記錄產生的數據誤差;然后通過神經網絡拓撲結構合理設計、節點優選、遺傳算法優化初始網絡權值與閾值等措施,建立了潮位預測模型,顯著提高了潮位預測精度。
BP 網絡學習規則的指導思想是對網絡權值和閾值的修正要沿表現函數下降最快的方向——負梯度方向。本文采用的神經網絡的網絡拓撲結構如圖1 所示。

圖1 網絡拓撲結構
圖1 中,輸入層節點數為ni,隱含層節點數為nh,輸出層節點數為no。H1,H2,…,H8為前8 個整點時刻的潮位值,作為BP 網絡的輸入,網絡輸出即為預測的第9 個整點時刻潮位值。輸入節點數對網絡測試精度是有影響的,這直接反映了網絡構建中擬合非線性函數的復雜程度。另一方面,輸入節點數直接影響了神經網絡中隱含層節點個數,而隱含層節點數增加會使非線性函數擬合更加精確,同時也大大增加了擬合非線性函數的復雜程度。圖2 給出了輸入層節點數對網絡預測精度和訓練時間的影響,表1 給出了不同輸入節點數對隱含層節點數的影響,以及對神經網絡測試精度的影響。隱含層的節點數可用下式來初步計算,然后用試湊法確定具體值:

圖2 輸入層節點數對網絡預測能力的影響

表1 輸入層節點數對網絡預測能力的影響

采用均方根誤差RMSE 對網絡的預測能力做評價,其表達式為:

式中:Hi是潮位實際值;為預測值;m 為測試樣本數。
采用相關系數(CC)評價預測的準確度,其表達式為:

式中:m 為測試樣本數;Hi是潮位實際值;為預測值;為實際潮位平均值;為預測潮位平均值。
綜合分析,節點取7,8,9 時能保證RMSE較低,但隨著節點數增加,訓練時間會明顯增大,比較節點8 和節點9 時,RMSE 接近,但訓練時間增幅較大,因此,選擇輸入節點數ni為8,隱含層節點數nh確定為15,即ni=8,nh=15,no=1。
輸入樣本從輸入層,經過隱含層,產生輸入-隱含層權值Wij,隱含-輸出層權值Njt,i=1,2,…,8,j=1,2,…,15,t=1,沿著負梯度方向向輸出層傳播,減少預期與實際輸出之間的誤差,反方向從輸出層向輸入層傳播修正各個連接權值。潮位預測的實質是根據其歷史數據預測未來值,即認為第9 個整點潮位值與前8 個整點時刻潮位值存在某種非線性的函數關系:

BP 神經網絡預測即是利用BP 算法來擬合函數F(H),然后將其應用于神經網絡預測中。BP神經網絡在開始訓練前將各層的連接權值及閾值隨機初始化為[0,1]之間的值,這種未經優化的隨機初始化往往會使BP 神經網絡的收斂速度慢且容易使最終結果為非最優解。因此,提出用遺傳算法改進神經網絡的初始權值和閾值,提高收斂速度和預測精度。
遺傳神經網絡采用遺傳算法優化神經網絡的初始權值和閾值,種群的每個個體都包含一個網絡所有權值和閾值,個體通過適應度函數計算個體適應度值,遺傳算法根據選擇、交叉、變異操作找到最優個體對網絡初始權值和閾值賦值,經訓練后預測輸出。算法流程如圖3。

圖3 遺傳神經網絡算法流程
(1)種群初始化
個體編碼方法是實數編碼,每個個體都是一個實數串,由輸入隱含層連接權值、隱含層閾值、隱含輸出層連接權值以及輸出層閾值4 個部分組成,個體包含神經網絡全部權值和閾值。在本文中由于網絡有8 個輸入節點、1 個輸出節點,設置網絡結構為8-15-1,共有135 個權值,16 個閾值,故遺傳算法個體編碼長度為151。
(2)適應度函數
根據個體得到的初始權值和閾值,用訓練數據訓練BP 神經網絡后預測數據輸出,把預測輸出與實際輸出的絕對誤差作為個體適應度值,網絡輸出只有1 個節點,適應度函數如下:

式中:yi為BP 神經網絡中第i 個節點的期望輸出;Oi是第i 個節點的預測輸出;k 為系數。
(3)選擇操作
遺傳算法常用的選擇操作有輪盤賭法、錦標賽法等多種方法,選擇輪盤賭法,即基于適應度比例的選擇策略。個體被選中的概率和適應度有關,個體適應度越好,表示預測與實際輸出誤差越小,選中的概率越大。

式中:Fi為個體i 的適應度值;k 為系數;N 為種群個體數目。
(4)交叉操作
交叉操作方法采用實數交叉法,第k 個染色體ak和第l 個染色體al在第j 位上的交叉操作方法如下:

式中:b 為[0 1]之間的隨機數。
(5)變異操作
在種群中選擇一個個體,選擇染色體中的一點進行變異,以產生更優秀的個體。

式中:amax為基因aij的上界;amin為基因aij的下界;f(g)=r2(1- g/Gmax)2,r2為一個隨機數,g 為當前迭代次數,Gmax是最大進化次數;r 為[0 1]間的隨機數。
本文采用了福建莆田秀嶼港3 個月的歷史潮位數據,每小時記錄一次,共計93 天的潮位數據,每8 h 作為輸入向量,預測第9 h 的潮位做滾動預測,共計得到2 200 組數據,得到潮汐時間序列{Hk},其中k=1,2,…,2 200。前2 000組數據做訓練數據,用來對遺傳神經網絡構建最優權值和閾值。后200 組數據作為測試數據,對構建的網絡進行精度測試。
所選取的港口潮汐具有潮差大,獲得的觀測數據由于觀測條件的原因,與實際潮位有所偏差,每日記錄數據中23 時和24 時的數據十分相近,這不利于遺傳神經網絡的預測。因此,將原始數據中每日23 時的數據用均值替換法集中處理:

式中:m表示數據記錄天數,m=1,2,…,93。
將初步處理后的數據進行統一的歸一化處理,作為遺傳神經網絡的輸入:

式中:H '表示歸一化后的潮位值;H表示歸一化前的潮位實測值;Hmax表示所有潮位數據中的最大值;Hmin表示所有潮位數據中的最小值。
圖4表示每日潮位變化以及1 個月內潮位的變化。

圖4 潮汐潮位周期性變化規律
每日潮汐潮位的變化具有周期性,所選取的秀嶼港潮汐為標準半日潮,即一天之間為兩次規則高低潮,在時間跨度上呈現近似三角函數的周期性變化[16]。
構建的遺傳神經網絡,各個參數設置如下:迭代次數10 次,種群規模10,交叉概率取0.3,變異概率取0.1,學習速率0.01,隱含層15,訓練方法為最快速下降法,方向為負梯度方向,適應度曲線如圖5 所示。

圖5 適應度曲線
從中可以看出在第9 次迭代適應度下降達到要求,并維持穩定值,說明了遺傳算法的有效性。圖6(a)為采用遺傳神經網絡預測的結果,結果表明,經過遺傳算法優化的神經網絡能較好的預測潮位。圖6(b)為預測值與實際值的誤差,誤差集中在[- 20,20]之間,結合潮位值在[100,800]之間變化,相對誤差較小,滿足精度要求。圖6(c)為200 h 內實際潮位與預測潮位之間的比較,其中相關系數CC 為0.999 1。
為了驗證本文提出的遺傳神經網絡算法的效果,本文采用傳統神經網絡(BP)、粒子群算法優化神經網絡(PSO-BP)、遺傳算法優化神經網絡(GA-BP)等3 種方法來預測潮位,比較潮位預測精度。
圖7(a)為采用傳統BP 神經網絡算法預測潮位結果,從圖中明顯看出在潮位潮高的預測上誤差較大,并且有時滯現象。這主要是由于BP 算法依賴于初始權值的選擇,收斂速度緩慢且容易陷入局部最優,上述缺陷尤其是局部優化特性使其訓練的神經網絡的輸出具有不一致性和不可預測性。圖7(b)為比較實際潮位與預測潮位,可以看出相關性并不理想,CC 為0.990 0。

圖6 GA-BP 預測結果
圖8(a)為采用PSO 神經網絡預測潮位的結果,從圖中可以明顯看出在潮高上的預測并不理想,這是因為PSO 算法本身是一種尋優算法,在潮位預測上的優勢并不明顯,這也說明了PSO 并不適用于潮位預測。圖8(b)中采用PSO 算法的網絡預測值與實際值的相關系數為CC 為0.995 0。
表2 中列出了3 種算法正負最大誤差和均方根誤差??梢钥闯?,PSO-BP 并未減小誤差,這主要是因為PSO-BP 本身是一種隨機搜索算法,并不能保證搜索到全局最優,因此會出現誤差較大的情況,不太適合潮位預測。顯然,GA-BP 算法預測精度明顯高于其余兩種方法。

圖7 BP 網絡預測結果

表2 算法比較
本文在潮位數據的異常值檢測進行均值替換處理的基礎上,通過優選神經網絡節點數、遺傳算法優化初始權值和閾值,構建了遺傳神經網絡預測模型,用實際港口的數據信息進行潮位時間序列的預測,對比分析BP 網絡、GA-BP 網絡、PSO-BP 網絡3 種不同算法,發現GA-BP 顯著提高了潮位預測精度,取得了良好的應用效果,表明了GA-BP 在潮位預測上的有效性,為潮汐電站的優化運行與調度提供了依據和有效途徑。

圖8 PSO 網絡預測結果
[1]甘澤,李志剛.潮汐發電中調和分析與人工神經網絡預測潮位[J].河北聯合大學學報(自然科學版),2014,36(1):84-87.
[2]趙帥帥,陳成軍,洪軍,等.偏心葉片式潮汐能發電裝置的設計及其仿真[J].科學技術與工程,2014,14(8):131-135.
[3]裴文斌,牛桂芝,董海軍.余水位及潮汐差分方法[J].水道港口,2007,28(6):439-443.
[4]李大鳴,歐陽錫鈺,潘番,等.考慮波浪輻射應力的潮流泥沙數學模型[J].海洋通報,2014(6):703-711.
[5]張沈陽,何文亮.馬跡山港區潮汐、潮流現勢分析[J].浙江水利科技,2013,41(5):23-24,30.
[6]劉曾美,覃光華,陳子燊,等.感潮河段水位與上游洪水和河口潮位的關聯性研究[J].水利學報,2013,(11):1278-1285.
[7]Tsai C P,Lee T.Back-propagation neural networks in tide forecasting[J].Journal Waterway,Port,Coastal and Ocean Enginering,1999,125(4):195-202.
[8]張巍,沈壽林,白承森.一種神經網絡的偏遠海區潮汐仿真預測[J].計算機仿真.2011,28(4):172-175.
[9]王先甲,李匡.基于小波分析的BP 神經網絡潮水位預測方法.[J].水電能源科學,2006,24(2):66-69.
[10]李明昌,梁書秀,孫昭晨.人工神經網絡在潮汐預測中的應用研究[J].大連理工大學學報,2007,47(1):101-105.
[11]唐賢倫,李洋,李鵬,等.基于多Agent 粒子群優化的多步SVR 模型預測控制[J].系統工程與電子技術,2014,36(5):958-964.
[12]姜鴻羽,馬宏忠,梁歡,等.改進粒子BP 神經網絡在變電站噪聲控制中的應用[J].中國電力.2014,47(9):71-76.
[13]程誠,祝一欣,王靜雅.人工神經網絡在青草沙水庫庫外潮位預測中的應用研究[J].科協論壇(下半月),2013,(12):51-52.
[14]盧輝斌,李丹丹,孫海艷.PSO 優化BP 神經網絡的混沌時間序列預測[J].計算機工程與應用,2015,51(2):224-229.
[15]肖遷,李文華,李志剛,等.基于改進的小波-BP 神經網絡的風速和風電功率預測[J].電力系統保護與控制,2014,42(15):80-86.
[16]莊祖垠,姜華,易淑昌,等.基于潮位預測的潮汐校正技術的應用[J].工程地球物理學報,2013,10(3):286-290.