测量平差课程设计报告

时间:2024.4.13

东南大学交通学院

测量平差课程设计报告

设计题目:                           

专  业:       测绘工程专业              

班  级:                           

学  号:                            

姓  名:                             

指导老师:                           

日  期:                           


                   目录

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。

image771

已知数据 表1

要求:按条件以及间接平差法分别求:

(1)  待定点高程平差值;

(2)  待定点高程中误差;

(3)  p2p3点之间平差后高差值的中误差;

(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. 课程设计展示成果

检验过程部分截图如下

15

16

14

13

11

7. 课程设计源代码

using System;

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(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.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(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语言程序,并让它来帮助我们解决矩阵的复杂运算。既然用到了程序,我们就必须保证其运算的简洁性、正确性,尤其是在编写过程中要认真检查,为程序顺利运行打下基础。另外在各个子程序调用过程中,我们要充分考虑其顺序性并反复调试,以便得到理想结果。

这次实习使我深刻的认识到学习测量平差的重要性。作为一个大三的大学生即将要走上社会的,所以每一次的实习我们都要认真的完成,因为在以后工作中,没有人来帮助你,都是你自己来完成的,所以在学校我们要多学,多问,多掌握专业知识。作为一名测绘人,我们更要学会不怕吃苦,不怕累的精神。

总之,在这次课程设计中我不但过了比较充实,还收获了不少知识,以后也要珍惜我们的每一次实习。

更多相关推荐:
测量平差课程设计实习报告

河南城建学院测绘与城市空间信息系课程设计报告学生学号061410203学生班级0614102学生姓名豆婷婷专业测绘工程指导教师梁玉保时间20xx1224至20xx122820xx年12月28日设计名称误差理论与...

误差理论与测量平差课程设计报告

误差理论与测量平差课程设计课程名称水准网严密平差及精度评定院系土木工程学院专业班级姓名学号指导教师误差理论与测量平差基础课程设计报告目录1目录12课程设计的目的23课程设计题目及相关要求4设计思路5程序流程图6...

测量平差课程设计实习报告

湖南科技大学建筑与城市规划学院测量平差课程设计实习报告专业班级姓名学号指导老师20xx年1月9日一课程设计的性质目的和任务测量平差课程设计是完成测量平差基础课程教学后进行的综合应用该课程基本知识和技能的一个教学...

误差理论与测量平差课程设计报告

误差理论与测量平差课程设计报告课题水准网严密平差及精度评定院校山东交通学院系别土木工程系指导教师赵斌臣等班级测绘071姓名李大志目录一目录1二序言2三设计思路3四程序流程图4五程序及说明5六计算结果12七总结1...

误差理论与测量平差基础课程设计报告

误差理论与测量平差基础课程设计导线网平差计算间接平差法计算待定点坐标平差值任务及精度要求某工程按城市测量规范CJJ899布设一二级导线网作为平面控制网主要技术要求为平均边长200m测角中误差8导线全长相对闭合差...

测量平差课程设计

课程名称学院姓名年课程设计误差理论与测量平差基础矿业学院专业yyzzhh学号111111111120xx年01月06日课程设计任务书一设计目的及意义测量平差是一门理论与实践并重的课程测量平差课程设计是测量数据处...

测量平差课程设计

课程名称学院姓名年级课程设计误差理论与测量平差基础矿业学院专业测绘工程岗多则拉学号任课教师20xx年7月14日测量平差课程设计任务书一本课程设计的性质目的任务误差理论与测量平差基础是一门理论与实践并重的课程该课...

《测量平差》课程设计

课程名称学院姓名班级课程设计误差理论与测量平差基础矿业学院专业学号误差理论与测量平差基础课程设计任务书一本课程设计的性质目的任务误差理论与测量平差基础是一门理论与实践并重的课程该课程设计是测量数据处理理论学习的...

误差理论与测量平差课程设计报告

测量平差程序设计课程设计报告课题水准网严密平差及精度评定院校环境与资源学院系别测绘工程专业指导教师梁丹班级测绘111班姓名汪沛仁目录一目录1二序言2三设计思路3四程序流程图4五程序及说明5六计算结果12七总结1...

误差理论与测量平差课程设计版文 (2)

误差理论与测量平差课程设计报告课题水准网严密平差及精度评定院校系别指导教师班级姓名1本课程设计的性质目的和任务误差理论与测量平差是一门理论与实践并重的课程其课程设计是测量数据处理理论学习的一个重要的实践环节它是...

误差理论与测量平差课程设计任务书、指导书

误差理论与测量平差课程设计任务书题目测量控制网严密平差程序设计时间12月9日至12月13日共一周专业测绘工程班级学号姓名指导教师签字院长签字一设计内容及要求本设计重点检查同学们利用误差理论与测量平差知识解决测量...

测绘程序设计—实验八_水准网平差程序设计报告

测绘程序设计VCnet上机实验报告VisualCNet班级测绘0901班学号0405090204姓名代娅琴20xx年4月29日实验八平差程序设计基础一实验目的巩固过程的定义与调用巩固类的创建与使用巩固间接平差模...

测量平差课程设计报告(24篇)