APP下载

基于MSP432单片机的四旋翼无人机控制系统设计

2022-12-02徐晓丹袁双全桂逸凡

仪器仪表用户 2022年12期
关键词:巡线遥控器旋翼

徐晓丹,邓 鹏,袁双全,桂逸凡

(荆楚理工学院 电子信息工程学院,湖北 荆门 448000)

0 引言

随着国家的日益强盛,科技飞速发展,新兴科技不断涌现,四旋翼无人机的出现便是众多高科技中的杰出代表。四旋翼无人机主要由4 个桨叶交叉形成十字结构,通过桨叶旋转提供升力进行飞行,遥控器控制其飞行方向。四旋翼无人机控制系统国外早有研究,一些著名高校和创业公司都有四旋翼无人机控制系统的自主研发,利用相关的控制算法,结合多个传感器建立具有独特控制性。四旋翼无人机结构简单,具有横滚、俯仰、偏航、悬停、垂直等多种飞行模式,很大程度上满足了用户的需求。控制系统的作用在四旋翼无人机的飞行过程中十分关键[1,2]。在本文中,以MSP432 微控制器为核心,利用MPU6050 传感器采集四旋翼无人机的姿态数据,改进传统PID 控制算法,完成四旋翼无人飞行器飞行控制系统设计。

1 系统总体方案设计

本文的四旋翼无人机主要由MSP432 单片机、遥控器、控制器、传感器、IMU 解算单元、电源以及其他组件组成。MSP432 作为飞行控制器,接收传感器提供的信息进行分析和判断,输出PWM,控制4 个电机的转动,控制飞行器的飞行姿态。传感器模块包括IMU 解算单元、高度感应器、水平感应器、巡线感应器等,传感器给出无人机姿态信息、陀螺仪值、高度值等,通过解算后融入到整个IMU 飞控单元中,得到无人机在空间中的一个相对稳定的位置,无人机下一步的飞行方向在接收到位置信息之后进行控制。遥控器负责把遥控信息输入到控制器中,实现一键起飞功能,必要时还可以切换至手动控制状态。系统整体框图如图1。

图1 系统整体框图Fig.1 Overall system block diagram

2 系统硬件设计

系统硬件主要由F260-T432 底板、传感器模块、控制器、远程控制器、马达控制等几大部分构成。Open MV 作为巡线控制器的数据来源控制整个无人机飞行。IMU 解算单元解算出信息后,首先给姿态控制器去控制无人机稳定飞行,还会给出水平信息,与光流数据融合后控制水平控制器。高度控制器根据激光模块测出距离后将数据进行融合,控制无人机飞行高度。

2.1 F260-T432底板设计

F260-T432 底板搭载TI 公司的MSP432 系列开发板[3,4]。飞行控制器使用MSP432P401R 核心板作为主控,MSP432主要应用于对功耗和性能要求都比较严苛的应用领域,其主要由F260-T432 底板、传感器模块、控制器、远程控制器、马达控制等几大部分构成。MSP432 中的MCU 是32位,相较于16 位RISC(精简指令集)的MSP430 单片机,MSP432 单片机采用32 位RISC,性能有很大提升,具有强大的处理能力,极低功耗,丰富的芯片外设和高效灵活的开发环境。作为一个极低功耗、高性能的MCU,MSP432单片机的应用前景十分广阔。

2.2 传感器模块

传感器模块由IMU 解算单元、高度传感器、水平传感器和巡线传感器组成,给无人机提供所有传感信息。在IMU 求解单元中,得到了3 种信息:加速度信息、陀螺仪信息和纠正无人机飞行姿态的温度信息。陀螺仪信息用来被矫正,温度信息用来做恒温控制,IMU 解算利用MPU6050 采集四旋翼无人机的姿态数据,以相对平稳的姿势使无人机在空中飞行;高度传感器由气压计和红外激光传感器组成,实现定高功能,让无人机稳定飞行在某一确定高度;水平传感器搭载匿名光流模块,通过水平速度、垂直速度的识别,实现无人机定点悬停、定高等功能。水平传感器由一个异步串口总线用来连接其他控制器,一个USB 口用来连接上位机,方便调参;巡线传感器采用OpenMV3 摄像头模块,OpenMV3 摄像头能进行机器视觉识别,实现无人机循迹功能。通过Micropython 语言,实现想要的逻辑的摄像头内置图像处理算法,使用外置终端触发拍摄或执行算法都很容易,还能利用算法的结果控制I/O引脚。图2为传感器模块图。

