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