测量平差课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学交通学院测量平差课程设计报告
设计题目:
专业:测绘工程专业
班级:
学号:
姓名:
指导老师:
日期:
目录
1. 课程设计目的2
2. 课程设计任务2
3. 课程设计重点以及基本要求2
4. 课程设计具体要求 2
5. 课程设计案例及分析3
6. 课程设计展示成果10
7. 课程设计源代码 12
8. 课程设计心得体会 17
1、课程设计目的
误差理论与测量平差是一门理论与实践并重的课程,其课程设计是测量数据处理理论学习的一个重要的实践环节,它是在我们学习了专业基础课“误差理论与测量平差基础”课程后进行的一门实践课程。
其目的是增强我们对误差理论与测量平差基础理论的理解,牢固掌握测量平差的基本原理和基本公式,熟悉测量数据处理的基本技能和计算方法,灵活准确地应用于解决各类数据处理的实际问题,并能用所学的计算机理论知识,编制简单的计算程序。
2、课程设计的任务
(1)该课的课程设计安排在理论学习结束之后进行的,主要是平面控制网和高程控制网严密平差。
(2)通过课程设计,培养学生运用本课程基本理论知识和技能,分析和解决本课程范围内的实际工程问题的能力,加深对课程理论的理解与应用。
(3)在指导老师的指导下,要求每个学生独立完成本课程设计的全部内容。
3、课程设计重点以及基本要求
课程设计要求每一个学生必须遵守课程设计的具体项目的要求,独立完成设计内容,并上交设计报告。
在学习知识、培养能力的过程中,树立严谨、求实、勤奋、进取的良好学风。
课程设计前学生应认真复习教材有关内容和《测量平差》课程设计指导书,务必弄清基本概念和本次课程设计的目的、要求及应注意的事项,以保证保质保量的按时完成设计任务。
本次课程设计重点是培养我们正确应用公式、综合分析和解决问题的能力,以及计算机编程能力。
另外它要求我们完成1-2个综合性的结合生产实践的题目,如目前生产实践中经常用到的水准网严密平差及精度评定,边角网(导线)严密平差及精度评定等。
4、课程设计具体设计项目内容
总体思路:现有等级水准网的全部观测数据及网型、起算数据。
要求对该水准网,分别用条件、间接两种方法进行严密平差,并进行平差模型的正确性检验。
水准网的条件平差:
①列条件平差值方程、改正数条件方程、法方程;
②利用自编计算程序解算基础方程,求出观测值的平差值、待定点的高程平差值;
③评定观测值平差值的精度和高程平差值的精度。
④进行平差模型正确性的假设检验。
水准网的间接平差:
①列观测值平差值方程、误差方程、法方程;
②利用自编计算程序解算基础方程,求出观测值的平差值、待定点的高程平差值;
③评定观测值平差值的精度和高程平差值的精度。
④进行平差模型正确性的假设检验。
平面控制网(导线网)严密平差及精度评定
总体思路:现有等级导线网的全部观测数据及网型、起算数据。
要求对该导线网,用间接进行严密平差,并进行平差模型的正确性检验。
报告的编写
对手工解算控制网进行程序验证,编写课程设计报告。
报告应包括起算数据、控制网图形、平差结果、精度指标,点位误差椭圆图等。
成果应以表格形式给出,封面统一格式见附录。
5. 课程设计案例及分析
如图所示水准网,A、B两点为高程已知,各观测高差及路线长度如表1。
要求:按条件以及间接平差法分别求: (1) 待定点高程平差值; (2) 待定点高程中误差;
(3) p 2和p 3点之间平差后高差值的中误差;
(4) 平差模型正确性检验(四等水准测量每公里高差观测中误差为±5毫米)。
5.1 水准网条件平差
求平差值、 列条件方程:
由题意可知:n=7,t=4,r=n-t=3.观测方程为
1251312
3465
6
7
ˆˆˆ0ˆˆ0ˆˆˆ0
ˆˆˆ0h h h h h H H h h h h
h h -+=-+-=-++=+-=线性化得条件方程:1251334656770
403070v v v v v v v v v v v -++=--=-++-=+-+=
其中系数阵A=110
010
0101
000000110100000111-⎡⎤⎢⎥-⎢
⎥⎢⎥
-⎢
⎥
-⎣⎦,W=7437⎡⎤
⎢⎥-⎢⎥⎢⎥-⎢⎥⎣⎦
组建法方程:
令1km 的观测高差为单位权观测,即1i i p s =
,又1
ii i i
Q S p =
=。
即 771
1
2
2
1
1
2Q ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥
=⎢⎥⎢
⎥⎢⎥⎢⎥⎢⎥⎣
⎦
,且法方程为0aa N K W +=,其中: 7ˆh
11110010
0110010
0210
100001010000200110100011010100
0011
100
0011112T
T aa N AQA ⎡⎤⎢⎥
⎢
⎥--⎡⎤⎡⎤
⎢⎥⎢⎥⎢⎥--⎢⎥⎢
⎥⎢⎥==⨯⎢⎥⎢⎥
⎢⎥
--⎢
⎥⎢⎥⎢⎥
--⎢⎥⎣⎦⎣⎦
⎢
⎥⎢⎥⎣⎦
31011320025110
1
4⎡⎤⎢⎥⎢
⎥=⎢⎥⎢
⎥⎣⎦,由此可得法方程:12343
101713
2040025131
1
47k k k k ⎡⎤⎡⎤⎡⎤
⎢⎥⎢⎥⎢⎥-⎢⎥⎢
⎥⎢⎥+=⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦
⎣⎦
解算法方程
K =1
aa N W --由矩阵运算程序可得
12342.777, 2.346,0.138, 1.023k k k k =-==-=-
3.1.1.1.4 计算改正数。
由矩阵运算程序可得:T
V QA K =
[]0.43 2.78 4.420.28 3.8 1.16 2.05T
V =-----
计算平差值
ˆi
h h v =+,得:[]ˆ 1.359 2.0120.3590.6400.6530.999 1.652T h =- 又123
111224ˆˆˆˆˆˆ,,P P P H H h H H h H H h =+=+=+ 可得: 123ˆˆˆ36.359,37.012,35.360P P P H H H ===
精度评定
111
212324
47
ˆˆˆˆH h H h H h h ϕϕϕϕ=+=+=+=,其中1
000000010000000010000000001T
f ⎡⎤
⎢⎥⎢⎥=⎢⎥
⎢
⎥
⎣⎦
,又1()aa
T T Q f Qf AQf N AQf ϕϕ-=-
由矩阵运算程序可得0.4270.2250.268
0.0440.225
0.5390.2480.2920.2680.2480.6960.4480.044
0.2920.4480.740Q ϕϕ-⎡⎤
⎢⎥⎢
⎥=⎢⎥
-⎢
⎥
--⎣⎦
又20
35.567ˆˆ8.89=3.04
T V PV r σ
σ===0即 得:
1
2
3
4
ˆˆ= 1.9ˆˆ= 2.2ˆ= 2.5ˆˆ= 2.6ϕϕϕϕσ
σσ
σσσ
σ
σ====
平差模型的正确性检验 原假设和备选假设为
200ˆ()25H E σ
=: 210ˆ()25H E σ≠: 又2
35.567ˆˆ8.89=3.04
T V PV r σ
σ===0即 计算统计量2
68.23
==2.725
χ(4)
以自由度f =4,α=0.05查得2
χ的分布表:22112
2
0.484=11.1ααχχ--=,
可见,2
χ(4)
在22112
2
ααχχ--(,)内,该平差模型正确,平差结果可用。
5.2 水准网间接平差
平差值 列误差方程
选取1P 、2P 、3P 三点的高程1ˆX 、2ˆX 、3
ˆX 为参数,由题意知可列出七个平差值方程
1111
22213
3
1
2
44325521
6
6
1
3
7723
ˆˆˆˆˆˆˆˆˆˆh v X H h v X H h v X
H h v X H h v X X h v X
X h v X X +=-+=-+=-+=-+=-+=-+=- 且0
111
0212
0324X H h X H h X H h =+=+=+
代入可得误差方程11223143512613723ˆˆˆ4ˆˆˆ7ˆˆ1ˆˆ1v x v x
v x
v x v x
x v x x v x x ===-==-+-=--=-- 可得系数阵100001001004,0
01011071
01101
11B L ⎡⎤⎡⎤
⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢
⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥-⎢
⎥⎢⎥-⎢⎥⎢⎥
⎢⎥⎢⎥-⎣⎦⎣⎦
组成法方程
取2km 的观测高差为单位权观测,即2
i i i
c P S S =
= 有权阵2211221P ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥
⎢⎥⎢⎥
⎢⎥
⎢⎥⎣⎦,其中,T T BB N B PB W B PL == 由矩阵运算程序可得:722251214BB
N --⎡⎤⎢⎥=--⎢⎥⎢⎥--⎣⎦,8153W -⎡⎤
⎢⎥=⎢⎥⎢⎥-⎣⎦
由ˆ0BB N x W -=可得法方程123ˆ72
28ˆ2
51150ˆ2
143x x x ---⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥---=⎢
⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥---⎣⎦⎣⎦⎣⎦
解算法方程
1
ˆBB x N W -=并由矩阵运算程序可得:
0.43ˆ 2.780.27x -⎡⎤⎢⎥=⎢⎥
⎢⎥-⎣⎦
计算改正数
0.432.784.43ˆ0.273.791.162.05v Bx
l -⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥
=-=-⎢⎥⎢⎥-⎢⎥-⎢⎥⎢⎥⎣⎦
计算平差值
ˆi
h h v =+,得:[]ˆ 1.359 2.0120.3590.6400.6530.999 1.652T h =- 又123111224ˆˆˆˆˆˆ,,P P P H H h H H h H H h =+=+=+ 可得: 123ˆˆˆ36.359,37.012,35.360P P P H H H ===
精度评定
1111122
22133
342423
231224ˆˆˆˆˆˆˆˆˆˆˆˆˆˆX x h H X x h H X x h H X X x x H H h h ϕϕϕϕ==++==++==++=-=-+-+-
1
0001
00010
11⎡⎤⎢⎥⎢
⎥=⎢⎥
⎢⎥-⎣⎦
T
其中F , 又T
BB Q F N F ϕϕ=
1000.2130.1120.135********.1120.2700.12401010010.1350.1240.34800110110.2130.1120.1350.0230.1120.2700.1240.1460.1350.1240.3480.2240.0230.1460.2240.370T BB Q F N F ϕϕ⎡⎤
⎡⎤⎡⎤
⎢⎥⎢⎥⎢⎥⎢⎥==⎢
⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎣⎦⎣⎦
-⎣⎦
-⎡=---⎤
⎢⎥
⎢
⎥⎢⎥⎢⎥⎣⎦
且0ˆσ
故有:
1
2
3
4
00ˆˆ= 1.9ˆˆ= 2.2ˆ= 2.5ˆˆ= 2.6ϕϕϕϕσ
σσ
σσσ
σ
σ====
平差模型的正确性检验
原假设和备选假设为
200ˆ()25H E σ
=: 210ˆ()25H E σ≠: 又2
35.567ˆˆ8.89=3.04
T V PV r σ
σ===0即 计算统计量2
68.23
==2.725
χ(4)
以自由度f =4,α=0.05查得2
χ的分布表:22112
2
0.484=11.1ααχχ--=,
可见,2
χ(4)
在22112
2
ααχχ--(,)内,该平差模型正确,平差结果可用。
6. 课程设计展示成果
检验过程部分截图如下
7. 课程设计源代码
using System;
using System.Collections.Generic; using ponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
{
public partial class Form1 : Form {
public Form1()
{
InitializeComponent();
}
private void label12_Click(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{Application.Exit();
}
private void button2_Click(object sender, EventArgs e)
{
foreach (Control ctrl in Controls)//或为
groupBox1.Controls/panel1.Controls
{
if (ctrl is TextBox)
ctrl.Text = "";
}
}
private void textBox1_TextChanged(object sender, EventArgs e) {
}
private void textBox2_TextChanged(object sender, EventArgs e) {
}
private void textBox3_TextChanged(object sender, EventArgs e) {
}
private void textBox4_TextChanged(object sender, EventArgs e) {
}
private void textBox5_TextChanged(object sender, EventArgs e) {
}
private void textBox6_TextChanged(object sender, EventArgs e) {
}
private void textBox7_TextChanged(object sender, EventArgs e) {
}
private void label10_Click(object sender, EventArgs e)
{
}
private void textBox8_TextChanged(object sender, EventArgs e)
{
}
private void textBox9_TextChanged(object sender, EventArgs e)
{
}
private void textBox10_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
double ax = double.Parse(textBox1.Text);
double ay = double.Parse(textBox2.Text);
double bx = double.Parse(textBox3.Text);
double by = double.Parse(textBox4.Text);
double a1 = double.Parse(textBox5.Text);
double a2 = double.Parse(textBox6.Text);
double a3 = double.Parse(textBox7.Text);
double b1 = double.Parse(textBox8.Text);
double b2 = double.Parse(textBox9.Text);
double b3 = double.Parse(textBox10.Text);
double m, n, px, py;
m = (a1 + a2 / 60 +a3 / 3600) * (Math.PI / 180);
n = (a1 + a2 / 60 + a3 / 3600) * (Math.PI / 180);
px = (ax * 1 / (Math.Tan(n)) + bx * 1 / (Math.Tan(m)) - (ay - by)) / (1 / (Math.Tan(n)) + 1 / (Math.Tan(m)));
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
{
public partial class Form1 : Form
{
public Form1()
InitializeComponent();
}
private void label12_Click(object sender, EventArgs e)
{
}
private void button3_Click(object sender, EventArgs e)
{Application.Exit();
}
private void button2_Click(object sender, EventArgs e)
{
foreach (Control ctrl in Controls)//或为
groupBox1.Controls/panel1.Controls
{
if (ctrl is TextBox)
ctrl.Text = "";
}
}
private void textBox1_TextChanged(object sender, EventArgs e) {
}
private void textBox2_TextChanged(object sender, EventArgs e) {
}
private void textBox3_TextChanged(object sender, EventArgs e) {
}
private void textBox4_TextChanged(object sender, EventArgs e) {
}
private void textBox5_TextChanged(object sender, EventArgs e) {
}
private void textBox6_TextChanged(object sender, EventArgs e) {
}
private void textBox7_TextChanged(object sender, EventArgs e) {
private void label10_Click(object sender, EventArgs e)
{
}
private void textBox8_TextChanged(object sender, EventArgs e)
{
}
private void textBox9_TextChanged(object sender, EventArgs e)
{
}
private void textBox10_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
double ax = double.Parse(textBox1.Text);
double ay = double.Parse(textBox2.Text);
double bx = double.Parse(textBox3.Text);
double by = double.Parse(textBox4.Text);
double a1 = double.Parse(textBox5.Text);
double a2 = double.Parse(textBox6.Text);
double a3 = double.Parse(textBox7.Text);
double b1 = double.Parse(textBox8.Text);
double b2 = double.Parse(textBox9.Text);
double b3 = double.Parse(textBox10.Text);
double m, n, px, py;
m = (a1 + a2 / 60 +a3 / 3600) * (Math.PI / 180);
n = (a1 + a2 / 60 + a3 / 3600) * (Math.PI / 180);
px = (ax * 1 / (Math.Tan(n)) + bx * 1 / (Math.Tan(m)) - (ay - by)) / (1 / (Math.Tan(n)) + 1 / (Math.Tan(m)));
py = (ay * 1 / (Math.Tan(n)) + by * 1 / (Math.Tan(m)) + (ax - bx)) / (1 / (Math.Tan(n)) + 1 / (Math.Tan(m)));
label15.Text = "" + px;
label16.Text = "" + py;
}
private void label2_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label17_Click(object sender, EventArgs e)
{
}
private void label15_Click(object sender, EventArgs e)
{
}
private void label16_Click(object sender, EventArgs e)
{
}
}
}
py = (ay * 1 / (Math.Tan(n)) + by * 1 / (Math.Tan(m)) + (ax - bx)) / (1 / (Math.Tan(n)) + 1 / (Math.Tan(m)));
label15.Text = "" + px;
label16.Text = "" + py;
}
private void label2_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label17_Click(object sender, EventArgs e)
{
}
private void label15_Click(object sender, EventArgs e)
{
}
private void label16_Click(object sender, EventArgs e)
{
}
}
}
8. 课程设计心得体会
这是一次非常有意义的课程设计。
通过这次误差理论与测量平差的课程设计,我对测量平差有了一个更深刻的理解。
在课程设计中将我们所学的理论知识运用于实践,逐步在实践中认识体会测量平差的基本原理和基本公式,并熟悉测量数据处理的基本技能和计算方法。
俗话说得好,学以致用,我们平时学的理论知识就是为了在以后的生产实习中更好的应用,这次实习真正做到了理论与实际相结合。
我感到很有意义。
这次实习完全从测量平差的工程实际出发,加深我对书本知识的进一步理解。
这次实习培养了我理论联系实际的能力、独立学习的能力、分析问题和解决问题的能力。
或许我们已对《误差理论与测量平差》这本书的理论知识有了一定了解,但将它应用于实践依然是我们的一个难点,尤其是将这门课程与计算机程序完美地结合。
这便要求我们在原有的解题思路中加入C语言程序,并让它来帮助我们解决矩阵的复杂运算。
既然用到了程序,我们就必须保证其运算的简洁性、正确性,尤其是在编写过程中要认真检查,为程序顺利运行打下基础。
另外在各个子程序调用过程中,我们要充分考虑其顺序性并反复调试,以便得到理想结果。
这次实习使我深刻的认识到学习测量平差的重要性。
作为一个大三的大学生即将要走上社会的,所以每一次的实习我们都要认真的完成,因为在以后工作中,没有人来帮助你,都是你自己来完成的,所以在学校我们要多学,多问,多掌握专业知识。
作为一名测绘人,我们更要学会不怕吃苦,不怕累的精神。
总之,在这次课程设计中我不但过了比较充实,还收获了不少知识,以后也要珍惜我们的每一次实习。