基于单片机的微型四旋翼飞行器毕业设计论文

更新时间:2024-04-01 09:30:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

[摘要] 本文对微型四旋翼飞行器自平衡算法进行研究,详细分析了应用互补滤波器,进行信号处理的思路和参数整定过程,应用滤波后的数据,进行飞行器姿态角度融合,解算出飞行器实时的俯仰角、翻滚角、偏航角。在解算出飞行姿态角度的基础上应用PID算法控制四旋翼飞行器进行自平衡悬停及相关的运动姿态控制。硬件上,采用STM32F103作为微控制器,以MPU6050作为四旋翼飞行器姿态传感器件,通过AO3402MOS管驱动四个空心杯电机改变飞行器姿态,设计结果是能准确测量飞行器姿态并将测量角度输出给相应坐标的电机,进行姿态调整。本文将从硬件、软件初始化、控制算法及调试等几个篇幅详细展示整个微型四旋翼飞行器的制作过程。

[关键词] 微型四旋翼飞行器;互补滤波算法;PD控制算法;STM32F103;自平衡

Abstract: This paper is a research about algorithm of Quadrotor Micro-aircraft Self-balancing. It will detailed analysis the idea about using Complementary filter deal with the digital signals and the basis of flying-Angle using PID algorithm controlling Quadrotor Micro-aircraft achieves the self-balancing control. Hardware uses STM32F103 as micro controller, with MPU6050 as attitude sensor of Quadrotor Micro-aircraft, through AO3402MOS tube driving four result can accurately measure spacecraft attitude and output the measuring Angle to the corresponding coordinates of the motor and realize the attitude adjustment. This article will show the whole production process of the Quadrotor Micro-aircraft in detail from the , control algorithm, debug and so on.

Key words: Micro four rotor aircraft;Complementary filter;PD control algorithm; STM32F103; Self-balancing

目 录

1 绪 论 ................................................................................................................................. 1

1.1 本课题的研究意义及必要性 .................................................................................. 1 1.2 相关领域国内外研究现状及发展趋势 .................................................................. 1 1.3论文篇幅简介 ........................................................................................................... 3 2 四旋翼飞行器系统分析 ..................................................................................................... 4

2.1系统基本原理 ........................................................................................................... 4 2.2系统功能要求 ........................................................................................................... 5 2.3 系统可行性分析 ...................................................................................................... 5 3 四旋翼飞行器总体设计 ..................................................................................................... 7

3.1 功能模块划分 .......................................................................................................... 7 3.2 系统模块设计图 ...................................................................................................... 7 3.3 系统流程图 .............................................................................................................. 8 3.4 开发工具和开发框架介绍 ...................................................................................... 8

3.4.1 Altium Designer 6.9介绍 .............................................................................. 8 3.4.2 Keil for ARM介绍 ........................................................................................ 9 3.4.3 Serial_Digital_Scope V2介绍 ....................................................................... 9

4 四旋翼飞行器详细方案设计 ........................................................................................... 10

4.1 硬件模块的功能及设计 ........................................................................................ 10

4.1.1 最小系统板STM32F103模块 .................................................................. 10 4.1.2 低压差电源模块 ......................................................................................... 11 4.1.3 倾角传感器模块 ......................................................................................... 11 4.1.4 空心杯电机驱动模块 ................................................................................. 12 4.1.5 NRF24L01无线模块 ................................................................................... 12 4.2 驱动程序功能及设计 ............................................................................................ 13

4.2.1 最小系统板初始化 ..................................................................................... 13 4.2.2 MPU6050初始化 ........................................................................................ 13 4.2.3 NRF24L01初始化 ....................................................................................... 13 4.2.4 空心杯电机驱动初始化 ............................................................................. 14 5 四旋翼飞行器控制算法实现 ........................................................................................... 16

5.1角度及角速度数据处理算法 ................................................................................. 16

5.1.1 互补滤波器可行性分析 ............................................................................. 16 5.1.2 互补滤波器算法软件实现 ......................................................................... 17 5.2姿态控制算法 ......................................................................................................... 17

5.2.1 PID控制算法可行性分析 .......................................................................... 17 5.2.2 PID控制算法软件实现 .............................................................................. 18 5.2.3 多维度控制量输出融合算法 ..................................................................... 19

6 四旋翼飞行器综合调试 ................................................................................................... 20

6.1基本功能实现 ......................................................................................................... 20

6.1.1 姿态角度数据采集功能 ............................................................................. 20 6.1.2 四旋翼飞行器遥控功能 ............................................................................. 21 6.1.3 电机多维度矢量输出功能 ......................................................................... 21 6.2高级功能实现 ......................................................................................................... 22

