1、东南大学交通学院 测量平差课程设计报告 设计题目: 专 业: 测绘工程专业 班 级: 学 号: 姓 名: 指导老师: 日 期: 目录 1、 课程设计目得 2 2
2、 课程设计任务 2 3、 课程设计重点以及基本要求 2 4、 课程设计具体要求 2 5、 课程设计案例及分析 3 6、 课程设计展示成果 10 7、 课程设计源代码 12 8、 课程设计心得体会 17 1、课程设计目得 误差理论与测量平差就是一门理论与实践并重得课程,其课程设计就是测量数据处理理论学习得一个重要得实践环节,它就是在我们学习了专业基础课“误差理论与测量平差基础”课程后进行得一门
3、实践课程。其目得就是增强我们对误差理论与测量平差基础理论得理解,牢固掌握测量平差得基本原理与基本公式,熟悉测量数据处理得基本技能与计算方法,灵活准确地应用于解决各类数据处理得实际问题,并能用所学得计算机理论知识,编制简单得计算程序。 2、课程设计得任务 (1)该课得课程设计安排在理论学习结束之后进行得,主要就是平面控制网与高程控制网严密平差。 (2)通过课程设计,培养学生运用本课程基本理论知识与技能,分析与解决本课程范围内得实际工程问题得能力,加深对课程理论得理解与应用。 (3)在指导老师得指导下,要求每个学生独立完成本课程设计得全部内容。 3、课程设计重点以及基本要求 课程设计要
4、求每一个学生必须遵守课程设计得具体项目得要求,独立完成设计内容,并上交设计报告。在学习知识、培养能力得过程中,树立严谨、求实、勤奋、进取得良好学风。课程设计前学生应认真复习教材有关内容与《测量平差》课程设计指导书,务必弄清基本概念与本次课程设计得目得、要求及应注意得事项,以保证保质保量得按时完成设计任务。 本次课程设计重点就是培养我们正确应用公式、综合分析与解决问题得能力,以及计算机编程能力。另外它要求我们完成1-2个综合性得结合生产实践得题目,如目前生产实践中经常用到得水准网严密平差及精度评定,边角网(导线)严密平差及精度评定等。 4、课程设计具体设计项目内容 总体思路:现有等级水准网
5、得全部观测数据及网型、起算数据。要求对该水准网,分别用条件、间接两种方法进行严密平差,并进行平差模型得正确性检验。 水准网得条件平差: ①列条件平差值方程、改正数条件方程、法方程; ②利用自编计算程序解算基础方程,求出观测值得平差值、待定点得高程平差值; ③评定观测值平差值得精度与高程平差值得精度。 ④进行平差模型正确性得假设检验。 水准网得间接平差: ①列观测值平差值方程、误差方程、法方程; ②利用自编计算程序解算基础方程,求出观测值得平差值、待定点得高程平差值; ③评定观测值平差值得精度与高程平差值得精度。 ④进行平差模型正确性得假设检验。 平面控制网(导线网)严密平
6、差及精度评定 总体思路:现有等级导线网得全部观测数据及网型、起算数据。要求对该导线网,用间接进行严密平差,并进行平差模型得正确性检验。 报告得编写 对手工解算控制网进行程序验证,编写课程设计报告。报告应包括起算数据、控制网图形、平差结果、精度指标,点位误差椭圆图等。成果应以表格形式给出,封面统一格式见附录。 5、 课程设计案例及分析 如图所示水准网,A、B两点为高程已知,各观测高差及路线长度如表1。 已知数据 表1 高差观测值(m) 对应线路长度(km) 已知点高程(m) h1 = 1、359 h2 = 2、009 h3 = 0、363 h4 =-0、640 h
7、5 = 0、657 h6 = 1、000 h7 = 1、650 1 1 2 2 1 1 2 H1= 35、000 H2= 36、000 要求:按条件以及间接平差法分别求: (1) 待定点高程平差值; (2) 待定点高程中误差; (3) p2与p3点之间平差后高差值得中误差; (4) 平差模型正确性检验(四等水准测量每公里高差观测中误差为±5毫米)。 5、1 水准网条件平差 求平差值、 列条件方程: 由题意可知:n=7,t=4,r=n-t=3、观测方程为 线性化得条件方程: 其中系数阵A=,W= 组建法方程: 令1km得观测高差为单位权观测,即,
8、又。即 ,且法方程为,其中: ,由此可得法方程: 解算法方程 由矩阵运算程序可得 3、1、1、1、4 计算改正数。由矩阵运算程序可得: 计算平差值 ,得: 又 可得: 精度评定 ,其中,又 由矩阵运算程序可得 又 得: 平差模型得正确性检验 原假设与备选假设为 又 计算统计量 以自由度=4,=0、05查得得分布表: 可见,在内,该平差模型正确,平差结果可用。 5、2 水准网间接平差 平差值 列误差方程 选取、、三点得高程、、为参数,由题意知可列出七个平差值方程 且 代入可得误差方程 可得系数
9、阵 组成法方程 取2km得观测高差为单位权观测,即 有权阵,其中 由矩阵运算程序可得:, 由可得法方程 解算法方程 并由矩阵运算程序可得: 计算改正数 计算平差值 ,得: 又 可得: 精度评定 , 又 且 故有: 平差模型得正确性检验 原假设与备选假设为 又 计算统计量 以自由度=4,=0、05查得得分布表: 可见,在内,该平差模型正确,平差结果可用。 6、 课程设计展示成果 检验过程部分截图如下 7、 课程设计源代码 using System; using System、Col
10、lections、Generic; using System、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() { Initializeponen
11、t(); } 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) { forea
12、ch (Control ctrl in Controls)//或为groupBox1、Controls/panel1、Controls { if (ctrl is TextBox) ctrl、Text = ""; } } private void textBox1_TextChanged(object sender, EventArgs e) { } private void t
13、extBox2_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(o
14、bject 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)
15、 { } private void textBox8_TextChanged(object sender, EventArgs e) { } private void textBox9_TextChanged(object sender, EventArgs e) { } private void textBox10_TextChanged(object sender, EventArgs e) { }
16、 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);
17、 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(
18、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)));
19、using System; using System、Collections、Generic; using System、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()
20、 { Initializeponent(); } 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
21、) { foreach (Control ctrl in Controls)//或为groupBox1、Controls/panel1、Controls { if (ctrl is TextBox) ctrl、Text = ""; } } private void textBox1_TextChanged(object sender, EventArgs e) {
22、 } private void textBox2_TextChanged(object sender, EventArgs e) { } private void textBox3_TextChanged(object sender, EventArgs e) { } private void textBox4_TextChanged(object sender, EventArgs e) { } priv
23、ate 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_Clic
24、k(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, Eve
25、ntArgs 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
26、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);
27、 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、
28、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)
29、 { } 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
30、 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))); lab
31、el15、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
32、) { } 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、 课程设计
33、心得体会 这就是一次非常有意义得课程设计。通过这次误差理论与测量平差得课程设计,我对测量平差有了一个更深刻得理解。在课程设计中将我们所学得理论知识运用于实践,逐步在实践中认识体会测量平差得基本原理与基本公式,并熟悉测量数据处理得基本技能与计算方法。 俗话说得好,学以致用,我们平时学得理论知识就就是为了在以后得生产实习中更好得应用,这次实习真正做到了理论与实际相结合。我感到很有意义。这次实习完全从测量平差得工程实际出发,加深我对书本知识得进一步理解。这次实习培养了我理论联系实际得能力、独立学习得能力、分析问题与解决问题得能力。 或许我们已对《误差理论与测量平差》这本书得理论知识有了一定了解
34、但将它应用于实践依然就是我们得一个难点,尤其就是将这门课程与计算机程序完美地结合。这便要求我们在原有得解题思路中加入C语言程序,并让它来帮助我们解决矩阵得复杂运算。既然用到了程序,我们就必须保证其运算得简洁性、正确性,尤其就是在编写过程中要认真检查,为程序顺利运行打下基础。另外在各个子程序调用过程中,我们要充分考虑其顺序性并反复调试,以便得到理想结果。 这次实习使我深刻得认识到学习测量平差得重要性。作为一个大三得大学生即将要走上社会得,所以每一次得实习我们都要认真得完成,因为在以后工作中,没有人来帮助您,都就是您自己来完成得,所以在学校我们要多学,多问,多掌握专业知识。作为一名测绘人,我们更要学会不怕吃苦,不怕累得精神。 总之,在这次课程设计中我不但过了比较充实,还收获了不少知识,以后也要珍惜我们得每一次实习。






