基于STM32的四旋翼飞行器设计_第1页
基于STM32的四旋翼飞行器设计_第2页
基于STM32的四旋翼飞行器设计_第3页
基于STM32的四旋翼飞行器设计_第4页
基于STM32的四旋翼飞行器设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上第十一届中国研究生电子设计竞赛技术论文论文题目: 基于stm32的四旋翼飞行器设计Design of Quadrotor Aircraft Based on STM32参赛单位:南京信息工程大学队伍名称:we are 伐木累指导老师:行鸿雁参赛队员:张兰 戴学飞 钱坤完成时间:2016.6.18 摘 要四轴飞行器是一种结构紧凑、飞行方式独特的垂直起降式飞行器,与普通飞行器相比,具有结构简单、故障率低和单位体积能够产生更大升力等优点,所以在军事和民用多个领域都有广阔的应用前景,非常适合在狭小空间内执行任务。 本设计采用stm32f103zet6作为主控芯片,3轴加速度传

2、感器mpu6050作为惯性测量单元,通过2.4G无线模块和遥控板进行通信,最终使用PID控制算法以PWM方式控制电子调速器驱动电机实现了四轴飞行器的设计。关键词: 四轴飞行器,stm32;mpu6050,2.4G无线模块.PID.PWM AbstractQuadrocopter has broad application prospect in the area of military and civilian because of its advantages of simple structure. Small size, low failure rate, taking off and

3、landing ertically . etc. it is suitable for having task in narrow space.This design uses STM32f103zet6 as the master chip, and triaxial accelerometer mpu6050 inertial measurement unit, via 2.4G wireless module and remote control panel for communication. Finally using pid control algorithm with pwm d

4、rives the electronic speed controller to change moto to realize the design of quadrocopter.Key word : quadrocopter,stm32,mpu6050,2.4G wireless module ;pid; pwm目录专心-专注-专业第一章 作品难点与创新1.1作品难点对于一种芯片,最麻烦的就是底层的驱动了,很多驱动得自己编写,为了最大发挥处理器的性能,做了很多驱动优化,将不必要的延时降到最低,比如I2C总线驱动,官方的代码不符合自己的要求,通信效率低,我们花了几天的时间去优化这个驱动,使用

5、了模拟的IIC接口,最后在保证稳定性的前提下,速度提高了一倍。这个设计遇到的最大问题就是怎样保持飞行器的平衡。开始的时候,我们以为很简单,不就是简单的闭环控制么,随着深入研究和实验,发现有些东西已经不能用我现有的知识来解答了,比如姿态的解算。我想姿态解算也是这个项目的难点,怎样时时刻刻都准确的跟踪到飞行器的姿态。很多人都知道使用加速度和陀螺仪检测物体的姿态,很多手机就有这些传感器,但是这两传感器在飞行器上貌似水土不服,陀螺仪随时间推移漂移了,加速度计由于电机的高速运转震动基本上处于半瞎状态。所以我们使用了串级pid算法,并且优化了串级pid算法,使得在只用一个mpu6050的情况下,可以实现稳

6、定的飞行,并且在飞行20层楼层的高度时可以飞出定高的效果。调试过程中,采用无线通信芯片nrf24l01和stm32单片机作为控制端,同时用匿名四轴上位机显示状态。1.2创新点设计的创新点有两个,一是在于遥控器的控制方面,传统的飞行器控制飞行在于通过遥杆控制,通过对遥杆的物理操作实现飞机的左右前后飞行,我们则采用感应式姿态控制,通过遥控器上板载的mpu6050,去跟踪手的姿势,然后将手的物理动作对应到相应的角度,发送给飞控部分,飞控部分将接受到的信号作为期望的角度,实现飞行器的左右前后飞行。本次设计的第二个创新点在于优化pid算法,单纯的pid算法是不足以控制动力如此大的大四轴,再加上只有一个六

7、轴传感器mpu6050是不足以控制好大四轴的,通常市面上的飞行器姿态测量这方面会用到多个传感器,以实现飞行器姿态的跟踪。但是我们只用了一个六轴传感器mpu6050就可以做到非常稳定的飞行,主要原因在于对算法的优化。第二章 方案论证与设计本次设计选择的材料如下:主控芯片:STM32F103ZET6无线通信:NRF24L01传感器:MPU6050六轴传感器遥控主芯片:STM32F407ZGT6机架的型号: F450,重量282克。电机轴距450mm,螺旋桨采用1045型。电机则采用银燕MT-2216,810KV无刷电机,最高转速2极马达转/分钟,重量:37g 。电调为好盈20A电子调速器,持续电流

