摘 要:控制測量簡易平差程序設(shè)計是現(xiàn)代測量測繪工作中必不可少的重要內(nèi)容,其主要是為了用于對控制網(wǎng)測量數(shù)據(jù)進行平差處理,以最大程度的減小測量誤差,提高測量工作的準確率和科學(xué)性。
關(guān)鍵詞:測量;條件平差;間接平差;MatrixVB;程序設(shè)計
一、測量簡易平差程序的設(shè)計基本要求和基本步驟
1.基本要求
和一般的程序設(shè)計一樣,測量簡易平差程序的設(shè)計也應(yīng)當按照一定的基本要求進行設(shè)計。首先,所設(shè)計的程序應(yīng)當具備邏輯清晰、結(jié)構(gòu)簡單、易讀取、易擴展等要求;其次,所設(shè)計的平車程序在運算的過程中應(yīng)當具備速度快的特點,也不能占用過多的內(nèi)存,內(nèi)存與外存應(yīng)當盡量避免頻繁交換。第三,平差程序設(shè)計中所采用正確合理的數(shù)學(xué)模型,且要具備一定的科學(xué)先進性,要求該數(shù)學(xué)模型計算所得結(jié)果的準確度高;第四,所設(shè)計的平差程序應(yīng)當具有較強的適應(yīng)能力,要能夠移植,能夠在各種形式下都能滿足計算需要。最后,平差程序設(shè)計要從用戶的角度出發(fā),盡量方便用戶的使用,因此程序的操作應(yīng)當盡量簡便。這些設(shè)計基本要求不但要求在總體設(shè)計時遵守,還要求在整個設(shè)計過程中的每個環(huán)節(jié)都遵守。
2.基本步驟
測量簡易平差程序的基本設(shè)計步驟主要可以概括為以下幾點:結(jié)構(gòu)總體設(shè)計、數(shù)據(jù)結(jié)構(gòu)設(shè)計、確定軟件各組成部分的算法及數(shù)據(jù)組織、選定某種表達式來描述各種算法、程序編寫、程序調(diào)試、編寫用戶使用說明。這些步驟是在任何一種平差程序的開發(fā)和設(shè)計過程中都應(yīng)當涉及到的環(huán)節(jié),為平車程序設(shè)計的基本步驟。
二、基于的測量平差程序設(shè)計實例分析
為了能夠更好的介紹控制測量簡易平差程序設(shè)計和實現(xiàn)的方法,本文決定以某隧道施工測量中所開發(fā)的平差程序為例進行詳細探討。在某隧道工程中,設(shè)計施工人員為了能夠更精準的掌握隧洞內(nèi)的平面控制導(dǎo)線網(wǎng)、高程控制水準網(wǎng)和測角三角網(wǎng),要對這些控制網(wǎng)的數(shù)據(jù)進行平差處理?;趯嶋H工程的需要,要重新開發(fā)一套平差程序。本工程中決定采用矩陣計算能力,在MatrixVB平臺上,用VB6.0可視化編程和Excel表格數(shù)據(jù)輸入的方法來開發(fā)測量簡易平差程序。具體的開發(fā)和設(shè)計過程如下所示:
1.測量平差的基礎(chǔ)與模型
在測量工程中,之所以會進行數(shù)據(jù)的平差處理,是因為在測量中存在在著多余觀測,也就是說,測量平差是建立在多余觀測基礎(chǔ)上的,并在此基礎(chǔ)上按照一定的數(shù)學(xué)模型以及原則來調(diào)整觀測結(jié)果,以此來提高觀測值的精度。在測量平差的處理中,最主要的工作任務(wù)就是要將有誤差的觀測值之間的不符值消除掉,得出未知量的最或然值,并評定該值的精度。
為了更好的完成平差程序的設(shè)計,我們首先要了解一些平差的概念和數(shù)學(xué)模型。在平差中需要用到的幾個量主要有觀測值個數(shù)n、必要觀測數(shù)t、多余觀測數(shù)r。其中,r=n-t。平差的數(shù)學(xué)模型主要是指用數(shù)學(xué)關(guān)系來表現(xiàn)幾何模型的幾何關(guān)系及其相互之間的內(nèi)在關(guān)系。
2.測量平差程序開發(fā)方案的確定
Visual Basic6.0是一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動方式的結(jié)構(gòu)化高級程序設(shè)計語言,可用于開發(fā)Windows環(huán)境下的各類應(yīng)用程序,在Visual Basic(以下簡稱VB)環(huán)境下,可以利用事件驅(qū)動的編程機制、新穎易用的可視化設(shè)計工具進行程序開發(fā),可以使用Windows內(nèi)部的廣泛應(yīng)用程序接口(API)函數(shù),動態(tài)鏈接庫(DLL)、對象的鏈接與嵌入(OLE)、開放式數(shù)據(jù)連接(ODBC)等技術(shù),高效、快速地開發(fā)Windows環(huán)境下功能強大、圖形界面豐富的應(yīng)用軟件。VB的優(yōu)點在于簡單易學(xué)、編程效率高,其缺點在于面向?qū)ο笮圆粔蛲晟啤?zhí)行效率較低,運行大型的、復(fù)雜的程序時,顯得不足。
MatrixVB是由第三方提供的COM組件,包含了大量與MATLAB相似的函數(shù)與調(diào)用語法,可以加強VB數(shù)學(xué)運算與圖形展示功能,在VB程序代碼中可以像使用VB自己的函數(shù)一樣使用MatrixVB的函數(shù),而且可以不依賴于MATLAB的環(huán)境在Visual Basic中完成矩陣運算與圖形繪制顯示等功能,此外Ma-trixVB還有小巧靈活的優(yōu)點(只有11.2MB大?。?,所以使用起來簡單,編程效率高。MatrixVB函數(shù)庫的功能大致可分為8大類(矩陣運算、運算符重載、圖形圖像處理、最優(yōu)化運算、多項式、信號處理、隨機與統(tǒng)計分析、控制系統(tǒng))。
涉及到矩陣運算的數(shù)值計算、圖像處理等,MATLAB可以很好解決,但僅僅使用MAT-LAB,程序界面不夠簡潔美觀,要求使用者有較高的專業(yè)水平,而且MATLAB過于龐大,我們往往只需使用其中很小一部分功能就能解決問題。若僅僅使用VB來實現(xiàn),則很多在MATLAB看來很簡單的任務(wù)(例如矩陣的定義、矩陣運算、直方圖顯示)都需要從底層寫程序,工作量十分繁重。因此,可以采用MatrixVB+VB集成技術(shù),取MATLAB和VB二者之長,開發(fā)出簡潔靈巧、美觀實用,功能強大的程序。這正是此次測量平差程序開發(fā)的思路,在VB應(yīng)用中引人MatrixVB的方法。
三、結(jié)束語
由本文論述可以看出,目前關(guān)于控制測量簡易平差程序設(shè)計的理論基礎(chǔ)已經(jīng)基本成熟完善,在實際的測量工程中,自主開發(fā)符合本測量工程實際情況的平差程序也不再是難事。但是盡管如此,控制測量簡易平差程序的設(shè)計方法和實現(xiàn)手段還仍然有很大的進步空間,需要我們在未來的平差程序設(shè)計研究中不斷完善。相信在計算機硬件和系統(tǒng)和軟件系統(tǒng)性能、程序設(shè)計模塊化水平不斷提高的今天,控制測量平差程序設(shè)計技術(shù)將會得到更大的發(fā)展。
參考文獻:
[1]白征東.Matlab在測量平差教學(xué)中的應(yīng)用[J].測繪通報,2009(11).
[2]高彩云,高寧,孫敬克.MATLAB在測量平差課程教學(xué)中的嘗試[J].科技信息,2009(24).
[3]趙亞紅,郝延錦,徐明俠.Matlab在測繪工程領(lǐng)域中的幾點應(yīng)用[J].地礦測繪,2011(01).
作者簡介:
張宏植(1994—),男,土家族,湖南懷化人,邵陽學(xué)院本科在讀,專業(yè)方向:測繪工程。