6.2.1 姿态角度数据融合功能 ............................................................................. 22 6.2.2 四旋翼飞行器自平衡飞行功能 ................................................................. 23

结 束 语 ............................................................................................................................... 24 致 谢 ..................................................................................................................................... 25 参考文献 ............................................................................................................................... 26 附录A 部分代码 ................................................................................................................. 27

1 绪 论

1.1 本课题的研究意义及必要性

信息时代,微电子技术及惯性传感器件的不断进步,使自平衡算法实现成为可能。从地上跑的自平衡机器人到天上飞的无人飞行器都离不开这些微电子技术及惯性传感器。这些“飞禽走兽”在危险领域的作业的突出表现,备受各国专家学者的关注。从军用到民用,四旋翼飞行器由于其机械结构简单,制造成本低及简易的控制算法测试平台搭建,从而掀起了各个国家四旋翼飞行器爱好者的研究狂潮。国防军工事业离不开无人飞行器,四旋翼飞行器的优异性能使它在侦查、监视、跟踪等任务中独领风骚;现代农业,各式各样的四旋翼农药喷洒飞行器呼啸于各大农场的上空;四旋翼飞行器的研究,不仅具有学术研究意义,还有可观的经济现实意义,是学以致用的重要实践过程。

1.2 相关领域国内外研究现状及发展趋势

四旋翼飞行器广泛的应用范围和超高的实用价值促成了其在短时间成为热点,各国在四旋翼飞行器研究方面各有所长,以下是目前世界上比较出名的四旋翼飞行器研究成果:

(1) RC玩具公司Draganflyer飞行器

Draganflyer是玩具商业产品,系统集成了微控制器、无线遥控、三维度倾角传感器及角速度传感器,机身结构由轻质碳纤维及高密度尼龙搭建而成,Draganflyer X4-C是

RC公司目前在卖的产品,售价2995美元,该产品长和宽都是47cm,最高工作直径为71cm,高度为25cm,可携带不超过320g的重物,该产品主要应用于航拍,底部加 装高清摄像头,如图1.1所示:

(2) Stanford 的STARMAC测试平台

斯坦福大学在Drangonflyer平台上,重新设计控制系统,四轴飞行器上有:微型控制芯片,倾角测量单元,蓝牙通讯单元, GPS定位模块,超声测距模块。STARMAC能实现与上位机的通讯及相应的姿态预测、调整。该飞行器多次应用卡尔曼滤波器对采集信号进行滤波,采集的信号有倾角传感器的测量值、超声波测距模块的高度值及GPS模块的定位数据。应用卡尔曼滤波器能将飞行器真实的飞行姿态进行还原,从而提高系统的稳定性。Stanford的STAMAC平台如图1.2所示:

(3) 宾夕法尼亚大学大学的四轴飞行器 传遍全世界的TED视频,来自宾夕法尼亚大学的四轴飞行器依靠室内摄像头识别飞行器上标记球,完成各种飞行动作。经典的表演令人连连称赞,倒立摆模型及水杯支撑飞行,其稳定性都给人留下了深刻的印象。相关视频可以在优酷上的TED公开课视频中找到,此处给出飞行器图片,如图1.3所示:

(4) 开源的四旋翼飞行器

乐在开源,互联网上有一些设计者将飞行器项目共享在互联网上,吸引了大量的研究人员投入到开源的圈子里,在这样的资源共享世界里,四旋翼飞行器得到了极大的发展,由于论文篇幅有限,在此只列举几个较出名的开源四轴飞行器项目,它们分别有:KK四旋翼飞行器,德国的MK四轴飞行器,MWC四轴飞行器等。

四旋翼在未来,将变得更加的智能化,随着各种传感器的不断发展,四旋翼飞行器稳定性必将得到极大的提升,负重能力及续航能力都将大幅度提高。在未来,四旋翼飞行器将大量应用于国防、工业、农业等领域。智能时代,离不开这些智能化的产品。

1.3论文篇幅简介

本文共分为七部分,各个部分的内容简介如下: 第一部分:绪论

本部分主要阐述四旋翼飞行器课题的研究意义和必要性并追溯其发展渊源,同时还介绍四旋翼飞行器的应用现状和发展趋势。

第二部分:四旋翼飞行器系统分析

本部分对系统运动的基本原理进行分析并提出系统的功能要求,最后针对核心控制算法的可行性进行分析。