8、30A,短时电流40A。电池则采用了2200mah锂电池。2.1飞控部分硬件框图图2-1从图中可以看出,STM32是电路的核心,它受5v电源控制,它负责和mpu6050,nrf24l01进行通信,处理数据,输出pwm信号给电子调速器,以得到控制电机的转速,实现飞行姿态的调整。2.2遥控器部分硬件框图图2-2 遥控部分STM32F407ZGT6作为主要芯片,nrf24l01f负责和飞控部分无线通信,遥杆主要控制油门大小,mpu6050负责跟踪手的姿势。2.3各部分元器件介绍本次设计主要的工作在于程序的编写,所以就需要对所需要的主芯片和各个模块有一个详细的了解,接下来给大家介绍下我们所用的芯片口和

9、模块介绍。2.3.1 stm32介绍内核:ARM 32位的,最高72MHz工作频率,在的0等待周期访问时可达1.25DMips/MHZ(DhrystONe2.1)单周期乘法和硬件除法。存储器:从32K到512K的闪存(STM32F103XXXX中的第二个X表示FLASH容量,其中:“4”=16K,“6”=32K,“8”=64K,B=128K,C=256K,D=384K,E=512K),最大64K字节的SRAM。电源管理:2.0-3.6V供电和I/O,上电/断电复位(POR/PDR)、可编程电压监测器(PVD),4-16MHZ晶振振荡器,内嵌经出厂调教的8MHz的RC振荡器,内嵌带校准的40KH

10、z的RC振荡器,产生CPU时钟的PLL,带校准的32KHz的RC振荡器低功耗:睡眠、停机和待机模式,Vbat为RTC和后备寄存器供电。模数转换器:2个12位模数转换器,1us转换时间(多达16个输入通道),转换范围:0至3.6V,双采样和保持功能,温度传感器。DMA:2个DMA控制器,共12个DMA通道:DMA1有7个通道,DMA2有5个通道。支持的外设:、ADC、SPI、USB、IIC和UART,多达112个快速I/O端口(仅Z系列有超过100个引脚),26/37/51/80/112个I/O口,所有I/O口一块映像到16个外部中断;几乎所有的端口均可容忍5V信号。调试模式:串行单线调试(SW

11、D)和JTAG接口,多达8个定时器,3个16位,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入,1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器,2个(独立的和窗口型的),系统:24位自减型计数器。多达9个通信接口:2个I2C接口(支持SMBus/PMBus),3个USART接口(支持ISO7816接口,LIN,IrDA接口和控制),2个SPI接口(18M位/秒),CAN接口(2.0B主动),USB 2.0全速接口。计算单元:CRC计算单元,96位的新批唯一代码。封装:ECOPACK封装。图2-32.3 .2电子调速器电调全称电子调速器,英

12、文Electronic Speed Control,简称ESC。针对电机不同,可分为有刷电调和无刷电调。它根据控制信号调节电动机的转速。本文采用好盈电调20A。对于它们的连接,一般情况下是这样的:1、电调的输入线与电池连接;2、电调的输出线(有刷两根、无刷三根)与电机连接;3、电调的信号线与接收机连接;另外,电调一般有电源输出功能,即在信号线的正负极之间,有5V左右的电压输出,通过信号线为接收机供电,接收机再为舵机等控制设备供电。电调的输出为三四个舵机供电是没问题的。因此,电动的飞机,一般都不需要单独为接收机供电,除非舵机很多或对接收机电源有很高的要求。2.3.3 mpu6050六轴传感器MP

13、U6050是InvenSense公司推出的全球首款整合性6轴运动处理组件,内带3轴陀螺仪和3轴加速度传感器,并且含有一个第二IIC接口,可用于连接外部磁力传感器,利用自带数字运动处理器(DMP: Digital Motion Processor)硬件加速引擎,通过主IIC接口,可以向应用端输出完整的9轴姿态融合演算数据。有了DMP,我们可以使用InvenSense公司提供的运动处理资料库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度 。DMP 是 InvenSense 公司的 MPU 器件独特的硬件功能,它能够直接从传感器读出计算好的四元数的数据,获取设备

