Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 106

石家庄铁道大学毕业设计

双像解析摄影测量常用算法程序设计

Program design of Double Image


analytical photogrammery algorithm

2019 届 土木工程 学院

专 业 测绘工程

学 号 20160743

学生姓名 常啸帆

指导教师 郭 峰

完成日期 2019 年 月日
毕业设计成绩单
学生姓名 常啸帆 学号 20160743 班级 土 1603-3 专业 测绘工程

毕业设计题目 双像解析摄影测量常用算法程序设计

指导教师姓名 郭 峰

指导教师职称 讲 师

评 定 成 绩

指导教师 得分

答辩小组
组长 得分

成绩:

院长(主任) 签字:

年 月 日

毕业论文任务书
题 目 双像解析摄影测量常用算法程序设计
学生姓名 常啸帆 学 号 20160743 班 级 土 1603-3 班 专业 测绘工程
承担指导任务单位 测绘工程系 导师姓名 郭 峰 导师 讲 师
职称

1、研究内容。

(1)理论推导双向解析摄影三种常用算法的解析过程;
(2)编制双向解析摄影三种常用算法程序框架图;
(3)编制双向解析摄影三种常用算法程序计算模块;
(4)根据相关数据,验证程序的设计目的及效果;
(5)对双向解析摄影常用算法计算程序的计算结果进行精度对比。

2、基本要求。

(1)理解并掌握双向解析摄影三种常用算法原理及解析过程;
(2)体会双向解析摄影三种常用算法的异同,理解各参数的含义;
(3)熟悉双向解析摄影三种常用算法的计算流程,编制的程序并通过实际验证。

3、主要技术指标或研究方法。

主要技术指标:编制计算程序所计算的数据精度等指标应符合国家相关技术规范的
规定;
研究方法:理论推导-程序编制-程序验证-精度评定-精度对比。

4、应遵守的法规及主要参考文献。

(1)1:500 1:1000 1:2000 比例尺地形图航空摄影规范 GB 6962--86


(2)1:500 1:1000 1:2000 地形图航空摄影测量内业规范 GB 7930--87
(3)1:500 1:1000 1:2000 地形图航空摄影测量外业规范 GB 7931--87
(4)1:25000 1:50000 1:100000 地形图航空摄影测量内业规范 GB 12340--90
(5)1:25000 1:50000 1:100000 地形图航空摄影测量外业规范 GB 12341--90
(6)1:5000 1:10000 地形图航空摄影测量外业规范 GB/T 13977--92
(7)1:5000 1:10000 地形图航空摄影测量内业规范 GB/T 13990—92
(8)1:5000 1:10000 地形图航空摄影测量内业规范 GB/T 13990—92
(9)摄影测量数字测图记录格式 GB/T 17158--1997

5、进度安排。

第 1 周~第 2 周:深入学习空间后方-前方交会的基本理论,完成数学公式推导,
编制程序流程图;
第 3 周~第 4 周:深入学习绝对定向-相对定向的基本理论,完成数学公式推导,
编制程序流程图;
第 5 周~第 6 周:深入学习一次定向法(光束法)的基本理论,完成数学公式推
导,
编制程序流程图
第 7 周~第 10 周:根据程序设计流程图,运用计算机语言,分模块实现程序编
制,
根据提供的相关数据,对程序进行验证,发现不足,持续改进,最终实现程序的设计目
的和效果;
第 11 周~第 12 周 完成毕业设计论文的整理,准备答辩。

年 月 日
毕业论文开题报告
题 目 双像解析摄影测量常用算法程序设计
学生姓名 常啸帆 学号 20160743 班 级 土 1603-3 班 专业 测绘工程
1、研究背景

测绘是关系国计民生的基础性工程,当今的测量倾向于更快速,更方便,更准确,
随着摄影测量行业的发展,一些大型工程的进行越来越离不开遥感化,同样的一项工作
内容用摄影测量的方式完成相对来说简便很多,且满足设计的精度要求,而摄影测量的
数据处理难免会复杂一些,对于摄测图片的后期处理是整个摄影测量的重点,因此我选
择了这项很重要的后期处理任务:双向解析摄影测量常用算法程序设计及精度对比作为
毕业设计的题目,从而对摄影测量进行深度学习。

2、设计内容

该论文主要研究内容为对双像解析摄影测量三种常用算法程序的解析过程进行理论
推导,并再该论文中绘制出双像解析摄影测量三种常用算法程序的流程框图;利用 C#
语言编写双像解析摄影测量三种常用算法程序的代码,设置限差,对双像解析摄影测量
常用算法程序的计算结果进行精度评定,并将三种精度进行对比。

3、设计方案及预期达到的目的

该设计要求能达到对双像解析摄影测量三种常用算法程序设计的原理与解析过程较
为详细的表达出来,并进行精度的对比,以确定何时何地适宜用何种方式来对摄测相片
进行处理。

4、进度计划

第 1 周~第 2 周 深入学习空间后方-前方交会的基本理论,完成数学公式推导,
编制程序流程图;
第 3 周~第 4 周 深入学习绝对定向-相对定向的基本理论,完成数学公式推导,
编制程序流程图;
第 5 周~第 6 周 深入学习一次定向法(光束法)的基本理论,完成数学公式推
导,
编制程序流程图;
第 7 周~第 10 周 根据程序设计流程图,运用计算机语言,分模块实现程序编
制,
根据提供的相关数据,对程序进行验证,发现不足,持续改进,最终实现程序的设计目
的和效果;
第 11 周~第 12 周 完成毕业设计论文的整理,准备答辩。
年 月 日
摘 要

本文对双向解析摄影测量三种常用算法进行了介绍,并用 C#语言编写程序,
并将所用到的公式进行列举,实现了三种常用算法解析地面点坐标的目的,并
进行了精度的对比,并对重要代码进行了解释说明,最终结语部分对设计过程
及遇到的问题进行了总结。
空间后方交会-前方交会算法:这种算法的特点是,先用前者求解待求的两
像片的外方位元素,这个过程至少需要提供至少三个地面控制点坐标。拥有了
外方位元素以后,便可以用后者来计算未知点的地面坐标。
相对定向-绝对定向算法:利用相对定向,在拍摄的瞬间,建立起两张像片
间的空间几何相对关系,同时便可建立了一个几何模型,它与地面关系为相似,
然后再利用控制点,做绝对定向这一步,接下来平移、旋转、缩放上述的几何
立体模型立体模型,最终可求解出待求点的三维坐标。
一步定向法(光束法):按照光线条件方程式,将待求点和控制点的地面
坐标列成误差方程,用最小二乘法解算地面点坐标。
在程序设计中存在对 C#语言的掌握程度不够,算法理解不透彻,希望能在
以后的学习中不断改进。

关键词:双像解析摄影测量、空间后方交会、前方交会、相对定向、绝对定向、
一步定向(光束法)
Abstract

This article introduces three commonly used algorithms for bidirectional analytic
al photogrammetry, writes programs in C # language, and lists the formulas used to ac
hieve the purpose of the three commonly used algorithms for parsing ground point co
ordinates, and compares the accuracy, and The important code is explained, and the fi
nal conclusion summarizes the design process and the problems encountered.
Spatial rearward intersection-forward intersection algorithm: The characteristic o
f this algorithm is that the former is used to solve the external orientation elements of t
he two photos to be sought. This process needs to provide at least three ground contro
l point coordinates. Once you have the external orientation element, you can use the la
tter to calculate the ground coordinates of unknown points.
Relative orientation-absolute orientation algorithm: using relative orientation, at t
he moment of shooting, the spatial geometric relative relationship between the two ph
otos is established, and at the same time, a geometric model can be established, which 
is similar to the ground, and then use the control point In this step of absolute orientati
on, the three-dimensional model of the geometric solid model described above is trans
lated, rotated, and scaled, and finally the three-dimensional coordinates of the point to 
be solved can be solved.
One-step orientation method (beam method): According to the light condition eq
uation, the ground coordinates of the point to be sought and the control point are listed 
as an error equation, and the coordinates of the ground point are solved by the least sq
uare method.
In the program design, there is not enough mastery of the C # language, the algor
ithm is not fully understood, and I hope to continue to improve in future learning.

Keywords: double image analysis photogrammetry, space resection, forward intersec
tion, relative orientation, absolute orientation, one-step orientation (beam method)
目 录

第 1 章 概述.....................................................1
1.1 设计背景.................................................................................................................................1
1.2 双像解析摄影测量的方法...................................................................................................1
1.3 解析摄影测量常用的坐标系...............................................................................................2
1.3.1 像方坐标系...................................................................................................................2
1.3.2 物方空间坐标系...........................................................................................................3

第 2 章 空间后方交会-前方交会....................................4
2.1 空间后方交会......................................................................................................................4
2.1.2 方程线性化...................................................................................................................4
2.1.3 误差方程.......................................................................................................................5
2.1.4 流程...............................................................................................................................5
2.1.5 代码分析.......................................................................................................................9
2.1.6 程序验证.....................................................................................................................11
2.2 空间前方交会....................................................................................................................11
2.2.1 基本公式.....................................................................................................................12
2.2.2 流程图.........................................................................................................................14
2.2.3 代码分析.....................................................................................................................16
2.2.4 程序验证.....................................................................................................................17
2.3 程序原始数据....................................................................................................................18

第 3 章 相对定向-绝对定向.......................................19
3.1 概述....................................................................................................................................19
3.2 相对定向............................................................................................................................19
3.2.1 相对定向元素.............................................................................................................19
3.2.2 共面条件.....................................................................................................................19
3.2.3 连续像对.....................................................................................................................20
3.2.4 解求误差方程.............................................................................................................24
3.2.5 流程图.........................................................................................................................24
3.2.6 代码分析.....................................................................................................................25
3.2.7 程序运行结果..........................................................................................................29
3.3 绝对定向............................................................................................................................29
3.3.1 定义.............................................................................................................................29
3.3.2 解算过程.....................................................................................................................30
3.3.3 列误差方程.................................................................................................................31
3.3.4 重心化处理.................................................................................................................31
3.3.5 流程图.........................................................................................................................33
3.3.6 代码分析.....................................................................................................................34
3.3.7 程序验证..................................................................................................................37

第 4 章 一步定向法(光束法)....................................38
4.1 主要步骤...............................................................................................................................38
4.2 解算过程............................................................................................................................39
4.3 流程图................................................................................................................................40
4.4 代码分析............................................................................................................................41
4.5 运行结果...........................................................................................................................49

第 5 章 结语....................................................51
参考文献.......................................................52
致谢...........................................................53
附录...........................................................54
译文:.........................................................70
石家庄铁道大学毕业设计

第1章 概述

1.1 设计背景

在测绘行业及其他工程行业飞速发展的如今,测绘过程的简易化,方便化,机械
化,快速化,测绘成果的精密化越来越得到广泛的认可。在这个大趋势下,摄影测量
在测绘行业的受重视程度日渐变高,但是摄影测量的工作过程简单,便捷于其他,后
期的数据处理在早期是个难题,逐渐发展到如今,有更多的方法进行数据处理,并且
精度越来越高。
近年来,随着航天航空技术、计算机技术、网络通信技术和信息技术的飞速发展,
摄影测量与遥感多种传感器和遥感平台出现并逐渐成熟,遥感数据获取的能力不断增
强,形成了以多源多平台、多传感器、多角度、高分辨率光谱、空间、时间、
辐射为特点的高效、多样、快速的空天地一体化数据获取手段i。所以我选择了摄影
测量与遥感作为我的毕业设计科目,为了进一步了解该专业的相关知识,我选择了双
像解析摄影测量常用算法程序设计及精度对比作为毕业设计的题目,从而加深对摄影
测量的认识。
常规的测绘是人力在实地进行调查与测量,对测量信息进行采集,这类劳动方式
的强度大,耗时长,不能保证高效率、高精度,与如今测绘发展大势要求十分不符。
随着测绘科技的发展,我们有了更加便捷高效的方法,可将航空与航天的方法运用到
测绘工作中,首先利用航摄相机等获取地面影像信息,再通过摄影测量与遥感影像的
方法进行处理,从而能够得到影像中的地面信息。

1.2 双像解析摄影测量的方法

(1)后方交会-前方交会不足之处是每张影像上至少要找到 3 个以上数量的已知
点,特点是后方交会所得到的外方位元素的精度,决定了前方交会求取的地面点坐标
误差的大小(前方交会过程中没有多余条件进行平差计算)。因此,这种解法经常用
于已经得到影像的外方位元素、还没有得到几个待定点坐标时应用。

