基于VxWorks时钟特性的无人机飞行数据抗干扰方法研究及实现
2016-09-07杨俊鹏曹春艳
李 博,杨俊鹏,曹春艳, 张 晨
(1.西北工业大学 计算机学院,西安 710065;2.西安爱生技术集团公司,西安 710065;3.西北工业大学 自动化学院,西安 710065)
基于VxWorks时钟特性的无人机飞行数据抗干扰方法研究及实现
李博1,2,杨俊鹏1,2,曹春艳2, 张晨3
(1.西北工业大学 计算机学院,西安710065;2.西安爱生技术集团公司,西安710065;3.西北工业大学 自动化学院,西安710065)
为解决当无人机受到干扰时,飞行数据采集异常情况从而导致无人机无法正常工作的情况,文章提出了一种适合无人机系统使用基于VxWorks并行时钟工作特性的无人机飞行数据抗干扰方法;并给出关键技术的研究途径和工程实现方法;经理论分析,本方法有效的解决无人机飞行数据的抗干扰问题;最后通过飞行实验数据表明本方法抗干扰性能良好,并且不会对无人机系统的硬件设计和实时性产生影响,可应用在无人机系统设计中。
VxWorks;无人机;抗干扰;时钟
0 引言
近年来,无人机技术得到迅速发展,以无人机为平台的飞行器越来越多的工作在各个领域,尤其在军事领域,应用越来越广泛。
当无人机工作在特定工作状态时,其飞行模式转换会通过系统内所采集的飞行数据自动进行转换。但无人机在工作时会遇到系统内部或者外部环境的干扰,使得无人机飞行时的飞行数据出现异常。如果无人机中的飞行程序直接使用这些异常数据,会导致无人机无法正常工作,严重时会导致无人机坠毁。
1 干扰情况分析
无人机在高空作业时,经常会遇到来自系统内部或者外部环境的干扰,从而导致无人机所采集的系统的飞行数据出现异常跳动。这些异常数据被无人机飞行程序直接使用后会导致机载控制设备输出错误的控制信号,最终使得无人机作业时出现险情。图1某型无人机实际飞行时飞行数据受到干扰时的波形。
图1 无人机飞行数据受干扰波形图
当未受到干扰,则此数据的波形应为一条近似于抛物线。从上图可以看出,在实际飞行中,此被干扰的飞行数据会导致无人机提前转入改变飞行状态,严重影响了无人机的正常飞行。
2 抗干扰方法的研究
常用的抗干扰方法是在硬件设计上进行改动,主要在数据采集电路中加入滤波电路,但是滤波电路只起作用于固定带宽的干扰信号,同时会增加无人机系统设计的成本和复杂度。
传统软件实现方法是对飞行数据取累加平均或者取算术平均等方法,这种方法累加的数据越多效果越好。但在系统实现时需要等待很长时间采集数据才能获得所需的累加数据来进行平均值的运算,因此会严重影响无人机数据处理的实时性。并且通过仿真实验表明当飞行数据被干扰时间过长时,此方法获得飞行数据会趋于发散状态。
在软件实现方法中数字滤波器也常用于抗干扰领域,但是数据滤波器运算相对复杂,对处理器要求较高,一般需要使用专用的DSP处理器来实现。由于无人机运行飞行程序的机载计算机是用于控制和管理机载设备,通常基于通用处理器来设计,不具备用于数字信号处理的专用DSP处理器的硬件条件,所以使用机载计算机来运行数字滤波器会增加机载计算机运算负荷,影响系统整体的性能。
针对以上问题,本文结合VxWorks时钟的特点,提出一种简单有效,且不影响无人机工作实时性解决无人机飞行数据抗干扰的方法。
3 关键技术研究
3.1VxWorks时钟简介
在VxWorks操作系统中,经常会使用规定时间操作,进行周期性的执行操作任务或者在那个时刻执行对应的任务。这些操作都依赖于处理器中定时器和VxWorks内部任务之间调度的精确性[1]。
在VxWorks中有两种基于定时器的时钟,分别是系统时钟和辅助时钟,辅助时钟是系统时钟的补充。
由于系统时钟主要为系统调度提供基准等,其频率不能够设置得太高。因此,当任务需要在要较高的时钟频率时,这时可以使用辅助时钟。辅助时钟也是基于硬件定时器的,所以也是比较精准的[2]。
3.2时钟定义
本文所用的方式便是基于辅助时钟,创建各个频率的时钟任务来实现抗干扰算法。
在VxWorks程序实现时首先定义了数据采集时钟和创建任务时钟[3]。源代码如下:
//定义辅助时钟中断频率
sysAuxClkRateSet(200);
//绑定辅助时钟中断程序
sysAuxClkConnect((FUNCPTR)clksyn,0);
//打开辅助时钟中断。
sysAuxClkEnable();
3.3时钟任务创建
为保证无人机数据处理的实时性,程序实现时分别创建了5 ms、10 ms、20 ms的时钟。代码如下:
task_id_timer5ms=
taskSpawn("ti5",200,VX_FP_TASK,50000, (FUNCPTR)task_timer5ms,0,0,0,0,0,0,0,0,0,0);
task_id_timer10ms=
taskSpawn("ti10",202,VX_FP_TASK,50000, (FUNCPTR)task_timer10ms,0,0,0,0,0,0,0,0,0,0);
task_id_timer20ms=
taskSpawn("ti20",204,VX_FP_TASK,50000, (FUNCPTR)task_timer20ms,0,0,0,0,0,0,0,0,0,0);
其中5 ms时钟任务优先级高于10 ms时钟任务的优先级。10 ms时钟任务优先级高于20 ms时钟任务的优先级[4]。
4 抗干扰方法和措施的实现
4.1抗干扰算法设计
针对无人机工作时外在环境对无人机的干扰有正向和反向的双极性干扰,同时无人机工作时对数据处理的实时性要求较高。因此设计一套既满足双极性干扰和实时性的抗干扰算法是非常有必要的。
本文采用算法如下:
else
其中:a表示前n+1次所采集数据的最大值,b表示前n+1次所采集数据的最小值,m表示a、b之间差值的门限值,y表示无人机控制程序的算法中所调用的数据,k表示当前数据采集时刻。
在算法中会将所采集数据的峰值进行比较,因此当数据被干扰时,若出现峰值超限的情况,则无人机系统不会采用本次所采集的数据。并且此算法同时使用最大值和最小值进行比较,因此对数据波形被干扰时所产生的双极性抖动有很好的抗干扰能力。从而避免了无人机系统程序因为干扰产生误判的情况。
4.2软件设计
抗干扰算法分别在5 ms、10 ms、20 ms时钟任务函数实现。算法实现的软件流程图如图2所示。
图2 抗干扰算法软件流程图
在5 ms时钟任务实现门限值的判别方法,当判别数据有效时,将判断标志pd_flag=1;10 ms时钟任务中主要用于采集姿态数据,并进行最大最小值比较扰算法;20 ms时钟里取飞控程序所需的参数数据, 并将判断标志pd_flag=0。
本方法对系统的影响仅是运行前需采集n次数据作为基础数据。但是此算法代码嵌入飞控程序代码中,与飞控程序同时运行。尽管算法起初需要采集n次数据,但是整个采集过程在无人机起飞前的地面准备时间内就可以完成。而之后的算法所使用的数据就是当前采集的数据,因此不会对无人机飞行时数据处理的实时性造成影响。
4.3抗干扰程序与主程序的融合措施
无人机的主程序主要运行飞行管理、数据采集、飞行控制、导航算法等功能,软件结构一般是基于同一时钟服务函数通过计数器累加技术的方式进行分时操作。所以这种软件结构本质上是一种串行的工作模式。
抗干扰程序与主程序的融合措施是在基于Vxworks时钟特性,通过多个时钟服务函数将数据采集、抗干扰处理和数据调用代码并行运行。数据采集、抗干扰处理和数据调用代码通过共享数据缓冲区的方式相互关联。其中可将数据调用代码放置于主程序所在的时钟服务函数中,而数据采集、抗干扰处理代码所在时钟的优先级和频率均高于主程序时钟。程序运行时数据关联如图3所示。
图3 抗干扰算法软件流程图
5 ms时钟服务函数与10 ms时钟服务函数直接通过数组data[n]关联,data[n]的数据通过5 ms时钟服务函数刷新。10 ms时钟服务函数与20 ms时钟服务函数通过变量“y”关联,变量“y”是经抗干扰算法处理后的被主程序调用的飞行数据。由于数据采集和抗干扰算法代码在比主程序更高频的时钟中运行,因此不会影响主程序执行的实时性。
5 抗干扰能力的分析和评估
由于算法中采用最大和最小值比较方法,当受到干扰的数据出现双极性干扰时,其最大值最小值转变或者最小值向最大值转变的中间有效数据会被直接提取使用,则进入滤波算法的起点就会清零,此算法对双极性抗干扰能力很强。相比而言,由于单极性干扰过程没有最大值最小值转变或者最小值向最大值转变的中间有效数据,因此当受到干扰时间较长时此算法会失效。
通过讨论此方法对单极性干扰的抗干扰能力,能够推断出在实际应用时的抗干扰能力。图4是通过一个模拟极端性单极性干扰波形,采集数据数量为n=75时的VxWorks程序实现的时序图。
图4 n=75时程序实现的时序图
图中t1点为受到干扰的开始时刻,此时状态数据被干扰到小于-60。通过之前算法可得知,此时的原始数据会被判为无效数据,无人机的应用程序会调用t1前一时刻的数据进行门限判别。从t1时刻开始,到第n*20(ms)时刻内,原始数据会被判为无效数据,从第(n+1)*20 ms时开始,原始数据会被认为有效数据,从第2n*20 ms时开始原始数据又会被判为无效数据[5]。
因此可计算出对于-45门限值判别,其抗干扰的能力为n*20 ms,跟其串联使用的-60门限判断的抗干扰能力为2n*20 ms。以n=75为例,则-45门限判断的理论抗干扰能力为1.5s,-60门限判断的理论抗干扰能力为3.0 s。
在具体使用时,如果无人机系统可根据干扰的实际情况设置n值来获得合适的抗干扰能力。
6 实验结果与验证
本课题根据所统计的飞行数据受到干扰的时间情况设定干扰算法的n=80。在多次飞行试验中,均将飞行数据的原始数据和经经过抗干扰算法运算后的数据记录和回传。试验结果表明此方法可100%解决无人机飞行数据受干扰问题。
图5~6分别为某一次飞行架次所记录某飞行参数的原始数据和经过抗干扰算法运算后的数据。
图5 无人机飞行某参数原始数据
图6 无人机飞行某参数经抗干扰处理后数据
从图5~6中可以看出,经VxWorks程序抗干扰算法运算过的参数数据即保证了飞行数据获得的实时性,同时能具备很好的抗干扰性。
7 结束语
基于VxWorks辅助时钟的服务函数所实现的无人机飞行数据抗干扰方法的实现具有良好的实时性和实用性。在对硬件
平台要求不高的情况下能很好的解决无人机飞行数据抗干扰的问题。并且此方法在所参与项目的无人机飞行试验中的到充分的认证。通过对无人机回传原始数据和处理后数据的对比,验证了其可行性和相对稳定性。
[1] Barbalace A. Performance comparison of VxWorks, Linux, RTAI, and Xenomai in a hard real-time application[J],IEEE Transactions on Nuclear Science, 2008,55(1):435-439, February 2008.
[2]罗蕾.嵌入式实时操作系统及应用开发[M] .北京:北京航空航天大学出版社, 2007.
[3] Wang Z L; Li J; Cheng G P; et al.Implementation of VxWorks in autopilot for micro aerial vehicle based on PXA255 and FPGA[J].Journal of Beijing Institute of Technology (English Edition), 2011,20(1):30-35.
[4]李林,王向辉,陶利民,等. 航天器用实时操作系统设计[J]. 计算机测量与控制, 2012,20(4) : 1026 - 1028.
[5] 姚崇华,姜新红,程凌宇,等. 多线程应用中的定时器管理算法[J]. 计算机工程, 2010,36(2) : 75-77.
Research and Realization of Anti-interference in UAV Flight Date Based on Character of VxWorks’ Timer Technology
Li Bo1,2, Yang Junpeng1,2, Cao Chunyan2, Zhang Chen3
(1.NWPU Computer Institute, Xi’an710065,China; 2. Xi’an ASN Technology Group Co., Ltd., Xi’an710065,China;3.NWPU Automatization Institute, Xi’an710065,China)
In order to solve the problem that the UAV could not fly and work normally because the flight data acquisition is abnormally when the UAV is interfered,the paper shows the anti-interference method in UAV flight data based on the character of VxWorks’ timer technology by analyzing the UAV flight data and traditional anti-interference method。 The paper describe the method how to research and realize the key technology. Through theoretical analyzing and comparing the result of UAV flight data, it shows that the method could solve the anti-interference situation effectively without changing the hardware design and the real-time of the UAV system and can be applied in UAV design.
VxWorks;UAV;anti-interference;timer
2015-08-12;
2015-09-16。
国家863计划项目(2007AA705707)。
李博(1983-),男,陕西渭南人,博士研究生,主要从事无人机机载计算机设计方向的研究。
1671-4598(2016)01-0175-03
10.16526/j.cnki.11-4762/tp.2016.01.049
TB114.3
A