图2 传感器模块图Fig.2 Sensor module diagram

2.3 姿态控制器

姿态控制器包括高度控制器、水平控制器和巡线控制器[5-7]。姿态控制器是最基本的控制器,让无人机以一个相对稳定的姿态在空中飞行;高度控制器可以实现测高功能,使无人机稳定地飞行在一定的预期高度上;水平控制器根据光流数据控制无人机水平方向,向左向右或是保持不变;巡线控制器根据Open MV 传回来的信息实现巡线控制。

2.4 遥控器

本设计采用T8F8 遥控器,内置发射机,传输频率为2.4GHz,适配R8F8 接收机,采用S-BUS 信号输出,其他通道能输出对应PWM 信号,方便配合其他传感器使用。

遥控器的两种模式:姿态模式与定点模式[8]。姿态模式中,由油门直接控制,Pitch 控制俯仰角度,Roll 控制横滚角度,Yaw 控制航向角度;在定点模式中,高度信息由油门来控制,遥控器模块图如图3。

图3 遥控器模块图Fig.3 Remote control module diagram

2.5 电机控制

本设计选取了一种以无人机稳定飞行为目标的无刷电动机作为无人机动态源,无刷直流马达适合四旋翼飞机,其体积小、效率高、稳态转速误差小。无刷电机要进行驱动,无刷电机的驱动相对来说比较复杂,需要单独的MCU控制三相桥驱动。遥控器和巡线控制器分别控制姿态和水平控制器。根据速度采样定理,电机控制模式采用400Hz的PWM 波控制电机,能精准控制电机。

3 系统软件设计

软件部分主要通过地面控制实现其飞行控制,四旋翼无人机的姿态信息、控制解算、姿态控制3 大模块形成闭合的控制回路,保证了即使在外界环境的干扰下也能快速反应,进行自我调节,确保稳定飞行。

3.1 MPU6050姿态信息采集

MPU6050 姿态信息采集没有组合式陀螺仪与加速器轴间差的问题,安装空间相对于多组件方案有所减小。6 轴传感器MPU6050 是整合6 轴运动处理的组件,内带3 轴陀螺仪和3 轴加速计,利用II C 接口将全6 轴进行整合,并利用自带的数字运动处理器DMP 硬件加速引擎与外接磁力传感器相结合。

3.2 MPU6050的四元数姿态解算

无人机姿态解算有欧拉角、方向余弦、四元数等,它们各有优缺点。欧拉角法在计算时存在90°奇点,存在一个超越函数,难以计算。方向余弦法状态维数高,求解时会产生歪斜、飘移等误差,计算量大,效率低。旋转矢量法的双值性,在解算时会产生误差,产生奇异矩阵。这几种姿态解算方法中,四元数法变复杂的三角函数运算为简单的线性化系统,具有计算量小、精度高,可避免奇异性等优势。

为了更好地描述无人机在空间中的位置,如图4,建立惯性坐标系E 和机体坐标系B。

图4 惯性坐标系E和机体坐标系BFig.4 Inertial coordinate system E and body coordinate system B

根据无人机飞行时4 个桨叶不同的旋转顺序,分别对应不同的旋转矩阵,依据偏航角Ψ、俯仰角θ、横滚角φ的顺序,分别绕OEZE-OEYE-OEXE旋转,依次旋转的矩阵连乘就得到了旋转矩阵REB。

矩阵REB的转置矩阵REB就是将机体坐标系B 转换成惯性坐标系E:

当θ=±π/2 时:

此时横滚角的旋转轴与偏航角的旋转轴发生重合,失去了一个自由度。把四元数和欧拉角联系起来就可以,表示其旋转为:

旋转矩阵表示为:

联立式(1)和式(5)得:

3.3 PID控制系统设计

PID 算法原理简单,通过调整3 个单元的增益Kp,Ki,Kd实现其特性,鲁棒性强,控制精度相对较高,传统PID控制算法适用于线性且动态特性不随时间变化的系统,PID控制律算法表示为:

其中,Kp为比例增益,Ki为积分增益,Kd为微分增益,u(t)为控制量(控制器输出),e(t)为被控量与给定值的误差[9]。

