余軍強(qiáng) 鄭宣東 周思宇 徐靈靈
摘要:為縮短ADCP(聲學(xué)多普勒流速剖面儀)測(cè)驗(yàn)前期準(zhǔn)備時(shí)間,減少參數(shù)輸入差錯(cuò),達(dá)到多測(cè)站流量快速巡測(cè)、精準(zhǔn)測(cè)驗(yàn)?zāi)康?,采用Visual Studio.NET設(shè)計(jì)了ADCP流量測(cè)驗(yàn)輔助程序。該程序內(nèi)置GNSS導(dǎo)航模塊,能夠指示大斷面起點(diǎn)距和偏距,實(shí)現(xiàn)一步操作完成ADCP測(cè)驗(yàn)和GNSS導(dǎo)航工作。結(jié)果表明:ADCP流量測(cè)驗(yàn)輔助程序既保障了水文測(cè)驗(yàn)成果精度,也提高了水文測(cè)驗(yàn)工作效率,同時(shí)深化了水文流量測(cè)驗(yàn)新技術(shù)的探索與發(fā)展。該程序經(jīng)過(guò)1a來(lái)的多次測(cè)驗(yàn)使用,效果良好。
關(guān)鍵詞: ADCP;流量測(cè)驗(yàn);Visual Studio.NET
中圖法分類號(hào):P332.4 文獻(xiàn)標(biāo)志碼:A DOI:10.15974/j.cnki.slsdkb.2021.05.012
文章編號(hào):1006 - 0081(2021)05 - 0049 - 05
1 程序概況
ADCP測(cè)驗(yàn)技術(shù)已廣泛應(yīng)用于江河湖海水文測(cè)驗(yàn),流量測(cè)驗(yàn)軟件WinRiver II在使用中需錄入各種參數(shù)和命令,易于出錯(cuò),每次測(cè)驗(yàn)基礎(chǔ)工作重復(fù),輸入繁雜[1-2]。鑒于此,采用Visual Studio.NET設(shè)計(jì)了ADCP流量測(cè)驗(yàn)輔助程序,并使測(cè)驗(yàn)軟件WinRiver II操作過(guò)程簡(jiǎn)便化、程序化、系統(tǒng)化,以達(dá)到測(cè)驗(yàn)前期工作簡(jiǎn)便且一步到位的效果。同時(shí),為了確保WinRiver II航線航跡準(zhǔn)確,編寫(xiě)了GNSS導(dǎo)航偏離指示條,可不再運(yùn)行其他軟件,指示測(cè)驗(yàn)斷面起點(diǎn)距和偏距,實(shí)現(xiàn)一步操作完成ADCP測(cè)驗(yàn)和GNSS導(dǎo)航工作。
2 程序模塊
采用Visual Studio.NET中高級(jí)程序語(yǔ)言Visual Basic.NET設(shè)計(jì)《ADCP流量測(cè)驗(yàn)輔助程序》,使用SQLite本地?cái)?shù)據(jù)庫(kù)進(jìn)行水文系統(tǒng)單位分級(jí)管理、測(cè)驗(yàn)基礎(chǔ)參數(shù)和ADCP測(cè)驗(yàn)控制的信息一體化[3-7],簡(jiǎn)化ADCP測(cè)驗(yàn)操作流程。結(jié)合GNSS導(dǎo)航定位模塊,根據(jù)SQLite數(shù)據(jù)庫(kù)的測(cè)站參數(shù),計(jì)算北京85和CGCS2000平面坐標(biāo)[1-2],以解決ADCP測(cè)驗(yàn)航線航跡信息反饋過(guò)程,為水文巡測(cè)船引導(dǎo)航行,從而提高測(cè)驗(yàn)精度。同時(shí)程序界面友好,結(jié)構(gòu)簡(jiǎn)單直觀,測(cè)驗(yàn)流程智能化,以便快速測(cè)驗(yàn)、規(guī)范操作。ADCP測(cè)驗(yàn)輔助程序主要模塊包括以下5點(diǎn)。
(1)StartForm啟動(dòng)窗體,引入系統(tǒng)狀態(tài)條快捷操作方式。
(2)AdcpForm測(cè)驗(yàn)設(shè)置窗體,通過(guò)數(shù)據(jù)庫(kù)規(guī)劃多站點(diǎn)ADCP測(cè)驗(yàn)基礎(chǔ)參數(shù)[1-5]。
(3)DeviateForm導(dǎo)航偏離窗體,通過(guò)GNSS的GGA定位數(shù)據(jù)實(shí)施導(dǎo)航偏離、斷面起點(diǎn)距指示等。
(4)StationConfigForm測(cè)站配置窗體,設(shè)置或修改測(cè)站測(cè)驗(yàn)參數(shù)。
(5)MainModule主模塊,常用函數(shù)和模塊。
3 程序設(shè)置、導(dǎo)航及測(cè)站配置
3.1 設(shè)置與使用
ADCP流量測(cè)驗(yàn)輔助程序運(yùn)行后,駐留在操作系統(tǒng)任務(wù)欄(圖1)
(1)測(cè)站設(shè)置。首次運(yùn)行程序,要進(jìn)行測(cè)站相應(yīng)參數(shù)配置,以便測(cè)驗(yàn)時(shí)獲得測(cè)站的完整正確參數(shù)。
(2)常規(guī)設(shè)置。選擇測(cè)站、測(cè)次、開(kāi)始水位、風(fēng)力風(fēng)向、天氣情況、斷面最大水深、ADCP用戶命令等(測(cè)次首次輸入正確后,下次自動(dòng)產(chǎn)生正確測(cè)次)。設(shè)置完成后,即可點(diǎn)擊[開(kāi)始測(cè)量],形成測(cè)驗(yàn)使用的MMT測(cè)驗(yàn)工程文件,并自動(dòng)運(yùn)行WinRiver II程序打開(kāi)本次形成的測(cè)驗(yàn)工程文件,從而進(jìn)行測(cè)試或測(cè)驗(yàn)。
(3)外圍設(shè)備設(shè)置??勺孕卸x修改WinRiver II外圍串口設(shè)備GNSS和羅經(jīng),以及本程序?qū)Ш蕉丝谠O(shè)置??稍O(shè)置本程序啟動(dòng)時(shí),窗體是否自動(dòng)打開(kāi)的默認(rèn)方式,是否進(jìn)行語(yǔ)言播報(bào)偏航距,以及偏航條窗體透明度等。
若要實(shí)現(xiàn)多個(gè)巡測(cè)站進(jìn)行測(cè)驗(yàn),只要點(diǎn)擊任務(wù)欄ADCP流量測(cè)驗(yàn)輔助程序圖標(biāo),在ADCP測(cè)驗(yàn)配置更改測(cè)站和相關(guān)配置,修改自定義ADCP用戶命令,以適應(yīng)測(cè)站斷面,點(diǎn)擊“開(kāi)始測(cè)驗(yàn)”按鈕即可,同時(shí)測(cè)次、用戶命令自動(dòng)保存在相應(yīng)測(cè)站數(shù)據(jù)庫(kù)中,以待下次該站進(jìn)行流量測(cè)驗(yàn)。設(shè)置界面如圖2~3所示。
3.2 ADCP測(cè)驗(yàn)斷面線同步導(dǎo)航
在ADCP流量測(cè)驗(yàn)輔助程序測(cè)驗(yàn)設(shè)置中,選擇測(cè)站后,自動(dòng)調(diào)用相關(guān)參數(shù)。根據(jù)三參數(shù)進(jìn)行坐標(biāo)轉(zhuǎn)換,將GNSS坐標(biāo)轉(zhuǎn)換為北京54坐標(biāo)系(支持選擇CGCS2000坐標(biāo)系統(tǒng))。此外,計(jì)算測(cè)船GNSS位置相對(duì)斷面線的偏移距、相對(duì)斷面線中起的投影起點(diǎn)距(在斷面線上就是起點(diǎn)距)。ADCP測(cè)驗(yàn)輔助程序具備語(yǔ)音播報(bào)航跡偏距功能,偏距超過(guò)3 m進(jìn)行偏距語(yǔ)音播報(bào),具備顯示測(cè)船位置的上下游關(guān)系。
3.2.1 導(dǎo)航航跡偏離
導(dǎo)航界面設(shè)計(jì)置頂,通過(guò)合理設(shè)置透明度,不會(huì)遮擋WinRiver II程序。導(dǎo)航航跡偏離界面如圖4~5所示。
3.2.2 定位精度對(duì)比分析
在南咀站相同位置進(jìn)行GNSS定點(diǎn)定位測(cè)試,對(duì)比ADCP流量測(cè)驗(yàn)輔助程序?qū)Ш胶桔E偏距與商業(yè)軟件HYPACK航跡偏距數(shù)據(jù),通過(guò)數(shù)據(jù)比較分析,定位偏距精度可靠。程序?qū)Ш狡骄喽ㄎ粩?shù)據(jù)與HYPACK航跡偏距數(shù)據(jù)對(duì)比見(jiàn)圖6~7。
3.3 測(cè)站配置
任務(wù)欄程序右鍵菜單,點(diǎn)擊測(cè)站配置,進(jìn)入測(cè)站配置窗口,鼠標(biāo)右鍵支持單元格和行的復(fù)制、粘貼、刪除、排序和保存,即可添加、修改、刪除測(cè)站、測(cè)船和設(shè)備使用、測(cè)員參數(shù)(圖8~10)。
4 WinRiver II程序流量測(cè)驗(yàn)簡(jiǎn)介
對(duì)于ADCP流量測(cè)驗(yàn)輔助程序,點(diǎn)擊“開(kāi)始測(cè)驗(yàn)”后,自動(dòng)創(chuàng)建MMT測(cè)驗(yàn)工程文件,啟動(dòng)WinRiver II程序,并自動(dòng)打開(kāi)ADCP測(cè)驗(yàn)輔助程序形成的測(cè)驗(yàn)文件。在WinRiver II已經(jīng)設(shè)置好外圍設(shè)備的前提下,即可進(jìn)行設(shè)置ADCP時(shí)鐘與開(kāi)始ADCP測(cè)試。按快捷鍵F3進(jìn)行現(xiàn)場(chǎng)配置檢查,快捷鍵F4開(kāi)始ADCP發(fā)射,快捷鍵F5進(jìn)行ADCP測(cè)驗(yàn)。
對(duì)于非美國(guó)德立達(dá)儀器(TRDI)公司瑞江600 kHz的儀器,亦可使用ADCP流量測(cè)驗(yàn)輔助程序形成MMT測(cè)驗(yàn)工程文件,點(diǎn)擊“開(kāi)始測(cè)驗(yàn)”后,啟動(dòng)WinRiver II程序,自動(dòng)打開(kāi)ADCP測(cè)驗(yàn)輔助程序形成的測(cè)驗(yàn)文件。點(diǎn)WinRiver II采集菜單,點(diǎn)擊配置向?qū)?,在向?qū)е羞x擇使用設(shè)備,按快捷鍵F3檢查修改測(cè)前必要參數(shù),確定參數(shù)后,馬上可以進(jìn)行ADCP測(cè)試,并進(jìn)行測(cè)驗(yàn)。按快捷鍵F3進(jìn)行現(xiàn)場(chǎng)配置檢查和ADCP測(cè)試,見(jiàn)圖11。
5 測(cè)站數(shù)據(jù)庫(kù)配置文件Config.db結(jié)構(gòu)
ADCP測(cè)驗(yàn)輔助程序由主程序ADCP測(cè)驗(yàn)輔助.exe、測(cè)站數(shù)據(jù)庫(kù)配置文件Config.db、漢字轉(zhuǎn)首字母庫(kù)HzToPy.FLI、ADCP測(cè)驗(yàn)輔助程序配置文件Config.xml與Sqlite數(shù)據(jù)庫(kù)控件System.Data.SQLite.dll等組成。
測(cè)站數(shù)據(jù)庫(kù)若要配置文件,ADCP測(cè)驗(yàn)輔助程序可以進(jìn)行配置管理,也可使用Sqlite管理軟件進(jìn)行修改編輯(如Database.net),但不要改變數(shù)據(jù)庫(kù)結(jié)構(gòu)。
(1)StationInfo表。測(cè)站信息設(shè)置測(cè)站地點(diǎn)、起始點(diǎn)坐標(biāo)、投影角、起始岸邊(測(cè)站中起標(biāo)識(shí),右岸為1,左岸為0),測(cè)次在程序界面直接輸入。必須設(shè)置測(cè)站三參數(shù)、中斷面起止點(diǎn)坐標(biāo)、起始岸邊,才能用于導(dǎo)航偏距,才能自動(dòng)顯示測(cè)站上下游關(guān)系,語(yǔ)音播報(bào)測(cè)船位于測(cè)驗(yàn)斷面的上下游位置。設(shè)置測(cè)站斷面河床最深處高程,可以自動(dòng)生成WinRiver II程序所需要的最大水深。
使用Database.net數(shù)據(jù)庫(kù)管理程序打開(kāi)的測(cè)站信息表結(jié)構(gòu),如圖12~13所示,為WinRiver提供測(cè)驗(yàn)單位、測(cè)站基礎(chǔ)信息,并為ADCP測(cè)驗(yàn)輔助程序GNSS導(dǎo)航偏離指示條模塊提供定位參數(shù)。
(2)Surveyor表。使用Database.net數(shù)據(jù)庫(kù)管理程序打開(kāi)的測(cè)驗(yàn)單位測(cè)員表結(jié)構(gòu),如圖14(a)所示,為WinRiver提供測(cè)驗(yàn)單位、測(cè)員信息。
(3)ShipEquipment表。使用Database.net數(shù)據(jù)庫(kù)管理程序打開(kāi)的測(cè)船設(shè)備表結(jié)構(gòu),為WinRiver提供測(cè)船、ADCP吃水信息、使用設(shè)備信息等,如圖14(b)所示。
(4)History表。使用Database.net數(shù)據(jù)庫(kù)管理程序打開(kāi)的測(cè)驗(yàn)歷史信息表結(jié)構(gòu)(圖15)。使用ADCP測(cè)驗(yàn)輔助程序后,下次測(cè)驗(yàn)?zāi)J(rèn)打開(kāi)歷史測(cè)驗(yàn)測(cè)站信息,簡(jiǎn)化測(cè)驗(yàn)輸入過(guò)程。
6 結(jié) 語(yǔ)
ADCP流量測(cè)驗(yàn)輔助程序界面友好,簡(jiǎn)化了參數(shù)輸入過(guò)程,減少了輸入?yún)?shù)的差錯(cuò),易于流量測(cè)驗(yàn)操作,將其應(yīng)用于瑞江600 kHz ADCP、瑞智設(shè)備進(jìn)行測(cè)驗(yàn)穩(wěn)定可靠。結(jié)合生產(chǎn)工作實(shí)際,在ADCP流量測(cè)驗(yàn)輔助程序中,內(nèi)置了航跡偏離模塊,測(cè)站斷面線導(dǎo)航偏距準(zhǔn)確可靠,定位精度高。該模塊窗口保持在最前面,并可設(shè)置透明度,不影響WinRiver II或其他軟件的顯示和操作,比商業(yè)軟件HYPACK占用內(nèi)存小,一體化操作便捷。
ADCP測(cè)驗(yàn)輔助程序的設(shè)計(jì)實(shí)現(xiàn)了測(cè)驗(yàn)操作過(guò)程智能化、配置設(shè)置自由,簡(jiǎn)化了測(cè)驗(yàn)流程,易于操作。將該程序應(yīng)用于日常水文流量測(cè)驗(yàn)、大斷面測(cè)驗(yàn),有助于提高生產(chǎn)效率,特別是多站點(diǎn)應(yīng)急測(cè)驗(yàn)或者高洪測(cè)驗(yàn)中,為水文測(cè)驗(yàn)快速反應(yīng)爭(zhēng)取了時(shí)間,降低了差錯(cuò),提高了效率。
參考文獻(xiàn):
[1] 何海波. 高精度GNSS動(dòng)態(tài)測(cè)量及質(zhì)量控制[D]. 鄭州:中國(guó)人民解放軍信息工程大學(xué),2002:179-182.
[2] 陳建湘,梅軍亞.? ADCP數(shù)據(jù)中GPS坐標(biāo)轉(zhuǎn)換方法的探討[J]. 水利水電快報(bào),2006,27(17):20-21,27.
[3] 王俊,劉東,陳松生. 河流流量測(cè)驗(yàn)誤差的理論與實(shí)踐[M]. 武漢:長(zhǎng)江出版社,2018:310-315.
[4] 田淳,劉少華. 聲學(xué)多普勒測(cè)流原理及其應(yīng)用[M]. 鄭州:黃河水利出版社,2008:225-234.
[5] 林祚頂,朱春龍,余達(dá)征,等. 水文現(xiàn)代化與水文新技術(shù)[M]. 北京:中國(guó)水利水電出版社,2003:114-115.
[6] 黃河寧. ADCP河流測(cè)量原理和方法[R]. 圣地亞哥:美國(guó)亞迪儀器公司,2002:10-11.
[7] 曹貫中,蔣建英,陳望琴,等. 走航式聲學(xué)多普勒流速儀流量測(cè)驗(yàn)過(guò)程控制方法[J]. 水文,2011(增1):3-7.
(編輯:唐湘茜)
Abstract: In order to shorten preparation time for the ADCP measuring, reduce parameter input errors, and achieve the purpose of rapid and accurate tour flow measurement of multiple stations, a ADCP flow measuring auxiliary program was designed with Visual Studio.NET. The program has a built-in GNSS navigation module to indicate the starting position and offset of measurement cross-section. The program completes ADCP measurement and GNSS navigation in one times, which can not only guarantee the accuracy of hydrological measurement results, but also can improve the efficiency of hydrological measurement work, and improve the new technology of hydrological flow measuring. A lot of measurement in the past year showed that the effect was good.
Key words: ADCP;? discharge measurement; Visual Studio.NET