1、东南大学交通学院测量平差课程设计报告设计题目: 专业: 测绘工程专业 班级: 学号: 姓名: 指引教师: 日期: 目录1. 课程设计目22. 课程设计任务 23. 课程设计重点以及基本规定24. 课程设计详细规定 25. 课程设计案例及分析36. 课程设计展示成果107. 课程设计源代码 128. 课程设计心得体会 17 1、课程设计目误差理论与测量平差是一门理论与实践并重课程,其课程设计是测量数据解决理论学习一种重要实践环节,它是在咱们学习了专业基本课“误差理论与测量平差基本”课程后进行一门实践课程。其目是增强咱们对误差理论与测量平差基本理论理解,牢固掌握测量平差基本原理和基本公式,熟悉测量
2、数据解决基本技能和计算办法,灵活精确地应用于解决各类数据解决实际问题,并能用所学计算机理论知识,编制简朴计算程序。2、课程设计任务(1)该课课程设计安排在理论学习结束之后进行,重要是平面控制网和高程控制网严密平差。(2)通过课程设计,培养学生运用本课程基本理论知识和技能,分析和解决本课程范畴内实际工程问题能力,加深对课程理论理解与应用。(3)在指引教师指引下,规定每个学生独立完毕本课程设计所有内容。3、课程设计重点以及基本规定课程设计规定每一种学生必要遵守课程设计详细项目规定,独立完毕设计内容,并上交设计报告。在学习知识、培养能力过程中,树立严谨、求实、勤奋、进取良好学风。课程设计前学生应认真
3、复习教材关于内容和测量平差课程设计指引书,务必弄清基本概念和本次课程设计目、规定及应注意事项,以保证保质保量准时完毕设计任务。本次课程设计重点是培养咱们对的应用公式、综合分析和解决问题能力,以及计算机编程能力。此外它规定咱们完毕12个综合性结合生产实践题目,如当前生产实践中经惯用到水准网严密平差及精度评估,边角网(导线)严密平差及精度评估等。4、课程设计详细设计项目内容总体思路:既有级别水准网所有观测数据及网型、起算数据。规定对该水准网,分别用条件、间接两种办法进行严密平差,并进行平差模型对的性检查。水准网条件平差:列条件平差值方程、改正数条件方程、法方程;运用自编计算程序解算基本方程,求出观
4、测值平差值、待定点高程平差值;评估观测值平差值精度和高程平差值精度。进行平差模型对的性假设检查。水准网间接平差:列观测值平差值方程、误差方程、法方程;运用自编计算程序解算基本方程,求出观测值平差值、待定点高程平差值;评估观测值平差值精度和高程平差值精度。进行平差模型对的性假设检查。平面控制网(导线网)严密平差及精度评估总体思路:既有级别导线网所有观测数据及网型、起算数据。规定对该导线网,用间接进行严密平差,并进行平差模型对的性检查。报告编写对手工解算控制网进行程序验证,编写课程设计报告。报告应涉及起算数据、控制网图形、平差成果、精度指标,点位误差椭圆图等。成果应以表格形式给出,封面统一格式见附
5、录。5. 课程设计案例及分析如图所示水准网,A、B两点为高程已知,各观测高差及路线长度如表1。已知数据 表1高差观测值(m)相应线路长度(km)已知点高程(m)h1 = 1.359h2 = 2.009h3 = 0.363h4 =-0.640h5 = 0.657h6 = 1.000h7 = 1.6501122112H1= 35.000H2= 36.000规定:按条件以及间接平差法分别求:(1) 待定点高程平差值;(2) 待定点高程中误差;(3) p2和p3点之间平差后高差值中误差;(4) 平差模型对的性检查(四等水准测量每公里高差观测中误差为5毫米)。5.1 水准网条件平差求平差值、列条件方程:
6、由题意可知:n=7,t=4,r=n-t=3.观测方程为线性化得条件方程:其中系数阵A=,W=组建法方程:令1km观测高差为单位权观测,即,又。即,且法方程为,其中:,由此可得法方程:解算法方程由矩阵运算程序可得3.1.1.1.4 计算改正数。由矩阵运算程序可得:计算平差值,得:又可得: 精度评估,其中,又由矩阵运算程序可得又得: 平差模型对的性检查原假设和备选假设为 又计算记录量以自由度=4,=0.05查得分布表:可见,在内,该平差模型对的,平差成果可用。5.2 水准网间接平差平差值 列误差方程选用、三点高程、为参数,由题意知可列出七个平差值方程 且代入可得误差方程 可得系数阵构成法方程取2k
7、m观测高差为单位权观测,即有权阵,其中由矩阵运算程序可得:,由可得法方程解算法方程并由矩阵运算程序可得:计算改正数计算平差值,得:又可得: 精度评估,又且故有:平差模型对的性检查原假设和备选假设为 又计算记录量以自由度=4,=0.05查得分布表:可见,在内,该平差模型对的,平差成果可用。6. 课程设计展示成果检查过程某些截图如下7. 课程设计源代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System
8、.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
9、_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(obj
10、ect 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(objec
11、t 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);
12、 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 =
13、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 Sys
14、tem;using System.Collections.Generic;using System.ComponentModel;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(objec
15、t 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 se
16、nder,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(obje
17、ct 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(objec
18、t 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.
19、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 / 18
20、0); 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,EventA
21、rgs 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(
22、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
23、_Click(object sender,EventArgs e) private void label15_Click(object sender,EventArgs e) private void label16_Click(object sender,EventArgs e) 8. 课程设计心得体会这是一次非常故意义课程设计。通过这次误差理论与测量平差课程设计,我对测量平差有了一种更深刻理解。在课程设计中将咱们所学理论知识运用于实践,逐渐在实践中结识体会测量平差基本原理和基本公式,并熟悉测量数据解决基本技能和计算办法。俗话说得好,学以致用,咱们平时学理论知识就是为了在后来生产实习中更好应
24、用,这次实习真正做到了理论与实际相结合。我感到很故意义。这次实习完全从测量平差工程实际出发,加深我对课本知识进一步理解。这次实习培养了我理论联系实际能力、独立学习能力、分析问题和解决问题能力。或许咱们已对误差理论与测量平差这本书理论知识有了一定理解,但将它应用于实践依然是咱们一种难点,特别是将这门课程与计算机程序完美地结合。这便规定咱们在原有解题思路中加入C语言程序,并让它来协助咱们解决矩阵复杂运算。既然用到了程序,咱们就必要保证其运算简洁性、对的性,特别是在编写过程中要认真检查,为程序顺利运营打下基本。此外在各个子程序调用过程中,咱们要充分考虑其顺序性并重复调试,以便得到抱负成果。这次实习使我深刻结识到学习测量平差重要性。作为一种大三大学生即将要走上社会,因此每一次实习咱们都要认真完毕,由于在后来工作中,没有人来协助你,都是你自己来完毕,因此在学校咱们要多学,多问,多掌握专业知识。作为一名测绘人,咱们更要学会不怕吃苦,不怕累精神。总之,在这次课程设计中我不但过了比较充实,还收获了不少知识,后来也要爱惜咱们每一次实习。