武汉理工大学-基于STM32F4的四轴航拍飞行器-论文

上传人:豆浆 文档编号:92314616 上传时间:2019-07-09 格式:DOC 页数:18 大小:8.54MB
返回 下载 相关 举报
武汉理工大学-基于STM32F4的四轴航拍飞行器-论文_第1页
第1页 / 共18页
武汉理工大学-基于STM32F4的四轴航拍飞行器-论文_第2页
第2页 / 共18页
武汉理工大学-基于STM32F4的四轴航拍飞行器-论文_第3页
第3页 / 共18页
武汉理工大学-基于STM32F4的四轴航拍飞行器-论文_第4页
第4页 / 共18页
武汉理工大学-基于STM32F4的四轴航拍飞行器-论文_第5页
第5页 / 共18页
点击查看更多>>
资源描述

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

1、论文格式*注意:此为封面格式*ARM-STM32校园创新大赛项目报告题 目: 基于STM32F4的四轴航拍飞行器 学 校: 武汉理工大学 指导教师: 黄立文 刘克中 参赛队成员名单:姓名学校学院学历邮箱谢宜航武汉理工大学航运学院硕士在读(研一)黄蕾湖北工业大学电气与电子工程学院本科视频观看地址:http:/ 目: 基于STM32F4的四轴航拍飞行器 关键词:四旋翼飞行器,STM32F4,捷联式惯导,飞行控制系统,四元数,云台摘要 本设计是基于STM32F4的四轴航拍平台。以STM32F407为控制核心,四轴飞行器为载体,辅以云台的航拍系统。硬件上由飞控电路,电源管理,通信模块,动力系统,机架,

2、云台伺服系统组成。算法上采用简洁稳定的四元数加互补滤波作为姿态解算算法,PID作为控制器,实现飞行,云台增稳等功能。具有灵活轻盈,延展性,适应性强好等特点。1. 引言四轴飞行器是一种利用四个旋翼作为飞行引擎来进行空中飞行的飞行器。进入20世纪以来,电子技术飞速发展四轴飞行器开始走向小型化,并融入了人工智能,使其发展趋于无人机,智能机器人。四轴飞行器不但实现了直升机的垂直升降的飞行性能,同时也在一定程度上降低了飞行器机械结构的设计难度。四轴飞行器的平衡控制系统由各类惯性传感器组成。在制作过程中,对整体机身的中心、对称性以及电机性能要求较低,这也正是制作四轴飞行器的优势所在,而且相较于固定翼飞机,

3、四轴也有着可垂直起降,机动性好,易维护等优点。在实际应用方面,四轴飞行器可以在复杂、危险的环境下可以完成特定的飞行任务,也可以用于监控交通,环境等。比如,在四轴飞行器上安装甲烷等有害气体的检测装置,则可以在高空定点地检测有害气体;进入辐射区检查核设施;做军事侦察;甚至搬运材料,搭建房屋等等。本设计利用四轴搭载云台实现航拍任务,当然经过改装也可以执行其他任务。本设计主要研究了四轴飞行器的姿态结算和飞行控制,并设计制作了一架四轴飞行器,对关键传感器做了标定,并利用用matlab分析数据,设计算法,还进行了单通道平衡试验调试,进行试飞实验取得了一定的效果。2. 系统方案 本设计采用STM32F4作为

4、核心处理器,该处理器内核架构ARM Cortex-M4,具有高性能、低成本、低功耗等特点。主控板包括传感器MPU6050电路模块、无线蓝牙模块、电机启动模块,电源管理模块等;遥控使用商品遥控及接收机。控制芯片捕获接收机的PPM命令信号,传感器与控制芯片之间采用IIC总线连接,MCU与电调之间用PWM传递控制信号。软件算法才用基于四元数的互补滤波解算姿态叫,控制算法才用经典PID控制器控制云台舵机和四轴电机。如图2-1为本设计总体框图。遥控器接收机远距通信 电调1,2,3,4远距通信 ,3,4MPU6050STM32F407蓝牙串口电源云台舵机1,2远距通信 ,3,4图2-13. 系统硬件设计针

5、对前面提出的整体设计方案,本设计采取模块化策略,将各个功能部分开来设计,最后组合起来。3.1 电源管理模块四轴飞行器要求整体设计质量较轻,体积较小,因此在电池的选取方面,采用体积小、质量轻、容量大的锂电池供电最合适。系统的核心芯片为STM32F103,常用工作电压为3.3V,同时惯性测量传感器,蓝牙通信模块的常规供电电压也为3.3V,锂电池的电压为11.4V,要使系统正常工作,需要将11.4V的锂电池电压稳压到3.3V。常用的78系列稳压芯片已不再适用,必须选择性能更好的稳压芯片。经综合考虑,本电路采用LM1117-3.3和LM2940-5电源部分的核心芯片。电池电源经过LM2940-5降到5

6、V后在输入LM1117-3.3稳压为3.3V。由于电机部分电流较大,故在飞控电路部分加入了过流保护,使用500mA的保险丝。电路图如下。 表3-1 四轴飞行器硬件清单器件型号主要参数机架四轴650机架桨距650mm,碳纤维材料电机新西达22121000KV螺旋桨1045直径10英寸,桨叶角45电子调速器好赢天行者20A额定电流20A电池锂聚合物电池11.1V,2200mah,30CMCUSTM32F407主频168M陀螺仪MPU6050+-2000dps,16位分辨率加速度计MPU6050+-16g,13位分辨率电源芯片LM2940,LM11175V,3.3V遥控器Futaba2.4M,6通道

