您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页基于STM32单片机的四轴飞行器飞行系统设计

基于STM32单片机的四轴飞行器飞行系统设计

来源:尚车旅游网
集宁师范学院学报/Nov.2017/No.6

7基于STM32单片机的四轴飞行器飞行系统设计张仲俊

汪材印

234000)(宿州学院机械与电子工程学院,安徽宿州摘要:针对现阶段四轴飞行器飞行中存在的稳定性问题,通过对互补滤波、四元数、串级PID等技术的研究,设计了一种基于STM32的四轴飞行器飞行系统。该系统采用STM32作为主控芯片,利用9轴传感器(3轴加速度计、3轴陀螺仪、3轴磁力计)GY-86测得原始数据,经过四元数姿态解算得到飞行器的姿态信息,再通过遥控器和主控板进行通信,利用串级PID控制算法驱动无刷电机实现四轴飞行器的稳定飞行。实验测试结果表明:该系统能够保证四轴飞行器的稳定飞行,有很好的实用价值。关键词:四轴飞行器;STM32;GY-86;互补滤波;四元数;串级PID中图分类号:V249文献识别码:A文章编号:2095-3771(2017)06-0027-06四轴飞行器属于一种小型飞行器,具有体积小、飞行高度低、灵活度高等众多特点,因而在空间小的区域飞行独具优势。在航拍、线路巡检、数据采集等军用与民用领域中,四轴飞行器均有着广泛的应用前景。由于四轴飞行器体积小、重量轻,在无风情况下能够正常飞行,但在天气恶劣的情况下,因其抗干扰能力差,非线性又十分复杂,以往的飞行控制方式并不能发挥理想的效果,因此,需要设计一种能够使四轴飞行器稳定飞行的系统。1四轴飞行器飞行系统工作原理四轴飞行器简单来讲是一个在空间中含有六个活动自由度[1],然而仅仅存在四个控制自由度的系统,所以此类飞行装置又被命名为欠驱动系统(唯有控制自由度和活动自由度完全相等之时才可以将其命名为完整驱动系统)。但仅针对姿态控制而言,它是通过完整驱动的方式进行运作的。为了保持飞行器的稳定飞行,在四轴飞行器上装有由3轴陀螺仪和3轴加速度计组建而成的惯性导航模块,从而能够准确的获取飞行器在任意时刻相对地面的各类飞行状态数据。飞行控制器利用特定的运算方式来确保飞行器在飞行过程中具有足够的旋转力和上升力,并利用专门配置的电子调控器来确保电机能够保持充足的能量输出,从而实现稳定飞行[2]。2四轴飞行器飞行系统硬件设计本系统硬件结构如图1所示,系统由STM32F407单片机、骨架、GY-86、电池等构成。其中骨架包括电机、桨翼、电调等。GY-86使用IIC总线的方式与主控芯片连接,利用其携带的3轴陀螺仪和3轴加速度计获取四轴飞行器的飞行姿态后,再通过遥控器来控制四轴飞行器保持稳定飞行。2.1主控芯片本系统采用STM32F407(168M主频)作为主控芯片,STM32F407芯片具有体积小、运算速度快、能耗低、调试模式多等特点。该芯片具有:A/D、D/A、SPI等若干功能,完全能够满足飞行器的各类客观需求[3]。2.2GY-86模块本系统采用GY-86模块,它包含了3轴陀螺仪,3轴加速度计等重要部件,通过一个特定的IIC接口衔接专门的数字传感器装置。在成功实现扩展以后就能够利用IIC接口把具体的姿态角数据传输至负责调控的芯片上[1]。除此之外,该模块为陀螺仪和加速度计专门配置了6个特定规格的ADC,从而把获取的模拟量转化为能够进行有效传输的数字量。为了跟踪各类速率不同的运动,传感器装张仲俊(1996—),本科,研究方向:电气工程及其自动化;汪材印(1977—),硕士,副教授,研究方向:计算机应用技术。基金项目:国家级大学生创新创业训练计划项目“基于STM32单片机的四轴飞行器飞行系统的设计”(201510379036)。·27·置的检测区间是可以进行调节的。陀螺仪能够进行检测的区间包括±250,±500,±1000,±2000°/s,而对于加速度计而言,其能够检测的区间包括±2,±4,±8,±16g[1]。3四轴飞行器飞行系统软件设计稳定的飞行控制系统需要结合准确的姿态角信息进行相应的调控,陀螺仪能够准确地获取有效信息,可是其对应的积分累积误差会随着时间的延长而不断扩大,单独的应用陀螺仪根本不能够满足飞行装置的客观需求。而加速度计却能够准确的获取横滚角和俯仰角的信息,磁力计也能够准确的获取偏航角的信息,并且它们都不存在任何累积误差,为飞行器的良好运作提供了可靠的数据。这3类数据具有十分突出的互补性,因而我们通过互补滤波算法对这3类数据进行有效的融合,从而优化系统的整体性能[4]。机体在运行时还容易受到某些干扰因素的影响,例如震动和电磁干扰等。所以传感器采集的各类信息都应进行图1四轴飞行器硬件结构图特定的处理,从而增加数据的可靠性。陀螺仪输出的信息是角速度,数据很大程度上表现为高动态性,可以通过均值滤波算法对陀螺仪获取的信息进行去干扰处理。除此之外,加速度计和磁力计所获取的信息都是低频信号,因其抗干扰能力差,我们可对此类信息通过滑动平均滤波和去极值滤波的方式进行专门的处理[4]。数据融合算法对应的具体结构详见图2。图2数据融合算法结构图3.1系统建模本系统定义地理坐标系(n系)和机体坐标系(b系)。XYZ为地理坐标系(“东-北-天”坐标),以X轴正方向为正东,以Y轴正方向为正北,以Z轴正方向为天;X'Y'Z'为机体坐标系,以X'轴正方向为航向。飞行器的姿态分别用横滚角,俯仰角,偏航角表示。n系和b系角度转换关系如图3所示。图3地理坐标系(n系)和机体坐标系(b系)角度转换关系·28·3.2姿态估计(四元数、互补滤波)式(1)由欧拉角求出四元数[5]:cos()cos()cos()sin()sin()sin()222222q0qsin()cos()cos()cos()sin()sin()

2222221=

q2cos()sin()cos()sin()cos()sin()222222q3cos()cos()sin()sin()sin()cos()

222222

式(2)从机体坐标系(b系)转换到地理坐标系(n系)的四元数旋转矩阵公式[5]:222

q0q12q2q3n

Cb=2(q1q2q0q3)

2(q1q3q0q2)

(1)2(q1q2q0q3)

222q0q12q2q3

2(q2q3q0q1)

2(q1q3q0q2)

2(q2q3q0q1)222q0q12q2q3

2(q1q3q0q2)

2(q2q3q0q1)222q0q12q2q3

(2)式(3)从地理坐标系(n系)转换到机体坐标系(b系)的四元数旋转矩阵公式[5]:222q0q12q2q3b

Cn=2(q1q2q0q3)

2(q1q3q0q2)

2(q1q2q0q3)

222q0q12q2q3

(3)2(q2q3q0q1)

由于惯性传感器固定在飞行器上,因而其测得的数据是基于机体坐标系。飞行器在飞行过程中,b系相对于n系会形成相应的角度,在姿态解算时,需要将b系的数据转换到n系下,其对应的四元数旋转矩阵可用式(2)表示。在机体坐标系上,加速度计测得的重力向量是axayazT,由陀螺仪数据积分推算出的重力向量是vxvyTvz,它们存在的误差向量从客观的角度来讲是陀螺仪积分后的结果与加速度计测量后的结果存在的误差。另外,向量间存在的实际误差可通过向量积的形式进行表达[4]:exay*vzaz*vyeyaz*vxax*vzezax*vyay*vx

所得叉积向量exeyezT(4)依然处于机体坐标系当中,并且叉积的大小和相应的陀螺仪积分误差之间具有十分明显的正比例关系,我们可通过它对陀螺仪进行专门的修正。因为陀螺仪获取的信息是对机体运动进行积分之后才得到的,因此对其采取的修正量必然会表现在机体坐标系的修正当中。本系统通过PI控制器优化了修正的实际效果,经过优化之后的误差向量是txtytzT,与陀螺仪取值gxgyTgz相加后即可得到修正的角速度wxwywzT[4]

。(5)wxgxtx

wygytywzgztz

互补滤波算法没有复杂的运算过程,实现过程相当简单和巧妙。通过互补滤波算法获得的姿态角误差也较小,并且其对应的精度远远超过卡尔曼滤波[4]。此外,它并未产生姿态漂移等问题,因此,选择互补滤波算法能够取得更为理想的效果。将向量wxwywzT[4]:代入式(6)四元数微分方程中,可由角速度得到增量四元数Q

与初始四元数Q相加后即可得到当前姿态四元数Q,即更新后的姿态四元数[4]:增量四元数Q

·29·0qq0qq1

==0.5*1Qqq223qq3q1q0q3q2q2q3q0q1q3

q2q1

q00wxwywz

(6)Q=Q+Q(7)式(7)运算得到的四元数应进行缓存操作,以便于算出加速度所对应的具体参考向量;另外,通过下述方法对获取的四元数实现归一化操作[6]:qiqi222q0q12q2q3(8)式(8)中i=0,1,2,3。由于四元数不能直观表达出飞行器的具体运行姿态,所以把它转化为角度形式,具体转换公式如下[6]:2

tan1(2(q0q1q2q3),12(q12q2))1

sin(2(q0q2q1q3)) tan1(2(qqqq),12(q2q2))

031223

(9)通过式(9)我们能够解出飞行器的具体运行姿态,通常来说,偏航角应通过磁力计进行特定的修正,可是因为本系统不分析偏航问题所以不考虑该误差。3.3姿态控制(串级PID)本系统采用了角度控制与角速度控制级联的方式组成的串级PID控制器。在串级PID算法中,角速度内环占有十分关键的地位。对物理模型展开系统性的研究后,我们可知导致系统稳定性不断降低的主要原因是角速度逐渐趋于不稳定的状态。有鉴于此,假如可以对系统对应的角速度展开有效的闭环控制,一定会优化系统所具有的稳态特性和动态特性[3]。另外,角度外环的功能很大程度上表现在其对姿态角的调控。串级PID对应的运算图和原理框图则如图4、图5所示。外环:输入的信息是角度,输出的信息是角速度。内环:输入的信息是角速度,输出的信息是PWM增量。调试串级PID时:先整定内环PID,再整定外环PI。图4串级PID运算图图5串级PID原理框图·30·4测试实验结果(1)硬件测试:首先,将飞行器按照规范流程进行拆解,用质量最小的部件和电路板根据配重的要求装配飞行器,同时装配保护圈。然后通过物理方法获取重心,从而让它的重心保持在飞行器对应的中心位置。利用电源对完成的电压转换器进行准确的检测,从而让它稳定地工作在既定的工作区间内,提升其稳定性。(2)软件调试:在对程序进行调试操作以前,先通过示波器获取STM32单片机的实际PWM输出情况,然后利用程序对飞行状态进行准确的模拟,从而获得PWM对应的稳定度。GY-86搭配PC端的上位机对数据进行仔细的检查,以便于展开准确的调试。

(3)硬件软件联调:通过在单片机上的编程对PWM进行准确的模拟,检测是否能够利用电机驱动飞行器成功起飞,经过反复的测试之后,获取飞行器上升时所对应的PWM值。GY-86通过IIC接口向单片机传输所测得的数据,同时PC端的上位机通过串口接收单片机处理过的数据来检验其是否准确。在无外界环境因素干扰的条件下,人为的给机体连续的扰动。

图6四轴飞行器俯仰角数据图图7四轴飞行器横滚角数据图由图6、图7可知,通过互补滤波算法对数据进行有效的融合后,融合数据的噪声明显小于原始数据,具有较高的平稳性,从而增强了系统的抗干扰能力。

(4)飞行测试:给飞行器通电,解锁后,通过遥控器慢慢推动油门,起飞后微调油门,使四轴飞行器保持一定的飞行高度,如图8所示。

在无外界环境因素干扰的条件下,分别于1000~2000ms和5000ms前后人为的给飞行器一个扰动。由图9可知,即使受到一定的扰动,飞行器也能很快恢复到最初的稳定状态。图8四轴飞行器飞行测试·31·图9四轴飞行器飞行时俯仰角和横滚角数据图通过系统的测试,设计的四轴飞行器飞行系统能够达到本次设计的目的,解决了飞行器飞行中存在的稳定性问题,保证飞行器的稳定飞行。

参考文献:[1][2][3][4]白秀军.基于ARM系统的四旋翼飞行器设计与实现[J].工业控制计算机,2016,29(2):42-44.王春贺.四轴无人机在武警部队的应用浅析[J].读书文摘,2016,(4):113.张天华.基于STM32F4系列单片机的四旋翼自主飞行器系统[J].电子制作,2016,(Z1):7-8.向少林,钱正洪,白茹,朱礼尧.基于互补滤波算法的四轴飞行控制系统设计[J].机电工程,2016,33(2):207-211,246.[5]黄圳圭.航天器姿态动力学[M].长沙:国防科技大学出版社,1997.[6]叶树球,詹林.基于PID的四旋翼飞行器姿态控制系统[J].计算机与现代化,2015,(5):117-120.TheFour-AxisAircraftDesignoftheQuadrotorSystemBasedon

STM32MCU

ZHANGZhong-junWANGCai-yin(SchoolofMechanicalandElectronicEngineering,SuzhouCollege,Suzhou234000,Anhui)Abstract:Tosolvetheproblemofstabilityexistingonthecurrentfour-axisair-crafts,aflightsystemofquadrotorbasedonSTM32hasbeendesignedonthebasisoftheresearchesonthetechnologiesofcomplementaryfiltering,quaternionandcascadePID.Inthesystem,theSTM32isusedasthemaincontrolchipwiththefirstdatameasuredbya9-axissensorGY-86(consistingof3-axisaccelerometers,3-axisgyroscopes,and3-axismagnetometers),andwiththeattitudeinformationoftheaircraftobtainedbyusingthequaterniontheory,andthroughtheremotecontrolandthemaincontrolboardforcommunication.CascadePIDcontrolalgorithmisusedtodrivethebrushlessmotortoachievestableflightofthequadrotor.Theresultsfromtheexperimentsshowthesystemcanensurethestableflightofthequadrotor,anditwillhaveaverygoodpracticalvalue.Keywords:Quadrotor;STM32;GY-86;complementaryfiltering;quaternion;CascadePID·32·

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务