国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Fortran與VB混編的水庫群聯(lián)合優(yōu)化調(diào)度系統(tǒng)研究

2015-03-18 06:29齊云飛
黑龍江水利科技 2015年6期
關(guān)鍵詞:調(diào)用供水編程

齊云飛,胡 凡

(1.遼寧省水利水電勘測設(shè)計(jì)研究院規(guī)劃分院,沈陽110006;2.遼寧省東水西調(diào)工程建設(shè)局,沈陽110003)

基于Fortran與VB混編的水庫群聯(lián)合優(yōu)化調(diào)度系統(tǒng)研究

齊云飛1,胡 凡2

(1.遼寧省水利水電勘測設(shè)計(jì)研究院規(guī)劃分院,沈陽110006;2.遼寧省東水西調(diào)工程建設(shè)局,沈陽110003)

介紹了Visual Basic與Fortran兩種語言混合編程的基本方法,研究并解決了兩種語言之間結(jié)構(gòu)體數(shù)組傳遞的技術(shù)關(guān)鍵。建立基于Fortran語言的水庫群聯(lián)合優(yōu)化調(diào)度模型,并采用粒子群優(yōu)化算法進(jìn)行求解。最后結(jié)合了VB人機(jī)交互界面的優(yōu)點(diǎn)和Fortran在數(shù)值運(yùn)算方面的長處,實(shí)現(xiàn)水庫群聯(lián)合優(yōu)化調(diào)度計(jì)算數(shù)據(jù)輸入輸出的可視化。

Fortran語言;Visual Basic語言;水庫群聯(lián)合調(diào)度;粒子群優(yōu)化算法;系統(tǒng)開發(fā)

1 Visual Basic與Fortran的混合編程的實(shí)現(xiàn)原理

Fortran編程語言具有數(shù)值計(jì)算與數(shù)學(xué)分析能力強(qiáng)的特點(diǎn),并且結(jié)構(gòu)層次清楚、運(yùn)行計(jì)算穩(wěn)定可靠,在數(shù)學(xué)與工程計(jì)算領(lǐng)域得到廣泛應(yīng)用。但是,可視化編程對于Fortran編程語言始終存在難度較大的問題。Visual Basic編程語言在可視化編程方面較為簡單,容易實(shí)現(xiàn),編制的人機(jī)交互界面友好并且有效,在Windows系統(tǒng)下的可視化界面設(shè)計(jì)應(yīng)用較為廣泛。Fortran和Visual Basic一樣來自微軟公司開發(fā)的編程環(huán)境,兩種語言混合編程具有較好的基礎(chǔ)。

因此,兩者結(jié)合,在Windows系統(tǒng)下對Visual Basic和Fortran進(jìn)行混合編程,既可以利用VB界面設(shè)計(jì)和圖形開發(fā)功能設(shè)計(jì)的優(yōu)勢,設(shè)計(jì)出出友好的數(shù)據(jù)輸入界面平臺(tái),又可以利用該界面在計(jì)算水庫興利調(diào)節(jié)時(shí)調(diào)用Fortran程序進(jìn)行科學(xué)計(jì)算,將計(jì)算結(jié)果以可視化數(shù)據(jù)及圖形的形式顯示在Visual Basic開發(fā)界面上,通過數(shù)值計(jì)算、交互式數(shù)據(jù)輸入、輸出和可視化功能所集成的混合編程技術(shù),建立水庫群聯(lián)合優(yōu)化調(diào)度系統(tǒng)。

1.1 利用visual fortran建立DLL

Visual Basic設(shè)計(jì)界面程序,調(diào)用Fortran語言程序編譯的動(dòng)態(tài)鏈接庫(DLL,Dynamic-Link Library)。Fortran程序編譯的動(dòng)態(tài)鏈接庫,通過參數(shù)傳遞,從而實(shí)現(xiàn)數(shù)據(jù)的變換。新建以工程命名的工程,類型為Dynamic-Link Library0。將原Fortran編寫的源程序插入工程,或者在工程中加入一個(gè)只含有函數(shù)或子程序的Fortran程序,編譯并生成DLL。生成的函數(shù)或子程序如被調(diào)用,必須加以聲明,從而標(biāo)識(shí)在生成的DLL中,這些函數(shù)或子程序可被調(diào)用。

1.2 利用VB調(diào)用Fortran DLL

Visual Basic設(shè)計(jì)界面程序調(diào)用動(dòng)態(tài)鏈接庫可以采用上述方法,也可使用其他方法。在調(diào)用Fortran語言中的動(dòng)態(tài)鏈接庫前,被調(diào)用的動(dòng)態(tài)鏈接庫需要被聲明。調(diào)用過程中需要保證傳遞參數(shù)類型的一致性,這樣才能保證Fortran DLL被Visual Basic設(shè)計(jì)界面正確調(diào)用。因?yàn)镕ortran和Visual Basic兩種語言在定義數(shù)據(jù)類型時(shí),存在不一致性,所以需要將Fortran程序的參數(shù)類型在Visual Basic的Declare語句中的參數(shù)列表中,與Visual Basic實(shí)現(xiàn)正確對應(yīng)。傳遞數(shù)組參數(shù)時(shí),還需要在Visual Basic參數(shù)列表的對應(yīng)位置放上數(shù)組的第一個(gè)元素作為參數(shù)[1]。