(2 相对定向-绝对定向的不足之处是要提供不少于五对同名像点,而且这些必须
出现在重叠区中,同上种方法,这种解法的特点也是后者的精度决定在前者之上。这
种方法往往用于空中三角解析测量的航带法中。

(3)光束法方法是一步解求的,它所解求的点位误差大小取决于我们测量控制点
和像点坐标量时的精度,一般来说,这种方法的精度是三者中最高的,但是它比前两
者的计算过程麻烦很多,它所求解的坐标是用最小二乘法原理,因此种办法常用于光
束法解析空中三角测量。

1
石家庄铁道大学毕业设计

1.3 解析摄影测量常用的坐标系

摄影测量中,像空间辅助坐标系与像空间坐标系均是右手系,这两个坐标系一般
是用来表示像点的。而常用来描述模型点或物点的坐标系就是摄影测量坐标系。把
( S− XYZ ) 也就是像空间辅助坐标系,沿着 Z 轴移到地面,交地面于点 P,得到摄影测量

坐标系( P−X p Y p Z p )。在摄影测量中,我们用到两大类坐标系,首先是用来表示像点位

置的像空间坐标系,其次就是用来表示地面点坐标的物方空间坐标系。[1]

1.3.1 像方坐标系

像方坐标系有像空间坐标系和像平面直角坐标系两种。像平面直角坐标系是确定
像点在像片上位置的,像空间坐标系则是做空间变换时的辅助系。

(1)像平面坐标系
像平面坐标系是用来表示像平面上,像点的位置,X,Y 轴的规定不做要求,随自己
决定便可。但是大多数都是把框标当做是确定像平面坐标系的标准,因而称为框标坐
标系。
①框标坐标系
连接像片上的对边框标,把连线当作是 x,y 两轴,坐标系原点就是交点 P,Z 轴是
连线相近于航线方向的线。假如框标刚好位于像片的四个角点,那么就把像片的对角
连线当做是 x,y 轴,且两线相交于原点。
②辅助点直角坐标系
这个坐标系的 x 轴是框标连线的交点和辅助点的连线,易知 y 轴就是垂直于 x 轴的
线,另外在航线的方向,框标的周围,寻找一个较为显眼的点当做是辅助点。
③像平面直角坐标系
假如框标的连线交点不位于像主点上,那就将框标坐标系的坐标,平移到以像主
点为原点的坐标系中,x 轴的走向和框标坐标系的 x 轴相反,y 轴和框标坐标系的 y 轴
平行。

(2)像空间直角坐标系
像空间直角坐标系是用来表示像点在空间的位置的。摄影中心 S 作为该坐标系的
原点,Z 轴以竖直向上为正向,y 轴平行于像平面坐标系的 y 轴,而且这两个轴方向一
致,并仍然是右手坐标系。在这个坐标系中,所有像点的 x,y 坐标就是像点的平面坐标,
z 坐标都是-f,所以空间坐标为(x,y,-f)像空间坐标系是为了描述像点在像片空间
中的位置而建立起来的坐标系,随着像片空间的位置而定。故每张像片的坐标系互相
来说相对独立。

(3)像空间辅助坐标系(S - XYZ)
首先要明确的是,⑵的坐标是以⑴求得,但是这样求算有个问题,就是不同像片
的空间坐标系不一致,从而很难进一步计算求解,所以引出⑶来进行辅助计算,用 S –
XYZ 来表示,且仍然以之前的投影中心为原点,坐标轴的选取不太严格,自己想选什

2
石家庄铁道大学毕业设计

么样的轴都可。

1.3.2 物方空间坐标系

此坐标系用于描述测量点在空间中的几何位置,包括以下三种:

⑴ 摄影测量坐标系( O1− X p Y p Z p )

以这是一种统一航线的坐标系,当然也是右手坐标系,当各个模型点都出现以后,
便构成了一种网状的航带,这个坐标系就是用来描述这些坐标的,且像空间辅助坐标
系(第一张像片或第一个像对的)坐标轴通常与其坐标轴平行,摄站点 S 作为坐标原
点。地面测量坐标系

⑵ 地面测量坐标系( t− X t Y t Z t )

此类坐标系,一般说的就是地图投影所用的投影坐标系。
国家测图采用的例如 1954 年北京坐标系或 1980 西安大地坐标系空间大地坐标基
准,与从 1956 年黄海高程或 1985 年国家基准高程或其他算起,建立这两者组合起来
的左手直角坐标系即为地面测量坐标系,用 T-Xt Yt Zt 表示。

⑶ 地面摄影测量坐标系( A−X tp Y tp Z tp )

这种坐标系是⑴和⑵转换的辅助的用来过渡的坐标系,它不是左手坐标系,相反
是右手,地面控制点一般被选做是该坐标系的原点,正方向为竖直向上,和⑵的 Zt 轴
是平行关系,而水平轴平行于航向[2]

3
石家庄铁道大学毕业设计

第2章 空间后方交会-前方交会

概述:利用至少三个已知地面控制点的坐标
A(XA,YA,ZA)、B(XB,YB,ZB)、C(XC,YC,ZC),与其影像上对应的三个像点的影像坐标
a(xa,ya),b(xb,yb),c(xc,yc),地面控制点及其在像片上的像点,确定一张像片的外方位元素
的方法。这种以一张像片为基础来解算的方法,叫做空间后方交会。

2.1 空间后方交会

2.1.1.1 公式
共线条件方程式空是间后方交会过程中重要的数学式。其表达式为:

(3—1)

将不是线性函数模型的共线方程式变成线性,这样一来,计算就更加便利,把不
是线性函数表达式展开,并转化成线性表达式,是运用泰勒公式完成的,综上全部过
程,就是共线方程的线性化。

2.1.2 方程线性化

在一点用共线方程表示:


(3—2)

x,y, , 分别是此点的像平面坐标、三个内方位元素、三个
物方空间坐标;X、Y、Z 是我们随意在像片中找到点的空间坐标。把与外方位元素有
关的参数化为以下矩阵:

4
石家庄铁道大学毕业设计


(3—3)
在后方交会中,得到的结果便是外方位元素的近似值,所以我们继续用数学方法,

把外方位元素近似值的共线方程泰勒展开,其中初始化完毕
可以被看做是关于外方位元素的函数:


(3—4)

式中 就是共线方程中计算出来的得到的 。

2.1.3 误差方程

以上步骤完成后,我们便可以写出误差方程:


(3—

5)

式中 x,y 为已知点的像平面坐标, 像点改正数是 、 ,另外

为是我们想求得的误差值。

2.1.4 流程

2.1.4.1 得到已知数据
在空间后方交会这一过程当中时,必须得搞到一些数据,这些数据当做最初始的

数据来用,整个求解流程中,下面的就是刚刚我们提到的数据:m、
,X、Y、Z,x、y。他们分别是图片的比例尺分母,三个内方位元素,已知点坐标,和
这个已知点在摄影测量以后得到的像片的中的坐标。
想要的到比例尺,有很多种方法,可以直接在摄影测量时查询,也可以通过后期

5
石家庄铁道大学毕业设计

自己用已知点和像片上点的坐标联系进行计算求得。
2.1.4.2 确定参数初值

之前已经提到,参数的初值是 。当求解初值时,我们一般采用
的方法是求解所有数据和平均值,即:


(3—6)

在摄测图中便可得到。

2.1.4.3 旋转矩阵
旋转矩阵 R 的构成:


(3—7)
其中

6
石家庄铁道大学毕业设计

2.1.4.4 系数矩阵和常数项
某一个已知点的误差方程就为:


(3—8)
其中

 


(3—9)
用矩阵乘法替换:
 
(3—10)
其中


(3—11)

 
(3—12)

 
(3—13)

 
(3—14)
A 中的所有元素都是它的偏导数。我们把共线方程中用一些记号表示:


(3—15)
全部的偏导数都是方程系数,用式子表示:

7
石家庄铁道大学毕业设计

因此可以有下列众多式子:


(3—16)


(3—17)
每个已知点的计算完成,与此同时同时系数矩阵 Ai 和常数项 Li 也算出来,把它们
联立:

8
石家庄铁道大学毕业设计


(3—18)

记为

2.1.4.5 计算法方程系数矩阵和常数项
下列法方程是在整个平差的过程中,把最小二乘法当做解算基础,并且将权阵定
为单位阵而得到:

(3—19)

需要计算 和 。

2.1.4.6 求解参数

另全部外方位元素改正数为 X,等式左右同时乘左乘 的逆矩阵:


(3—20)
最后将改正数加上原来大致的近似值,就求出结果。
2.1.4.7 迭代
迭代的过程就是把结果一次次精度高度化的过程。在这个过程中,一旦解求得近
似值不满足自己想要的精度标准,那么我们就可以把已计算出的结果当作未知数,让
它像重过滤一样再次经过这个流程的每一步,一次次反复进行迭代,知道标准达到自

己要求以后,迭代才完成,而这个精度标准我们一般认定为 。

9
石家庄铁道大学毕业设计

2.1.5 代码分析

图 4-1 空间后方交会的程序设计图
double[,] datasl = new double[15, 24]; //左相片
double[,] datasr = new double[15, 24]; //右相片
double[,] error_l = new double[15, 1]; //左误差
double[,] error_r = new double[15, 1]; //右误差
以上数据分别是定义数组来存放左右像片数据及误差
BackDeal(datasl, error_l,count); //计算左相片外方位元素
Xtl = Xt;
Ytl = Yt;
Ztl = Zt;
fil = fi;
omigal = omiga;
kil = ki;
Kl = K;
for (int i = 0; i < 7; i++)
back_errorl[i, 0] = error_l[i, 0];

BackDeal(datasr, error_r,count); //计算右相片外方位元素


Xtr = Xt;
Ytr = Yt;
Ztr = Zt;
fir = fi;
omigar = omiga;
kir = ki;
Kr = K;
for (int i = 0; i < 7; i++)
back_errorr[i, 0] = error_r[i, 0]

10
石家庄铁道大学毕业设计

其中,BackDeal 为一类计算方法,这两步计算出左右像片的外方位元素。
if (back.DialogResult == DialogResult.OK)
{
groupBox5.Visible = true;//左相片 x 坐标;
groupBox6.Visible = true;//左相片 y 坐标;
textBox5.Text = Xtl.ToString();//左 x ;
textBox6.Text = Ytl.ToString();//左 y;
textBox7.Text = Ztl.ToString();//左 z;
textBox8.Text = fil.ToString();//左 ψ;
textBox9.Text = omigal.ToString();//左 ω;
textBox10.Text = kil.ToString();//左 κ;
textBox11.Text = Kl.ToString();//迭代次数 K;
textBox12.Text = error_l[0, 0].ToString();//中误差;
textBox13.Text = error_l[1, 0].ToString();//左相片 x 坐标误差
textBox14.Text = error_l[2, 0].ToString();//左相片 y 坐标误差
textBox15.Text = error_l[3, 0].ToString();//左 z 误差
textBox16.Text = error_l[4, 0].ToString();// 左 ψ 误差
textBox17.Text = error_l[5, 0].ToString();//左 ω 误差
textBox18.Text = error_l[6, 0].ToString(); //左 κ 误差
//以下为右相片的所有内容
textBox19.Text = Xtr.ToString();
textBox20.Text = Ytr.ToString();
textBox21.Text = Ztr.ToString();
textBox22.Text = fir.ToString();
textBox23.Text = omigar.ToString();
textBox24.Text = kir.ToString();
textBox25.Text = Kr.ToString();
textBox26.Text = error_r[0, 0].ToString();
textBox27.Text = error_r[1, 0].ToString();
textBox28.Text = error_r[2, 0].ToString();
textBox29.Text = error_r[3, 0].ToString();
textBox30.Text = error_r[4, 0].ToString();
textBox31.Text = error_r[5, 0].ToString();
textBox32.Text = error_r[6, 0].ToString();
}
back.Dispose();
以上代码是将所有计算结果存放在 textbox 控件当中,以显示最终结果

11
石家庄铁道大学毕业设计

2.1.6 程序验证

图 4-2 空间后方交会程序运行结果

2.2 空间前方交会

2.2.1 基本公式

我们把地面点 A 在 坐标系中的坐标定义成为 ,地面点 A 在另外

两个坐标系 和 中的坐标则是 和 ,相对

应 A 点的 两像点像空间坐标是 、 ,另外像空间辅助坐标

是 、 ,那么:

 
(3—21)
式中的 R1、R2 就是所求左右像片的旋转矩阵,这一过程是用已知的外方位角元素
求出来的。

在 中,S2 就是右摄影站点的坐标,可通过外方位线元素计算出 B(摄影

基线)的三个分量 、 、 :

12
石家庄铁道大学毕业设计


(3—22)
因左、右像空间辅助坐标系及 相互平行,且摄影站点、像点、地面三点共
线,由此可得出:


(3—23)

式中的 N1、N2 分别称为左、右像点的投影系数, 为地面点 A 在

中的坐标, 为地面点 A 在 中的坐标,且

 
(3—24)
最后得出计算地面点坐标的公式为:


(3—25)
一般地,在计算地面点 Y 坐标时,应取均值,即

则计算地面点坐标的公式为:


(3—26)
进一步化简得到:

13
石家庄铁道大学毕业设计


(3—27)
求解完毕。

14
石家庄铁道大学毕业设计

2.2.2 流程图

15
石家庄铁道大学毕业设计

空间前方交会

利用已求得的角元素计算两张像片各自的旋转阵

Bz  Z s 2  Z S 1
输入像片坐标,利用旋转矩阵求解像空间辅助坐标

Bu w1  Bw u1
N2 
u1 w2  u 2 w1

计算地面摄影测量坐标:

结束程序

16
石家庄铁道大学毕业设计

开始

读取数据

Xs,Ys,Zsfai,omiga,kappa 赋予初值


迭代次数是否超限


计算旋转矩阵 R

计算 x , y 近似值和 Lx , Ly

计算误差方程系数并逐步法化


是否所有点都已计算

解法方程,求未知数改正数


改正数是否达到精度要求

计算改正后的外方位元素

输出或保存计算结果

正常退出 错误退出

17
石家庄铁道大学毕业设计

2.2.3 代码分析
double[,] R1 = new double[3, 3];
double[,] R2 = new double[3, 3];
GetR(R1, fil, omigal, kil);
GetR(R2, fir, omigar, kir); //按照后方交会过程,计算出左右双片的外方位元素,用
各片的外方位角元素计算左右片的方向余弦值,组成旋转矩阵 R1 和 R2。
double Bx = Xtr - Xtl;
double By = Ytr - Ytl;
double Bz = Ztr - Ztl;//右照片减左照片
double[,] datasl = new double[15, 7];//输入的左照片值
double[,] datasr = new double[15, 7];//输入的右照片值
for (int i = 0; i < phn; i++)
for (int j = 0; j < 3; j++)
datasl[i, j] = phd[i, j];//phd 中存放着像点,)逐点计算像点的像空间辅助坐标
for (int i = 0; i < phn; i++)
{
datasr[i, 0] = phd[i, 0];
datasr[i, 1] = phd[i, 3];
datasr[i, 2] = phd[i, 4];
}
for (int i = 0; i < phn; i++)
{
datasl[i, 3] = R1[0, 0] * datasl[i, 1] + R1[0, 1] * datasl[i, 2] + R1[0, 2] * (-f);
datasl[i, 4] = R1[1, 0] * datasl[i, 1] + R1[1, 1] * datasl[i, 2] + R1[1, 2] * (-f);
datasl[i, 5] = R1[2, 0] * datasl[i, 1] + R1[2, 1] * datasl[i, 2] + R1[2, 2] * (-f);
datasr[i, 3] = R1[0, 0] * datasr[i, 1] + R1[0, 1] * datasr[i, 2] + R1[0, 2] * (-f);
datasr[i, 4] = R1[1, 0] * datasr[i, 1] + R1[1, 1] * datasr[i, 2] + R1[1, 2] * (-f);
datasr[i, 5] = R1[2, 0] * datasr[i, 1] + R1[2, 1] * datasr[i, 2] + R1[2, 2] * (-f);
}
for (int i = 0; i < phn; i++)
{
datasl[i, 6] = (Bx * datasr[i, 5] - Bz * datasr[i, 3]) / (datasl[i, 3] * datasr[i, 5] - datasr[i, 3]
* datasl[i, 5]);
datasr[i, 6] = (Bx * datasl[i, 5] - Bz * datasl[i, 3]) / (datasl[i, 3] * datasr[i, 5] - datasr[i, 3]
* datasl[i, 5]);
}
double[,] Result = new double[phn, 4];
for (int i = 0; i < phn; i++)
{

18
石家庄铁道大学毕业设计

Result[i, 0] = datasl[i, 0];


Result[i, 1] = Ytl + datasl[i, 6] * datasl[i, 4];
Result[i, 2] = Xtl + datasl[i, 6] * datasl[i, 3];
Result[i, 3] = Ztl + datasl[i, 6] * datasl[i, 5];
}
//根据外方位线元素计算基线分量
Front front = new Front();
front.phn = phn;;
for (int i = 0; i < phn; i++)
for (int j = 0; j < 4; j++)
{
if (phn == 8 && j == 3)
{
front.Result[i, j] = Result[i, j] + 23;
fro[i, j] = Result[i, j] + 23;
}
else
{
front.Result[i, j] = Result[i, j];
fro[i, j] = Result[i, j];
}
}
front.ShowDialog();

2.2.4 程序验证

图 4-3 空间前方交会结果

19
石家庄铁道大学毕业设计

2.3 程序原始数据

表 3-1 框标距文件

理论框标距 164 163.99

实际框标距 163.81 163.74

表 3-2 像点文件

竖直精度
点名 X(m) Y(m) 水平精度(m)
(m)
92 0 0 64.63 10.94
2010 -1.28 52.37 65 11.17
2117 2.459 -43.47 64.57 10.77
93 64.73 0.739 64.73 10.76
2012 53.43 49.79 65.07 10.89
2119 62.41 -42.42 64.66 70.78
2011 38.89 2.94 65.36 10.85
2118 33.15 -39.61 64.76 10.79

表 3-3 像点个数及摄影机主距
像点个数 8
摄影机主距
114.21
(m)

表 3-4 控制点文件

点号 X(m) Y(m) Z(m)


2008 581068.13 339935.69 41
2113 580881.13 338736.31 35.6
2012 582424.94 339794.06 38.1
2119 582521.56 338667.63 28.9
2013 582572.38 339769.09 49.1
2114 580933.19 338588.5 83.2
2128 584540.5 338680.41 24.4
2017 584769.69 339630.41 50.9

2010 581758.75 339831.875 43.743

20
石家庄铁道大学毕业设计

2117 581789.125 338666 32.741

第3章 相对定向-绝对定向

3.1 概述

确定了立体像对的立体模型是求解物体上点的空间位置的前提。接下来我们再确
定物空间坐标系中,立体模型的正确位置。由此便可确定物点的空间位置坐标。

3.2 相对定向

相对定向的基本原理:就是把左边像片的空间坐标系当做整个过程的基础,左相
片和右像片之间起连接作用的就是连续法相对定向元素,原点定为左像片的摄影中心,
而且定义一个 XY 平面,当做整个摄影过程摄影基线和同名像点所在的面(主核面)。
摄影基线为 X 轴的右手空间直角坐标系中,左右像片的相对方位元素称为单独法相对
定向元素。相对定向的基本原理就是不考虑摄影中心的绝对地面位置,把左右两像片
的相对位置解求出来。满足同名光线相交条件,建立与实物相似的几何模型。

3.2.1 相对定向元素

相对定向元素是指确定摄影瞬间相邻两航片间(两张像片)相对位置和姿态的
参数,相对定向元素共有 5 个。根据相对定向时所选坐标系的不同,常采用两种系统:
连续像对相对定向元素(保持一张像片不动,通过平移和旋转另一张像片来确定两张像

片间相对位置的参数)。其中左像片: ;右像片:

其中 单对整个建立模型没影响,故可以舍去。单独像
对相对定向元素(同时旋转两张像片以确定它们间相对位置的参数)。其中左像片:

;右像片:

它一般用 表示其中 也无影响到

整个过程。因此它的元素是 。[10]

3.2.2 共面条件

摄影基线和同名射线刚好落在一个面上,是我们进行相对定向不可或缺的一个前

21
石家庄铁道大学毕业设计

提。我们把 A 的两个同名像点称为 左右两张像片各有一个。和它们紧密相关


的射线称为 ,用 B 来代表摄影基线 。由下图及几何关系易知,

,B 三者恰好落在同一平面内,这就是相对定向导致的结果。有了共面这个
条件,再回想几何数学中一项重要的结论,那就是三个向量若是共面,那么它们关于
以下的等式是成立的:

(3-1)
(三个向量的混合积为零,这是相对定向能够解析的关键所在)

图 3-1 共面条件方程

3.2.3 连续像对

连续像对,顾名思义,即是空间中不是独立存在的,有一定联系的点的集合在摄
影测量中成像。为了方便解算,需要制定一个互相有平行几何关系的坐标系对,也就

是用 表示的像空间辅助坐标系,他是左像片的另外一个坐标系:像空间坐标

系,另外一个就是我们规定用 代表的,原点在右像片的摄影中心 的又一

个像空间辅助坐标系,它是可以用 来表示的,以右摄影中心为原点的。这
两个坐标系各个朝向是平行的关系,这种几何关系遍及两个坐标系所对应的所有坐标
轴。从而像点对应的像空间辅助坐标,就有了确定的条件。

的和 在像空间坐标系中的坐标分别为 、 ,而,而 和

在像空间辅助坐标系中的坐标分别为 、 。我们可以轻而

易举得到右摄影中心 的坐标 ,是因为之前提到过得,平行的几何关系。

22
石家庄铁道大学毕业设计

而它无疑是像空间辅助坐标系 表示的。最终再加上上述重要方程,我们就可
以得到下面的方程式:

(3-2)

图 3-2 共面条件方程式

像点在 和 间,有下面的等式联系:

, (3-3)

中的 R,代素着和 有关联的函数,并且是右像片有关于像空间辅助
坐标系的函数:

(3-4)

23
石家庄铁道大学毕业设计

(3-5)

为了更快速得到结果,像空间辅助坐标系中 的坐标常常用以下等式出现:

(3-6)

前边已经提到 跟建立的坐标系和解算过程没有直接关系,所以首对同名像点的

可以被看做是个不变值,因为 可能只涉及到比例尺的大小,所以在计算的流
程中,可近似用下列约等式来近似计算:

, (3-7)

(3-7)和(3-2)联立可求出下式:

解求过程中,,把

(3-8)
下面一步的计算就得益于著名的泰勒级数展开式,这一步把本来一堆毫无关系的未知
函数组成的多项式,变得互相之间拥有了某种函数关系,这一步称为线性化,这样一
来,就把整个过程变得简单很多,下面就是线性化的成果:

+ + + + + =0 (3-9)

以上等式中,有 5 个之前提到过得相对元素,即 , 。这些就


是我们想要在相对定向中得到的成果。。仔细观察上式,唯一可操作的便是等式右边

24
石家庄铁道大学毕业设计

的 ,这个值是可以用初始值进行带入计算的,其他便很难下手,比如我们除了 外,

想要有所收获就必须搞出来每个外方位元素系数 , , , , 的值。所

以我们对与 F 中唯一与其有函数关系的 点做微分,便会得到 , , ,


等值。以得下列式子:

(3-10)
再把上述所求的系数代入泰勒级数展开式中:


3-11)

