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

?

基于Excel+VBA平臺流量計算程序的研建

2020-06-12 08:11王昌平鄒文安
海河水利 2020年3期
關(guān)鍵詞:垂線單元格水深

王昌平,鄒文安

(1.江蘇省水文水資源勘測局鹽城分局,江蘇 鹽城 224000;2.吉林省水文水資源局,吉林 長春 130022)

1 引言

流量是指單位時間內(nèi)通過某一過水?dāng)嗝娴乃w體積,是水文部門主要監(jiān)測項目之一。流量測驗作業(yè)主要包括起點距、水深、流速、水位等水文要素測量。在流量施測過程中,由于河床和水流的不確定性,導(dǎo)致各要素監(jiān)測時具有很大的隨機性,同一水文站點各次流量計算會有較大的差異性,會出現(xiàn)陡岸邊、測深不測速、多點法、多臺儀器施測等特殊情況,存在流量計算易出錯、重復(fù)性高、耗時耗力等諸多問題。流量計算是對現(xiàn)場實測流量數(shù)據(jù)信息進行整理、分析,依據(jù)相關(guān)公式,通過測點流速計算、垂線平均流速計算、部分面積計算、垂線間流量計算和數(shù)據(jù)有效位數(shù)取舍等步驟進行的。近些年來,隨著計算機的廣泛應(yīng)用,水文基層站隊均配置了計算機等設(shè)備,以計算機為平臺研發(fā)流量計算程序已勢在必行。

基于上述原因,本文結(jié)合生產(chǎn)單位需求,以Ex?cel+VBA 為技術(shù)平臺,開發(fā)了流量計算程序。該程序集數(shù)據(jù)錄入與計算、成果顯示與輸出為一體,解決了陡岸邊、測深不測速、多點法等特殊情況下流量計算問題,具有計算成果表標準格式打印輸出和存儲功能,大大地提高了工作效率和技術(shù)含量,降低了工作成本,解決了多年來困擾水文基層站隊的一項技術(shù)難題。

2 流量計算方法

通常情況下,流量計算主要包括水面寬、水深、流速、面積和流量計算等幾個部分。其中,水面寬為相鄰測深垂線的間距,等于相鄰測深垂線對應(yīng)的起點距差值;水深是指測深垂線間的平均水深,等于相鄰垂線水深的均值;測點流速等于流速儀轉(zhuǎn)數(shù)除以測速歷時,垂線平均流速等于各測點流速均值;部分面積等于相鄰測深垂線間水面寬與平均水深的乘積;部分流量等于相鄰測速垂線間面積與平均流速的乘積。

由于流量計算公式較多,本文僅列出流量計算基本公式[1],見式(1)—(6)。

式中:ΔBi為相鄰測深垂線間的水面寬(m);Bi+1,Bi分別為第i+1 條,第i條測深垂線對應(yīng)的起點距(m);為相鄰測深垂線間的平均水深(m);Hi+1,Hi分別為第i+1條,第i條測深垂線對應(yīng)的實測水深(m);i為測深垂線序列號;Vi為測點流速(m/s);N為流速儀轉(zhuǎn)速,用轉(zhuǎn)數(shù)表示;T為流速儀測速歷時(s);C為常數(shù);V為垂線平均流速(m/s);n為垂線測點流速個數(shù);F為測深垂線間面積(m2);Q為測速垂線間流量(m3/s)。

3 程序架構(gòu)

3.1 技術(shù)平臺

本程序兼容Windows XP/Win7/Win10 計算機操作系統(tǒng),支持Microsoft Office 2003 及以上版本辦公軟件。在Excel+VBA平臺下進行開發(fā),利用Excel工作表的輸入、輸出在同一工作簿的特點,最大限度地利用Excel 工作表數(shù)據(jù)錄入、定位、鏈接和表格制作等功能,提高程序開發(fā)效率,減少VBA程序代碼的耦合度[2]。

3.2 程序設(shè)計

3.2.1 設(shè)計思路

依托Excel工作表,完成原始信息錄入和成果表制作,利用單元格和內(nèi)置函數(shù)完成信息鏈接、數(shù)據(jù)處理和顯示,采用VBA 編程完成數(shù)據(jù)處理、判斷、計算、有效位數(shù)取舍、存儲、成果輸出和打?。?-4]。

3.2.2 程序結(jié)構(gòu)

按照原始信息錄入、計算控制(代碼編程)、計算結(jié)果顯示、成果輸出等界面結(jié)構(gòu)進行軟件編程。本程序根據(jù)流量計算、輸出需要,在1 個“流量程序.xls”工作簿中完成全部計算、存儲和輸出任務(wù)。程序設(shè)置了5 個Excel 工作表和5 個命令按鈕,其功能與作用詳見表1。

表1 流量計算程序架構(gòu)

3.2.3 信息錄入