2 水庫群聯(lián)合優(yōu)化調(diào)度模型及算法

2.1 粒子群優(yōu)化算法基本原理

粒子群優(yōu)化算法模型里的每個(gè)粒子都有位置和速度這兩個(gè)因素。每個(gè)粒子對當(dāng)前的最優(yōu)粒子具有一個(gè)趨勢,并在解空間中進(jìn)行搜索。粒子群優(yōu)化算法中的每次迭代的過程不是隨機(jī)進(jìn)行的,而是根據(jù)較優(yōu)的解對最優(yōu)解進(jìn)行搜索。

搜索過程中粒子的速度和位置按公式(1)和(2)進(jìn)行更新:

式中:i=1,2,…,m,m為種群中粒子個(gè)數(shù);j=1,2,…,n,n為空間向量的維數(shù);c1,c2為學(xué)習(xí)因子,均為非負(fù)實(shí)數(shù)通常令C1=C2=2;r1,r2為[0,1]區(qū)間內(nèi)的隨機(jī)數(shù);vij為粒子i的速度,vij∈[-vimax,vimax]。

粒子當(dāng)前的位置需要通過修正最大速度vmax來實(shí)現(xiàn),粒子可能因?yàn)関max過大而錯(cuò)過最優(yōu)解;相反可能會(huì)因?yàn)関max過小,而使整體算法搜索速度降低,影響算法效率,尤其當(dāng)粒子處于某一局部最優(yōu)解附近時(shí),可能因?yàn)関max過小而于陷入局部最優(yōu)解,粒子群算法的流程如圖1:

圖1 粒子群算法流程圖

2.2 聯(lián)合調(diào)度規(guī)則

水庫在供水的同時(shí),需要保證水庫下游河道的最小生態(tài)流量要求,在滿足最小環(huán)境流量的前提下進(jìn)行水庫直供及下游供水。水庫各項(xiàng)供水保證率及最大破壞深度見表1。

表1 各供水用戶供水保證率及破壞深度

各水庫在聯(lián)合調(diào)度時(shí),按照供水調(diào)度圖及調(diào)水調(diào)度圖進(jìn)行調(diào)度,以水庫時(shí)段初的蓄水位S(t)所在調(diào)度圖區(qū)域?yàn)橐罁?jù),判斷當(dāng)前時(shí)段水庫應(yīng)該加大供水、限制供水、正常供水或棄水。

2.3 目標(biāo)函數(shù)與決策變量

水庫聯(lián)合優(yōu)化調(diào)度模型以多年平均供水量最大且缺水量和棄水量最小為目標(biāo)函數(shù),各供水用戶需滿足供水保證率及破壞深度要求。模型應(yīng)以各用戶

的供水限制線及調(diào)水限制線為決策標(biāo)量,在滿足上述調(diào)度規(guī)則的前提下進(jìn)行優(yōu)化實(shí)現(xiàn)。

3 應(yīng)用實(shí)例——遼寧省北線水庫群調(diào)度系統(tǒng)開發(fā)

3.1 系統(tǒng)組成

水庫群聯(lián)合調(diào)度系統(tǒng)由人機(jī)交互界面、調(diào)度模型庫和數(shù)據(jù)庫組成。系統(tǒng)組成示意圖見圖2:

圖2 北線水庫群聯(lián)合調(diào)度系統(tǒng)組成示意圖

數(shù)據(jù)庫為調(diào)度計(jì)算提供基本數(shù)據(jù)資料,計(jì)算最終結(jié)果也保存其中。水庫基本資料數(shù)據(jù)庫包括:水位~庫容曲線、水位~面積曲線、水庫特征水位參數(shù)表、蒸發(fā)滲漏損失系數(shù)等;水文徑流數(shù)據(jù)庫存儲(chǔ)各流域各區(qū)間天然徑流長系列值及位置示意圖;用水戶需水?dāng)?shù)據(jù)庫存儲(chǔ)各流域區(qū)間用水戶的蓄水量及要求的供水保證率;調(diào)度數(shù)據(jù)庫存儲(chǔ)優(yōu)化后的水庫調(diào)度圖以及水庫群模擬優(yōu)化調(diào)度的結(jié)果[2]。

3.2 建立優(yōu)化調(diào)度模型庫

根據(jù)不同要求,選取不同目標(biāo)的權(quán)重,建立數(shù)學(xué)模型,并采用PSO優(yōu)化求解方法,用以水庫調(diào)度圖的尋優(yōu)計(jì)算,進(jìn)行水庫群聯(lián)合優(yōu)化模擬調(diào)度,并輸出各流域各用水戶的供水狀態(tài)以及水庫的水位狀態(tài),供研究人員對整個(gè)供水系統(tǒng)進(jìn)行綜合效益分析,指導(dǎo)規(guī)劃人員進(jìn)行方案的比選,對供水系統(tǒng)內(nèi)部水庫的運(yùn)行參數(shù)進(jìn)行調(diào)整,以獲得最優(yōu)方案。