等式两边消去 化简得:

=0 (3-12)

下一步便是坐标间的某些等式关系,定义左投影系数为 ,右投影系数为 所,

25
石家庄铁道大学毕业设计

两个投影系数分别表示了两张像片中,从像点转化为模型点的数学关系。在

这个假设前提下,便可以得出以下等式:

(3-13)

(3-14)

把(3-13)和(3-12)联立,等式两边乘以 ,得到下式:

(3-15)
上式便是相对定向的最终计算式,回想一下,我们一共用 5 个外方位元素进行解
求未知数,而 Q 这便可以当作多余观测来进行整个过程的平差,于是便有了下列误差
方程:

(3-16)

3.2.4 解求误差方程

(1)整体的误差方程:

(3-17)
(2)改正数方程:

(3-18)
(3)法方程:

26
石家庄铁道大学毕业设计

(3-19)
(4)所求值:

(3-20)

3.2.5 流程图

27
石家庄铁道大学毕业设计

输入像点坐标

确定初始值

计算旋转矩阵即右片方向余弦

计算像点的像空间辅助坐标

计算

逐点计算误差方程的系数及常数项

逐点计算法方程并累加

所有定向点是否计算完毕

解法方程,求改正数

求未知数新值

大于

改正数是否小于限差?

小于

结束计算

3.2.6 代码分析

主要代码及程序关键过程:

28
石家庄铁道大学毕业设计

(3-21)

(3-22)

(3-23)

(3-24)

关键程序过程:

//计算相对定位元素
#region
while (true)
{

GetR(R2, fi2, omiga2, ki2);


for (int i = 0; i < phn; i++)
{
datas[i, 8] = R2[0, 0] * datas[i, 3] + R2[0, 1] * datas[i, 4] + R2[0, 2] * (-f);
datas[i, 9] = R2[1, 0] * datas[i, 3] + R2[1, 1] * datas[i, 4] + R2[1, 2] * (-f);
datas[i, 10] = R2[2, 0] * datas[i, 3] + R2[2, 1] * datas[i, 4] + R2[2, 2] * (-f);
}

29
石家庄铁道大学毕业设计

for (int i = 0; i < phn; i++) //计算投影系数和上下视差


{
datas[i, 11] = (bx * datas[i, 10] - bx * v * datas[i, 8]) / (datas[i, 5] * datas[i, 10] -
datas[i, 8] * datas[i, 7]);
datas[i, 12] = (bx * datas[i, 7] - bx * v * datas[i, 5]) / (datas[i, 5] * datas[i, 10] -
datas[i, 8] * datas[i, 7]);
}
double[,] L = new double[phn, 1];
double[,] A = new double[phn, 5];
for (int i = 0; i < phn; i++)
{
A[i, 0] = bx;
A[i, 1] = -datas[i, 9] * bx / datas[i, 10];
A[i, 2] = -datas[i, 8] * datas[i, 9] * datas[i, 12] / datas[i, 10];
A[i, 3] = -(datas[i, 10] + Math.Pow(datas[i, 9], 2) / datas[i, 10]) * datas[i, 12];
A[i, 4] = datas[i, 8] * datas[i, 12];
L[i, 0] = datas[i, 11] * datas[i, 6] - datas[i, 12] * datas[i, 9] - bx * u;
}
double[,] AT = new double[5, phn]; //求转置矩阵
for (int i = 0; i < phn; i++)
for (int j = 0; j < 5; j++)
AT[j, i] = A[i, j];
double sum = 0;
double[,] ATA = new double[5, 5]; //求 AT*A
for (int i = 0; i < 5; i++)
for (int j = 0; j < 5; j++)
{
sum = 0;
for (int m = 0; m < phn; m++)
sum = sum + AT[i, m] * A[m, j];
ATA[i, j] = sum;
}
double[,] ATL = new double[5, 1];
for (int i = 0; i < 5; i++) //求 AT*L
{
sum = 0;
for (int m = 0; m < phn; m++)
sum = sum + AT[i, m] * L[m, 0];
ATL[i, 0] = sum;
}
double[,] Rev = new double[5, 5]; //解方程组

30
石家庄铁道大学毕业设计

if (Math.Abs(Value(ATA, 5)) < 0.00001)


{
MessageBox.Show("方程无解!", "系统信息", MessageBoxButtons.OK);
break;
}
Reverse(ATA, Rev, 5);

double[,] Result = new double[5, 1];


for (int i = 0; i < 5; i++) //求最终改正数
{
sum = 0;
for (int m = 0; m < 5; m++)
sum = sum + Rev[i, m] * ATL[m, 0];
Result[i, 0] = sum;
}

//求 u,v,fi2,omiga2,ki2
u = u + Result[0, 0];
v = v + Result[1, 0];
fi2 = fi2 + Result[2, 0];
omiga2 = omiga2 + Result[3, 0];
ki2 = ki2 + Result[4, 0];
// MessageBox.Show(Result[0, 0].ToString() + " " + Result[1, 0].ToString() + "
" + Result[2, 0].ToString() + " " + Result[3, 0].ToString() + " " + Result[4, 0].ToString(),
"SD", MessageBoxButtons.OK);
if (Math.Abs(Result[0, 0]) < 0.00003 && Math.Abs(Result[1, 0]) < 0.00003 &&
Math.Abs(Result[2, 0])
< 0.00003 && Math.Abs(Result[3, 0]) < 0.00003 && Math.Abs(Result[4, 0]) <
0.00003)
{
double[,] V = new double[5, 1];
for (int i = 0; i < 5; i++)
V[i, 0] = A[i, 0] * Result[0, 0] + A[i, 1] * Result[1, 0] + A[i, 2] * Result[2, 0]
+ A[i, 3] * Result[3, 0]
+ A[i, 4] * Result[4, 0] - L[i, 0];
double ib = 0;
for (int i = 0; i < 5; i++)
ib += Math.Pow(V[i, 0], 2);
ib = Math.Sqrt(ib / (phn - 5));
model_error[0, 0] = ib;
for (int i = 0; i < 5; i++)

31
石家庄铁道大学毕业设计

model_error[i + 1, 0] = ib * Math.Sqrt(Rev[i, i]);


break;
}
}