PID 控制适用于许多控制问题,在参数调整好后具有不错的效果,然而在一些应用下效果不佳,通常无法提供最佳的控制。PID 控制的主要问题在于其是线性对称的,在非线性的系统中,其效果可能会有变化。由于无人机属于非线性不稳定系统,在实际飞行环境不确定情况下,传统PID 控制器无法适应四轴飞行器的非线性系统。本文改进传统PID 算法,引进串级PID 控制器控制无人机的飞控系统。

将两个PID 控制器组合在一起就是串级PID 控制器,外环控制器的输出赋给内环控制器的输入,减小误差,满足非线性条件。内部的PID 控制器直接对目标值进行控制,外部的PID 控制器用来快速逼近目标值。与传统PID 控制算法相比较,串级PID 控制使时间常数减小,振荡周期缩短,提高系统的运行效率,增强飞控系统的稳定性。图5是串级PID 控制的原理图。

图5 串级PID控制原理图Fig.5 Schematic diagram of cascade PID control

串级PID 控制器在使用时,外环控制无人机的姿态角,达到超前控制的快速响应;内环作为角速度环控制无人机,实现对角速度的控制,提高无人机的飞行稳定性。

在串级PID 控制系统建立后,利用MATLAB 对四旋翼无人机进行仿真控制,利用PID Tuner 工具箱整定参数并进行对比验证。调试串级PID 时先把外环去除,将外环比例增益Kp设置成1。在调整内环Kp时将Kp逐渐增大,再拨动飞机,此时飞机会逐渐开始震荡,当飞机能快速震荡以后,再缓慢调小Kp,将震荡减小。接着调整内环Kd,缓慢增加Kd,直到飞机抖动逐渐减小,如果增加到一定程度,再次出现震荡,则表示Kd过大,此时只要减小Kd,使飞机保持轻微震荡即可。再调整内环Ki(方法同Kd),缓慢增加Ki,直到消除最后轻微震荡,此时飞机可以快速抵抗角度偏移。

在整定外环Kp时,缓慢增大外环Kp,直到飞机能快速响应打舵,并且使飞机不再震荡。内环Kp,Ki,Kd大了都会震荡,且震荡频率p

图6 PID Tuner工具箱参数整定图Fig.6 Parameter setting diagram of PID Tuner toolbox

通过在MATLAB 上仿真PID,基本了解串级PID 的实际作用。Kp要选取合适值,过大会产生震荡,过小会产生超常量,从小到大调节缓慢。太大的Kd值会导致毛刺抖动,太小则会出现异常。Ki值大了后,虽然调节很快,但也会产生过冲,出现尖峰脉冲,小了导致调节很慢,可能无法调试达到稳定状态。

总结以上三点,得出以下规律:在调试PID 时,Kp从小到大调试,Kd从小到大调试,Ki从小到大调试。每次只调一个参数,直到最满意的时候,再调下个参数。表1给出了PID 的参数。

表1 PID参数Table 1 PID Parameters

4 姿态飞行测试

首次飞行前,需要检测传感器数据是否正常,姿态解算是否正常以及电机转向和桨叶是否正常。检测传感器数据是否正常主要检查加速度计和陀螺仪数据是否出现全部数据为0 的情况,传感器静态校正后数据是否刚好满量程。电机转向检查是否正常,根据发电机转向俯视飞机右上角电机逆时针转动为标准,由于相邻电机具有相反转向,对角电机具有相同转向,所以电机序号要与定义的相同。

利用MATLAB 进行模拟,验证PID 控制系统效果,选择四旋翼无人机的内部变量配置见表2。

表2 四旋翼无人机内部变量配置Table 2 Internal variable configuration of quadrotor UAV

5 结语

本文研究的四旋翼无人机,以MSP432 微控制器为核心,结合硬件和软件分析实验,通过MPU6050 传感器信息采集与数据处理,结合无人机飞行姿态,改进传统的PID控制算法。四旋翼无人机完成飞控系统设计采用MATLAB仿真模拟进行参数整定,实现姿态探测。通过多次对无人机的飞行控制系统测试和试验,验证了基于MSP432 单片机的四旋翼无人机控制系统的可行性。

猜你喜欢

巡线遥控器旋翼
基于共振磁耦合供电及电磁传感定位的无人机智能巡线技术与应用
改进型自抗扰四旋翼无人机控制系统设计与实现
基于移动互联网的智能化巡线管理系统的建设与应用
我是“糊涂虫”
大载重长航时油动多旋翼无人机
时间遥控器
爸妈有个“遥控器”
巡线工的春天
基于STM32的四旋翼飞行器的设计
行走的飞行遥控器