总体要求
利用C++语言和Qt界面库编写导线网间接平差程序。导线网如下图所示,其中A、B为已知点,CD为基线边,又已知BE的方位角,已知角度测量中误差,距离误差加常数5mm,距离误差乘常数5mm/Km。起算数据见表1,观测了全部角度值,列于表2 。求各待定点坐标的平差值。
点号 | 坐标 | 边长/m | 方位角 | 至何点 | |
---|---|---|---|---|---|
X | Y | S | |||
B | 2802234.190 | 19437826.220 | E | ||
C | 6523.643 | D | |||
A | 2794005.704 | 19433831.115 |
角号 | 观测值 | 角号 | 观测值 | 角号 | 观测值 |
---|---|---|---|---|---|
1 | 54 49 29.57 | 7 | 77 14 59.04 | 13 | 56 31 36.21 |
2 | 43 28 18.22 | 8 | 46 18 21.93 | 14 | 67 51 49.11 |
3 | 81 42 11.62 | 9 | 56 26 38.83 | 15 | 55 36 35.70 |
4 | 48 19 00.60 | 10 | 52 27 11.49 | 16 | 64 22 06.49 |
5 | 85 31 37.21 | 11 | 60 48 47.61 | 17 | 62 16 36.29 |
6 | 46 09 20.35 | 12 | 66 43 59.30 | 18 | 53 21 14.20 |
准备工作
- 方法选择:
- 考虑到程序的自动化和通用性,因此采用间接平差法,由于有多余的已知条件,所以最终选择附有限制条件的间接平差法。
- 平差方法具体推导见:附有限制条件间接平差
- 预备知识:
- 由题意可知,总观测值为18,必要观测值为8(原本是10个必要观测者,但是由于DC是已知边,BE是已知方位角,所以最后只有8个必要观测值),因此设定10个参数(18个观测角方程,两个条件方程),即C,D,E,F,G点的坐标值为参数值。
- 根据前方交会知识,可由已知的两坐标A,B求出待定点E的估计坐标值,之后再由B,E坐标求出C点的估计值,以此类推求出D和F的坐标估计值(以最短边原则计算各个参数的估计值,即E点由A,B求出,C点由B,E求出,D由C,E求出,F由G,E求出,G点由A,E求出)。
- 由参数值的估计值求出两点间的方位角,由两方位角求出夹角并列出误差方程系数阵,由于方程不是线性形式,因此需要用泰勒级数展开至一次项线性化。
- 由已知方位角和已知边列出两个条件方程,即和列出条件方程,当然方程不会是线性形式,因此需要用泰勒级数展开取至一次项线性化。
- 由观测值和估值相减求出参数的常数项,由求出的近似值作为条件方程的常数项。
- 由求出参数的改正数,其中()
- 由求出参数平差值
- 由求出观测值改正数
- 由求出观测值平差值
- 因为各个观测值独立,所以由(其中r为多余观测数,u-s=t为必要的独立参数的个数)求出单位权方差,求出协因数阵的出参数的协因数,其主对角线为各个参数的权倒数,因此可求出各个参数的中误差,再由求出各个点位中误差。
- 编写数据格式:
- 第一行:总点数,已知点数,已知边数,已知方位角数,观测角数
- 第二行:所有点名称
- 第三部分:已知点信息(点号,坐标)
- 第四部分:已知边信息
- 第五部分:已知方位角信息
- 第六部分:观测值信息(观测值编号,起始点,中间点,终点)
- 公式
- 前方交会公式(推导见:前方交会):
- 前方交会公式(推导见:前方交会):
- 编写库函数:
思维导图
- 完整代码见:三角网界面程序