测绘毕业设计

更新时间:2023-03-11 18:52:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中 国 矿 业 大 学

本科生毕业设计

姓 名: 学 号: 学 院: 环境与测绘学院 专 业: 测绘工程 题 目: 导线平差的程序设计与实现 指导教师: 职 称:

2013 年 6 月 徐州

中国矿业大学毕业设计任务书

学院:环境与测绘学院 专业年级:测绘工程2008 学生姓名:

任务下达日期:2012 年 2 月 20 日

毕业设计日期: 2012 年 3 月 12 日至 2012 年 6 月 13 日

毕业设计题目: 导线平差的程序设计与实现

毕业设计主要内容和要求:

主要内容:

(1)测量平差的研究背景及意义; (2)测量平差概述;

(3)Excel在单一附和导线近似平差中的应用; (4)Excel在单一附和导线条件平差中的应用; (5)导线网的间接平差理论;

(6)导线网平差的结构和函数设计与实现。

设计要求:

(1)毕业设计要充分发挥主观能动性,积极思考,主动实践;

(2)毕业设计撰写结构要严整,叙述清楚,理论分析适当,数据可靠,研究方法合理,结论正确,论文格式符合规范;

(3)研究成果要有一定的实用或参考价值。

院长签字: 指导教师签字:

中国矿业大学毕业设计指导教师评阅书

指导教师评语(①基础理论及基本技能的掌握;②独立解决实际问题的能力;③研究内

容的理论依据和技术方法;④取得的主要成果及创新点;⑤工作态度及工作量;⑥总体评价及建议成绩;⑦存在问题;⑧是否同意答辩等):

成 绩: 指导教师签字: 年 月

日中国矿业大学毕业设计评阅教师评阅书

评阅教师评语(①选题的意义;②基础理论及基本技能的掌握;③综合运用所学知识解

决实际问题的能力;④工作量的大小;⑤取得的主要成果及创新点;⑥写作的规范程度;⑦总体评价及建议成绩;⑧存在问题;⑨是否同意答辩等):

成 绩: 评阅教师签字:

年 月 日

中国矿业大学毕业设计答辩及综合成绩

答 辩 情 况 回 答 问 题 提 出 问 题 正 确 基本 正确 有一般性错误 有原则性错误 没有 回答 答辩委员会评语及建议成绩: 答辩委员会主任签字: 年 月 日 学院领导小组综合评定成绩: 学院领导小组负责人: 年 月 日

摘 要

随着测绘科学技术的不断发展,在测量数据的处理中产生很多种平差的方法。在本文中,导线网的近似平差和条件平差的一些简单计算可通过Excel表编制计算公式和编程实现,我们只需在已编好的Excel表中稍作调整和公式修改,并输入已知数据,最终就可得到所需的平差结果,这为测量的内业工作提供了服务和参考;导线网的间接平差程序是利用C++编程实现的,我们需要将导线网的已知数据信息按照特定的规则输入到dat文本中,利用C++程序读取文本数据信息后,对其进行一系列的平差计算,最终获得平差后的结果,并以dat文本的形式输出且保存,这样就可为测量工作提供一定的参考,还能为测绘数据的管理带来帮助。

关键词: 导线平差;Excel;C++;程序

ABSTRACT

With the continuous development of surveying and mapping science and technology, processing a variety of method for adjustment in the measurement data. In this paper, a simple calculation of the approximate adjustment and the adjustment of condition equations of the wire network through Excel table prepared formula and programming to achieve, we only need to make some adjustments and formula modifications has been compiled in good Excel table, and enter the known data, and ultimately we can get the necessary adjustment results, which provides services and reference for measurement within the industry; indirect adjustment Program of the wire network is implemented with using C++ programming, we need to enter traverse network’s known data and information in accordance with specific rules to the dat text, then use C++ program to read text’s data and information, it can conduct calculation of adjustment, the final results of adjustment can output and save in the form of the dat text, so that it can provide some reference for the measurements, also for the management of the mapping data. Key words: adjustment of traverse; Excel; C++; Program

目 录

1 绪论 ............................................................................................................................................. 1

1.1研究背景及意义 ............................................................................................................... 1 1.2国内外研究状况 ............................................................................................................... 2 1.3本文研究的具体内容 ....................................................................................................... 2 1.4平差程序相关说明 ........................................................................................................... 3

1.4.1平差程序计算特点 ................................................................................................ 3 1.4.2平差程序的基本要求 ............................................................................................ 3 1.4.3平差程序的结构化设计 ........................................................................................ 3 1.4.4平差程序模块化 .................................................................................................... 4 1.4.5平差程序的数据结构 ............................................................................................ 4

2 测量平差 ..................................................................................................................................... 5

2.1测量平差概述 ................................................................................................................... 5

2.1.1测量平差 ................................................................................................................ 5 2.1.2测量平差的函数模型 ............................................................................................ 5 2.2最小二乘原理 ................................................................................................................... 5 2.3条件平差原理 ................................................................................................................... 6

2.3.1条件平差的数学模型 ............................................................................................ 6 2.3.2条件平差原理 ........................................................................................................ 6 2.3.3条件平差的计算步骤 ............................................................................................ 8 2.3.4精度评定 ................................................................................................................ 8 2.4间接平差原理 ................................................................................................................. 10

2.4.1间接平差的数学模型 .......................................................................................... 10 2.4.2间接平差的的一般原理 ...................................................................................... 11 2.4.3按间接平差法求平差值的计算步骤 .................................................................. 12 2.4.4精度评定 .............................................................................................................. 12

3 Excel在导线平差中的应用 ..................................................................................................... 15

3.1 Excel在平差中的应用基础 ........................................................................................... 15

3.1.1 引言 ..................................................................................................................... 15 3.1.2 Excel在平差中的基本应用操作函数 ............................................................... 15 3.1.3 核心问题的解决及技巧 ..................................................................................... 17 3.1.4 三角函数在Excel中的处理方法 ...................................................................... 17 3.1.5 小结 ..................................................................................................................... 18 3.2 Excel在附和导线近似平差中的应用 .......................................................................... 19

3.2.1 单一附和导线近似平差 ..................................................................................... 19 3.2.2单一附和导线近似平差实例 .............................................................................. 19 3.3 Excel在导线网条件平差中的应用 ............................................................................... 22

3.3.1单一附合导线条件平差 ...................................................................................... 23 3.3.2边角权的确定及单位权中误差 .......................................................................... 25 3.3.3单一附和导线条件平差实例 .............................................................................. 26

4 导线网的间接平差程序设计与实现 ....................................................................................... 31

4.1矩阵的相关函数 ............................................................................................................. 31

4.1.1矩阵相乘 .............................................................................................................. 31

4.1.2矩阵转置 .............................................................................................................. 32 4.1.3矩阵求逆 .............................................................................................................. 33 4.1.4矩阵输出 .............................................................................................................. 33 4.1.5设置实数输出精度 .............................................................................................. 33 4.2平差中的重要函数 ......................................................................................................... 33

4.2.1角度制与弧度制的相互转化 .............................................................................. 33 4.2.2测量正反算函数 .................................................................................................. 34 4.2.3近似坐标计算 ...................................................................................................... 34 4.3导线网的平差理论 ......................................................................................................... 36

4.3.1平差概述 .............................................................................................................. 36 4.3.2边角网的最小二乘平差 ...................................................................................... 37 4.4间接平差的结构与函数设计 ......................................................................................... 39

4.4.1间接平差 .............................................................................................................. 39 4.4.2结构与函数设计 .................................................................................................. 41 4.5导线网平差的程序应用 ................................................................................................. 43

4.5.1平面网数据的输入格式 ...................................................................................... 43 4.5.2导线网平差程序应用实例 .................................................................................. 44

5 结论与展望 ............................................................................................................................... 50

5.1 Excel在导线平差中的应用 .......................................................................................... 50

5.1.1 Excel在导线近似平差中的应用 ....................................................................... 50 5.1.2 Excel在导线网条件平差中的应用 ................................................................... 50 5.2 C++在导线平差中的应用 ............................................................................................. 51 5.3 测量平差的展望 ............................................................................................................ 51 参考文献 ....................................................................................................................................... 52 附录 ............................................................................................................................................... 53 翻译部分 ....................................................................................................................................... 60

英文原文 ................................................................................................................................ 60 中文译文 ................................................................................................................................ 65 致 谢 ........................................................................................................................................... 69

中国矿业大学2012届本科生毕业设计第 1 页

1 绪论

1.1研究背景及意义

测量工作是工程施工非常基础、重要的环节,对工程设计、工程施工、工程的验收都发挥着指导性、不可替代的作用。国家等级控制网的数据采集与更新,全国土地调查,铁路公路的施工,隧道的贯通,地震的预报,建筑物的施工放样和形变监测等项目,都离不开测绘行业。测绘学科在国民经济规划,国防建设,环境和资源管理,城乡建设等领域得到广泛的应用。可见,测绘行业的重要性,基础性地位,同样随着施工项目的增多也促进了整个测绘行业的需求增加,给测绘行业带来迅猛的发展。

对于不同的测量任务常常需要布设相应的控制网以满足精度需要,测量控制网的发展由早期的测角三角网、测边三角网、水准网,到现在的导线网、三维网和GPS控制网。其中导线网是特殊的边角网,导线网相对测角网和测边网网形灵活任意,数据采集工作相对少了很多,并且可以根据需要自由伸展。通常测量控制网中全部边和方向构成自身闭合或附和条件即可,在测量条件相对困难的地区,常常用相当等级的导线网来代替,导线控制网的应用现在已非常广泛,测角网和测边网已逐渐退出历史舞台。