14、的姿态。DMP功能保存在主处理机的易失性内存中,若需要使用DMP功能,则每次芯片上电后都需要初始化。DMP程序库项目中提供的示例应用程序中给出了更新映像和初始化 DMP 功能的一系列步骤。加载并启用DMP功能的步骤包括:(1)通过函数dmp_load_motion_driver_firmware ()把 DMP 载入MPU内存。(2)通过dmp_set_orientation ()函数更新定位矩(3)当DMP检测到运动或撞击时会触发DMP回调功能。(4)通过函数dmp_enable_feature()启用DMP功能。四旋翼飞行器运用姿态解算计算出空间三轴欧拉角。MPU6050与MCU连接方式如

15、图2-4所示,陀螺仪采样三轴角速度值,加速度传感器采样三轴加速度值,而磁力传感器采样得到三轴地磁场值,将陀螺仪、加速度传感器、磁力传感器采样后的数据进行标定、滤波、校正后得到三轴欧拉角度,其中陀螺仪和加速度传感器选用MPU6050芯片,采用IIC总线与主控板通信。图2-42.3.4 无线通信NRF24L01 NRF24L01是NORDIC公司生产的一款无线通信通信芯片,采用FSK 调制,集成NORDIC自家的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度最高可达到2Mbps。 NRF24L01采用SPI通信,可以很方便的连接到MCU上面。2.4G

16、全球开放的ISM频段,免许可证使用。最高工作速率2Mbps,高校的GFSK调制,抗干扰能力强。 126个可选的频道,满足多点通信和调频通信的需要。内置CRC检错和点对多点的通信地址控制。可设置自动应答,确保数据可靠传输。NRF24L01模块介绍 图2-5CE:模式控制线。在 CSN为低的情况下,CE 协同CONFIG 寄存器共同决定NRF24L01 的状态(参照NRF24L01 的状态机) CSN:SPI片选线SCK:SPI时钟线MOSI:SPI数据线(主机输出,从机输入)MISO:SPI数据线(主机输入,从机输出) IRQ:中断信号线。中断时变为低电平,在以下三种情况变低:Tx FIFO 发

17、完并且收到ACK(使能ACK情况下)、Rx FIFO 收到数据、达到最大重发次数。第三章 原理分析与硬件电路图3.1 飞行器空气动力学分析四旋翼对称分布在机体的前后、左右四个方向,四个旋翼处于同一高度平面,且四个旋翼的结构和半径都相同,四个电机对称的安装在飞行器的支架端,支架中间空间安放飞行控制计算机和外部设备。结构形式如图 3.1所示。图3-1四旋翼飞行器通过调节四个电机转速来改变旋翼转速,实现升力的变化,从而控制飞行器的姿态和位置。四旋翼飞行器是一种六自由度的垂直升降机,但只有四个输入力,同时却有六个状态输出,所以它又是一种欠驱动系统。四旋翼飞行器的电机 1和电机 3逆时针旋转的同时,电机

18、 2和电机 4顺时针旋转,因此当飞行器平衡飞行时,陀螺效应和空气动力扭矩效应均被抵消。图 3-2在图3-2中,电机 1和电机 3作逆时针旋转,电机 2和电机 4作顺时针旋转,规定沿 x轴正方向运动称为向前运动,箭头在旋翼的运动平面上方表示此电机转速提高,在下方表示此电机转速下降。垂直运动:同时增加四个电机的输出功率,旋翼转速增加使得总的拉力增大,当总拉力足以克服整机的重量时,四旋翼飞行器便离地垂直上升;反之,同时减小四个电机的输出功率,四旋翼飞行器则垂直下降。俯仰运动:在图(b)中,电机 1的转速上升,电机 3 的转速下降(改变量大小应相等),电机 2、电机 4 的转速保持不变。由于旋翼1 的

