测量平差课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、需求分析:
总体描述:
控制网平差程序对野外控制网观测数据进行平差数据处理,其目的就是根据最小二乘原理,消除网中的各种几何矛盾,求出全网各待定元素(未知点的平面坐标或三维坐标)
功能需求:
1.优化设计:根据控制网的观测精度与网形,全面评定网的精度
2.数据输入:外部数据倒入
3.概算:自动完成近似坐标的推算。
4.平差计算:对观测数据进行精密平差计算,得到平差后的点位坐标,方向观测值,边长观测值等,精度评定。
5.成果输出:控制网图形输出,平差结果报表及其输出,绘制误差椭圆。
二、系统设计
系统设计是课程设计的提纲与指导,它主要分为四大模块:1.数据输入模块;2.数据预处理模块;3.平差计算模块;4.成果输出模块。后面两个星期的实习基本上按照系统设计执行
模块一:数据输入模块
数据文件设计:
ControlNetName, name1
Surveyor, Name2
Recorder, Name3
Date, ##-##-##
FixPointNum, Number1
UnknownPointNum, Number2
AngleObsNum, Number3
DistanceObsNum, Number4
AllObsNum, Number5
AngleRmsError, m1
DistRmsError, m2
WeightedError, m
END Header
主体数据
观测数据:
测站点号,照准点号,方向观测值
测站点号,照准点号,距离观测值
模块二:数据预处理模块
坐标概算:
j为测站,i为照准点,k为与测站j相邻的已知点
则有:Tji=Tij+A
Xi=Xj+Sji*cos(Tji)
Yi=Yi+ Sji*sin(Tji)
Tij=arctan((Yj-Yi)/(Xj-Xi))
每遇到未知的照准点皆重复以上四部。
模块三:平差计算模块
1. 列出误差方程及条件式
间接平差模型:
误差方程: 角度观测值的误差方程:
其中:
边长观测值的误差方程:
由近似坐标计算而得 为实测边长
2. 定权
已知测角精度为 δ1,边长的观测精度为δ2, 令方向观测值的权 P=1, 则边长观测值的权 P=δ*δ/S
(计算权阵时要注意与B 及L 系数阵的单位要统一)
3. 组成法方程
4. 解算法方程,
求得dX=[dx1 dy1 dx2 dy2 …] 5. 平差后的坐标值计算X=X+dX 。 6.精度评定,计算误差椭圆参数等
ij S ij S L BX V +=ij j ij j ij i ij i ij ij l Y T X T Y T X T V +++--=δδδδ0
sin cos sin cos ij
ij ij S S l -=000
''0
''cos ,sin ij
ij
ij ij
ij
ij D
T b D
T a ρρ-
==ij
ij i ij L T Z l -+-=0
0)
(
0000
i
j
i j ij X X
Y Y arctg T --=ij j ij j ij i ij i ij i ij l Y b X a Y b X a Z V +--++-=δδδδδ0
=+PL B PBX B T
T PL
B PB B X T
T
1
)(--=
中误差:
未知数的协因数阵
待定点点位误差
误差椭圆元素计算:
长半径方位角:
长半径 : 短半径:
平差程序编写时的关键是系数阵B,L 及权阵P 的编写 B 及L 的设计流程:
B 是26行11列(18行方向观测人+8行距离观测) 11列的未知数为:
X3,Y3,X4,Y4,X5,Y5,Z1,Z2,Z3,Z4,Z5(Zi 为定向角误差) L 为26行1列 P 为26行26列
模块四:成果输出模块
控制网图形,误差椭圆,概算结果,评查报告(包括精度统计(平
面点位误差表),方向观测及距离观测成果表,控制点成果表等。)
三、进度安排及实施:
7月18日—7月19日:理清程序设计大概思路,完成系统设计及进度安排 7月20日:复习原来的程序代码(文件的读写,角度类,矩阵类等)
X
PL B PL L PV V T
T T T )(+=t
n PV V m T
-±
=01
)(-=PB B Q T x yy
y xx x Q m m Q m m 00,±=±=2
2
y
x k m m m m +±=yy
xx xy Q Q Q arctg
Q -=221)
90(,0
00++=+=Q tg Q Q m E tgQ Q Q m E xy xx xy xx
7月21日:完成模块一
7月22日:完成模块二
7月23日—7月24日:完成模块三
7月25日:完成模块四
7月26日—7月27日:程序调试及完善
7月28日:课程设计报告的编写
实习过程中基本按照进度安排来完成,其中程序调试及完善花费的时间比较长,差不多用了三天时间,知道7月28日上午才完成
四、程序代码
文件一:平差的主程序:TraverseNet.cpp
#include"StdAfx.h"
#include"TraverseNet.h"
#include"math.h"
#include
TraverseNet::TraverseNet(void)
{
m_FixPoint=NULL;
m_FixpNum=0;
m_UnknownPoint=NULL;
m_UnknownpNum=0;
m_AObsData=NULL;
m_AObsDataNum=0;
m_DObsData=NULL;
m_DObsDataNum=0;
m_AllpNum=0;
}
TraverseNet::~TraverseNet(void)
{
//释放动态数组内存
if(m_FixPoint!=NULL)
{
delete[] m_FixPoint;
m_FixPoint=NULL;
}