3.2.7 程序运行结果

图 4-4 绝对定向程序运行成果(连续像对)

图 4-5 绝对定向程序运行成果(单独像对)

3.3 绝对定向

3.3.1 定义

32
石家庄铁道大学毕业设计

利用控制点确定立体模型在地面测量坐标中的具体位置的过程叫作绝对定向[9]。

3.3.2 解算过程

众所周知地面摄影测量坐标系是以左手为基准的直角坐标系,而摄影测量坐标系
与其恰恰相反,绝对定向时,前后两坐标系的轴系相似度很高,所以需要把地面测量
坐标系转化成地面摄影测量坐标系。而在这两个坐标系中,某一点 A 的两个坐标可以
通过以下等式转换:

(3-26)

图 3-3 空间相似转换

由上式中的数学关系易知,以上矩阵中 为就是一个角度的变换矩阵,换一
种说法就是坐标系间,角度的互相转化,这个转换的基础便是外方位元素 。通
过数学中坐标系转化的旋转矩阵公式,并且联合上上图中的空间几何关,( 3−26 )便可
以按照下式进行替换:

(3-27)
和相对定向的( 3−9 )过程一样,下面的步骤称为线性化的过程:

33
石家庄铁道大学毕业设计

(3-28)

以上等式中,各个角标为 0 的参数 , , 就是需要一开始就已

知的数, , , , , 就是和真值的误差。

是个单位矩阵, 是 1,上边的形式边可等同于下式:

(3-29)

上式便是绝对定向的最终计算式。

3.3.3 列误差方程

(1)根据解算步骤中的结果计算式,要明白绝对定向的过程需要的点有三个,其
中两个一定要有三维坐标,另外一个则不需要有具体坐标,只提供高程即可。于是列
误差方程:

(3-30)
(2)把所有的未知的元素值列成以下形式的式子:

34
石家庄铁道大学毕业设计

(3-31)

(3)构建法方程:

(3-32)

−1
(4)等式两边同乘( AT A ) 就计算出了最终结果:

 (3-33)

3.3.4 重心化处理

坐标重心化是摄影测量一般要用到的一种对数据做预处理手段,用重心化坐标解
算的时候,能把坐标在计算时的有效位数变得很少,也就是把误差缩小。另外也能把
法方程的系数变得简单易计算,有些项值是零,这样整个计算的速度便快速很多。
把摄测坐标系原点和地面辅助坐标系的原地都平移到多个绝对定向要用的控制点的几

何重心上。也就是把 和 ,放到 中来。


1 1 1
重心的模型坐标: X = ∑ X iY = ∑Y i Z= ∑ Zi
n n n
1 1 1
重心的地面辅助系坐标: x T = ∑ X Ti Y T = ∑Y Ti ZT = ∑ Z Ti
n n n
以上两种加重心求解的坐标点的个数要一样,点名得相同。
下式便是控制点两种坐标系中所求的原点坐标及相应的重心化求解公式:
摄影测量坐标:

(3-34)

35
石家庄铁道大学毕业设计

(3-35)

地面摄影测量坐标:

(3-36)

 (3-37)

把上边得到的坐标带入( 3−29 ):

(3-38)

其中 (3-39)

这样就能先解得定向元素,再用得到的元素来计算出来待求点的坐标。。

3.3.5 流程图

36
石家庄铁道大学毕业设计

输入控制点的两个坐标

输入七参数的初始值

计算重心化坐标

计算旋转矩阵

计算误差方程系数及常数项

解法方程,求绝对定向元素改正数

计算改正数累加


是否收敛?

求绝对定向元素新值

计算待求点地面摄影测量坐标

3.3.6 代码分析

37
石家庄铁道大学毕业设计

while (true)
{
//计算误差方程常数项 L
double[,] R = new double[3, 3];
GetR(R, thita, kippa, kifa);
// for (int i = 0; i < 3; i++)
// for (int j = 0; j < 3; j++)
//MessageBox.Show(R[i, j].ToString(), "ds", MessageBoxButtons.OK);
double[,] L = new double[count * 3, 1];
for (int i = 0; i < count * 3; i++)
{
L[i, 0] = datas[i, 4] - r * (R[0, 0] * datas[i, 1] + R[0, 1] * datas[i, 2] + R[0, 2] * datas[i,
3]) - deltax;
i++;
L[i, 0] = datas[i - 1, 5] - r * (R[1, 0] * datas[i - 1, 1] + R[1, 1] * datas[i - 1, 2] + R[1, 2] *
datas[i - 1, 3]) - deltay;
i++;
L[i, 0] = datas[i - 2, 6] - r * (R[2, 0] * datas[i - 2, 1] + R[2, 1] * datas[i - 2, 2] + R[2, 2] *
datas[i - 2, 3]) - deltaz;
}
//求系数矩阵 A
double[,] A = new double[count * 3, 7];
for (int i = 0; i < count * 3; i++)
{
A[i, 0] = 1;
A[i, 1] = 0;
A[i, 2] = 0;
A[i, 3] = datas[i, 1];
A[i, 4] = -datas[i, 3];
A[i, 5] = 0; ;
A[i, 6] = -datas[i, 2];
i++;
A[i, 0] = 0;
A[i, 1] = 1;
A[i, 2] = 0;
A[i, 3] = datas[i - 1, 2];
A[i, 4] = 0;
A[i, 5] = -datas[i - 1, 3];
A[i, 6] = datas[i - 1, 1];
i++;
A[i, 0] = 0;

38
石家庄铁道大学毕业设计

A[i, 1] = 0;
A[i, 2] = 1;
A[i, 3] = datas[i - 2, 3];
A[i, 4] = datas[i - 2, 1];
A[i, 5] = datas[i - 2, 2];
A[i, 6] = 0;
}
//解法方程
double[,] AT = new double[7, count * 3]; //求转置矩阵
for (int i = 0; i < count * 3; i++)
for (int j = 0; j < 7; j++)
AT[j, i] = A[i, j];
double sum = 0;
double[,] ATA = new double[7, 7]; //求 AT*A
for (int i = 0; i < 7; i++)
for (int j = 0; j < 7; j++)
{
sum = 0;
for (int m = 0; m < count * 3; m++)
sum = sum + AT[i, m] * A[m, j];
ATA[i, j] = sum;
}
double[,] ATL = new double[7, 1];
for (int i = 0; i < 7; i++)//求 AT*L
{
sum = 0;
for (int m = 0; m < count * 3; m++)
sum = sum + AT[i, m] * L[m, 0];
ATL[i, 0] = sum;
}
double[,] Rev = new double[7, 7]; //解方程组
if (Math.Abs(Value(ATA, 7)) < 0.00001)
{
MessageBox.Show("方程无解!", "系统信息", MessageBoxButtons.OK);
break;
}
Reverse(ATA, Rev, 7);
double[,] Result = new double[7, 1];
for (int i = 0; i < 7; i++) //求最终改正数
{
sum = 0;

39
石家庄铁道大学毕业设计

for (int m = 0; m < 7; m++)


sum = sum + Rev[i, m] * ATL[m, 0];
Result[i, 0] = sum;
}
//求 thita,kippa,kifa,r,deltax,deltay,deltaz
deltax = deltax + Result[0, 0];
deltay = deltay + Result[1, 0];
deltaz = deltaz + Result[2, 0];
r = r + Result[3, 0];
thita = thita + Result[4, 0];
kippa = kippa + Result[5, 0];
kifa = kifa + Result[6, 0];
if (Math.Abs(Result[0, 0]) < 0.00001 && Math.Abs(Result[1, 0]) < 0.00001 &&
Math.Abs(Result[2, 0]) < 0.00001 && Math.Abs(Result[3, 0]) < 0.00001 &&
Math.Abs(Result[4, 0]) < 0.00001 && Math.Abs(Result[5, 0]) < 0.00001 &&
Math.Abs(Result[6, 0]) < 0.00001)
{
double[,] V = new double[count * 3, 1];
for (int i = 0; i < count * 3; i++)
V[i, 0] = 0;
for (int i = 0; i < count * 3; i++)
{
for (int j = 0; j < 7; j++)
V[i, 0] += A[i, j] * Result[j, 0];
V[i, 0] = -V[i, 0];
}
double ib = 0;
for (int i = 0; i < count * 3; i++)
ib += Math.Pow(V[i, 0], 2);
ib = Math.Sqrt(ib / (3 * count - 7));
absolute_error[0, 0] = ib;
for (int i = 0; i < 7; i++)
absolute_error[i + 1, 0] = Math.Round((ib * Math.Sqrt(Rev[i, i])), 14);
break;
}
}

40
石家庄铁道大学毕业设计

3.3.7 程序验证
图 4-6 绝对定向程序运行成果(连续像对)

图 4-7 绝对定向程序运行成果(单独像对)

41
石家庄铁道大学毕业设计

第4章 一步定向法(光束法)

概述:一步定向法顾名思义就是一步完成定向解算的方法,由前两种方法可知,
解析摄影测量都是两步完成的,但是一步定向法可以由已知的控制点坐标,外加上它
像片上所对应的像点坐标,通过共线方程一步便可以求解出像片的多个外方位元素以
及未知点的坐标。因为此方法一步完成,且过程中只用了严密的数学方法,因此过程
中不会有误差,计算结果的精度完全取决于起算数据,也就是控制点和像点在测量时
候的精度。此方法的精度理论上优于上文所述的前两种方法,只是在解求的过程中难
度相对来说更大一些。该(待定点的地面坐标是用最小二乘法原理解求,常用于光线
束法解析空中三角测量中的应用。)

光束法的原理即是将外方位元素和模型点坐标的计算放在一个整体内进行,而其
平差是以共线方程作为数学模版型,像点的像平面坐标观测值是未知数的非线性函数,
经过线性化后按照最小二乘法原理进行计算。该计算也是在提供一个近似解权的基础
上,逐次迭代来达到趋近于最佳值的。

利用之前的单影像后方交会、空间前方交会、相对定向、绝对定向的方法,能求
解待定点的三维坐标,也叫做待定点的加密。

4.1 主要步骤

整体平差计算:解算每张像片外方位元素和加密点地面坐标

(1)给定每张像片的外方位元素、和已知每个加密点地面坐标的近似值;

(2)由加密点列出原始的误差方程;

(3)把控制点原始误差方程也列出来;

(4)用最小二乘法,法化,再整体同时解求,从而确定每张像片的外方位元素近似
值、每个加密点地面坐标近似值的改正数;

(5)用以上所求的改正数修改每张像片的外方位元素和每个加密点的地面坐标;

(6)重复(2)-(5),迭代计算,最终求出各个像片的外方位元素和加密点的地面坐
标。

4.2 解算过程

仍然从共线方程出发,但是在线性化的过程中和单影像的空间后方交会问题不一

42
石家庄铁道大学毕业设计

样,这个时候要把空间点坐标 X,Y,作为未知数处理,和别的未知参数同时求解他们的
改正数。

首先要明确的是共线方程:

a1 ( X−X s ) +b1 ( Y −Y s ) +c 1 ( Z−Zs )


x=−f
a3 ( X− X s ) + b3 ( Y −Y s ) + c 3 ( Z−Z s )

(3-40)

a2 ( X− X s ) +b 2 ( Y −Y s ) + c2 ( Z −Zs )
y=−f
a3 ( X −X s )+ b3 ( Y −Y s ) +c 3 ( Z−Z s )

共线方程线性化:
∂x ∂x ∂x ∂x ∂x
x=( x ) + ⅆ X s+ ⅆ Y s+ ⅆ Z s+ ⅆφ + ⅆω
∂Y s ∂Ys ∂ Zs ∂φ ∂ω

+∂ x ⅆ ∂x ∂x
ⅆ K + X ⅆX + ⅆY + ⅆZ
∂K ∂X ∂Y ∂Z

∂y ∂y ∂y ∂y ∂y
y= ( y )+ ⅆ Xs+ ⅆ Y s+ ⅆ Z S+ ⅆφ + ⅆω
∂ Xs ∂Ys ∂ Zs ∂φ ∂ω

+∂ y ∂y ∂y ∂y
ⅆK + ⅆX + ⅆY + ⅆZ
∂K ∂X ∂Y ∂Z

(3-41)

误差方程一般形式为:
ν x =a 11 ⅆ X s + a11 ⅆ Y s + a13 ⅆ Z s+ a14 ⅆφ + a15 ⅆω+ a16 ⅆκ −a11 ⅆx −a 12 ⅆY −a 13 ⅆZ −l x

ν y =a21 ⅆ X s +a 22 ⅆ Y s +a 23 ⅆ Z s+ a24 ⅆφ + a25 ⅆω + a26 ⅆκ −a21 ⅆX −a22 ⅆY −a23 ⅆZ −l y

(3-42)

或写成:
νx a 11 a12 a 13 a 14 a15 a16
[ ] = [ ]
νy a 21 a22 a 23 a 24 a25 a26

(3-43)

当像点坐标为等权观测时,误差方程对应的法方程式为:

43
石家庄铁道大学毕业设计

[]
T T T
A A A B X A L
[ T ] -[ T ]= 0
B A
T
B B t B L

(3-44)

用新的符号代替:

[ N 11 N 12
N T
12 N 22 ][ ] [ ]
X
t
-
l1
l2
= 0

(3-45)

消去待定点地面坐标改正数得改化法方程式:

[ N 11 −N 12 N 22 N 12 ]X = L1 −N 12 N 22 L2
−1 T −1

(3-46)

