关键词:无人机;传感器;折线线性拟合;气压高度转换
1.引言
无人机的高度测量传统上一直采用静压传感器作为感知手段,通过其压差膜盒对大气静压的感应,将大气压力转化为模拟信号输出,从而计算出实际的高度值[1]。由于大气压力的变化除了与高度变化紧密联系外,与本地的实际温度也密切相关,但是大部分静压传感器在设计时并未考虑到实际温度对大气压力的影响,这就造成了实际输出静压值与真实值之间的大幅度偏差,从而影响了高度的精确计算[2]。
本文针对上述不足,提出了使用带有温度补偿和校准系数的高灵敏度静压传感器MS5534B作为无人机高度测量的传感器件,同时考虑到无人机飞控处理器运算能力不足的实际情况,提出一种分段拟合曲线的线性算法,以较高的精度实现了无人机的高度计算。
2.系统硬件设计
2.1 MS5534B的特性
MS5534B是一种低电压、低功耗、高精度的测压力模块,其中包含一个压阻式压力传感器和一个15bit的ADC集成模块,具有数字输出功能,它可以提供16位的气压和温度数字信息,压力测量范围10~1100mbar,分辨率为0.1mbar。另外,传感器有六个软件校准系数,压力绝对精度为+/-1.5mbar,相对精度为+/-0.5mbar,并且不需再接其他外围模块,接口简单,电路连接方便。该模块尺寸很小,平面尺寸为9mmX9mm,厚度仅为3.7mm,可以在-40°C 到 +125°C环境中应用[3]。模块的内部结构图如图1所示。
图1 模块内部结构图
2.2 系统组成及接口连接
基于MS5534B的高度传感器系统主要有两部分组成:(1)MS5534B气压数据采集单元;(2)ARM7微处理器单元。MS5534B的主要功能就是把压阻压力传感器测得的未经补偿的气压模拟电压输出量转化为16位数字的绝对气压值D1,同时输出16位的绝对温度值D2。在飞控系统中采用了32位微处理器内核的ARM7,由于其快速的运算速度和丰富的外围接口资源,所以将MS5534B直接通过标准的SPI接口与其相连,简化了电路设计,提高了实时性。
ARM7微处理器与气压传感器间的通信通过标准SPI接口完成[4]。DOUT、DIN分别是数字输出、输入引脚,SCLK为串行数据时钟,MCLK为主频32.768kHZ的系统时钟,由微处理器提供。MS5534B数字输出的参考电压是3V供电电压,外接的4.7uF钽电容应尽量靠近MS5534B,以保证数据转换时的供电稳定和转换精度。模块实物和引脚分布图如图2所示。
图2 实物和引脚分布图
3.系统软件设计
3.1 系统软件设计流程
每个MS5534B在出厂时都有一个针对模块特有的四个Word校准数据,储存在64位的PROM中。ARM7微处理器在初始化以后通过串口从MS5534B中读出Word1~Word4,然后运用逻辑移位操作方式转化为6个校准补偿系数C1~C6。ARM7微处理器从MS5534B不断读取绝对气压值D1和温度值D2,然后结合校准补偿系数计算求得相对气压值P,判断其是否在有效范围内,对有效值进行低通滤波处理,最后按折线法转化为海拔高度值。将高度值通过与飞控系统相连接的无线数据传输模块实时传输到地面站,实时掌握飞机的飞行高度,对出现的意外情况可以及时处理[5]。基于MS5534B的高度测量系统的软件流程图3如下所示。
图3 系统工作流程图
3.2 折线线性拟合法将气压值转化为高度值
在实际应用中,大气压力与海拔高度的关系是非线性的[6],传统的方法是将气压值与对应的高度值做成数据表,运用查表的方式,如果精确到1m,则需要上万个数据,需要庞大的存储空间,且耗时较大,另外由于飞控系统中微处理器对大量浮点运算的能力不是很强,并且飞控系统对实时性要求很高,为了节省宝贵的存储空间,所以本系统设计运用折线法进行线性拟合[7]。折线线性拟合法的基本思想就是将被逼近的函数曲线根据变化情况分成多个间隔区域值,为了提高精度及缩短运算时间,各间隔域值内可根据精度要求,采用不同的斜率线性线段表示曲线线段。拟合原理误差分析如图4所示。
图4 拟合原理误差分析图
根据大量实验数据和理论推导得拟合公式(1)
(1)
其中,alti表示海拔高度(0.1m),pres表示气压值(mbar),j,i表示折线间隔系数。在不同的i,j取值范围内,大气压向高度转化时是线性的,提高了转化的时间,误差是周期性的,且在一个小的范围内。将正常的工作高度范围内分成不同的多段,会得到不同的高精度值。i,j的一种分段列表,如表1所示。
表1 折线拟合间隔系数i,j列表
根据以上表格数据,运用Matlab对大气压向高度转化方程所得曲线图进行拟合[8],拟合效果非常好,仿真结果如下图5所示。
图5 折线法拟合曲线效果图
为了进一步提高精度,可以采用非等距分段法,根据函数曲线形状的变化率的大小来修正间隔点间的距离。曲率变化大的部分,距离取小一点,而在曲线较平缓区域距离取大一点。
图6 折线法与实际高度误差分析图
图6为在海拔-700m~8000m时,运用Matlab仿真折线拟合法所得海拔高度与我国标准大气压对照高度误差示意图,在-700m~8000m时最大高度误差为+/-5m,而在-100~1000m时的误差在+/-3m以内,适合小型无人机的高度需求。
4.结论
在自行研制的无人机自动驾驶仪上,应用了上述的基于MS5534B的气压高度测量系统,在实际多次飞行任务中测试的效果良好,定位高度准确。本文针对小型无人机自动驾驶仪微处理器浮点运算能力不强,实时性要求高的特点,提出折线线性拟合的方法,减少了大量浮点运算,提高了运算效率,节省了宝贵的RAM存储空间,适合于小型无人机的自动驾驶仪中。
参考文献
[1]申安玉等.自动飞行控制系统[M].国防工业出版社,2003:95-99.
[2]赵鹏等.基于AT91m55800的无人机飞行系统设计与实现[J].微计算机信息,2005年第21卷第4期:9-10.
[3]Using MS5534 for altimeters and barometers. http// www.intersema.ch /site/technical [EB/OL].
[4] 求是科技.单片机典型模块设计实例导航[M].北京:人民邮电出版社,2005: 166-170.
[5] 胡寿松.自动控制原理[M].科学出版社,2001:241-245.
[6] 钱翼稷.空气动力学[M].北京航空航天大学出版社.2005:247-250.
[7] 潘新民等.微型计算机控制技术[M].电子工业出版社,2005:261-263.
[8] 魏克新等.MATLAB语言与自动控制系统设计[M].机械工业出版社,2004:73-75.