苏 峰 ,李中健 ,李 萍 ,雷志荣
(1.西北工业大学 自动化学院,陕西 西安 710129;2.飞行器控制一体化国防科技重点实验室 陕西 西安 710065)
近年来的我国的空气质量状况不容乐观,连续的雾霾天气已经为人们敲响了警钟,建立一套有效的空气质量监测系统对控制大气污染至关重要。目前空气质量监测网络多以覆盖式设定监测站点为主[1],各子站接受中心站的控制与调试,利用子站的分析仪器直接测量本站空气中的污染物,并将数据实时传输到中心站。这种定点检测方式往往也存在着很多的不足,如监测站布点不尽合理,监测指标偏少,缺乏流动观测和立体观测的技术手段。本方案就将子站的部分功能融合到飞行器中,实现可移动的监测子站。四旋翼由4个螺旋桨驱动,可操作性好,小巧便携,飞行稳定,且零污染,零排放,适于搭载大气检测系统进行大气质量监测[2]。本系统就以检测空气中悬浮颗粒物浓度为例,设计了一整套的监测系统,并进行了大量的系统调试验证工作,最终实现预定功能。
系统结构如图1所示,采用Xaircraft X650四旋翼飞行器,搭载了空气质量检测及飞行控制系统和一个安全保障装置——手自动切换模块。该系统采用模块化的设计方案,空气质量传感器采用技术上相对成熟的模块化的产品。飞控及空气数据采集系统计以32位ARM内核芯片为核心处理器,外扩空气质量数据采集接口、SD卡存储器、电机驱动接口、PWM波检测接口、多通道串口通信接口构成最基本的电路,辅以微型航向姿态参考系统(AHRS)、超声波高度传感器、空气质量传感器完成空气质量数据采集和飞行控制功能;基于FPGA的手自动切换板能实时可靠地将飞行器从自动飞行模式切换到手动遥控模式;采用LabVIEW设计一套地面站软件,通过数传电台与飞行器进行数据传输,实现实时的空气质量及飞行器状态监测和任务设定功能。
系统硬件主要分为2个部分,即基于ARM的飞行控制及空气数据采集电路和基于FPGA的手自动切换电路。
飞行控制及空气数据采集电路主要完成四旋翼控制、空气质量数据采集及监测信息的无线传输功能。
图1 系统总体结构图Fig.1 Structure diagram of the system
空气质量传感器种类较多,如GP2Y1010粉尘传感器模块(可测PM2.5/PM10)、TGS2201汽车尾气传感器模块(可测CO、CO2、NO、NO2)或专用的气体成分传感器模块,这些传感器多将气体信号转化为0~5 V电压模拟信号,便于空气数据的采集。该系统搭载了GP2Y1010粉尘传感器模块,该模块体积小,重量轻,便于安装,可测量直径0.8 μm以上的微小粒子,其输出为模拟电压,值与粉尘浓度成正比。
该系统选用意法半导体公司的STM32F103VE为主控芯片,其拥有足够的内存空间和外设接口,完全满足设计要求。航向姿态参考系统 (Attitude and Heading Reference System,AHRS)选用了自研设备,可通过串口为飞行器提供姿态、航向、高度、位置等信息。采用SensComp公司的615088传感器进行低空高度的测量。它具有两种模式:触发测距模式、5 Hz自动测距模式。测量范围:0.15~10.7 m,测量精度:0.1%。采用MaxStream公司的XStream-PKG数传电台,它采用串口进行数据通信,最远通讯距离可达32 km。飞行控制及空气数据采集电路结构如图2所示。
图2 飞行控制及空气数据采集电路结构Fig.2 Flight control and air data acquisition circuit structure
如图2所示,STM32单片机通过A/D口采集空气质量传感器数据,通过串口读取飞行器的姿态角、角速率、磁航向信息等,经过内部控制运算输出四路PWM电机控制信号,做四旋翼的姿态控制,实时将空气及飞机状态信息记录在SD卡中并传输到地面站。使用超声波传感器测定高度进行低空高度控制,当飞行器飞行至高空时转用气压高度。辅以GPS全球定位系统将精确地位置及速度信息输送给ARM单片机进行定位控制。在设计完原理图后,进行了PCB板的设计并印制,经调试该电路板(如图3所示)实现了预定功能。
图3 飞行控制及空气数据采集电路板Fig.3 Flight control and air data acquisition board
该模块独立于飞控及大气数据采集电路,用于四旋翼自动控制模式和手动遥控模式的切换,当飞控电路板出现故障时,可以随时切换到遥控模式,从而极大提高了系统的可靠性。
模块采用ALTERA公司的CycloneII系列EP2C5T144C8N芯片,设计中采用数字逻辑设计切换功能,相对于单片机更高的实时性,能够在切换信号到来后几微秒内实现信号的切换,并且全数字逻辑的实现也极大提高了可靠性。要实现信号切换功能,仅需要一个最小系统即可。
以上就是本系统主要的两部分硬件设计,遥控器与STM32F103及EP2C5芯片的信号是相互兼容的,它们之间的通讯不需要任何信号转换电路。STM32与数传电台通讯需要使用串口芯片(MAX232)将普通的CMOS电平信号转化为标准串口信号。经过调试,以上两部分硬件实现了预定功能。
系统的软件主要分为3个部分:基于ARM的飞行控制及数据采集软件设计,基于FPGA的信号切换软件设计及基于LabVIEW的地面站监控软件设计。
3.1.1 四旋翼飞行器测控原理
图5所示为四旋翼飞行控制及直线自主飞行原理图。如图所示,四旋翼飞行器由四对电机和螺旋桨对称分布组成其动力装置,每个电机的转速越高,其所提供的升力也就越大,相应地反扭力矩也就越大。本设计采用X型控制模式,即机头指向1、2号机臂正前方,1、3号电机和 2、4号电机转速方向相反。在理想环境中,当四旋翼悬停时,1、2、3、4号电机(如图所示)转速相同,四旋翼右滚/抬头/右偏时,1、4/1、2/2、4号电机加速,2、3/3、4/1、3 号电机减速,由此构成四旋翼的姿态控制。
设计实现了四旋翼的定点控制,即设定一个目标点,四旋翼可以沿着一条直线飞到目标点保持悬停,于是就必须要实现四旋翼的姿态控制(即内环控制)与直线导航控制(即外环控制)。四旋翼的内环控制采用了最为简易也最为实用的PID(增量式)控制算法,将四旋翼的控制分为滚转、俯仰、偏航3个控制回路,忽略3个回路的相互耦合作用,经过实际验证该方法十分有效且极易实现。四旋翼高度控制也采用了PID控制算法[3],其作为单独的一个控制回路,将控制量同时施加在4个电机上,通过控制电机提供的整体升力完成高度的控制。增量式PID算法如下所示:
四旋翼只需要简单的直线飞行即可完成设定的任务,可以认为四旋翼的航迹小于50 km,即可近似将地球平面看做一个平面来处理。与固定翼不同,四旋翼只需控制航向和俯仰角即可完成航线飞行,这里只介绍四旋翼的航向角控制。如图4所示[4],P1为前一个目标航点,P2为当前目标航点,P为当前四旋翼所在位置,L为航点间距,D为侧偏距,侧偏距方向的定义为,为P1点向P2点看去,当前置位于右侧为正,左侧为负,则有如下计算公式:
图4 四旋翼飞行控制及直线自主飞行原理图Fig.4 Four-rotor flight control and autonomous flight line diagram
V为地速,其在北向向分量为VN,东向分量为VE;Ψv为地速与北向夹角,Ψ2为直线PP2与北向的夹角;L2为当前位置P与目标航点P2的距离;侧偏速度Ve为无人机地速沿直线PP2垂线方向的分量,方向定义为偏离航线为正,靠近航线为负,其计算公式如下:
Ψe为航向角偏差,则设计飞行器的直线飞行控制率[5]为:
式中δ为在偏航、俯仰、滚转通道上的控制输出增量。
四旋翼的另一个重要功能是监测控制质量,这里以监测空气中颗粒物浓度为例,采用GP2Y1010粉尘传感器模块传感器模块,该模块设计用来感应空气中的尘埃粒子,其内部对角安放着红外线发光二极管和光电晶体管,使其能够他测到空气中尘埃的反射光,其输出的模拟电压与粉尘浓度成正比,通过单片机内部AD转换器采集粉尘传感器输出电压,并经过换算可以得到空气中的粉尘浓度,本系统作为一种监测手段,将传感器的原始数据采回,便于分析与观测。
3.1.2 基于ARM的测控系统软件设计
该程序主要包含底层驱动程序、控制运算程序和基于定时器的任务管理程序。其中底层驱动程序主要完成空气质量数据的接收,AHRS数据接收,高度数据接收,遥控器数据接收,电机控制,数传电台数据传输等功能;控制运算程序包含内环和外环控制程序,主要完成飞行控制功能;任务管理程序则基于定时器的定时器及中断对整个系统进行任务管理。程序运行原理如图5所示。为实现飞行器与地面站可靠的通讯,设计了如表1所示固定格式的数据包,保证了无线传输数据的可靠性。
图5 基于ARM的测控系统软件设计Fig.5 The design of control system software based on ARM
表1 数据包格式Tab.1 Packet format
本程序主要实现两个功能,一是要对切换信号进行实时不间断的检测[6],当切换信号到来时能够实时将电机控制信号切换到遥控信号上去,二是要对遥控器的信号进行混合运算,即将遥控器的滚转、俯仰、偏航及油门控制信号映射到四个电机上去,实现四旋翼的遥控控制。
如图6所示为使用ModelSim软件对以上Verilog代码进行的仿真,由图可以看出,当切换信号到来后,在下一个时钟周期上升沿turn信号由低电平跳变到高电平,实现了切换信号的检测,从而对控制信号进行切换。
图6 ModelSim仿真图Fig.6 ModelSim simulation diagram
地面站软件主要实现飞行器参数调试,任务指令发送,监测数据接收显示和地图显示等功能。如图7所示为采用G语言(图形化语言)编写的地图显示程序[7]。
程序采用顺序结构,首先对软件进行初始配置,如调入地图图片,设定接收数据存储路径,设定图片像素点与GPS点对应关系等,其次执行一个while循环,实时显示当前飞行器状态及空气质量状况,同时还可以对四旋翼进行参数配置,用于调节PID参数和上传多个任务航点等。
系统采用了模块化的传感器成品监测空气质量数据,其监测误差多分布于传感器本身,采用12位AD转换器所造成的误差并不大。以检测粉尘颗粒物为例,为检验系统数据采集的精度,表2记录了在同一地点相同时刻本系统与PC-3A粉尘仪检测到的粉尘数据(PM2.5),并进行了对比,经反复测试表明,本系统的测量相对误差基本可控制在20%以内,符合测量要求。
图7 地图显示程序Fig.7 Map display program
表2 传感器采样测试结果对比Tab.2 Contrast sensor sampling test results
经过多次PID参数调试,实现了四旋翼的姿态及航线控制。如图8所示为地面监测站的地图及空气数据波形显示界面,图中曲线为四旋翼飞行航迹,图中波形为设定航迹起点处定高为7 m处的粉尘浓度数据(可更换不同类型的传感器以检测不同空气成分),人为增加空气中颗粒物浓度后可明显观测到两个波峰。与此同时,系统将采集的大气数据实时记录到SD卡中,可便于对数据进行进一步的分析。
图8 地面站监测数据显示Fig.8 Ground station monitoring data show
本系统充分利用了四旋翼飞行器稳定性好、可垂直起降、操作方便等特点,将设计的飞行控制系统与空气质量监测系统巧妙地结合在一起,实现了全自主、高机动的空气质量监测,经实验验证,系统良好完成了设定功能,可做为一种更加灵活的空气数据监测手段辅助监测人员监测不同的空气数据。
[1]汪胜辉.基于GPRS的空气质量监测系统设计[D].湖南大学,2008.
[2]张垚,鲜斌,殷强,等 .基于ARM处理器的四旋翼无人机自主控制系统研究[J].中国科学技术大学学报,2012,42(9):753-760.ZHANG Yao,XIAN Bin,YIN Qiang,et al.Autonomous control system for the quadrotor unmanned aerial vehicle based on ARM processors[J].Journal of University of Science and Technology of China,2012,42(9):753-760.
[3]周雪琴,安锦文.计算机控制系统[M].西安:西北工业大学出版社,1998.
[4]胡庆.基于STM32单片机的无人机飞行控制系统设计[D].南京航空航天大学,2012.
[5]王松,王田苗,李新军,等.微小型飞行器航向系统设计[J].机器人,2006,28(6).WANG Song,WANG Tian-miao,LI Xin-jun.Design of the heading system of micro air vehicle[J].Robot,2006,28(6).
[6]王尔申,陈士英,石剑民.基于FPGA的机载PWM信号转换器仿真与实现[J].计算机工程与设计,2013,34(8):2850-2854.WANG Er-shen,CHEN Shi-ying,SHI Jian-min.Simulation and implementation of airborne PWM signal converter based on FPGA[J].Computer Engineering and Design,2013,34(8):2850-2854.
[7]陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2012.