高 磊,马英辉,王文清,勾 烨
(1.宿迁学院 机电工程系,江苏 宿迁 223800;2.宿迁学院 计算机科学与技术系,江苏 宿迁 223800;3.宿迁市气象局,江苏 宿迁 223800;4.联想移动互联及数字家庭业务集团移动终端事业部,江苏 南京 211100)
气压高度计是一种通过敏感大气压力来指示飞行器飞行高度的仪表,气压高度作为飞行器的基本飞行状态参数,是保障其飞行控制系统正常工作、维持飞行安全的重要参数,对充分发挥飞行器性能、减少能量消耗以及顺利完成各种飞行动作都具有十分重要的意义。传统的气压高度计不能满足微小型飞行器的操控要求,主要原因在于其结构复杂,体积庞大,测量精度低,功耗大[1]。随着MEMS技术水平和集成电路工艺的迅猛发展,促使半导体集成电路和压阻式气压传感器实现高度集成化,具备接口简单、体积小、稳定性高、动态响应快、精度和灵敏度高等优点,这些都将大大提高系统的综合性能,简化系统的结构。
气压高度计硬件系统包括微型控制器 (MCU)、电源、硅压阻式气压敏感元件、温度传感器、串口通信、A/D转换器等部分,如图1所示。系统工作时,气压敏感元件将大气压力转换为相应的电压信号,温度传感器同样输出温度的模拟电压信号,两者分别经A/D转换器的两个通道转换为数字量;然后在MCU中进行补偿运算处理;得到的气压和高度数据通过RS-485(232)接口输出。
图1 气压高度计系统结构图
气压高度计采用Atmel公司的ATmega88PA芯片为MCU,它是先进的精简指令集(RISC)结构,具有很高的代码执行效率,高达1 MIPS/MHz的数据吞吐率。最主要的是片内配置了只需2个时钟周期的硬件乘法器,这为系统算法实现中大量使用的乘法运算提供了方便,从而大大提高气压计系统的响应特性。此外,芯片中还含有擦写寿命高达10 000次的8 KB片内可编程Flash;512 B的E2PROM,为程序运算中所需大量系数的存储提供了充足的空间。
气压高度计采用MEAS(Measurement Specialties Inc)公司生产的硅压阻式压力传感器,其内部主要结构及管脚如图2所示。其量程范围为0~15 psi(即0~103 425 Pa),温度补偿范围为-20℃~+85℃;在1.5 mA电流激励下,满量程输出值为100 mV;另外,存在±0.1%的非线性误差和±0.5%的温度误差。
温度传感器选用MAX873,它具有灵敏度高、功耗低等优点,工作电源电压范围为4.5~18 V,静态电流为280 μA,在-40℃~85℃温度范围内具有极好的线性输出(约4×10-6/℃),灵敏度为2 mV/℃;MAX873还能同时为A/D转换器提供低温漂的2.5 V基准电压,其温度漂移系数为7 ppm/℃。
图2 硅压阻式压力传感器内部结构及管脚图
为满足气压高度计在500~1 100 hPa测量范围内分辨率能达1 Pa的要求,兼顾计算过程中的舍入误差,所需A/D转换器至少为20位;为消除压力转换通道与温度转换通道之间的非线性问题,再考虑到经济性,因此选用德州仪器公司生产的双通道24位Δ-∑型高精度A/D转换器ADS1242,其输入通道前端集成了可编程模拟放大器,输入范围较宽。内部50 Hz陷波器在15 Hz数据输出模式下的共模抑制比可达120 dB,特别适合缓变小信号的精确测量。使用内部的校准系统,可消除系统通道的失调和增益误差。采用串行SPI总线接口,可以在外部电平边沿中断方式或查询方式下工作。
气压高度计对外的通信接口可选RS-485或RS-232接口,本机采用RS-485接口形式,硬件电路选用MAX3471EUA芯片将信号电平转换为RS-485电平。它采用平衡发送和差分接收方式来实现通信。在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号还原成TTL电平信号。最大传输距离可以达3 000 m;最多可连接128个驱动器和收发器,接收器最低灵敏度达±200 mV;最大传输速率达10 Mb/s[2]。MAX3471EUA芯片的结构和引脚非常简单,其内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RxD和TxD相连即可,如图3所示。A端和B端分别为接收和发送的差分信号端并且要在这两端之间加匹配电阻,其典型值为54 Ω。当A引脚的电平比B引脚高2~6 V时,表示发送的数据为1;当A引脚的电平比B引脚低2~6 V时,表示发送的数据为0。因此,RS-485总线具有较强的抗共模干扰的能力。
图3 RS-485接口电路
软件设计的基本要求是可靠性高、执行效率高。气压高度计的系统软件设计采用模块化的设计思想,采用汇编语言在AVRStudio编译环境下编写。
软件功能模块主要包括:初始化、启动A/D转换压力和温度、数字滤波计算、温度补偿计算、高度换算、RS-485通信等子程序。初始化的对象包括堆栈的设置、中断的设置、A/D转换器的设置及串行接口UART的初始化设置;系统初始化完成后即启动A/D转换器采集压力和温度的原始码数据,为提高系统的抗干扰能力,对采集到的数据采用复合加权平均值滤波算法得到平滑数据[3];温度补偿计算是根据存储在E2PROM中的补偿系数实现对压力数据的修正,主要解决由于温度变化引起的传感器零点漂移和灵敏度漂移的问题,得到真实的压力值。经补偿算法处理后的实际压力和当前温度再送入高度换算子程序进行高度换算。最后,压力与高度数据通过串行接口输出;在主程序执行过程中能随时响应串口中断,接收并执行上位机指令。主程序流程图如图4所示。
图4 软件主程序流程图
硅压阻式压力传感器的温漂主要是指传感器的零点温度漂移和灵敏度温度漂移,它们的存在大大增加了传感器的测量误差,限制了其使用范围。造成硅压阻式传感器测量误差的因素主要包括:结构尺寸误差、几何非线性误差、晶向选择误差、电桥阻值误差、桥臂电阻分布位置误差、电阻掺杂浓度误差、压阻系数温度特性、封装热应力和反向漏电流等。传感器的误差是上述诸多因素综合的结果[4]。此外,包括气压高度计硬件电路所使用的每个集成电路都具有其特定的温度特性,所使用的各个分立元件也都具有各自的温度特性,这些都将影响气压高度计整机的输出。
对气压高度计样机的气压测量试验结果表明,其输出的压力数据都表现为随温度升高而逐渐变大的变化规律,所以必须采用温度补偿算法来提高硅压阻式压力传感器的一致性和稳定性[5]。
使用温度参数对压力数据的非线性修正(即温度补偿)由单片机软件算法完成。根据标准压力(P)与从模数转换采集得到的压力原始码(Pm)和温度原始码(Tm)的关系,令:
对式(1)在任意一点(Pm0,Tm0)做二元函数的泰勒级数展开,根据测量精度的要求保留至二次项即可,得到压力补偿算法:
其中, 系数k00、k10、k01、k20、k11、k02、k21、k12、k22的确定需通过试验采集Pm、Tm和P的数据。通过高低温试验箱来实现温度变化,预先编制采集程序用于采集压力原始码Pm和温度原始码Tm。在-40℃~60℃的温度范围内,每间隔一定的度数作为一个温度点,当温度稳定后,标准压力P在500~1 100 hPa范围内每间隔一定压力调整一次,则可得到若干个数据点,如表1所示的标定数据。通过对式(2)的拟合计算获得各项的系数如表2所示。编写单片机软件时,表2中的9个系数被保存在单片机的E2PROM中,测量时只要将Pm和温度Tm代入式(2),就可得到正确的压力数据。
根据《国际标准ISO2533-标准大气》,在0~11 km高度范围内若忽略重力加速度的影响,气压高度与相应的大气压力之间存在如下关系[6]:
其中,T0=288.15 K(15℃),为标准海平面的温度;β=0.006 5 K/m,为空气温度随高度变化而变化的递减率(即温度梯度);P0=101.342 kPa,是标准海平面大气压;R=287.052 78 m2/(K·s2),是空气气体常数;g0=9.806 65 m/s2,为标准海平面的重力加速度。
表1 标定记录的数据
表2 拟合得到的系数
把上述标准大气数据带入式(3),得到:
计算时,只要将经过温度补偿的实际压力带入式(4)即可,但该气压高度计算公式相对比较复杂,含乘、除及指数运算,计算量较大,将会占用CPU较多的内存资源,降低程序的执行效率,降低系统的实时性。实际算法的实现是采用了线性插值的方法来简化计算,从而减轻了处理器的负担。
压力的循环试验所用高低温试验箱型号为C340-70PRO,试验箱的温度调节范围为-40℃~+60℃;湿度设定为55%RH;压力标准器(型号:CPC 6000)压力调节范围为400~1 100 hPa。实验室环境温度为20℃。对气压高度计在25℃条件下进行压力循环试验,测试数据取用上、下两个行程反复3次的平均值,如表3所示。
表325 ℃下压力循环测试数据
在表3的压力循环测试数据中,平均偏差为0.06 hPa,最大引用误差发生在500 hPa测试点上,为0.30‰。把反复3次循环过程的共6组测试数据用MATLAB软件线性拟合得到传感器输入与输出特性关系曲线如图5所示,其线性度为0.999 9。压力的输入-输出关系表现出优良的线性特性。
图5 压力输入-输出特性曲线
以宿迁学院图书馆大楼的一楼地面为基准平面,用气压高度计测量每层地面到基准平面的相对高度,如此反复测量5次,得到的测量高度Hm与实际高度Hr的测试曲线如图6所示,平均标准偏差为0.16 m,线性度为0.999 8。由此可见,基于硅压阻式压力传感器的气压高度计辅以数字滤波、全温区温度补偿等算法具有很高的测量精度,软件算法补偿方法的运用极大地简化了硬件电路的结构,有效减小了系统的噪声干扰,提高了测量精度。
图6 气压高度计输出高度-实际高度曲线
采用OEM硅压阻式压力传感器为气压敏感器件,以高性能单片机为处理器研制的气压高度计结合数字运算处理技术和全温区温度补偿技术很好地解决了硅压阻式压力传感器的温漂问题,实现了高度测量,其中压力参数测量误差小于0.50‰,分辨率达到0.01 hPa,线性度达到0.999 9;虽然压力的温漂得以修正,但由于测量环境因素的影响和计算公式简化处理带来的误差,造成高度测量结果0.16 m的误差和0.999 8的线性度。综合上述测试结果,该气压高度计具有较高的精度和较强的抗干扰能力,且体积小、重量轻、功耗低,适用于微型飞行器飞行参数的测量,具有广泛的应用前景。
[1]史利剑.无人驾驶飞机大气数据计算机系统的研究[D].西安:西北工业大学,2001.
[2]李长诗,张黎.新型瓦斯监测系统硬件设计[J].煤矿机械,2012,33(8):235-236.
[3]李超,严家明,刘松林.基于ARM的无人机真空速测量系统设计[J].电子技术应用,2013,38(10):23-25.
[4]Zhang Wentao,Li Fang,Liu Yuliang.FBG pressure sensor based on the double shell cylinder with temperature compensation[J].Measurement,2009,42(3):408-411.
[5]高磊,马英辉,刘祎,等.硅压阻式高精度数字气压计设计[J].工矿自动化,2013,39(12):21-25.
[6]樊尚春,吕俊芳,张庆荣,等.航空测试系统[M].北京:北京航空航天大学出版社,2005.