第三部分:四旋翼飞行器总体方案设计

对四旋翼的功能模块进行划分并给出系统模块设计图及系统工作流程图,最后简单介绍本系统开发调试的平台工具。

第四部分:四旋翼飞行器详细方案设计

本部分从硬件和软件两部分分别阐述系统的详细设计方案。硬件方面有最小系统板、电源模块、倾角传感器、电机驱动、无线模块设计方案;软件方面有对应硬件模块的初始化。

第五部分:四旋翼飞行器控制算法实现

本部分提出应用互补滤波器来处理角度、角速度数据的想法并分析互补滤波器在本模型中的可行性,最后附上互补滤波器的软件实现思路;运算出倾角后,提出应用PID来控制飞行器姿态的观点并分析可行性。最后给出多维度矢量输出的实现算法。

第六部分:四旋翼飞行器综合调试

该部分将展示四旋翼飞行器的基本功能实现和高级功能实现的效果。基本功能包括四旋翼飞行姿态角度信号结果,四旋翼飞行器无线遥控调试结果,电机多维度矢量输出调试结果;高级功能包括:姿态角度数据融合功能和飞行器自平衡功能实现结果。

第七部分:结束语

总结本次设计中的不足,提出相关的改进方案,总结本次毕业设计的收获,为后来人的研究提供些有用的建议。完成毕业设计后,对今后的工作、研究提出指导性展望。

最后对本次毕业设计给予笔者帮助的所有人员致谢。

2 四旋翼飞行器系统分析

2.1系统基本原理

作为无人飞行器研究的一重要分支,四旋翼飞行器因其简单的机械结构而备受瞩目,相对于庞大的无人机,四旋翼飞行器完美的机械结构更符合力学的各种定律。也不像直升飞机那样,需要设计一个消除反作用旋转扭矩的桨叶。如图2.1所示,四旋翼飞行器消除反作用旋转扭矩的功能与生俱来。

从图4可以看到,1、3号桨叶的逆时针旋转,反向扭矩的方向是顺时针方向,同理2、4号电机顺时针旋转,反力矩方向为逆时针,对角两组电机在旋转扭矩相等的情况下正好相互抵消。如此巧妙的机械结构在控制算法和节省能量方面大有裨益。系统无需提供额外的功率去抵消反作用旋转扭矩。

四旋翼飞行器可以实现多维度的运动姿态控制,最基本的姿态是自平衡悬停。悬停的稳定性是完成所有动作的基础。四旋翼的运动姿态可分为:悬停、上升、下降、俯仰、翻滚、偏航六个运动状态。

当四旋翼飞行器的四个电机输出的合升力大于其本身所受重力时,在无外力作用下,四旋翼能一直保持上升飞行,反之则下降。升力等于重力,四旋翼在悬停状态。这是Z轴方向的三个运动形态。

当四旋翼飞行器的X轴方向的两个电机输出升力存在偏差,飞行器处在俯仰飞行姿态,这是常用的沿X轴行进的思路,其倾斜角与水平X轴的夹角叫做俯仰角。

当四旋翼飞行器的Y轴方向的两个电机输出升力存在偏差,飞行器处在翻滚飞行姿态,这个常用的沿Y轴行进的思路,其倾斜角与水平Y轴的夹角叫做翻滚角。

当四旋翼飞行器沿Z轴旋转时,其转过的角度称之为偏航角,该姿态依靠对角两组电机的反作用旋转扭矩失衡来实现偏航运动。

以上几种运动原理如图2.2所示:

2.2系统功能要求

基于互联网的开源资料,提出本系统的功能要求:系统分为基础功能和高级功能,基础功能包括:四旋翼飞行器姿态角度数据采集功能;四旋翼飞行遥控功能;四旋翼电机对维度矢量输出功能;高级功能包括:应用互补滤波器进行姿态角度融合功能;四旋翼飞行器自平衡飞行功能。

2.3 系统可行性分析

微电子技术及倾角传感技术的发展及高性能电机为四旋翼飞行器的搭建提供了硬件保证。在此基础上,仅需要对系统模型的控制模型进行分析即可得知系统设计是否可行。找到相应的数学模型,才能分析系统的可行性,站在巨人的肩膀上,建立了如下数学模型,如图4所示的机体坐标系A(oxyz)及空间惯性坐标系OXYZ,针对数学模型提出以下假设:

(1) 四旋翼飞行器是一个刚体,质地均匀且完全对称 (2) 质心与机体坐标原点重合 (3) 四轴飞行器桨叶不发生形变

