基于嵌入式开发的四旋翼无人机系统设计*
2019-05-09乔梦甜冀保峰吴文乐范世朝
乔梦甜,冀保峰,2,吴文乐,范世朝,李 鹏
(1.河南科技大学,信息工程学院, 河南 洛阳 471023; 2.电子科技大学航空航天学院,四川 成都 611731;3.西藏民族大学,信息工程学院,陕西 咸阳 712082)
0 前言
依托方便的人机交互功能,目前无人机技术涉及的范围极广。本文基于用户需求设计一款基于ARM Cotex-M3内核的STM32F106ZET6开发板,读写数据更高效,采用串级PID算法,提高无人机在自然环境下的自适应能力。从机械结构、电路设计和软件控制方面设计微型四旋翼无人机,在传统的算法基础上运用四元数法和串级PID进行优化。
1 四旋翼无人机的总体设计方案
四旋翼无人机是在传统螺旋桨式直升机的基础上发展起来的新型结构,通过四个功率大小相同、距离相等对称分布的电机以及固定在电机上半径和构造都相同的桨叶相互配合,实现在六个自由度上任意变换飞行姿态和位置,属于经典欠驱动系统[1]。目前有“+”和“×”两种不同机械结构的四旋翼,“×”型系统需要四个电机同时协调运作才能达到飞行的稳定性,对控制算法的精确度要求太高不易实现,故大都采用“+”型系统。利用可充电型3.7 V动力性锂电池为各个模块提供稳定的3.3 V和5 V的电压,并通过OLED显示屏将无人机飞行的高度、偏角、速度和PID参数进行动态显示,通过NRF24L01无线通信模块将检测数据传回遥控器上的OLED显示器,完成人机交互[2]。
图1 四旋翼无人机总体架构
2 系统硬件电路设计
2.1 微控制单元
STM32开发板作为一款功能强大,读写速度高的核心微处理器,采用3.3 V供电,它本身并不能单独工作,必须由晶振时钟、复位电路、电源和串口下载接口构成最小系统单元才能工作,提供多路输入输出。此系列的开发板具有112个GPIO端口、512字节FLASH、64位RAM,3个SPI和2个IIC总线接口,数据处理速度快,工作效率高,定时器的高级设计完全满足项目需求。本实验选用的晶振是8 MHz为核心单元提供系统时钟。
2.2 电源管理模块
电源管理模块作为整个系统的能源端口,必须给各个模块提供稳定有效的电压,在此本文选择的是可重复充电提供稳定3.7 V的动力型锂离子电池。而姿态采集、无线通信模块等都是采用3.3 V供电,因此需要通过XC6204将3.7 V的电池电压降为3.3 V。为了给串口和OLED模块供电,必须要将3.3 V利用升压LM2940模块变为7.2 V,再通过TPS7350做降压处理。
2.3 姿态采集模块
为了实时获取无人机在飞行过程中的俯仰、偏航和横滚的飞行姿态,本文决定选用集三轴加速度传感器和三轴陀螺仪为一体的六轴姿态MPU6050芯片,该芯片由3.3 V电源供电,可以有效消除在分开安装的情况下由于两个坐标轴不完全一致导致的误差,进而造成角度测量误差,便于数据归一化处理和姿态融合,而且MUP6050留有一个从机IIC接口,方便连接数字罗盘,实现主从结合,共用一条传输数据线,节省了微处理器的IIC接口,而且获取的姿态解算数据更加准确高效。
图2 电源管理模块电路图
图3 姿态采集模块电路图
图4 无线通信模块电路图
2.4 无线通信模块
为了实现机身和地面接收机之间的数据收发,本文选择了在通信传输领域应用最广泛的NRF24L01芯片作为无线通信芯片,它是用3.3 V供电,可以直接与开发板引脚相连,实现高速全双工同步通信,它的传输频段为全球通用的2.4 GHz,具有高速低能的优点。
2.5 电机驱动模块
无刷电机依靠驱动器将直流信号变为三相交流电来控制电机转速和转向,其电路结构比较复杂,会增加微型无人机的负荷,经实际测量后发现,电机实际输出和理论存在较大偏差[3]。有刷电机的结构较为复杂,内部电流的变化是靠电刷和换相器的协调运作实现的,电机转速的大小只与硬件电路中电流的大小有关,开发板控制起来比较方便,误差较小。在3.7 V的电源下可以正常工作,满足对电流和转速的要求,故本文选用有刷空心杯电机。电流式驱动方法是首先考虑的,在测试电机转速时发现存在门限效应,一旦提高到某一阈值,电机就无法提速,三极管电流就不再线性变化,产生失真,这说明传统BTN的驱动能力已无法满足电机对转速的要求。故最终采用电压式MOSFET驱动,实际上驱动电流可看作是由栅极和漏极、栅极和源极之间寄生电容的充放电过程产生的。在充电的瞬时状态下,电容可以被看作为短路,将会产生比较大的电流[4]。
2.6 人机交互模块
为方便对系统参数实时性监控和修改,实现与PC端的通信,适应不同高度、气压和风速下的飞行,在机身上设计了按键、OLED屏显示、蜂鸣器报警模块以及USB口下载模块。
3 软件编程
3.1 PID及串级PID控制算法
采集到机身当前姿态数据后,本文用PID算法对数据优化。传统PID算法便是通过系统产生的误差来消除误差,对过去误差和当前误差进行比例微分积分加权去消除误差值。但该方法的误差值难以准确获得,且加权系数很难权衡。故本文采用三级串级PID控制算法。通过控制角度来控制速度,构成“速度—角度—角速度”,将速度量转换为角度量,再将角度量转换为角速度量,由外到内的三级串级控制系统。具体的实现方法如下:
首先,在调节串级控制系统的时候,内环作为副调节器,目的是为了稳定主变量而引入的辅助变量。所以需要先调节角速度环。先给定一个0目标角速度,即角度环的输出为0,增大P值,用手来回拨动机身,直到感觉到明显阻力为止,再增大D值,直到阻力减弱并且感觉较为平缓为止,在此基础上再增大P值,即完成角速度环的调试。
其次,调整角度环,给定目标角度为机械零点的角度,逐渐增大P值,直至机身抖动为止,再增大D值,直到抖动消失,最后再增大一点P,即完成角度环的调试。串级系统的优点在于加快了系统的响应速度,且参数范围大易于调节。由于副回路存在,系统的控制时间常数缩短,提高了系统的抗干扰,本文在调试过程中拟合的姿态角如图5所示。
图5 四旋翼无人机拟合姿态角变化图
3.2 姿态解算
MPU6050将实时采集的原始姿态数据通过它本身自带的DMP模块,通过经典四元数姿态解算法,直接得到角度四元组数据,简化了大量数据和滤波操作,然后通过IIC总线传回开发板。四元数法避免了原始欧拉角计算中对三角运算复杂的要求,通过四个基本元素将机身的旋转姿态表示出来,利用方向余弦矩阵和坐标轴的映射关系得到增量旋转,融合后可获得姿态角。在姿态角数据处理部分主要采用互补滤波法,消除信号采集的累积效应和噪声干扰。互补滤波法和卡尔曼滤波法思想相同,都是通过线性加权得到。主要滤除加速度计在瞬时状态下各个方向的电机机械振动产生的噪声加速度,及陀螺仪随时间累积推移积分产生的温漂误差,所以加速度计在连续时间积分时得到的数据可靠性高,而在瞬时状态有较大的误差,即在高频情况下会产生较大的倾角误差。而陀螺仪在较长时间积分的过程中即低频会因为零点漂移产生较大的偏角误差。互补滤波是结合两个传感器的优点,抑制加速度计在高频下的作用,增大低频比重,即低频抑制高频;相反,增加陀螺仪在低频下的作用,而抑制高频效果;两者取长补短,选择合适的加权系数,与互补滤波和串行PID相结合得到最优角度[5]。调试结果如图6所示。
图6 四旋翼无人机通信传输仿真调试结果
4 结束语
本文所设计的硬件方案在实际操作中证明是可行的,通过姿态解算将六轴传感器数值结合数字罗盘得到的高度值转换为实际所需的数据值即四元数法。有效的结合互补滤波法和串级PID,滤除各种干扰项,尽可能减小误差值。在自然条件下,微型四旋翼无人机可以完成各种姿态变换,得到的数据值也到达了平滑变化的效果。在无人机飞行过程中也可以与地面基站或者遥控器实现实时数据接收和交换,并做出快速应答,这说明设计的微型四旋翼无人机可满足各种控制和飞行要求。