




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于 MATLAB 的水准网和测边网平差程序设计 摘 要 MATLAB 是目前在研究机构广泛应用的一种数值计算及图形工具软件 它的 特点是语法结构简明 数值计算高效 图形功能完备 特别适合非专业编程员完成 数值计算 科学试验处理等任务 以往的测量数据处理方法需要编制特定的处理矩 阵运算程序 而且程度复杂 难度大 本文介绍一种基于 MATLAB 的水准网和测边网的程序设计方法 与其它算法 语言相比 具有编程简单 运算速度快的特点 文中分别阐述了水准网和测边网程 序的理论基础 实现步骤和运行结果 通过实例的分析 总结出利用 MATLAB 对 测量数据处理有很大的应用价值 它缩短了编程的时间 提高工作效率 关键词 MATLAB 水准网 测边网 程序设计 ABSTRACT MATLAB is one species of numerical values calculation and graphic tools software which is widely used to apply at research institutions at present The particularities are concise grammar structure highly efficient in numerical values calculating complete function of graphs especially it is adapted to evildoing professional programmer to accomplish the tasks that are numerical values calculating and scientific experiments treating The ancient methods of measured data processing need establishing special proceedings of treating matrices operation moreover it is complex and greatly difficult This article introduces one programming method dealing with leveling and measuring edge network based on MATLAB Compared with other algorithm language it has particularities which are simply programming and quickly operating The article separately expatiate the theories basics realizing steps and running results at leveling and measuring edge network With the analysis of examples it has prodigious application value in measured data processing by use of MATLAB Moreover it shortens programming time and improves working effectiveness Key words MATLAB leveling network measuring edge network programming 目目 录录 绪论绪论 4 4 1 1 MATLABMATLAB 软件简介软件简介 5 5 2 2 MATLABMATLAB 在测量平差中在测量平差中的的应用应用 6 6 2 1 测量平差原理的概述 6 2 2 平差程序总体方案 7 3 1 程序的功能 8 3 2 水准模型网的间接平差 8 3 2 1 权 值的确定 8 3 2 2 水准路线的平差计算 9 3 2 3 精度评定 11 3 3 水准网间接平差程序信息设计 11 3 4水准网程序与使用说明 12 3 4 1 水准网程序流程图 12 3 4 2水准网程序的使用 12 3 5 案例 13 4 4 测边网平差程测边网平差程序序设计设计 1616 4 1 数学模型 15 4 1 1 误差方程和法方程的组成 15 4 1 2边长观测的权 15 4 1 3 解算法方程 16 4 1 4精度评定 19 4 2测边网平差信息设计 20 4 2 1 主要的技术要求 21 4 3 利用 MATLAB 的绘图语句绘制网图 21 4 44 4 测边网程序测边网程序和和使使用说明用说明 22 4 5程序代码说明 23 4 6 程序的使用算例 25 结结 论论 29 致致 谢谢 3030 参考文献参考文献 3131 附录附录一一 3232 附录附录二二 3636 附录三附录三 4646 绪论 作为一名测量技术人员 如果不掌握一门 PC 机编程语言与便携计算工具 要 想提高测量工作的效率几乎寸步难行 测量需求的多样性与复杂性 造就了测量计 算鲜明的个性化特点 这就是在商业测量计算软件高度发达的今天 掌握一种实用 的程序语言进行编程计算仍有广泛的市场需求的重要原因 当今较流行的计算机程序语言基本上都是基于 Windows 的 例如 Turbo Pascal Visual Basic Visual C Borland C 等 这些程序语言的优势是基于对象及可利 用 Windows 丰富的系统资源 应用它们可以开发出界面非常丰富和友好的应用程序 其劣势主要有以下几点 1 Windows 程序都非常庞大 学习并熟练掌握它们并非易事 2 虽然市场上已有的多种专用的测量平差软件都是采用 C 语言开发的 但这些软 件价格都比较贵 而且都带有加密狗 一次只能供一个用户使用 出于商业目的 开发商不会公开程序源代码 这为修改程序功能以适应用户的特殊需求带来了不便 3 在测量生产中 经常需要根据工程的实际情况进行一些个性化的数值计算工作 这些数值计算工作无固定模式 这就需要求测量技术人员最好能熟练掌握一种适用 于数值计算的程序语言 以便提高测量计算的效率 4 C 语言的数值计算语句不够丰富 例如 在测量平差计算中 经常需要进行的 矩阵运算 尤其是解法方程的矩阵求逆不能直接使用语句实现 而必须应用计算机 算法编程实现 如果不是基于商业软件开发 只为满足实际测量工作计算需要 则 C 语言的劣 势就变成了 MATLAB 语言的优势 1 MATLAB软件简介 MATLAB是从Matrix 矩阵 和Laboratory 实验室 各取前3个字母组成的 意思是 矩阵实验室 是美国MathWorks公司于20世纪80年代中期推出的一种交互式 面向对 象的科技应用软件 是一个为科学和工程计算而专门设计的高级交互式软件包 MATLAB 集成了图示与精确的数值计算 是一个可以完成各种计算和数据可视化的强 有力工具 其优秀的数值计算能力和卓越的数据可视化能力使其很快在数学软件中脱 颖而出 成为以矩阵运算为主要工作方式的线性代数 概率论和数理统计 自动控制 数字信号处理 动态系统仿真等领域教学和科研工作者的有力武器 随着该软件自 身的发展及市场的需求 其功能日趋完善 前其最高版本7 0版已经推出 随着版本的 不断升级 它的数值计算及符号计算功能得到了进一步完善 MATLAB是以矩阵作为数据操作的基本单位 矩阵的生成 运算 转置 求逆等非 常简单 在MATLAB环境中 不需要对创建的变量对象给出类型说明和维数 所有的变 量都作为双精度数来分配内存空间 MATLAB将自动地为每一个变量分配内存 MATLAB 语言起源于矩阵运算 并已经发展成为一种高度集成的计算机语言 它提供了强大的 科学运算 灵活的程序设计流程 高质量的图形可视化与界面设计 便捷的与其他 程序和语言接口的功能 MATLAB系统主要包含5 部分的内容 MATLAB 工作环境 Mablab 数学函数库 MATLAB语言体系 句柄图形 MATLAB应用程序接口 API MATLAB系统主要功能包括 数值计算功能 符号计算功能 数据分析和可视化 文字 处理功能 SIMULINK动态仿真功能 同时 MATLAB又是开放的 除了内部函数之外 所 有的MATLAB 主包文件和各工具包文件都是可读可改的源文件 用户可以作为参考掌 握其用法 并可对其修改以适应自己的需要 也可加入自己编写的文件构成新的工具 包 例如 随着GPS 的广泛应用 Orion Dynamics and Con2t rol Corporation Constell Inc GPSSoft LLC NavsysCorporation等多家公司都相应 开发出了适于GPS数据处理的MATLAB 工具箱 MATLAB 是一个集数值计算 图形管理 程序开发于一体的功能十分强大的系统 将 MATLAB 应用于测量数据的处理是一件非常有意义的工作 Mo2hamed 等曾成功地 在 MATLAB 系统中利用白滤波技术研究动态解算 GPS 载波相位信号的模糊度问题 因 为测量数据的处理特别是测量平差主要应用矩阵运算 而 MATLAB 又特别易于做矩阵 运算 因此 研究开发基于 MATLAB 的测量平差方法具有极好的应用价值 2 MATLAB 在测量平差中的应用 测量平差数据处理主要是基于矩阵的运算 常用的矩阵运算主要是矩阵的生成 转置 求逆和矩阵求广义逆等 在MATLAB环境中 不需要对创建的变量对象给出类型 说明和维数 所有的变量都作为MATLAB中的M文件的语法与其他的高级语言类似 是一 种程序化的编程语言 同时也是一种解释性的编程语言 即逐行解释运行程序 使程序 容易调试 计算更为简捷 而且对于平差原理理解和掌握变得更容易 另外 MATLAB语 言与数学语言比较接近 更容易掌握和理解 2 1测量平差原理的概述 测量平差的函数模型有条件方程和观测方程 以条件方程为函数的模型的最小 二乘平差称为条件平差 在条件方程中 根据需要如果还设有一定数量的未知数 则称为附有参数的条件平差 以观测方程为函数模型的最小二乘平差称为间接平差 如果观测方程中的某些参数不独立 则这些不独立参数必然存在一些条件 称这种 平差模型为附有条件的间接平差 本文的两个程序都采用间接平差模型 对于一个实际平差问题 根据所选参数的个数 选什么量为参数以及参数之间是 否函数独立 经过仔细推敲可以发现附有条件的间接平差模型本身就是各种经典平差 模型的概括模型 其余的经典平差模型 如条件平差模型 间接平差模型 附有未知 数的条件平差模型和附有限制条件的条件平差模型都是它的特例 间接平差的公式汇集 间接平差模型为 A min T VBXl V PV 2 1 系数矩阵 B 满秩 即 rank B t 法方程及解为 2 1 0 TT bbebbe NxfNB PB fB Pl 2 2 1 bbe xNf 3 参数的平差值 2 A 0 XXx 4 观测量的平差值 2 LLV 5 单位权中误差 2 0 T V PV nt 6 平差参数的协方差阵 2 A A 21 0bb X X DN 7 平差函数的协方差阵 2 21 0 T bb QF NF 8 2 2 平差程序总体方案 MATLAB 号称为全球工程师的共同语言 其语法和 C 语言相似 但它有强大的数 值计算和绘图功能 这使之在工程应用方面的计算更出色 本文就基于这种程序设 计语言环境设计一个控制网平差程序 该程序包含了一个高程控制网平差程序和测 边网平差程序 本程序适用于各种等级的高程网和测边网 程序在设计过程中 始终考虑数据 的储存量 因而本程序不储存误差方程的系数和常数项 对待定点数较多的平差网 组成法方程的系数矩阵是个稀疏矩阵 如待定点的编号恰当 法方程的系数会集中 在主元系数的两侧形成带状 为减少法方程系数的储存量 只要按行储存下三角阵 或按列储存上三角阵中第一个非零系数起的系数 就是通常叫做维变带宽储存方法 3 水准网平差程序 3 1 程序的功能 本程序适用于二 三 四等水准网平差计算 平差的水准网可以是独立的 也 可以是附合网 其主要功能是完成水准网的平差计算和精度评定计算 平差计算采 用间接平差法 以归心的观测值为高差 以未知点高程为未知参数 精度评定计算 包括计算单位权中误差和每个待定点的高程中误差 3 2 水准模型网的间接平差 3 2 1 权 值的确定 当在相同的条件下进行水准测量时 其精度是相同的 因而观测结果的可靠性也 是同样的 但如果在不同的条件下进行水准测量时 高程的精度就有所不同 此时称 为不等精度观测 所求出的未知量的值 高程的最或是值并对其精度进行评定时 就 需要 权 了 由于观测的不等精度 因而观测值的可靠程度不同 求未知量的最或是值时 这样 的一个因素就必须考虑了 这个因素是 可靠性大的某观测值 其精度高 对测量的最 后结果的影响也就越大 此时用 权 值来表示观测值的可靠程度 那么 权 值 愈大 观测值的可靠程度就愈高 另外 在观测过程中 观测值的中误差愈小 观测结 果愈可靠 它的 权 值就愈大 因而 根据中误差来确定 权 值是非常适当的 设以Pi 表示观测值Li 的 权 m 为中误差 则 权 值的定义为 3 1 式中 A 为任意的正常数 在一组观测值中为一个定数 在实际测量中 通常是观测值的中误差事先并不知道 因而必须先确定观测值的 权 然后才能求出未知量的最或是值 此时可以利用距离 S 或测站数 N 来确定观测值 高程的 权 根据偶然误差传播定律 各观测点高程Hi的中误差mi由测站数Ni确定时 则有 3 2 ii mm N 式中 m 为一组观测值的中误差 为一个定数 由 3 2 1 3 2 2 两式可得 3 3 同样可得出 3 4 式中 C为定数 为测距 i s 由 3 3 3 4 两式可以得出这样一个结论 当测站观测高差等精度时 观测总高 差的 权 与测站数或距离成反比 3 2 2 水准路线的平差计算 1 附合路线的平差计算 假定在图1 示的A B 两水准点之间布设一条水准路线 A B 两水准点的高程 为已知 分别设为 C为中间水准点 假定观测了所有的点的高 A H B H 1 n 2 n 程 现拟求C点的高程的最或是值 C H 可由水准路线A C B C分别观测的高差 计算得出 由此而 C H AC h BC h 得到的观测高程分别设为Hc1 Hc2 其值为 Hc1 Hc2 A H AC h B H BC h 当Hc1 Hc2在不等精度条件下观测得出时 它们的 权 也不同 分别设为 Pc1 Pc2 这样C点的高程的最或是值为 C H 3 5 1122 12 cccc c cc P HP H H PP 根据A 点的高程 A C水准路线观测的高差 以及B C水准路线观测 A H AC h 的高差 可推算出B点的观测高程为 BC h B H B H A H AC h BC h 水准路线A B 的高程闭合差为 3 6 h f B H B H 12cc HH 由 3 6 式得到 2c H 1c H h f 由 3 3 式得到 分别表示水准路线 1c AC C P N 2c BC C P N AC N BC N A C B C 的测站数 水准路线A B的测站数 ABACBC NNN 将上述表达式代入 3 2 5 式中 得到 3 7 如果以水准路线A C的距离 B C的距离 A B的距离 BC S BC S AB S 来确定高程观测值的 权 值时 同样可以得到 ABACBC SSS 3 8 图3 1 水准路线图 2 闭合路线的平差计算 闭合路线的平差计算原理与附合路线相同 因而 3 7 3 8 两式的结论适用于 闭合路线的平差计算 3 具有一个结点的水准网的平差计算 如图2所示为具有一个结点的水准网 B C D 为已知高程水准点 B A C A D A 为水准路线 则接点A的高程最或是值为 3 9 1122331 123 1 n AiAi AAAAAAi An AAA Ai i P H P HP HP H H PPP P 式中分别为水准路线B A C A D A 计算A的观测高程 各高 123 AAA HHH 程相应的 权 值为 123 AAA PPP 设的算术平均值为 各高程观测值与的差值分别为 123 AAA HHH 0 A H 0 B H A1 A2 A3 则有 3 10 将 3 10 式代入 3 9 式得到 3 11 当以测站数和距离来确定 权 值时 3 11 分别可以转化为 3 12 3 13 上述结论也可应用于小三角水准网平差计算 3 2 3 精度评定 单位权中误差 3 0 T V PV nt 12 平差参数的协方差阵 3 A A 21 0bb X X DN 13 平差函数的协方差阵 3 21 0 T bb QF NF 14 3 3 水准网间接平差程序信息设计 1 数据文件的组织 下面给出一个水准网输入数据文件的例子 3 3 6 已知点个数 未知点个数 观测值个数 101 102 103 104 105 106 点号 34 788 35 259 37 825 已知点高程 104 101 1 625 4 5 起点点号 终点点号 高差观测值 距离观测值 101 102 0 418 3 1 105 102 0 714 3 4 102 103 1 243 3 8 106 103 0 577 4 3 103 101 0 786 2 5 其中编号数组未知点在前 已知点在后 2 水准网平差变量约定 表 3 1 变量约定表 变量名说明 ed 已知点个数 dd 未知点个数 sd 总点数 gd 观测值个数 pn 点号 h0 已知点高程 be 起点点号 en 终点点号 h1 高差观测值 s 距离观测值 3 4水准网程序与使用说明 3 4 1 水准网程序流程图 图 3 2 水准网流程图 程序的全部代码见附录一 3 4 2水准网程序的使用 本程序使用 MATLAB 的矩阵功能计算法方程 在运行程序前首先要有其始数据 其始数据是一文件的形式保存在磁盘中 文件的格式在上文已经说明过 编好文件 后 以后缀名为 TXT 的形式保存 执行时在 MATLAB 命令窗口直接键入文件名即 可 3 5 案例 如下图水准网 104 105 106 为已知点 101 102 103 为待定点 已知点的 高程分别为 34 788 35 259 37 825 观测高差和观测路线长度分别为 h1 1 652 h2 0 418 h3 0 714 h4 1 243 h5 0 577 h6 0 786 s1 4 5 s2 3 1 s3 3 4 s4 3 8 s5 4 3 s6 2 5 图3 3 水准网图 首先编数据文件 命名为data1 txt 数据的格式如下 3 3 6 101 102 103 104 105 106 34 788 35 259 37 825 104 101 1 652 4 5 101 102 0 418 3 1 105 102 0 714 3 4 102 103 1 243 3 8 106 103 0 577 4 3 103 101 0 786 2 5 进入MATLAB界面 在命令窗口直接输入level3运行程序 弹出如下窗口 图3 4 数据读入文件 选择data1 txt即可运行出如下结果 图3 5 计算结果 在图 3 5 中 分别输出了高程的平差值及精度 结果是一文本的形式保存 用 户可对它进行编辑 4 测边网平差程序设计 4 1 数学模型 4 1 1 误差方程和法方程的组成 控制网中的观测值为边长 误差方程非零项最多为 4 个 所以误差方程系数矩 阵采用压缩格式进行储存 可采用以下的方法 A m n A m 9 其中 m 为观测值个数 n 为未知点个数的两倍 改进后的 A 阵格式为 编号 1 系数 1 编号 2 系数 2 编号 4 系数 4 常数项 i A 共 9 列 即只存储误差方程的 4 个非零参数系数 法方程系数阵为对称阵 在存储时 只需要存其上三角部分就可以了 其占 A N 用的空间为 1 2 n n sum 现有 A 阵 A 编号 1 系数 1 编号 2 系数 2 编号 4 系数 4 常数项 其中偶数项为系数 加上最后的 A9 为常数项 在组成法方程时 从 A2 开始分别与 剩下的偶数项以及常数项相乘 然后再用 A4 与剩余的项相乘 一直到 A8 为止 这 样就完成了的过程 需要注意的是 若 A1 A3 A5 A7 小于零 则表 T A NA PA 示该点已知点 不参与法方程的组成 4 1 2 边长观测的权 边长观测的精度一般与其长度有关 定权公式为 2 0 2 1 2 i i s s pin 式中为所测边长的方差 为任意选定的单位权方差 2 i s i s 2 0 为了定权必须已知测边的先验方差 但精确的已知是十分困难的 一般 i s p 2 i s 采用厂方给定的测距仪精度 即 i si abS 式中 a 为固定误差 单位 mm b 为比例误差 单位 ppm 为边长 单 i S 位 km 4 1 3 解算法方程 由于法方程是对称正定阵 因此 可采用改进的平方根法进行解算 平方根法是对称正定矩阵非常有效的三角分解方法 设 A 为 n 阶方阵 如果其 所有顺序主子式均不为零 则其存在唯一的分解式 A LDR 其中 L D R 2 1 1 1 1 nn n l ll 1 0 0 n d d 121 1 1 1 n nn rr r 由于此住 A 对称性 得 又根据 A 阵正定的性质 可证明 D 均为正数 T LR 现在设 D 1 n d d 1 1 d d d 1 1 d dd A 即 11 22 DD D 则 AA 1111 2222 T TTT ALDLLD D LLDD LLL 为方便 记为 T ALL 称为 Cholesky 分解 即正定对称矩阵的平方根分解法 解等阶于求解两个三AXb 角方程组 和LYb T L XY 在用平方根分解法计算时 需要进行 n 次开方运算 为了避免开方 可以直接 采用对称正定的分解式对平方根法进行改进 从而解方程组可以按 T ALDL AXb 如下步骤进行 把 A 分解成 则变成 即等价于 T ALDL AXb T LDLXb 1T LYb L XD Y 由此可以解出 X 和 Y 这称为改进的平方根法 在计算中避免了开方运算 平方根法和改进的平方根法的计算量和存储量比消去法节约近一半 而且不需 要选主元 能得到比较精确的数值解 法方程用改进平方根法解算的过程如下 1 分解 1T CS D S 其中 11111 n mnmn SSS SD SS 11111112 11 1 1 1 111 1 1 1 nn nnnmn nn n nn ccSSs s ccS ss ss 11 12 112 1 2222 1111 13 123 213 123 2 3333 11221122 2 3 jj jj jjjj jjjj jjjj sc s ss s csscj ss s ss ss ss s csscj ssss 纯量计算公式为 1 1 1 1 1 2 ij i jkikj ij k kk ci ss s cij s 2 求逆 1 RS 111n nn rr R r 由 RS I 得 1112111121 222222 100 010 001 nn nn nnnn rrrsss rrss rs 纯量计算公式 11 12 12 22 11 131223 13 33 11 11 1 1 1 22 12 23 33 222423 34 24 44 2222 1 1 2 1 ii ii nnnn n nn nnnn n nn r s r s r s r sr s r s r srs r s r s r s r sr s r s r srs r s 通式为 1 1 1 ii ii j ikkj k ij ij r s r s rji s 3 求积 1111 TTT QS D SS D SRDR 1111111 1 n T nnnnnnn rrsr QRDR rsrr 11 1112 121111 222222 1 nn nnnnnn nnnnnnn nn s rs rs rr rrs rs r rrrs r 4 1 4 精度评定 1 坐标改正数以及单位权中误差的计算 0 m 使用上三角一维数组形式存储坐标改正数的公式为 1 11 1 in ijijijj jj xq wq win 其中 n 2 dd 的单位是 cm ix 平差值 A 0 XXx 写成分量的形式 为 0 iii XXx 如果近似坐标的误差较大 或网形较大 平差的结果不会精确 这时 就需要进行 迭 代平差 直到两次平差间互差在允许值内 由测量平差理论 A T V PV nt 同样可得到单位权中误差 0 PVV m mn 其中 m n 观测个数减去未知点个数 123 2 mmmm nddST ST PVVpllx A 方向观测的测站数 2 点位误差椭圆 误差椭圆表示了网中点或点与点之间的误差分布情况如图 在测量工作中 常 用的误差椭圆对布网方案作精度分析 绘制误差椭圆只需要三个数据 椭圆长半轴 a 短半轴 b 和主轴方向 其求法为 2222222 22 2222222 1 4 2 2 tan2 1 4 2 xyxyxy xy xy xyxyxy a b 图 4 1 误差椭圆的表达 顾及方差与权倒数的关系 得 2 222 0 2 222 0 4 2 2 tan2 4 2 xxyyxxyyxy xy xxyy xxyyxxyyxy aQQQQQ Q QQ bQQQQQ 根据上述的理论 我们实际要求的是 只要得到了这些元素 xi m yi m xiyi m 就能依照上面的公式来求得椭圆的元素了 4 2测边网平差信息设计 外业测量的数据首先应进行预处理 包括测站平差 归心计算 观测值归化到 椭球面的改正 椭球面归化到高斯平面的改正等 然后将预处理后的数据输入到以 后缀名为 TXT 的文本文件中 该数据文件的组织格式如下所列 表 4 1 数据组织格式 次序内容 1已知点个数 ed 未知点个数 dd 控制参数 2点号 pn 先输入已知点编号 各点输入顺序无要求 3已知点坐标 x0 y0 x1 y1 x2 y2 4测量边的个数 m1 5 边长的固定误差 ms 边长的比例误差 pp 单位分别是 cm 和 0 000001 6边长的起始点号 e 终点点号 d 边长 sid 每一条边一行 依次列出 7推算近似坐标的路线经过的边数 8推算近似坐标的起算已知点坐标 按顺时针 9推算近似坐标的路线经过的边的边号 4 2 1 主要的技术要求 表 4 2 测边网的技术要求 等级平均边长 km 测距中误差 mm 测距相对中误差 二等9 30 1 30 万 三等5 301 16 万 四等2 16 1 12 万 一级小三角1 161 6 万 二级小三角0 5 16 1 3 万 4 3 利用 MATLAB 的绘图语句绘制网图 1 网形的绘制 由于网形图与误差椭圆绘制在同一个图形上 因此必须对误差椭圆进行放大 在本文的程序中 使用了 inputdlg 对话框输入语句 其中 确省的放大倍数为 100 在程序中 使用了 ed dd pn m1 x y e d sid ai bi fi 等变量 其意义与前面的变量相同 对绘制的网图有效放大和缩小功能 即点击鼠标左键放大图形 点击右键缩小图形 利用 MATLAB 菜单本身的功能 可以将该图形输出为各种图形文件格式 2 误差椭圆的绘制 无论多么复杂的图形 其基本单元还是点和线 换句话说 只需要利用基本元 素的点或线 通过各种组合 也能画出复杂的图形 MATLAB 中没有提供直接绘制 椭圆的命令 因此可以直接利用连线来画椭圆 测量中描述误差椭圆用长半轴 A 短半轴 B 和方位角 FI 三个量 在如图 4 1 的 x Oy 中直角坐标系中 椭圆的标准方程为 4 22 1 xy AB 1 如果以角度 i 为变量 则椭圆的标准参数方程为 4 cosi sini x y A 2 设在测量坐标系 xOy 中椭圆长半轴的方位角为 则有 0 4 00 00 cossin sincos xx yy 3 用参数方程代入 得到 4 00 00 coscossinsin sincoscossin xAiBi yAiBi 4 测量坐标系与 MATLAB 或 AUTOCAD 绘制的数学坐标系的 x y 坐标轴不同 绘图时 需要调换 x y 坐标 在上式中 i 取不同的值 就有一组 x y 只需要将这些点连接起来 就可以绘 出一个椭圆 图 4 2 误差椭圆的参数方程 4 44 4 测边网程序和使用说明测边网程序和使用说明 使用本程序的全部数据都按规定的格式编辑成数据文件储存在磁盘上 数据文 件的编辑取决于平差网型和观测值的编号 为此 先绘制平差网的略图 在图上标 明各项数据的信息 以下就测边网的点号 边编号 输入数据 输出成果 运行程 序等问题作简明说明 1 点号和观测边的编号 已知点和待定点的编号为 pn 取三为数 已知点在前 未知点在后 其顺序 无要求 但为了减小法方程系数的带宽 应使相临的待定点编号的差数尽可能小 平差网的编号见图 4 3 2 推算近似坐标的路线 近似坐标的路线是用户在测边网略图上指定出来的 如图 4 3 的箭头 就是表 示推算路线 路线的两个起算点必须为已知点 从两个已知推算出的第一个未知点 开始 选择观测边 由观测边和已求得的近似坐标或已知坐标推算出观测边所对的 未知点 本程序是按推算的三个点 A B P 顺序为顺时针 图 4 3 测边网略图 2 数据的输入 1 简单变量 为了在程序运行中数据的传递 定义了一些全局变量 参见 4 1 表 2 数据文件 外业测量的数据首先应进行预处理 包括测站平差 归心计算 观测值归化到 椭球面的改正 椭球面归化到高斯平面的改正等 然后将预处理后的数据输入到以 后缀名为 TXT 的文本文件中 该数据文件的组织格式如表 4 1 3 输出成果 本程序的计算成果是以文件的形式输出到文本文件中 用户可以在文本中查看 和编辑 4 5 程序代码说明 程序的总体框架 图 4 4 测边网总体流程图 1 数据读入块 本模块的功能是打开一个 txt 的数据文件 同时生成一个 out txt 的文本文件 记录用户数据和输出成果用 程序调用 fscanf 函数把文件中的数据赋值给相应的变 量 这些变量是后面计算的数据依据 2 近似坐标的计算 测边网的观测数据是边长 所以在近似坐标的计算时只能用测边交会计算 以 及 A B 两点坐标及 A B 到 P 点的距离 b a c 为 A B 两点的距离 A B P 三点按顺时针排列 则 P 点的坐标计算公式如下 222 22 2 cossin sincos PAABAB PAABAB bca efbe c XXef YXef 计算近似坐标的流程图入图 4 5 图 4 5 计算近似坐标流程图 3 误差方程和法方程的形成 程序中 用数组 a 来存储误差方程的编号和系数 a i 9 存储常数项 w 和 c 分 别存储法方程系数和法方程常数 4 解算法方程 函数流程图如图 4 6 函数的代码见附录三 5 精度评定 本模块包括坐标改正数 单位权中误差和误差椭圆的计算 程序中定义了 dxy 坐标改正数 pvv 即存储 uw0 单位权中误差 等 PVVpllx A 同时计算出误差椭圆的三个参数长半轴 ai 短半轴 bi 和主轴方向 fi 图 4 6 平方根法求逆程序框架图 6 控制网的绘制 程序中调用 inputdlg 函数来打开一个对话框来输入误差椭圆的参数 用 text 函 数来对点号标注 用 ploth 函数及控制参数绘制线和误差椭圆 程序的完全代码见附录二 4 6 程序的使用算例 有测边网如图 4 3 所示 网中 A B C C 点已知 其余为未知点 现用某测距 仪观测了 13 条边长 测距精度 起算数据和观测数据如下 6 31 10 s mmS 表 4 3 已知点坐标 点名XY点名XY A 53743 13661003 826C40049 22953782 79 B 47943 00266225 854D36924 72861027 086 表 4 4 观测值 编号边观测值编号边观测值编号边观测值 15760 70668720 162115487 073 25187 34275598 57128884 587 37838 8887494 881137228 367 45483 15897493 323 55731 788105438 382 1 编辑数据文本文件如下图 图 4 7 数据文件 2 在 MATLAB 命令窗口键入 nnbb 执行程序 运行中会弹出一个对话匡提示用户 输入误差椭圆的放大比例 默认为 100 本例选择 500 如下图 图图 4 8a4 8a 对话框对话框 图图 4 8b4 8b 对话框对话框 3 计算出的结果如下 在图 4 9a 中 第 1 2 行分别是已知点和未知的个数 第 4 行是点的编号 第 5 至第 8 行是已知点的坐标 第 10 行是观测值的个数 第 12 行是测距的固定误差 和比例误差 13 至 25 行是观测边的起点号 终点号和观测边长 27 至 39 行 接到 图 4 9b 是点号转换为计算机顺序后的观测边起点号 终点号和观测边长 接图 4 9a 在图 4 9b 中 第 42 至 49 行是推算的近似坐标 第 52 至 64 行是 计算的误差方程系数和常数 在图 4 9 中 第 67 至 70 行是法方程的系数 上三角一维存储 第 73 至 76 行是求逆后的法方程系数 第 79 至 86 是坐标改正数和坐标平差值 第 89 至 92 行 是误差椭圆的参数 第 95 行是单位权中误差 图 4 9a 计算结果 图 4 9b 计算结果 图 4 9c 计算结果 4 输出的控制网图和误差椭圆图如下 图 4 10 控制网图 结论 由本论文的两个程序例子解算过程不难发现 程序的平原理和其它高级语言编 写的程序大致相同的 但MATLAB 语言本身就有独特的数值计算功能和图形绘制功 能 这使它不用编写专门的函数而直接处理和计算测量的数据 这就大大缩短了编 程的时间 MATLAB 软件将人们从乏味的 Fortran C 编程中解放出来 使他们真正的把精力 放在科学研究的核心问题上 但用 MATLAB 语言编程本身也有它的不足之处 1 由于 MATLAB 是一个解释器 会逐行对程序代码进行解释后执行 当要处理的 数据量很大时 计算机的运行速度明显变慢了好多 2 用 MATLAB 进行界面开发时没有像其他面向对象语言方便 针对上面的问题 提出一些见解 1 为了提高整体程序的执行效率 应尽量多使用向量化的运算 而避免或少用 for 循环 while 循环 事实上 如果程序是纯粹的数值运算 而没有使用 for 循环 或 while 循环 那么其执行速度将会接近于纯粹用 C 语言来写的程序代码 2 虽然 MATLAB 是一个完整的科学计算与可视化环境 但在多数情况下 如 MATLAB 编程的代码执行效率不佳 你希望隐藏你的程序代码以保护产权 或您想要 进行任何只有在某些高级语言程序才能做到的事 这时就需要用 MATLAB 所提供的应 用程序接口 致 谢 本论文是在导师吴良才教授的热忱关怀和细心指导下完成的 从论文选题到最后的成文 无不凝结着导师的心血 导师开拓创新的精神 严谨踏实的治学态度以及宽厚的为人都使我深 受熏陶 并将使我终身受益 在此谨向导师致以衷心的感谢和诚挚的敬意 此外 也感谢测绘 专业的全体老师 正因为有了他们的虚心教导 使我的知识得到一点一滴的积累 才从容的完 成今天的毕业设计 参考文献 1 崔明理 控制测量手册 山西 山西科学技术出版社 1999 1 2 吴俊昶 控制网测量平差 2 版 北京 北京测绘出版社 1998 1 3 谭 辉 测量程序与新型全站仪的应用 北京 机械工业出版社 2006 4 孔祥元 梅是义 控制测量学下册 2 版 武汉 武汉大学出版社 2002 2 5 武汉大学测绘学院测量平差学科组 误差理论与测量平差基础 武汉 武汉大学出版社 2003 1 6 张智星 MATLAB 程序设计与应用 北京 清华大学出版社 2002 4 7 郭九训 控制网平差程序设计 北京 原子能出版社 2004 8 8 姚连壁 周小平 基于 MATLAB 的控制网平差程序设计 上海 同济大学出版社 2006 6 9 清源计算机工作室 MATLAB 基础及其应用 M 北京 机械工业出版社 2000 10 程卫国 冯 峰 姚 东 徐 昕 等 MATLAB 5 3 应用指南 M 北京 人民邮电出版社 1999 11 CHAI Yan2jun et al Quasi2accurate Detection Methodsof Gross Errors with MATLAB Language J Journal of Shandong University of Science and Technology NatureScience 2000 3 12 NIE Gui2gen Application of MATLAB to Surveying Da2ta Processing J Bulletin of Surveying and Mapping 2001 2 附录一 水准网平差程序代码 function level3 ed dd sd gd pn h0 k1 k2 h1 s readlevelnetdata global pathname net name s datafile a1 datafile global ed dd sd pn gd h0 k1 k2 h1 s dh dh h V L uw0 uwh uw1 calculatelevelnet ed dd sd pn gd h0 k1 k2 h1 s writelevelnetdata pn k1 k2 h1 V L h0 dh h uwh uw0 输出水准网计算结果 return function dh h V L uw0 uwh uw1 calculatelevelnet ed dd sd pn h0 be en hd distance 水准平差网 A sparse zeros sd gd 求解系数阵 b 0 gd 1 sd A be b 1 A en b 1 A A A A 1 dd l zeros gd 1 求解常数项 l h0 be h0 en hd p diag 1 distance 权阵 dh inv A p A A p 1 高程改正数 h00 h0 dd 1 sd h0 h0 1 dd 待定点高程近似值 h h0 dh 待定点高程平差值 V A dh 1 高差观测值改正数 L hd V 高差观测值平差值 精度评定 uw0 sqrt V p V gd dd 单位权中误差 Qxx inv A p A uwh uw0 sqrt diag Qxx 待定点高程平差值中误差 uwh dd 1 ed dd 0 0 Qff A Qxx A uwh uw0 sqrt diag Qff 高差平差值中误差 h h h00 所有点高程 h0 h0 h00 dh dh zeros ed 1 return function ed dd sd gd pn h0 k1 k2 h1 s readlevelnetdata global pathname net name s datafile b datafile global ed dd sd pn gd h0 k1 k2 h1 s k11 k12 k1 k2 h s if isempty pathname isempty net name filename pathname uigetfile txt Input filename i find filename net name filename 1 i 1 end fid1 fopen strcat pathname net name s datafile rt if fid1 1 msgbox Input File or Path is not correct Warning warn return end open afile to read open afile to read ed fscanf fid1 f 1 已知点个数 dd fscanf fid1 f 1 未知点个数 sd ed dd 总点数 gd fscanf fid1 f 1 观测点个数 pn fscanf fid1 f sd 点号 known data h0 fscanf fid1 f ed 已知点高程 h0 dd 1 ed dd h0 1 ed heightdiff fscanf fid1 f 4 gd heightdiff heightdiff k1 heightdiff 1 起点 k2 heightdiff 2 终点 k11 heightdiff 1 起点 k12 heightdiff 2 终点 h1 heightdiff 3 高差 s heightdiff 4 距离 fclose all 点号转换 k1 k01 chkdat sd pn k1 k2 k02 chkdat sd pn k2 h0 1 dd 20000 ie 0 while 1 计算近似高程 for k 1 gd i k1 k j k2 k if h0 i le4 h0 j h0 i h1 k ie ie 1 end if h0 i le4 a fscanf fit1 f 2 ms a 1 pp a 2 fprintf fit2 6 2f 6 2f n ms pp a fscanf fit1 d d f 3 m1 for i 1 m1 e i a 3 i 2 d i a 3 i 1 sid i a 3 i fprintf fit2 5d 5d 15 3f n e i d i sid i end e i1 chkdat sd pn e d i2 chkdat sd pn d i3 0 for i 1 m1 if e i d i i3 1 fprintf fit2 5d 5d 5d n i e i d i end fprintf fit2 5d 5d 15 3f n e i d i sid i end isid i1 i2 i3 end idir 0 kk isid if kk 0 msgbox Error by function rddat1 Warning warn return end 近似坐标计算 xyknow 1 ed pn1 1 ed xyunknow 1 dd pn1 ed 1 sd aa fscanf fit1 d 2 A aa 1 B aa 2 mn fscanf fit1 d 1 bb fscanf fit1 d mn m bb for i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人美 版(北京)三年级美术下册《15.神话故事》教学设计
- 卵巢浆液性癌术后护理
- 9 生活离不开他们 (教案) 部编版道德与法治四年级下册
- 阀盖课程设计答辩
- 2024年秋新人教版九年级上册化学教学课件 第一单元 课题2 化学实验与科学探究(第四课时)
- 破拆技术消防课件
- 全国青岛版信息技术八年级上册专题二第1课四、《教育机器人》教学设计
- 2024年秋新人教版九年级上册化学教学课件 6.1.1 常见的碳单质
- 7《听听秋的声音》教学设计2024-2025学年统编版语文三年级上册001
- 4.1权利保障 于法有据 课件高中政治统编版选择性必修二法律与生活
- 实验室气体泄漏应急预案
- 小孩进入厂区安全免责协议书(2篇)
- 动火作业安全指导手册
- 延安精神概论智慧树知到答案2024年延安大学
- JT∕T 779-2010 港口设施保安评估导则
- (高清版)AQ 1043-2007 矿用产品安全标志标识
- 高考数学复习-经典选择题150道+几何习题+数学复习练习测试题(有答案)
- 高考英语高频单词完美版1000词左右
- 藏文基础-教你轻轻松松学藏语智慧树知到期末考试答案章节答案2024年西藏大学
- 公路工程施工现场环境保护措施方案
- 湖北省武汉市江夏区2023-2024学年七年级下学期月3月月考数学试卷(含答案)
评论
0/150
提交评论