基于ARM的无人机真空速测量系统设计
2012-06-03严家明刘松林
李 超,严家明,刘松林
(西北工业大学 电子信息学院,陕西 西安710129)
空速测量是无人机乃至有人机基本的测量参数之一,飞机空速分为真空速与指示空速,多年来无人机都是使用简易的速度测量系统。本文通过对空速测量原理的深入研究,以嵌入式技术为核心,并采用扩散硅压传感器来获取大气压力,设计了一种测量真空速的软硬件结合的无人机真空速测量系统。
由于真空速与气压的关系过于复杂,本系统采用数据建模的方式来实现空速测量。数据建模有两种方法:(1)拟合法:从整体上考虑近似函数同所给数据点误差的大小;(2)插值法:差值函数严格地通过每一个数据点。采用拟合方法时,由于计算精度达不到0.1%的系统要求,因此本设计采用插值法。但是随着差值节点的增加,插值多项式的次数也相应增加,而高次的多项式容易带来剧烈的震荡和数据不稳定,同时考虑到高次函数会占用大量的系统资源,降低运算速度,设计时插值函数的最高次定为一次。在本系统中,对真空速解算采用分段低次插值法。
1 真空速测量原理
式中,PH为飞机所在高度的大气静压,Pob为基准面处的大气静压,Tob为基准面处的大气温度,τb为温度递减率,R为气体常数,K为绝热系数,g为重力加速度,Pd为飞机所在高度的大气动压。
假设飞机处于标准大气状态下的海平面时,如取PO=PH=Pob、TO=Tob、τ=τb,则可得:
对于飞行高度不超过11 km、飞行马赫数不>1的情况,假设空气视作理想气体,大气温度按线性规律随高度递减,取海平面为基准面,压缩过程为绝热压缩过程,则解算真空速的公式为[1]:
由式(2)可见,Vi仅是动压Pd的函数,并称其为指示空速[2]。
同时,大气压力与高度的关系可表示为:
另外,真空速计算公式可以改写为:
式(4)将真空速计算公式分为两部分:(1)只包含动压变量的指示空速Vi;(2)只包含气压高度H的函数式H′。由于Vi和H′均为单值函数,则可以分别对其做低次分段插值,得到的结果即为真空速。
2 分段低次插值及空速解算
2.1 线性分段低次插值算法
当采用分段低次线性插值方法时,每个子区间上的插值公式为如下一次多项式[3]:
当采集到值后,可查找x和y所在相应区间,然后根据插值公式计算y值。
2.2 插值步长计算及空速解算
根据上述分析将真空速计算公式(4)分为只包含动压的指示空速和只包含气压高度的函数,对两部分做线性低次插值,通过查表法,就可以在只求指示空速的同时计算出真空速。其方法如下:
(1)首先进行分段低次插值。线性低次插值是在每个插值区间属于一次多项式插值,其插值余项为:
为了简化程序设计,本系统采用x轴等步长的线性插值。设插值步长h=xi+1-xi,则式(6)可改写为:
同时,由指示空速函数式(2)可知,在动压Pd=0.118 kPa处,有最大值,因此,M1==0.001 9。
本设计中将插值计算的相对误差限定为0.05%,可得绝对误差δ1=400×0.05%=0.2 km/h,由此可以求出步长h1:
取h1=29.03 Pa,则插值节点数为:
在本设计中取G1=263。
式(11)中,插值初点为0.118 kPa,插值末点为7.765 4 kPa,插值步长为29.03 Pa,插值点总个数为264。由此可解算出指示空速Vi的值。
(2)真空速解算公式的第二部分是函数式H′,由H′函数式可知,在静压PH=54.005 kPa处,有最大值,因此:
在本设计中取G2=10。
式(14)中,5.400 5 kPa为插值初点,101.325 kPa为插值末点,4 531.18 Pa为插值步长,11为插值点总个数。由此可解算出H′,Vi和H′解算结果的乘积就是真空速的值[4]。
3 测试系统设计
本部分的相对误差取0.005%,则:
由此可解算出步长h2≤4 531.18,取h2=4.531 kPa,则插值节点数为:
本测试系统由上位机及以ARM微处理器为核心的中央控制处理单元和信号调理电路组成,系统总体框图如图 1所示[5]。
绝压传感器和差压传感器感受到的静压和动压,并分别将其转换为相应的电压信号。经过信号调理电路,对压力传感器的输出信号进行滤波和放大,然后通过ARM上集成的A/D转换器对信号采样并将模拟量转换为数字量,对离散信号采用相关算法计算空速值,最后将运算结果通过RS232通信模块传送给上位机。ARM选用STM32F103ZET6芯片,该芯片使用高性能的32 bit Cortex-M3系列的 RISC内核,工作频率为 72 MHz,内置512 KB的闪存和64 KB的SRAM。器件包含4个通用16 bit定时器,3个12 bit的ADC,还包含标准和先进的通信接口(SPI、USB、USART 等)。
3.1 压力数据采集
本系统采用MPX10DP型硅压阻式差压传感器测量飞行速度产生的动压Pd,采用ASDXO15A24R型绝压传感器来测量大气静压。
3.2 信号调理单元电路
针对本系统的动压范围,为了使传感器在不同情况下输出电压满足ARM内置ADC的输入电压范围,信号调理电路增加了一级调零电路,将放大倍数分别分配给AD620和后级减法电路。由AD620和减法电路组成的放大调零电路如图2所示。R200为放大倍数调节电阻,R201为调零电阻。
3.3 信号采集及数据处理
在本系统中,压力和温度数据通过ADC采样。为确保采样转换的准确性,使用定时器来控制,通过改变重装载值就可以实现不同的采样频率。选择定时器1的触发输出事件启动ADC转换,ADC选择连续转换模式,在定时器预置的时间里完成52次采样,舍弃最大值和最小值,通过求和平均计算出当前的ADC转换值。另外,考虑到经ADC转换后的数字量所存在的噪声干扰,采用软件方法进行滤波处理。本系统在算术平均值的基础上采用了加权平均值滤波算法,以确保测量结果的准确性[7]。
运用ARM实现信号采集及滤波处理流程如图3所示。
图3 信号采集滤波流程图
3.4 上位机软件设计
本设计中,上位机软件在NI公司的虚拟仪器软件开发平台LabVIEW上开发。软件设计采用了自顶向下的设计思想,上位机与下位机通过双方发送中断程序完成交互和握手,通信的内容包括上位机的控制指令与ARM运算处理后的测试数据。
上位机程序主要包括控制指令和数据显示两个模块。控制指令包括对串口的配置等;数据显示模块将ARM运算处理后的空速数据显示在上位机指定区域内。上位机软件界面运行效果如图4所示。
3.5 下位机软件设计
本设计下位机在Keil μVision4软件开发环境中编译并调试,采用C语言编写。下位机根据接收到的上位机控制命令来执行相应操作,并且将测试结果传送回上位机显示。下位机程序流程图如图5所示。
测试开始后,初始化ARM各硬件模块,等待接收上位机控制指令,当接收到上位机控制指令后,开始执行后续操作,其中主要操作包括:(1)当绝压传感器和差压传感器将静压PH与动压Pd转换为电流信号后,通过ARM内置ADC转换,以保证待测信号经过外围调零放大电路后,信号电压不会超过ADC的工作电压范围。(2)设置ADC模拟看门狗的高阈值和低阈值并使能中断程序,通过ADC模拟看门狗中断程序调节电压放大倍数。(3)将采样数据进行相应的运算处理即可分别得到指示空速和真空速结果。(4)将结果通过RS-232串行接口发送给上位机[8]。
4 实验结果
本系统在指示空速为100 km/h~400 km/h,高度为0 m、1 000 m、3 000 m和5 000 m范围内,实时计算出当前高度与压力下的真空速,其实验结果如表1所示。由表1可以看出,真空速的测试相对误差控制在2.5以内,满足系统的设计要求。
本文设计了一种基于ARM的无人机空速测量系统,通过ARM上集成的模拟数字转换电路对绝压传感器和差压传感器输出的信号进行采样。针对真空速测量公式的复杂性,通过公式分解,采用低次线性插值算法,实现了真空速实时测量,并通过LabVIEW软件实现了上位机显示。实验结果表明,该系统测量有效解决了传感器的温漂问题,提高了测量精度、稳定性以及实时性。本系统优于传统的测量装置,适用于工程应用。
[1]朱定国.航空测试系统[M].北京:国防工业出版社,1990:296-307.
[2]袁智荣,姜晓爱.小型无人机真空速测量系统的设计[J].传感器技术,2003,22(4):26-28.
[3]欧阳洁,聂玉峰,车刚明.数值分析[M].西安:西北工业大学出版社,2007.
[4]蒋健飞,胡良剑,唐俭.数值分析及其 MATLAB实验[M].北京:科学出版社,2004:73.
[5]GAVRLETS V,SHTERENBERG A,MARTINOS I,et al.Avionics system for aggressive maneuvers[J].IEEE Aess Systems Magzine,2001,9(2):14-17.
[6]赵家贵,付小美,董平.新编传感器电路设计手册[M].北京:中国计量出版社,2002:26-28.
[7]孙传友,孙晓斌,汉泽西,等.测控系统原理与设计[M].北京:北京航空航天大学出版社,2002.
[8]揭峰.基于单片机的无人机指示空速测量系统设计[D].西安:西北工业大学,2010.