以Excel工作表單元格定位形式錄入,分別錄入站名、流量編號、水位等流量基本信息以及起點距、水深、測速等實測信息。

3.2.4 計算控制

計算控制是本程序的核心內(nèi)容,通過VBA代碼編程來實現(xiàn)。其主要內(nèi)容包括水面寬、水深、流速、面積和流量計算,不同要素有效位數(shù)自動取舍,陡岸邊、測深不測速、多點法等特殊情況的判斷、數(shù)據(jù)處理和計算,特征值挑選、統(tǒng)計以及階段計算結(jié)果轉(zhuǎn)存、賦值、顯示等。

3.2.5 存儲

將流量錄入信息、計算成果等以工作簿形式整體轉(zhuǎn)存至指定的計算機硬盤目錄下。

3.2.6 顯示與輸出

首先是流量計算中部分結(jié)果顯示與瀏覽;其次是水文資料整編標準格式下的流量計算成果表顯示與打?。?]。

3.3 流程設(shè)計

首先是基本信息和監(jiān)測數(shù)據(jù)錄入,其次是信息鏈接和流量計算,最后是計算結(jié)果顯示。

4 實現(xiàn)方法

4.1 信息錄入

信息錄入就是對程序的賦值,以文字、數(shù)據(jù)為主。錄入的信息主要包括流量實測基本信息和監(jiān)測數(shù)據(jù)兩部分,是實測流量必備的基礎(chǔ)信息。其中,基本信息主要有站名、施測時間、水位等,監(jiān)測數(shù)據(jù)信息主要有起點距、水深、測速等。

錄入方法如下:利用Excel 工作表編輯功能,對單元格進行定位賦值;再利用Excel 工作表鏈接功能,實現(xiàn)錄入信息在不同工作表中的單元格定位鏈接。本程序是將“基本信息錄入表”和“監(jiān)測數(shù)據(jù)錄入表”錄入的信息分別定位鏈接“站測深、測速及流量計算校對表(計算表)”和“站流量、懸移質(zhì)輸沙率測驗記載計算表(成果表)”,供流量計算、顯示和成果輸出使用。

4.2 流量計算

4.2.1 水面寬計算

水面寬是通過起點距來計算的,即利用Excel工作表同一列單元格相減(后單元格減前單元格)來完成的,參見式(1)。

最后一個起點距,也就是施測河道的另一側(cè)水岸邊,單元格相減結(jié)果為負值,實際上該值應(yīng)等于0。通過VBA 代碼判斷其小于0,對應(yīng)指令為If Val(Range("h6").Text)<0;然后令其等于0來實現(xiàn),對應(yīng)VBA 編程代碼為"=RC[-6]-RC[-6]",其他垂線依此類推。

4.2.2 水深計算

水深計算是指測深垂線間的平均水深計算,等于同一列單元格相鄰垂線水深的均值(相鄰單元格和的1/2),參見式(2)。

水深計算完成后,需要對其有效位數(shù)進行處理。由于水深有效位數(shù)是統(tǒng)一的、固定的,可采用一個模塊編程,集中在一個單元格進行有效位數(shù)取舍,即將待處理的水深逐個代換到該單元格,處理后再代換到原來單元格。

調(diào)用子程序代碼為:Application.Run "流量程序.xls!水深取舍運算"。

4.2.3 流速計算

流速計算是流量計算核心內(nèi)容之一,要考慮一條垂線一點測速、兩點測速,測深不測速、岸邊系數(shù)、流速儀型號以及流速有效位數(shù)取舍等多種情況,計算復(fù)雜而繁瑣。

VBA 代碼是通過起點距信息和流速儀測點信息綜合判斷屬于哪一種情況。如果一條垂線一點測速,在“yslr”工作表中“相對位置”欄填寫0.6 或 0.5;如果是兩點、三點測速,在“相對位置”欄填寫33或3(該數(shù)字用于邏輯判斷,可自定);如果測深不測速,“相對位置”“轉(zhuǎn)速”“歷時”欄均為空白。流速有效位數(shù)取舍程序設(shè)計思路與水深取舍處理方法基本相同。

以單元格z14為例,流速計算代碼為:

4.2.4 面積計算

面積計算分為測深垂線間面積計算和測速垂線間面積計算兩種情況。如果測深垂線均測速,那么這兩部分面積是相等的;當(dāng)有測深不測速(通過有無流速判斷)時,測速垂線間面積應(yīng)等于測深垂線間面積相加。

面積有效位數(shù)取舍程序設(shè)計思路與水深取舍處理方法基本相同。

4.2.5 流量計算

流量計算等于測速垂線間面積乘以垂線平均流速。以單元格ac13為例,流量計算部分代碼如下:

流量有效位數(shù)取舍程序設(shè)計思路與水深取舍處理方法基本相同。

4.3 數(shù)據(jù)存儲