测量控制网的精度是测量任务中的关键、最重要的方面,外业采集的数据能否满足施工项目的具体要求,测量数据处理显得尤为重要,也是指导外业测量的关键所在。如隧道的贯通精度控制,桥梁的形变控制,铁路、公路路线的带状控制,都需要很高的外业测量经验和数据处理知识。从施工行业和测绘行业的整个控制测量工作流程来讲,工作人员获得了外业测量采集的数据后,还需进行测量内业的数据处理内业工作。不同的工程、不同的行业要求控制网满足的测量精度也各不相同,使用的仪器精度也不同,最终能否达到工程的要求,必须通过测量控制网数据处理来进行检验,指导控制网施工。七八十年代的老一辈的测绘工作者数据处理只能采用手计算的方式,计算工作量相当繁重,占用大量的时间,测量人员必须具备很高的外业测量经验和平差数据处理知识才能完成。九十年代早期出现了测量平差程序,仍需经过记录数据的打印、绘制计算略图、编号编码、数据摘抄、严格顺序数据录入等繁琐工作,影响了数据处理的效率,浪费了宝贵的时间,严重阻碍了测量数据处理自动化的发展。

随着计算机技术的发展和普及,以及矩阵代数、最优化理论和概率统计在测量平差中的广泛应用,对测量平差理论产生了深刻的影响,是测量平差从经典平差理论到现在的近代平差理论,推动了测量平差理论知识的发展,扩展了经典平差理论的数学模型,提出了一些近代平差数据处理的新方法,如相关平差、秩亏平差方法、随机模型的验后估计、有偏估计等。近几年国内外已有多个版本的导线网平差程序,这些平差程序有其各自的优点并存在不足。近期开发的平差程序大部分已有了改善,智能化自动解算水平在提高,功能在日趋完善,但总存在着不足,功能仍然需要完善。利用现代科学技术手顿结合测量数据处理的专业知识,编写新一代的导线网平差软件,实现导线网平差数据处理的计算机自动解算,智能化的完成繁重的数据处理任务,图形化的操作界面,可大大提高工作的效率,同时减轻内业工作负担,缩短项目的工期,降低了数据处理人员对平差专业知识的依赖,

中国矿业大学2012届本科生毕业设计第 7 页

??VTPV?2KT(AV?W) (2.15)

为引入最小二乘法,将Φ对V求一阶导数,并令其为零:

d??(VTPV)?(KTAV)??2?2VTP?2KTA?0 dV?V?V得:

VTP?KTA

上式两端转置,得 PTV?ATK 由于P是主对角线阵,则 P?PT,得 : PV?ATK 将上式两边左乘权逆阵 P?1 ,得:

V?P?1ATK

此式称为改正数方程,其纯量形式为:

vi?(2.16)

1(aika?bikb???rikr) (i?1,2,?,n) (2.17) pi将(2.16)式代入(2.13)式,得

AP?1ATK?W?0 (2.18)

此式称为联系数法方程(简称法方程)

取法方程的系数阵AP?1AT?N,由上式易知N阵关于主对角线对称,得法方程表达式 :

NK?W?0 (2.19)

法方程数阵N的秩:

R(N)?R(AP?1AT)?r

即,N是一个r阶的满秩方阵,且可逆。将(2.18)式移项,得:

NK?W 上式两边左乘法方程系数阵N的逆阵 N?1 ,得联系数K的唯一解:

K?N?1W (2.20)

将(2.20)式代入(2.16)或(2.17)式,可计算出V,再将V代入(2.10),即可计

??L?V 。 算出所求的观测值的最或然值 L?,可以进一步计算一些未知量(如待定点的高程、纵横坐标以通过观测值的平差值L及边的长度、某一方向的方位角等)的最或然值。

?都是由(2.13)和(2.16)式解算出的,因此我们把由上述推导可看出,K、V及L(2.13)和(2.16)式合称为条件平差的基础方程。

中国矿业大学2012届本科生毕业设计第 8 页

2.3.3条件平差的计算步骤

综合以上所述,按条件平差的计算步骤可归结为以下几步:

(1)根据实际问题,确定出总观测值的个数n、必要观测值的个数t及多余观测个数r = n - t,进一步列出最或是值条件方程(2.12)或改正数条件方程(2.13); (2)根据(2.18)式,组成法方程式; (3)依据(2.20)式计算出联系数K;

(4)由(2.16)式计算出观测值改正数V;并依据(2.10)式计算出观测值的平差值;

2?0 ; (5)根据(2.22)和(2.23)计算单位权方差 ?和单位权中误差??0(6)列出平差值函数关系式(2.29),并对其全微分,求出其线性函数的系数阵f,利用(2.32)式计算出平差值函数的协因数QFF,代入(2.33)计算出平差值函数的协方差DFF。

?代入平差值条件方程式(2.12) (7)为了检查平差计算的正确性,可以将平差值L,看是否满足方程关系。 2.3.4精度评定

1.计算单位权方差和中误差的估值

根据中误差的定义,单位权中误差的计算公式为

?0???[p??]

r (2.21)

在一般情况下,观测值的真误差△是不知道的,也就不可能利用上式计算单位权中误差。但在条件平差中,可以通过观测值的改正数V来计算单位权方差和中误差:

VTPV?? ?r (2.22)

20VTPV?0???

r (2.23)

式中r为多余观测值个数,r = n–t。

在(2.23)中,须先算出VTPV的值,才能计算单位权中误差。VTPV可用下列几种方法计算:

(1)直接利用定义式(2.22)计算。 纯量形式为:

VTPV?[pvv]?p1v1?p2v2???pnvn (2.24)

(2)由(2.16)和(2.13)式导出

VTPV?VTP(P?1ATK)?VTATK?(AV)TK?WTK

即 VTPV?WTK (2.25) 其纯量形式为: VTPV?waka?wbkb???wrkr (2.26)

2.协因数阵

中国矿业大学2012届本科生毕业设计第 9 页

条件平差的基本向量L、W、K、V、 都可以表达成随机向量L的函数 L?L

W??AL?A0

K?N?1W??N?1(AL?A0)??N?1AL?N?1A0

V?P?1ATK?P?1AT(?N?1AL?N?1A0)??P?1ATN?1AL?P?1ATN?1A0

??L?V?L?(?P?1ATN?1AL?P?1ATN?1A)L0?(E?PANA)L?PANA0?1T?1?1T?1

?组成列向量,并以Z表示之 将向量L、K、V、L?E??0??L????A??A??W???0???????1?1Z??K????NA? (2.27) ?L???NA0??P?1ATN?1A??V???1T?1???1T?10?????PANA????L???????PANA0???1T?1?E?PANA?式中等号右端第二项是与观测值无关的常数项阵,按协因数传播律,得Z的协因数阵为:

?QLLQLWQLKQLVQLL???Q?QQQQ?WLWWWKWVWL??QZZ??QKLQKWQKKQKVQKL????QQQQQ?VWVKVV?VLVL??Q??QLQLQL?W?K?V?L???LLQL

?QATN?1AQQ?QATN?1AQ??AQ0??1? NAQ0(2.28)?T?1QANAQ0?0Q?QATN?1AQ??

?与闭合差W、联系数K、改正数V是不相关的统计量,又由于由上式可见,平差值L?与W、K、V也是相互独立的向量。 它们都是服从正态分布的向量,所以L?Q?QAT??AQN? ???N?1AQE?T?1QAT??QANAQ?Q?QATN?1AQ0??QATN?1EN?1QATN?103.平差值函数的协因数

在条件平差中,平差计算后,首先得到的是各个观测量的平差值。例如,测角网中的观测角度的平差值,导线网中的角度观测值和各导线边长观测值的平差值等。而我们进行测量的目的,往往是要得到未知点的坐标值、三角网的边长值及方位角值等,并且评定其精度。这些值都是关于观测值平差值的函数。

设有平差值函数:

??f(L?,L?,?,L?) F12n (2.29)

对上式全微分得:

?f??f??f?????????????? ??dL??dL??dFdL12n??L????????????L?L?1?L?L?2?L?L?n?L?L中国矿业大学2012届本科生毕业设计第 10 页

取全微分式的系数阵为:

???f???f????f???? ?,??,??,?f??f1,f2,??,fn?????L?????L??????????L2?L?L?n?L?L??L???1?L由协因数传播律得:

TQFF?fTQL?L?f (2.30)

根据QZZ的等式,知:

T?1QL?L??Q?QANAQ (2.31)

代入(2.30)式得:

TT?1QFF?fTQL?L?f?f(Q?QANAQ)f

QFF?fTQf?fTQATN?1AQf

(2.32)

此式即为平差值函数式(2.29)的协因数表达式。 则得该平差值函数的方差:

2?0DFF??QFF (2.33)

2.4间接平差原理

2.4.1间接平差的数学模型

间接平差法(参数平差法)是通过选定t个与观测值有一定关系的独立未知量作为参

数,将每个观测值都分别表达成这t个参数的函数,建立函数模型,按最小二乘原理,用求自由极值的方法解出参数的最或然值,从而求得各观测值的平差值。[1]

一般地,间接平差的函数模型为:

n,1??dL?BXn,tt,1?n,1 (2.34)

平差时,为了计算方便和计算的数值稳定性,一般对参数都取近似值,令:

??X0?x ?X (2.35)代入(4-1-4)式,并令:

l?L?(BX0?d)?L?L0 (2.36)

由此可得误差方程:

??l (2.37) V?Bx?视为非随机参数,不式中l为误差方程的自由项,对于经典间接平差,将未知参数X考虑其先验统计性质,根据(2.35)式,可得平差后QX由(2.36)式可得Qll?QLL。 ?X??Qx?x?,

间接平差的随机模型为:

中国矿业大学2012届本科生毕业设计第 11 页

