版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华北科技学院毕业设计(论文)导线网严密平差程序设计摘要:近年来,随着国家大力加强基础设施的建设,测绘工程在其中发挥着非常重要的作用,测绘工程中的数据处理就尤为重要。利用 Visual Studio6.0 编程环境,可以实现导线网严密平差程序的智能化和高精度。用实际测得的数据和参数建立平差函数模型,进而依据间接平差原理进行编程,形成了简要的Visual Basic程序,基于间接平差模型,用来确定导线网平差程序设计中的数据格式,分析了误差方程的构建以及法方程生成需要的3个关键矩阵,分别为:误差方程系数矩阵B,常数项矩阵L,以及权阵P的间接平差法。结合定义出来的数据形式,设计了近似坐标自动概算与法方
2、程生成的程序算法,以实例验证了算法的正确性以及可行性。测量平差可以说成是测量内页处理的一个必不可少的环节。利用计算机来平差既减少了时间和精力,同时又可以提高计算成果的精确性。通过实际的算例验证,平差模型正确,软件的操作方便,实用性强且结果可靠,利用VB可以实现导线的近似坐标计算、误差方程系数计算、法方程的构成与解算、平差值计算及精度评定、数据录入、数据输出、数据存储与管理等功能,保证了数据成果的真实可靠。关键词:导线网;平差程序;Visual BasicStrict adjustment program design of Traverse NetworkAbstract:In recent
3、years, with the country to vigorously strengthen the construction of infrastructure, surveying and mapping engineering plays a very important role in the data processing is particularly important in surveying and mapping project. Using Visual Studio6.0 programming environment, realize the automation
4、 of wire network adjustment, intelligent and high precision. For observation factor to establish adjustment function the model with total station measured coordinates, and programmed according to the principle of indirect adjustment, the formation of a brief Visual Basic program, based on the indire
5、ct adjustment model is used to determine the traverse network data format in the program design, construction method and analysis of error equations of equations to generate 3 key issues, the error equation coefficient based on the B matrix, constant matrix L, and indirect method of weighting matrix
6、 P. Combined with the definition of the data form, the program automatically estimates and approximate algorithm coordinates equation generated by the example design, test And verify the accuracy of adjustment adjustment certificate the algorithm's correctness and feasibility. The measurement is
7、 the measurement of work within the industry and the important link. The use of computer not only saves time and effort, and can improve the calculation results. Through actual examples, adjustment model is correct, the software operation is convenient, and the practicability is strong and reliable
8、results, using VB to achieve wire approximate coordinate calculation, the error equation coefficient calculation method equation solver, flat difference calculation and precision evaluation, the wire map and error ellipse drawing automatically, and data input and output, data storage and management
9、and other functions, to ensure the data results of true and reliable.Keywords:wire mesh;Adjustment;program; Visual Basic目录1绪论11.1 研究背景及意义11.2 国内外研究简史21.3 本文研究的具体内容与方法32 编程基础与平差理论52.1 VB 开发界面及程序调试52.2 测量平差的研究对象及任务72.3间接平差知识82.3.1间接平差的原理82.3.2按间接平差求平差值的步骤93导线网间接平差步骤103.1近似坐标的计算103.2误差方程的列立103.3确定角和边的权
10、123.4法方程的组成和解算133.5平差值计算133.6精度计算144程序设计154.1总体结构设计流程图154.2平差程序设计要求154.3程序设计说明154.3.1数据格式设计154.3.2解算近似坐标174.3.3组法方程204.3.4高斯约化法解法方程224.3.5计算平差值244.4运行界面设计255算例验证286总结39参考文献40致谢41附录一421绪论导线的布置很灵活,测量方便实用、工作效率高,已经成为应用最普遍的测量措施,在城市测量中应用非常广泛,导线网外业观测以及如何处理观测数据,这是一个首要的问题,是大多数测量工作者都要面对的。导线网结构复杂多变,要计算的量庞大,在导线
11、测量的内业中经常要利用导线网平差程序来满足内业数据处理的需要,由此可以大大降低内业数据处理的工作量,同时还能大大提高工作效率,保证了项目的质量和进度。因此,对于大多数用户的需求来讲、要自己编制导线网平差程序代码、以及使之成功运行,是目前的首要任务。这样既能处理导线数据,同时又能够节约项目支出,减少人工进行导线平差非常繁琐的计算作业。本文利用Visual Basic语言,采用间接平差原理开发了导线平差程序。由于测量平差工作的逐步严密和现代化,对测量平差的相关知识有非常深远的影响,使平差从经典平差进入现代平差的新时期,对测量平差工作的持续发展起到了至关重要的作用,同时也对古老平差模型有了创新,涌现
12、了一些现代平差的新方法,导线网是网形不受控制,能够按照需求自由延伸的一种特别的边角网。导线网在测量平差计算时,可以在全网平差时采用间接平差,计算全网结点的待定参数时要采取间接平差,具体做法就是设待定点的坐标为参数,测站点的固定方向角等参数。因此,根据已知点坐标,固定方向角以及已知边就可以推算出待定点的坐标以及各种精度的计算。1.1 研究背景及意义测量工作是工程设计施工放样中非常基本、主要的一部分,在工程设计、施工以及检验等各个阶段都有着引领性、无可替代的作用。测绘行业应用的广泛性和重要性,由于其基础性地位,随着政府对基础设施的投资建设的增加,种类繁多的测绘项目也随之不断的增加,这也促进了整个测
13、绘行业的迅速的发展。在众多的工程中,由于测量要达到目的不同而常常需要布设不同精度的控制网,测量控制网的发展随着测量技术的发展也发生很大的变化,由于测量仪器与技术的限制,在早期的测量中,主要用到的控制网有:测角网、测边网和水准网,而如今的测量控制网主要有:导线网、三维网以及GPS控制网。其中,导线网是特别的边角同测网,导线网与测角网和测边网相比来说网形布置起来更加灵活,在通常的控制网中,全部边和方向需构成自身闭合或附和条件,在测量条件比较差的地区,也可以使用同样等级的导线网来做控制,由于导线控制网的应用很普遍,测角网和测边网的使用较少,已逐渐退出历史舞台。测量数据的处理及其重要,这是指导外业数据
14、的测量采集的关键所在。不同的工程对控制网测量精度的要求也各不相同,使用的仪器精度也不同,测量的数据最终能否达到工程的精度要求,必须通过处理测量控制网数据来进行检验,用检验的结果来指导控制网施工。在早期开展的测量工作中,测绘工作者处理外业观测数据时只能采用手计算的方式,计算工作因为要处理复杂的矩阵运算而变得非常的繁重,这不仅占用大量的时间,还对测量人员有很高平差和线性代数知识的要求。随着计算机科学的发展和平差方法的改进,测量平差程序的出现很有效的解决了平差运算的复杂度,这些技术对测量平差理论的发展产生了深刻的影响,推动了测量平差理论知识的发展。现如今,导线网平差的程序已经发展的相当的成熟了,功能
15、也不断的在完善,利用VB进行程序编写,可以编写出操作更加简单,平差计算功能更完善的程序。1.2 国内外研究简史随着社会的发展,测量工作也在随着时间进步。在十八世纪末,在天文和测量学等研究中提出了怎样消除因为观测误差引起的观测值之间的各种矛盾。1794年,高斯,年仅17岁,第一次研究出了令人佩服的解决这个问题的方法,那就是最小二乘法。他是按照偶然误差的四个特点,将算数平均值计算为最接近真值的计算方法。当时高斯的这一理论并没有正式发表。在十九世纪初,意大利天文学家对谷神星运行轨道的某段弧长做出了一些观测与研究,其后由于某种原因终止了,这种一定要凭借这些含有误差的观测成果找出该恒星运行的实际的轨道。
16、高斯用自身总结出的这个原理处理了在当时看来是个很困难的问题,对谷神星运行轨道进行了预告,让天文学家很快再次发现了这颗彗星。1809年,高斯将他的方法表述在了“天体运动的理论”这个文章中。在很久以前,1806年勒戎德乐也从代数这个角度单独地研究出了最小二乘法,并且发表了“决定彗星轨道方法”这个文章。这一百多年来,从19世纪初期到20世纪的5060年代,测量平差研究者在基于偶然误差,依据最小二乘原理准则的平差方式上做出了很多研究,在此基础上,提出了很多处理各种测量问题的一些方法,并进行了计算。还提出了求解线性方程组的方法,使计算变得简便。随着计算机技术的不断发展和在测量实践中高精度的必要,测量平差
17、技术持续得到了很大技术提升,主要集中体现在以下几点:(1) 从仅仅只从偶然误差的研究逐渐延伸到包括系统误差和粗差,在基于偶然误差理论的研究上,全方位研究误差理论及其相应的测量平差理论和方法,极大地补充了测量平差的研究领域和范围。(2) 1947年,铁斯特拉提出了相关观测值的平差理论,但是由于当时的计算条件有限,所以直到20世纪70年代以后才被大面积的应用。(3) 经典的最小二乘法平差法,所选择的平差参数(未知量)是非随机变量。随着测量技术的进步,出现了新的问题就是关于平差参数均为随机变量的平差问题,这个问题于20世纪60年代末提出经过70年代的沉淀,最终产生了估计随机参数的最小二乘平差方法。(
18、4) 20世纪60年代,迈塞尔提出了针对非满秩平差问题的内制约平差原则,后来经过对国内外学者的进一步研究,在70,80年代,已经形成了秩亏自由网平差的理论体系和多种解决方案,并广泛应用于测量实践。(5) 随着在测量中微波测距技术的应用,经典平差中的定权理论和方法也开始走向新型。在20世纪80年代,方差-协方差估计理论的形成所导致的提及解法之多,发表论文之多是其他课题所不及的。(6) 观测中既然包含系统误差,为了检查系统误差的存在对结果造成的影响,提出了统计学中的假设检验的方法,根据平差的特性,测量学这发展了统计假设检验理论,提出了平差同时进行的有效的检验方法。 总之,自20世纪70年代以来,特
19、别是近20多年来,随着测量平差与误差理论的发展一些研究成果应用于常规测量技术中的现象已经相当普遍,但相比不断更新换代的测绘新兴技术,如何用我们自己所学的知识研究并提出新的平差理论和方法去跟随现代数据处理的步伐是一个我们需要认真思考的问题。1.3 本文研究的具体内容与方法本文利用VB对导线网严密平差进行程序编写,程序设计完成之后,利用此程序对常见的导线网算例进行相关测试,验证了间接平差的理论知识。程序设计数据为文本文档格式,输入形式为测角中误差、测边固定误差、测边丈量误差、已知点的x,y坐标、观测边长、观测角度,具有容易学习贴近教学的特点,程序结构的流程是根据间接平差特点设计的,其中分为“观测数
20、据的读取、解算近似坐标、组法方程、平差值的计算”等。结果输出以txt文档格式。最后,由于受理论水平和编程能力的限制,导线网严密平差设计程序仍在不断完善中,但基本上已经实现了研究的目的,取得了丰富的成果,生成了实用性可执行程序。2 编程基础与平差理论2.1 VB 开发界面及程序调试Visual Basic是如今世界上使用相当广泛的编程语言之一,也被公认为是编程效率很高的一种编程方法。“Visual”的意思是采用可视化开发图形用户界面(GUI)方法,一般都不需要去编写大量程序代码来描述界面元素的位置和外观,只要把需要使用的控件拖到屏幕上相应位置即可;“Basic”指的是BASIC语言,因为VB也是
21、在原有的BASIC语言基础上发展起来的,至今为止包含数百条语句、函数以及关键词,其中很多都和 Windows GUI 有着直接关系。专业的人员可以用 Visual Basic 实现任何其他 Windows 编程语言功能,VB提供了学习版、企业版和专业版,用来满足不同开发的需要。(1) 首先启动VB:单击“开始”菜单,选择“程序”“Microsoft Visual Basic 6.0 中文版”。VB启动之后,首先要选择“新建工程”的对话框,如图2-1所示,其中会提示出选择你要建立的工程类型。 图2-1 进入VB6.0 窗口例:在图2-1中的窗口中有3个选项卡:“新建”:表示建立新工程,“现存”:
22、表示选择和打开现有工程,“最新”:表示最近使用过的工程。单击“新建”之后,就可以创建此类型的应用程序,进入如图2-2所示的VB6.0应用程序集成开发环境。图2-2 VB6.0集成开发环境(2)VB窗口标题栏:标题栏中的标题为“工程1-Microsoft Visual Bisic 【设计】”,说明此时的集成开发环境正处于设计模式。如果进入其他状态,方括号当中的文字将做出相应的变化。 菜单栏:菜单栏中包含13个下拉菜单,也是程序开发过程中必要的命令。工具栏:可以用来快速的访问经常使用的菜单命令。工程资源管理器窗口:用来保存一个应用程序的所有必须的属性和组成这个应用程序所需要的的所有文件,工程文件的
23、名字显示在工程文件的窗口里面,基于层次化管理的方式显示各类型的文件,并且允许同时打开多个工程,工程文件的后缀是.vbp 。属性窗口:可以修改所有窗口或控件的属于(如颜色、字体和大小等)。窗体布局窗口:在各个不同分辨率的平面上,使所开发的应用程序能在正常进行,在多窗体的应用程序中比较有用。窗体窗口:用户工作区域,每个窗体必须有一个唯一的窗体名字,Form1,Form2,用户通过与窗体上的控件进行交互来得到结果。(3)Visual Basic程序调试:随着程序设计复杂性的提高,程序中出现的错误也随之而来。错误(Bug)和程序调试(Debug)是每个编程人员都一定会遇到的。程序调试的方法主要有以下几
24、种:插入断点和逐语句跟踪:程序运行到断点语句处(该语句并没有执行)停下,进入中断模式,在此之前所设置的变量、属性、表达式的值通过鼠标,都可以查看;若要继续跟踪断点以后的语句执行情况,只要按F8键或选择“调试”菜单中的“逐语句”命令。调试窗口:在中断模式下,除了用鼠标指向要观察的变量直接显示其值外,还可以通过“立即”窗口、“本地”窗口和“监视”窗口观察有关变量的值。可单击“视图”菜单中的对应命令打开这些窗口。也可以直接在该窗口使用Print 语句或“?”显示变量的值。“本地”窗口只会显示目前过程中所有变量的值,当执行程序时,从一个过程转换到另一过程时,“本地”窗口的内容会发生相应的变化,它只反映
25、执行过程中可以使用的变量。“监视”窗口能够展示目前的表达式及其值。使用帮助:包括使用MSDN Library 查阅器,使用上下文相关的帮助,从Internet 上获得帮助,运行所提供的样例。2.2 测量平差的研究对象及任务(1)测量平差是测绘学中一个有悠久历史的专有名词。测量平差发展到现在,从其理论构成和计算技术来看,它是集概率统计学、近代代数学、计算机软件、误差理论、测量数据处理技术为一体的一门不断发展和完美学科,其理论和方法对其他学科,如计量学、物理学、电工学、化工学及各类工程学科等,只要是处理带有误差的观测数据,有多余观测值的问题,均可应用,所以测量平差学科的适用范围十分广泛。经典平差是
26、指测量平差学科研究的基础内容,也是应用最广泛和理论研究中最重要的基础部分。经典平差处理的观测值限于仅含偶然误差的观测值。当观测值中除了含有偶然误差,还包含有系统误差或粗差或两者兼而有之时,这种数据处理的方法就属于近代平差研究的范围。无论是经典平差还是近代平差,其进行平差计算的前提条件是要有多余观测值,即有效观测值的个数多余必要观测值的个数。尽管经典平差各种方法的数学模型不同,但他们依据的平差准则是相同的,其差别仅在于:在不同的数学模型下,它们的具体求解方法有所不同。由于采用了相同的平差准则,所以对于同一个平差问题,若采用那个经典评查重的不同方法进行平差,其得到的平差结果应该是完全相同的,至于应
27、该采取哪种平差方法,应视具体情况而定。(2)测量平差学科的任务主要有:当观测值中有明显地系统误差时,偶然误差就会处于次要位置,观测误差就会有系统误差的性质;反过来说就是,则呈现出偶然误差的性质。一般来说,这样的平差属于经典测量平差,为了能够知道一个量的大小,虽然可以只进行一次测量就可以,但是这样会很危险,因为不知道所得到的数据中是否存在误差,因此,总会进行多次多余观测。例如,当我们进行高程水准测量的时候,总会对一个点的高程多次测量然后取其平均值作为最后高程。这样不止减少了偶然误差还可以防止粗差的产生,一举两得之法。总的来说,通过多余观测可以有效地排除掉测错或者误差较大的数据。从此来说,如何有效
28、地减弱多余误差,得到最优值也是测量平差的一项重要任务。测量平差的另外一项任务就是评定每次测量过后所得数据的精度,也就是进行数据的质检。综上所述,测量平差共有两个大方向;一是通过所测得的数据得到所需要得数据的最精确的值;而是对所得到的最优值进行质检也就是精度评定。2.3间接平差知识2.3.1间接平差的原理 在一个平差问题中,当所选择的独立参数的个数等于必要观测数t时,由这t个参数组成n个观测方程,这种以观测方程为函数模型的平差方法,就是间接平差。设有n个观测值方程,可以简写为: (2-1)在平差计算时,通常引入未知参数的近似值,参数X取其近似值,令 (2-2)为微小改正数,代入上式,并令 (2-
29、3)其中,为观测值的近似值,是观测值与近似值之差,从而得到误差方程如下: (2-4)其中,为误差方程常数项,根据式,因为近似值是自由取的近似值 因为误差方程的个数是n,待求量X和V的总个数是n+t,而n<n+t,所以误差方程应具有无穷解,在原理下方程组有唯一解,可以按照数学上求函数自由极值的方法,得 (2-5)转置后得 (2-6)将2-12式代入2-15式,如下: (2-7)令 (2-8)上式可以简写成 (2-9)上式被称为法方程,解之得 (2-10)将解算的代入误差方程式 ,从而能得到改正数V (2-11)并求出平差成果为 (2-12) (2-13)2.3.2按间接平差求平差值的步骤(
30、1)确定必要观测数,先选定t个函数独立量作为参数; (2)将每个观测值的平差值写成所选参数的函数,如果是非线性的进行线性化,组成误差方程;(3)根据误差方程系数B、和常数项、观测值权阵P,组成法方程; (4)从法方程中解出未知数向量,计算参数平差值;(5)将代入误差方程组,求得改正数V,进而求得观测量平差值;(6)精度评定。 3导线网间接平差步骤3.1近似坐标的计算未知点近似坐标的概算是导线网平差中一个关键问题,再知道未知点近似坐标之后才能进行误差方程与法方程的组建等后续处理。假设一点坐标和这一点所观测的某一方向的坐标方位角,计算假设坐标和方位角,整个导线网假设坐标计算完成后,进行坐标转换,设
31、有已知点a,b,已知坐标和假设坐标分别为和;边长的真实坐标方位角与假设坐标方位角分别为:和。将假设坐标转换为近似坐标的步骤为:(1)坐标方位角的计算沿着导线前进的方向,在左侧的被称为左角,右侧的被称为右角,根据起始边的已知坐标方位角及改正后的内角按下列公式推算各导线边的坐标方位角。 (适用于测左角) (3-1) (适用于测右角) (3-2)在推算过程中必须注意:如果算出的时,则应减去。如果时,则应加(2)求旋转角: (3-3)(3)对于导线网中任意一点i的近似坐标坐标和假设坐标分别为和,i点的假设坐标转换为近似坐标的计算公式为: (3-4)3.2误差方程的列立 在导线网中,有两类独立的观测值,
32、分别为角度观测值和边长观测值,导线网中的方向观测的误差方程的组成与测角网的误差方程相同,边长观测的误差方程,它的组成与测边网的误差方程是相同的。首先确定有几个角度观测值几个边长观测值,然后误差方程个数就为角度误差方程个数与边长误差方程个数之和,必要观测数就为未知点个数的二倍,选取待定点坐标平差值为参数。图3-1测角示意图(1)测角示意图如图3-1,观测的角度为,设j、h、k均为未知点,其中,则角度观测的误差方程为: (3-5)其中,,为观测角,为近似方位角计算得到的角度。等均由三点的近似坐标计算所得,计算公式为,等为近似边长。此处的i,j,h三个点均为未知点,当其中有已知点时,由于已知点的改正
33、数为0,所以需要将式中已知点改正数那项去除。如:当h点位已知点时,此时的误差方程为:(3-6)当h,j均为已知点时,误差方程为: (3-7)因此,在导线平差计算时需要注意有已知点的地方的观测量的误差方程。(2)测边的示意图如图3-2,设待定点的坐标平差值、为参数,得到的误差方程如下: (3-8)其中,测得的量有待定点间的边长,同理,当某边的两个端点中有一个已知点时,则误差方程中的已知点的改正数为0,即:若j为已知点,得误差方程为: (3-9)若k为已知点,得 (3-10) 图3-2测边示意图列出误差方程后,需要确定两类观测值的权的配比,在导线网中有边、角两类观测值,因此确定权的配比问题是平差的
34、重要环节。3.3确定角和边的权导线网中各边长观测,角度观测相互之间都是独立的,因此随机模型中的权阵是对角阵先验单位权方差唯一,但可任意选取,测角中误差和测边中误差分别为,若单位权方差D已知,则定权公式为: (3-11)式中。定权时一般令 (3-12)由此可得 (3-13)其中测角中误差和测边中误差均采用厂方给定的测角、测距仪器的标准精度或者是经验数据。在导线网中,权比是有单位的,若假设测角的权为,为无量纲,则测边的权是有单位的,其单位为,因此在平差时要注意权的单位。3.4法方程的组成和解算导线网平差法方程的组建,需要先求出误差方程的系数矩阵B,观测值的权阵P,以及常数项矩阵,在导线网中,一般按
35、测站循环求法方程系数,在每一个测站上测量的观测角和观测边,根据测角网误差方程和测边网的误差方程,列出误差方程,并将求出的误差方程系数存入系数矩阵B中,再根据测角中误差和测距中误差求出观测值的权,并存入权矩阵P中,每一测站均如此解算,当导线网中所有测站均完成计算后,即可得到系数矩阵B,权矩阵P,以及常数项矩阵l,然后以此列出法方程并解算出法方程,得到法方程的结算结果。导线网间接平差的法方程为: (3-14) 解之得 (3-15) 其中 (3-16)3.5平差值计算(1) 坐标参数平差值公式为: , (3-17)的值由公式3-4求出,的值由公式3-15求出(2) 方向观测值平差值公式为: (3-1
36、8)其中L为方向观测值,V的值由公式3-5求出(3) 边长观测值平差值公式为: (3-19)其中为边长观测值,V的值由公式3-8求出3.6精度计算导线网的精度评定主要从点位中误差、单位权中误差、两方面评定。 (1)单位权中误差 间接平差模型时,单位权中误差应该按照下式计算 (3-20) 式中 n观测量个数; T待定参数个数。 (2)点位中误差先根据协因数阵算出点D的坐标权倒数分别为,采用间接平差模型计算平差时,法方程系数阵的逆阵就是未知数矩阵的协因数阵Q,所以可以直接在对角线上提取。 其中设控制网中某点为D点,则此点的点位中误差为 (3-21)式中为单位权中误差,分别为D点的纵横坐标的协因数。
37、4程序设计4.1总体结构设计流程图平差程序读入数据数据处理数据输出近似坐标的计算解算法方程平差值计算精度评定单位权中误差点位中误差组成法方程图4-1总体设计流程图4.2平差程序设计要求此软件设计网采用的数学模型是相关间接平差法,平差的程序设计和其它的程序设计相同,程序应当满足一定的要求:(1)程序的逻辑结构要求简单,清晰容易理解,符合结构化程序的设计要求,便于其中的扩展;(2)运算速度较快,占用内存较小,内存与外存之间的交换不应当过于频繁;(3)数学模型以及计算的方法准确、先进,计算结果精度要高;(4)适应性要很强,方便移植,并且充分考虑各种可能出现的形式,尽量满足不同设计的要求与需要; (5
38、)智能化程度高,使用方便,数据录入方便,规则易懂,易记;人与机器交互性要强。4.3程序设计说明4.3.1数据格式设计(1)导线网输入的数据格式如下:第一行输入观测值先验精度信息分别为:测角中误差,测距固定误差,测距比例误差第二行包括之后的数据代表已知点的x,y坐标,行数等于已知点数:已知点名,x坐标,y坐标已知点名,x坐标,y坐标接下来输入观测值信息,总行数等于观测值数加测站数,其中l代表方向观测,s代表边长观测:测站点名照准点名,l,观测值照准点名,s,观测值测站点名照准点名,l,观测值照准点名,s,观测值4(2) 代码设计如下:Case 0 '读入观测值文件Text1.Visibl
39、e = FalseCommonDialog1.ShowOpenSet ts = fso.OpenTextFile(fname) '将fname作为文本文件打开,并设置句柄j = 0: k = 0: p = 0: h = 0 'B = ts.ReadLine '读一行,置入bB = Trim(B): i = 1: '删除B前空格和尾随空格m(i) = InStr(B, ",") Do While m(i) <> 0 '前测型Do. Loop循环,成立条件是该行字符串中有逗号tr(i) = Mid(B, m(i - 1) +
40、1, m(i) - m(i - 1) - 1) '提取指定位置开始的指定数目字符。i = i + 1m(i) = InStr(m(i - 1) + 1, B, ",") '从上一个找到的逗号位置起,查找下一个逗号的位置LoopIf m(i) = 0 And i > 1 Then tr(i) = Right(B, Len(B) - m(i - 1) '处理一行中最后一个逗号后的字符串If p = 0 Then '读到的是文件第一行。ma = tr(1): ms = tr(2): mk = tr(3): p = 1 '提取观测方向,
41、边先验精度值,并使该句以后不能再执行。ElseIf m(1) = 0 Then j = j + 1: ReDim Preserve dm(j): ReDim Preserve nl(j): ReDim Preserve ns(j): dm(j) = B: nl(j) = nl(j - 1): ns(j) = ns(j - 1) If m(1) <> 0 Then tr(2) = LCase(tr(2)If tr(2) <> "l" And tr(2) <> "s" Then '这一行不是方向或边长观测值,而是已
42、知点坐标值k = k + 1: ReDim Preserve ym(k): ReDim Preserve xo(k): ReDim Preserve yo(k):ym(k) = tr(1): xo(k) = Val(tr(2): yo(k) = Val(tr(3) '输入已知点坐标ElseIf tr(2) = "l" Then nl(j) = nl(j) + 1: ReDim Preserve lb(nl(j): ReDim Preserve l(nl(j): lb(nl(j) = tr(1): If tr(2) = "s" Then ns(j)
43、 = ns(j) + 1: ReDim Preserve sb(ns(j): ReDim Preserve s(nl(j): sb(ns(j) = tr(1): End IfEnd IfEnd IfLoopts.Closecds = j:MsgBox "数据已成功读入", 0 + 64 + 0, "数据输入"End If4.3.2解算近似坐标由于在3.1节已经详细论述了近似坐标的解算过程,所以这里不再论述。解算近似坐标代码为:Case 1 '解算近似坐标d = cds 'd是测站数For i = 1 To nl(cds) '依次访
44、问所有的方向值p = 0 '设识别变量For j = 1 To d '依次访问所有测站Next jIf p = 0 Then d = d + 1: ReDim Preserve dm(d): ReDim Preserve ns(d): dm(d) = lb(i) Next iReDim x(zds), y(zds) ' 重新定义坐标数组x(1) = 10000: y(1) = 10000 '对第一个点设定一个假设坐标k = 1For i = 1 To ydsIf lb(1) = ym(i) Then k = k + 1Next ih = seqn(lb(k) &
45、#39;查k方向照准点的计算序号x(h) = x(1) + ss * Cos(0): y(h) = y(1) + ss * Sin(0) If l(i) > 0.001 Then l(i) = radian(l(i) '零方向值不参加转换Next in = 0DoFor i = 1 To cds '按测站循环p1 = 0For j = nl(i - 1) + 1 To nl(i) '遍访i测站上所有方向值h = seqn(lb(j) '查目标点对应的序号If x(h) > 1 Then '目标点坐标已解出t = azimuth(x(i), y
46、(i), x(h), y(h): p1 = j End IfNext jFor j = nl(i - 1) + 1 To nl(i) '再次遍访i测站上的所有方向值h = seqn(lb(j) '查目标点对应的序号If x(h) < 1 Then '该照准方向点坐标未求出tt = t + l(j) - l(p1) '计算j方向的方位角ss = sid(i, j) '根据测站号、方向号去查找边长If ss = 0 Then ss = side(i, h)x(h) = x(i) + ss * Cos(tt): y(h) = y(i) + ss * Si
47、n(tt) '计算近似坐标End IfNext jEnd IfNext ip = 0For k = 1 To zdsNext kLoop Until p = 0 Or n > zds For j = 1 To zdsIf ym(i) = dm(j) Then m(i) = jNext jNext it1 = azimuth(x(m(1), y(m(1), x(m(2), y(m(2) '利用一对公共点求旋转角t2 = azimuth(xo(1), yo(1), xo(2), yo(2)dt = t2 - t1: x1 = x(m(1): y1 = y(m(1)For i
48、= 1 To zds '将假设坐标转换到实际坐标dx = x(i) - x1: dy = y(i) - y1x(i) = xo(1) + dx * Cos(dt) - dy * Sin(dt)y(i) = yo(1) + dx * Sin(dt) + dy * Cos(dt)Next iFor i = 1 To yds '置入已知点坐标x(m(i) = xo(i): y(m(i) = yo(i)Next ic = Space(11) & "近 似 坐 标 值" & Chr(13) & Chr(13) & Chr(10)c =
49、c & Space(3) & "点 名" & Space(4) & "X-坐标" & Space(6) & "Y-坐标" & Chr(13) & Chr(10)d1 = dm(i)d1 = Format(d1, "")x1 = x(i): x1 = Format(x1, "#.00")y1 = y(i): y1 = Format(y1, "#.00")c = c & Space(5) & d1 &
50、amp; Space(5) & x1 & Space(5) & y1 & Chr(13) & Chr(10)Next iText1.Visible = True4.3.3组法方程(1) 此程序组法方程采用的算法是:按测站循环。在测站上进行方向观测值、边长观测值循环。计算观测值误差系数和常数(i=1,2,.,n)设置一个一维数组nb()和单变量临时保存。根据某一观测值i的误差方程系数和常数,计算祖法方程系数阵元素的值等,以累加方式填充进对应的法方程系数数组变量;计算组法方程常数阵元素的值等,以累加的方式填充进对应法方程常数数组变量。清除数组变量nb()。调
51、用下一个观测值重复的操作。一个测站上所有的观测值处理后,进入下一个测站重复操作。当测站循环结束,法方程组即已组成。(2) 组法方程的代码为:Case 2 '组法方程Text1.Visible = FalseDim n1 As Integer, n2 As Integer, l1 As Double, pp As Double '定义过程级变量q = 206265: ll = 0n1 = 2 * (zds - yds) '未知数数目Call order(m(), yds) '对保存已知点序号的m()数组排序For i = 1 To cds '按测站循环z
52、= 0 '将按测站累积的变量清零k1 = nl(i - 1) + 1: k2 = nl(i) '一测站上最小和最大方向号For j = k1 To k2 h = seqn(lb(j)t = azimuth(x(i), y(i), x(h), y(h)f = t - l(j): If f < 0 Then f = f + 2 * pi 'f是解算的零方角方位角z = z + fNext jzo = z / (k2 - k1 + 1) 'zo是定向角未知数(零方向的坐标方位角)ReDim nc(n1): ln = 0 h = seqn(lb(j)dx = x(
53、h) - x(i): dy = y(h) - y(i)ss = Sqr(dx 2 + dy 2) '反算边长t = azimuth(x(i), y(i), x(h), y(h) '反算坐标方位角A = q * Sin(t) * 10 -2 / ss: B = -q * Cos(t) * 10 -2 / ss '求方向误差方程系数If cha = "n" Then '序号为i的测站点不是已知点nb(d) = A: nb(d + 1) = B '对误差方程系数数组赋值nc(d) = nc(d) + nb(d): nc(d + 1) = nc(d + 1) + nb(d + 1) '累积到和方程数组中去End IfIf cha = "n" Then '照准方向点不是已知点nb(d) = -A: nb(d + 1) = -B '对误
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建泉州市洛江区第二实验幼儿园招聘保育员考试参考题库及答案解析
- 2026广东茂名技师学院招聘编外合同制教师及教辅人员20人考试参考试题及答案解析
- 2026北京中核环保有限公司社会招聘1人考试参考试题及答案解析
- 2026广东潮州市招聘“广东兜底民生服务社会工作双百工程”督导人员1人考试参考题库及答案解析
- 室内给水管道系统化学处理方案
- 暖气管道防腐处理施工方案
- 2026中国中医科学院中药研究所招聘国内高校应届毕业生3人(提前批)考试参考试题及答案解析
- 2026江西吉安市阳光学校面向社会招聘15名劳务派遣工作人员考试参考题库及答案解析
- 铝合金门窗安装方案
- 施工现场安全隐患数字化预警系统方案
- 文学翻译教学大纲
- 文书学全套课件
- 全国自然教育中长期发展规划
- 大学生回母校宣讲活动报告总结
- 免疫规划信息化管理应用与分析
- 主播入驻协议
- 罗密欧与朱丽叶话剧搞笑剧本
- 民航服务心理学课件
- 装修工程竣工验收报告
- 法语复合过去时
- 良率改善报告
评论
0/150
提交评论