(4) 四旋翼在各个维度的运动速度与四轴电机的输出呈线性关系

在此假设条件下,根据牛顿第二定律,四旋翼模型可以看成是转子旋转而产生空气动力的模型,其动力方程式如下:

方程式内, 表示四旋翼飞行器惯性坐标原点到质心的长度;m指四旋翼的质量。建立三阶转动惯量矩阵及旋转角速度矩阵,经整理可得飞行器的动力模型方程:

桨叶可用以下状态方程描述,经转换后推出模型方程。

能找到四旋翼飞行器的数学模型说明该系统是可以用控制理论创造控制算法来控制飞行器的姿态,由此可以知道,该四旋翼飞行器的控制在理论上还有硬件设计上都是可行的。详细模型推导过程,见参考文献[2]。

3 四旋翼飞行器总体设计

3.1 功能模块划分

系统可以划分成硬件和软件两大部分。

硬件包含搭载微控制器的最小系统板单元,低压差电源稳压模块,倾角传感器模块,高速空心杯电机驱动模块和NRF20L01无线遥控模块。

软件部分包括最小系统的驱动,各个外围模块的驱动程序,互补滤波器的软件实现,角度矢量融合及四旋翼飞行器的自平衡输出算法。

笔者在本次设计中重点做控制算法这一块,故会用比较大的篇幅来论述控制算法的实

现及实际调试的一些总结、体会。

3.2 系统模块设计图

由3.1的功能模块划分,可以得出以下系统模块设计图,本次设计的四旋翼飞行器将按照图3.1所示的各个模块进行设计。

3.3 系统流程图

四旋翼飞行器的控制流程可以大致用图3.2所示的流程图来表示,在硬件平台的基础上面,系统要通过软件来完成相关的运算和控制量输出。流程图只是一个大致的方向,其中的简单方框,可能包含大量的处理代码,看似简约的控制流程框图,但却不简单。

3.4 开发工具和开发框架介绍

3.4.1 Altium Designer 6.9介绍

Altium Designer是Altium公司为电子产品开发设计者推出的一款集原理图设计、仿真、PCB布局绘制、拓扑逻辑自动布线、信号完整性分析等功能于一体的EDA软件。本设计采用的是本公司的试用版的Altium Designer 6.9进行双层PCB电路板的绘制。应用到的功能有原理图库的封装设计,原理图设计,PCB库的封装设计,PCB规则设置及PCB 布线布局等功能。本次设计所绘制的电路板性能比较稳定,暂时还没发现任何问题。AD公司的软件图标如图8所示。

3.4.2 Keil for ARM介绍

Keil for ARM是Keil Software与ARM合作开发应用于ARM编程的软件编译环境,其优点是拥有极高的目标代码生成效率,紧凑的汇编代码转化;C语音编程方面,结构性、可读性、可维护性更强,友好的编辑环境通俗易懂,在程序下载烧录方面,更是简单快捷。

3.4.3 Serial_Digital_Scope V2介绍

Serial_Digital_Scope V2中文称虚拟数字示波器,通过调用互联网上提供的数据处理函数,移植到系统程序中,再应用微控制器的串口,向上位机发送虚拟示波器的四路采集数据,在调试互补滤波器、角度矢量输出、控制量输出特性观测的调试过程中,虚拟示波器是不可缺少的工具,在整个系统开发的过程中,大部分的调试结果都通过它来显示。在此,向提供虚拟示波器函数库的前辈致敬。虚拟示波器的界面如图3.4所示。

4 四旋翼飞行器详细方案设计

本章节将从硬件及相应的驱动软件进行讲解四旋翼飞行器的详细方案设计。

4.1 硬件模块的功能及设计

硬件模块包括最小系统板、电源、倾角传感器、空心杯电机驱动及NRF24L01无线遥控模块。

4.1.1 最小系统板STM32F103模块

STM32F103是ST公司推出的一款基于ARM的32位增强型微处理芯片,该芯片是基于Cortex-M3 CPU内核开发的,芯片自带512K的FLASH,丰富的GPIO资源,其复用引脚功能有USB、CAN、IIC、SPI、11个定时器、3个ADC和13个通信接口。

本次设计用到了GPIO、IIC、SPI、定时器、ADC这几个功能。最小系统板的原理图如图4.1所示。

4.1.2 低压差电源模块

航模动力电池提供的电压是3.7V最左右,这就决定了3.3V的电源稳压模块必须采用低压差的稳压芯片,LP2985贴片封装稳压芯片是一个不错的选择,在 0.3V的范围内,该芯片都能输出稳定的3.3V直流电,其电路原理图如图4.2所示。

