基于STM32F4的四轴航拍飞行器

上传人:平*** 文档编号:11340870 上传时间:2017-10-13 格式:DOCX 页数:17 大小:1.66MB
返回 下载 相关 举报
基于STM32F4的四轴航拍飞行器_第1页
第1页 / 共17页
基于STM32F4的四轴航拍飞行器_第2页
第2页 / 共17页
基于STM32F4的四轴航拍飞行器_第3页
第3页 / 共17页
基于STM32F4的四轴航拍飞行器_第4页
第4页 / 共17页
基于STM32F4的四轴航拍飞行器_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于STM32F4的四轴航拍飞行器》由会员分享,可在线阅读,更多相关《基于STM32F4的四轴航拍飞行器(17页珍藏版)》请在金锄头文库上搜索。

1、基于 STM32F4 的四轴航拍飞行器摘要本设计是基于 STM32F4 的四轴航拍平台。以 STM32F407 为控制核心,四轴飞行器为载体,辅以云台的航拍系统。硬件上由飞控电路,电源管理,通信模块,动力系统,机架,云台伺服系统组成。算法上采用简洁稳定的四元数加互补滤波作为姿态解算算法,PID 作为控制器,实现飞行,云台增稳等功能。具有灵活轻盈,延展性,适应性强好等特点。1.引言四轴飞行器是一种利用四个旋翼作为飞行引擎来进行空中飞行的飞行器。进入 20 世纪以来,电子技术飞速发展四轴飞行器开始走向小型化,并融入了人工智能,使其发展趋于无人机,智能机器人。四轴飞行器不但实现了直升机的垂直升降的飞

2、行性能,同时也在一定程度上降低了飞行器机械结构的设计难度。四轴飞行器的平衡控制系统由各类惯性传感器组成。在制作过程中,对整体机身的中心、对称性以及电机性能要求较低,这也正是制作四轴飞行器的优势所在,而且相较于固定翼飞机,四轴也有着可垂直起降,机动性好,易维护等优点。在实际应用方面,四轴飞行器可以在复杂、危险的环境下可以完成特定的飞行任务,也可以用于监控交通,环境等。比如,在四轴飞行器上安装甲烷等有害气体的检测装置,则可以在高空定点地检测有害气体;进入辐射区检查核设施;做军事侦察;甚至搬运材料,搭建房屋等等。本设计利用四轴搭载云台实现航拍任务,当然经过改装也可以执行其他任务。本设计主要研究了四轴

3、飞行器的姿态结算和飞行控制,并设计制作了一架四轴飞行器,对关键传感器做了标定,并利用用 matlab 分析数据,设计算法,还进行了单通道平衡试验调试,进行试飞实验取得了一定的效果。2.系统方案本设计采用 STM32F4 作为核心处理器,该处理器内核架构 ARM Cortex-M4,具有高性能、低成本、低功耗等特点。主控板包括传感器 MPU6050 电路模块、无线蓝牙模块、电机启动模块,电源管理模块等;遥控使用商品遥控及接收机。控制芯片捕获接收机的 PPM 命令信号,传感器与控制芯片之间采用 IIC 总线连接,MCU 与电调之间用 PWM 传递控制信号。软件算法才用基于四元数的互补滤波解算姿态叫

4、,控制算法才用经典 PID 控制器控制云台舵机和四轴电机。如图 2-1 为本设计总体框图。3.系统硬件设计针对前面提出的整体设计方案,本设计采取模块化策略,将各个功能部分开来设计,最后组合起来。3.1 电源管理模块四轴飞行器要求整体设计质量较轻,体积较小,因此在电池的选取方面,采用体积小、质量轻、容量大的锂电池供电最合适。系统的核心芯片为 STM32F103,常用工作电压为3.3V,同时惯性测量传感器,蓝牙通信模块的常规供电电压也为 3.3V,锂电池的电压为11.4V,要使系统正常工作,需要将 11.4V 的锂电池电压稳压到 3.3V。常用的 78 系列稳压芯片已不再适用,必须选择性能更好的稳

5、压芯片。经综合考虑,本电路采用 LM1117-3.3 和 LM2940-5 电源部分的核心芯片。电池电源经过LM2940-5 降到 5V 后在输入 LM1117-3.3 稳压为 3.3V。由于电机部分电流较大,故在飞控电路部分加入了过流保护,使用 500mA 的保险丝。电路图如下。表 3-1 四轴飞行器硬件清单4.系统软件设计软件设计上由控制核心 STM32F4 读取传感器信息,解算姿态角,以姿态角为被控制量融合遥控信息后,输出到四个电机及两个舵机以完成四轴飞行控制和云台的稳定补偿。下图是软件流程:4.1.四元素计算姿态角的实现根据前面给出的姿态解算方程与四元数,即可得到姿态计算系统的计算原理