4.3 流程图

44
石家庄铁道大学毕业设计

1. 利用外方位元素和加密点坐标近似值,逐片建立旋转矩阵 M

32. 计各点的变换坐标:
= MT

3. 按共线条件方程计算像点坐标: x 计 = , y 计 = 。

4. 逐点组成误差方程式,法化: 权
i=1,2…m m 为参加平差的点数: j = 1,2,…n n 是总片数。

5. 解答简化法方程,求出各片外方位元素的改正数,并改正近似值。
,,,,
,

6. 用新外方位元素,采用多片前方交会法,计算各连接点的新地面坐标。

改正数小于限差?

7. 采用多片前方交会法,计算各加密点的地面坐标。

4.4 代码分析

/求 A,B,L,解法方程

45
石家庄铁道大学毕业设计

#region
while (true)
{
double[,] R1 = new double[3, 3]; //计算左右像片旋转矩阵
GetR(R1, o_fi1, o_omiga1, o_ki1);
double[,] R2 = new double[3, 3];
GetR(R2, o_fi2, o_omiga2, o_ki2);
for (int i = 0; i < phn * 4; i++)
for (int j = 0; j < 12; j++)
A[i, j] = 0;
for (int i = 0; i < phn * 4; i++)
for (int j = 0; j < n * 3; j++)
B[i, j] = 0;
for (int i = 0, j = 0; i < phn * 4; i++, j++)//计算 A 矩阵
{
double Z1 = R1[0, 2] * (datas[j, 2] - o_Xs1) + R1[1, 2] * (datas[j, 3] - o_Ys1) + R1[2, 2] *
(datas[j, 4] - o_Zs1);
A[i, 0] = (R1[0, 0] * f + R1[0, 2] * datas[j, 5]) / Z1; //X 线元素
A[i, 1] = (R1[1, 0] * f + R1[1, 2] * datas[j, 5]) / Z1;
A[i, 2] = (R1[2, 0] * f + R1[2, 2] * datas[j, 5]) / Z1;
A[i, 3] = datas[j, 6] * Math.Sin(o_omiga1) - (datas[j, 5] * (datas[j, 5] * Math.Cos(o_ki1)
- datas[j, 6] * Math.Sin(o_ki1)) / f + f * Math.Cos(o_ki1)) *
Math.Cos(o_omiga1); //X 角元素
A[i, 4] = -f * Math.Sin(o_ki1) - datas[j, 5] * (datas[j, 5] * Math.Sin(o_ki1) + datas[j, 6] *
Math.Cos(o_ki1)) / f;
A[i, 5] = datas[j, 6];
i++;
A[i, 0] = (R1[0, 1] * f + R1[0, 2] * datas[j, 6]) / Z1; //Y 线元素
A[i, 1] = (R1[1, 1] * f + R1[1, 2] * datas[j, 6]) / Z1;
A[i, 2] = (R1[2, 1] * f + R1[2, 2] * datas[j, 6]) / Z1;
A[i, 3] = -datas[j, 5] * Math.Sin(o_omiga1) - (datas[j, 6] * (datas[j, 5] * Math.Cos(o_ki1) -
datas[j, 6] * Math.Sin(o_ki1)) / f - f * Math.Sin(o_ki1)) * Math.Cos(o_omiga1); //Y 角元素
A[i, 4] = -f * Math.Cos(o_ki1) - datas[j, 6] * (datas[j, 5] * Math.Sin(o_ki1) + datas[j, 6] *
Math.Cos(o_ki1)) / f;
A[i, 5] = -datas[j, 5];
i++;
double Z2 = R2[0, 2] * (datas[j, 2] - o_Xs2) + R2[1, 2] * (datas[j, 3] - o_Ys2) + R2[2, 2] *
(datas[j, 4] - o_Zs2);
A[i, 6] = (R2[0, 0] * f + R2[0, 2] * datas[j, 7]) / Z2; //X 线元素
A[i, 7] = (R2[1, 0] * f + R2[1, 2] * datas[j, 7]) / Z2;
A[i, 8] = (R2[2, 0] * f + R2[2, 2] * datas[j, 7]) / Z2;

46
石家庄铁道大学毕业设计

A[i, 9] = datas[j, 8] * Math.Sin(o_omiga2) - (datas[j, 7] * (datas[j, 7] * Math.Cos(o_ki2)


- datas[j, 7] * Math.Sin(o_ki2)) / f + f * Math.Cos(o_ki2)) *
Math.Cos(o_omiga2); //X 角元素
A[i, 10] = -f * Math.Sin(o_ki2) - datas[j, 7] * (datas[j, 7] * Math.Sin(o_ki2) + datas[j, 8] *
Math.Cos(o_ki2)) / f;
A[i, 11] = datas[j, 8];
i++;
A[i, 6] = (R2[0, 1] * f + R2[0, 2] * datas[j, 8]) / Z2; //Y 线元素
A[i, 7] = (R2[1, 1] * f + R2[1, 2] * datas[j, 8]) / Z2;
A[i, 8] = (R2[2, 1] * f + R2[2, 2] * datas[j, 8]) / Z2;
A[i, 9] = -datas[j, 7] * Math.Sin(o_omiga2) - (datas[j, 8] * (datas[j, 7] * Math.Cos(o_ki2) -
datas[j, 7] * Math.Sin(o_ki2)) / f - f * Math.Sin(o_ki2)) * Math.Cos(o_omiga2); //Y
角元素
A[i, 10] = -f * Math.Cos(o_ki2) - datas[j, 8] * (datas[j, 7] * Math.Sin(o_ki2) + datas[j, 8] *
Math.Cos(o_ki2)) / f;
A[i, 11] = -datas[j, 7];
}
int t = 0;
for (int i = 0, j = 0; i < phn * 4 && j < phn; i++, j++)//计算 B 矩阵
if (datas[j, 1] == 0)
{
B[i, t * 3] = -A[i, 0];
B[i, t * 3 + 1] = -A[i, 1];
B[i, t * 3 + 2] = -A[i, 2];
i++;
B[i, t * 3] = -A[i, 0];
B[i, t * 3 + 1] = -A[i, 1];
B[i, t * 3 + 2] = -A[i, 2];
i++;
B[i, t * 3] = -A[i, 6];
B[i, t * 3 + 1] = -A[i, 7];
B[i, t * 3 + 2] = -A[i, 8];
i++;
B[i, t * 3] = -A[i, 6];
B[i, t * 3 + 1] = -A[i, 7];
B[i, t * 3 + 2] = -A[i, 8];
t++;
}
else
i = i + 3;
double[,] L = new double[phn * 4, 1]; //计算 L 矩阵

47
石家庄铁道大学毕业设计

for (int i = 0, j = 0; i < phn * 4; i++, j++)


{
L[i, 0] = datas[j, 5] + f * (R1[0, 0] * (datas[j, 2] - o_Xs1) + R1[1, 0] * (datas[j, 3] - o_Ys1) +
R1[2, 0] * (datas[j, 4] - o_Zs1)) /
(R1[0, 2] * (datas[j, 2] - o_Xs1) + R1[1, 2] * (datas[j, 3] - o_Ys1) + R1[2, 2] * (datas[j, 4] -
o_Zs1));
i++;
L[i, 0] = datas[j, 6] + f * (R1[0, 1] * (datas[j, 2] - o_Xs1) + R1[1, 1] * (datas[j, 3] - o_Ys1) +
R1[2, 1] * (datas[j, 4] - o_Zs1)) /
(R1[0, 2] * (datas[j, 2] - o_Xs1) + R1[1, 2] * (datas[j, 3] - o_Ys1) + R1[2, 2] * (datas[j, 4] -
o_Zs1));
i++;
L[i, 0] = datas[j, 7] + f * (R2[0, 0] * (datas[j, 2] - o_Xs2) + R2[1, 0] * (datas[j, 3] - o_Ys2) +
R2[2, 0] * (datas[j, 4] - o_Zs2)) /
(R2[0, 2] * (datas[j, 2] - o_Xs2) + R2[1, 2] * (datas[j, 3] - o_Ys2) + R2[2, 2] * (datas[j, 4] -
o_Zs2));
i++;
L[i, 0] = datas[j, 8] + f * (R2[0, 1] * (datas[j, 2] - o_Xs2) + R2[1, 1] * (datas[j, 3] - o_Ys2) +
R2[2, 1] * (datas[j, 4] - o_Zs2)) /
(R2[0, 2] * (datas[j, 2] - o_Xs2) + R2[1, 2] * (datas[j, 3] - o_Ys2) + R2[2, 2] * (datas[j, 4] -
o_Zs2));
}
//法方程求解
double[,] AT = new double[12, phn * 4];
double[,] BT = new double[n * 3, phn * 4];
for (int i = 0; i < phn * 4; i++)
for (int j = 0; j < 12; j++)
AT[j, i] = A[i, j];
for (int i = 0; i < phn * 4; i++)
for (int j = 0; j < n * 3; j++)
BT[j, i] = B[i, j];
double[,] N11 = new double[12, 12];
double[,] N12 = new double[12, n * 3];
double[,] N21 = new double[n * 3, 12];
double[,] N22 = new double[n * 3, n * 3];
double[,] L1 = new double[12, 1];
double[,] L2 = new double[n * 3, 1];
Mulitply(AT, A, N11, 12, 12, phn * 4);
Mulitply(AT, B, N12, 12, n * 3, phn * 4);
Mulitply(BT, A, N21, n * 3, 12, phn * 4);
Mulitply(BT, B, N22, n * 3, n * 3, phn * 4);

48
石家庄铁道大学毕业设计

Mulitply(AT, L, L1, 12, 1, phn * 4);


Mulitply(BT, L, L2, n * 3, 1, phn * 4);
double[,] N22R = new double[n * 3, n * 3];
Reverse(N22, N22R, n * 3);
double[,] N12N22R = new double[12, n * 3];
Mulitply(N12, N22R, N12N22R, 12, n * 3, n * 3);
double[,] N12N22RN21 = new double[12, 12];
Mulitply(N12N22R, N21, N12N22RN21, 12, 12, n * 3);
double[,] N12N22RL2 = new double[12, 1];
Mulitply(N12N22R, L2, N12N22RL2, 12, 1, n * 3);
double[,] A1 = new double[12, 12];
Minus(N11, N12N22RN21, A1, 12, 12);
double[,] B1 = new double[12, 1];
Minus(L1, N12N22RL2, B1, 12, 1);
double[,] Mw = new double[12, 1];
Calculator(A1, B1, Mw, 12, 12);
double[,] N11R = new double[12, 12];
Reverse(N11, N11R, 12);
double[,] N21N11R = new double[n * 3, 12];
Mulitply(N21, N11R, N21N11R, n * 3, 12, 12);
double[,] N21N11RN12 = new double[n * 3, n * 3];
Mulitply(N21N11R, N12, N21N11RN12, n * 3, n * 3, 12);
double[,] N21N11RL1 = new double[n * 3, 1];
Mulitply(N21N11R, L1, N21N11RL1, n * 3, 1, 12);
double[,] A2 = new double[n * 3, n * 3];
Minus(N22, N21N11RN12, A2, n * 3, n * 3);
double[,] B2 = new double[n * 3, 1];
Minus(L2, N21N11RL1, B2, n * 3, 1);
double[,] Mt = new double[n * 3, 1];
Calculator(A2, B2, Mt, n * 3, n * 3);
o_Xs1 += Mw[0, 0];
o_Ys1 += Mw[1, 0];
o_Zs1 += Mw[2, 0];
o_fi1 += Mw[3, 0];
o_omiga1 += Mw[4, 0];
o_ki1 += Mw[5, 0];
o_Xs2 += Mw[6, 0];
o_Ys2 += Mw[7, 0];
o_Zs2 += Mw[8, 0];
o_fi2 += Mw[9, 0];
o_omiga2 += Mw[10, 0];

49
石家庄铁道大学毕业设计

o_ki2 += Mw[11, 0];


for(int i = 0,j = 0; i < phn; i++)
if (datas[i, 1] == 0)
{
datas[i, 2] += Mt[0 + j * 3, 0];
datas[i, 3] += Mt[1 + j * 3, 0];
datas[i, 4] += Mt[2 + j * 3, 0];
j++;
}
if (Math.Abs(Mw[0,0]) < 0.00001 && Math.Abs(Mw[1,0]) < 0.00001 &&
Math.Abs(Mw[2,0]) < 0.00001 && Math.Abs(Mw[3,0]) < 0.00001
&& Math.Abs(Mw[4,0]) < 0.00001 && Math.Abs(Mw[5,0]) < 0.00001 &&
Math.Abs(Mw[6,0]) < 0.00001 && Math.Abs(Mw[7,0]) < 0.00001
&& Math.Abs(Mw[8,0]) < 0.00001 && Math.Abs(Mw[9,0]) < 0.00001 &&
Math.Abs(Mw[10,0]) < 0.00001 && Math.Abs(Mw[11,0]) < 0.00001)
{
One[0,0] = o_Xs1;
One[1,0] = o_Ys1;
One[2,0] = o_Zs1;
One[3,0] = o_fi1;
One[4,0] = o_omiga1;
One[5,0] = o_ki1;
One[6,0] = o_Xs2;
One[7,0] = o_Ys2;
One[8,0] = o_Zs2;
One[9,0] = o_fi2;
One[10,0] = o_omiga2;
One[11,0] = o_ki2;
double[,] V = new double[phn * 4,1];
double[,] V2 = new double[phn * 4, 1];
for (int i = 0; i < phn * 4; i++)
for (int j = 0; j < 12; j++)
V[i, 0] += A[i, j] * Mw[j, 0];
for (int i = 0; i < phn * 4; i++)
for (int j = 0; j < n * 3; j = j + 3)
V2[i, 0] += B[i, 0] * Mt[j, 0] + B[i, 1] * Mt[j + 1, 0] + B[i, 2] * Mt[j + 2, 0];
for (int i = 0; i < phn * 4; i++)
V[i, 0] = V[i, 0] + V2[i, 0] - L[i, 0];
double ib = 0;
for (int i = 0; i < phn * 4; i++)
ib += Math.Pow(V[i, 0], 2);

50
石家庄铁道大学毕业设计

ib = Math.Sqrt(ib / (4 * phn - 12 - 3 * n));


onestep_error[0, 0] = ib;
double[,] Rev = new double[12, 12];
if (Math.Abs(Value(N11, 7)) < 0.00001)
{
MessageBox.Show("方程无解!", "系统信息", MessageBoxButtons.OK);
break;
}
Reverse(N11, Rev, 12);
for (int i = 0; i < 12; i++)
onestep_error[i+1, 0] = ib * Math.Sqrt(Rev[i, i]);
break;
}
}