4.1.3 倾角传感器模块

倾角传感器采用集成的MPU6050模块,该模块测量的倾角数据通过IIC通信协议传给控制器。该芯片集成了6轴数据测量功能,分别为X、Y、Z轴角加速度和角速度。同时,通过配置功能寄存器,还可以得到芯片内部自行融合的三轴角度值,除此之外,MPU6050还集成了基于地球磁场感应的三轴数据功能,加上该传感质量轻,输出数据平滑,是航模制作中常用的倾角传感器,其原理图如图4.3所示。

4.1.4 空心杯电机驱动模块

820空心杯电机,5V电压转速达到5W转秒,电流0.15A。四旋翼飞行器电机是单方向旋转,故只需设计半桥驱动即可,本设计采用AO3402 N沟道MOS管设计半桥驱动,如图13所示,图中包含两路驱动,本设计需要四路驱动,IN4148的作用是续流二极管并加上电容改善功率因数及滤波。详细设计见原理图4.4。

4.1.5 NRF24L01无线模块

NRF24L01无线模块,通信频率在2.4GHZ频段,市面上卖该模块的商家很多,价格不贵,且专业化生产比自行设计的要稳定,故本设计采用的是模块化的NRF24L01无线模

块,采用SPI通信协议实现与控制芯片的信息交换。其原理图如图4.5所示。

4.2 驱动程序功能及设计

硬件设备需要软件驱动才能拥有“灵魂”,本部分将附上各个模块的初始化函数库,因为论文篇幅有限,STM32的函数库,读者可以在工程中找到,笔者只给出调用的函数名。

4.2.1 最小系统板初始化

最小系统板配置包括库函数引导,锁相环时钟配置,GPIO配置等,详细的参数配置详见程序注释。RCC配置如图4.6所示。

4.2.2 MPU6050初始化

MPU6050采用IIC通信协议通信,其配置流程如图4.7所示。 三部分的程序比较多,详细配置可查阅附录代码。

4.2.3 NRF24L01初始化

NRF24L01模块采用的是SPI通信协议,SPI和IIC都是基于串行数据总线通信的协议,配置起来有许多相似的地方。配置函数如图4.8所示。NRF24L01实现遥控按键值与微控制器的指令交换,所有的控制命令和控制参数都可以通过NRF24L01来传递。选择NRF是因为该模块通信距离远,通信速率快且频段在2.4GHz。在市面上已经相当成熟。价格也不高。

4.2.4 空心杯电机驱动初始化

空心杯电机的转速通过调节PWM的占空比来实现,设定的频率为10K,100%占空比输出值为2000,采用定时器2作为PWM时钟,四旋翼飞行器一共用到4路PWM分别驱动4个空心杯电机。选择PWM频率根据电机的特性来觉得,10K是一个理想的频率值,在此频率下,电机线性度良好,振动及噪声也相对要小很多。详细的PWM配置见图4.9。

四旋翼飞行器最终的PCB图如图4.10所示,实拍图如图4.11所示。

5 四旋翼飞行器控制算法实现

控制算法单独设成一章,足见控制算法的重要性,控制算法是一个机器的灵魂,本章将探讨四旋翼飞行器的控制算法。

5.1角度及角速度数据处理算法

MPU6050通过IIC传输回来的数据需要由字符型转换位short型,应用STM32F103微控制器的一个好处是从short型到float型无需强制装换,芯片内部自行转换。认识到采集回来的数据类型是字符型,在数据处理时能少走许多弯路,详细问题解决笔者将在调试篇讲到。

5.1.1 互补滤波器可行性分析

IIC采集回来的倾角数据是有噪声的,如图5.1所示。在应用之前需要进行数字滤波。数字滤波器有很多种,因为熟悉互补滤波器,笔者在本设计中采用了互补滤波器来进行数字滤波。互补滤波的原理框图如图5.2所示。

有互补滤波器的原理图,可以得出如(2)式所示的互补滤波器的数学模型,将互补滤波器拆分成两部分,加号左边构成高通滤波器,右边构成低通滤波器。可以从陀螺仪和加速度计的物理特性来理解。

陀螺仪反映的是角速度,高频运动它的反应更灵敏而低频情况下,陀螺仪几乎没有值输出,这样的特性确定陀螺仪可以用作高通滤波器。

同理,加速度计在低频运动时输出最灵敏而到高频时输出灵敏度降低,具有低通滤波器的特性,故可以将加速度计视为低通滤波器。

