文档库 最新最全的文档下载
当前位置:文档库 › 基于stm32的四轴飞行器设计与控制

基于stm32的四轴飞行器设计与控制

摘 要:四轴飞行器结构简单、易于操控、有较强的带负载能力,具有重要的军事和民用价值。本文在综述其研究现状之后,对其结构和飞行原理进行了简要介绍,进而确定了系统软硬件组成。实现四轴飞行器轴距与动力匹配并进行硬件选型以及PCB电路板的制作。姿态测量主要由IMU获得,设计了不同截止频率的滤波器来实现数据滤波,从而得到较为精准的载体姿态和航向信息。控制器采用双环PID控制。将其输出根据X型结构特点将输出对应到四个电机,进行姿态模式和定高模式的参数调试,以此实现该欠驱动系统的平稳控制。
关键词:stm32微控制器;四轴飞行器;PCB设计;定高
The Design and Control of a Quadcopter
Based on stm32
Wangwenwu College of physics and electronic information engineering
Abstract: With a simple structure, convenience to control, and a strong load
capacity, the quadcopter has important military and civilian value. In this paper,
after reviewing the research status of quadcopters, the structure and flight principle
are briefly introduced, on which, the hardware and software of the system are
determined. The wheelbase and power matches and hardware selection and PCB
production and are realized. Attitude measurement is mainly obtained by IMU.
Filters with different cutoff frequencies are designed to achieve data filtering,
resulting in more accurate attitude and heading information. The controller adopts
double-loop PID control. After the output to the four rotors according to the X-type
structure and the parameter tests of attitude and height, the smooth control of
this under-actuated system can be achieved.
Key words:stm32 MCU; Quadcopter; PCB Design; Height Hold
1绪论
人类自古以来就有飞天梦想,世界各地的神话传说、民间故事、敦煌壁画上的“飞天”、小时候玩的竹蜻蜓都可窥一二。但从理想走向现实,也就一百多年的时间。1920年,也就是莱特兄弟发明飞机后的17年,多轴无人飞行器就此诞生。但囿于当时科技水平的落后,控制技术的不成熟,以及相关控制理论的缺乏,多旋翼的发展一直处于休眠期。直到20世纪末,得益于微电子器件技术的发展、多旋翼相关学术讨论和研究方面取得的进展,多旋翼逐渐脱离军事用途而变成消费级玩具,多旋翼逐渐进入复苏期和发展期。越来越多的科研从业者开始研究多旋翼,自己搭建平台,验证算法,如姿态控制算法等。随后四旋翼的发展如雨后春笋般渐渐发展起来。
近年来,无人飞行器的应用越来越多,如地质检测,侦察与营救,农林植保,电力巡线,影视拍摄等方面无人机的身影出现得越来越频繁。这些都归功与无人飞行器的诸多优点,如体积小,制作成本低,可应用于恶劣及危险的复杂环境

,具有良好的操作性与灵活性。
相比于其他无人飞行器,本设计四轴飞行器采用f330结构,既有f450,f550等结构的带负载能力,又有f210等结构的灵活性,因此起飞和降落所需空间小,姿态保持能力高,在有障碍物的环境中反应灵活,可控性强。除此之外,四轴飞行器的研究也为自动控制,先进导航,视觉图像处理等诸多领域提供很好的平台和打下良好的基础。因此,四轴飞行器的设计与控制的研究非常有必要,具有很高的学术研究价值,也能够很好地使设计者得到学术和实践上的锻炼。
四轴飞行器的设计与控制包含硬件设计和软件实现两个方面。硬件设计主要包括主控芯片的选型以及各传感器的选择,根据器件选型确定相关的外围电路,最后画出整个系统的原理图与PCB(Printed Circuit Borad),之后进行元器件的焊接和调试。四轴飞行器采用STM32F103RCT6作为主控芯片,六轴传感器选择MPU6050,磁力计选择IST8310,气压计选择SPL06001,超声波选择US100,除此之外,还包括遥控器与接收机的选择,蓝牙模块作为数据传输模块,可以实现全双工串口通信,能完成调试阶段飞控参数的获取以及通过上位机向飞控写入PID数据。焊接好的飞控PCB板经调试能够稳定地运行软件程序。软件实现主要包括各传感器驱动的移植和调试,在5ms定时器中断中实现获取传感器数据,进行姿态解算,姿态控制以及控制量输出等功能。
在实际测试中,四轴飞行器能够较好完成本设计预先要求的横滚、俯仰、偏航等功能,可控性、控制手感较好。在系统上电时,能够对各传感器完成巡检,并通过OLED显示出巡检结果,因此能及时发现并排除硬件故障。可以通过OLED实时观察飞控的姿态角,PPM(Pulse Position Modulation)输入,控制量输出等数据,也可以用蓝牙模块将飞控数据传输到上位机实时显示姿态,后期进行数据处理或者通过上位机将PID数据写入到飞控进行参数的调试。实验结果表明,本设计方案切实可靠可行,能完成预先设计的功能。
2四轴飞行器
2.1早期四轴飞行器设计
四轴飞行器已经有百年历史了,早在上个世纪初,1907年,法国Breguet兄弟就制造了第一台四旋翼式直升机,但是由于这次飞行中只有油门作为控制,起飞时还需要助手帮助实现稳定起飞,飞行稳定性很差,但Breguet兄弟的四旋翼式直升机的显著特点就是同时使用两个顺时针和两个逆时针旋转的旋翼进行飞行。1921年,George De Bothezat和Ivan Jerome在美国空军军团合约的支持下,打造了一款1700kg的四旋翼式直升机。这款飞行器可以实现稳定飞行,然而动力不足,响应性能不够,机械结构也很复杂,美国军方对其失去了兴趣。1924