6、如下图(4-1)本设计基于互补滤波的思想上完成的四元素算法,其核心思路为利用加速度测得的重力向量与估计姿态得到重力向量的误差来矫正陀螺仪积分误差,然后利用矫正后的陀螺仪积分得到姿态角。首先不妨设处理后的加速度数据为:ax,ay,az,单位 m/s2。加速度计的向量为 (ax,ay,az)陀螺仪数据为:gx,gy,gz,单位 rad/s。陀螺仪向量 (gx,gy,gz),由式(4-5)可得由载体到导航坐标系的四元数形式转换矩阵为:根据余弦矩阵和欧拉角的定义,地理坐标系的重力向量,转到机体坐标系,是 中的第三列的三个元素,即 。所以加速的向量与估计重力向量叉积:然后利用向量的叉积, 可视为误差向量

7、,这个叉积向量仍旧是位于机体坐标系上的,而陀螺积分误差也是在机体坐标系,而且叉积的大小与陀螺积分误差成正比,正好拿来纠正陀螺。由于陀螺是对机体直接积分,所以对陀螺的纠正量会直接体现在对机体坐标系的纠正。用上面得到的结果校正陀螺仪:此处 k 为一个常量系数。再利用二阶毕卡法解四元数微分方程(4-6),更新四元数为下一次计算做准备。毕卡二阶算法为: 最后将四元数转变为欧拉角:数据流程图如下: 通过以上算法我成功得出了飞行器的姿态角,在开启电机的情况下,角度误差在+/-2以内,满足了控制要求。姿态计算效果如下图所示,其中红色和蓝色是直接由加速度计算出的俯仰角和横滚角,青色和黄色为姿态结算后的俯仰角和

8、横滚角。由图中数据可看出,解算的姿态角不仅能即时的反应角度变化切曲线平滑,说明姿态解算算法有效。4.2.控制设计由于四轴飞行器独特的机械结构,即结构上的对称设计,使得四轴在俯仰角的控制欲横滚角的控制上有这近乎相同的控制特性,且两者相对独立。四轴飞行器的俯仰,横滚,偏航,升降可以通过四个输入量来控制。通过设定一个期望角度,调整电机转速,使得测得的姿态角稳定在期望角。控制律的设计主要采用是闭环控制。以姿态角做为被控制量,采用经典的 PID 控制算法。四轴飞行器系统是一个时变且非线性的系统,采用传统 PID 算法的单一的反馈控制会使系统存在不同程度的超调和振荡现象,无法得到理想的控制效果。本文将前馈

9、控制引入到了四轴飞行器系统的控制中,有效地改善了系统的实时性,提高了系统的反应速度;并且根据四轴飞行器系统的特点,对数字 PID 算法进行了改进,引入了微分先行环节,改善了系统的动态特性;使得控制器能够更好地适应四轴飞行器系统的实际情况。在姿态角的控制中,本设计将控制器捕获到的遥控器信号转换为一个角度,作为期望角,与解算出来的测量角作差,得到偏差 error。将 error 乘以一个比例系数 kp。在只有 kp作用下,系统会有静差所以考虑利用积分 ki 控制消除稳态误差。但积分控制会降低系统的动态性能,甚至造成闭环系统不稳定,因此要对积分进行限幅,防止积分过大。对于微分,如果采用传统的 D 方

10、法,在人为操纵四轴时会产生输入的设定值变化频繁且幅度较大,从而造成系统的振荡。对人为控制十分不利,为了解决设定值的频繁变化给系统带来的不良影响,本文在姿态角控制上引入了微分先行 PID 算法,其特点是只对输出量进行微分,即只对陀螺仪角速度测量值进行微分,而不对姿态角的设定值进行微分。这样,在设定值发生变化时,输出量并不会改变,而被控量的变化相对是比较缓和的,这就很好地避免了设定值的频繁变化给系统造成的振荡,明显地改善了系统的动态性能。控制周期定为 4ms,姿态控制系统示意图如下:图 5-1 姿态控制系统示意图通过前面一章的介绍我们已经的达到了俯仰,横滚,航向三个控制量,然后将它们分别输入三个独