由此将两者特性结合起来应用,可以满足滤除四旋翼飞行器倾角信号噪声的缺点,还原飞行器真实的角度。由此论证互补滤波器在理论上是可行的。

5.1.2 互补滤波器算法软件实现

由互补滤波器原理框图,可以得出得到如图5.3所示的算法。在程序中已经做了详细的注释,此处不再重复。参数整定将在调试部分讲解。

5.2姿态控制算法

四旋翼飞行器要稳定悬空飞行,需要稳定的控制算法。笔者在本设计中采用经典的PID控制算法来完成飞行器的姿态控制。

5.2.1 PID控制算法可行性分析

PID控制算法是比例、积分、微分、的第一个字母的大写构成的算法,分为位置式PID和增量式PID。在自动控制理论课中证明过PID控制的诸多优点,笔者选择PID除了能从书本上的证明论证可行性之外,还从飞行器自身的特性来考虑。由于论文篇幅有限,此时

不再引申课本上论述PID可行性的例子而是通过笔者自身的理解来论证可行性。

首先,四旋翼飞行器通过互补滤波得到一个较真实的角度值,同时,还有在每个方向上都具有一个角速度值,从实验的波形可以发现,陀螺仪输出的角速度是超前于角加速度的;其次,联系PID中的D,微分也具有一个超前预测变化趋势的作用,由此笔者想到了应用陀螺仪的值乘以一个系数Kd得到PID中的D。

然后,角度值与机体的角度看似呈线性变化的,联系PID中的比例分量,两者用着共同的物理意义,由此可以将角度值乘以一个Kp得到比例分量。

最后是积分分量,是否加积分量需要看前面的PD控制是否能满足四旋翼飞行器的自平衡,如果PD调节达到上限,系统还有静态偏差时,则加入积分加以修正。

在数学建模中常用类比的思想,总结出模型共同的物理特性,用已知的数学模型来替代未知的模型,再结合实际调试,总有得到真理的时候。最后的结论是:PID可以满足四旋翼飞行器的平衡控制。

5.2.2 PID控制算法软件实现

如(3)式所示,PID控制器的微分方程,为了方便编程,需要将微分方程转化成如(4)式所示的位置式PID或(5)式所示的增量式PID。本系统应用的是PID模型是根据硬件特性类比PID算法得出的控制算法,在编程上有一定的共同之处。 目前程序中只用到了PID,其框图如图5.4所示。

通过上述互补滤波得出的角度值与外部给定的角度值作差,得到偏差角度乘上比例系数nP加上nD乘以陀螺仪测回的角速度值,得到空心杯电机的PWM值。其编程语句如图5.5所示。

5.2.3 多维度控制量输出融合算法

四旋翼飞行器坐标系如图5.6所示,如果将X-Y轴的控制量输出进行分解,每个电机将得到两个轴的PWM。分解成X-Y轴后在程序中分开处理XY轴,解析出控制量后,最进行输出量融合。这样的方式能使四旋翼飞行器在XY平面内360°的倾角都有电机输出响应。

多维度角度融合算法软件实现如图5.7所示。 CCR1_Val是PWM设定寄存器,通过改变其大小,可以改变电机的转速。每个电机在XY坐标系能分别得到Speed_Out_x_x的控制分量,相关的输出值符号,需要注意,调试部分将在第六章讲到。

在所有的角度控制子程序中,所有的变量都是float型在,其它的子程序用到的变量声明可在附录A部分代码中查阅,此处不再重复说明。

本章介绍了互补滤波器的原理及可行性分析并根据笔者的理解,分享了对PID的算法的应用心得,最后介绍了多维度控制量输出算法的原理及软件实现。其中讲到相似数学模型类比的思想,在PD控制器中,可以将P理解成提供拉力的弹簧器,而D可以理解成提

供阻力的阻尼器,在调节飞行器姿态时,P过大会振荡,过小则反应滞后,如何找到一个合适的参数,需要一个漫长的调试过程。

6 四旋翼飞行器综合调试

6.1基本功能实现

基本功能是飞行器飞行的基础,如果调试不好,飞行器后续的飞行动作将很难实现,本部分将介绍姿态角度数据采集、飞行器遥控调试、空心杯电机多维度矢量输出的调试心得。

6.1.1 姿态角度数据采集功能

MPU6050通过IIC协议读写数据,该芯片能提供9自由度的输出量,在飞行器中,只用到了XYZ三轴的6自由度输出量。读取MPU6050需要先对芯片控制寄存器写入控制字,设定工作模式后,才能从存储相应轴数据的寄存器读取测量值。初始化及读取数据的函数如图6.1所示。