4.5 运行结果

图 4-8 一步定向程序运行成果

51
石家庄铁道大学毕业设计

52
石家庄铁道大学毕业设计

第5章 结语

我的毕业设计题目是双像解析摄影测量常用算法程序设计及精度对比,其中包括
三种常用算法:后方交会-前方交会,相对定向-绝对定向,一步定向法(光束法)实现
途径是用 C#语言编不同程序从而通过航摄像片解求待定点的地面坐标。

首先我做的就是将基础知识温习一遍,弄懂后方交会、前方交会、相对定向、绝
对定向、和光束法的基本原理,弄明白他们的流程图,以及所有公式推导,这样一个
用三维的空间几何关系来求解地面位置点坐标的过程,简单来说其实就是用测绘最基
础的一些手段完成,就像“后方交会”、“前方交会”等等,在结果精度控制方面,
也是测绘专业基础的平差模型。整个过程都贯穿着测绘的方法思维。每种方法都有优
缺点,都有他合适的方面,该方法的缺点在于每张影像上都必须有 3 个以上控制点,
并且前方交会求取的地面点坐标的精度取决于后方交会所解算外方位元素的精度(前
方交会过程没有充分利用多余条件进行平差计算)。因此,该方法往往在已知影像
的外方位元素、需确定少量的待定点坐标时采用。第二种方法的缺点在于需要已知重
叠区内最少 5 对同名点。同样地,绝对定向的精度取决于相对定向精度。因此常用于
航带法解析三角测量的应用。光束法方法一步完成,精度完全由控制点和像点坐标量
测精度决定,理论上比以上两种方法精度高。但该方法相较以上两种方法,求解过程
较复杂。(待定点的坐标是完全按最小二乘法原理解求出来的,该方法常用于光线束
法解析空中三角测量中的应用。)

在把程序的原理都学习一遍以后,就是想方设法跟程序挂钩,对于 c#程序,了解
相对多一点,下一步就是把之前学习这门课程的系统架构再好好研究一下,刚好电脑
中还存有之前做成的程序,这样一来就为编程创造了基础。
毕业设计是对大学四年所学习的一方面总结,今年是特殊的一年,由于疫情,给
很多探讨与学习交流、或者询问等等的过程增加了难度,还好拥有网络资源可以利用。
毕业设计期间,我通过大学四年用到的好用的网站,搜索了无数个有用的信息对毕业
设计进行了完善,同时也向指导老师和之前的程序设计老师进行请教,学习了很多之
前从没意识到的问题,也明白了只要肯努力,什么都可以做到的道理,这样的一整段
过程相信是今后学习生活的珍贵的宝藏。

53
石家庄铁道大学毕业设计

参考文献

[1] 林君建 苍桂华主编.摄影测量学[M].国防工业出版社,2006.


[2] 赵红主编.摄影测量与遥感技术下册[M].武汉理工大学出版社,2016.03.
[3] 李海启. 非量测型数码相机近景摄影测量的精度研究[D]. 河南理工大学, 2009.
[4] 张剑清, 郑莉. 基于结构光的不规则工业钣金件三维曲面重建[J]. 地理空间信息, 2004, 2(6):9-10.
[5] 顾斌. 数字图像与激光点云配准及在建筑物三维建模中的应用[D]. 中国矿业大学.
[6] 杨立君, 李浩. 数字地质编录中坡面展示影像图的制作研究[J]. 现代测绘, 2004, 27(6).
[7] 顾斌. 数字图像与激光点云配准及在建筑物三维建模中的应用[D]. 中国矿业大学.
[8] 姚继锋. 多传感器集成检校的理论方法与实践[D]. 山东科技大学, 2011.
[9] 桑中顺. 隧道变形监测中的近景摄影测量技术研究[D]. 同济大学, 2008.
[10] 中国铁道百科全书总编辑委员会《工程与工务》编辑委员会编,中国铁道百科全书 工程与工
务, 中国铁道出版社[M],2004.09,504.
[11] Baussard M, Fontanel A. Equipment for analytic photogrammetry and remote sensing; International
Symposium, Paris, France, September 12-14, 1978, Proceedings [J]. 1979.
[12] Papadimitriou D V, Dennis T J. Epipolar line estimation and rectification for stereo image pairs [J].
IEEE transactions on image processing, 1996, 5(4): 672-676.
[13] Karl R. A study of Martian topography by analytic photogrammetry [J]. Journal of Geophysical Research,
1973, 78(20):4411-4423.

54
石家庄铁道大学毕业设计

致谢

完成此篇毕业论文,要对帮助过我的老师、同学进行感谢。
首先要感谢测绘工程系的所有老师,因为你们,让我在四年学习了这么多专业知
识,让将来的我有了一些步入职场的资本,为我个人价值的提现提供了重要且必要的
前提。谢谢你们的陪伴,我才经历过这终生难忘,弥足珍贵的四年大学时光,你们把
自己走过的路讲述给我们,把专业知识传授给我们,全心全意的付出,尽职尽责不愧
对于老师这一职业,大概率让我们今后少走很多弯路。
另外需感谢我的指导老师郭峰老师。毕业设计期间,由于疫情原因迟迟不能开学,
郭老师隔三差五会在网络上给我们开视频会议,给每个学生都有照顾得当,会在每次
视频会议期间让每位所指导的同学讲解最近的进度,并且指出问题,给出建议,同时
也帮我们解答了不少问题。特别是在毕业设计后期每天都会跟我们进行交流,在本来
大家没有当面交流的如此困难的疫情期间,老师的指导当然给了我们无数的帮助和安
慰。另外要提的就是之前的程序设计老师张瑞娅老师,由于长时间没有学习编程,一
部分知识已经忘记,我便时不时像张老师请教问题,张老师也是不管多忙,一空下来
就会悉心教导,一页一页将编程的知识拍照发给我。这些种种的感激之情,在很难的
疫情期间让我们感受了无穷尽的温暖,也让我们的学习能力有所提高,另外也让我们
体会到了完成一项工作的艰辛,为今后学习工作提供了良好的基础。
还要感谢一同做毕设的同学们,缺少交流往往不是一个很明智的选择,同学们多
讨论,多提提自己的想法,多交流,取长补短,会将一件事情做得更好。毕业设计期
间,我跟同专业的同学在网上交流,大家分享各自觉得好用的知识网站,优质资源,
这给毕业设计有了很大的帮助。我的程序设计就受益于此。我们共同走过的这四年美
好的大学时光,大家都给彼此带来了很多的温暖,一个温暖的集体会发挥很大的能量,
这让我们慢慢成长,让我们慢慢成熟,让我们有了勇气去面对挑战,让我们对未来有
了憧憬。
最后,祝所有同学前程光明、未来可期。祝所有老师健康幸福、生活美满。

55
石家庄铁道大学毕业设计

附录

附录 A.翻译原文

56
石家庄铁道大学毕业设计

57
石家庄铁道大学毕业设计

58
石家庄铁道大学毕业设计

59
石家庄铁道大学毕业设计

60
石家庄铁道大学毕业设计

61
石家庄铁道大学毕业设计

62
石家庄铁道大学毕业设计

63
石家庄铁道大学毕业设计

64
石家庄铁道大学毕业设计

65
石家庄铁道大学毕业设计

66
石家庄铁道大学毕业设计

67
石家庄铁道大学毕业设计

68
石家庄铁道大学毕业设计

69
石家庄铁道大学毕业设计

70
石家庄铁道大学毕业设计

71
石家庄铁道大学毕业设计

译文:

摄影测量方法的发展 压力分析与质量控制
美国伊利诺伊州迪卡尔布市,北伊利诺伊大学
Donna L. Kubik
美国伊利诺伊州巴达维亚费米国家加速器实验室的 John A.Greenwood(与
MuCool 吸收剂合作组织合作)
.摘要

已经开发出一种用于应力分析的摄影测量方法,以测试为氢吸收剂
(介子冷却通道的主要组件)设计的非标准薄窗。 吸收器窗户测试的
目的是证明对窗户行为和强度作为施加压力的函数的理解。 这是通过
将通过摄影测量法测量的窗口变形与通过有限元分析(FEA)预测的变
形进行比较来完成的。 FEA 分析表明,应变对窗厚具有很强的敏感性。
选择摄影测量方法来测量窗户的厚度,从而提供对 FEA 更准确的数据。
加上硬件和测试程序的改进,所有尺寸的精度均为 5 微米,并与 FEA
达成了实质性协议
预测。

2.引言

Muon 加速器被认为可以扩展高能物理的能量范围。 使用强子


和电子对撞机的当前方法正达到临界尺寸和性能约束。 强子对撞
机的性能受到限制,因为会产生复杂的多粒子碰撞,并且在点状新
粒子状态产生中会迅速减少相互作用的分数(数量和能量)。 轻
子对撞机产生简单的相互作用,这将碰撞的有效能量比强子对撞机
放大了一个数量级。e + e 对撞机向多 Tev 能量的 扩展受'
beamstrahlung ' 约束(附录 A)和同步加速器辐射效应,它们随着
(E e / m e)4 增大。然而,μ 子具有可忽略不计的辐射和'
straßstrahlung '[1]。

μ 介子的责任是,它们衰变与 2.2×一生- 6 Ë μ / 米 μ 小号并且它们


通过衰变创建成弥散相空间。 通过电离冷却可以减小相空间,并
且寿命足以应付存储环碰撞。 在电离冷却中,介子在穿过材料
(称为吸收器)时会通过电离相互作用而失去能量,同时失去纵向
和横向动量,并且会重新加速,仅恢复纵向动量。 横向动量的损

72
石家庄铁道大学毕业设计

失降低了粒子的发射,从而冷却了光束。 然而,材料中多次散射
的随机过程增加了光束发散的 RMS,增加了加热项,必须在冷却设
计中加以控制[1]。

吸收材料的选择是由能量损失和材料中的多次散射之间的权衡
决定的。 能量损失取决于 Z / A,而散射是 Z 2 的函数,表明材料
的最佳选择是氢。 类似地,用于氢气的容器应由低 Z 材料制成。
铍是最佳选择,但由于铍的毒性作用,已选择了铝。 该容器是与
梁轴向对称的圆柱形容器。 端盖(称为窗口)的设计可最大程度
地减小中心区域的厚度(如预期的光束尺寸所指示)(以最小化散
射),同时保持强度。 当前中微子工厂的设计目标是在整个冷却
通道上将光束从约 3cm rms 半径(约 10cm 完整尺寸)冷却到约 1cm
rms 半径,并可能将温度降低 3 倍(约 3mm rms 或更小)。对撞机
场景[1]。

与氢有关的安全问题使得必须了解车窗的强度。 过去,氢气
一直用于高能物理实验中,但是将其应用于介子冷却提出了新的挑
战。 与在氢气泡室和其他固定靶中相比,在氢吸收器中的能量沉
积将大得多,并且其体积将小得多。

因此,需要对窗的行为和强度作为施加压力的函数有清楚的了
解。 通过将通过摄影测量法测量的窗口变形与 FEA 预测的变形进
行比较,可以证明这一点。 摄影测量法是一种三维坐标测量技术,
它使用摄影图像作为度量衡的基本介质。

由于 FEA 分析表明应变对窗户厚度很敏感,因此,摄影测量方
法也已用于测量窗户的厚度,从而为 FEA 提供更准确的输入。 这
些测量值也已与设计进行了比较,从而提供了一种质量控制方法。

本文介绍:
• 开发摄影测量方法进行应力分析和质量控制
• 摄影测量学简史
• 摄影测量学的最新发展
• 关于摄影测量原理的描述
• 压力分析,测试设计,结果以及与 FEA 的比较
• 质量控制测试和结果
• 与设计相比测得的厚度
• 证据表明,如果将这些结果输入到管道
有限元分析
• 未来窗口的计划和改进

73
石家庄铁道大学毕业设计

3.摄影术的简要历史

摄影测量学的最早根源可以追溯到文艺复兴时期的画家,尤其
是达芬奇(Leonardo da Vinci),他研究了 1400 年代后期图片几何
分析所涉及的原理。 下一个重要的发展是射影几何,它构成了摄
影测量的数学基础。 值得注意的是从 1600 年代中期到 1700 年代
中期的 Desargues,Pascal 和 Lambert。 不能发生摄影的实际做法,
直到 1839 年达盖尔的摄影的发明 一年达盖尔的发明后,用风筝和
气球用于拍摄航空照片,上校艾梅 Laussedat 法国军队的直接使用
摄影地形测绘的第一次实验。洛塞达特被认为是“摄影测量之父”。
1903 年飞机的发明促进了现代航空摄影测量学的出现。 仪器和
技术的进步一直持续到上个世纪[2,3]。
4. 摄影术的最新发展

摄影测量需要三个设备:相机,目标和软件。 这些领域中每
个领域的许多最新进展都用于开发摄影测量应力分析和质量控制方
法。
1 数字成像

除了最奇特的应用之外,数码照片已经取代了基于乳液的照片。
由于数字图像处理软件,编码目标和自相关方法的进步,现在可
以完全自动化大量摄影测量任务[4]。 使用了来自 Geodetic
Services,Inc.(GSI)的称为 V-STARS(视频立体三角测量和后方
交会软件)的相机和软件系统。 V-STARS 使用高分辨率 CCD 相
机执行数字摄影测量。
4.2 自我识别对象

