资源描述
东南大学交通学院
测量平差课程设计报告
设计题目:
专 业: 测绘工程专业
班 级:
学 号:
姓 名:
指导老师:
日 期:
目录
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
高差观测值(m)
对应线路长度(km)
已知点高程(m)
h1 = 1、359
h2 = 2、009
h3 = 0、363
h4 =-0、640
h5 = 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得观测高差为单位权观测,即,又。即
,且法方程为,其中:
,由此可得法方程:
解算法方程
由矩阵运算程序可得
3、1、1、1、4 计算改正数。由矩阵运算程序可得:
计算平差值
,得:
又
可得:
精度评定
,其中,又
由矩阵运算程序可得
又
得:
平差模型得正确性检验
原假设与备选假设为
又
计算统计量
以自由度=4,=0、05查得得分布表:
可见,在内,该平差模型正确,平差结果可用。
5、2 水准网间接平差
平差值
列误差方程
选取、、三点得高程、、为参数,由题意知可列出七个平差值方程
且
代入可得误差方程 可得系数阵
组成法方程
取2km得观测高差为单位权观测,即
有权阵,其中
由矩阵运算程序可得:,
由可得法方程
解算法方程
并由矩阵运算程序可得:
计算改正数
计算平差值
,得:
又
可得:
精度评定
,
又
且
故有:
平差模型得正确性检验
原假设与备选假设为
又
计算统计量
以自由度=4,=0、05查得得分布表:
可见,在内,该平差模型正确,平差结果可用。
6、 课程设计展示成果
检验过程部分截图如下
7、 课程设计源代码
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()
{
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)
{
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 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()
{
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)
{
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语言程序,并让它来帮助我们解决矩阵得复杂运算。既然用到了程序,我们就必须保证其运算得简洁性、正确性,尤其就是在编写过程中要认真检查,为程序顺利运行打下基础。另外在各个子程序调用过程中,我们要充分考虑其顺序性并反复调试,以便得到理想结果。
这次实习使我深刻得认识到学习测量平差得重要性。作为一个大三得大学生即将要走上社会得,所以每一次得实习我们都要认真得完成,因为在以后工作中,没有人来帮助您,都就是您自己来完成得,所以在学校我们要多学,多问,多掌握专业知识。作为一名测绘人,我们更要学会不怕吃苦,不怕累得精神。
总之,在这次课程设计中我不但过了比较充实,还收获了不少知识,以后也要珍惜我们得每一次实习。
展开阅读全文