数据读取子程序Short getdata(uint8_t Addr)在刚开始编程时定义函数数据类型为:uint16 getdata(uint8_t Addr) ,多走了不少弯路,按照常理来看,这样定义似乎没有问题,但是这样定义的数据类型采集回来的数据转换成浮点型后,通过虚拟示波器看,是一个跳跃的量,当数值达到上限,数据从正最大值跳变到负的最大值。查阅了相关资料,发现在STM32系列芯片中,数据转换不需加强制转换符且字符型转换成short型后,可以向更高一级的数据类型转换运算。经过一番艰苦的专研后,完美的数据被采集回来如图6.2所示。 图中,方形的波形是加速度计的波形,尖波波形的是陀螺仪的波形。

6.1.2 四旋翼飞行器遥控功能

NRF24L01与控制器应用SPI协议进行通讯,初始化程序及通讯的相关子程序比较多,故附在附录A部分代码中,本部分主要讲调试的过程中遇到的问题及解决方案。

在调试无线通信过程中,笔者遇到的问题是空心杯电机带桨叶中速运行后,无线模块完全接收不到外部给的任何信息,而电机不转或者不带桨叶的情况下,通信正常,速度也不受影响。

提出假设并实验验证,排查结果如下:

(1)最小系统板设计电磁兼容性差,高频信号影响了通信:NRF24L01通信频段为2.4GHZ,最小系统板上没有能达到该频段的器件,该假设不成立。

(2)PCB布的电机动力线太靠近NRF的IRQ端已致中断信号无法产生而不能正常通信:将靠近IRQ中断端的高频线全部用飞线替代,远离IRQ端,结果依然是电机运行时无法正常通信。

(3)四个电机同时带负载运行,导致电源电压拉低使NRF无法正常工作:做了额外的电源芯片并用第二块电池供电,通信完全正常。 由此得出的结论是:无法正常通信的原因是电源电源拉低后NRF无法正常工作,总结的经验是选购电池是应该选容量大的电池或者将NRF直接独立供电。选购NRF模块一定

要弄清楚具体的参数。

6.1.3 电机多维度矢量输出功能

飞行器在XY平面上出现偏差角度,低于设定角度的对应电机需要加大转速,提供更大的升力来弥补偏差,每个电机要叠加来自XYZ三轴的角度控制输出量和飞行基本转速。经过PID算出的电机PWM值要经过判断,才能叠加到相应的电机上,在将多维度控制量输出融合算法时已经讲过如何融合,调试部分重点讲如何让电机按照正确的方向输出转速。

将飞行器沿着X轴方向倾斜,低位置的电机会转起来,依次给四个电机值,一一对应好方向;Y轴也是一样的道理。电机输出方向必须正确,否则飞行器无法正常飞行,测试任何一个量,在不确定符号的情况下,需要将别的输出量屏蔽掉,找对方向了再加回原来的量,这样不易出错。

6.2高级功能实现

本部分将介绍高级功能的调试实现过程,难点是PD和PID参数的整定。飞行器能不能稳定飞行,靠的就是这些参数。

6.2.1 姿态角度数据融合功能

互补滤波器的一共有三个参数要整定,如图6.3互补滤波器子程序所示,数字归一本来的意思是回归数据的原本物理意义,在此笔者乘以0.1并没有回归到角度和角加速度的物理数值上来,这样做只是为了将数据缩小10倍放在数据溢出。

需要整定的参数前面2个相对简单,后面的这个0.086是比较麻烦的,调大了会过冲如图6.4所示,调小了会跟随缓慢,如图6.5所示,这样的滞后波形是无法应用到飞行器上的;只有调节合适了才会得到如图6.6所示的平滑曲线。

在调试互补滤波过程中,陀螺仪的数值符号直接影响到滤波的跟随,正常的波形是滤波波形从原波形穿过,而非滞后一定的角度,因为陀螺仪的角速度会超前于加速度的值,如果出现波形滞后的情况,一定要看看陀螺仪的数值符号是否正确,这个问题也困扰了笔者几天,前车之鉴,后人注意呀。

6.2.2 四旋翼飞行器自平衡飞行功能

自平衡调试的参数有P、I、D的系数,先调P值到飞行器能自主的回到平衡位置且出现了一定的振荡,在调节D参数,此处微分相当于一个阻尼器,能抑制因为比例参数调节过大产生的震荡,D值也不是越大越好,当飞行器振荡减小,找到一个合适的值时,如果存在静态误差,则适当的增加积分I的系数,积分在此处有消除静态误差的作用。