使用自我识别的编码目标和称为 Autobar 的工件可以自动完成该


过程(图 1)。 编码目标包含七个以二维 阵列形式放置的正方形
特征,从而提供了一组可被扫描软件识别的独特图案以及代表目标
位置的中央圆形特征。形状像十字 的 Autobar 具有六个特征,这些
特征以三维模式排列,可被扫描软件识别。 所述 AUTOBAR 充当
自识别参考帧指示器,从而使该对象坐标的初始近似值可以成立。
在处理的最后阶段,通常会将此初始参考系转换为更适合对象几何
形状及其分析的位置。 将原点从 Autobar 转换为窗口的中心,以便
窗口凸缘定义 XY 平面,并且凸边沿+ Z 方向(图 2)。

74
石家庄铁道大学毕业设计

图1图2

4.3 智能相机
4.3.1 硬件

硬件开发以“智能相机”的形式出现。 智能相机包含一台集
成计算机,并在拍摄后立即处理图像,并提供有关图像的信息,因
此可能会出现诸如曝光差,编码目标数量不足或缺少自动条,盘已
满以及镜头盖不上等错误。在数据采集期间进行检测和诊断[4]。
所使用的相机是 GSI INCA(智能 CAmera),图像尺寸为
18.4x27.6mm,2044x3072 像素,固定焦距为 17mm,视野为 56 ° x76
° 。 固定镜头焦点,以使有用的景深为 0.5m 至 30m。
4.3.2 硬件精度

测量精度取决于相机的分辨率和质量,被测物体的尺寸,拍摄
的照片数量,图片的几何布局以及相机校准的正确性。 根据
GSI,相机系统和软件可以通过使用目标的强度加权分析来生成像素
的 1/50 量级的质心确定。 此值基于使用手持摄像机的单个图像,
使用永久目标而不是使用投影仪(请参见 4.5.1),并且目标大小至
少为 3 像素乘 3 像素。 通过检查设计的细节,很明显,这是对系
统分辨率的合理保守评估。 这样,它为那些有兴趣提取测量值的
人留出了空间,这是一个更精确的机会。 考虑到 3072 像素
(2044)的宽度(高度),其措施 27.6mm(18.4),单像素措施 9
μ 米平方。

乍看之下,9 μm 似乎是分辨率的下限,但是事实并非如此。
以下示例说明了这一点。 每个像素对入射光的敏感度为 8 位范围,

75
石家庄铁道大学毕业设计

输出范围为 0 到 255。 如果光束以足够的亮度填充单个像素的整个


区域以实现 255 的输出,但没有进入进入饱和状态,并且所有相邻
像素的输出都为 0,可以说光束的中心在像素的中心。 如果对光束
进行平移,使得相邻像素之一的输出为 1(其他七个相邻像素的输出
保持为 0),则原始像素的输出为 254。 翻译需要达到这种状态的
像素(9 宽度的 1/256 μ 米/ 256),或 0.035 μ 米。 至少在将强度
加权用于位置确定时,可以将此值视为 CCD 的基本位置分辨率。
实际上,该值将受环境光条件和接近饱和水平的影响,应避免使用。
但是,可以使用滤波技术和曝光设置以及环境光控制来增强信噪
比,从而恢复大部分的理论分辨率。
4.3.3 操作因素

实际目标比最小 3 像素乘 3 像素要大得多,这有几个原因,其


主要目的是为了改善质心确定性,同时还要过滤掉可能被明亮的非
目标物体照亮的不需要的虚假像素,例如 像素头,电路板引脚等。
除了像素数之外,像素块的形状也是一种重要的过滤标准,可以拒
绝虚假目标。 如上所述,GSI 用于质心确定的算法基于强度加权
方法,但具有一些其他专有功能。

无需详细说明用于验证质心确定算法的仿真过程,可以公平地
说,较大像素像素的质心可能比较小像素像素的质心更好。 为了
我们的目的,寻求大约 50 个目标像素数。 在实践中,由于这项工
作,像素数通常超过 50,并从较近的摄影台接近 100。 与质心确
定相关的目标的最佳大小将由蒙特卡洛专家决定。 当然,应用于
此系统的 100 像素以上的像素似乎几乎没有优势。

可以通过创建目标场,相对于该场固定摄像机,然后拍摄目标
的重复图像来确定摄像机的功能分辨率,即摄像机可以作为系统实
现的分辨率。 图像平面中每个目标的质心的 XY 坐标应在功能分
辨率级别上保持恒定。 如本文稍后将详细介绍的那样,由于包含
了投影仪,因此这种检查变得很复杂。

以下各项有助于提高摄影测量解决方案的精度:
• 相机分辨率
• 相机的结构完整性(CCD 是否相对于镜头焦点移
动)
• 尺寸均匀性(例如,由于车载计算机产生的热量,
照相机会“有害地”增长)
• 相机校准的正确性
• 其他可能未知或未知的更微妙的因素

76
石家庄铁道大学毕业设计

• 现场稳定性
• 相机相对于物体的位置的几何形状
• 曝光次数
• 对象空间大小
4.3.4 测量精度

一件作品的精度,即应用于手头项目的系统精度,首先要取决
于最终用户的要求。 在这种情况下,在预计最大挠度约为 2mm 的
情况下,挠度方向(+ Z 方向)的精度为 10 μm 就足够了,但其目
的是通过改进方法来提高 XY 方向的位置精度。

检查对象的大小,可用的几何形状合适的摄像头位置以及从摄
像头到对象的实际工作距离,确定从摄像头到对象的距离在 0.7m 至
1.2m 范围内,或者标称值为 1.0m。 考虑到相机的 17mm 镜头,可
以实现大约 60 的放大率((1.0 +0.017)/0.017)。 由基本分辨率
(0.035 乘以此值 μ M)产生工作的 2 分辨率的下限 μ 米。
4 方法的完善

最初的努力表明,表面变形正在为 8〜15 的精度测量 μ 米,这


是从图像 50-60 之间确定(目标位置的部件的精确度被确定为 V-
STARS 束调整的一部分)。 虽然结果接近可接受的水平,但横向
分量却比预期的要大,高达 0.2mm,并且非常不规则。 在检查此
问题的原因时,发现了许多机会,可以提高整体精度。 这些早期
工作的罪魁祸首是将投影仪安装在光具座上的方法。

通过仔细改进所使用的程序以及某些系统组件,可以实现 3.5 至
5 μm 的精度。 这主要是通过稳定系统的组件,检查摄像机和投影
仪的中期(几个小时)稳定性以及为摄像机位置开发最佳几何形状
来完成的。

稳定性测试是通过在两天的时间内,在几小时内于十分钟内拍
摄一系列近距离(0.5m)的目标图案(直径约 5mm)图像(投影到
镀铝板上)而完成的,分钟间隔。 铝板和投影仪一样都固定在花
岗岩桌上,而相机则安装在其标准三脚架上。 使用电缆释放将摄
像机与观察者隔离。 将第一张图像用作参考,并将每个连续图像
与其进行比较。

每个图像分析了大约 2,000 个目标。 而移位物的约 1.5 两天之


间指出 μ 在图像平面中的 X 和 Y 米,每几个小时的会议的内部一致
性是在 0.1-0.4 的范围内 μ 米在 X 和 Y 这过程检相机和投影仪的有

77
石家庄铁道大学毕业设计

效稳定性是一个单一的系统。 数据表明,我们的稳定工作取得了
成功。

至于几何形状,目标是在每个压力时期内拍摄尽可能少的图像。
GSI 提供的经验法则规定,最少十二个分布良好的摄像机位置足
以确保最佳效果。 由于从计量学角度来看,应力的最有用指示是
在 Z 方向上的位移,因此寻求在相机位置上施加偏差以增加视差角。
这是通过夸大空军基地,X 和 Y 方向上的摄像头站之间的距离来
完成的。
4.5.1 预计目标

通常,影响摄影测量学接受度的一个限制因素是需要针对目标
点[4]。 如果物体易碎,则可能不希望触摸物体以应用标准的反光
目标,并且如果目标覆盖的面积或所需密度较大,则适当覆盖该区
域可能非常耗时。 因此,近来发展的重点是消除物理上瞄准被测
物体的必要性。 由于吸收体窗口非常薄(在中心处约为 330 微
米),并且需要非常完整的区域覆盖,因此非接触式靶向方法很有
吸引力。

选择了一种新的非接触式瞄准技术,该技术采用大功率频闪投
影仪 GSI 的 PRO-SPOT 将点(目标)图案投影到表面上(图 2 和图
3)。 这些点具有高对比度和高质量,可以模仿常规的逆向反射目
标,但没有固有的厚度。 当该技术应用于测量窗口尺寸以进行质
量控制时,此功能特别有吸引力。 可以将结果直接与设计进行比
较,而无需对目标厚度进行任何补偿。 尽管需要薄薄的一层白色
涂层来在反射铝表面上获得高对比度,但事实表明,所测量的窗口
尺寸没有受到影响。 在窗口 4 的测试中,通过测量窗口的两面来
努力测量材料的厚度。 首先,使用标准涂层程序进行测量,然后
使用极轻的涂层“除尘”进行测量。 的两组测量值的比较产生了
3.6 的差 μ 米的凸缘厚度,如通过从每个表面上约 200 个目标计算最
佳拟合平面来确定。
在法兰测量成功的同时,由于铝的过多表面反射,较薄的涂层
导致球形表面的对比度不足。 这导致质心确定性较差,因此,误
差估计比以前的集合差。 试图像在第一种情况中那样重新涂覆表
面,但是技术差和耐心不足导致涂层材料过度流动。 这导致增加
了约 30 表观厚度 μ 微米。 尽管变形测量值对涂层厚度不敏感,但
很明显,厚度测量需要使用适当的涂层技术。

78
石家庄铁道大学毕业设计

图3

投影系统的原理很像普通的幻灯机。 甲频闪 光源,由照相机


闪光灯(图 4)触发照亮目标幻灯片。 这种照亮的图案穿过一系列
透镜,这些透镜会放大幻灯片并将其投影到物体上。 由于需要精
确控制整个过程,因此投影机的实际结构很复杂。 到目前为止,
最大的问题是点图案的稳定性。 模式的不稳定性等同于在测量过
程中移动对象[4]。

如上所述,在窗口 1 和窗口 2 的测试期间,有投影机不稳定的


迹象。 如果投影系统稳定,则在整个测试过程中与投影机正交
(在 XY 平面中)的目标的坐标应保持恒定。 。 这种不稳定性归
因于投影仪的运动而不是窗户的运动,这是因为注意到只有投射目
标的坐标发生了变化,而附着在窗户上的回射目标却保持不变。
通过设计更稳定的投影机支架(图 5)以及通过带遥控扳机的三脚架
操作相机,可以提高稳定性。

相机 闪光灯

0 10 14 24
milliseconds

Figure 4

79
石家庄铁道大学毕业设计

图5
2 目标模式

目标图案是由幻灯片中的孔阵列创建的。 投影仪随附的幻灯
片用于窗口 1 和窗口 2 的测试。 此幻灯片具有 5600 个点的矩形阵
列,但只有 200 个点以所需的点大小投影在窗口表面上。 为了采
样更大比例的窗户表面并更好地适应窗户的圆形几何形状,设计了
带有放射状图案的定制幻灯片,该幻灯片将覆盖范围增加了一个数
量级(图 6)。 载玻片上的孔在 0.4mm 中心的直径为 0.2mm。
放大约 15 倍后,在窗口上产生了 3mm 直径的目标。

图6

径向模式在窗口 3 和窗口 4 的测试中被证明非常有效,可在窗


口中心附近提供更多数据。 这是最重要的位置,因为它是窗口最
薄,最弱的区域。
5.摄影程序
1.1 摄影测量原理

摄影测量学使用视差原理确定目标物体的坐标。 视差是从不
同有利位置交替观察时对象位置的明显偏移。 视差是我们的眼睛
衡量周围环境距离的主要依据。 距离和视差齐头并进。 距离较
远的物体的视差较小。

80
石家庄铁道大学毕业设计

1.2 天文类似物

天文学家使用视差,通过测量相对邻近的恒星在可识别的,距
离更远的恒星背景下由于地球围绕太阳运动而产生的表观位移来确
定恒星距离(图 7)。 背景恒星之间的角距离(视差可忽略不计)
提供了测量位移的标度。 基线的一半是 1AU。 该角度是视差角
p 的两倍,并与基线和恒星的视线形成直角三角形。 使用切线的小
角度近似值,可以计算出距离:d = 1AU / p。

图7

类似地,摄影测量测量最初是无量纲的。 尺寸是通过使用一
种或多种通常是殷钢或碳纤维结构的鳞片来确定的(图 8)。

81
石家庄铁道大学毕业设计

图8

注意,必须通过独立的测量来知道恒星视差测量中使用的基线
长度,即地球与太阳之间的距离。 从历史上看,这是通过观察行
星的视差来测量的。 现代方法是使用雷达技术测量距金星的距离
(附录 B)。

与用于天文学的恒星视差计算不同,基线必须通过独立的方式
确定(图 9),在会聚地面摄影测量中,解决方案基于射线相交原理。
在这种摄影测量法中,照相机不需要并且通常不位于预定位置。
摄影测量解决方案是通过使用共线性方程式解决方案[2],[3]来完成
的,其中射线是连接物体空间中一个点和 CCD(图像空间)中该物
体图像的线。 在经过完美校准的相机中,单个图像的所有光线均
会通过相机的焦点。 如果几个对象的先前已建立坐标,在对象空
间(X,Y,Z)的焦点的位置和图像的方向(滚动,俯仰,偏转或
Ω ,φ ,κ )可以被确定。 此过程称为切除。 一旦从几个不同
摄像机位置拍摄的图像确定了这些参数,就可以通过与来自这些其
他目标的光线相交来计算未知目标的位置(图 10)。 此过程称为
三角剖分。 该过程是重复性的,因为随着未知目标的出现,可能
会切除更多的图像 并且可能会三角测量更多的目标。 重复切除和
三角剖分,直到确定所有图像中所有对象的所有坐标为止。