3.3 人機(jī)交互式界面

通過界面可以導(dǎo)入流域的徑流及需水量資料,并修改水庫的特征水位、各用水戶的用水保證率、已經(jīng)PSO粒子群算法的優(yōu)化參數(shù),通過水庫調(diào)度計(jì)算,在界面輸出各水庫優(yōu)化調(diào)度圖,并可打印輸出水庫供水多年平均成果統(tǒng)計(jì)表。系統(tǒng)運(yùn)行于Windows操作系統(tǒng)之上,由菜單欄、工作區(qū)、狀態(tài)欄等組成,界面如圖3所示:

圖3 水庫群聯(lián)合供水調(diào)度系統(tǒng)界面

菜單欄包括水庫調(diào)度規(guī)則優(yōu)化、水庫優(yōu)化調(diào)度模擬、打印、幫助、退出五個(gè)一級菜單?!八畮煺{(diào)度規(guī)則優(yōu)化”菜單用于對水庫調(diào)度圖進(jìn)行優(yōu)化計(jì)算;“水庫優(yōu)化調(diào)度模擬”菜單用于水庫采用已優(yōu)化的調(diào)度圖進(jìn)行長系列模擬優(yōu)化調(diào)度;“幫助”菜單提供調(diào)度幫助文本;“退出”菜單用于程序的退出。

4 結(jié) 論

1)研究過程中發(fā)現(xiàn),粒子群算法能以較高效率搜索函數(shù)的全局最優(yōu)解;本聯(lián)合調(diào)度系統(tǒng)中以調(diào)度圖中的供水調(diào)度線和調(diào)水控制線為決策變量,采用粒子群算法,得到最優(yōu)的水庫群聯(lián)合調(diào)度圖,較傳統(tǒng)的調(diào)度圖算法,無需進(jìn)行重復(fù)計(jì)算及經(jīng)驗(yàn)修正。在綜合利用水庫的調(diào)度中,能搜索得出調(diào)度圖的非劣解集,兼顧多個(gè)調(diào)度目標(biāo)。

2)調(diào)度系統(tǒng)充分利用Fortran在數(shù)值計(jì)算方面和VB在可視化方面的優(yōu)勢,實(shí)現(xiàn)程序資源的共享和可視化,節(jié)約時(shí)間和提高效率。原始數(shù)據(jù)由VB界面直接輸人或更改(前處理),通過調(diào)用Fortran動(dòng)態(tài)鏈接庫實(shí)現(xiàn)計(jì)算功能(后臺(tái)處理),將計(jì)算成果傳回VB程序并且利用VB可視化功能直觀顯示和分析。

3)結(jié)合實(shí)際算例的研究表明:基于VB與Fortran混合編程的水庫群調(diào)度系統(tǒng)有一定的實(shí)用性,且在數(shù)據(jù)輸入/輸出和處理方面具有相當(dāng)?shù)膬?yōu)勢。

[1]李學(xué)哲,白云,陳國新.Fortran 90與VB混合編程技術(shù)的研究與實(shí)現(xiàn)[J].蘇州科技學(xué)院學(xué)報(bào),2008(04):76-80.

[2]杜文娟,李建東.用VB和Fortran語言混合編程開發(fā)氣象軟件[J].氣象與環(huán)境科學(xué),2007(04):88-90.

Research on Optimal Scheduling System based on Fortran and VB Combined w ith Reservoir Group

QIYun-fei1and HU Fan2
(1.Planning Institute of LiaoningWater Conservancy&Hydroelectric Power Investigation,Design and Research Institute,Shenyang 110006,China;2.Liaoning ProvincialWater from East to West Project Construction Bureau,Shenyang 110003,China)

The basic method to mix programming in two languages of Visual Basic and Fortran is introduced in the paper,researching and solving the technological key of array transfer of structures between two languages.A optimal schedulingmodel combined with reservoir based on Fortran language is founded and the particle swarm optimization algorithm is adopted to solve.Finally,the advantage of human-computer interaction interface of VB and the strongpoint of numerical calculation of Fortran are combined,realizing the visualization of optimal scheduling calculation data input and output joint with reservoir group.

Fortran language;Visual Basic language;combined scheduling of reservoir group;particle swarm optimization algorithm;system development

TV697.12

B

2014-10-31

齊云飛(1978-),男,滿族,遼寧開原人,高級工程師,從事規(guī)劃、水資源配置與水利經(jīng)濟(jì)專業(yè);胡凡(1956-),男,廣西桂林人,高級工程師。

1007-7596(2015)06-0001-03

猜你喜歡
調(diào)用供水編程
編程,是一種態(tài)度
四會(huì)地豆鎮(zhèn)加快推進(jìn)農(nóng)村集中供水全覆蓋
元征X-431實(shí)測:奔馳發(fā)動(dòng)機(jī)編程
編程小能手
紡織機(jī)上誕生的編程
毗河供水一期工程
核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
供水產(chǎn)銷差的組成與管控建議