年,出现了一种叫做Oemichen的四旋翼直升机,该四旋翼直升机首次实现了1km的垂直飞行。1956年,Convertawing造了一架四旋翼直升机,其螺旋桨在直径上超过了19英尺,用到了两个发动机,并且通过改变每个螺旋桨提供的推力来控制飞行。之后的数十年四旋翼直升机一直处于休眠期,未取得突破性的成果。直到上世纪80年代,嵌入式、MEMS以及传感器的发展,极大地减少了飞行器的数据处理系统单元、传感器以及通讯装置的重量,进而提高了四旋翼的续航,引起了人们极大的兴趣,加速了现代较为成熟的四旋翼飞行器的发展。
2.2四轴飞行器研究现状
目前四轴飞行器的控制已经不是学术研究的问题。学术研究的方向也转向了基于四轴飞行器做智能导航或者多飞行器的编队控制,可以说四旋翼飞行器的基础理论与实验研究已取得较大进展,但要真正走向成熟与应用,还面临着诸多技术的挑战,如续航能力,变重心变质量情况下的控制等,这些都需要更多的研究和努力。
四轴飞行器或者扩展来说,多旋翼飞行器的应用范围很广,只是目前还没有渗入到我们的日常生活中。现在是多旋翼飞行器发展的爆发期,以后逐渐会有更多的多旋翼的应用场景。如:从航拍上来说,可以对地球表面近距离摄像,相当于把地球扫描了一遍,而这个成本是要比飞机和卫星低的;还可以应用于果园或农场的管理,用飞行器航拍将数据分析出来,借助数据分析技术,实现数字化管理;还可以作为一个空中站点,空中传输媒介,空中支架,空中气球等。
目前世界上小型四旋翼飞行器基本上都属于小型无人飞行器。小型四旋翼飞行器的研究主要集中在3个方面:基于惯导的自主飞行控制、基于视觉的自主飞行控制和自主飞行器系统方案,其典型代表分别是:瑞士洛桑联邦科技学院(EPFL)的OS4、宾夕法尼亚大学的HMX4和佐治亚理工大学的GTMARS。OS4是EPFL自动化系统实验室开发的一种电动小型四旋翼飞行器,研究的重点是机构设计方法和自主飞行控制算法,目标是实现室内和室外环境中的完全自主飞行。现在已经有很多飞控名扬世界了,如APM、Pixhawk、PPZ、autoquad、cleanflight、betaflight、MWC等。虽说目前飞控的控制技术已经较为成熟,但仍然存在很多问题:如抗干扰能力、鲁棒性、续航等有待继续提高,变重心变质量情况下的控制效果不佳,起飞不稳定,室内自主悬停控制不够理想,惯性导航和室内导航精度低等。针对抗干扰能力,韩京清教授提出的自抗扰技术[ ],被认为为继PID控制后的划时代的工控技术。目前国内也有一些人在把自抗扰技术应用到四轴飞行器上且取得了一定的

不错的效果。变重心的问题国外也出现了Neuroflight[ ],应用神经网络技术来设计控制器。Neuroflight的控制器有自适应、自计划和自我学习的能力。当然,Neuroflight还在研究阶段。
3四轴飞行器的结构和控制原理简介

(a)十字模式布局 (b)X字模式布局
图3.1 四轴飞行器结构模式图
四轴飞行器按其四个电机控制量的分配可以分为+字模式和X字模式,本设计采用的是X模式。
3.1悬停运动

图3.2 悬停转向转速图
3.2升降运动

图3.3 升降转向转速图
3.3前后运动

图3.4 前后转向转速图
3.4左右运动

图3.5 左右转向转速图
3.5偏航运动

