平差课程设计报告Word文档格式.docx
- 文档编号:20970573
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:30
- 大小:104.97KB
平差课程设计报告Word文档格式.docx
《平差课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《平差课程设计报告Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
2.6
7
(3)求各待定点的高程;
3-4点的高差中误差;
3号点、4号点的高程中误差。
(提示,本网可采用以测段的高差为平差元素,采用间接平差法编写程序计算。
)
二、设计内容及要求
误差理论与测量平差是一门理论与实践并重的课程,其课程设计是测量数据处理理论学习的一个重要的实践环节,它是在我们学习了专业基础课“误差理论与测量平差基础”课程后进行的一门实践课程。
其目的是增强我们对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式,熟悉测量数据处理的基本技能和计算方法,灵活准确地应用于解决各类数据处理的实际问题,正确应用条件平差模型列出观测值条件方程、误差方程、法方程和解算法方程,得出平差后的平差值及各待定点的高程平差值,评定各平差值的精度和各高程平差值的精度,并能用所学的计算机理论知识,编制简单的计算程序。
三、水准网间接平差思路
⑴.根据网型确定已知水准点数,未知水准点数u,总点数n,总的观测高差段数hn,必要观测数t,多余观测数r。
⑵.确定参数。
为平差后能直接求得待定点高程平差值,以3个待定点高程平差值为参数。
设3,4,5点的高程平差值分别为
,
。
⑶.列立条件方程.
左侧为观测值(系数为1),右侧为参数和常数项,并进一步改化成误差方程,最终写成矩阵形式。
得到系数矩阵A和常数项L
⑷.列立法方程,并解求法方程。
由于该水准网间接平差误差方程个数为7个而未知数个数为10个,所列的误差方程是一组相容方程,有无数组解,所以必须在最小二乘原则(VTPV=min)的基础上利用拉格朗日乘数法求解.令F=VTPV-2KT(V-A
+L),分别对V和
求导,并令其导数为零,得到2VTP-2KT=0,ATK=0,将二式合并即得法方程:
ATPV=ATPA
-ATPL=0。
求出Naa=ATPA,W=ATPL,即得到相应的法方程。
求解法方程,得到
=N-1aaW加上Xi即可得到待定点的高程平差值,将
代入误差方程得到相应的V值,hi+Vi得到各段高差的平差值。
⑸.精度评定。
计算单位权中误差的估值:
评定各待定点的高程中误差:
各待定点的精度即为:
评定高程平差值的精度:
四、平差程序设计思路
1、已知数据的输入
需要输入的数据包括水准网中已知点数、未知点数以及这些点的点号、已知高程和高差观测值、距离观测值等。
本程序采用文件方式进行输入,文件输入的格式如下:
第一行:
已知点个数、未知点个数、观测值个数
第二行:
点号(已知点在前,为支点在后)
第三行:
已知高程(顺序与上一行的点号对应)
第四行起:
高差观测值,按照“起点点号,终点点号,高差观测值,距离观测值”的顺序输入。
本程序使用的数据文件如下:
2,3,7
1,2,X1,X2,X3
5.016,6.016
1,X1,1.359,1.1
1,X2,2.009,1.7
2,X1,0.363,2.3
2,X2,1.012,2.7
X1,X2,0.657,2.4
X1,X3,0.238,1.4
X3,2,-0.595,2.6
2、平差计算过程
(1)近似高程计算。
用一个数组来存储高程近似值,已知点的高程放在这个数组的开头,然后按照点号输入的顺序依次搜索涉及该点的高差观测值,看该高程涉及的另一点是否已知,若已知,则可以计算出当前未知点的高程近似值,并放入高程近似值,以此类推,知道所有点的高程近似值都被求出为止。
(2)列立观测值的误差方程。
根据各观测值的起止点信息及高差、距离值给误差方程的系数矩阵、权矩阵和常数项的各个元素赋值。
(3)平差解算。
调用间接平差通用过程进行平差求解。
3、计算结果的输出
计算的中间结果和最后结果都实时地在文本框中显示,最后还可以把文本框中的内容保存在文本文件中。
4、界面设计
根据以上分析,进行界面设计。
用菜单组织程序,用文本框显示数据的输入、计算和输出情况。
由于涉及到打开和保存文件的操作,所以还需要一个通用对话框。
(!
)菜单设计
标题名称快捷键
文件(&
File)mnuFile-
…打开数据mnuOpenCtrl+O
…保存结果mnuSaveCtrl+S
…退出mnuExitCtrl+E
计算(&
Calc)mnuCalc-
…近似高程mnuHeight-
…误差方程mnuEqu-
…平差计算mnuAdj-
(2)窗体、文本框和通用对话框。
在窗体上绘制一个文本框控件和一个通用对话框控件,其属性设置如下表:
对象属性值
Text1Text
Text1MultiLineTrue
Text1ScrollBarBoth
Form1Caption水准网间接平差
CommonDialog1NameCDg1
设计好属性后,调整控件和窗体的大小和位置,使之方便美观。
五、程序流程图
六、程序源代码及说明
程序中涉及的公共变量及其说明如下:
DimstrFileNameAsString
Dimnn%,un%,tn%,hn%'
已知点个数,未知点个数,总点数,观测值个数
DimPname()AsString'
点名数组
DimHknown()AsDouble'
已知高程数组,存放已知点高程和高程近似值
Dimbe%(),en%()'
观测值的起点和终点编号数组,存储的是点序号
Dimh#(),s#()'
高差观测值数组和距离观测值数组
DimA#(),X#(),P#(),L#()'
间接平差的系数阵、解向量、权阵和常数向量
1、数据输入
单击“文件→打开文件”命令,弹出打开对话框,待用户选取了文件以后,程序开始读取已知数据,具体代码如下:
'
打开文件
PrivateSubmnuOpen_Click()
DimiAsInteger'
循环变量
DimstrT1AsString,strT2AsString
CDg1.Filter="
文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"
CDg1.ShowOpen'
打开对话框
strFileName=CDg1.FileName'
获得选中的文件名和路径
OpenstrFileNameForInputAs#1'
Input#1,nn,un,hn'
读入已知点个数,未知点个数,观测值个数
tn=nn+un
ReDimPname(1Totn),Hknown(1Totn)
ReDimh(1Tohn),s(1Tohn),be(1Tohn),en(1Tohn)
Fori=1Totn'
读入点名
Input#1,Pname(i)
Nexti
Fori=1Tonn'
读入已知高程
Input#1,Hknown(i)
Fori=1Tohn'
读入各观测值
Input#1,strT1,strT2,h(i),s(i)
be(i)=Order(strT1):
en(i)=Order(strT2)'
给起终点数组排序
'
显示读入的数据
Text1.Text=Text1.Text&
"
读入的水准网数据:
"
&
vbCrLf
已知点"
nn&
个,未知点"
un&
个,观测值"
hn&
个。
网中涉及的点名有:
Fori=1Totn
Pname(i)&
,"
Text1=Text1&
已知点高程为:
Fori=1Tonn
的高程为:
Hknown(i)&
Text=Text1&
各观测值分别为:
起点"
终点"
高差观测值"
距离观测值"
Fori=1Tohn
Pname(be(i))&
Pname(en(i))&
Format(h(i),"
0.000"
)&
Format(s(i),"
Close#1'
不要忘记关闭文件
EndSub
2点名-序号转换函数
点名-序号转换函数
PublicFunctionOrder(strAsString)AsInteger
Dimi%
Ifstr=Pname(i)Then
Order=i
ExitFor
EndIf
EndFunction
3计算近似高程
计算近似高程
PrivateSubmnuHeight_Click()
Dimi%,j%
Fori=1Toun
Forj=1Tohn
Ifbe(j)=nn+iAnden(j)<
nn+iThen'
找到一个起点相同且终点已知的观测值
Hknown(nn+i)=Hknown(en(j))-h(j)
Ifen(j)=nn+iAndbe(j)<
找到一个终点相同且起点已知的观测值
Hknown(nn+i)=Hknown(be(j))+h(j)
Nextj
显示近似高程计算结果
近似高程计算结果:
Pname(i+nn)&
:
Format(Hknown(i+nn),"
4列立误差方程
PrivateSubmnuEqu_Click()
ReDimA(1Tohn,1Toun),L(1Tohn),P(1Tohn,1Tohn)
对每个观测值列误差方程
Ifen(i)>
nnThenA(i,en(i)-nn)=1'
若终点未知,则给终点对应的系数矩阵元素赋值
Ifbe(i)>
nnThenA(i,be(i)-nn)=-1'
若起点未知,则给起点对应的系数矩阵元素赋值
L(i)=-(Hknown(en(i))-Hknown(be(i))-h(i))'
根据起终点计算常数项
P(i,i)=1/s(i)'
以距离的倒数为权
显示误差方程
Text1=Text1&
列立的误差方程:
Forj=1Toun
A(i,j)&
Format(L(i),"
0.0000"
权矩阵:
P(i,j)&
5平差计算
平差计算
PrivateSubmnuAdj_Click()
ReDimX(1Toun)
InAdjustA,P,L,X'
调用间接平差的通用过程求解
计算并显示高程平差结果
平差计算结果:
点号初始高程(m)高程改正数(m)平差后高程(m)"
Pname(nn+i)&
Format(Hknown(nn+i),"
Hknown(nn+i)=Hknown(nn+i)+X(i)
Format(X(i),"
EndSub
6平差计算中需要的模板
矩阵转置的通用过程
PublicSubMatrixTrans(A,c)
DimR1%,C1%
OnErrorResumeNext
C1=UBound(A,2)-LBound(A,2)+1
IfErrThen
MsgBox"
输入的矩阵维数不对!
ExitSub
R1=UBound(A,1)-LBound(A,1)+1
ReDimc(1ToC1,1ToR1)
Fori=1ToR1
Forj=1ToC1
c(j,i)=A(i,j)
矩阵相加的通用过程
PublicSubMatrixPlus(A,b,c)
DimR1%,C1%,R2%,C2%
第一个矩阵维数不对!
C2=UBound(b,2)-LBound(b,2)+1
第二个矩阵维数不对!
R2=UBound(b,1)-LBound(b,1)+1
IfR1<
>
R2OrC1<
C2Then
输入的两个矩阵维数不等,不能相加!
ReDimc(1Tom,1Ton)AsDouble
Fori=1Tom
Forj=1Ton
c(i,j)=A(i,j)+b(i,j)
矩阵相减的通用过程
PublicSubMatrixMinus(A,b,c)
输入的两个矩阵维数不等,不能相减!
c(i,j)=A(i,j)-b(i,j)
矩阵相乘:
输入矩阵或数Qa、Qb,自动识别它们的维数,并输出它们的乘积Qn
PublicSubMatrix_Multy(Qn,Qa,Qb)
Dimia%,ib%,ic%
Dimai%,bi%,ci%
Dime1AsBoolean,e2AsBoolean,e3AsBoolean,e4AsBoolean,e5AsBoolean,e6AsBoolean,e7AsBoolean
OnErrorResumeNext'
看Qa是不是一维数组
ic=UBound(Qa,2)-LBound(Qa,2)
IfErrThene1=True
ib=UBound(Qb,2)-LBound(Qb,2)
IfErrThene2=True
Ife1=FalseAnde2=FalseThen'
二维矩阵相乘
Forai=LBound(Qa,1)ToUBound(Qa,1)
Forbi=LBound(Qb,2)ToUBound(Qb,2)
Forci=LBound(Qa,2)ToUBound(Qa,2)
Qn(ai,bi)=Qn(ai,bi)+Qa(ai,ci)*Qb(ci,bi)
Nextci
Nextbi
Nextai
ElseIfe1=TrueAnde2=FalseThen
ia=UBound(Qa)-LBound(Qa)
IfErrThene6=True
Ife6Then'
数乘以二维矩阵
Forai=LBound(Qb,1)ToUBound(Qb,1)
Qn(ai,bi)=Qa*Qb(ai,bi)
Else'
一维矩阵乘以二维矩阵
Forci=LBound(Qb,2)ToUBound(Qb,2)
Qn(ci)=Qn(ci)+Qa(ai)*Qb(ai,ci)
ElseIfe1=FalseAnde2=TrueThen
ic=UBound(Qb)-LBound(Qb)
IfErrThene7=True
Ife7Then'
二维矩阵乘以数
Forbi=LBound(Qa,2)ToUBound(Qa,2)
Qn(ai,bi)=Qa(ai,bi)*Qb
二维矩阵乘以一维矩阵
Qn(ai)=Qn(ai)+Qa(ai,bi)*Qb(bi)
Else
DimerrTAsInteger
结果是否是一个数
errT=UBound(Qn)
IfErrThene3=True
Ife3Then'
一维矩阵乘以一维矩阵得一个数
Qn=Qn+Qa(ai)*Qb(bi)
是否是数乘一维矩阵
IfErrThene4=True
Ife4Then
Qn(bi)=Qa*Qb(bi)
是否是一维矩阵乘数
ib=UBound(Qb)-LBound(Qb)
IfErrThene5=True
Ife5Then
Qn(ai)=Qa(ai)*Qb
一维矩阵相乘结果是二维矩阵
Forbi=LBound(Qa,2)ToUBound(Qa,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)