7、舵机Futaba3003标准舵机4. 系统软件设计软件设计上由控制核心STM32F4读取传感器信息,解算姿态角,以姿态角为被控制量融合遥控信息后,输出到四个电机及两个舵机以完成四轴飞行控制和云台的稳定补偿。下图是软件流程:4.1.四元素计算姿态角的实现根据前面给出的姿态解算方程与四元数,即可得到姿态计算系统的计算原理如下图(4-1)图4-1 姿态算法流程图本设计基于互补滤波的思想上完成的四元素算法,其核心思路为利用加速度测得的重力向量与估计姿态得到重力向量的误差来矫正陀螺仪积分误差,然后利用矫正后的陀螺仪积分得到姿态角。首先不妨设处理后的加速度数据为:ax,ay,az,单位m/s2。加速度计的

8、向量为(ax,ay,az)陀螺仪数据为:gx,gy,gz,单位rad/s。陀螺仪向量(gx,gy,gz),由式(4-5)可得由载体到导航坐标系的四元数形式转换矩阵为:。根据余弦矩阵和欧拉角的定义,地理坐标系的重力向量,转到机体坐标系,是中的第三列的三个元素,即。所以加速的向量与估计重力向量叉积:(4-7)然后利用向量的叉积,可视为误差向量,这个叉积向量仍旧是位于机体坐标系上的,而陀螺积分误差也是在机体坐标系,而且叉积的大小与陀螺积分误差成正比,正好拿来纠正陀螺。由于陀螺是对机体直接积分,所以对陀螺的纠正量会直接体现在对机体坐标系的纠正。用上面得到的结果校正陀螺仪:(4-8)此处k为一个常量系数

9、。再利用二阶毕卡法解四元数微分方程(4-6),更新四元数为下一次计算做准备。毕卡二阶算法为:(4-9)其中为角增量最后将四元数转变为欧拉角:Q_ANGLE.Pitch=asin(-2 * q1 * q3 + 2 * q0* q2) Q_ANGLE.Rool=atan2(2*q2*q3+2*q0*q1,-2*q1*q1-2*q2*q2+1) Q_ANGLE.Yaw=atan2(2*q1*q2+2*q0*q3,-2*q2*q2-2*q3*q3+1)数据流程图如下:加速度计T陀螺仪微分方程运算 其他运算图4-5 数据流程图通过以上算法我成功得出了飞行器的姿态角,在开启电机的情况下,角度误差在+/-2

10、以内,满足了控制要求。姿态计算效果如下图所示,其中红色和蓝色是直接由加速度计算出的俯仰角和横滚角,青色和黄色为姿态结算后的俯仰角和横滚角。由图中数据可看出,解算的姿态角不仅能即时的反应角度变化切曲线平滑,说明姿态解算算法有效。4.2.控制设计由于四轴飞行器独特的机械结构,即结构上的对称设计,使得四轴在俯仰角的控制欲横滚角的控制上有这近乎相同的控制特性,且两者相对独立。四轴飞行器的俯仰,横滚,偏航,升降可以通过四个输入量来控制。通过设定一个期望角度,调整电机转速,使得测得的姿态角稳定在期望角。控制律的设计主要采用是闭环控制。以姿态角做为被控制量,采用经典的PID控制算法。四轴飞行器系统是一个时变

11、且非线性的系统,采用传统PID算法的单一的反馈控制会使系统存在不同程度的超调和振荡现象,无法得到理想的控制效果。本文将前馈控制引入到了四轴飞行器系统的控制中,有效地改善了系统的实时性,提高了系统的反应速度;并且根据四轴飞行器系统的特点,对数字PID算法进行了改进,引入了微分先行环节,改善了系统的动态特性;使得控制器能够更好地适应四轴飞行器系统的实际情况。在姿态角的控制中,本设计将控制器捕获到的遥控器信号转换为一个角度,作为期望角,与解算出来的测量角作差,得到偏差error。将error乘以一个比例系数kp。在只有kp作用下,系统会有静差所以考虑利用积分ki控制消除稳态误差。但积分控制会降低系统

12、的动态性能,甚至造成闭环系统不稳定,因此要对积分进行限幅,防止积分过大。对于微分,如果采用传统的D方法,在人为操纵四轴时会产生输入的设定值变化频繁且幅度较大,从而造成系统的振荡。对人为控制十分不利,为了解决设定值的频繁变化给系统带来的不良影响,本文在姿态角控制上引入了微分先行PID算法,其特点是只对输出量进行微分,即只对陀螺仪角速度测量值进行微分,而不对姿态角的设定值进行微分。这样,在设定值发生变化时,输出量并不会改变,而被控量的变化相对是比较缓和的,这就很好地避免了设定值的频繁变化给系统造成的振荡,明显地改善了系统的动态性能。控制周期定为4ms,姿态控制系统示意图如下:图5-1姿态控制系统示意图通过前面一章的介绍我们已经的达到了俯仰,横滚,航向三个控制量,然后将它们分别输入三个独立的如上图所示的PID控制器,我们可以得到三个PID输出:pid_roll,pid_pitch,pid_yaw将这三个输出量做简单的线性运算输出给电机。部分代码如下:#define PIDMIX(X,Y,Z) Motor_Thr + pid_pitch* Y+ pid_roll*X + pid_yaw*Z MOTOR1=MOTORLimit(PIDMIX(+1,+1,-1); /RE

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

当前位置:首页 > 中学教育 > 其它中学文档

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