周 婷,王振龍,朱 梅,劉曉麗
(1.安徽農(nóng)業(yè)大學(xué),合肥 230036; 2. 安徽省水利部淮河水利委員會水利科學(xué)研究院, 安徽 蚌埠 233000)
水電站水庫群優(yōu)化調(diào)度能夠在不增加工程投入的情況下顯著提高系統(tǒng)效益,圍繞水電站水庫群的運(yùn)行優(yōu)化一直是科研界和生產(chǎn)單位的關(guān)注熱點(diǎn)。目前針對水庫水電站群優(yōu)化調(diào)度的研究多側(cè)重于優(yōu)化理論算法,較少對優(yōu)化模型的實(shí)現(xiàn)進(jìn)行專門深入的探討。然而,隨著優(yōu)化理論研究的深入,各種智能算法被引入水庫群調(diào)度決策中,水庫群運(yùn)行仿真的復(fù)雜性將大大提高,成為水庫水電站群優(yōu)化調(diào)度理論方法研究面臨的現(xiàn)實(shí)性問題[1-3]。在隱隨機(jī)優(yōu)化調(diào)度理論發(fā)展初期,調(diào)度規(guī)則形式較為簡單,大多為多項(xiàng)式形式,不會給仿真帶來太大難度;但當(dāng)智能算法被引入調(diào)度規(guī)則提取中后,神經(jīng)網(wǎng)絡(luò)等“黑箱模型”成為調(diào)度規(guī)則計算工具,若調(diào)度規(guī)則和仿真運(yùn)行的程序語言不同,則很難將這些程序直接嵌入仿真程序中。例如MATLAB程序中有神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)(Support Vector Machine, SVM)、遺傳算法等大量算法的工具包,可以直接調(diào)用,但水電站群仿真運(yùn)行可能在C語言下運(yùn)行,這種實(shí)現(xiàn)平臺的不統(tǒng)一成為了制約隱隨機(jī)優(yōu)化理論及其應(yīng)用的重要因素。在當(dāng)前越來越多的水電站和水庫投入運(yùn)行的背景下,為優(yōu)化調(diào)度規(guī)則投入實(shí)際運(yùn)用構(gòu)建統(tǒng)一的運(yùn)行平臺是一項(xiàng)極具實(shí)際價值的工作。
本文針對目前調(diào)度規(guī)則制定方法和實(shí)現(xiàn)環(huán)境多樣化的特點(diǎn),以SVM理論為例,構(gòu)建了C++和MATLAB語言的集成仿真平臺,實(shí)現(xiàn)MATLAB下的調(diào)度規(guī)則提取和C++環(huán)境下的水庫群仿真對接,大大提高了隱隨機(jī)優(yōu)化調(diào)度相關(guān)算法的可移植性和可擴(kuò)展性。
水量平衡和各水庫之間的水力聯(lián)系是梯級水庫群在仿真運(yùn)行中的考慮重點(diǎn)。上游水庫的下泄流量會作為部分入庫徑流匯入下游水庫,同時運(yùn)行仿真需遵從各水庫下泄流量約束、特征水位約束、預(yù)想出力和保證出力約束等,保證調(diào)度決策滿足各約束條件,這是水庫群仿真運(yùn)行的物理背景[4,5]。
隨著近年來水庫水電站群優(yōu)化調(diào)度研究日益發(fā)展,大量數(shù)學(xué)優(yōu)化模型被用于解決水庫水電站群優(yōu)化調(diào)度問題,這些優(yōu)化理論計算復(fù)雜,運(yùn)行環(huán)境差別很大,實(shí)現(xiàn)這些基于優(yōu)化理論的仿真運(yùn)行成果需要相當(dāng)?shù)墓ぷ髁?。另一方面,在研究和?shí)際生產(chǎn)運(yùn)行中,常會有將一種優(yōu)化調(diào)度方法應(yīng)用于不同水庫群對象、以及對同一水庫群對象基于不同方法進(jìn)行優(yōu)化調(diào)度的需求,這也需要一個兼容性強(qiáng)的仿真平臺作為支撐。上述情況是水庫群仿真運(yùn)行平臺設(shè)計的現(xiàn)實(shí)需求。
本文基于SVM理論的調(diào)度規(guī)則提取方法為基礎(chǔ),構(gòu)建了基于調(diào)度規(guī)則提取和仿真的混合編程仿真平臺。在該平臺中,梯級水電站群仿真運(yùn)行在C++環(huán)境中運(yùn)行,并以此作為主程序,調(diào)度規(guī)則的優(yōu)化和制定在MATLAB環(huán)境中實(shí)現(xiàn),作為子程序被仿真程序調(diào)用。二者在結(jié)構(gòu)上相對獨(dú)立,功能分區(qū)清晰,為程序移植和功能擴(kuò)展提供了良好的支撐。
本文以金沙江中下游大型梯級水電站水庫群作為對象,該系統(tǒng)共有12級水庫,裝機(jī)容量和調(diào)節(jié)性能均屬世界前列。各電站具體參數(shù)如表1所示。
梯級水電站水庫群的運(yùn)行仿真涉及時間和空間諸多變量,而且模擬運(yùn)行是由調(diào)度決策驅(qū)動、變量不斷滾動迭代的過程,對程序設(shè)計的要求較高。本文水電站水庫群仿真運(yùn)行的物理部分在C++環(huán)境中實(shí)現(xiàn)。C++引入了面向?qū)ο蟮母拍睿沟瞄_發(fā)人機(jī)交互類型的應(yīng)用程序更為簡單、快捷,非常適合編寫水庫群調(diào)度等大型復(fù)雜程序。針對水庫群調(diào)度中反復(fù)調(diào)用的函數(shù),如水位-庫容曲線、出力計算、下泄流量-下游水位關(guān)系曲線等,C++的類函數(shù)提供了封裝接口,使程序結(jié)構(gòu)清晰簡潔,正確率高。
表1 金沙江中下游梯級水電站水庫群系統(tǒng)特征參數(shù)Tab. 1 Specifications of Middle-downstream Jinsha Rivercascaded power stationsreservoirs system
基于C++語言的水電站水庫群運(yùn)行仿真技術(shù)已經(jīng)比較成熟,在此不再贅述[9,10]。在本文程序中,C++程序負(fù)責(zé)物理功能部分,即水庫群在給定調(diào)度決策下的狀態(tài)計算、梯級水庫時間和空間上的數(shù)據(jù)傳輸、約束驗(yàn)證等;MATLAB模塊則負(fù)責(zé)實(shí)現(xiàn)SVM模型控制下的調(diào)度決策生成。因此,程序在C++和MATLAB數(shù)據(jù)對接處應(yīng)配置接口,以保證數(shù)據(jù)的調(diào)用傳輸順利進(jìn)行。C++與MATLAB程序的接口包括:各水庫、水電站的時段狀態(tài)變量(水位、出力、流量等)以及由MATLAB計算得出的調(diào)度決策。
本文采用SVM理論對各水庫調(diào)度規(guī)則進(jìn)行推求,SVM是以結(jié)構(gòu)風(fēng)險最小化的機(jī)器學(xué)習(xí)理論,近年來在分類、識別和預(yù)測領(lǐng)域有著廣泛的應(yīng)用。MATLAB可直接調(diào)用的提供SVM工具包,本文采用臺灣大學(xué)林智仁編寫的LIBSVM工具包實(shí)現(xiàn)調(diào)度規(guī)則生成。具體步驟如下:
(1) 樣本數(shù)據(jù)的整理和劃分。將各電站長系列確定性優(yōu)化結(jié)果按照月度分類重組,并構(gòu)建“輸出-輸入”矩陣:模型輸出為月調(diào)度決策(水庫水位或電站出力),輸入變量為與之相關(guān)的水電站水庫運(yùn)行狀態(tài)參數(shù)。截取矩陣一部分作為訓(xùn)練樣本,其余作為預(yù)測樣本,一般訓(xùn)練樣本容量至少應(yīng)為測試樣本容量3倍,以保證訓(xùn)練樣本具有足夠的代表性,排除隨機(jī)性影響。
(2) 樣本數(shù)據(jù)的歸一化預(yù)處理。由于模型的輸入輸出因子量綱和數(shù)值均差距巨大,直接進(jìn)行模型計算會影響預(yù)測精度,應(yīng)首先對齊進(jìn)行歸一化。歸一化的方法有[0.2,0.8]、[-1,1]、[0,1]歸一化等方法。考慮在水庫調(diào)度決策中,輸入輸出變量均為正數(shù)且數(shù)值范圍較大,本文選擇[0,1]歸一化對輸入輸出變量進(jìn)行預(yù)處理。決策生成后再將輸出變量進(jìn)行反歸一化,還原至實(shí)際調(diào)度決策。
(3) SVM模型訓(xùn)練及參數(shù)優(yōu)化。針對訓(xùn)練樣本矩陣在LIBSVM軟件中進(jìn)行調(diào)度規(guī)則訓(xùn)練,得到訓(xùn)練后的模型?;谠撃P蛯Ψ抡娉绦蚋鲿r段調(diào)度規(guī)則進(jìn)行預(yù)測計算,得到預(yù)測結(jié)果后將其反歸一化至最終預(yù)測的調(diào)度規(guī)則結(jié)果,并將此結(jié)果傳送至C++主程序,以推動主程序繼續(xù)滾動運(yùn)行。
混合編程是指運(yùn)用兩種以上的程序語言進(jìn)行應(yīng)用程序開發(fā)的過程。每一種計算機(jī)程序語言都有其優(yōu)缺點(diǎn),對于不同的工程問題來說,所適宜的編程語言也不盡相同。混合編程的目的是充分利用各種編程語言的優(yōu)勢,合作完成目標(biāo),使程序設(shè)計更加簡潔、編碼效率更高[11,12]。本文C++和MATLAB混合編程平臺的技術(shù)路線如圖1所示。
圖1 基于混合編程的水庫群仿真平臺示意圖Fig.1 Hybrid programming based simulation platform for reservoirs system
本文基于金沙江中下游12級梯級水電站群長系列確定性優(yōu)化調(diào)度成果,依據(jù)上文所述C++與MATLAB混合編程平臺,實(shí)現(xiàn)水電站水庫群系統(tǒng)運(yùn)行仿真。圖2展示了在使用SVM模型進(jìn)行參數(shù)優(yōu)選時,不同參數(shù)組合下的預(yù)測誤差分布圖,誤差最小的參數(shù)組合則被選擇作為實(shí)際預(yù)測模型中的參數(shù)。
圖2 SVM在不同參數(shù)組合下的誤差分布Fig. 2 Error distribution of parameters combination in support vector machine
從運(yùn)行結(jié)果耗時來看,基于混合平臺的SVM模型梯級仿真模型耗時約8分鐘,而單純運(yùn)用C++編程語言的仿真系統(tǒng)運(yùn)行耗時僅需2 min。可見,基于混合編程平臺的運(yùn)算速度低于單一語言的運(yùn)算速度,主要原因是數(shù)據(jù)跨平臺傳輸導(dǎo)致耗時增加。但是混合編程仿真平臺為不同語言、不同案例和不同算法的水電站群運(yùn)行提供了良好的仿真平臺,大大提高了程序的可擴(kuò)展性,從而更加有利于隱隨機(jī)優(yōu)化調(diào)度理論的應(yīng)用和發(fā)展。從該角度來說,混合編程平臺具有更加重要的意義。
混合編程平臺具有良好的可擴(kuò)展性和兼容性,體現(xiàn)在以下兩方面:
(1)在混合編程仿真平臺中,C++主程序僅調(diào)用了以下四要素(見圖1):水庫入庫流量過程、已經(jīng)訓(xùn)練完畢的SVM預(yù)測功能動態(tài)庫、最優(yōu)SVM參數(shù)組合和訓(xùn)練樣本的歸一化數(shù)據(jù)信息。程序邏輯清晰,易于操作。在制定調(diào)度決策時,無須再次調(diào)用SVM參數(shù)優(yōu)化模塊和訓(xùn)練模型,提高了系統(tǒng)的保密性和穩(wěn)定性,更加符合水電站群在實(shí)際調(diào)度運(yùn)行中的需求。
(2)混合編程平臺具有良好的可擴(kuò)展性和兼容性,能夠滿足同一模型應(yīng)用于不同對象或不同模型應(yīng)用于同一對象的仿真功能擴(kuò)展。例如,若要將SVM模型應(yīng)用于其他水庫群仿真中時,只需對C++模塊中水庫信息進(jìn)行修改;若要針對本文水庫群運(yùn)用其他模型進(jìn)行仿真時,則僅需將SVM模型替換為其他模型,無須改變方針平臺的整體結(jié)構(gòu),顯著降低了開發(fā)成本,體現(xiàn)出了優(yōu)越的可擴(kuò)展性和可操作性。
本文對梯級水電站水庫群隱隨機(jī)優(yōu)化中的重要環(huán)節(jié)——仿真運(yùn)行的實(shí)現(xiàn)問題進(jìn)行了研究。在分析水電站水庫群仿真運(yùn)算的復(fù)雜性、調(diào)度規(guī)則和水庫群仿真計算的復(fù)雜性基礎(chǔ)上,闡述了構(gòu)建水電站水庫群混合編程仿真平臺的背景和意義。建立了基于C++和MATLAB混合編程的仿真平臺,實(shí)現(xiàn)了調(diào)度規(guī)則指導(dǎo)下的梯級水電站水庫群仿真運(yùn)行。仿真結(jié)果說明,該平臺具有優(yōu)越的可擴(kuò)展性和兼容性,為水電站水庫群隱隨機(jī)優(yōu)化理論的發(fā)展和應(yīng)用實(shí)踐提供了高效的工具和支撐。
□
[1] 紀(jì)昌明,蘇學(xué)靈,周 婷,等. 梯級水電站群調(diào)度函數(shù)的模擬與評價[J]. 電力系統(tǒng)自動化,2010,34(3):33-37.
[2] 劉 攀,依俊楠,徐小偉,等. 水文資料長度對隱隨機(jī)優(yōu)化調(diào)度規(guī)則的影響研究[J]. 水電能源科學(xué),2011,29(4):46-47,157.
[3] 紀(jì)昌明,喻 杉,周 婷,等. 蟻群算法在水電站調(diào)度函數(shù)優(yōu)化中的應(yīng)用[J]. 電力系統(tǒng)自動化,2011,35(20):103-107.
[4] 喻 杉. 基于改進(jìn)蟻群算法的梯級水庫群優(yōu)化調(diào)度研究[D]. 北京:華北電力大學(xué),2012.
[5] R U Jettmar,G. K. Young. Hydrologic Estimation and Economic Regret[J]. Water Resources Research,1975,11(5):648-656.
[6] 王健峰. 基于改進(jìn)網(wǎng)格搜索法SVM參數(shù)優(yōu)化的說話人識別研究[D]. 哈爾濱:哈爾濱工程大學(xué),2012.
[7] Devroye L,Wagner T J. Distribution-free performance bounds for potential function rules[J]. IEEE Transaction in Information Theory,1979,25(5):601-604.
[8] 徐紅敏. 基于SVM理論的水環(huán)境質(zhì)量預(yù)測與評價方法研究[D]. 長春:吉林大學(xué),2007.
[9] 楊曉靜. 基于VC++和MATLAB混合編程的風(fēng)電場風(fēng)速預(yù)測系統(tǒng)的研究[D]. 北京:華北電力大學(xué),2012.
[10] 韓順杰. 基于SVM的工程車輛自動變速方法研究[D]. 長春:吉林大學(xué),2009.
[11] 李亞軍. 基于MATLAB與C/C++的盲處理系統(tǒng)混合編程模式的研究[D]. 長春:長春理工大學(xué),2011.
[12] 周 婷. 水電站水庫群調(diào)度優(yōu)化及其效益評價方法研究[D]. 北京:華北電力大學(xué),2014.