19、升力上升,旋翼 3 的升力下降,产生的不平衡力矩使机身绕 y 轴旋转,同理,当电机 1 的转速下降,电机 3的转速上升,机身便绕y轴向另一个方向旋转,实现飞行器的俯仰运动。(3)滚转运动:与图 b 的原理相同,在图 c 中,改变电机 2和电机 4的转速,保持电机1和电机 3的转速不变,则可使机身绕 x 轴旋转(正向和反向),实现飞行器的滚转运动。(4)偏航运动:旋翼转动过程中由于空气阻力作用会形成与转动方向相反的反扭矩,为了克服反扭矩影响,可使四个旋翼中的两个正转,两个反转,且对角线上的各个旋翼转动方向相同。当电机 2 和电机 4 的转速下降时,机身便在富余反扭矩的作用下绕 z轴转动,实现飞行

20、器的偏航运动。(5)前后运动:要想实现飞行器在水平面内前后、左右的运动,必须在水平面内对飞行器施加一定的力。在图 e中,增加电机 3转速,使拉力增大,相应减小电机 1转速,使拉力减小,同时保持其它两个电机转速不变,反扭矩仍然要保持平衡。飞行器首先发生一定程度的倾斜,从而使旋翼拉力产生水平分量,因此可以实现飞行器的前飞运动。(6)倾向运动:在图 f 中,由于结构对称,所以倾向飞行的工作原理与前后运动完全一样。3.2飞控部分硬件电路图设计图 3-33.3 遥控部分硬件电路图设计图 3-4第四章 软件设计与流程 4.1 pid算法分析PID控制器(比例-积分-微分控制器)是一个在工业控制应用中常见的

21、反馈回路部件,由比例单元P、积分单元I和微分单元D组成。PID控制的基础是比例控制;积分控制可消除稳态误差,但可能增加超调;微分控制可加快大惯性系统响应速度以及减弱超调趋势。PID(比例(proportion)、积分(integral)、导数(derivative)控制器作为最早实用化的控制器已有近百年历史,现在仍然是应用最广泛的工业控制器。PID控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。PID控制器的数学模型:输入量为r(t);输出量为y(t);偏差量为e(t)=r(t)-y(t);PID算法的定义: (1)其流程框图如图4-1。图 4-1 PID算法

22、公式适用于连续系统,因此单片机控制系统不能够直接使用,因此在此基础上使用离散的控制模型,也叫0阶保持器的离散系统,将上式离散化,需要使用后向差分法。首先将上式的积分传递函数转化为连续的S域模型: (2)使用后向差分法可以得到s域到z域的映射关系: (3)于是可以得到: (4)其中:因此得到离散的PID表达式: (5)在编程时,可写成: (6)P-改变P可提高响应速度,减小静态误差,但太大会增大超调量和稳定 时间。 I-与P的作用基本相似,但要使静态误差为0,必须使用积分。 D-与P,I的作用相反,主要是为了减小超调,减小稳定时间。e(n)-本次误差。e(n)+e(n-1)+.+e(0)-所有误

23、差之和。e(n)-e(n-1)-控制器输出与输入误差信号的微分(即误差的变化率),具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。4.2串级pid系数的整定内环P:从小到大,拉动四轴越来越困难,越来越感觉到四轴在抵抗你的拉动;到比较大的数值时,四轴自己会高频震动,肉眼可见,此时拉扯它,它会快速的振荡几下,过几秒钟后稳定;继续增大,不用加人为干扰,自己发散翻机。特别注意:只有内环P的时候,

24、四轴会缓慢的往一个方向下掉,这属于正常现象。这就是系统角速度静差。内环I:PID原理可以看出,积分只是用来消除静差,因此积分项系数个人觉得没必要弄的很大,因为这样做会降低系统稳定性。从小到大,四轴会定在一个位置不动,不再往下掉;继续增加I的值,四轴会不稳定,拉扯一下会自己发散。特别注意:增加I的值,四轴的定角度能力很强,拉动他比较困难,似乎像是在钉钉子一样,但是一旦有强干扰,它就会发散。这是由于积分项太大,拉动一下积分速度快,给的补偿非常大,因此很难拉动,给人一种很稳定的错觉。内环D:这里的微分项D为标准的PID原理下的微分项,即本次误差上次误差。在角速度环中的微分就是角加速度,原本四轴的震动

25、就比较强烈,引起陀螺的值变化较大,此时做微分就更容易引入噪声。因此一般在这里可以适当做一些滑动滤波或者IIR滤波。从小到大,飞机的性能没有多大改变,只是回中的时候更加平稳;继续增加D的值,可以肉眼看到四轴在平衡位置高频震动(或者听到电机发出滋滋的声音)。D项属于辅助性项,因此如果机架的震动较大,D项可以忽略不加。外环P:当内环PID全部整定完成后,飞机已经可以稳定在某一位置而不动了。此时内环P,从小到大,可以明显看到飞机从倾斜位置慢慢回中,用手拉扯它然后放手,它会慢速回中,达到平衡位置;继续增大P的值,用遥控器给不同的角度给定,可以看到飞机跟踪的速度和响应越来越快;继续增加P的值,飞机变得十分

26、敏感,机动性能越来越强,有发散的趋势。4.3串级pid系统框图图 4-24.3 软件设计流程图4.3.1 飞控部分程序设计图 4-34.3.2遥控部分程序设计图 4-4第五章 系统测试与误差分析 5.1 PID调试一般原则1)在输出不振荡时,增大比例增益P2)在输出不振荡时(能消除静态误差就行),减小积分时间常数Ti3)在输出不振荡时,增大微分时间常数Td5.2matlab仿真模拟测试pid参数图5-1纯P调节(Kp大,稳态误差小,响应快,但超调大) PI调节(TI小,响应速度快,超调大,系统震荡加剧)PI调节(在同样积分常数Ti下,减小比例增益Kp可减小超调,增加系统的稳定性)PD调节(引入

27、微分项,提高了响应速度,增加了系统的稳定性但不能消除系统的余差)PD调节(微分时间越大,微分作用越强,响应速度越快,系统越稳定)PID调节(PD基础上I作用的引入消除了余差,达到了理想的多项性能指标要求:超调、上升时间、调节时间、余差等)5.3 心得在整定PID参数时,PID三个参数的大小都不是绝对的,而是相对的。也就是说,如果发现一个参数比较合适,就把这个参数固定死,不管别的参数怎么变化,永远不动前面固定的参数。这是要不得的。串级调节系统,在整定参数时,一般把主、副调隔离开来,先整定一个回路,再全面考虑。一般而言,先整定内回路。把PID参数隔离开来,先去掉积分、微分作用,让系统变为纯比例调节

