• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      DLL技術(shù)在水文預(yù)報系統(tǒng)中的應(yīng)用

      2012-04-30 01:57:00孫永紅狄艷艷
      水利信息化 2012年4期
      關(guān)鍵詞:調(diào)用水文計算結(jié)果

      孫永紅 ,陳 明 ,狄艷艷

      (1. 國電南自 南京河海南自水電自動化有限公司,江蘇 南京 210061;2. 黃河水利委員會水文局,河南 鄭州 450004)

      0 引言

      Library,DLL)是比較合適的方法。

      水文預(yù)報系統(tǒng)通過建立數(shù)據(jù)庫、知識庫、方法庫、模型庫、圖形庫及綜合推理機,對未來一定預(yù)見期內(nèi)的水文狀況做出預(yù)測,對防洪減災(zāi)和水資源的優(yōu)化調(diào)度都具有積極的意義。

      近年來,水文預(yù)報系統(tǒng)越來越廣泛地被應(yīng)用到許多領(lǐng)域,如城市防洪、水庫調(diào)度等。水文預(yù)報是相當復(fù)雜的過程,受地理、氣候的影響比較大,且隨著氣候和地形地貌的變化,常常需要采用幾個模型進行預(yù)報并比較。這就要求預(yù)報系統(tǒng)具有兼容性和可擴展性。

      現(xiàn)行的水文預(yù)報模型屬于以物理成因為基礎(chǔ),具有一定經(jīng)驗性的范疇[1]。水文預(yù)報系統(tǒng)涉及的內(nèi)容較多,從數(shù)據(jù)采集傳輸、解析存儲、運用水文模型進行計算到最終顯示發(fā)布,這些過程若采用同一種程序設(shè)計語言,難以發(fā)揮各自的優(yōu)勢。如 VB 易學(xué)易用,開發(fā)出來的軟件體積?。籚C 在底層功能和指針方面的支持較好;C# 適用于面向網(wǎng)絡(luò)的顯示和發(fā)布。

      目前,VB 主要用于模型構(gòu)建和計算,計算結(jié)果通過 ASP.Net 進行信息發(fā)布和與客戶端交互。要在整個系統(tǒng)中充分發(fā)揮各種語言的優(yōu)勢,充分利用現(xiàn)有的程序資源,使用動態(tài)鏈接庫(Dynamic Linking

      1 DLL 技術(shù)的優(yōu)越性

      DLL 一般以函數(shù)庫的形式供應(yīng)用程序調(diào)用,其應(yīng)用于水文預(yù)報系統(tǒng)的優(yōu)越性主要表現(xiàn)在以下幾個方面:

      1)便于不同專業(yè)模塊的集成。不同專業(yè)集成系統(tǒng)往往涉及很多專業(yè)應(yīng)用,不同的專業(yè)適合的語言可能不同, DLL 技術(shù)通過接口交互,使得不同專業(yè)模塊的集成成為可能。如:大壩安全評估、水文預(yù)報、水庫調(diào)度分屬不同專業(yè)模塊,但相互之間關(guān)系密切,水庫調(diào)度以水文預(yù)報結(jié)果為基礎(chǔ),調(diào)度決策又要考慮到大壩安全,這些不同專業(yè)之間的相互調(diào)用可通過 DLL 完成。

      2)便于系統(tǒng)升級。只需在程序升級時,替換庫函數(shù),不會影響系統(tǒng)其他部分。如:流域氣候或下墊面等因素發(fā)生變化,水文預(yù)報模型可能會跟著改變,此時只要將水文預(yù)報部分通過 DLL 替換掉,與之相關(guān)聯(lián)的其他專業(yè)模塊不受影響。

      3)提高工作效率。不同語言編寫的應(yīng)用程序都可以使用同一個 DLL,且 DLL 可與其他程序部分同時進行編程,可以縮短工期,提高效率。如:水文預(yù)報模塊只需提供給水庫調(diào)度模塊 DLL 函數(shù),使其得到洪水過程線即可,模塊內(nèi)部程序不影響調(diào)用結(jié)構(gòu)。因此各模塊可同步進行編程調(diào)試。

      4)節(jié)約內(nèi)存,提高系統(tǒng)運行速度。DLL 只有在被調(diào)用時才裝入內(nèi)存運行,且多個程序使用相同的 DLL 時,只需在內(nèi)存中裝載 1 次,這樣就節(jié)省數(shù)百兆甚至上千兆的內(nèi)存開銷。

      2 用 VB 創(chuàng)建及測試水文預(yù)報模型 .DLL

      水文預(yù)報模型有多種,基本上都是由模型參數(shù)、輸入數(shù)據(jù)、計算流程、輸出數(shù)據(jù)等幾部分組成。

      下面以水文預(yù)報系統(tǒng)的三水源新安江水文預(yù)報模型為例編寫 DLL。

      在這個 DLL 中,包含了新安江模型水文預(yù)報的各個流程,從設(shè)置模型參數(shù)、讀取實測值到按時段計算,以及輸出計算結(jié)果。這些參數(shù)值和實測值以虛參數(shù)組的形式體現(xiàn),調(diào)用時,讀取數(shù)據(jù)庫中實際值或用戶輸入值作為實參數(shù)組進行調(diào)用,最后得到計算結(jié)果,這里應(yīng)用的是洪水流量過程線。

      1)步驟 1。啟動 VB6.0,新建工程,選擇ActiveX DLL,打開,工程名改為 XAJ,類模塊命名為 xinanjiang.dll,然后定義參數(shù),并計算:

      Public Sub XAJ(xaj_p(15) As float, xaj_i(8) As float, xaj_c(3) As float, p( ) As float, ep( ) As float, qq( )As float, QR( ) As float, RR0 As float,N as integer)

      其中:xaj_p(15)——設(shè)置模型參數(shù)名稱;

      xaj_i(8)——設(shè)置模型參數(shù)值,可針對地理氣候條件交互設(shè)置,針對某個地區(qū)一般為常量;

      xaj_c(3)——設(shè)置模型啟動時起始值,如根據(jù)前期天氣情況設(shè)置土壤墑情等值;

      p( )——實時降雨量,模擬降雨量;

      ep( )——實時蒸發(fā)量,模擬蒸發(fā)量;

      qq( )——實時區(qū)間來水量,模擬區(qū)間來水量;

      QR( )——計算出的流量;

      RR0——初始流量;

      N——實時數(shù)據(jù)數(shù)組的個數(shù)

      Dim I as integer——設(shè)置 I 為循環(huán)變量(整數(shù)型)。

      以下是計算過程,求出 QR( )數(shù)據(jù),返回

      完成保存工作后,選擇“文件-生成 XAJ.dll”,確定。

      2)步驟 2。文件-添加工程,選擇標準 EXE,打開,生成窗體 form1,改名為“測試窗口”,保存。添加測試窗體的目的是為了修改和調(diào)試 DLL。

      3)步驟 3。工程-引用,在對話框中勾選“XAJ”,確定。

      4)步驟 4。在 form1 的代碼窗口輸入:

      5)步驟 5。將測試窗口工程設(shè)置為啟動工程。運行-啟動,程序自動將計算結(jié)果寫到相應(yīng)數(shù)據(jù)文件中。這里計算結(jié)果是寫到 1 個 TXT 文件里,如果要寫到其他類型的數(shù)據(jù)庫中,只要在 DLL 中寫數(shù)據(jù)部分連接不同的數(shù)據(jù)庫,并按照相應(yīng)字段寫入即可。

      6)步驟 6。文件-保存工程組,組名改為XAJ。下次修改 DLL 時,打開 XAJ.vbg,修改后重新編譯生成 XAJ.dll,代替原來的 DLL 文件。調(diào)用時,重復(fù)步驟 3~5 即可。

      3 在 ASP.Net 中調(diào)用 VB 創(chuàng)建的 DLL

      ASP.Net 可以與傳統(tǒng) ASP 并行運行,但編程速度遠非 ASP 可比,用于創(chuàng)建更快、更強大和功能更全的 Web 應(yīng)用程序[2]。

      1)步驟 1。在開始-運行中輸入 regsvr32 C:WINDOWSsystem32 XAJ.dll,進行注冊。

      2)步驟 2。在 Calculation.asp 中編寫代碼:

      讀取數(shù)據(jù)庫:

      數(shù)據(jù)表內(nèi)容在界面上以表格形式顯示,如表1所示。

      表1 數(shù)據(jù)表內(nèi)容

      計算時,可以直接采用默認值,也可以輸入?yún)?shù)值, 進行參數(shù)設(shè)置,

      其他水文模型的創(chuàng)建和調(diào)用過程類似,核心就是通過函數(shù)調(diào)用進行數(shù)據(jù)的傳遞,實現(xiàn)水文預(yù)報計算、發(fā)布等多個過程的集成,使之成為一個有機的整體。

      4 結(jié)語

      以上水文預(yù)報模型 .DLL 程序編寫和在 ASP.Net中的調(diào)用實例證明,使用 DLL 技術(shù)實現(xiàn)水文預(yù)報的方法是切實有效的。使用 DLL 技術(shù)不僅可以利用多種語言各自的優(yōu)勢,加快系統(tǒng)開發(fā)和運行速度,還能對程序的核心代碼進行封裝保護,使得系統(tǒng)更安全[3]、更易于維護和擴展。例如,在桃山水庫洪水預(yù)報系統(tǒng)中,一期工程采用大伙房產(chǎn)流模型和瞬時單位線作為水庫流域的產(chǎn)流預(yù)報和匯流模型,后來由于干流入庫控制水文站搬遷重建、河道漫灘嚴重,因此,二期工程中,洪水預(yù)報軟件進行了升級,增加了新安江模型和分段分層河道演算模型 .DLL。經(jīng)過對照預(yù)報,發(fā)現(xiàn)降雨量大于 100 mm時,大伙房模型比新安江模型合格率高一些;反之,降雨量小于 100 mm 時,大伙房模型比新安江模型合格率低一些。通過總結(jié)經(jīng)驗,提高了水文預(yù)報精度。使用了 DLL 技術(shù)后,系統(tǒng)沒有因為增加了模型而變得臃腫耗時,可見 DLL 技術(shù)對于多模型系統(tǒng)是比較有效的。

      [1]林三益. 水文預(yù)報[M]. 2 版. 北京:中國水利水電出版社,2001: 4.

      [2][美]G.Andrew Duthie. ASP.Net 程序設(shè)計[M]. 李萬倫,何蕾,趙海,譯. 北京:清華大學(xué)出版社,2002: 11-12.

      [3]李明剛,肖健. ASP.Net Web 站點高級編程范例[M]. 北京:清華大學(xué)出版社,2004: 1-2.

      猜你喜歡
      調(diào)用水文計算結(jié)果
      2022年《中國水文年報》發(fā)布
      水文
      水文水資源管理
      不等高軟橫跨橫向承力索計算及計算結(jié)果判斷研究
      甘肅科技(2020年20期)2020-04-13 00:30:40
      核電項目物項調(diào)用管理的應(yīng)用研究
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      水文
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      超壓測試方法對炸藥TNT當量計算結(jié)果的影響
      噪聲對介質(zhì)損耗角正切計算結(jié)果的影響
      桂阳县| 合川市| 柳州市| 阜宁县| 响水县| 永吉县| 广汉市| 石棉县| 辉县市| 怀集县| 旅游| 荥阳市| 大悟县| 新郑市| 南投市| 灵宝市| 友谊县| 石棉县| 勃利县| 衡南县| 清流县| 盖州市| 延安市| 茌平县| 昌江| 菏泽市| 湛江市| 银川市| 新昌县| 瓮安县| 陇南市| 丰台区| 香港| 鄱阳县| 玉溪市| 柞水县| 定南县| 时尚| 沐川县| 嵩明县| 仁化县|