數(shù)據(jù)存儲是將各次流量計算成果以完整的工作簿形式整體保存。事先在計算機硬盤下建立存儲文件夾,以各次流量編號加年份(即站名+編號+年份)進行文件命名,如“泉太27—2018.xls”。其中,“站名”“編號”“年份”均為 Excel 工作表“yslr”錄入信息。這樣命名文件好處是具有唯一性,避免文件重復(fù)命名、存儲時成果覆蓋。數(shù)據(jù)存儲VBA代碼編程事件為:

4.4 成果打印

流量計算應(yīng)以表格形式輸出,以便存檔保管。按照水文資料整編技術(shù)要求,本軟件直接利用Excel工作表制作了標準格式的流量計算成果表,表格大小、填寫內(nèi)容等均符合水文資料整編要求。

成果表打印分為表格正面打印和表格反面打印兩部分。其中,表格正面為基本信息和計算成果,表格反面為監(jiān)測數(shù)據(jù)和計算結(jié)果。打印是通過單擊命令按鈕形式進行的,VBA代碼編程事件為:

Private Sub CommandButton4_Click()

MsgBox"請用打印表(1)背面打印,表頭朝左側(cè)放置,單擊“確定”,再打印!"

Sheets("dyb2").Select

ActiveWindow.SelectedSheets.PrintOutCopies:=1,

Collate:=True,IgnorePrintAreas:=False

End Sub

4.5 清屏處理

流量每計算一次都會在Excel 工作表上留下許多信息,這些信息會影響下一次流量計算。為此,每次流量計算完畢、存儲后,應(yīng)及時清除這些信息(即清屏),確保下次流量計算不受影響。清屏是通過單擊命令按鈕形式進行的,通過調(diào)用一個程序模塊,實現(xiàn)清屏任務(wù)。以工作表“scb”為例,VBA代碼編程事件為:

5 幾種特殊情況的處理方法

本程序?qū)崿F(xiàn)了陡岸邊、測深不測速、多點法等特殊情況下的流量計算,流量計算具有一定的兼容性。其中,陡岸邊是采用第一條和最后一條測深垂線對應(yīng)的實測水深均參加垂線平均水深計算方式來解決的;測深不測速是通過是否有流速信息來判斷的,若錄入信息無測速記錄(如空白),則認定該條測深垂線為只測深不測速;多點法是通過相鄰起點距是否相同進行判斷,若錄入信息中的相鄰測深垂線對應(yīng)的起點距相同,則認定為多點法測速(二點法、三點法);更換流速儀是通過錄入表中測速垂線前的特定單元格有無流速儀信息(如設(shè)定數(shù)字2)進行判斷的,若有流速儀信息,則采用其他公式計算流速(流速計算公式需要事先錄入)。

計算成果表輸出格式、有效位數(shù)、信息填充等是采用預(yù)先制定好表格、利用Excel單元格鏈接和內(nèi)置函數(shù)分析判斷處理的,應(yīng)符合水文資料整編要求。

6 結(jié)論

(1)本程序適合基層水文部門河道流量計算,已在吉林省部分水文站進行了生產(chǎn)應(yīng)用。結(jié)果表明,流量計算精度準確可靠,輸出的成果表滿足水文資料整編要求;使用該程序計算流量提高了工作效率和工作質(zhì)量,收到了良好的效果,有進一步推廣應(yīng)用價值。

(2)本程序?qū)崿F(xiàn)了陡岸邊、兩點法、三點法、測深不測速、兩部儀器測流等特殊情況下的流量計算,基本上滿足了現(xiàn)階段水文站河道流量計算要求。

(3)采用Excel+VBA編程適用于數(shù)據(jù)錄入、統(tǒng)計計算、表格制作等條件下的程序開發(fā)設(shè)計,具有錄入界面直觀、數(shù)據(jù)可視性好、表格制作簡單、部分代碼可逆向操作進行錄制等優(yōu)勢[4],不足之處是部分單元格需要進行定位編程。

(4)本程序基于Excel 工作表平臺設(shè)計,操作程序簡便,人機交互性能好,不需要任何商用軟件或進行專門的模型軟件開發(fā),只需在常規(guī)電腦上基于Microsoft Office辦公軟件即可操作使用,既節(jié)約了模型開發(fā)成本,也方便了用戶推廣使用。

猜你喜歡
垂線單元格水深
書法靜水深流
顧及特征水深點距離重分配的反距離加權(quán)插值算法
多角度思維實現(xiàn)平面與立體的轉(zhuǎn)化——學(xué)習(xí)微專題《明修棧道(作垂線)、暗度陳倉(找垂足)》有感
畫垂線的方法
近岸懸沙垂線分布多元線性回歸分析
合并單元格 公式巧錄入
流水賬分類統(tǒng)計巧實現(xiàn)
玩轉(zhuǎn)方格
玩轉(zhuǎn)方格
Global health training in Canadian family medicine residency programmes