n,n22D??0Q??0P?1n,nn,n

(2.38)

平差准则为:

VTPV?min (2.39) 间接平差就是在最小二乘准则要求下求出误差方程中的待定参数,在数学中是求多元函数的自由极值问题。 2.4.2间接平差的的一般原理

设平差问题中有n个观测值L,已知其协因数阵Q?P?1,必要观测数为t,选定t个独

?0???,观测值L与改正数V之和L?L?V,称为观测量的平立参数X,其近似值为X?X?x差值。按具体平差问题,可列出n个平差值方程为:

???Li?vi?aiX1?biX2???tiXt?di(i=1,2,3,?,n) (2.40) 令 :

n,1L??L1L2?Ln?V2?Vn?TV??V1n,1T??X?X1t,1n,1???X?X2td2?dn?T?Td??d1?a1?aB??2 n,t????anb1?t1?b2?t2?? ?????bn?tn?则平差值方程的矩阵形式为:

??dL?V?BX (2.41)

令:

??X0?x?Xl?L?(BX?d)0

式中X0为参数的充分近似值,于是可得误差方程式为

??l (2.42) V?Bx按最小二乘原理,上式的必须满足的要求,因为t个参数为独立量,故可按数学上求

函数自由极值的方法,得:

?VTPV?V?2VTP?VTPB?0 ???x?x转置后得:

BTPV?0 (2.43)

?,而方程个数也是n+t 以上所得的(2.42)和(2.43)式中的待求量是n个V和t个x个,有唯一解,称此两式为间接平差的基础方程。

解此基础方程,一般是将(2.42)式代入(2.43)式,以便先消去V,得:

??BTPl?0 (2.44) BTPBx令

中国矿业大学2012届本科生毕业设计第 12 页

t,tNbb?BTPB,W?BTPl

t,1上式可简写成

??W?0Nbbx (2.45)

?有唯一解,上式称为间接平差法方程。式中系数阵Nbb为满秩矩阵,即R(Nbb)?t , x解之,得:

?1??(BTPB)?1BTPl (2.46) ??NbbxW 或 x?代入误差方程(2.42)将求出的 x,即可求得改正数V,从而平差结果为:

L?L?V,???X0?x? (2.47) X特别地,当P为对角阵时,即观测值之间相互独立,则法方程(2.45)的纯量形式为:

?1?[pab]x?2???[pat]x?t?[pal]?[paa]x?1?[pbb]x?2???[pbt]x?t?[pbl]?[pab]x??

?????????1?[pbt]x?2???[ptt]x?t?[ptl]?[pat]x?2.4.3按间接平差法求平差值的计算步骤

(1)根据平差问题的性质,选择t个独立量作为参数;

(2)将每一个观测量的平差值分别表达成所选参数的函数,若函数非线性要将其线性化,列出误差方程(2.42);

(3)由误差方程系数B和自由项组成法方程(2.45),法方程个数等于参数的个数t ;

??X0?x?,计算参数的平差值 X? (4)解算法方程,求出参数x?(5)由误差方程计算V,求出观测量平差值L?L?V; (6)评定精度。 2.4.4精度评定

1.单位权中误差

间接平差与条件平差虽采用了不同的函数模型,但它们是在相同的最小二乘原理下进行的,所以两法的平差结果总是相等的,这是因为在满足VTPV?min条件下的V是唯一

??L?V不因方法不同而异。 确定的,故平差值L22?0单位权方差 ?0的估值 ?,计算式仍然是 VTPV除以其自由度,即

VTPVVTPV????

rn?t (2.48)

20中误差为

VTPV?0??

n?t (2.49)

计算VTPV可以将误差方程代入后计算,顾及BTPV?0得

中国矿业大学2012届本科生毕业设计第 13 页

TTTTTTT??考虑到 VPV??lP(Bx?l)?lPl?lPBxlPB?(BPl)即,

??lTPl?WTx? (2.50) 得VTPV?lTPl?(BTPl)Tx2.协因数阵

?。已知Q?Q,根据前面的定义和有?(x在间接平差中,基本向量为L(l),X?),V和LLL??X0?x?,故 QX关说明知,X?X??Qx?x?,Qll?QLL。下面推求各基本向量的自协因数阵和

两两向量间的互协因数阵。

?TVTL?T ,则Z的协因数阵为: 设 ZT?LTX??QZZ?QLL?Q???XL?QVL???L?QLQLX?QX?X?QVX?QL?X?QLVQX?VQVVQL?VQLL???QX?L?? ?QVL??QL?L???式中对角线上子矩阵,就是各基本向量的自协因数阵,非对角线上子矩阵为两两向量间的

互协因数阵。

其基本思想是把各量表达成协因数已知量的函数,上述各量的关系式已知为:

L?l?L0 (2.51)

?1T??NbbxBpl (2.52)

??l (2.53) V?Bx??L?VL (2.54)

由前三个式子,按协因数传播定律容易得出

QLL?Q

?1T?1?1 QX?X??NbbBPQPBNbb?Nbb?1T?1TTQX?L?NbbBPQ?NbbB?QLX? ?1TTQVL?BQX?L?Q?BNbbB?Q?QLV ?1?1TQVX??BQX?X??QLX??BNbb?BNbb?0?QX?V

TTQVV?BQX?X?B?BQX?L?QLX?B?Q?1T?1T?1T?BNbbB?BNbbB?BNbbB?Q ?1T?Q?BNbbB再计算与(2.54)式有关的协因数阵,得

?1TTQL?L?Q?Q? VL?BNbbB?QLL?1TT?1?1TQL?QPBN?0?BN?Q?X??Q(NbbBP)?Q??L? bbbbVXXTQL?V?QLV?Q? VV?0?QVL?1T QL?L??Q?QLV?QVL?QVV?BNbbB?、L?与改正数V的互协因数阵为零,说明L?与V,X?与V统计不相关,这平差值X中国矿业大学2012届本科生毕业设计第 14 页

是一个很重要的结果。

3.参数函数中的误差

在间接平差中,解算法方程后首先求得的是t个参数。有了这些参数,便可根据它们来计算该平差问题中任一量的平差值(最或然值)[1]

在间接平差中,任何一个量的平差值都可以由平差所选参数求得,或者说都可以表达为参数的函数。下面从一般情况来讨论如何求参数函数的中误差的问题。

假定间接平差问题中有t个参数,设参数的函数为:

