陈 赛,孙青林,孙 昊,陈增强
(南开大学 计算机与控制工程学院,天津 300350)
风作为重要的气象信息之一,由风速和风向组成,对人类生活和发展带来了各方面的影响。因此衍生出一系列风场探测设备,如在风力发电厂和自动气象站,主要使用了定点安装式风速风向仪,来高效率稳定发电和保证人身安全,指导工业生产[1-2]。但它只能测量单点范围风场信息,对不同经纬度的地点无法到达,限制了使用范围。改进后的移动式风场探测仪大部分应用到车载气象站和航海帆船等领域,为应急气象现场服务,提供地面气象数据的基础资料[3]。它属于在同一运动方向对风速风向进行修正,而无人飞行器的飞行姿态是在不同空间坐标系下实时变化的,需要进行坐标系间转换。还有通过多组历史气象数据进行模型预测分析,但预测结果偏重于未来一段时间内的平均风场情况,同样无法满足移动飞行器的实时性要求[4-5]。无人飞行器因质量较轻和飞行速度低,极易受到外界风场扰动影响,因此获得实时风场信息对于移动无人飞行器顺利执行任务具有重要意义。
为实现移动无人飞行器的实时风场探测,本文设计了一种基于飞行器坐标系变换算法的风场探测仪。该系统由各硬件模块组成,通过嵌入式控制单元对采集的数据进行转换修正,得到大地坐标系下的绝对风场信息,并通过地面站即时传输显示。
在风场探测系统中,主要用到了飞行器坐标系和大地坐标系,其系统结构如图1所示。大地坐标系Odxdydzd的坐标原点Od取空间中某一固定点,zd轴垂直指向大地,xd轴指向飞行器初始化状态的前方,yd轴与xd轴和zd轴垂直,组成右手坐标系。飞行器坐标系Ojxjyjzj是以机体质心Oj为原点建立的右手坐标系,zj轴位于机体对称面内,指向机体底部;yj轴垂直于纵向对称面,指向机体左侧。xj轴位于纵向对称面内并指向机体前方。
图1 风场探测系统结构Fig.1 Structure of wind field detection system
大地坐标系到飞行器坐标系之间的转换关系可由一组欧拉角(φ θ ψ)来实现,其转换矩阵可表示为
式中:下标d、j分别指代大地坐标系和飞行器坐标系;(φ θ ψ)分别代表3 个欧拉角:滚转角、俯仰角和偏航角。
风速风向仪输出的信息为风速vj,风向θj,均表示在飞行器坐标系下。GPS定位系统测得大地坐标系下的位置矢量 [xdydzd]T,每0.2 s更新一次,并通过与上一时刻的位置量进行计算得到飞行器在大地坐标系下的经向速度、纬向速度和下降速度陀螺仪输出的数据为大地坐标系和飞行器坐标系之间的角度关系(φ θ ψ)。
考虑到风速风向仪的安装角垂直于飞行器坐标系的xjyj平面,因此,所获取到的风速只有xj轴与yj轴的分量,忽略垂直速度分量。已知风速风向仪风向角度为θj,则可得vj相对飞行器坐标系下的水平速度分量,即:
通过陀螺仪得到的两坐标系角度关系,可将飞行器坐标系下的水平速度分量转换为大地坐标系下的分量,即:
则在大地坐标系下的绝对风场方向θwind为
由此可得到移动无人飞行器在飞行环境下的外界实时风场信息。上文中提到的各模块输出量通过合理设计硬件电路来采集,利用嵌入式控制单元进行处理计算,接下来是对硬件模块设计的介绍。
本文采用的嵌入式核心控制单元为基于ARM Cortex-M4内核[6]的微处理器STM32F407芯片,最高工作频率可达168 MHz,并具有数字信号处理DSP功能,适用于风场探测仪这种需要大量矩阵运算和高精度浮点运算的系统。嵌入式控制单元的原理图及外设接口如图2所示。
图2 嵌入式控制单元Fig.2 Embedded control unit
在图2中,外部供电采用LiPo 12 V电池,电源电路部分的主要功能是将输入电压转换为5 V和3.3 V,提供给微处理器和外设使用。考虑到系统工作的稳定性,降压电路采用的是XL1509-5.0芯片和AMS 1117-3.3芯片,通过抗干扰和滤波电容设计保证电路板的安全。SWD调试接口是为下载控制程序和断点调试,并且节约管脚资源。复位电路通过外部轻触开关来使电路恢复到起始状态。
控制单元的数据采集接口包括风速风向仪、陀螺仪、GPS定位信息。接口电路采用SP 3232E芯片对处理器的通用异步收发器串口进行电平信号转换,与外接传感器建立通讯。控制单元对串口设置波特率和分配中断优先级,中断处理函数做出合理有效的响应。应用FatFS文件系统将数据存储到内置的Micro SD内存卡中,便于进行离线分析。数据发送接口通过数传电台与地面站通讯。
风速风向仪采用FWS 200型一体式超声波气象传感器,精度较高,响应时间快。风速和风向分辨率分别为0.1 m/s和1°,工作电压12 V,输出信号采用Modbus-RTU协议的命令子集,使用读寄存器命令。当需要读取传感器当前值时,主设备报文格式为
从设备地址+功能码+起始寄存器地址+寄存器个数+CRC校验码。如:0x02 0x03 0x00 0x2A 0x00 0x02 0xE5 0xF0
从设备报文格式为
从设备地址+功能码+数据区字节数+数据区+CRC校验码。如:0x02 0x03 0x04 0x00 0x0F 0x02 0xA3 0xE9 0x30
从设备报文中,0x00 0x0F为风速量,0x02 0xA3为风向数据,均为高位在前、低位在后,并且为扩大10倍后的信息。
陀螺仪模块采用九轴MPU 6050芯片,内部集成了姿态解算器,配合动态卡尔曼滤波算法,能够在动态环境下准确输出模块的当前姿态。角度测量精度0.01°,数据输出频率20 Hz,供电电压3.3 V。陀螺仪电路设计如图3所示。设置模块回传三轴角度数据包,其输出格式为:
0x55 0x52 RollL RollH PitchL PitchH YawL YawH TL TH SUM
偏航角(同其他两个角)计算方法为
图3 陀螺仪电路设计图Fig.3 Gyroscope circuit design
GPS定位系统采用FX-207型北斗/GNSS单频高精度板卡和航空型天线。单点定位精度1.2 m,输出频率5 Hz,天线供电电压5 V,板卡电压3.3 V。其信息处理电路如图4所示。输出数据中包括时间,经纬度和高度信息,可用于计算飞行器飞行速度。其输出格式为
$GPGGA,105132.41,4004.2922,N,11317.2868,E,1,09,1.6,1050.000,M,-17.823,M,,*7F
图4 GPS信息处理电路图Fig.4 GPS information processing circuit diagram
数传电台模块采用E32型433 MHz无线串口和高增益吸盘天线。供电电压5 V,发射频率20 dbm,最大传输距离3 km。其数据发送电路采用RS-232串口完成,同GPS信息处理电路图。
在嵌入式控制单元和各模块的硬件设计基础上,完成了软件部分的系统流程图规划和C语言程序的编写,并通过Keil uVision4软件将算法程序编译烧写到控制器中。其中系统流程如图5所示。
图5 系统流程Fig.5 System flow chart
主程序首先对微处理器进行初始化,进入主循环程序,等待触发外部信号量中断。当中断产生后,通过中断处理函数采集3个外部模块信息,对接收的数据进行滤波预处理,避免因模块工作不稳定输出较大偏差或非法数据,每0.2 s更新并保存各个数据量。然后进入飞行器坐标系转换算法程序,对3个数据量进行坐标转换运算,得到大地坐标系下的绝对风场信息。数传电台每0.2 s向地面站发送1次数据包,包括实时风速风向信息,飞行器位置和姿态信息。
为验证风场探测仪的有效性和准确性,本课题组开发了某种小型伞翼无人机进行空投飞行实验。空投高度为200 m,飞行时间50 s,地面站每0.2 s接收1次数据包,其设备如图6所示。定义西风,南风为经纬方向的正值风。其飞行过程中实时水平风速风向信息如图7和图8所示。
伞翼无人机开伞时会损失一定的高度,并且需要一段时间才能稳定飞行。由上图可看出,经过15 s的调整,水平风速分量均能跟踪到与实测风速相近的范围,风向也能快速收敛到实测方向周围。由于陀螺仪及风速风向仪模块输出的数据精度较高,小角度的变化也能检测出来,所以即使系统稳定时,系统计算输出的风速和风向信息存在小范围的波动,但速度误差在0.2 m/s以内,方向在2°以内,均能满足飞行器的性能要求,实现了对风场信息快速和高精度的实时输出,为飞行器合理规划飞行轨迹和设计抗风策略提供了重要外界参数。
图6 地面站Fig.6 Ground station
图7 水平风速分量曲线Fig.7 Curve of horizontal wind speed component
图8 水平风向曲线Fig.8 Curve of horizontal wind direction
为获得移动无人飞行器的实时风场信息,设计了一种基于飞行器坐标系转换算法的风场探测仪。通过飞行器坐标系和大地坐标系之间的转换矩阵,可以实时探测到大地坐标系下的绝对水平速度分量和方向。设计硬件电路和调试数据输出模块,保证信号量接收的稳定。通过风场空投实验,该仪器能快速准确的获取实时风场信息,并且在伞翼无人机上得到了成功应用。