好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

[工学]第三章 水准网平差程序设计.ppt

40页
  • 卖家[上传人]:油条
  • 文档编号:49696960
  • 上传时间:2018-08-01
  • 文档格式:PPT
  • 文档大小:621.50KB
  • / 40 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第三章 水准网平差程序设计本章难点: 1、近似高程计算 2、最短路线的计算 3、误差方程及法方程的构建 4、直接计算出法方程的系数矩阵BTPB和常 数矩阵BTPL该课程中所采用的平差模型为间接平差,即所 选的独立参数的个数等于必要观测数,这样可以 将每个观测值表示成这t个参数的函数,组成观测 方程间接平差的函数模型:平差时一般对所选参数取近似值 代入上式并令由此可得误差方程,式中 为误差方程常数项一、水准网间接平差算法概述采用的平差准则为最小二乘法 :不难看出总共有n+t个参数,而所列的误差方 程只有n个,故只采用误差方程是不能解求n+t 个参数的,还需寻找其他的条件按着最小二 乘法法则,对t个参数求偏导,得出式子由误差方程和求偏导后得到的式子,可唯一 确定n+t个待求量.并有这两个 式子可以推出 法方程,如为:从而可求得,将该式代入到误差即可求得改正数 从而平差值结果为:本课程中以未知点高程值作为未知参数,以高 差作为观测值,以观测路线长度的倒数作为观测 值的权,采用间接平差模型进行平差计算其平差的一般步骤如下:1.根据平差问题选定未知参数;2.根据观测值与未知参数之间的函数关系建立误 差方程式,若误差方程是非线性方程,还要引入 参数近似值,将误差方程线性化;3.由误差方程组成法方程;4.解算法方程,求取未知参数; 5.精度评定。

      平差程序设计不仅仅是“写程序”,测 量程序设计还包括程序功能设计、平差模 型选择、算法选择、数据接口设计等内容 一般应按数据处理和计算功能的划分,将 网平差程序分为若干独立函数,每个函数 完成特定的计算或操作,当需进行某种平 差时,再调用这些函数即可二、水准 网平差程序 设计数据组 织及处理流 程要整洁、简练、实用、方便有关数据的输入 或输出,必要的话要考虑和用户的交互,尽量不 要画蛇添足三、水准网平差界面设计水准网平差输入界面一水准网平差输入界面二水准网平差输入界面三四、高差闭合差的计算与检查为了检查水准高差的质量,水准网平差前一 般进行附合水准路线闭合差计算与多边形闭合差 计算,并进行闭合差的检核 1.附合水准路线高差闭合差的计算a)最短路线搜索算法“邻接点”:若一个点借助 另一个点与目标点发生了 联系,称另一个点是这个点 的“邻接点” 如果一个点与目标点有直接联系,我们也把目标 点称为这个点的邻接点显然邻接点不是唯一的,但是我们规定每个点 只有一个邻接点;当网中每个点的邻点都唯一确 定时,顺着邻接点又可找到邻点的邻接点,这样 一层一层地找下去,最终找到目标点,每个点到 目标点的路线是唯一确定的。

      根据邻接点的概念可知,任何一点沿邻点到 目标点的路线长度是其邻接点到目标点的路线长 度再加上该点与其邻接点之间的路线长度当一 个点有多个点可以作为邻接点时,只选择路线最 短的一点作为邻接点,这样就可保证沿邻接点到 目标点的路线是最短路线设p1选择p2作为邻接点,P2到目标点的路线长 度为S2, p1到p2的路线长度为S12,则p1到目标点 的路线长度S1为 S1=S2+S12若还有一点P3也是P1的邻接点,则经由P3到 目标点的路线长度为S’1=S3+S13为了寻求最短路线,显然当S1S1+S12 …(条件1)p2可作为p1的邻接点的条件为:S1>S2+S12 …(条件2)若条件1成立时,Neighbor(p2)=p1,S(p2)=S1+S12;若条件2成立时,Neighbor(p1)=p2,S(p2)=S1+S124)当水准网的规模较大时,在循环访问每一 个观测值后某些点到目标点的路线还不是最短路 线,甚至有些点还没有找到邻接点,需要转(3 )继续为寻找路线最短的邻接点,知道所有的观 测边不再满足条件1和条件2,这时表明每个点都 已经找到了到目标点最短的邻接点,搜素工作结 束。

      最短路线搜索函数 FindShortPath(p as integer, exclude as integer, int neighbor()as integer,diff() as double, S() as double)从一个已知点出发用观测高差依次推算其它 各点的高程,最后闭合到另外一个已知点上,闭 合点上推算高程和已知高程值之差称之为附合水 准路线闭合差,简称路线闭合差设k1、k2为两 个已知点,已知高程值分别为H1、H2,两点之间 的推算路线由高差h1,h2……hn,各测段路线长度 分别为S1,S2 ……Sn,路线闭合差为式中,正负号取决于高差起始点到终点的方向与 推算路线是否一致b)路线闭合差计算算法闭合差的限差为:假如网中共有m个已知点,将m个已知点两两组 合,计算m(m-1)/2条附合路线的闭合差,每条路 线按最短路线进行计算在水准网中,由观测高差相连接可以形成闭 合多边形,理论上构成闭合多边形的各观测高 差之和应该为0,由于观测误差的存在,高差之 和一般不等于0,闭合多边形的观测之和称为环 闭合差一般情况下,设构成闭合环的观测高差 h1,h2……hn,环闭合差为式中,正负号取决于高差起点到终点的方向与推 算路线的方向一致。

      c)环闭合差计算算法环闭合差的限差为实际计算时,一般只计算最小独立环的闭合差 最小闭合环应该满足如下条件: (1)多边形环应该是相互独立(线性无关)的 ,即任何一个多变边不能由其它多边形线性组 合而得到满足独立条件可以避免重复计算, 也可以避免遗漏 设水准网中有n个观测高差、t个高程点,那么 独立闭合环的个数为r=n-t+1 保证闭合环独立的方法是,每个新环找到的闭 合环都有前面找到的闭合环中不曾使用的观测 值2)在多边形环独立的情况下,闭合环的边长 最短关于最小环问题可以用最短路径的方法解决 若仅通过一个观测值即可将两个点p1到p2连 接起来,构成一条路线,可把这种路线称为p1到 p2的直接路线如果直接路线能同别的观测值构 成闭合环,那么从p1到p2应有两条或两条以上 的路线如果选定一条直接路线,再从非直接路线中 找到p1到p2的最短路线,把这条最短路线与直 接路线连接起来一定是包含直接路线的最小环 为保证找到的闭合环是独立的,只能将未参加过 前面环闭合差计算的观测作为直接路线五、近似高程计算在求取未知点近似高程的时候,要注意测段 的方向及相关正负号既可以进行人工计算,再 输入到程序中,也可以直接将原始数据直接读入 到程序中,根据相关算法让程序自动计算。

      计算 方法如下式:水网观测数据(测段)的组织:测段号 起点 终点 测段高差(m) 测段长(km) 测站数 1 A B 5.835 1.5 2 E C 1.006 0.8 3 D C 7.384 2.1 4 B C 3.782 3.2 5 A D 2.270 1.7 6 A C 9.64 1.3 7 A F 0.003 4.1水准网近似高程计算算法1、定义一数组a(),将已知点(原有高程和计算出的近似高程都可视为已知点)存 到a()数组中;2、遍历所有测段(从第一个测段到最后一个测段);a)判断测段中起点为已知点(并用一布尔类型变量来标记),判断终点为未知 点(用一布尔类型变量来标记),若同时 成立,则进行计算;b)再次遍历测段,找到满足这些条件的测段 (其起点不是已知点,终点是已知 点),若同时满足,则进行起点近似高程 的计算,并把起点的点号和近似高程存到 已知数组中;3、判断计算出近似高程的个数是否小于未知点高程点的个数,若是再次进行循环, 若否,计算完毕(即水准网中未知高程点 的近似高程已全部计算出来)。

      六、误差方程的组成 对于水准网平差,关键就是误差方程 的构建,即相关矩阵的生成,这里所指的 矩阵是系数矩阵B和常数矩阵L如何来 组成这两个矩阵呢?还是一个方程一个方 程的建立,随后将相应值存储到矩阵B和 L的对应元素中系数矩阵B构建算法描述: 1、定义一个存储系数B的数组b(),其行数为观测 测段数,列数为所选必要参数个数;定义一个存储 常数阵L的数组L(),其行数为测段个数,列数为1 ; 2、取出第j个测段(测段数据存储在测段信息数组 中的),首先判断该测段起点是否为已知点(也即 其在已知点数组a()中的下标位于起算高程点个数内 ,如:起算高程点个数为5,起点在已知数组中的 下标为i,当i小于等于5时,说明该起点为已知点, 若i大于5,则说明该起点为未知点,同样终点是什 么类型的点也通过该方法判断),记下其在a()中的 下标i1(原始已知点数为i0);判断该测段终点是 什么类型的点记下其在a()中的下标i2;a)、若该测段的起点为未知点,且终点也 为未知点,则矩阵B的第j行、第(i1-i0) 列的元素为-1,第j行、第(i2 –i0)列的元 素为1;那么第j行其它元素都为 0;b)、若该测段的起点为已知点,且终点 为未知点,则矩阵B的第j行、第(i2-i0) 列的元素为1,该行其它元素都为0;c)、若该测段的起点为未知点,且终点为 已知点,则矩阵B的第j行、第(i1-i0)列 的元素为-1,该行其它元素都为0;3、根据每测段起点和终点点的类型,就可以计算出这个误差方程的常数项,把计算 出的数值放到L()中去就可以了;4、遍历完所有的测段,即可构建出矩阵B ,即其所有的元素都存储在b()中了。

      七、法方程的组建有了B和l,根据由最小二乘原理,对所选参数求偏导后的式子,推出法方程,即:直接计算法方程系数阵和常数阵(累加法)组成法方程是间接平差的关键步骤,由间接 平差模型可知 ,在误差方程系数矩阵B,误差方 程常数项以及观测值的权P确定时,法方程系数 矩阵和自由项向量分别为BTPB和BTPL,组成法方 程就是矩阵的乘积但在水准网平差程序设计时 ,为了节省存储单元,可不必为误差方程矩阵B 开辟存储数组,权阵也只保存对角线上的元素, 组成法方程的计算就不是矩阵乘积运算了,而是 根据观测值的起始点号、终点号、高差值和观测 值的权直接计算出法方程的系数阵BTPB和自由项 向量BTPL应将pk、-pk累加到法方程系数矩阵的什么位置?若第K个观测高差的起点点号和终点点号分 别为i、j,则需将pk累加到法方程系数矩阵的第 i行第i列和第j行第j列,将-pk累加到法方程系 数矩阵的第j行和第i列同理,应将pklk和-pklk 分别累加到法方程常数项的第j行和第i行中组成法方程的过程就是以观测值总数为循环 界,逐个观测值计算累加项的过程,在第k 个循 环中,所做的工作如下: (1)获得高差的起点点号i和终点号j;(2)获得起点和终点的高程值Hi和Hj;(3)计算误差方程的自由项lk=Hj-Hi-hk;(4)将pk、pklk累加到法方程系数阵和法方程自 由项的相应单元中。

      可以将法方程系数矩阵和法方程常数项矩阵的 计算定义成一个函数Ca_ATPA()void CLevelingAdjust::ca_ATPA() {int t=m_Pnumber;for(int i=0; i

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.