28、方式,再考虑积分,最后考虑微。第六章 总结首先,为了让四轴平稳的悬停或飞行在半空中,四个电机必须提供准确的力矩-假设力矩与电机PWM输出呈线性关系,也就是必须提供准确的4路PWM-4路PWM由遥控器输入(期望角度)、PID算法及其参数和姿态解算输出(当前角度)组成,假设遥控器输入不变(类似脱控)、PID算法及其参数也较为准确(PID参数无需十分精确,但只要在某个合理的范围内,控制品质差不了多少),也就是姿态解算的输出必须是十分准确的,可以真实反应飞行器的实际角度-姿态解算的结果由加速度计和陀螺仪给出,根据前述惯性导航的描述,加速度计补偿陀螺仪,因此要得到精确的姿态解算结果,务必要求加速度输出精

29、确的重力加速度g-这里仅讨论悬停飞行,因此忽略掉额外的线性加速度(事实证明,在四轴强机动飞行过程中,线性加速度必须要考虑并消除),假设加速度计输出重力加速度g,这个重力加速度g必须十分“精确”。总结一下:精准力矩-精准PWM-精准姿态-加速度计输出“精确”重力加速度g。这里的“精确”打了引号,意思不是说加速度的性能十分好,要输出精确的当地加速度g,而是说它能够准确反应机架的角度。为了达到悬停、平稳的飞行效果,控制算法输出的PWM会让加速度计输出的重力加速度g在XOY平面内的分量就可能少,也就是说:PID控制算法控制的不是机架水平,而是加速度计水平,PID不知道机架是什么东西,它只认加速度计,它的使命就是让加速度计水平。我现在假设加速度计与机架存在某个角度,比如右倾30,四轴主视图如图6-1所示。图6-1加速度计(红线)与四轴机架的水平面(虚线)呈30。起飞后,PID控制算法会尝试将加速度计调整至水平位置,因此四轴就会往图中左边飘,倾斜角度也为30。这就是为什么飞机无法垂直起飞,或者飞行过程中往一个方向飘的原因:加速度计和机架没有水平。因此在加速度计的机械安装时,尽量保证加速度计与机架水平。如果有些朋友已经将加速度计固定在飞控板

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论