陳建 李允軍 王建平 吳善鋒
摘要: 為了解決入庫流量等時序數(shù)據(jù)跳變而影響對數(shù)據(jù)變化趨勢規(guī)律判斷的問題,結(jié)合水量平衡原理計算入庫流量現(xiàn)實存在“跳變”的局限性,提出了梯度自適應迭代平滑算法,設計了數(shù)據(jù)序列光滑度評價計算方法,并闡述了其詳細的計算原理和計算步驟。以三峽水庫實際計算入庫流量為例,將梯度自適應迭代平滑算法的平滑過程分別與3點、5點、7點線性平滑,5點、7點二次函數(shù)擬合平滑,5點、7點三次函數(shù)擬合平滑的結(jié)果進行對比。結(jié)果表明:該算法在入庫流量平滑計算中具有較好的表現(xiàn);三峽水庫兩段比較具有代表性的2月份和4月份小時計算入庫流量數(shù)據(jù)序列經(jīng)平滑計算后,數(shù)據(jù)序列的平均光滑度分別達到了0.958 4和0.980 3。該算法能夠很好地適應原始數(shù)據(jù)光滑度較差的序列平滑計算,具有很好的實際應用推廣價值。
關 鍵 詞:入庫流量; 數(shù)據(jù)平滑; 梯度自適應迭代平滑算法; 數(shù)據(jù)序列光滑度
中圖法分類號: ?P33
文獻標志碼: ?A
DOI: 10.16232/j.cnki.1001-4179.2022.03.014
?0 引 言
入庫流量的“大振幅”跳變會直接影響水庫調(diào)度運行決策過程中對水庫來水趨勢的判斷,也不符合實際情況,為了能夠較為清晰地判斷水庫來水過程趨勢,需要對隨機性跳變的時間序列數(shù)據(jù)進行平滑校正處理。大多數(shù)水庫的入庫流量難以通過直接測量獲取,目前普遍的方法是基于水量平衡法,根據(jù)水庫壩上水位計算出庫流量和水位庫容曲線,反推入庫流量。特別是對于大型水庫而言,水庫壩上水位的“振蕩”誤差導致入庫流量值誤差較大,以湖南省大東江、柘溪和鳳灘3個水庫為例,計算1 h入庫流量,在水庫壩上水位誤差在0.01 m時,大東江水庫的入庫流量誤差為174~488 m 3/s、柘溪水庫的入庫流量誤差為12~750 ?m 3/s 、鳳灘水庫的入庫流量誤差為27~111 m 3/s。入庫流量的誤差呈現(xiàn)以下幾個特點:① 入庫流量誤差跟壩上水位值相關,壩上水位值越大,同樣的水位差產(chǎn)生的誤差越大,表現(xiàn)在計算入庫流量過程上,不同的季節(jié)入庫流量的“鋸齒”呈現(xiàn)不同的變幅現(xiàn)象;② 水庫的庫容越大或者同樣水位差下的庫容越大,入庫流量出現(xiàn)的誤差越大;③ 壩上水位受采樣地點、采樣點數(shù)和水庫閘門開閘的水位波動等影響,難以采集準確代表水庫水位的水位值;④ 水庫水位測量儀目前大多能測量的最高精度為0.01 m?;谝陨咸攸c,難以從測量手段上解決入庫流量的計算準確性問題。有的學者采用動庫容計算? [1-3] 的方式進行計算,但效果并不顯著,一方面投入建站成本比較高,目前大量水庫不具備采用動庫容計算的條件;另一方面跳變依然比較嚴重。水位變幅限制、多水位站平均等計算方法也能夠在一定程度上降低跳變的程度,但是也有一定的局限性? [4] 。目前基本上是將基于理論的入庫流量過程當作一個漸變過程線,采用數(shù)學平滑算法對計算的入庫流量結(jié)果進行平滑處理? [5-7] ,主要的平滑算法有3點、5點、7點線性平滑,5點、7點二次函數(shù)擬合平滑,5點? [8] 、7點三次函數(shù)擬合平滑,最小二乘曲線? [9] ,樣條插值平滑? [10] ,小波變換濾波? [11] 以及一些其他的濾波算法? [12] 。這些算法在處理數(shù)據(jù)平滑方面都有一定的作用,但是在各種數(shù)據(jù)情形下表現(xiàn)不一?;诖?,本文通過設計一種全新的梯度自適應迭代平滑算法,以適應各種特性的入庫流量過程的數(shù)據(jù)平滑,并以三峽水庫實際計算入庫流量為例,將該算法的平滑過程分別與3點、5點、7點線性平滑,5點、7點二次函數(shù)擬合平滑,5點、7點三次函數(shù)擬合平滑的結(jié)果進行對比。
1 梯度自適應迭代平滑算法原理
梯度自適應迭代平滑算法是一種將曲線描繪成某一種抽象的“形狀架構(gòu)”,通過迭代優(yōu)化調(diào)整,最終使得曲線的所有段都滿足一種抽象的“形狀架構(gòu)”特征?;谔荻鹊募軜?gòu)采用的是一種基于類似于“三角形”架構(gòu),找出或者確定一個中間拐點,隨之確定其前后的頂點數(shù)值,如果它們之間的梯度形狀滿足設置確定的要求,就認為該數(shù)據(jù)的變化滿足梯度要求,如果不滿足其梯度形狀參數(shù)的條件,則對其形狀朝著滿足梯度形狀參數(shù)的要求方向進行微調(diào)整,不斷地進行迭代優(yōu)化調(diào)整,最終使整個曲線滿足梯度形狀條件,過程優(yōu)化結(jié)束,調(diào)整后的曲線即是平滑過后的曲線,其計算優(yōu)化步驟如下。
(1) 算法定義參數(shù)包括:曲線最小適應弧度(γ?? min? )、修正因子(λ)、衰減因子(δ)、最大循環(huán)次數(shù)(Lp?? MAX? )、滑動窗口大小(W?? SIZE? )、滑動窗口維度(W?? DIM? )。
(2) 輸入需要進行平滑的時間序列(Time Series),數(shù)據(jù)長度為 n,整個記為T n(t 0,t 1,t 2,…,t n)。
(3) 確定滑動窗口的大小 W?? SIZE ,窗口的大小值最好為奇數(shù)。
(4) 記錄第1次進行時間序列 T n 平滑優(yōu)化計算的時次初始化為 count =0。
(5) 每次掃描都從序列 T n的第0個值開始,初始化定義i=0。
(6) ?從時間序列T n的第i個數(shù)進行計算,窗口范圍內(nèi)的數(shù)據(jù)序列可以記為T? i~i+W?? SIZE?? ,計算窗口內(nèi)的數(shù)據(jù)序列T? i~i+W?? SIZE?? 的平均值,記為AVGV? W?? SIZE?? 。
(7) ?將滑動窗口內(nèi)的數(shù)據(jù)點T? i~i+W?? SIZE?? 按照數(shù)值大小聚類歸并為3個數(shù)據(jù)集,記為[A,B,C]。
(8) ?計算滑動窗口范圍內(nèi)的3個數(shù)據(jù)集三角形特征值,定義三角形3個頂點值分別為 A(0, y?? 0 ),B(0.5, y?? 1 )和C(1, y?? 2 ), y?? 0 , y?? 1 , y?? 2 分別是滑動窗口內(nèi)時間序列提煉出的3個頂點的歸一化后的序列值 ,圖1、圖2為三角形6種不同的表現(xiàn)形式: [A,B0,C0]、[A,B1,C1]、[A,B2,C2]、[A,B3,C3]、[A,B4,C4]、[A,B5,C5] 。
(9) 頂點A,B,C組成三角形△ABC,三角形的3條邊的邊長分別記為L? AB 、L? BC 和L? AC ,其中角B記為∠B,計算∠B的弧度,記為γ? ∠B ,弧度計算公式如下:
γ? ∠B = (L 2? BC +L 2? AB -L 2? AC ) 2L? AB L? BC? ?(1)
(10) ?判斷三角形△ABC為“∧”形還是“∨”形,判斷依據(jù):如果 y 0+y 2 2 >y 1,則三角形△ABC為“∨”形;如果 y 0+y 2 2 <y 1,則三角形△ABC為“∧”形;如果 y 0+y 2 2 ?= y 1,那么此3點在一條直線上。
(11) ?如果△ABC為“∧”形,并且γ? ∠B 小于γ?? min? ,則按照坦化“∧”形趨勢的方向調(diào)整A,B,C 3個結(jié)點數(shù)據(jù)集的數(shù)值,增大A和C兩個結(jié)點數(shù)據(jù)集的數(shù)值,減小B結(jié)點數(shù)據(jù)集的數(shù)值,具體減少的數(shù)值記為 Δ Value=λ× max (y 0,y 1,y 2),同時A和C兩個結(jié)點的數(shù)據(jù)集的數(shù)值增加的數(shù)值記為 Δ Add= Δ Value/2。
(12) ??如果△ABC為“∨”形,并且γ? ∠B 小于γ?? min? ,則按照坦化“∨”形趨勢的方向調(diào)整A,B,C 3個結(jié)點數(shù)據(jù)集的數(shù)值,減小A和C兩個結(jié)點數(shù)據(jù)集的數(shù)值,增加B結(jié)點數(shù)據(jù)集的數(shù)值,具體增加的數(shù)值記為 Δ Value=λ× min (y 0,y 1,y 2),同時A和C兩個結(jié)點的數(shù)據(jù)集的數(shù)值減小的數(shù)值記為 Δ Minus= Δ Value/2。
(13) 分別按照增加和減小的數(shù)值,對應調(diào)整 A,B,C ?3個結(jié)點數(shù)據(jù)集的數(shù)值, 更新時間序列T n對應位置上的值,判斷是否已經(jīng)是該序列最后一個窗口,如果為“否”,則按照滑動窗口維度W?? DIM? 滑動到序列的下一個窗口T? i+W?? DIM? ~i+W?? DIM? +W?? SIZE?? ,i=i+W?? DIM? ,重復步驟(5)。
(14) ?如果為“是”,則 count=count+1;判斷count 值是否大于 Lp?? MAX? ,如果“是”,則退出循環(huán),返回經(jīng)過優(yōu)化平滑的時間序列T n,如果為“否”,則重復步驟(4)。
整個算法的流程如圖3所示。
2 序列平均光滑度計算
本文試圖定義一種方法,可以評價一個數(shù)據(jù)序列經(jīng)過數(shù)據(jù)平滑過后,平滑程度或者效果的評價指標,在實際的數(shù)據(jù)序列中沒有真實的平滑結(jié)果存在,因此不能將平滑的結(jié)果與“真實”結(jié)果比較,只能與未進行平滑的原始數(shù)據(jù)序列進行比較,找到一種可以評價數(shù)據(jù)平滑程度的計算方法。目前有研究學者提出了數(shù)據(jù)平滑度、光滑度? [13] 等概念,與評價一種數(shù)據(jù)平滑方法的好壞程度并不是很吻合,本文提出一種計算數(shù)據(jù)序列光滑度的計算方法,用于評價數(shù)據(jù)序列被平滑過后與原數(shù)據(jù)相比其平滑程度。
定義一個數(shù)據(jù)序列為X(x 1,x 2,x 3,…,x n),評價一個數(shù)據(jù)序列的平滑度可以定義為計算離散數(shù)據(jù)點之間的斜率之差,具體計算步驟如下。
(1) 對數(shù)據(jù)序列進行歸一化處理,找出X序列的最大值x?? max? ,X序列歸一化之后的序列為X′(x′ 1,x′ 2,x′ 3,…,x′ n)。
(2) 相鄰數(shù)據(jù)點的平滑度可以定義為曲線的斜率之差的平方,理論上當相鄰點關系在同一條曲線上時,數(shù)據(jù)點之間的斜率之差為0,這時數(shù)據(jù)是最平滑的,是一條直線。簡單的計算平滑度指標并沒什么應用意義,本文通過平滑度值的比較來衡量原始曲線被平滑的程度,具體計算方式如圖4所示。
從圖4可知, ?x′ i 的數(shù)據(jù)平滑度計算公式為
Smoothness i=? 1- (x′ i-x′? i-1 ) 2-(x′? i+1 -x′ i) 2? ??2 (2)
整個數(shù)據(jù)序列X′(x′ 1,x′ 2,x′ 3,…,x′ n)的平均平滑度計算公式為
Smoothness=? 1 -???? n-1?? i=1? ??(x′ i-x′? i-1 )? 2- (x′? i+1 -x′ i)? 2? n-2? ??2? (3)
計算條件為 n>2,Smoothness 值越大,代表平滑度越好,等于1則為直線。
3 入庫流量平滑計算案例分析
3.1 入庫流量計算方法
入庫流量很難通過直接測量獲取,目前常用的入庫流量反推計算方法是基于水量平衡原理,利用期末期初壩上水位、時段出庫流量和水位庫容曲線進行反推計算時段入庫流量? [14] ,計算公式如下:
Q? 入庫 Δ t = f(Z?? Δ t末 )-f(Z?? Δ t初 )? Δ t +Q? 出庫 Δ t? (4)
式中: Δ t表示時段步長,Q? 入庫 Δ t 表示時段入庫流量,Z?? Δ t初 表示時段初水庫水位,Z?? Δ t末 表示時段末水庫水位, f(Z?? Δ t初 ) 表示時段初庫水位對應的庫容,f(Z?? Δ t末 )表示時段末庫水位對應的庫容,Q? 出庫 Δ t 表示時段出庫流量。
采用這種方法反推入庫流量對水庫水位的精度要求很高,而往往難以做到。本文以華中區(qū)域的東江、柘溪水庫和三峽水庫為例進行計算,東江水庫是多年調(diào)節(jié)水庫,柘溪水庫和三峽水庫都屬于不完全年調(diào)節(jié)水庫。下面以東江水庫和柘溪水庫為例進行測算,水庫水位誤差1 cm時對計算入庫流量產(chǎn)生的影響如圖5~6所示。
結(jié)合公式(2),從圖5、圖6可知:水庫水位越高,1 cm誤差造成的入庫流量誤差越大。東江水庫的流量誤差范圍174.0~487.0 m 3/s,柘溪水庫的流量誤差范圍12.5~750.0 m 3/s,說明水庫不同時期不同運行水位下的反推入庫流量的波動程度會有較大的區(qū)別,水庫水位的精度對水庫入庫流量影響巨大。
水庫受機組開關機、閘門啟閉和船閘啟閉等綜合影響,較容易產(chǎn)生水位“假潮”現(xiàn)象? [15] ,在短時間內(nèi)測量的水位會出現(xiàn)較大的波動,有時候波動會高達20 cm,這就造成了有時候會前后時段入庫流量出現(xiàn)波動很大,甚至出現(xiàn)入庫流量為負值的情況? [16] 。
3.2 不同平滑算法結(jié)果對比分析
本文中將新設計的梯度自適應優(yōu)化算法與目前常采用的3點、5點、7點線性平滑,5點、7點二次函數(shù)擬合平滑,5點、7點三次函數(shù)擬合平滑進行對比(見表1),分別取三峽水庫的非汛期2月和4月動庫容計算入庫流量數(shù)據(jù),采用上述幾種平滑方法進行平滑計算,平滑結(jié)果如圖7所示。
從表1中可以看出:不管是2月份數(shù)據(jù),還是4月份數(shù)據(jù)梯度自適應迭代算法的平均光滑度是最高的。2月份的數(shù)據(jù)原始計算值的平滑度為0.530 1,經(jīng)過平滑后達到了0.958 4;其次是7點線性平滑達到了 0.918 7 。4月份的原始數(shù)據(jù)的光滑度為0.854 6,從整體上看所有方法的平均光滑度都達到了0.9以上,其中數(shù)據(jù)梯度自適應迭代算法的平均光滑度為0.980 3,所有的方法都有平滑效果,只是平滑的程度不一樣。
圖7中是分別采用以上8種算法進行平滑過后的三峽水庫2月份的小時計算入庫流量,從上面的分析可以看出,在類似2月份這種枯水期或者平水期,實際上的來水過程是比較平穩(wěn)的,但是由于受“水位波動”的影響,造成出現(xiàn)大量的“假峰”、“假谷”現(xiàn)象和“鋸齒”現(xiàn)象。從圖7中還可以看出,梯度自適應迭代平滑算法、5點線性平滑和7點線性平滑算法平滑效果比較明顯,其中梯度自適應迭代平滑算法的平滑效果是最佳的,而且對于“鋸齒”現(xiàn)象越明顯,其效果越明顯。從上面的算法結(jié)果比較情況來看,二次函數(shù)和三次函數(shù)擬合在平滑方面起的作用比較有限,相比而言,線性函數(shù)的作用 較大。
4 結(jié) 論
本文分別選取三峽水庫波動非常劇烈的2月和波動比較平緩的4月為例,經(jīng)過實際應用驗證,得出以下主要結(jié)論:
(1) 梯度自適應迭代平滑算法具有良好的平滑自適應性,原始數(shù)據(jù)光滑度越差的數(shù)據(jù)相比其他方法,梯度自適應迭代平滑算法起到的平滑效果效果更加明顯,其他的方法平滑效果相對不理想。
(2) ?梯度自適應迭代平滑算法平滑效果較為穩(wěn)定,在原始數(shù)據(jù)光滑度較好,局部光滑度較差的時候,梯度自適應迭代平滑算法具有穩(wěn)定的平滑表現(xiàn)。
(3) 該算法相比其他的算法還有一個重要特點,它是滿足數(shù)值序列整體平均值或者累計值不變的,采用該算法平滑處理后,入庫流量只是實現(xiàn)了時段內(nèi)的重新分配,滿足水量平衡的要求。
(4) 經(jīng)過算法對比和實際數(shù)據(jù)驗證,該算法具有很好的推廣應用價值。
參考文獻:
[1]? 張俊,閔要武,陳力,等.基于動庫容曲線的水庫調(diào)洪高水位查算方法研究[J].水文,2016,36(5):63-68.
[2] 張俊,閔要武,陳新國.三峽水庫動庫容特性分析[J].人民長江,2011,42(6):90-93.
[3] 閔要武,王俊,陳力.三峽水庫入庫流量計算及調(diào)洪演算方法探討[J].人民長江,2011,42(6):49-52.
[4] 王世策,胡曉勇.大型水庫計算入庫流量波動過大問題分析[J].安徽水利水電職業(yè)技術學院學報,2010,10(3):19-21.
[5] 王俊莉.貴州烏江梯級水庫入庫流量計算分析及改進方法[J].水利水電快報,2015,36(4):54-56,74.
[6] 唐春艷,彭繼兵.基于變維濾波算法的Kalman最佳平滑器在滑坡監(jiān)測數(shù)據(jù)處理中的應用[J].工程數(shù)學學報,2009,26(4):586-592.
[7] 唐海華,陳森林,趙云發(fā),等.三峽水庫入庫流量計算方法研究[J].中國農(nóng)村水利水電,2008(4):26-28.
[8] 武煒,陳標,吳劍鋒,等.基于五點三次平滑算法的入庫流量反推研究[J].水利水電技術,2013,44(12):100-102.
[9] 張俊,廖勝利,程春田,等.基于最小二乘曲線的水電站入流平滑處理[J].水電能源科學,2011,29(4):55-56,154.
[10]? 楊海星,黎浩,曹凈.基于樣條函數(shù)的監(jiān)測數(shù)據(jù)平滑算法與Matlab實現(xiàn)[J].長春工程學院學報(自然科學版),2018,19(3):92-97,120.
[11] 田鑫.基于離散小波變換的海洋工程數(shù)據(jù)降噪研究[D].大連:大連理工大學,2015.
[12] 楊金標,舒凱,張后來,等.水庫水量平衡計算中消除水位跳變影響的過濾算法[J].人民長江,2019,50(8):98-102.
[13] 鄭鋒,魏勇.提高灰建模數(shù)據(jù)列光滑度的一種新方法[J].統(tǒng)計與決策,2007(18):37-38.
[14] 劉章君,郭生練,鐘逸軒,等.入庫洪水計算方法及研究進展綜述[J].中國農(nóng)村水利水電,2016(11):1-6,11.
[15] 劉超,彭艷華,彭艷明,等.水位“假潮”現(xiàn)象平滑處理方法研究[J].長江工程職業(yè)技術學院學報,2011,28(1):27-28,34.
[16] 王永峰,孟繼慧.豐滿水庫調(diào)度有關基礎資料問題的歷史沿革[J].水利水電技術,2016,47(6):56-59,79.
(編輯:謝玲嫻)
Research on smoothing algorithm of reservoir inflow data based on ?gradient adaptive optimization
CHEN Jian,LI Yunjun,WANG Jianping,WU Shanfeng
( Nanjing Nari Water Resources Hydropower Technology Company,Nanjing 211000,China )
Abstract:
In order to solve the problem that the jump of time series data such as inflow affects the judgment of the data change trend,we proved the limitation of "jump" in inflow based on the principle of water balance,proposed a smooth gradient adaptive iteration algorithm (SGAIA),designed a calculation method for evaluating the smoothness of data series,and expounded its detailed calculation principle and calculation step.Taking the actual inflow calculation of the Three Gorges Reservoir as an example,we compared the smoothing results of SGAIA with other methods,including 3/5/7-point linear smoothing algorithm,5/7-point quadratic function fitting smoothing algorithm,and 5/7-point cubic function fitting smoothing algorithm.The results showed that SGAIA has better performance in the smoothing of inflow data.Then we execute smooth calculation on two more representative data series of hourly calculated inflow of the Three Gorges Reservoir in February and April,and the average smoothness of the data series after smoothing calculation reached 0.9584 and 0.9803,respectively.SGAIA can be well adapted to data series smoothing calculation in case of poor original data smoothness.
Key words:
reservoir inflow;data smoothing;gradient adaptive iterative smoothing algorithm;smoothness of the data series