第四章平面控制网程序设计本章重点:1、近似坐标计算2、误差方程的建立(系数阵B及常数项阵L的生成)3、基于累加性,直接生成法方程系数阵及常数项阵4、定权一、概述水平网是指用经典的测量手段(测边、测角等)布设的平面控制网,根据观测值类型的不同,水平网可分为测角网、测边网、导线网等不同的网型。水平网平差的目的主要就是确定未知点的平面坐标以及其精度。1)水平网的观测值水平网的观测值可分为方向值、边长和方位角三类。对于一个具体的水平网,三类观测值不一定全部存在。例如,传统的三角网仅有方向值,导线网既有边长又有方向值,三边网仅有边长观测值。并假定方向值、边长、方位角都已归算到同一投影面的观测值。2)平差方法对水平网进行平差时,可根据实际情况选择不通的平差方法。本课程中,直接选择间接平差模型作为平差时所选的函数模型,即以点的坐标作为未知数。选择间接平差方法,误差方程具有统一的形式,便于程序设计。原始数据的组织、中间结果和最终结果的输出形式数据输入近似坐标和近似方位角的计算组建误差方程,即B、l的生成代入相应的公式进行计算、xv计算待求量的平差植精度评定成果输出界面设计二、平面控制网程序设计流程三、原始数据文件格式一般来说,不同的数据组织对应不同的数据文件,对应不同的读取数据文件的程序。原始数据文件中共有四类数据,其顺序一般为概况信息、精度指标、已知坐标、观测数据(方向观测值、边长观测值、方位角观测值)。1)概况信息格式概况信息包括总点数、已知点数、方向观测值数、边长观测值总数、方位角观测值总数。概况信息一般放在数据文件第一行,每个数据项都是一个具体的数字,不同的数据项用分隔符隔开(如逗号、空格等)。2)精度指标格式精度指标是各种观测量的中误差,可按照方位值中误差、边长固定中误差、边长的比例中误差、方位角中误差的顺序来填写。不同的数据项用分隔符隔开。3)已知坐标格式一个已知点的数据格式为:已知点号、x坐标值、y坐标值。坐标值以米为单位。当有多个已知点数据时,顺序排列各已知点的点名、x坐标值、y坐标值,每个控制点数据占一行。4)方向观测值格式5)边长观测值格式一条边长数据的格式为:点名1、点名2、边长观测值。当有多条边时,按一条边的格式,每个边长占一行,依次排列全部边长。6)方位角观测值格式一条方位角数据格式为:测站点名、照准方向点名、方位角观测值。方位角的格式为度分秒连写。当有多个方位角数据时,每个方位角占一行,依次排列全部方位角。读入原始数据也就是通过相应的函数打开指定路径下的文本文件,逐行读取文本文件中的每行数据,在对读出的每行数据进行处理后,将相应的信息存储到变量、数组中去,以便后面程序对数据进行操作、处理。四、原始数据读入及存储四、平面控制网界面设计在进行控制网平差程序设计时,首先要对常用的控制网类型及相应的数据类型非常熟悉;其次还要考虑哪些观测数据可通过界面控件进行输入,哪些数据以数据文件的形式输入到程序中。常用的平面控制网类型有:测角网、测边网、导线网。而这几种类型的控制网所涉及的数据形式包括:夹角、边长、边长约束条件及方位角约束条件。边角网数据输入界面一边角网数据输入界面二边角网数据输入界面三三、平面控制网近似坐标计算一、测角网近似坐标计算过程(1)定义一数组a()来存储控制点点号和坐标;定义一数组GuanCeInFo()来存储夹角(包括前视点、测站点、后视点及角度值);(2)采用前方交会求待定点的坐标;a、遍历所有角度信息,找到测站点为已知点,且其前视点为未知点、后视点为已知点,用一变量i1记下该角度在数组GuanCeInFo()中的位置;再在角度信息中找到测站点为GuanCeInFo(i1)所在元素的后视点,且前视点为GuanCeInFo(i1)所在元素的测站点、后视点为GuanCeInFo(i1)的前视点,并记下该角度在数组GuanCeInFo()中的位置i2;找到i1和i2后,那么由这两个位置数组GuanCeInFo()元素就构成了一个三角形,且角度是按逆时针;b、遍历所有角度信息,找到测站为已知点,前视点也为已知点,且后视点为未知点的角度,并用变量j1记录此时在GuanCeInFo()的位置;再遍历角度信息,找到测站点为已知点,前视点为未知点点号为GuanCeInFo(j1)元素的后视点点号,且后视点点号为GuanCeInFo(j1)元素的测站点,并记下此时角度元素在GuanCeInFo()中的位置j2;找到了j1和j2,就构成了一个三角形。(3)按(2)计算出所有未知点的坐标(已求出坐标的点的个数等于未知点个数)。二、常用的控制网类型在基于间接平差的数学模型来进行程序设计时,要弄清楚不同的控制网类型,因为不同的控制网类型在组建误差方程的时候是不同的。程序在自动组建误差方程时,应该分清类型,再逐个方程进行组建。(1)测边网例如:在右图中,测得待定点间的边长为Li,设待定点的坐标平差值为参数,令kkjjYXYX、、、kkkkkkjjjjjjyYYxXXyYYxXX0000,,jkLi由上面可以列出的平差值方程为:iL22)()(jkjkiiiYYXXvLL按台劳公式展开,得0200200000000000000)()(,)()(jkiijkjkjkjkjkjkjkjkjkjkjkjkjkjkiiSLlYYXXSYYYXXXyySYxxSXSvL再令:式中:(1)由式(1)可得测边的误差方程为:ikjkjkkjkjkjjkjkjjkjkilySYxSXySYxSXv00000000上式中右边4项之和是由坐标改正数引起的边长改正数。上式是测边坐标平差误差方程的一般形式,它是在假设两端都是待定点的情况,具体应用时需根据实际情况来运用。假若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).prNode.X0-GuanceBianData(k4).baNode.X0)/Sqr(a0*a0+b0*b0)b1=(GuanceBianData(k4).prNode.Y0-GuanceBianData(k4).baNode.Y0)/Sqr(a0*a0+b0*b0b(i1+k4,Val(Right(GuanceBianData(k4).prNode.ID,2))*2-1)=a1b(i1+k4,Val(Right(GuanceBianData(k4).prNode.ID,2))*2)=b1(2)测角网观测值为角度,参数为待定点坐标的平差问题,称为测角网平差坐标方差。jhkLijkjh在右图中,观测角度为Li,设j、h、k均为待定点,参数为三点的坐标,并令、、),(),(),(hhkkjjYXYXYX000000)(,iijkjkiijhjkiiiLLLlvLLyYYxXX代入,并令将为列方程,其观测方程对角度即观测角减去其近似角就是常数,代入上式得:ihjhjhhjhjhkjkjkkjkjkjjkjhjkjkjjhjhjkjkiijhjkilySXxSYySXxSYySXSXxSYSYvlv200200200200200200200200)()()()()()()()(,平差的误差方程:以得出测角网坐标表达为坐标改正数就可再将方位角改正数表示的误差方程。我们这就是由方位角改正数若以角度列误差方程,其程序代码如下: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)*(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-OriginalData(k1).traNode.Y0))IfOriginalData(k1).isEnd=TrueThena1=(-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,2)))=a1b(k1,Val(Right(OriginalData(k1).PreNode.ID,2))+1)=b1(3)导线网在对导线网进行平差程序设计中,误差方程的建立常常采用边长和观测角度分别列误差方程,其误差方程的建立方式同测边网和测角网中误差方程的建立原理一样。总之,对于以上几种控制网一般都采用待定点的坐标作为平差模型的参数,将观测值表示为这些参数的函数,并进行线性化。随后将这些观测方程组写成矩阵形式,并进行求解和精度都评定。三、待定点近似坐标的计算(1)测角网中待定点近似坐标的计算ABC三角网待定点近似坐标可按余切公式计算,以右图为例,已知A、B两点的坐标,观测了3个内角,计算待定点C坐标的余切公式为:后的角度值。是经三角形闭合差分配、式中,cotcotcotcotcotcotcotcotbabacbabacXXYYYYYXXX(2)测边网中待定点近似坐标计算三边网中待定点近似坐标可按测边交会计算,BAC在右图中,已知A、B两点的坐标,观测了边长S1、S2,计算C点的坐标过程如下:由C点向对边引垂线,垂足为O,AO长度为l,根据余弦定理可得:22122221:2lShhSSSSlABAB为三角形高OS1S2h待定点C的近似坐标为ABABAcABABAcThTlYYThTlXXsincossincos00式中:ABABABABABABSYYTSXXT/)(sin/)(cos(3)导线网中待定坐标的计算1、首先计算待定边的方位角2、根据坐标正算计算出待定点的近似坐标四、权阵的构建导线网中各边长观测、角度观测相互之间都是独立的,因此随机模型12020PQD中的权阵是对角阵。设网中有n1个角度观测n121,,和n2边长观测221nSSS,,,,n1+n2=n其权阵为:),,,,,,(21121,nssnnnpppppdiagP要确定权阵P,必须已知先验方差DD也是对角阵,单位权方差20唯一,但可任意选取若D已知,则定权公