?,X?,?,X?) ???(X?12t (2.55)

??X0?x将X?j(j?1,2,?,t)代入上式后,按泰勒公式展开,取至一次项,得: jj??f0?f1x??f1x?1?f2x?2??ftx?t或 ???1?f2x?2??ftx?t?

(2.56)

?或???是一样的。通常把(2.56)式称为参数函数的对于评定函数的精度而言,给出?权函数式,简称权函数式。

??FTx? 令 FT??f1f2?ft?,则: ???1?的协因数为: ?因QX?X??Nbb,故函数

TT?1 Q?????FQX?X?F?FNbbF (2.57)

?的权函数式为: 一般,设有函数向量?m,1??FTx? ??m,1m,tt,1

(2.58)

即用来计算m个函数的精度,其协因数阵为:

TT?1 Q?????FQX?X?F?FNbbFm,m (2.59)

T????X?X1X2?Xt的协因数阵,即: QX?X?是参数向量

??QX?X??QX?X?11??QX?X???21???Q???XtX1QX?X?12QX?2X2??QX?X?t2?QX?X??1t??QX?X??2t?

?????QX?X?tt?jXj其中,对角线元素QX???的协因数,故X?的中误差为: 是参数Xjj?X?j??0QX?jXj? (2.60)

?的协方差阵为: (2.58)式的函数?22T?1D??????0Q??????0(FNbbF)m,m

(2.61)

中国矿业大学2012届本科生毕业设计第 15 页

3 Excel在导线平差中的应用

3.1 Excel在平差中的应用基础

3.1.1 引言

在现代测量中,对通过各种测量方法所采集得到的原始数据,往往需要根据误差理论的方法对存在的各类误差进行平差处理从而取得最或然结果。而对于偶然误差的处理,利用最小二乘法准则进行平差计算的过程,通常都要对误差方程式或条件方程式进行整合处理求得法方程组,然后解算法方程、计算改正数、精度评定等等,一系列计算步骤的进行,如果没有现成的专业软件,而用手工的办法去完成平差计算工作,将是一件很繁琐的事情。 其实,测量平差的过程简单的来说就是解算线性方程组的过程,而最令人烦恼的部分是线性方程的求解。在处理一些小的工程项目平差计算的时候,如果手头没有像MATLAB等具有矩阵运算功能的应用软件,利用Microsoft Office Excel的内置函数,同样的可以帮助计算者比较轻松的完成计算任务。 3.1.2 Excel在平差中的基本应用操作函数

以下要阐述的就是利用Excel转置粘贴功能以及矩阵计算的函数TRANSPOSE(矩阵转置)、MMULT(矩阵乘)、MINVERSE(矩阵求逆),实现测量平差之线性方程组解算的过程。

为了加快平差解算的作业效率,应该根据实际情况选择适当的数学模型。实际工作中,有两种数学模型得到了较为广泛的应用,即间接平差模型和条件平差模型;本章中主要介绍Excel在条件平差的应用。 1.条件平差模型

条件方程式:AV-W= 0 ; 法方程:-W= 0 ; 改正数计算:V= ; 计算: ;

??f(L?,L?,?,L?) 平差值的函数:F12nT 平差值的协因数计算:QFF?fQf?fTQATN?1AQf

公式中各种符号的含义:观测向量 L;相应的权阵 P;条件方程的系数矩阵A;条件改正数 V;条件闭合差 W;法方程联系数矩阵 K;平差值的函数系数阵f。 2.计算法方程

平差计算的数学模型,全都是以矩阵的形式给定的。如果掌握了矩阵计算的方法,所有的计算将迎刃而解。

由于测量计算作业过程中采用不同的数学模型,以及图形条件的多样化,对于条件方程的产生,在本文所述的解算方案当中,还不能自动完成;当然,可以完成部分类型的条件方程(如附和导线),还可以利用Excel中的VBA功能编程处理,但将可能给计算者增加了难度。以下是对如何使用Excel内置函数进行矩阵计算的方案进行阐述。

中国矿业大学2012届本科生毕业设计第 16 页

(1)数据的输入

将系数矩阵的数据填入电子表格的相应区域中。

(2)矩阵的转置

a.选中电子表格中系数矩阵的数据区域,点击右键,选击‘复制’菜单选项。

b.在电子表格中点击系数矩阵数据区域以外的任意单元格,点击右键,选击“选择性粘帖”菜单项。

c.点击“选择性粘帖”菜单项,出现“选择性粘帖”对话框;该对话框有三部分选项,第一部分“粘帖”,选中“全部”选项,第二部分“运算”,选中“无”选项,第三部分选中“转置”选项,单击确定,即可完成系数矩阵数据的转置操作。 (3)矩阵乘运算

a.选中电子表格中的空白区域,该区域的行数、列数等于矩阵相乘所得矩阵的行数、列数,点击工具栏中的(函数)工具按钮。

b.弹出插入函数的对话框,在该对话框的左边的函数分类中选择“数学与三角函数”,在右边的函数名中选中“MMULT”,单击确定。

c.弹出函数参数输入的对话框,该对话框提示输入两组参数,第一个参数Array1栏中输入第4步骤中转置矩阵区域的行列号,在Array2栏中输入系数矩阵区域的行列号,可以不用键盘输入,而用Array*内右端的按钮,回到表格视图中用鼠标涂选表格区域,按一下回车键即可;在表格视图的公式栏应该有“=MMULT(‘转置矩阵区域’,‘系数矩阵区域’)”的描述。

d.同时按住Shift和Ctrl两键,按下回车键,这时,第1步骤选定的区域内的单元格所显示的结果即为联系方程的系数阵。

(4)矩阵求逆运算

a.选中电子表格中的空白区域,其行列数与系数矩阵相同,点击工具栏中的fx工具按钮。

b.在弹出的对话框中左边的函数分类选取“数学与三角函数”,右边选择函数名“MINVERSE”,单击确定。

c.在弹出的参数选择对话框中Array1中输入系数矩阵,在表格视图的公式栏中也应该有“=MINVERSE (系数矩阵区域)”的描述。

d.同时按住Shift和Ctrl两键,按下回车键,第1步骤选定区域内的单元格所显示的结果即为系数矩阵的逆矩阵。

熟练掌握上述矩阵计算的步骤、方法,解决测量平差的线性方程组解算的问题就会变得简单、容易。 3. 注意事项

在计算过程中,受Excel软件本身的约束和限制,可能会带来不可预想的结果,因此需要注意一下几个事项:

(1)受电子表格列数的限制,Excel最多可以计算有256列的矩阵。若要求解有更多列的矩阵,可以利用分块矩阵的办法,或者VBA 语言编程进行解决。

(2)改变计算结果的精度,可作以下操作:‘格式’菜单→单元格→数字→数值→小数位数,选定相应的数值即可。若需用双精度计算,设定小数位为15位,即可得到双精度的求解结果。

中国矿业大学2012届本科生毕业设计第 17 页

(3)有关矩阵的计算,还有其他的运算功能,如相加、相减等,均可以在Excel编辑功能的‘复制’与‘选择性粘贴’中实现。 3.1.3 核心问题的解决及技巧

(1)测量平差计算传统上是以表格为基本框架进行的,Excel也沿用了这一模式,所不同是它每一个单元格都有函数、公式的编辑、计算功能,这样整个表格就有了生命力,这正是Excel成功的地方,是其精髓所在。在程序的编辑中,我们应始终明确这一概念。

(2)观测数据应固定于某一列,自上而下依次输入,从而使整个输入过程变得连贯、顺畅。即使输入有误也便于修改。

(3)同一类格式、文字、数据、计算,例如,提示文字、水平角、距离、坐标增量计算等应分列放置,只有这样,才能有条理,便于后续计算的有效利用。同时可用“拖放”功能,将其格式、公式等合理地复制到下面的单元格,瞬间完成程序的编写。

(4)在本程序的编写过程中,需大量使用判断语句,特别是镶嵌式的判断语句,如果能灵活运用好该语句,程序的编写也就成功了一大半。例如,在后面的图5中的G6单元格为:=IF(D4+E5+180<360,D4+E5+180,IF(D4+E5+180<720,D4+E5+180-360,D4+E5+ 180-720))这是一个方位角推算语句,其中D4为起始方位角,E5为下一条边前进方向左角,该语句功能为:若D4+E5+180<360,则G6=D4+E5+180;若360

(5)因Excel中三角函数是以弧度为单位计算的,所以必须将以度分秒输入的角度转换成弧度。这就需要将度分秒分开,然后才能化成弧度。例如C6单元格为:=IF(B6=””,180,INT(B6))其中B6为度分秒为单位的角度。该语句意为:若B6是空格,即未观测,C6值为180度,否则为观测角的整度值。其中180度是为在本站未观测的情况下预设的角度,其目的是为在后续的计算中把方位角传递下去,从而保证整个程序在逻辑上的完整性。

(6)程序编辑完成后,应对输入区外的所有单元格进行再设置,在“设置单元格格式”菜单下,选定“保护”子菜单下的“锁定”和“隐藏”,并在“工具”子菜单“保护”中的“保护工作表”下,用密码进行保护,从而确保程序在使用过程中不被修改或破坏。 3.1.4 三角函数在Excel中的处理方法

在测量计算中, 除了加、减、乘、除、开方外, 最常见的是角度与三角函数的处理。EXCEL 中备有常用的各种函数, 各种三角函数也很齐全, 但角度是按弧度为单位处理的, 在计算过程中需要涉及到角度的度、分、秒形式与弧度的相互转换。具体的转换公式如下: `1.“度.分秒”转换成度( 度小数)

当把角度值输入到计算机时, 我们一般以“度. 分秒”格式输入, 其表示的数值并不是代表度, 如某角度178. 32066代表178°32′06. 6″,而不是代表178.32066°。

在数据处理时常需要变换成以度为单位的角度值, 俗称度小数。在用计算器进行计算时有 “DEG”的功能键, 可以直接把“度. 分秒”值直接转换成度小数, 而EXCEL 中的DEGREE()函数是把弧度转换成度小数的函数, 不能直接计算, 需要应用公式来计算。计算机要在处理角度之前必须首先分别判断出度、分、秒值, 设某一以“度. 分秒”形式表示角度为B,则其度的:

整数部 = INT(ABS(B))

中国矿业大学2012届本科生毕业设计第 18 页

分值 = INT(ABS(B)*100)-INT(ABS(B))*100

秒值 = INT(ABS(B)*10000)-INT(ABS(B)*100)*100

度小数 = INT(ABS(B))+(INT(ABS(B)*100)-INT(ABS(B))*100)/60 +(INT(ABS(B)*10000)-INT(ABS(B)*100)*100)/3600

以上是针对161°44′07″这种形式的角度,而针对针对161°44′07.2″则是以下表达式,其他情况类似:

度小数 = INT(ABS(B))+(INT(ABS(B)*100)-INT(ABS(B))*100)/60

+(INT(ABS(B)*100000)-INT(ABS(B)*100)*1000)/36000

这就是计算机完成角度判断并转换成以度为单位的计算公式。其中INT()为Excel 的取整函数,ABS()为Excel的取绝对值函数。 2.度小数转换成“度.分秒”

在坐标方位角反算中, 需要把度小数化成“度. 分秒”形式, 设某一度小数为B, 则度的转换公式如下:

整数部分 = INT(B)

分值 = INT((B-INT(B))*60)

秒值=INT(((B-INT(B))*60-INT((B-INT(B))*60))*60) 度.分秒 = INT(B)+( INT((B-INT(B))*60))/100

+(INT(((B-INT(B))*60-INT((B-INT(B))*60))*60))/10000

以上是针对161°44′07″这种形式的角度,而针对针对161°44′07.2″则是以下表达式,其他情况类似:

度.分秒 = INT(B)+( INT((B-INT(B))*60))/100 +(((B-INT(B))*60-INT((B-INT(B))*60))*60)/10000

秒用反三角函数计算出来的角度是弧度值, 要变成“度.分秒”形式, 首先需要把弧度值变成度小数。计算时可以用DEGREE( ) 函数直接把弧度变成度小数; 反之, 用RADIANS( )函数可将度小数变换成弧度值。

以上情况在附和导线的近似平差和条件平差中的都会遇到。 3.1.5 小结

Excel电子表格函数系统数学运算功能强大,使用操作简单,且有丰富的可视化输出,因而平差过程直观,平差成果与其它软件兼容性强使用方便。

修改更正方便。在运算过程中,如发现某个单元格的数据有误时,重新输入正确值后,Excel电子表格将自动重新计算与之相关的运算并输出新的计算结果。因此,我们对Excel电子表格作适当的设置,Excel同样可以进行测量平差的迭代计算。

矩阵的各种运算,必需满足矩阵运算法则,否则矩阵运算失败。另外各个矩阵可以分别输入或输出在不同的工作表中,工作表可以根据各自的习惯将其命名,如“辅助”、“平差结果表”等,给使用者和阅读者方便。

中国矿业大学2012届本科生毕业设计第 19 页

3.2 Excel在附和导线近似平差中的应用

3.2.1 单一附和导线近似平差

1.角度平差[2]

角度平差的目的是消除转角观测误差引起的方位角闭合差,求的各转角的平差值。方法是先计算方位角闭合差,当时,将反号平均分配给各转角,即:

(3.1)

(3.2)

式中,n为转角个数;为转角改正数;为转角平差值。 2.坐标平差

坐标平差的目的是消除因转角和边长观测误差引起的坐标闭合差和,求得各点的坐标平差值。方法是用平差角和观测边长D先推算各点间坐标增量近似值,进而求得坐标闭合差、和导线全长闭合差及导线全长相对闭合差K。当时,将坐标闭合差按边长成比例反号分配给各坐标增量,求得坐标增量的平差值和各点坐标平差值,即:

各边方位角: (3.3) 各点坐标增量: (3.4)

坐标闭合差: (3.5)

导线全长闭合差和导线全长相对闭合差为:

(3.6) (3.7)

坐标增量改正数: (3.8) 坐标增量平差值: (3.9) 各点坐标平差值: (3.10) 3.2.2单一附和导线近似平差实例

附合导线是平面控制测量中常用的布网方式。在一级导线或二级导线外业测量完成后,需要进行近似平差,求得每个导线点的坐标值。采用手工计算,工作量较大。Excel具有较强的表格化计算能力,经过简单的表格编制和有关公式编辑就可用来近似平差单一附合导线。

附合导线近似平差的主要计算内容包括:(1)计算角度闭合差及其改正数;(2)计算导线边方位角;(3)计算坐标增量;(4)计算坐标增量闭合差并对其调整;(5)计算各导线点坐标;(6)计算相对精度。

进行坐标增量闭合差调整时,一般采用与对应边长成正比例的原则来计算坐标增量的改正数。

例题 图3.1所示为单一附和导线。A、B、C、D为已知点,表3.1中的已知数据有起点B与终点C的坐标;起边与终边的方位角和:

各转角和各边长D分别列于下表。试对这一导线进行近似平差。

表3.1

中国矿业大学2012届本科生毕业设计第 20 页 已知数据/m B, ,) 导线边长观测值/m

已知方位角 转折角度观测值 图3.1 单一附和导线

在图3.2、图3.3中可以看到近似平差后的结果。 (1)编制附合导线计算表,录入已知数据

附合导线计算表的样式如图3.2所示。依照图示编辑好表格(注意表格中的合并操作及有关单元格小数位数的设置)向表中录入已知点的坐标值,见图3.3中I列和J 列中有下划线的数据。在E7和E17格中录入AB边和CD边的方位角值,在区域B8:B16 中录入角度观测值,在区域F9:F15 中录入导线边观测值。 (2)转化的角度表达形式

在图3.3的B5格中输入下式,把角度值由度分秒形式转化为度的形式:

=INT(ABS(附和导线近似平差!B8))+(INT(ABS(附和导线近似平差!B8)*100)-

INT(ABS(附和导线近似平差!B8))*100)/60+(INT(ABS(附和导线近似平差!B8)*10000) -INT(ABS(附和导线近似平差!B8)*100)*100)/3600

用鼠标选中B5单元格(此时,在该单元格的右下角处有一个小黑块,这个小黑块称为“填充柄”。将鼠标指向填充柄时,鼠标的形状就会变为一个小十字。)向下拖动填充柄覆盖B5:B13区域,就可以把单元格B5中的公式复制到B5:B1区域中所有单元格中,同时计算出各角值的度的形式。

(3)计算角度闭合差及其改正数

在图3.3的C4格中输入:=INT(ABS(附和导线近似平差!E7))+(INT(ABS(附和导线近似平差!E7)*100)-INT(ABS(附和导线近似平差!E7))*100)/60+(INT(ABS(附和导线近似平差!E7)*10000)-INT(ABS(附和导线近似平差!E7)*100)*100)/3600

在图3.3的C6格中输入下式,计算边的方位角:

=IF(C4+B5+180-360<0,C4+B5+180,IF(C4+B5+180-720<0,C4+B5+180-360,C4+B5+18

中国矿业大学2012届本科生毕业设计第 21 页

0-720))选中C6格,向下拖动填充柄覆盖C6:C14 区域,计算出各单元格中相应的方位角值。

为计算出方位角闭合差,在图3.2的C24中输入:=(辅助!C14-辅助!E14)*3600得到的秒值形式,为计算各角度观测值的改正数,在C8的改正数中输入:-C24/C26,C26中输入了观测角的个数。

计算后得改正数的值: = -6″。 (4)计算改正后的方位角值

在图3.3的E4中输入:

=INT(ABS(D4))+(INT(ABS(D4)*100)-INT(ABS(D4))*100)/60+(INT(ABS(D4)* 10000)-INT(ABS(D4)*100)*100)/3600

上式中,D4为已知坐标方位角; 在E6中输入下式,计算平差后的方位角

=IF(E4+F5+180-360<0,E4+F5+180,IF(E4+F5+180-720<0,E4+F5+180-360,E4+F5+180-720))

参考步骤(2),用此式填充区域E6:E14,即可计算出改正后各边的方位角。 (5)计算坐标增量

分别在图3.2的G9和I9中输入下两式: =F9*COS(辅助!G6) =F9*SIN(辅助!G6)

参考步骤(2),将上两式分别复制并填充到区域G9:G15 和区域I9:I13中,即可计算出各坐标增量。

(6)计算坐标增量改正值

在图3.2的G24和G26中分别输入下两式,计算纵横坐标增量闭合差和: =G20-(辅助!I13-辅助!I5) =I20-(辅助!J13-辅助!J5)

计算后,G24和G26中的值分别为:-0.026 和-0.057。

在图3.2的H9和J9 中分别输入下两式,计算纵横坐标增量的改正数: =-(G24/F20)*F9*1000 =-(G26/F20)*F9*1000

参考步骤(2),将上两式分别复制并填充到区域H9:H15 和区域J9:J15中,即可计算出各坐标增量的改正数。

(7)对坐标增量进行改正,并计算各导线点坐标值

在图3.2的M10和N10中分别输入下两式,计算导线点2的纵坐标X和横坐标Y: =M8+K9 =N8+L9

上两式中的M8、N8是已知点坐标,K9、L9为X、Y的坐标增量平差值。

参考步骤(2),计算填充出区域M10: M16和区域N10:J16中的值,即为各导线点坐标的计算结果。其中,I14 和J14 中的计算值可与先前的已知值对比,看计算结果是否还存在不符值,其中点C坐标可作为检核点。 (8) 相对中误差

中国矿业大学2012届本科生毕业设计第 22 页

为计算点位闭合差,在G28中输入: =SQRT(G24*G24+G26*G26)

在G30中输入下式,计算点位相对闭合差K : =G28/F20,式中F20为观测边长总长。

检查计算结果是否满足精度要求,计算完毕。

图3.2 附和导线近似平差

图3.3 附和导线近似平差辅助数据计算

Excel是OFFICE软件的重要组件之一,其普及率非常高,用Excel编制附合导线计算表,使用起来十分方便。本文中编制的计算表,在解算具有三个待定点的附合导线时,只需要将表格中的已知点数据、角度观测值和边长观测值替换一下就行了。如果附合导线中未知点个数不是三个时,只需要增加待定点的行数,对相应的公式略作改动就可以了。也可以事先编制好不同未知点情况下的计算表格,应用时,用直接录入已知点数据和观测值即可。

3.3 Excel在导线网条件平差中的应用

导线网,包括单一附合导线、单一闭合导线和结点导线网,是目前较为常用的控制测

中国矿业大学2012届本科生毕业设计第 23 页

量布设方式之一,其观测值有长度观测值和角度观测值。在本节中我们主要讨论单一附和导线的平差计算,先讨论单一附合导线问题。 3.3.1单一附合导线条件平差

图3.4 单一附和导线

如图3.4所示,在这个导线中有四个已知点、n -1个未知点、n+1个水平角观测值和n条边长观测值,总观测值数为2n+1。从图中可以分析,要确定一个未知点的坐标,必须测一条导线边和一个水平角,即需要两个观测值;要确定全部n -1个未知点,则需观测n -1个导线边和n -1个水平角,即必要观测值数t = 2n -2;则多余观测个数r = (2n +1) – t = 3。也就是说,在单一附合导线中,只有三个条件方程。下面讨论其条件方程式及改正数条件方程式的写法。

设AB边方位角已知值为,CD边方位角已知值为、计算值为Tn+1,B点坐标的已知值为(, )或者(,),C点坐标的已知值为(,)、计算值为(,)。三个条件中,有一个方位角附合条件、两个坐标附合条件。

方位角附合条件:从起始方位角推算至终边的方位角平差值应等于其已知值,即

??T?0Tn?1CD (3.11)

纵横坐标附合条件:从起始点推算至终点所得到的坐标平差值应与终点的已知坐标值相等,即

?n?1?xC?0x (3.12) ?n?1?yC?0y (3.13)

1.方位角附合条件式

?]n?1?(n?1)?180??T?[??v]n?1?(n?1)?180? ??T?[?Tn?10i10i?i1则(3.11)式可写为

??T?T?[??v]n?1?(n?1)?180??T?0 Tn?1CD0i?i1CD整理得

n?1[v?i]1?wT?0 (3.14)

其中

中国矿业大学2012届本科生毕业设计第 24 页

n?1wT??(T0?[?i]1?(n?1)?180??TCD)

2.纵坐标附合条件式

终点C坐标平差值表示为:

n?n?1?xB?[?x?i]1x (3.15)

而第i边的坐标增量为

?cosT??i?S?xii (3.16)

式中

S?i?Si?vSi T?i?T0?[??j]i1?i?180??T0?[?j?v?j]i1?i?180??[v]ii?j1?[?j]1?T0?i?180?

?[vi?j]1?Ti其中Ti是第i边的近似坐标方位角:

Tii?[?j]1?T0?i?180? 则(3.16)式可表示为:

?x??(Scos([viii?vSi)?j]1?Ti)

上式按泰勒级数展开,取至一次项,得

?x??yiii??xi?cosTi?vSi????[v?j]1 其中?xi?SicosTi , 为由观测值计算出的近似坐标增量。

将(3.18)式代入(3.15)式,并按v?i合并同类项得:

nx??x?????x?yi?CBi?cosTi?vSi?i???[v?j]1??1 ?xn1nn?1?[cosTi?vSi]1????[(yn?1?yi)v?i]1将上式代入(3.12)式,整理得:

[cosT?vniSi]1?1???[(y)vnn?1?yi?i]1?xn?1?xC?0 上式即为纵坐标条件方程式,也可写为统一形式:

[cosTni?vSi]11????[(ynn?1?yi)v?i]1?wx?0 wx??(xn?1?xC) (3.17)

(3.18)

(3.19)

(3.20)

中国矿业大学2012届本科生毕业设计第 25 页

3.横坐标附合条件式

可以仿照纵坐标条件推导过程写出横坐标条件式:

n[sinTi?vSi]1?1n [(xn?1?xi)v?i]1?wy?0??? (3.21)

wy??(yn?1?yC) (3.22)

为使计算方便,保证精度,在实际运算中,S、x、y常以米为单位,w、、以厘米为单

位,则(3.19)和(3.21)写为:

n[cosTi?vSi]1?1n[(yn?1?yi)v?i]1?wx?0

2062.65 (3.23)

n[sinTi?vSi]1?1n[(xn?1?xi)v?i]1?wy?0

2062.65 (3.24)

综上所述,单一附合导线的平差计算的基本程序是:

(1)计算各边近似方位角Ti和各点的近似坐标增量值?xi、?yi; (2)参照(3.14)写出方位角条件式,参照(3.19)、(3.20)、(3.21)、(3.22)或者(3.23)、(3.24)写出纵横坐标条件方程式;

(3)按照条件平差计算的一般程序,计算最或是值并进行精度评定。 3.3.2边角权的确定及单位权中误差

导线网中,既有角度又有边长,两者的量纲不同,观测精度一般情况下也不相等。在依据最小二乘法进行平差时,应合理地确定边角权之间的关系。为统一确定角度和边长观测值的权,可以采用以下方法。

?s ;取常数 取角度观测值的权及中误差为:、?、???;取边长观测值的权及中误差为:

?0,则角度及边长观测值的权为: ?22?0?0??p??2,pS?2

?S????一般情况下,可以认为同一导线网中测角精度相等,但是由于导线边长变化较大使得测边精度不等。可以取??0???? ,则

2??? p??1, pS?2?S (3.25)?式中???以秒为单位,无量纲。在实际计算边长的权时,为使边长观测值的权与角度观测

?s的单位取为厘米,则的量值的权相差不至于过大,应合理选取测边中误差的单位,如果??s的单位与改正数的单位要一致,均以厘米为单位。 纲为;而在平差计算中,?按此方法确定的权,在平差之后还应进行统计假设检验。检验通过后才能说明其合理性,否则,应作修正再进行平差和统计假设检验。

由于导线网中,既有角度又有边长,单位权中误差应按下式计算:

中国矿业大学2012届本科生毕业设计第 26 页

[pSvSvS]?[p?v?v?][pvv]?0?????

rr (3.26)

如前所述,由于在计算边角权时,通常取测角中误差作为单位权中误差(即),所以

在按(3.26)式算出的单位权中误差的同时,实际上也就计算出了测角中误差。测边中误差可按下式计算:

?S???0?i1pSi

(3.27)

3.3.3单一附和导线条件平差实例

如图3.5所示,为一四等附合导线,测角中误差???= ±2.5″,所用测距仪的标称精

?s= 5mm+5ppm2D 。已知数据和观测值见表3.2。试按条件平差法对此导线进行度公式?平差。

表3.2 已知数据/m B(187396.252,29505530.009) C(184817.605,29509341.482) 导线边长观测值/m

已知方位角 161°44′07.2″ 249°30′27.9″ 转折角度观测值

图3.5 四等附和导线

在图3.6 a和图3.6 b中显示了条件平差后的角度、边长、坐标的平差值。

中国矿业大学2012届本科生毕业设计第 27 页

图3.6 a 条件平差结果

图3.6 b 条件平差结果

在图3.6 a和图3.6 b的I7、J7、L7列中分别输入以下三式,求出边长、角度、方位角的平差值:

=E7+G7/100

=INT(辅助!E6+平差结果表!H7/3600)+( INT((辅助!E6+平差结果表!H7/3600-INT(辅助!E6+平差结果表!H7/3600))*60))/100+(((辅助!E6+平差结果表!H7/3600-INT(辅助!E6+平差结果表!H7/3600))*60-INT((辅助!E6+平差结果表!H7/3600-INT(辅助!E6+平差结果表!H7/3600))*60))*60)/10000

=INT(辅助!I6)+( INT((辅助!I6-INT(辅助!I6))*60))/100+(((辅助!I6-INT(辅助!I6))*60-INT((辅助!I6-INT(辅助!I6))*60))*60)/10000

将上三式分别复制并填充到区域I7:I10、区域J7:J10和L7:L11中,即可计算出各个边长、角度、方位角的平差值。

中国矿业大学2012届本科生毕业设计第 28 页

图3.7 条件平差辅助数据计算

在图3.7中的辅助表中涉及到的度分秒和度小数之间转化、各边方位角的推算问题,在第一、二节中已经提到过,在这就不再赘述。

图3.8 a条件平差的相关矩阵计算

中国矿业大学2012届本科生毕业设计第 29 页

图3.8 b条件平差的相关矩阵计算

图3.8 c 条件平差的相关矩阵计算

图3.8 a、b、c中主要是在改正系数A表中计算条件平差的系数阵A和观测权阵P,闭合差项W以及这些矩阵的组合和矩阵的一系列转置、求逆、乘法运算,其中运用了Excel中的函数RADIANS()、TRANSPOSE()、 MINVERSE()、MMULT()。

(1)边长改正数的系数在D、E列中需用到SIN()、COS()、RADIANS()函数。 (2)系数矩阵A要用到TRANSPOSE()函数,如A矩阵中的b行需选定单元格M4:P4输入“=TRANSPOSE(D4:D7)”,然后按[Ctrl]+[Shift]+[Enter],计算结果自动显示在相应的单元格中;同理,求出系数矩阵的其他系数。

(3)计算观测值权阵中的测边观测权

在上图中的O12中输入=$P$8^2/(($P$9+$Q$9*平差结果表!E7)/10)^2,可得到一个边的权,然后复制并填充到O12:O15,得到个边的观测权;测角观测权一般都为1。其中的$P$8表示无论怎么拖动复制,都会保持单元格S8的值,其他也类似。

(4)计算权逆矩阵,首先选定上图中Excel的单元格O31:W39,输入公式“=MINVERSE(O21:W29)”,然后按[Ctrl]+[Shift]+[Enter],计算结果自动显示在相应的单元格中。

(5)计算法方程系数阵N,首先选定上图Excel的单元格O41:Q43,输入公式“=MMULT(MMULT(M3:U5,O31:W39),K12:M20)”,然后按[Ctrl]+[Shift]+[Enter],计算结果自动显示在相应的单元格中。

(6)计算逆矩阵,首先选定单元格O41:Q43,输入公式 “=MINVERSE(O41:Q43)”,然后按[Ctrl]+[Shift]+[Enter],计算结果自动显示在相应的单元格中。

(7)计算闭合差项W的3项,分别在O48、O49、O50中输入: =-(辅助!G10-辅助!D5)*3600 =-(辅助! J9-平差结果表!B6)*100 =-(辅助!K9-平差结果表!C6)*100 (8)计算联系数K

首先选定O51:O53,输入公式“=MMULT(O45:Q47,O48:O50)”,然后按[Ctrl]+[Shift]+[Enter],计算结果自动显示在相应的单元格中。

中国矿业大学2012届本科生毕业设计第 30 页

(9)计算单位权中误差

首先选定上图中的Excel表中的单元格O55:W55,输入公式=TRANSPOSE(MMULT (MMULT(O31:W39,K12:M20),O51:O53)),然后按[Ctrl]+[Shift]+[Enter],计算结果自动显示在相应的单元格中,最后在单元格O58中输入=SQRT(MMULT(MMULT(O55:

?0 2.6055。 W55,O21:W29),TRANSPOSE(O55:W55))/3),得到单位权中误差?

中国矿业大学2012届本科生毕业设计第 31 页

4 导线网的间接平差程序设计与实现

4.1矩阵的相关函数

在数据处理程序中,经常需要用到矩阵的基本计算,包括矩阵的乘积、转置、求逆等。在测量数据处理中,还需要用到一些具体的、有规律和统一的矩阵计算。在此,为程序简单起见,我们用C语言的数组表示矩阵,定义矩阵的最大维数为MAX(定义矩阵存储空间大小),函数中对同类计算使用C++重载的概念进行处理,从而使程序清晰、应用方便。 4.1.1矩阵相乘

1.普通矩阵相乘

矩阵相乘包括两个矩阵的乘积和数乘矩阵两个方面的内容。 (1)基本矩阵相乘 定义函数为

void AXB(double A[][MAX],double B[][MAX],double C[][MAX],int m,int n,int k);

其中:MAX为预定义的矩阵最大维数。 应用举例:

double S[MAX][MAX],H[MAX][MAX],T[MAX][MAX]; //定义矩阵,注意维数必须与函数定义相统一

// 对S与H矩阵赋值 AXB(S,H,T,3,4,5); 上式计算:S?H?T3,44,53,5

(2)数乘以矩阵 定义函数为:

void AXB(double a,double A[][MAX], double aA[][MAX],int m,int n); 应用举例:

double S,H[MAX][MAX],T[MAX][MAX]; //定义矩阵,注意维数必须与函数定义统一

// 对S与矩阵H赋值 AXB(S,H,T,4,5); 上式计算:S?H?T

4,54,5(3)矩阵乘以列向量 定义函数为:

void AXB(double A[][MAX],double B[][1],double C[][1],int m,int n); 应用举例:

double S[MAX][MAX],H[MAX][1],T[MAX][1];

中国矿业大学2012届本科生毕业设计第 32 页

//定义矩阵,注意维数必须与函数定义统一 // 对S与H矩阵赋值 AXB(S,H,T,4,5); 上式计算:S?H?T

4,55,14,1(4)行向量乘列向量 定义函数为:

double AXB(double A[1][MAX],double B[MAX][1],int m); 应用举例:

double S[1][MAX],H[MAX][1],T;

//定义矩阵,注意维数必须与函数定义统一 // 对S与H向量赋值

T=AXB(S,H,4);

上式计算:S?H?T

1,44,1(5)行向量乘矩阵 定义函数为:

Void AXB(double A[1][MAX],double B[MAX][MAX],double C[1]

[MAX],int m,int n);

应用举例:

double S[1][MAX],H[MAX][MAX],T[1][ MAX]; //定义矩阵,注意维数必须与函数定义统一

// 对S与H矩阵赋值 AXB(S,H,T,4,5); 上式计算:S?H?T

1,44,51,52.间接平差中的相关计算

(1)法方程系数阵计算ATPA void ATPA(double A[][MAX],double P[][MAX],double ATPA[][MAX],int m,int n); (2) 的计算

double VPV(double V[][1],double P[][MAX],int m); (3)的计算

void ATPL(double A[][MAX],double ATPL[][1],int m,int n); 4.1.2矩阵转置

下面给出矩阵转置的重载形式,分别完成矩阵与向量的转置:

void AT(double A[][MAX],double AH[][MAX],int m,int n); // 矩阵转置 void AT(double A[][1],double AH[][MAX],int m); // 列向量转置为行向量 void AT(double A[][MAX],double AH[][1],int m);//行向量转置为列向量

P[][MAX],double

L[][1],double

中国矿业大学2012届本科生毕业设计第 33 页

4.1.3矩阵求逆

定义函数为:

int inverse(double C[][MAX],double B[][MAX],int n);

需要注意的是,一个矩阵不一定可以求逆,当一个矩阵不满秩时,其逆阵不存在。所以,在此定义函数返回值为int类型(当然也可以定义为bool类型),用来作为矩阵是否可逆的标志。矩阵可逆返回1,不可逆返回0,这一点在应用时应当特别注意。 4.1.4矩阵输出

1.屏幕输出矩阵

应用中,经常需要及时看到程序的运行过程,所以需要屏幕显示相关矩阵,在此给出显示矩阵及列向量的方法。

void matdis(double A[][MAX],int n,int m); void matdis(double A[][1],int n); 2.文件输出矩阵

在计算过程与结果文件保存中,也经常需要保存矩阵,在此给出向文件流保存矩阵和列向量的函数。其中,out 为输出文件流ofstream 的一个对象。

void matout(double A[][1],int n,ofstream out) // 向文件输出列向量 void matout(double A[][MAX],int n,int m,ofstream out) // 向文件输出矩阵 4.1.5设置实数输出精度

double setf(double a, int t);

// t为需要保留的小数位数,返回值为的四舍五入后的值。

4.2平差中的重要函数

4.2.1角度制与弧度制的相互转化

C/C++程序设计中,关于角度的计算以弧度制为单位,而在测量以及具体工作中我们通常习惯以角度制为单位。这样,在数据处理中,经常需要在角度制与弧度制之间进行相互转化。这里,我们利用C/C++数学函数库math.h中的相关函数完成这两种功能。

这里,我们使用double类型数据表示角度制数和弧度制数。例如:123度44分58.445秒,用double类型表示为123.4458445,其中分、秒根据小数位确定。 在角度制与弧度制的转化中,涉及如下图4.1所示的两个环节。

弧度 度 度.分秒

图4.1 角度制与弧度制的转化

1.角度化弧度函数

double d_h(double angle) //角度化弧度 { double a,b;

中国矿业大学2012届本科生毕业设计第 34 页

angle=modf(angle,&a);//a 为提取的度值(int类型),angle为分秒值(小数) angle=modf(angle*100.0,&b); // b为提取的分值(int类型),angle为秒值(小

数)

return (a+b/60.0+angle/36.0)*(PI+3.0E-16)/180.0;

}

2.弧度化角度函数

double h_d(double angle) //弧度化角度 { double a,b,c;

angle=modf(angle*180.0/(PI-3.0E-16),&a); angle=modf(angle*60.0,&b); angle=modf(angle*60.0,&c);

return a+b*0.01+c*0.0001+angle*0.0001;

}

其中,函数modf(angle,&a)为C语言数学库函数,返回值有两个,以引用类型定义的a返回angle的整数部分,函数直接返回值为angle的小数部分。 4.2.2测量正反算函数

为使数据简洁,定义了相关结构表示测量中的具体概念。在平面网中,定义了控制点以及观测值结构。测量正算在此用于控制点近似坐标的计算。下面是两个结构体,具体的定义见后面的4.4节:

XYP //平面点结构 obser // 观测值结构 1.测量正算函数

int zheng(obser &a) 2.测量反算函数 (1)反算距离

double dist(XYP &a,XYP &b) (2)反算方位角

double afa(XYP &a,XYP &b) 4.2.3近似坐标计算

在平面网间接平差计算中,近似坐标计算是非常重要的一项基础工作。近似坐标是否计算成功是间接平差是否可以进行的必要条件。 1.两方向交会

已知条件:两个点的近似坐标,这两个点到未知点的方位角,如图4.2所示

中国矿业大学2012届本科生毕业设计第 35 页

图4.2 两方向交会

根据图4.2,设k1?tg?1,k2?tg?2,则很容易写出

??k1?? ??k?2??yP?yAxP?xAyP?yBxP?xB 整理该式,得两方向交会的的计算公式

?k1?1??xP??k1xA?yA? ??k?1????y?????kx?y?? (4.1)

B? ?2??P??2B对(4.1)式计算,即可得到未知点的近似坐标。应用中需要注意的是,若两方向值相同或

相反,则该式无解。

程序中,定义该问题的函数为:int xy0ang(obser &a1,obser &a2) 2.三边交会

如图4.3所示,为排除两边长交会的二义性,给出如下三边交会的模型,已知条件:三个点的近似坐标,这三个点到未知点的距离测量值。

图4.3 三边交会 对每条边长测量值,可列出边长条件 ?S12?(xP?xA)2?(yP?yA)2(a)?222 (b)?S2?(xP?xB)?(yP?yB)?222S?(x?x)?(y?y)(c)3PCPC?

计算上式中(a)与(b)和(c)三式的差,消去未知参数的平方项,整理得三边交会的计算公式

中国矿业大学2012届本科生毕业设计第 36 页

22222?S2??xB?yB?S12?xA?yA??yA?yB??xP??2? (4.2) ???????2222?yA?yC??yP??S32?xC?yC?S12?xA?yA??2???xA?xB ??x?xC?A对(4.2)式计算,即可得到未知点的近似坐标。应用中需要注意的是,若三点位于同一条直线,则该式无解。程序中,定义该问题的函数为:int xy0dist(obser &a,obser &b,

obser &c)。 3.坐标正算

使用测量正算公式计算控制网的近似坐标。程序中,定义该问题的函数为:

int zheng(obser &a) 4.角度后方交会

使用测量后方交会计算公式计算控制网的近似坐标。程序中,定义该问题的程序函数为:

int houj(obser &a,obser &b, obser &c) 5.测角网无定向导线计算

无定向导线,主要应用于计算已知控制点不相邻的三角网的近似坐标。基本思想为:先由一个已知点开始,假设一条边的边长与方位角,根据三角网的角度观测值推算其它边的边长与方位角,然后,由任一导线计算,直到计算至另一个已知点为止。假设导线的起点为A,终点为B。这时,计算出的B点坐标必然与已知坐标不同,设A与B的已知坐标

''为(xA,yA,xB,yB),B点的计算坐标为B’(xB),则用这些数据可以计算边长的放大,yB系数k和假设方位角的改正数da

k?''(xB?xA)2?(yB?yA)2

(xB?xA)2?(yB?yA)2 d??afa(A,B)?afa(A,B?)

其中,afa(A,B)为计算方位角的函数。

这时,对网中的假设边长和所有由假设边长推算的近似边长进行k倍的放大,对假设方位角和所有由假设方位角推算的近似方位角进行方位角改正。然后应用坐标正算法可以计算三角网中所有点的近似坐标。

4.3导线网的平差理论

4.3.1平差概述

平面控制网是为获得地面点的二维坐标(X,Y/B,L)而布设的水平控制网。经典的平面控制网包括三角网、边角网和测边网三种类型。本节主要介绍边角网平差的问题。 1.平差基准面

众所周知,平面网的外业观测值涉及到基准的问题。如大地水准面上的角度和方位角,大地水准面上的边长(空间距离)。大地测量控制网坐标一般采用高斯投影平面坐标或地理坐标,这就涉及到平差的基准面问题,当采用高斯坐标系时,其平差基准面为高斯平面;而采用地理坐标时基准面为椭球面。平差计算采用高斯平面或者椭球面进行在理论上是统

中国矿业大学2012届本科生毕业设计第 37 页

一的。

采用高斯平面进行平差计算,公式简单,其缺点是在跨投影带时,由于坐标系统不同,必须进行坐标系的相互转化。采用椭球面平差,方程式形式及解算繁琐,但逻辑相同,优点是误差方程处处相同,规律性强,有利于程序设计,可以用来处理大规模控制网的计算。通常对于中小规模的控制网,采用高斯平面平差;对于如一个国家等大规模网采用椭球面平差。为方便学习,本章采用高斯平面平差。

当然,由于控制网的观测基准面与计算基准面不同,在平差时,存在由观测基准面(大地水准面)向计算基准面(高斯平面或者椭球面)的基准面转化问题。本章假设观测值的基准面已经完成转化工作。 2.已知点的处理

在此,为方便程序设计,也采用对已知点设立未知参数的的极大权方法。 3.起始方位角的处理

在方向平差时,每个测站的误差方程中仅出现本测站的定向角未知数,它的系数为-1,相对于观测方向误差方程的同名坐标未知数的系数相同。 (1)史莱伯法则

史莱伯根据定向角未知数的性质,提出在组成法方程之前消去定向角未知数,合并相对方向的误差方程的两个法则。这两个法则叫做史莱伯法则。这两个法则可以减少组成和解法方程的工作量。 (2)设置未知数

史莱伯法则的缺点在于程序设计比较复杂。在此,我们将测站的定向角未知数作为未知参数同未知坐标同时计算。 4.平差处理过程:

(1)控制网数据输入; (2)近似坐标计算; (3)构成误差方程; (4)法方程的处理; (5)精度评定。 4.3.2边角网的最小二乘平差 1.误差方程式

(1)方向观测值误差方程

设Lki为k点至i点的方向观测值,则k,i方向的误差方程为

vki??dzk?aki?xk?bki?yk?aik?xi?bik?yi?lki (4.3)

0?yk?yi0?aki?2Ski?其中,? (4.4) 00?b?xk?xi2?kiSki? 00 (4.5) lki??ki?Lki?zk000为第k测站的定向角近似值(?ki),也就是一个测站观测零方向(起始zk?Lki?zk方向)的近似方位角,dzk为第k测站的定向角未知数的改正数。

中国矿业大学2012届本科生毕业设计第 38 页

设全网共有t个点,m个测站,则全网共有2t+m个未知参数。

T令 ?X??x0?y0?x1?y1??xt?1?yt?1dz0dz1?dzm?1

??则(4.3)式可以写成

vki?(0,?0,aki,bki,0,?,0,aik,bik,0,?,0,?1,0,?,0)?X?lki (4.6)

(2)边长观测值误差方程

设为k点至i点的边长观测值,则k,i方向的误差方程为

vki?aki?xk?bki?yk?aki?xi?bki?yi?lki (4.7)

0?xk?xi0?aki?Ski?其中,? (4.8) 00?b?yk?yi?kiSki?0 lki?Ski?Lki

显然,(4.7)式也可以写成(4.6)的形式。 (3)方程组

设全网共有n=n1+n2个观测值,写出所有观测值误差方程,则构成误差方程组:

V?? (4.9)

n,1n,(2t?m)(2t?m),1A?Xln,12.已知边长与方位角的处理

已知边长和已知方位角如同已知控制点的坐标一样是固定数据,也就是说它们的值在平差前后不发生改变。对于这种数据的处理一般使用附有条件的间接平差(见《测量平差》),当然,这样做必然会增加程序设计的难度。在此,也可以像对待已知控制点坐标一样处理已知边长与方位角。也就是说,将已知边长和方位角作为具有无限权的观测值来处理,让它们相对于普通观测值有无穷大的权(实验证明,只要一个观测值的权相对于其它的权有1000倍的量级,就可以保证其值在平差前后的改变可以忽略不计)。 (1)已知边长条件

对于已知边长,可以如同对待边长观测值一样列出如(4.7)式的误差方程,需要注意的是必须对相应的权进行修改。在程序中,定义已知边长的权为平均权的1000倍。 (2)已知方位角条件

对于已知方位角,可以直接列出误差方程,对于方位角观测值?ki

vki?aki?xk?bki?yk?aik?xi?bik?yi?lki (4.10)

0?yk?yi0?aki?2Ski?其中? (4.11) 00?b?xk?xi2?kiSki?0 lki??ki??ki

同已知边长相同,作为观测值,已知方位角也应具有无穷大的权。

需要注意的是,已知边长和已知方位角虽然形式上看起来是作为观测值在使用,但是由于它们相对于一般观测值具有“无穷大”的权,所以计算的相关改正数是无穷小。所以,

中国矿业大学2012届本科生毕业设计第 39 页

虽然把已知边长和方位角作为观测值处理,但在计算单位权中误差时,观测值总数却不应包含已知边长与方位角数据的个数,这应该是很容易理解的。说明,具有无穷大权的观测值的本质已不再是观测值。 3.边角网平差的观测权配比

在导线网中,有两类观测值,即边长观测值和角度观测值,所以导线网也是一种边角同测网。导线网中角度观测值的误差方程,其组成与测角网坐标平差的误差方程相同,边长观测的误差方程,其组成与测边网坐标平差的误差方程相同。因此,在导线网中有边、角两类观测值,确定两类观测值的权的配比问题是平差中的重要环节。

2设先验单位权方差为?0,测角中误差为??,测边中误差为?S,则定权公式为

ii?02p??2,??ii

1?02pS?2

?Sii2n22当角度为等精度观测时?????????????。定权时一般令?0,即以测角中???误差为导线网平差中的单位权观测值中误差,由此即得

22????p??2?1,pS?2

???S (4.12)

iii22为了确定边、角观测的权比,必须已知??和?S,一般平差前是无法精确知道的,所i22以采用按经验定权的方法,即??和?S采用厂方给定的测角、测距仪器的标称精度或者是i经验数据。

在边角同测网中,权比是有单位的,如(4.12)式中p??1无量纲(即单位权为1),

i而边长的权,其单位为秒cm。在这种情况下,角度的改正数v?要取秒为单位,而边长

i22改正数vS则要取厘米为单位,此时的p?iv?i与pSiv单位才能一致。这一点在不同类型观测

i22Si联合平差时应予以注意。

4.计算过程

边角网的计算也是用到极大权平差,需要注意的是,在这里,由于平差计算需要处理已知控制点和已知边长、方位角等问题,观测值权阵和法方程系数阵的计算还需一些复杂的处理。

(1)观测值权的处理

由于可以处理角度和长度两种观测值,所以需要确定相对权。另外,如果在观测值中含有已知边长或方位角,必须对其权进行极大化。

(2)法方程计算

在形成法方程后,在法方程系数阵中,对已知点对应的主元位置加无穷大数

4.4间接平差的结构与函数设计

4.4.1间接平差 1.数学模型

设误差方程为

中国矿业大学2012届本科生毕业设计第 40 页

V?Ax?lP (4.13)

n?1n?tt?1n?1n?n 其中:

V 为观测值改正数向量(残差);

A 误差方程系数阵(反映控制网的结构); x 未知参数矩阵;

P 观测值权阵,反映观测值的精度关系; l 自由向量(常数项)。

由最小二乘原理可知,参数的最小二乘解为:

x??ATPA??1ATPl X的协因数阵为:

QXX?Qxx??ATPA??1 单位权中误差为:

m?VTPV0?n?t 间接平差的计算步骤:

由A,l,P计算ATPA与ATPl;

计算?ATPA??1; 计算x;

计算V; 计算m0。

2.间接平差结构 struct adj{

// 平差模型: V=Ax-l P // A[m][n], P[m][m], l[m][1] char name[40];

int m; // 观测值个数 int n; // 未知数个数

double A[MAX][MAX]; // 未知数系数阵

double P[MAX][MAX]; // 观测值权阵 double l[MAX][1]; // 常数项 double X[MAX][1]; // 未知数

double QXX[MAX][MAX]; // 未知数协因数矩阵 double m0; // 单位权误差 double V[MAX][1];

int flag; // flag=1意味着平差成功,0表示失败};

(4.14)

(4.15)

(4.16)

中国矿业大学2012届本科生毕业设计第 41 页

4.4.2结构与函数设计

1.数据结构体的设计 (1)平面点 struct XYP{

char name[20]; // 点名 double X; // x坐标值 double Y; // y坐标值 double X0; // x坐标近似值 double Y0; // double mX; // double mY; // double mp; // double E; //

double F; // double T; // int fixed; // int i; // };

(2)观测值 struct obser{

XYP *startp; // XYP *endp; // double dist; // double dist0; // double angle; // double A; // double A0; // double m0; // int i; // int sti; // int style; // };

(3)测站 struct stat{

XYP *stp;

int obnum; // int disnum; // int aglnum; // y坐标近似值 x坐标中误差 y坐标中误差 点位中误差

误差椭圆长半轴 误差椭圆短半轴

误差椭圆长半轴方向

是否控制点(控制点为1;未知点为0)点号(0-->allpnum-1) 观测值起点指针 观测值终点指针 距离观测值 近似距离 方向观测值 观测值方位角 近似方位角

观测值平差值精度 测站的观测值序号 测站序号

角度测量=1;距离测量=2;

//固定方位角=3;固定边长=4

测站观测值总数 测站距离观测值个数 测站方向观测值个数

本文来源:https://www.bwwdw.com/article/xlbw.html

Top