四轴飞行器系统研究与设计
2017-06-30李瑞平杜华巍
李瑞平++杜华巍
【摘 要】近些年来智能硬件蓬勃发展,而作为智能硬件中一颗耀眼的明星,四轴飞行器也越来越贴近我们的生活。伴随着电子科技的进步和自动化控制理论的完善,四轴飞行器所具有的功能越来越多,也越来越多的能承担人类赋予它的任务。最开始的四轴飞行器诞生于1907年的法国,是Breguet兄弟制造的。但由于当时技术的限制,当时的四轴飞行器无法克服操作复杂度高,系统鲁棒性极差等缺点,在诞生的上个世纪一直没有得到很好的发展。但如今随着卡尔曼滤波算法提出,高精度的陀螺仪和高性能的主控芯片的问世。使得四轴飞行器无论在控制复杂度、可靠性和生产成本上都有很大的改善。为其大规模生产及投入使用提供了可能。本文主要介绍了利用STM32作为主控芯片,陀螺仪MPU6050为主要测量部件。设计一架四轴飞行器的过程。本文主要从各部件的特性,实现原理,算法控制等方面讲解了从建模到设计一架四轴飞行器这一过程。
【关键词】STM32;MPU6050;陀螺仪;算法
0 前言
作为飞机的一种,四轴飞行器因为它的四角有四个对称的螺旋翼而得此名。四轴飞行器的体积一般都比较小,所以它操作简便而且灵活度高。可以进行垂直起降,俯仰运动,滚转运动,偏航运动。除此之外高度可拓展性强价格便宜也是四轴飞行器的优点。在机身上可以按照摄像头,武器,等各种所需要的外设。
在实际应用中,在军事方面四轴飞行器可用于代替士兵进行侦查探测、攻击、警戒等任务。在工业方面四轴飞行器可以进行航拍、运输等任务。在一些人难以到达的地方或危险的地方代替人去执行一些任务。在生活方面,民用的航拍四轴飞行器的出现让我们多了一个视角看待我们的世界。
近些年来,随着科技的发展,关于四轴飞行器的各种算法,理论都日趋完善。各种高性能的传感器的出现也加速了四轴飞行器的发展。所以我们相信,四轴飞行器的研究将是一个广阔的课题。而在在不就的将来,四轴飞行器将如其他日用电子产品一样进入我们的生活。四轴飞行器也将迎来一个更高速发展的时代。
1 四轴飞行器的简介
2005年第一架四轴飞行器诞生至今已有十余年,这几年随着各类技术的进步,与所有热门的技术一样,四轴飞行器已经成功吸引到了许多科学爱好者和科技公司的注意力。这一点从京东用四轴飞行器为客户投递包裹的举动就可见一斑。故笔者认为,作为现在最炙手可热的智能硬件之一,其在以下几个领域具有很好的发展前景。
一是,可作为新概念交通工具。早在第二次时间大战期间,科学家就设计了用以载人的四轴飞行器的原型机,但因为惯性测量单元太大飞行器不稳定等原因无法做到精确控制故而无法投入实际应用。但是随着科学技术的发展,今天以上所有问题都已解决。现在的四轴飞行器可以在高度密集的城市中以其灵活的姿态自由穿梭。
二是,作用于安保领域,现在我们常听到监控死角一词,那是因为现在的监控摄像头一般都是固定在建筑物上,所以在一定程度上会存在监控死角。但如果用四轴飞行器来进行监控追踪则完全可以避免这个问题。而且它还能顺带改善监控碎片化带来的监控不流畅等问题,大大加强了监控的能力与效率。
三是,作用于军事与搜救领域,现在美国的部队已经开始在使用了,他们在美军在中东地区的作战行动中发挥了巨大的作用。他们的轻便性灵活性是对美军的大规模重武器的一个很好的补充。
2 整体设计
2.1 整体设计方案
我们使用的惯性测量模块是MPU6050,在飞行器工作时MPU6050可以不断收集三个轴线(X 轴 Y轴 Z轴)的加速度和它们的角速度。在收集后MPU6050利用串口与我们的主控芯片STM32进行通信,把数据发送给STM32。主控芯片在接收到数据后用PID算法进行处理。处理完成后把数据分别传给四轴飞行器四个无刷电调,从而控制每一个电机的转速。除此之外我们还利用外部中断接受来自地面遥控器的信号,主控芯片在接收到相应的信号后结合惯性测量模块发来的数据,对无刷电调发出指令改变电机转速,从而使得四周飞行器在动态平衡中改变运动方向和运动姿态。
2.2 整體设计框图
3 部分元器件简介
3.1无刷电机
普通直流电机因为其自身限制,如马力不够、自重太大、寿命短、效率低等原因,难以为四轴飞行器提供稳定的动力。所以我们使用专业的三相交流无刷电机。无刷直流电机是一种典型的机电一体化产品。其主要由电动机主体和驱动器组成。但直接使用无刷电机无法对电机实时精确的控制,所以我们还使用了无刷电调配合使用。以便让我们可以对飞行器实现高精度的控制。
无刷电机的单位为KV值,该单位的意思是电压每增加一伏特时转速所增加的值。因此从这个单位我们便知,无刷电机的转速与其输入电压成正比关系。无刷电机的这一特性为我们控制电机提供了极大的便利。
3.2 无刷电调
随着无刷电机的大力发展,无刷电调也开始慢慢占据了市场的主流。市场上有很多个无刷电子调速器品牌。但这并不意味着无刷电机可以和无刷电调任意匹配,无刷电机与无刷电调的匹配主要是看功率这个参数。如果使用的无刷电调功率太低,则有可能烧毁无刷电调的功率管,对无刷电调造成不可逆的损害。除此之外在选择无刷电调时电调与电机的兼容度也很重要。
我们使用无刷电调主要是两个作用。
其一是电调相当于一个开关,用PWM控制无刷电机的转速。
其二是把电池供给的直流电变成无刷电机所需要的三相交流电。
3.3 电池
电池作为整个系统的能量提供者,其对系统的重要性不言而喻。所以选择一款合适的电池至关重要。故综合放电能力到续航能力到性价比到安全性能等各方面的考虑,我们选择了大容量的锂聚合物电池。其电容容量为2200mah,输出电压为11.1V。
此外电池在使用时要注意其正负极,放电充电时也要主要时间,不要过充或过放.
3.4 机架
我们选择在专业卖航模的店买一个符合我们尺寸的机架,买回来后再经过我们自己的设计,加工成我们想要的样子。
3.5 惯性测量单元
惯性测量单元对于整个四轴飞行器的重要性就像人眼对于人一样重要,在四軸飞行器飞行时惯性测量单元不断感知四轴飞行器的位置姿态,并把这些信息发送给四轴飞行器的大脑(STM32)进行处理。
我们所选择的惯性测量单元是MPU6050,这是现在市面上很常见的一种姿态传感器,其内部集成了三轴加速度计和三轴陀螺仪。
3.6 主控芯片
主控芯片是这块飞行器的大脑,所以选择一款合适的主控芯片至关重要。在我们这款四轴飞行器中我们选择的是意法半导体公司生产的STM32F4。作为一种较高级的单片机,STM32F4具有价格适中、速度快、时钟选择丰富、中断接口多等优点。除此之外,作为一款常用的芯片,STM32F4拥有丰富的资源可供我们参考,可降低我们的开发难度。
除了性能和性价比的优势外,我们选择这款芯片的另外一个原因在于其丰富的资料。四轴飞行器从诞生到现在也没有太久,所以并不是任何一款主控芯片都有设计制作四轴飞行器的丰富资料。而我们选择的STM32F4在这方面稍占优。其资料相对于其他芯片更为丰富。
3.7 无线通信模块设计
一般而言四轴飞行器需要在我们的控制下才能够完成正常的飞行任务,所以飞行器在飞行时得进行人机通信。
我们选择NRF24l01作为我们的无线通信模块。作为NORDIC公司生产的工作于2.4GHz-2.5GHz的ISM频段的一款单片无线收发器芯片。由NRF24l01芯片为核心制作的NRF24l01无线通信模块具有体积小、耗电小、价格适中、功率大、操作简单等优点。且其信号稳定,很适合作为四轴飞行器的无线通信模块。
4 算法简介
4.1 PID算法简介
PID是比例,积分,微分的英文单词的首字母的简称,它以其灵活性、简便性等优点成为工业控制领域最常用的算法之一。PID算法的作用在于对飞行器的姿态进行一个实时的动态的调整。如我们所知,飞机在空中飞行时不是只有一个固定的姿态,它的姿态会随着飞行任务的改变而要发生实时的改变。这就好比一个人在骑单车,车子一旦动起来了就进入一个动态调平衡的过程了。
PID算法就是一个可以为飞行器进行动态平衡调整的算法。
4.2 PID算法内容
比例(Proportion)P控制,在使用了PID算法的自动控制系统中,如果其输出与输入偏差存在成正比例关系,那么就可得知该系统使用了比例控制。比例控制算法是PID算法中最简单的一种算法。如果系统中只使用了比例控制,那么该系统的输出就有可能出现稳态误差(Steady-state error)。这样的系统我们称呼其为有差系统,否则为无差系统。
积分(Integral)I控制:就是把输入误差以时间为变量做积分运算。
在只有比例控制的系统中,会有很大的几率出现稳态误差,因为只有比例误差的系统是无法改变每一步调节的步幅,从而使得系统无法进行精细的调节。故而系统会出现稳态误差,使得系统无法达到动态平衡。
而为了消除稳态误差,我们便引进了积分项。他的值为输入误差在时间上的积分,所以跟着时间的增大,其积分项也会增大。如此一来就算输入误差非常小,只要时间足够长,积分项的值也会是一个比较大的值,如此一来误差便被放大观察了。因此积分项的引入可以增加控制器的输出从而达到使得稳态误差减小的目的,且其在动态调解中不断减小稳态误差,理想情况下可以一直减小直到其等于零。
所以,为了消除稳态误差,我们在使用比例调节的情况下引进了积分项。以使得系统能够在动态中实现平衡。
微分(Derivative)D控制,控制器对输入系统的输入偏差进行以时间为自变量的微分运算
微分调节就是测量输入偏差的变化率。例如,若是输入偏差值发生了线性变化,那么控制器就会调节使得一个恒定的叠加量加于系统的输出一侧。他一般是作用于有时间滞后的系统,因为如果系统有时间滞后性的话,那只有提前调节系统,否则系统就无法达到动态平衡。而微分后的误差,也就是他的斜率便是一个很好的预测的指标。大部分控制系统不需要调节微分时间。一般而言只有时间会滞后的系统才需要用到该微分调节。如果我们在没有时间滞后的系统中加入微分调节的话,整个系统的控制都有可能收到影响。
我们在使用PID算法对四轴飞行器进行姿态调试,要先使其离散化。因为我们用的主控芯片是数字芯片,其难以处理模拟信号。以下是模拟的PID算法
其离散化的公式可以表示如下
△u(k)= u(k)- u(k-1)
△u(k)=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]
其中公式中各个变量的含义如下
u(t) 控制器的输出值。
e(t) 控制器输入与设定值之间的误差。
Kp 比例系数。
Ti 积分时间常数。
Td 微分时间常数。(有的地方用"Kd"表示)
在四轴飞行器开始工作的时候,首先我们从惯性测量单元中读取出当前的姿态数据。而后把这些数据传输给MCU经过PID算法处理。最后再把经过MCU计算过的数值传送给各个无刷电调,继而控制无刷电机以达到控制四轴飞行器姿态的目的。
5 结束语
随着科技的发展,社会的进步,未来的生活中会充满这智能化的产品,四轴飞行器将会在未来扮演着重要的角色。
【参考文献】
[1]刘金琨.《先进PID控制MATLAB仿真(第4版)》[M].高等教育出版社(第五版),2015.
[2]白志刚.《自动调节系统解析与PID整定》[M].化学工业出版社,2012.
[3]霍罡,曹辉.《可编程序控制器模拟量及PID算法应用案例》[M].高等教育出版社,2008.
[4]杨平,邓亮,徐春梅,李芹.《PID控制器参数整定方法及应用》[M].中国电力出版社,2016.
[5]陶永华.《新型PID控制及其应用》[M].机械工业出版社,2002.
[责任编辑:朱丽娜]