20##年全国大学生电子设计竞赛
四旋翼自主飞行器(B题)
【本科组】
20##年9月7日
摘要:本系统由数据采集、数据信号处理和飞行姿态和航向控制部分组成。系统选用瑞萨R5F100LEA单片机作为主控芯片,对从MPU-6050芯片读取到的一系列数据进行PID算法处理并给飞行器的电调给出相应指令从而达到对飞行器的飞行姿态的控制。采用MPU-6050芯片采集四旋翼飞行器的三轴角速度和三轴角加速度数据。用红外传感器来检测出黑色指示线,以保证飞行器不脱离指定飞行区域及达到指定圆形区域。利用超声波传感器来检测飞行器与地面的距离,以保证飞行器能越过一米示高线。利用电磁铁来吸取和投放铁片。
关键词:瑞萨R5F100LEA单片机 MPU-6050模块 红外传感器循迹 电磁铁拾取铁片 超声波测距 PID算法
1
目录
1系统方案………………………………………………………………3
1.1 控制系统的选择………………………………………………………………3
1.2 飞行姿态控制的论证与选择……………………………………………… 3
1.3 高度测量模块的论证与选择……………………………………………… 3
1.4 电机调速模块的选择…………………………………………………………3
1.5 循迹模块的方案选择…………………………………………………………3
1.6 薄铁片拾取的方案的论证与选择………………………………………… 3
1.7 角速度与角加速度测量模块选择………………………………………… 4
2设计与论证……………………………………………………………4
2.1控制方法设计……………………………………………………………4
2.1.1降落及飞行轨迹控制设计…………………………………………4
2.1.2飞行高度控制设计…………………………………………………4
2.1.3飞行姿态控制设计…………………………………………………5
2.1.4铁片拾取与投放控制设计…………………………………………5
2.2参数计算…………………………………………………………………5
3电路与程序设计……………………………………………………6
3.1系统组成……………………………………………………………………………6
3.2 原理框图与各部分电路图………………………………………… ……………6
3.2.1原理框图………………………………………………………………………6
3.3系统软件与流程图…………………………………………………………………6
4测试方案与测试结果…………………………………………………7
4.1测试方案……………………………………………………………………………7
4.2测试条件与仪器……………………………………………………………………7
4.3测试结果分析………………………………………………………………………7
5结论…………………………………………………………………8
附录…………………………………………………………………8
附一:元器件明细表………………………………………………… ………………8
附二:仪器设备清单………………………………………………………… ………8
附三:源程序……………………………………………………………………………8
2
一 系统方案
本系统主要由控制模块、薄铁片拾取、高度测量模块、电机调速模块、循迹模块、角速度和角加速度模块组成,下面分别论证这几个模块的选择。
1控制系统的选择
依据本题目的要求,本系统选用组委会提供的瑞萨的R5F100LEA单片机作为主控芯片来控制飞行器的飞行姿态与方向。
2 飞行姿态控制的论证与选择
方案一:单片机将从MPU-6050中读取出来的飞行原始数据进行PID算法运算,得到当前的飞行器欧拉角,单片机得到这个欧拉角后根据欧拉角的角度及方向输出相应的指令给电调,从而达到控制飞行器平稳飞行的目的
方案二:单片机将从MPU-6050中读取出来的飞行原始数据进行PID算法运算,得到当前飞行器的四元数,单片机再将数据融合,并对电调发出相应指令,从而达到控制飞行器的飞行姿态的目的。但四元数法需要进行大量的运算,且运算复杂。
从算法的复杂程度及我们对算法的熟悉程度,我们选择方案一。
3高度测量模块的论证与选择
方案一:采用bmp085气压传感器测量大气压并转换为海拔高度,把当前的海拔测量值减去起飞时的海拔值即得飞机的离地高度。但芯片价格较贵,误差较大,而且以前也没用过这个芯片。
方案二:采用HC-SR04超声波传感器测量飞行器当前的飞行高度。
考虑到对元件的熟悉程度、元件的价格和程序的编写,选择方案二。
4电机调速模块的选择
由于本四旋翼飞行器选用的是无刷电机,所以电调只能选用无刷电机的电调,自己做电调需要的时间长,而且可能不稳定,所以直接用的是成品电调。
5循迹模块的选择
普通的红外传感器检测的距离很近,无法在离地面一米以上的距离检测出地面的黑线,所以我们选择了漫反射远距离光电开关 来检测指示线。
6薄铁片拾取的选择
方案一:在飞行器起飞时由系统控制机械臂拾取起铁片,到达B区放松机械臂,投下薄铁片。缺点:机械臂重量大,对飞行器的飞行姿态影响较大,薄铁片厚度非常小,不易拾取。
方案二:采用电磁铁拾取,用瑞萨MCU控制电磁铁,在飞行器起飞时吸取铁片,到B区后投下铁片。优点:电磁铁体积小而且有较强的拾取能力而且好操作方便。
3
综上所述,我们选择用经济又灵活的电磁铁作为薄铁片的拾取工具,采用方案二
7角速度与加速度测量模块选择
方案一:选用MMA7361 角度传感器测量飞行器的的与地面的角度,返回信号给单片机处理,从而保持飞行器的平衡。
方案二:用MPU-6050芯片采集飞行器的飞行数据,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。
综上,选择方案二。
二 设计与论证
1控制方法设计
1.1降落及飞行轨迹控制
由于题中有指示线,所我们采用漫反射红外开关来识别地面的指示线,红外模块将识别指示线后的信号以高低电平的方式传给单片机,单片机对信号做出反应,控制电调,从而控制飞行器飞行轨迹。程序流程图如图一
图一 图二
1.2飞行高度控制
飞行高度的采集采用超声波模块来实现,通过超声波发出时开始计时,收
4
到返回信号时停止计时,单片机利用声音在空气中的传播速度与时间的数学关系来计算出飞行器距离地面的时间,从而控制飞行器的飞行高度达到我们所需的高度。程序流程图如图二。
1.3飞行姿态控制
通过MPU6050模块来测量当前飞行器的三轴加速度和三轴角加速度,利用瑞萨单片机的IIC协议从MPU6050中读取出数据,解读飞行器的飞行姿态,并经过PID算法程序来对数据进行处理,得到当前欧拉角的值,并将处理后的信号传给电调,控制电机的转速,从而达到控制飞行器的飞行姿态的目的。程序流程图如图三。
1.4薄铁片拾取与投放控制
根据电磁铁的通电具有磁性,断电磁性消失的原理,从A起飞时我们让单片机控制电磁铁通电,让飞行器吸取薄铁片飞向B区,到达B区后让电磁铁断电,从而投下薄铁片,让其落到B区。程序流程图如图四。
图三 图四
2参数计算
本系统最主要的参数计算是对MPU-6050等传感器采集的原始飞行数据进行处理。
单片机从MPU-6050芯片获取的数据是飞行器的三轴角速度和三轴角加速度,MCU对数据进行PID算法处理可以得到飞行器当前的飞行姿态,PID是比例,积分,微分的缩写。比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。积分调节作用:
5
是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。
三 电路与程序设计
1系统组成
本四旋翼飞行系统由瑞萨最小系统板、MPU-6050芯片模块、红外循迹、超声波模块和电磁铁构成,由瑞萨单片机用PID算法处理外围传感器传回来的数据,用处理后的数据来控制飞行器的外围器件从而试飞行器能沿着指示线飞行。
2原理框图
3系统软件与程序流程图
本系统程序的编写采用CubeSuite+软件进行程序的编写,用Renesas Flash Programmer V2.01软件将编写好的程序烧写入瑞萨单片机,软件界面如下图
6
Renesa Flash Programmer V2.01
CubeSuite+
程序流程图
四 测试方案与测试分析
1测试方案
将飞行器放在圆形区域A或B,让单片机自主控制飞行器飞行,观察飞行器的飞行高度与飞行方向和时间,若飞行器不能按预定的方案飞行就调整程序的PID参数再进行测试。
2测试条件
飞行器应该在水平的地面上起飞,0605芯片不能倾斜。场地应有黑线作为指示线引导飞行器前进
3测试分析
1 刚开始我们为了提高飞行器的续航时间在飞行器上装载了两节电池,但发现两节电池太重,飞行器惯性太大,从而导致飞行器无法及时灵活地调整飞行姿
7
态,后来我们卸载了一节电池,情况好了很多
2飞行器多次飞行后电池电量会降低,电机转速会下降,从而会影响系统的正常飞行严重时飞行器的飞行高度会不足十厘米,达不到起飞的要求,因此,我们设置参数时尽量让飞行器缩短飞行时间
五 结论
附录一:元器件明细表
1 瑞萨 R5F100LEA单片机
2 直流吸盘式电磁铁
3 红外传感器
4 超声波传感器
5 带防撞圈的四旋翼飞行器(外形尺寸:长度≤50cm,宽度50cm;续航时间大于10分钟)
附录二:仪器设备清单
1 线性稳压电源
2 数字示波器
附录三:源程序
8
第二篇:四旋翼自主飞行器
本系统采用瑞萨公司生产的R5F100LEA 的微控制器作为四旋翼飞行器主控芯片。采用高灵敏度的反射式红外光电传感器进行轨迹识别;采用陀螺仪调整飞行器的姿态;采用超声波测距来控制飞行器的高度;使用了互补滤波器对陀螺测量误差进行矫正,采用基于欧拉角反馈的 PID 控制器进行姿态控制。
关键词:四旋翼飞行器 R5F100LEA 循迹 陀螺仪 超声波
一、系统方案
本系统的四旋翼飞行器是用玩具四轴飞行器改造而成,为了实现平衡、循线飞行等功能,要求对飞行器的控制要有足够的精度。对于精度的控制而言,合适的控制算法、反馈信号的精度、系统模型的准确度等都对系统的稳定性及控制精度起重要作用。
1.飞机姿态调整方案论证与选择
方案一:采用倾角传感器。测量精度不够,反应速度不够快 方案二:采用陀螺仪。如今的陀螺仪应用广泛,它具有体积小、重量轻、成本低、功耗低、可靠性高、易于数字化、智能化等优点, 能够比较精确的感知飞机当前的飞行状态,从而反馈给控制系统,以便能及时调整,符合本系统的要求。
如上所述,本系统采用方案二,陀螺仪的低功耗、体积小、重量轻很好的适应了本系统。
2.机翼电机的方案论证与选择
方案一:采用有刷电机。有刷电机具有启动快、制动及时、可在大范围内平滑地调速、控制电路相对简单等特点,但有刷电机使用时功耗大、转速低、寿命短、噪声大且极易磨损。
方案二:采用无刷电机。无刷电机的控制电路相对复杂,但无刷电机的功耗只有有刷电机1/3,寿命是有刷电机的4倍,转速也远高于有刷电机,且低噪音、低干扰且绝对无磨损。符合本系统的要求。
综上所述本系统采用无刷电机。
3.飞机循黑线飞行的方案论证与选择
方案一:采用旋翼控制。该方案是控制旋翼的转速进而来控制飞行器的前进、后退和转向,可以有效的减少飞行器的重量,但控制难度大,实施困难。
方案二:通过摄像头采集道路信息,对采回的数据进行处理来分辨路径,根据路径采取不同的策略进行控制。但需要处理大量数据,软件编程复杂,并且摄像头受外界光线的影响较大,采集的数据可能不可靠。
方案三:采用M18光电传感器。
综上所述,由于旋翼控制难度大,本系统采用方案三。
3.供电模块的方案论证与选择
方案一:
方案二:
二、控制理论分析与计算
1.循黑线飞行原理
飞行器飞行过程中,安装的传感器检测到地面的黑线后给控制系统一个信号,通过控制该信号让飞机顺着黑线方向飞行。
2.无刷直流电机控制原理
无刷直流电机是一种同步电动机,电机的转速受输入电压及所带负载的影响,要让无刷直流电机转动起来,首先必须能够根据霍尔元器件或者反馈电路感应到电机转子目前所在位置,然后换流器件使电流按一定的相序通过电机线圈,产生顺时针方向或者
逆时针方向旋转的电磁场。该旋转的电磁场将通过电磁力牵引转子转动。通过改变换流器件的占空比
3.平稳飞行的控制算法
设计姿态求解器有效的融合陀螺仪,加速传感器的数据,输出的 姿态角动态误差小,能够满足小型四旋翼飞行器姿态控制的需求,飞行器姿态PID控制器原理图如图1
(1)基于四元数的姿态解算的算法
姿态解算需要从姿态测量系统得到原始测量数据,首先获取初始姿态,然后使用四元数算法进行姿态更新,再将四元数转换为欧拉角,通过互补滤波器进行姿态矫正,最后将矫正后的欧拉角转换为四元数并将其规范化,进行下一次的姿态更新。
3. 1 初始姿态获取
使用欧拉角表示姿态,令 ψ、θ和φ代表ZYX欧拉角,分别称为偏航角、俯仰角和横滚角. 载体坐标系下的加速度( axB,ayB,azB) 和参考坐标系下的加速度( axN ,ayN ,azN ) 之间的关系可表示为式(1)其中 c 和 s 分别代表 cos 和 sin.
起飞前,飞行器处于静止状态,无法由陀螺得到初始姿态. 此时参考坐标系下的加速度等于重力加速度,即
ayN g
由以上可得初始偏航角ψ=arctg(myN/mxN),其中参考坐标下的磁场强度为(mxN,myN,mzN)。
3.2 四元素姿态更新
时间间隔。
3.2 互补滤波器数据融合
由于陀螺零点漂移和离散采样产生的累积误差,由陀螺得到的四元数只能保证短期的精度,需要使用加速度计和磁力计对其进行矫正,下标e代表经互补滤波器的矫正后的欧拉角估计值。 其中Δt代表陀螺采样
(2)PID控制算法
以姿态欧拉角的期望值与计算值之差作为 PID 控制器的 输入,通过PID进行精确控制电机转速,使电机的实际转度跟设置速度相差甚小,从而控制飞行器稳速飞行。
图1 飞行器姿态PID控制器原理图
三、电路与程序设计
本系统以基于瑞萨的控制器R5F100LEA为控制核心。
1.硬件电路设计
(1)系统原理框图
本系统采用R5F100LEA单片机作为控制核心,光电传感器和陀螺仪反馈运行状态,旋翼的无刷电机构成执行部分,1602液晶显示器部分构成智能控制。系统框图如图2所示。
图2系统框图
(2)循黑线飞行模块设计
通过 对黑线的感应来进行循迹,将感应信号传输给处理器,从而控制飞行器按照黑线直飞到另一区 (3)平衡模块设计 如图3所示 (4)电调驱动模块 2.软件程序设计 (1)程序功能描述 (2)程序流程图
四、测试与结果分析
1.测试方案
(1)把四旋自主飞行器摆放在布置的飞行区域A区,启动飞机起飞,飞机飞过示高线降落到B区,记录这个过程的飞行时间T(a→b),再把四旋自主飞行器摆放在布置的飞行区域B区,启动飞机起飞,飞机飞过示高线降落到A区,记录这个过程的飞行时间
T(b→a)。将记录的数据填入表一
表一
(2)飞行器摆放在A区,并在飞行器下面放一薄铁片,起飞后 让飞行器拾取铁片起飞,飞向B区后将铁片投放到B区后再返回A区降落并停机,记录这个过程的往返飞行时间,将记录数据填入表二。
表二
2.测试条件
(1)按照竞赛试题中的飞行区域俯视图和立体图布置飞行区域
(2)采用重量轻的12V锂电池供电,已尽可能减轻飞机的重量
(3)飞机起飞后人为不在干预。
3.测试结果及分析
通过上述测试数据,由此可以得出以下结论:
(1)
(2)
五、总结
设计了一种四旋翼自主飞行器,以模块化设计思想给出了 四旋翼飞行器的整体设计框架,以及飞行器姿态解算过程,对陀螺测量误差使用互补滤波器进行矫正,提出了互补滤波器融合系数的确定方法,介绍了 PID 姿态控制器的原理 并对硬件进行了调试,从中取得的数据进行了进一步的分析。