11、立的如上图所示的 PID 控制器,我们可以得到三个 PID 输出:pid_roll,pid_pitch,pid_yaw 将这三个输出量做简单的线性运算输出给电机。部分代码如下:#define PIDMIX(X,Y,Z) Motor_Thr + pid_pitch* Y+ pid_roll*X + pid_yaw*ZMOTOR1=MOTORLimit(PIDMIX(+1,+1,-1); /REAR_R 后右电机MOTOR2=MOTORLimit(PIDMIX(-1,-1,-1); /FRONT_R 前右电机MOTOR3=MOTORLimit(PIDMIX(-1,+1,+1); /REAR_L 后

12、左电机MOTOR4=MOTORLimit(PIDMIX(+1,-1,+1); /FRONT_L 前左电机 4.3. PID 参数调节PID 参数的整定是 PID 控制的关键环节,直接影响到控制的效果。故一个 PID 设计的好不好往往要看其参数能否调节好,本设计的 PID 参数调节采用凑试法。凑试法是通过实际的闭环系统,通过观察系统的响应曲线,在本设计中通过观察被调量,PID 输出,设定值三条曲线,判断出 kp,ki,kd 对系统响应的影响,反复尝试,最终达到满意响应,从而达到确定控制参数的 kp,ki,kd 的目的。在参数调节过程总遵循以下原则17:(1)在输出不振荡时,增大比例增益 P。(2

13、)在输出不振荡时,减小积分时间常数 Ti。(3)在输出不振荡时,增大微分时间常数 Td。(4)一般步骤:a.确定比例增益 P确定比例增益 P 时,首先去掉 PID 的积分项和微分项,一般是令 Ti=0、Td=0(具体见PID 的参数设定说明),使 PID 为纯比例调节。输入设定为系统允许的最大值的 60%70%,由 0 逐渐加大比例增益 P,直至系统出现振荡;再反过来,从此时的比例增益 P 逐渐减小,直至系统振荡消失,记录此时的比例增益 P,设定 PID 的比例增益 P 为当前值的 60%70%。比例增益 P 调试完成。b.确定积分时间常数 Ti比例增益 P 确定后,设定一个较大的积分时间常数

14、 Ti 的初值,然后逐渐减小 Ti,直至系统出现振荡,之后在反过来,逐渐加大 Ti,直至系统振荡消失。记录此时的 Ti,设定 PID的积分时间常数 Ti 为当前值的 150%180%。积分时间常数 Ti 调试完成。c.确定积分时间常数 Td积分时间常数 Td 一般不用设定,为 0 即可。若要设定,与确定 P 和 Ti 的方法相同,取不振荡时的 30%。d.系统空载、带载联调,再对 PID 参数进行微调,直至满足要求。(5)最终调试好的标准应该是,PID 输出曲线在有一个阶跃响应来是,响应一大一小两个波,小波是大波的四分之一。四轴飞行器的 PID 整定,我们首先四轴固定在单轴平衡平台上,让飞行器

15、完成单轴平衡,主要观察姿态角的(1)稳定性,能否平衡在期望角度;( 2)响应性,当操纵命令改变时,四轴能否即时的响应期望的变化;(3)操纵性,由操纵员感受四轴的姿态是否已与操纵,会不会产生响应过冲。在参数调整时,先调 P,将 I,D 给 0,先给一个小值 P1,如果飞行器不能稳定在一个角度,则 P1 给小了,下一次给一个较大值 P2,如果飞行器产生震荡则证明 P2 给大了,那么合适的 P 在 P1-P2 之间,反复试验几次可找到 P 震荡的临界点 P0,然后保持 P0 不变按照调P 的方法来调 D,D 是用来消除误差的,当抖动差不多被消除时,此时我们有较合适的P0,D0,在这两个值附近再试几组

16、参数,观察效果得到最优参数。调好 P,D 后此时四轴的稳定状态与期望状态间也学会有静差,接下来加入 I,参数有小到大,当静差差不多被消除时,我们再对 P,I,D 三组参数在小范围内联调。最后确定恰当的积分限幅值,完成整个PID 参数的整定。5.系统创新 采用 STM32F407 这样一款高性能芯片作为控制核心,计算快速,扩展空间大。 云台飞控一体化设计,既能完成飞行任务也能实现云台稳定。 姿态算法采用基于四元数的互补滤波,姿态角无奇点,比起卡尔曼李春波等高端算法有着计算量小的特点且能投入使用,大大节约了 cpu 计算时间,也降低了对cpu 的性能要求。 利用四轴作为云台载体有着灵活机动,可让摄像头获得比较好的视野,且云台能消除四轴机体抖动。 方便改装用于执行其他任务。6.评测与结论6.1.四轴飞行器的调试6.1.1 电

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号