飞行器调试时,为了避免到处碰撞,需要采用悬线调试的方法,如图6.7所示。先调试X轴的参数,是飞行器能在该轴上趋于平衡,在调试Y轴参数。当XY轴都相对稳定时,解开绳子,在平地上综合调试。

整定了一轮参数后,四旋翼飞行器基本能平衡,但是扰动过大是飞行器还是会不受控

制,总结了一下原因,在今后再设计时注意这些问题:

(1)飞行器质量过大,电机控制的余量不够;

(2)互补滤波滞后严重导致飞行器空心杯电机响应滞后,在角度变化时,输出量没法及时修正导致偏差过大而无法再平衡;

(3)PID参数整定不合适;

(4)空心杯电机选型与负载不匹配;

如果时间允许,笔者会在以后将这些问题一一验证,在笔者的生命里有一个信条:生命不息,奋斗不止,总有一天飞行器会稳定的飞翔于蓝天之上!

结 束 语

一个月来,每天起早贪黑的研究四旋翼飞行器控制算法,一直到毕业设计答辩的这一天,我们还在整定参数,结果可能没有达到我们事前预期的效果,但是近段时间过得很充实,枯燥的调试过程,夹杂着各种喜怒哀乐,有过放弃换简单题目的念头,后面还是咬牙做到了现在。

这期间的收获有很多,最主要的是磨练了我的毅力。或许中间改个简单的题目可以安逸的答辩,安逸的领到毕业证,但是这样做的意义都不大。冒着不毕业的风险研究四旋翼的算法,调到今天四旋翼能跌跌撞撞的飞行,我没有任何遗憾。

本次设计让我学到了很多飞行器的知识,在今后工作之余,我会把四旋翼飞行器的控制策略进一步完善,我始终相信生命不息,奋斗不止!

关于本次设计的四旋翼飞行器,有需要改进的地方,比如飞行器的重量是48g而外国的四轴重量仅仅19g;飞行器的空心杯电机我们也没有设备去选择特性相似的;很多参数都是凭感觉设计的,量化这一块做的比较差,这是值得反思解决的问题。

致 谢

时光飞逝,短短四年,眨眼即过,真想让时间走慢些......这四年是忙碌而充实的,如果再给我一次上大学的机会,我还会选择进实验室,选择做智能车,选择做PLC机械手,选择做四旋翼飞行器,这些过程,这些经历会伴随我的一生,在此要感谢的人太多了......

从近的说,本次毕业设计得到了刘**教授的悉心指导,在我的大学生涯中,刘老师对我的影响最大,每一次迷惑,经他点拨都能让我找到问题的答案,他是不光是学术上的导师,还是生活上的引导者,在此由衷的对您说一声,谢谢您,刘老师!

再要感谢的就是郭**老师、王*老师、刘**老师,是他们给了我进入实验室学习的机会并在后来一直指导着我;

还要感谢孟**老师、张**老师、由**老师,是你们将我带入了PLC世界,这些技能,足以让我在工控领域立足了。

当然还有王**院长及所有给我上过课的老师们,是你们将我的自动化知识体系一点一点筑起来的,这些知识,足以让我在社会立足,找到作为自动化人的自信!谢谢!

参考文献

[1]刘杰.四轴飞行器研究与设计[D].南京:南京邮电大学.2013.4

[2] M.ACCO.Mini Unmanned Aerial Vehicles Dynamic Model[R].2008.1

[3]梁延德,程敏,何福本,李航.互补滤波器的四旋翼飞行器姿态解算[J].大连:大连理工 大学.2011:30-11

[4]聂博文,马宏绪,王剑,王建文.微小型四旋翼飞行器的研究现状与关键技术[J].长沙 国防科学技术大学.2007.12:14-6

[5]杨庆华,宋召青,时磊.四旋翼飞行器建模、控制与仿真平[J].烟台:海军航空工程学 学报.2009.9:5-24

[6]杨素行.模拟电子技术基础简明教程(第三部版)[M].北京:高等教育出版社.2006.5 [7]张树粹,孟佳娜,刘迎军.CC++程序设计[M].北京:清华大学出版社.2010.3

[8]刘胜,张红梅.最优估计理论[M].北京:科学出版社.2101

[9]秦永元,张洪钺,汪叔华.卡尔曼滤波与组合导航原理[M].西安:西北工业大学出版 社.2012.5

本文来源:https://www.bwwdw.com/article/z1jr.html

Top