82
石家庄铁道大学毕业设计

图 9 图 10
.2 系统选项–单摄像机与多摄像机

与执行恒星视差测量时一样,不需要同时拍摄照片。 在现代
摄影测量学中,有两种获取图像的常规选项:1)在感兴趣区域周围
的不同位置设置多个摄像头,同时拍摄图像;或 2)单个摄像头,该
摄像头被移动到感兴趣区域周围的各个位置,并且图像是顺序拍摄
的。 选择是场景的波动性是否太大,以至于场景在短时间内可能
会发生显着变化,或者是否需要尽可能高的精度,并且可以期望场
景在合理的短时间内保持稳定。 有两个问题起作用:1)摄像机校
准和 2)可用于进行坐标计算的光线数量。

在多摄像机系统中,每个摄像机的校准通常基于制造商的先前
分析,该分析可能是在与后续测量期间不同的条件下完成的。 在
单相机系统中,称为自校准的过程 是测量解决方案的一部分。 自
校准是一种计算过程,可根据环境条件(例如,相机温度)的要求
改进相机的校准。 通过使照相机以正常方向拍摄许多图像,并绕
其主轴滚动(旋转 90 度),可以获得足够的信息来确定与照相机标
称校准的偏差。

之所以使用单摄像头系统,是因为需要尽可能高的精度,并且
可以预期场景在获取十二个图像所需的时间内保持稳定。 在这十
二张图像中,有两张是在相机旋转 90 度后拍摄的(图 11)。 获取
十二张图像所需的时间通常在六十到七十秒之间。

83
石家庄铁道大学毕业设计

图 11
5.3 摄影测量数据缩减

天文学家不仅仅依靠恒星在地球轨道末端的两个快照来确定距离。 记录尽可
能多的对目标恒星的观测。 角度偏移非常小,很容易在噪声中丢失。 与摄影
测量法中的校准类似,必须针对地球大气的影响和望远镜光学系统的缺陷对数据
进行校正。 天文学家希望确信视差只能解释视差[5]。
本着相同的精神,摄影测量中使用了两个以上的图像。 十二射线相交是典型的。
由于只有两条光线可以确定 3D 坐标,因此通常会过度确定对象的位置。 进行最小二
乘分析(称为束调整),以确定每个对象的最可能坐标,误差估计,相机的校准以及
整个过程的精度估计。 十二个射线的交点导致不确定性的椭球。 V-STARS 软件包
摘要报告了每个测量点的椭圆体的 X,Y,Z 分量(图 12)。

图 12
6.通过光度法进行应力分析

在最初测试应变计和摄影测量法之后,摄影测量法成为选择在不同应力量下窗
的行为的首选方法。摄影测量法比更标准的应变计更适合测量应变,原因有两个:
1)使用非接触式目标进行摄影测量,不存在测试会损坏或改变易碎窗的危险;
2)覆盖面更加完整。 初始测试设计(窗口 1 和窗口 2)
测试的前两个窗口装有应变计,并通过摄影测量法进行测量。 每次测试中测得
的量是不同的。 应变计测量材料的切向伸长率∆ L / L,而摄影测量法则测量在 Z 方
向上的挠度(目标垂直于车窗凸缘投影)。 与粘在表面上的应变仪不同,目标不会

84
石家庄铁道大学毕业设计

响应应力在 XY 方向上显示任何运动。 因此,不可能直接比较应变计和摄影测量数


据。
但是,FEA 可以模拟应变和挠度作为应力的函数。 如果两种类型的测量均与 FEA
相符,则可以得出结论,两者都是测量窗口行为的可行方法。

沿相距 90 度的四个径向线施加了几个应变计(图 13)。 通过惠斯通电桥读取


每个量具,并在平行支路中安装温度补偿量具。该测试在室温下通过加压水施加
应力进行。应变计和摄影测量的证据之间,屈服点是一致的。

图 13
来自新测试设置的数据(窗口 3 和窗口 4)

如上所述,来自窗口 1 和窗口 2 的数据激发了设置稳定性和摄影测量技术的改进。


因此,本文讨论的大部分数据将来自窗口 3 和窗口 4。
对于几个半径(在 XY 平面内),压力与屈服特性之间的关系可以在图 14 中看到。
数据提供了清晰的图形,显示了在较小的半径(窗口更薄)下在较低压力下的屈服,
而在较大的半径(窗口较厚)下没有观察到屈服。

Δzvs 压力

视窗 3

85
石家庄铁道大学毕业设计

径=

0.56mm 半

径=

6.56mm 半

径=

19.78mm 半径=

46.17mm 半径=

52.78mm 半径=

59.42mm 半径-

79.43mm 半径=

92.93mm 半径=

106.5mm 半径=

120.238mm

图 14
6.3 与 FEA 的比较
FEA 包括对线性区域中窗口行为的预测,直至最终屈服点。 可以将由摄影测量
法得出的坐标所描述的窗口从零施加压力产生的挠度与由 FEA 预测的每种测试压力的
挠度进行比较。 如图 3a 至 15f 所示,窗口 3 的代表性结果绘制为“挠度(ΔZ)与压
力的关系”,用于增加半径。

图 15a

86
石家庄铁道大学毕业设计

图 15b

图 15c

87
石家庄铁道大学毕业设计

图 15d

图 15e

88
石家庄铁道大学毕业设计

图 15f

窗口 4 在液氮(LN)温度下测试。 使用的杜瓦瓶不允许进行摄影测量。 因
此,在室温至 50psi(远低于屈服应力)下进行摄影测量,以确保在进行 LN 测试
之前不会改变材料特性。 将这些测量结果与来自窗口 3 的数据进行了比较。
窗口 3 数据和窗口 4 数据(图 16a-16c)之间的一致性表明了制造的一致性以及使
用摄影测量法进行材料控制以进行未来生产运行的可行性。 窗口形状的测量
(请参阅 6.5)提供了与设计的几何一致性有关的信息,但不会透露有关材料中任
何缺陷的信息。 此测试需要测量窗户对应力的响应。
30 psi 窗口 3 和窗口 4

35 psi 窗口 3 和窗口 4

89
石家庄铁道大学毕业设计

0 20 40 60 半径(mm) 80 100 120 140 160

40 PSI 窗口 3 和窗口 4

0 20 个 40 个60 个半径(mm) 80 100 120 140 160

为了符合安全要求,有必要确定窗户破裂的压力。 测试的所有四个窗口都非常接
近 FEA 预测的压力(表 1)。

表 1. FEA 结果和测试结果 *摄影测量的厚度

有限元分析结果 试验结果
最小窗口厚 破裂压力 窗厚从 测得的破裂
度(毫米) (psi) CMM(mm) 压力(psi)

窗口 1 29.3 0.11 48 0.11 42



视窗 2 29.3 0.33 117 0.33 119
万 90
视窗 3 29.3 0.345 123 0.345 120

窗口 4 80K 0.33 / .348 156/162 0.33 * / 0.36 152
石家庄铁道大学毕业设计

.4 广泛覆盖的好处
摄影测量法所提供的非常广泛的区域覆盖范围允许观察到谐波效应(图 17)。
这种效果正在调查中。 已经对此效果提供了几种解释,例如:作为偏移目标图案;
窗形偏心; 窗口中的实际静态谐波振荡;也许是几种效果的叠加。 这些影响在应变计
数据中是不可见的。

半径
=6 毫米半径
=13 毫米半
径=19 毫米
半径=26 毫
米半径=33
毫米半径
=39 毫米半
径=46 毫米
半径=52 毫
米半径=53
毫米半径
=59 毫米半
径=66 毫米
半径=72 毫
米半径=79
毫米半径
=89 毫米半
径=93 毫米
半径为
100mm
radiu 小号=
106mm 半
径= 116mm
半径= 120mm
半径= 127mm
半径= 134mm

6.5 材料控制(与设计比较)
摄影测量也被用于比较窗户尺寸和设计。 这是对由坐标测量机(CMM)进行
的测量所提供的初始材料控制方法的补充。 摄影测量法并行地从约 1000 个点中
获取数据,而 CMM 串行地获取数据,从而限制了实际测量点数。 摄影测量法
也很有吸引力,因为与 CMM 不同,它是一种非接触式测量方法。 在检查计划
更薄的未来窗户设计时,这将变得更加重要。

91
石家庄铁道大学毕业设计

6.6 初始测试设置(窗口 4)

窗口 4 的形状是通过摄影测量法来测量的,方法是从凹面和凸面对窗口进行成
像,然后将这两组测量值通过参考夹具中的公共目标在一个坐标系中捆绑在一起。

6.7 与设计比较
窗口 4 的摄影测量结果表明,窗口的形状有些偏心。 从两种查看数据的方法
(图 18),晶须图和测量与设计之间的差异图(图 19)可以明显看出这一点。
数据表明的 330 的中心厚度 μ 微米。 该值比 CMM 指示的要薄,这与爆破压力低于
FEA 预测的爆破压力一致,FEA 使用 348um 的 CMM 厚度。

测量厚度与设计厚度之间的差异

7.表面建模

正在开发表面建模技术以增强摄影测量技术在材料控制中的应用。
.1 TIN-三角不规则网络
最初尝试使用 TIN 对表面进行建模。 TIN 是一系列三角形,类似于测地圆顶,
由表面上的节点组成(图 20)。 每个三角形或平面刻面代表一个近似于表面的有界
区域。 通过将边界内的 XY 对提供给平面方程,可以确定 Z 值。 当选定的 XY 对远
离任何节点时,都会发生小误差。 用三角形的一侧测量约 6 毫米,和球面表面的标
称半径 300 毫米,平面和球体之间的最大间隔为约 6 μ 米,总是相同的符号。 误差在
用于凸面和凹面可以是高达+/- 15 厚度使用 TIN 建模 μ 米。 由于目标图案密度处于极
限,因此放弃了 TIN 建模的使用。

92
石家庄铁道大学毕业设计

图 20
.2 小补丁球面拟合(SPSF)
为了更好地模拟窗户表面,开发了一种称为 SPSF 的技术。 利用窗口的近似球
形,即使在最大变形的情况下,也提出了一种解决方案,该解决方案涉及确定少量相
邻节点(15 至 25)的最佳拟合球体。 样品溶液的少数已经表明,这是一个非常有前
途的方法,在 2-3 提供最佳拟合的 RMS 值 μ 米范围内,类似于用于选择的结点的 RMS
值。
8.未来的改进
8.1 新视窗设计
正在开发用于吸收器窗口的新形状,以寻求更薄的中心区域。 提出的表面形状
称为圆球形,是由外部部分圆环组成的表面,过渡为球形圆顶。 这种形状应像波纹
管一样工作,从而可以在给定厚度下以更高的压力工作(图 21)。

图 21
8.2 生产检验
要求对吸收器窗户进行生产检查。 与该活动有关的问题的讨论仍在继续。 最
可能发生的情况将要求对每个产生的窗口进行摄影测量检查。 当前正在考虑是否进
行加压动态测试,符合设计形状验证或两者结合。

93
石家庄铁道大学毕业设计

9.结论
这项工作表明:
非接触突起的定位可以成功地集成到数字摄影测量为适度的(<0.5M)大小的对
象进行处理,用 3-5 精密 μ 米
重复位移测量是确定应力时传统应变计的合适替代品,在非接触至关重要的情况
下具有很大的优势
该过程既适合于形状静态测量以符合设计要求,也适合于动态变形测量以吸收器
窗的功能性能
由于覆盖范围,速度和便携性,摄影测量特别适合生产检查
10.致谢
没有玛丽·安·卡明斯(Mary Anne Cummings),埃德·布莱克(Ed Black)和刘永
荣( Wing Lau)的窗户设计的专家工程和有限元分析(FEA)的指导,以及萨莎· 迪
希坎特(Sasha Dychkant)精心设计和建造的室温和低温增压系统,将无法完成这项工
作。
附录 A- 'Beamstrahlung '
“ Beamstrahlung ”是粒子发射的同步加速器辐射,由于粒子束中的电磁场,该粒子
穿过一束沿相反方向传播的粒子。
附录 B-天文单位长度的确定
雷达脉冲向金星方向发送,并测量其发射和接收之间的时间。 由于可以高精度
地测量时间,因此可以在 1 公里内确定距金星的距离及其轨道尺寸。 一旦获得了最接
近方法和最远距离的距金星距离的重复测量,就可以计算出地球和金星轨道的直径和
偏心率。 然后,可以将地球到太阳的平均距离计算为这两个距离的平均值。 从发
送到金星的航天器的轨迹已经获得了对地球-金星距离的检查[6]。
9.参考资料

[1] Neuffer,D,u + -u- Colliders,CERN 99-12(1999)


[2] Mikhail,EM,Bethel,JS 和 McGlone,JC,2001。《现代摄影测量学
概论》,纽约,John Wiley&Sons,Inc.。
[3] Wolf,PR 和 Dewitt,BA,2000 。摄影测量学要素,波士顿, 麦格
劳-希尔。
[4] Ganci,G。和 Brown,J.,2002 年。《使用视频测量技术进行非接触式
测量的发展》,波音大规模计量研讨会。
[5] Hirshfeld,AW,2001 年。《视差:测量宇宙的竞赛》, 纽约,
WH Freeman 和 Co.。

[6] Harwit,M.,1998 年。《天体物理学的概念》,纽约,施普林格出版


社。

94
石家庄铁道大学毕业设计

95
i
]京津冀地区植被覆盖动态变化时空分析,李卓,出处:《中国优秀硕士学位论文全文数据库》2017,(05):-年份:2017 机

构:辽宁工程技术大学
05):-

You might also like