图3.6 偏航转向转速图
4系统硬件设计
4.1系统总体介绍
硬件设计是软件实现的基础。本设计采用STM32F103RCT6作为主控芯片,该芯片是基于ARM内核的Cortex-M3系列处理器。运算速度快,内置高速缓存,多达3个A/D转换器,11个定时器,13个通讯接口以及诸多I/O接口等。
采用MPU6050结合IST8310输出9轴数据。MPU6050集成了3轴MEMS陀螺仪,3轴加速度计,分别获得机体坐标系的角速度和加速度数据。IST8310通过访问寄存器也可以得到三轴磁力计数据。
采用歌尔公司推出的SPL06-001作为气压计来获取高度数据,从而实现定高。开机时进行气压标定,之后获得的气压值通过公式可以直接转化为相对高度。
采用富斯IA6遥控器输出PPM信号,通过IA6B接收机来接收遥控器的信号,IA6B的输出接入飞控的PPM接口,程序中对PPM,信号进行解析,即可得到各个通道的控制数据。
采用US-100作为超声波模块,超声波精度较高,可以弥补气压计得到的高度数据的漂移。以此实现精度更高的定高。
采用UBLOX M8030作为GPS模块,可以获得时间、定位类型、参与定位卫星个数、经纬度、海拔高度、水平位置估计精度、垂直位置估计精度、沿导航系正北速度、正东速度、天向速度、载体运动航向角等。本设计GPS模块结合气压计定高可以实现GPS定点、一键返航。
采用湖南优象最新款LC306作为光流模块,通过解析光流输出数据,可以获得四轴飞行器在XOY面移动速度以及位置。通过对光流速度环和位置环进行双闭环控制,能够实现四轴飞行器在XOY面的定点即实现光流辅助悬停。
该系统的硬件框图如图所示:

图4.1 系统总体硬件结构设计框图
4.2 四轴飞行器
4.2.1 微控制器模块
飞控MCU(Microcontroller Unit)采用ST公司的STM32F103RCT6,这是一款强大的飞控,主频 72Mhz(可超频至 128M), Flash容量是256KB,RAM容量是48KB[ ]。

图4.2 系统微控制器及外围电路原理图
4.2.2 加速度计和陀螺仪模块
采用六轴传感器MPU6050,可输出三轴陀螺仪,三轴加速度数据。可用其I2C接口外接磁力计,形成输

出九轴数据的运动处理传感器。我们用MPU6050输出加速度数据和角速度数据。我们也可以以数字输出6轴或9轴的旋转矩阵(rotation vector)、四元数(quaternion)、欧拉角格式(Euler Angle forma)的融合演算数据。加速度计的静态性能好,陀螺仪的动态性能好,加速度计可以修正陀螺仪的漂移。读取I2C总线上的数据经过椭球校正以及截至频率为60Hz的Butterworth滤波后将其从机体坐标系转化为地理坐标系即可以作为惯导和加速度控制反馈量。椭球校正后将其从机体坐标系转化为地理坐标系之后并Butterworth滤波后即可作为加速度数据。对于陀螺仪数据,通过读取I2C总线上的数据并减去陀螺仪零偏后Butterworth滤波即可得到。

图4.3 MPU6050原理图
4.2.3 数字罗盘模块
采用IST8310三轴数字磁力计,内置温度补偿以及自检功能,以I2C总线的方式通信,能达到最高200Hz的数据输出速度。若采用快速模式最高可以达到400kHz。本设计采用200Hz的通信速度,读取I2C总线上的数据通过合成以及重新映射三轴磁力计数据,滑动窗口滤波以及倾角补偿和反正切即可得到磁力计观测角度。

图4.4 IST8310原理图
4.2.4 气压计模块
采用SPL06-001,这是全球领先的MEMS(Micro Electromechanical System)厂家歌尔推出的新款气压传感器,定位精度可以达到5cm。SPL06-001的内部处理器可以将气压和温度传感单元的输出转化为24位的结果。融合系数用来将测量结果转化为真正的气压和温度值。对于高度的获得有如下公式:

(4.1)
其中 =101325 ,即标准大气压。

图4.5 SPL06-001原理图
4.2.5 GNSS接口
GNSS(Global Navigation Satellite System),即全球导航卫星系统,主要包括美国的GPS全球定位系统、中国的北斗卫星导航系统、俄罗斯的GLONASS、欧洲的GALILEO,以及其他的一些区域增强系统。四轴飞行器在室外定点或者定速巡航,返航等需要采用GNSS系统来获取当前位置信息。本设计采用UBLOX M8030,使用UBLOX协议,默认使用38400波特率和10Hz的更新率,默认使用GPS+GLONASS,也可以调节成GPS+北斗。

图4.6 GPS接口原理图
4.2.6 光流模块
采用湖南优象最新款光流模块LC306,以UART的方式进行通信,UART的数据格式起始位为1Bit,数据位为8Bit,停止位为1Bit,无校验位,波特率位19200Bit/s,数据刷最新频率为50Hz, 有效距离可以达到700cm。基于该模块自行开发软件可以获得较低高度时四轴在水平面上的对地速度。
4.2.7 超声波模块
采用US-100超声波传感器,该模块可以实现2cm~2.5m的非接触测距功能。可以采用电平触发或者串口触发进行测距。探测精度为0.3cm+1%。本设计采用电平触发的方式获取距离值。只需在Trig脚输入一个10us以上的高电平,系统便可发出8个40kHz的

相关文档