多旋翼自主飞行器(C题)
摘要
四旋翼飞行器结构较简单,且能够控制其稳定飞行。通过对MPU6050陀螺仪姿态索取,并以R5F100LEA单片机作为主控芯片,利用其内部资源,进行运算完成四元数矩阵转换及姿态解算、融和、矫正。针对四旋翼飞行器的动力来源为直流电机,通过采用PWM控制方式对电机进行调速,通过调节电机转速,实现升力变化,控制飞行器的姿态及位置变化。采用ov7620摄像头循迹使飞行器从A区到B区。通过对四旋翼工作模式与控制参数的研究,采用PID算法,编程实现,模拟相应的飞行姿态,使四旋翼飞行器能够实现自主飞行、自主悬停控制,并且能够完成题目要求内容。
目录
1. 系统方案论证与选择
1.1 姿态检测模块
1.2 电源模块
1.3 光电传感器模块
2.系统理论分析与计算
2.1 姿态控制方法
2.2 电机驱动模块
3.系统硬件电路设计与分析
3.1电机驱动
3.2姿态检测模块
3.3 MCU主控电路
4.系统软件设计
4.1 中值窗口滤波算法
4.2 PID算法
5.仿真测试与实飞
5.1仿真测试
5.2作品实物图
5.3实飞测试
6.结论
参考文献
1. 系统方案论证与选择随着传感器技术和控制理论的不断发展,尤其是微电子和微机械技术的逐步成熟使四轴飞行器的自主飞行控制变得易实现并成为国际上的热点研究对象。以此为背景,2015年第十二届全国大学生电子设计竞赛本科组C题要求设计一个四旋翼自主飞行器,可以自动识别指示线、降落区,实现自主循线飞行、起降吸合贴片等动作。本论文针对该问题,采用新型磷酸铁锂电池组为动力,MPU6050整合性6轴运动处理组件作为飞行器姿态检测传感器,通过卡尔曼、窗口滤波对MPU6050测量数据进行整定,并以R5F100LEA单片机作为主控芯片,利用其内部资源,进行运算完成四元数矩阵转换及姿态解算、融和、矫正,飞行导航用摄像头作为检测模块,设计实现了四旋翼自主飞行器工作系统。 下面对各个关键模块进行说明。 1.1 姿态检测模块方案一:利用串口读取模式MPU6050(JY-61),模块内部集成了姿态解算器,配合动态卡尔曼滤波算法,能够在动态环境下准确输出模块的当前姿态,姿态测量精度0.01度,稳定性极高。采用高精度的陀螺加速度计MPU6050,通过处理器读取MPU6050的测量数据然后通过串口输出,免去了用户自己去开发MPU6050复杂的I2C协议。模块内部自带电压稳定电路,可以兼容3.3V/5V的嵌入式系统,连接方便。采用先进的数字滤波技术,能有效降低测量噪声,提高测量精度。 方案二:利用I2C读取模式6轴飞控传感器模块GY-521(MPC6050),以数字输出6轴或9轴的旋转矩阵、四元数、欧拉角格式的融合演算数据。具有131 LSBs/°c 敏感度与全格感测范围为±250、±500、±1000与±2000°c 的3轴角速度感测器(陀螺仪)。可程式控制,且程式控制范围为±2g、±4g、±8g和±16g的3轴加速器。数字运动处理(DMP)引擎可减少复杂的融合演算数据、感测器同步化、姿势感应等的负荷。高达400kHz快速模式的I2C。 方案三:利用I2C读取模式10轴飞控传感器模块GY-86,模块I2C总线上挂载MPU6050+HMC5883L+MS5611,可以测量出三轴加速度、三轴角速度、三轴磁场和气压。 综合比较,方案三包含方案二的所有优点,且采样周期较方案一短,方案三中数据采样更多,在运动过程中,GY-86更适合于四旋翼飞行器的姿态控制,故选择方案三。 1.2 电源模块方案一:利用铅蓄电池,电极主要由铅制成,电解液是硫酸溶液的一种蓄电池。其通过氧化还原反应对用电设备进行供电。 方案二:利用锂聚合物电池,锂聚合物电池是采用锉合金做正极,采用高分子导电材料、聚乙炔、聚苯胺或聚对苯酚等做负极,有机溶剂作为电解质。该电池具有安全性能好、更轻薄、容量大、内阻小、放电性能佳等优点。 综合比较,通过对飞行器的载重能力进行分析,故选择方案二。 1.3 光电传感器模块方案一:OV7620 OV7620是一款CMOS摄像头器件,是一款彩色CMOS型图像采集集成芯片,提供高性能的单一小体积封装,该器件分辨率可以达到640X480,传输速率可以达到30帧。内置10位双通道A/D转换器,输出8位图像数据;具有自动增益和自动白平衡控制,能进行亮度、对比度、饱和度、γ校正等多种调节功能;其视频时序产生电路可产生行同步、场同步、混合视频同步等多种同步信号和像素时钟等多种时序信号;5V电源供电,工作时功耗<120mW,待机时功耗<10μW。针对于本次电子设计大赛,OV7620能够采集相应场地情况,在姿态较为平稳的条件,实现比赛场地数据读取,可姿态飞行控制,实现巡线起飞降落等多个功能实现的关键控制因素。其实物图如图2.1所示。 图2.1 OV7620摄像头 方案二:TSL1401CL线性CCD TSL1401CL 的线性传感器阵列由一个 128×1 的光电二极管阵列,相关的电荷放大器电路,和一个内部的像素数据保持功能,它提供同时集成起始和停止时间所有像素。该阵列是由 128 个像素,其中每一个具有光敏面积 3,524.3 平方微米。 像素之间的间隔是 8 微米。 操作简化内部控制逻辑,需要只有一个串行输入端(SI)的信号和时钟。其具有操作较为简单,数据量少,处理难度低等优点。 图2.2 TSL1401CL线性CCD 综合比较, OV7620在单片机资源丰富的情况下,能够识别更多场地信息,对比TSL1401CL线性CCD,其信息更加丰富,并且在飞行器姿态稳定度不足的情况下,其能够提供更加准确的车控制信息,为飞行器飞行,功能实现提供飞行控制数据。在此,为实现比赛功能,选择OV7620作为场地数据采集模块。 2.系统理论分析与计算2.1 姿态控制方法欧拉角Eulerian angles用来确定定点转动刚体位置的3个一组独立角参量,由章动角 θ、旋进角(即进动角)ψ和自转角j组成。为欧拉首先提出而得名。它们有多种取法,下面是常见的一种。如图所示,由定点O作出固定坐标系 Oxyz和固连于刚体的动坐标系Ox′y′z′。以轴Oz和Oz′为基本轴,其垂直面Oxy和Ox′y′为基本平面。由轴Oz量到Oz′的角θ称章动角。平面zOz′的垂线ON称节线,它又是基本平面Ox′y′和Oxy的交线。在右手坐标系中,由 ON 的正端看,角θ应按逆时针方向计量。由固定轴 Ox 量到节线ON的角ψ称旋进角;由节线ON量到动轴Ox′的角j称自转角。由轴 Oz 和Oz′正端看,角ψ和j也都按逆时针方向计量。若令 Ox′y′z′的初始位置与 Oxyz 重合,经过相继绕 Oz 、ON 和 Oz′的三次转动后,刚体将转到图示的任意位置。如果刚体绕通过定点 O的某一轴线以角速度ω转动,而ω在动坐标系Ox′y′z′上的投影为ωx′、ωy′、ωz′,则它们可用欧拉角及其微商表示如下:ωx′ =sinθsinj+cosj,ωy′= sinθcosj-sinj,ωz′=cosθ+。如果已知 ψ、θ、j和时间的关系,则可用上式计算ω在动坐标轴上的 3个分量;反之,如已知任一瞬时t的ω各个分量,也可利用上式求出ψ、θ、j和时间t的关系,因而也就决定了刚体的运动。 2.1.1欧拉角 根据欧拉定理,刚体绕固定点的位移也可以是绕该点的若干次有限转动的合成。在欧拉转动中,将参与坐标系转动三次得到星体坐标系。在三次转动中每次的旋转轴是被转动坐标系的某一坐标轴,每次的转动角即为欧拉角。因此,用欧拉角确定的姿态矩阵是三次坐标转换矩阵的乘积。这些坐标转换矩阵都有如下标准形式: RX(φ)= Ry(θ)= Rz(ω)= 最终的姿态矩阵还与三次转动的顺序有关,即按照Z-Y-X轴的顺序旋转。于是可得姿态矩阵 A=RX(φ)Ry(θ)Rz(ω) = 式中,字符"c","s"分别为"cos"和"sin"的缩写形式。 2.1.2四元数 在刚体定点转动理论中有一个著名的欧拉定理:刚体绕固定点的任一位移,可由绕通过此点的某一轴转过一个角度而得到。在单位时间间隔Δt内假设刚体角速度为,则该转动轴的方向及绕该轴转过的角度分别为:=/,φ=Δt,相应四元数表示式为: q=(q0,q1,q2,q3)T= 满足约束条件 q02+q12+q22+q32=1 以超复数形式表示有 q=cos(φ/2)+isin(φ/2)+jsin(φ/2)+ksin(φ/2) 满足约束条件: i2 =j2=k2=-1;ij=−ji=k ;jk=−kj=I;ki=-ik=j. 利用三角公式: cosφ=2cos2(φ/2) −1, sinφ=2sin(φ/2)cos(φ/2), 可将四元数转化成姿态矩阵
2.1.3四元数转欧拉角 根据上述可得欧拉角: ϕ=arctan() θ=arcsin[A(1,3)] φ= arctan() 及欧拉角的四元数表述式: Φ=arctan() Θ=arcsin(-2(q1q2-q0q2)) φ=arctan() 在四旋翼自主飞行器设计中,主控MCU读回飞行器在三轴上的加速度,角速度,通过四元数空间转换得出飞行器当前姿态,以此姿态数据,通过卡尔曼滤波和窗口滤波,得到稳定可靠的数据,控制四个电机的转速以调整飞行器的飞行姿态。 2.2 电机驱动模块PWM转速控制: rpm为电机转速,Duty为PWM占空比,Vcc为电源电压,Kv为电机Kv常数 图2.3 降压调速电路 3.系统硬件电路设计与分析将电路从功能上进行划分,可以分为几个部分:姿态检测模块、电机驱动模块及电源模块、各芯片供电电压产生电路、控制电路以及主控电路,下面对主要模块电路进行简要说明。 3.1电机驱动在此次电子设计竞赛中,直流电动机是整个飞行器的动力来源,其驱动的稳定性,驱动能力,抗扰度能力直接关系到飞行器的功能实现,在如图3.1所示电路中,D1作为直流电机的续流回路,在控制信号失效的情况下,能够对电机进行续流,保护电路。 图3.1 电动机驱动电路 3.2姿态检测模块图3.2 MPU6050 姿态检测模块由MPU6050完成,其可以由IIC和串口读取数据进行运算,图3.2所示为其驱动电路。 3.3 MCU主控电路MCU采用组委会下发的R5F100LEA最小系统板,其电路图如图3.3所示: 图3.3 主控MCU最小系统 4.系统软件设计软件系统则主要由数据采集程序、工作状态选择子程序、寻迹飞行子程序、PID控制子程序、直流电机调速子程序等组成,在主函数中统一调用。在此不再一一说明,下面对软件实现中的一些关键算法,进行说明。 4.1 中值窗口滤波算法中值滤波对脉冲噪声有良好的滤除作用,特别是在滤除噪声的同时,能够保护信号的边缘,使之不被模糊。这些优良特性是线性滤波方法所不具有的。此外,中值滤波的算法比较简单,也易于用硬件实现。所以,中值滤波方法一经提出后,便在数字信号处理领得到重要的应用。 中值滤波方法:对一个数字信号序列xj(-∞<j<∞)进行滤波处理时,首先要定义一个长度为奇数的L长窗口,L=2N+1,N为正整数。设在某一个时刻,窗口内的信号样本为x(i-N),…,x(i),…,x(i+N),其中x(i)为位于窗口中心的信号样本值。对这L个信号样本值按从小到大的顺序排列后,其中值,在i处的样值,便定义为中值滤波的输出值。中值滤波是在“最小绝对误差”准则下的最优滤波。 在实际应用中,随着所选用窗口长度的增加,滤波的计算量将会迅速增加。因此,寻求中值滤波的快速算法,是中值滤波理论的一个重要研究内容。中值滤波的快速算法,一般采用下述三种方式:①直方图数据修正法;②样本值二进制表示逻辑判断法;③数字和模拟的选择网络法。 对中值滤波的理论研究,还集中于统计特性分析和根序列的描述方面。当一个信号序列经一特定窗口长度的中值滤波反复处理后,它会收敛于某一个不再变化的序列,这个序列称为中值滤波的根序列。根序列是描述中值滤波特性的一个重要概念。通过对根序列结构的研究,可以确定原信号序列中,哪些成分可以经中值滤波后保留下来,哪些成分将被抑制。这对确定中值滤波器的窗口长度,提供了重要依据。用VLSI实现的中值滤波器芯片,可供实时处理中应用。 4.2 PID算法PID控制是通过将被控变量与设定值进行比较,产生一个与偏差信号有关的控制信号输入到被控对象中,属于一种负反馈闭环控制。
图4.1 常规PID控制原理图 PID控制器是根据给定的r(t)与实际输出量y(t)构成控制偏差,再对偏差进行比例、积分、微分调节的一种方法,其控制规律为: 将上式变为传递函数为: 其中,e(t)=r(t)-y(t)为系统误差,Kp为比例增益,Ti为积分时间常数,Td为微分时间常数。 PID控制是综合了比例、积分、微分三种控制方式的优点,利用比例控制快速抵消干扰的影响,利用积分控制由于外界干扰或者建立的模型与实际系统之间不匹配而引起的稳态误差,同时微分控制具有某种程度的预见性,改善系统稳定性,提高控制精度。 PID控制是通过姿态采集模块发送回的数据与期望姿态进行比较,若存在误差,则通过比例、积分、微分进行调节,使调整后的值被作用于电机上,使之恢复正常姿态。通过PID控制,可以考虑到整个系统的过去、现在、未来,使之达到稳定。 5.仿真测试与实飞5.1仿真测试通过软件Cubesuite++仿真实时监控传感器MPU6050所测角速度、角度及角加速度来验证代码的准确性,下图为Cubesuite++仿真测试界面。 图5.1 仿真测试界面 5.2作品实物图图5.2 作品正面图 图5.3 内部芯片图
5.3实飞测试表1和表2所示分别为飞行器从起飞区出发,自主飞行到指定区域并降落以及飞行器在携带铁片的条件下飞行到指定区域空投铁片后返回降落于起飞区位置和耗时情况。 表1 A、B区直接降落
由表1可知系统工作在A、B区直接降落时完成动作平均约耗时5.2秒,与中心位置偏差平均为5厘米,飞行器系统响应速度较快,满足任务要求,远远超过任务要求的指标。 表2 A区起飞、B区降落
由表2可知系统工作在A区起飞、B区降落(以下简称任务二)时完成动作平均约耗时21.3秒,与中心位置偏差平均为19.8厘米。由此可见,与飞行器A、B区直接降落(以下简称任务一)相比,执行一次任务二所需时间远超过执行任务一两次的时间,飞行器降落后与中间位置偏差远远超过任务一平均偏差5厘米,为19.8厘米。分析原因可知,任务一为单向直接降落,而任务二为往返降落。在任务二中要求飞行器飞过1米示高线,相比任务一飞行距离有所增加,在任务二中投放铁片的瞬间会导致飞行器整体重量减轻,此时需要及时调整电机转速来保证飞行器姿态的稳定并继续执行飞行动作,这需要一定的调整时间,所以飞行器执行任务二的总时间会相应的增长;任务二返回起飞区时同样要求飞行器飞过示高线降落,与任务一相比需要从更高的高度降落,由于降落的调节距离较短,从而增加了与中心位置的偏差。即使飞行任务如此复杂、困难,本系统仍很好的完成任务,并超过任务所要求的指标。
图5.4 实飞场地图
6.结论本文基于最早MPU6050整合性6轴运动处理组在件,在R5F100LEA CPU中对测量数据进行整定,并利用其内部资源,进行运算完成四元数矩阵转换及姿态解算、融和、矫正,设计实现了四旋翼飞行器自主飞行工作系统。MPU6050传感器使得飞行器姿态信号的获取十分准确、便捷,移动平均滤波法能有效滤除采样干扰信号,有助于实现系统姿态的闭环控制。使用直流空心杯电机作为飞行器的运动执行机构,可以使飞行器姿态控制更为精确、PID控制算法的实现更为容易。采用比能量高的磷酸铁锂电池组作为能源系统能提供稳定长效的输出电流、延长系统的续航时间。在不同的工作环境中,通过合理调整PID控制参数和滤波器参数仍能完成控制任务。实验结果表明,系统各项性能指标都达到或超过控制任务要求,飞行器定位精度高、响应速度快。
完整的Word格式文档51黑下载地址: http://www.51hei.com/bbs/dpj-115522-1.html
|