1、第四章 平面控制网程序设计 本章重点:1.近似坐标计算2.误差方程的建立(系数阵 B及常数项阵 L的生成)3.基于累加性,直接生成法方程系数阵及常数项阵4.定权一、概述水平网是指用经典的测量手段(测边、测角等)布设的平面控制网,根据观测值类型的不同,水平网可分为测角网、测边网、导线网等不同的网型。水平网平差的目的主要就是确定未知点的平面坐标以及其精度。1)水平网的观测值水平网的观测值可分为方向值、边长和方位角三类。对于一个具体的水平网,三类观测值不一定全部存在。例如,传统的三角网仅有方向值,导线网既有边长又有方向值,三边网仅有边长观测值。并假定方向值、边长、方位角都已归算到同一投影面的观测值。
2、2)平差方法对水平网进行平差时,可根据实际情况选择不同的平差方法。本课程中,直接选择间接平差模型作为平差时所选的平差模型,即以点的平面坐标作为未知数。 选择间接平差方法,误差方程具有统一的形式,便于程序设计。二、平面控制网程序设计流程三、原始数据文件格式设计一般来说,不同的数据组织对应不同的数据文件,对应不同的读取数据文件的程序。原始数据文件中共有四类数据,其顺序一般为概况信息、精度指标、已知坐标、观测数据(方向观测值、边长观测值、方位角观测值)。1)概况信息格式概况信息包括总点数、已知点数、方向观测值数、边长观测值总数、方位角观测值总数。概况信息一般放在数据文件第一行,每个数据项都是一个具体
3、的数字,不同的数据项用分隔符隔开(如逗号、空格等)。2) 精度指标格式精度指标是各种观测量的中误差,可按照方位值中误差、边长固定中误差、边长的比例中误差、方位角中误差的顺序来填写。不同的数据项用分隔符隔开。3) 已知坐标格式一个已知点的数据格式为:已知点号、 x坐标值、 y坐标值。坐标值以米为单位。当有多个已知点数据时,顺序排列各已知点的点名、 x坐标值、 y坐标值,每个控制点数据占一行。4) 方向观测值格式5)边长观测值格式一条边长数据的格式为:点名 1、点名 2、边长观测值。当有多条边时,按一条边的格式,每个边长占一行,依次排列全部边长。6)方位角观测值格式一条方位角数据格式为:测站点名、
4、照准方向点名、方位角观测值。方位角的格式为度分秒连写。当有多个方位角数据时,每个方位角占一行,依次排列全部方位角。读入原始数据也就是通过相应的函数打开指定路径下的文本文件,逐行读取文本文件中的每行数据,在对读出的每行数据进行处理后,将相应的信息存储到变量、数组中去,以便后面程序对数据进行操作、处理。四、原始数据读入及存储四、平面控制网界面设计在进行控制网平差程序设计时,首先要对常用的控制网类型及相应的数据类型非常熟悉;其次还要考虑哪些观测数据可通过界面控件进行输入,哪些数据以数据文件的形式输入到程序中。常用的平面控制网类型有:测角网、测边网、导线网。而这几种类型的控制网所涉及的数据形式包括:
5、夹 角、边长、边长约束条件及方位角约束条件。边角网数据输入界面一边角网数据输入界面二边角网数据输入界面三五、平面控制网近似坐标计算1、测角网近似坐标计算过程( 1)定义一数组 a()来存储控制点点号和坐标;定义一数组 GuanCeInFo()来存储夹角(包括前视点、测站点、后视点及角度值);( 2)采用前方交会求待定点的坐标;a、遍历所有角度信息,找到测站点为已知点,且其前视点为未知点、后视点为已知点,用一变量 i1记下该角度在数组 GuanCeInFo()中的位置;再在角度信息中找到测站点为 GuanCeInFo( i1)所在元素的后视点 ,且前视点为 GuanCeInFo( i1)所在元素
6、的测站点、后视点为 GuanCeInFo( i1)的前视点,并记下该角度在数组 GuanCeInFo()中的位置 i2;找到 i1和i2后,那么由这两个位置 数组 GuanCeInFo()元素就构成了一个三角形,且角度是按逆时针;b、遍历所有角度信息,找到测站为已知点,前视点也为已知点,且后视点为未知点的角度,并用变量 j1记录此时在 GuanCeInFo()的位置;再遍历角度信息,找到测站点为已知点,前视点为未知点点号为 GuanCeInFo( j1)元素的后视点点号,且后视点点号为 GuanCeInFo( j1)元素的测站点,并记下此时角度元素在 GuanCeInFo()中的位置 j2;找
7、到了 j1和 j2,就构成了一个三角形。( 3)按( 2)计算出所有未知点的坐标(已求出坐标的点的个数等于未知点个数)。2、待定点近似坐标的计算( 1) 测角网中待定点近似坐标的计算 A BC三角网待定点近似坐标可按余切公式计算,以右图为例,已知 A、 B两点的坐标,观测了 3个内角,计算待定点 C坐标的余切公式为:( 2)测边网中待定点近似坐标计算三边网中待定点近似坐标可按测边交会计算,BAC在右图中,已知 A、 B两点的坐标,观测了边长 S1 、 S2,计算 C点的坐标过程如下:由 C点向对边引垂线,垂足为 O,AO长度为 l, 根据余弦定理可得:O S1S2h待定点 C的近似坐标为 式中
8、:( 3)导线网中待定坐标的计算1、首先计算待定边的方位角2、根据坐标正算计算出待定点的近似坐标六、平面控制网误差方程建立方法一、直接生成系数矩阵 B和常数项矩阵 L 在基于间接平差的数学模型来进行程序设计时,要弄清楚不同的控制网类型,因为不同的控制网类型在组建误差方程的时候是不同的。程序在自动组建误差方程时,应该分清类型,再逐个方程进行组建。( 1)测边网右图中,测得待定点间的边长为 Li,设待定点的坐标平差值 为参数,令jkLi由上面可以列出 的平差值方程为:按台劳公式展开,得( 1)由式( 1)可得测边的误差方程为:上式中右边 4项之和是由坐标改正数引起的边长改正数。上式是测边坐标平差误
9、差方程的一般形式,它是在假设两端都是待定点的情况,具体应用时需根据实际情况来运用。假若 j点为已知点:a0 = (GuanceBianData(k4).prNode.X0 - GuanceBianData(k4).baNode.X0) * 1000b0 = (GuanceBianData(k4).prNode.Y0 - GuanceBianData(k4).baNode.Y0) * 1000L(i1 + k4, 1) = GuanceBianData(k4).bLength * 1000 - Sqr(a0 * a0 + b0 * b0)a1 = (GuanceBianData(k4).prNo
10、de.X0 - GuanceBianData(k4).baNode.X0) / Sqr(a0 * a0 + b0 * b0)b1 = (GuanceBianData(k4).prNode.Y0 - GuanceBianData(k4).baNode.Y0) / Sqr(a0 * a0 + b0 * b0 b(i1 + k4, Val(Right(GuanceBianData(k4).prNode.ID, 2) * 2 - 1) = a1b(i1 + k4, Val(Right(GuanceBianData(k4).prNode.ID, 2) * 2) = b1( 2)测角网观测值为角度,参数为
11、待定点坐标的平差问题,称为测角网平差坐标方差。jhkLi在右图中,观测角度为 Li,设 j、 h、 k均为待定点,参数为三点的坐标即观测角减去其近似角就是常数,代入上式得:若以角度列误差方程,其程序代码如下:preS = Sqr(OriginalData(k1).PreNode.X0 - OriginalData(k1).traNode.X0) * (OriginalData(k1).PreNode.X0 - OriginalData(k1).traNode.X0) + (OriginalData(k1).PreNode.Y0 - OriginalData(k1).traNode.Y0) *
12、(OriginalData(k1).PreNode.Y0 - OriginalData(k1).traNode.Y0)baS = Sqr(OriginalData(k1).BackNode.X0 - OriginalData(k1).traNode.X0) * (OriginalData(k1).BackNode.X0 - OriginalData(k1).traNode.X0) + (OriginalData(k1).BackNode.Y0 - OriginalData(k1).traNode.Y0) * (OriginalData(k1).BackNode.Y0 - OriginalDat
13、a(k1).traNode.Y0)If OriginalData(k1).isEnd = True Thena1 = (-1) * pp * (OriginalData(k1).PreNode.Y0 - OriginalData(k1).traNode.Y0) / (preS * preS) a1用来存储 x的系数b1 = pp * (OriginalData(k1).PreNode.X0 - OriginalData(k1).traNode.X0) / (preS * preS) b1用来存储 y的系数b(k1, Val(Right(OriginalData(k1).PreNode.ID,
14、2) = a1b(k1, Val(Right(OriginalData(k1).PreNode.ID, 2) + 1) = b1( 3)导线网在对导线网进行平差程序设计中,误差方程的建立常常采用边长和观测角度分别列误差方程,其误差方程的建立方式同测边网和测角网中误差方程的建立原理一样。总之,对于以上几种控制网一般都采用待定点的坐标作为平差模型的参数,将观测值表示为这些参数的函数,并进行线性化。随后将这些观测方程组写成矩阵形式,并进行求解和精度评定。根据程序设计时采用间接平差方法的特点,误差方程中系数矩阵 B和常数项矩阵 L中一行对应一个观测值(角度、边长、方位角);一般先对平面控制网中一类观测值列误差方程,再对另外的观测值列误差方程,这样可以比较方便进行程序设计。误差方程的建立其实就是取出一个观测值,根据与该观测值直接联系的点类型及信息来计算相应未知参数前的系数、常数项。遍历完所有的观测值后,与系数矩阵、常数项矩阵对应的数组中也有了相应的数据。最后若权阵也计算出来后,根据矩阵相关运算建立法方程,计算出参数的改正值。方法二、基于法方程系数矩阵及常数项矩阵的累加性,直接建立法方程