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