光电经纬仪轴系误差仿真计算的新方法
摘 要:轴系是决定光电经纬仪测量精度的关键组件,过去常将球面三角学方法做某些简化后来 推导轴系误差引起的光电经纬仪测量误差,存在适用局限性。根据光电经纬仪的测量坐标系,采用坐 标变换方法,将轴系误差出现的过程看作坐标系的旋转过程,并用旋转矩阵来表示各个轴系误差,最 终建立了轴系误差引起测量误差的数学模型。采用MATL B与VB混合编程的方法对该误差模型进 行了仿真分析,通过比较仿真结果与单项误差法计算的结果,验证了该轴系误差模型的正确性,为光 电经纬仪的精度分析和误差修正提供了参考。
0 引言 地平式结构的光电经纬仪有3条轴线:垂直轴、 水平轴和照准轴,前两条轴线是仪器机械转动的轴 线,照准轴是主光轴。由于制造工艺、装配和调整使用 等因素的影响,光电经纬仪的三轴不能完全满足两两 垂直的理想条件,这样因轴线不准确带来的测量误差 称为轴系误差,包括垂直轴倾斜误差、水平轴倾斜误 差和照准轴倾斜差⋯糖度计| 盐度计| 酸碱度计| 电导计| 水分测定仪| 浊度计| 色度计| 粘度计| 折射计| 滴定仪| 密度计| 热流计| 浓度计| 折射仪| 采样仪| 。以往轴系误差引起测量误差公 式是采用球面三角学原理做某些简化后,在考虑一种 误差时将其他两项设为零且假设轴系误差都非常小的 情况下推导的,但光电经纬仪轴系误差是多项并存且存 在耦合影响,在误差较大或经纬仪在大俯仰角状态时 (如接近90。),该方法不再适用 ,而且误差合成公式是 通过定性分析近似得到的【删。为了更加方便和准确地研 究各个误差源对测量精度的影响,文中通过一种坐标变 换方法,建立了光电经纬仪轴系误差对测量误差影响的 数学模型,该模型的优点是不受测量角范围与轴系误差 大小限制,并采用一种MATLAB和VB混合编程方法 预先编制了光电经纬仪轴系误差仿真软件,对各个轴系 误差的影响程度进行了仿真分析,为光电经纬仪轴系的 精度分析和误差修正提供了参考依据。 l 数学模型的构建及推导原理 】
单项差法计算轴系误差的修正公式: AA=AA +△A +△Af=vsin(A 一A)× tanE+csecE+itanE (1) AE=AEv+△ +△巨=vcos(A-A ) (2) 式中:△A 、△E、△A 、△£=f、△A 、△E 分别为由垂直轴倾 斜误差v、水平轴倾斜误差i和照准轴倾斜差c单独 作用时所引起的方位角和高低角测量误差 ]。该修正 公式是用球面三角学方法近似推导出的,推导过程复 杂不直观且存在适用局限性。文中采用坐标变换方法 不做任何简化推导了轴系误差的修正模型。 根据光电经纬仪目标定位测量原理,首先建立其 测量坐标系(见图1),设地平坐标系为O-XYZ,原点为 图l光电经纬仪测量坐标系示意图 Fig.1 Measuring principle of photoelectric theodolite coordinates 光电经纬仪三轴的交点,Z轴与测站水平面垂直,X轴 和y轴位于水平面内,y轴指向大地北,X轴与y轴和 Z轴分别正交,组成右手坐标系,实际上该坐标系的各 轴指向分别为光电经纬仪在理论零位时的水平轴、照 准轴和垂直轴的指向,照准坐标系为O-xyz,Y轴为光电 经纬仪照准目标后视轴的指向,Z轴与Y轴正交并指向 天顶(传感器光轴水平放置时), 轴与Y轴和Z轴分别 y =Mx(E)Mz(A) ㈤ fc。SA —sinA 0 ] l 0 0 l 【0 一sinE cosE J S] -1 酬-1 ㈤ ㈤ 2 sin A (1-cosv)+cosv cosA sinA (1-cosy) 一cosA sinv cosA sinA (1-cosy) 2 COS A (1-cosv)+cosv sinA sinv cosA sinv l — sinA sinv l COSV I (8) (2)光电经纬仪的方位编码器装在垂直轴上,故 方位角A 为第二发生转动的角度。相应的D ylZl坐 标系中的Zl轴为第二旋转轴,原坐标系则变换至 D y ,旋转矩阵表示为: 『I cosA sinA 0 1 I Mz(A )=l—sinA cosA 0 I (9) l 0 0 l J (3)光电经纬仪的水平轴建立在垂直轴之上,故 第三发生的转动角为水平轴倾斜误差 ,可看成是坐 标系D 绕y2轴旋转f角后变换至坐标系D一 , 相应的坐标变换矩阵为: fI cos/ 0 一sin/] I My(f)=1 0 l 0 1 (10) I 【 sin/ 0 cos/J (4)然后坐标系D 绕 轴旋转高低角E 变 换至坐标系D—x4 ,相应的变换矩阵可表示为: l l 0 0 I f f (E )=10 cosE 一si I (11) J【 0 J sinE cosE J (5)最后坐标系D y 绕Z4轴转动照准轴倾斜 差C后变换至坐标系O-xyz指向被测目标,相应的变 换矩阵表示为: fI COSC—sinc 0] (c)=I sinc COSC 0 (12) j l 0 0 l』 根据旋转顺序连续右乘表示每次坐标系旋转前 后的变换矩阵,即可得到总变换矩阵M : M=ML(v)Mz(A )Mr(i)Mx(E )Mz(C) (13) 比较公式(6)、(7)与公式(13),便可得到测量误差 △A(A 一A)、AE(E 一 )与f、v、C之间的数学关系式,即 轴系误差影响光电经纬仪测量误差的数学模型。
2 MATLAB与VB混合编程 为更加方便准确地研究各个轴系误差对光电经 纬仪测量精度的影响,有必要编制轴系误差仿真软件 对各种因素进行仿真分析,这样不仅易于预先得到所 需结果,而且可以帮助验证定性分析结果的正确性。 鉴于上节数学模型推导中涉及的大量矩阵运算,文中 提出用VB设计人机交互界面,用MATLAB实现轴 系误差仿真运算、数据处理及图形输出的混合编程方 法。
MATLAB与VB混合编程主要有以下4种方法 l:
(1)利用MATLAB所支持的ActiveX 自动化协议实 现调用,直接有效;
(2)VB通过DDE动态数据交换 协议和MATLAB实现交互;
(3)直接在VB 中添加 Matrix VB函数库,但需要独立安装Matrix VB软件; (4)使用MATLAB COM组件技术,执行速度快,但 需要设置MATLAB编译环境,调用预先编译好的dl1 文件等,过程较为复杂。各种方法都有其优缺点,鉴于 ?昆合编程的目的在于最大限度地利用各种编程语言 的优势, 降低编程难度,故下面将采用VB调用 MATLAB 的ActiveX 自动化对象的方法进行光电经 纬仪轴系误差的仿真计算。
3 轴系误差的仿真实现 混合编程思路如图2所示,由于VB支持ActiveX 自动化控制端协议,MATLAB支持ActiveX自动化服 务器端协议,两者之间已经建立了ActiveX 自动化链接,用VB编程语言进行用户界面接口、数据 I User f High-level language programming platform M ATLA B A ctiveX 、 MATLAB object created by processing other language result and 7 figu re \/ MATLAB processing platform 图2混合编程思路 Fig.2 Mixed programmed idea 获得、硬件接口的编程,在数据处理、复杂图形绘制时 通过ActiveX接口调用MATLAB,并将处理结果回传 VB 程序中, 即前台是VB 编程设计界面, 后台是 MATLAB运算。首先必须在VB中创建MATLAB的 ActiveX对象,具体程序为: Dim maflab As Object Set matlab=CreateObject(”matlab.application”1 matlab.application对象包含有Execute、GetFullMatrix、 PutFullMatrix等几种方法, 利用这些方法在VB程序 中可对MATLAB进行操作,执行MATLAB命令,与 MATLAB之间传递、接受数据等。 设置好初始参数后,利用上面导出的轴系误差数 学模型,调用MATLAB进行仿真计算和图形的绘制, 图3和图4分别是当水平轴倾斜误差、垂直轴倾斜误 差、照准轴误差均为3”,垂直轴倾斜方向角为180。,目 标俯仰角为30。时,在MATLAB中模拟的光电经纬仪 的方位角、俯仰角测量误差随着方位角变化的曲线,与 单项差法定性分析计算的结果一致,从而验证了该轴 系误差模型的正确性。同时,该程序综合考虑了各种误 差影响,在轴系误差和俯仰角较大情况下均可适用。 0 甚 售 吕 警 器 官 图3方位角测量误差随目标方位角的变化曲线 Fig、3 Azimuth measurement error variance curve vs azimuthal variance of object . 如基 ‘ l 图4俯仰角测量误差随目标方位角的变化曲线 Fig.4 Pitching measurem ent eror variance curve vs azimuthal variance of object
4 结论 文中通过一种坐标变换方法,建立了光电经纬仪 轴系误差对其测量精度影响的数学模型, 并采用 ActiveX 自动化协议技术实现了MATLAB和VB 的 混合编程方法,编制了光电经纬仪轴系误差仿真程 序,分析了各个轴系误差对测量误差的影响,为光电 经纬仪的轴系误差分析提供了一种新方法。另外,文 中提出的混合编程的设计思想突破了以往利用单一 语言实现需求的方法,更广泛地利用了现有技术成 果,也为其他领域应用程序设计提供了参考。