四轴轴飞行器是微型飞行器的其中一种,相对于固定翼飞行器,它的方向控制灵活、抗干扰能力强、飞行稳定,能够携带一定的负载和有悬停功能,因此能够很好地进行空中拍摄、监视、侦查等功能,在军事和民用上具备广泛的运用前景。

四轴飞行器关键技术在于控制策略。由于智能控制算法在运行复杂的浮点型运算以及矩阵运算时,微处理器计算能力受限,难以达到飞行控制实时性的要求;而PID控制简单,易于实现,且技术成熟,因此目前主流的控制策略主要是围绕传统的PID控制展开。

1 四轴飞行器的结构与基本飞行原理

四轴飞行器结构主要由主控板和呈十字交叉结构的4个电子调速器、电机、旋浆组成,电机由电子调速器控制,主控板主要负责解算当前飞行姿态、控制电调等功能。

以十字飞行模式为例,l号旋翼为头,1、3号旋翼逆时针旋转,2、4号旋翼顺时针旋转,如图1所示。


图1 四轴飞行器结构图

参照飞行状态表1变化电机转速,由于四个电机转速不同,使其与水平面倾斜一定角度,如图l所示。四个电机产生的合力分解为向上的升力与前向分力。当重力与升力相等时,前向分力驱动四轴飞行器向倾斜角度的方向水平飞行。空间三轴角度欧拉角分为仰俯角、横滚角、航向角:倾斜角是仰俯角时,向前、向后飞行;倾斜角是横滚角时,向左、向右飞行;而倾斜航向角时,向左、右旋转运动,左(右)旋转是由于顺时针两电机产生的反扭矩之和与逆时针两电机产生的反扭矩之和不等,即不能相互抵消,机身便在反扭矩作用下绕z轴自旋转。

2 姿态解算

四轴飞行器运用姿态解算计算出空间三轴欧拉角。结构框架如图2所示,陀螺仪采样三轴角速度值,加速度传感器采样三轴加速度值,而磁力传感器采样得到三轴地磁场值,将陀螺仪、加速度传感器、磁力传感器采样后的数据进行标定、滤波、校正后得到三轴欧拉角度,其中陀螺仪和加速度传感器选用MPU6050芯片,磁力传感器选用HMC5883L芯片,采用IIC总线与主控板通信。


图2 姿态解算结构图

由于传感器存在器件误差,因此在使用前需要标定。陀螺仪在静止时,角速度为0;但实际情况由于器件误差并不为0,因此可在静止时采样500次数据,再求平均,得出偏移量,标定陀螺仪数据;加速度传感器可依据在静止时,三轴重力加速度平方和的开方为重力加速度的标定方程,利用最小二乘法求出标定偏移值和误差值进行标定。而磁力传感器校正,可将器件静置于桌面旋转一周找出最小值和最大值,通过电子罗盘校正计算公式计算出标定偏移值和误差值。

由于陀螺仪长时间采集角速度会有飘移,因此需要使用加速度传感器的值与磁力传感器的值进行校正。将加速度的测量矢量和磁场的测量矢量与参考矢量做叉积后相加

式(1)中:ex、ey、ez为两叉积之和,ax、ay、az为加速度的测量矢量,mx、my、mz为磁场的测量矢量,axref、ayref、azref为加速度的参考矢量,mxref、myref、mzref为磁场的参考矢量,参考矢量是通过实时四元数值与本次测量值计算出来。

再将叉积修正角速度漂移值:

式(2)中ωx(t)、ωy(t)、ωz(t)为角速度,kpex(t)为比例项修正,

为积分修正项。

将校正后的角速度通过二阶毕卡算法转化为四元数,公式如式(3)。

3 高度计算

高度计算是通过气压传感器采集的大气压值计算出来,将气压传感器采集值进行校正后,在通过温度二阶补偿,得到准确的大气压值,最后经过气压转换为高度公式

式(6)中Altitude为计算出来的实际高度,CurrentPressure为当前气压值,StartPressure为起飞之前气压值。气压传感器选用MS5611芯片,其中集成了温度传感器和气压传感器,采用IIC总线与主控板通信。

4 PID控制

4.1 双闭环PID控制

当四轴飞行器正常飞行时,突遇外力(风等)或磁场干扰,使加速度传感器或磁力传感器采集数据失真,造成姿态解算出来的欧拉角错误,只用角度单环情况下,使系统很难稳定运行,因此可以加入角速度作为内环,角速度由陀螺仪采集数据输出,采集值一般不存在受外界影响情况,抗干扰能力强,并且角速度变化灵敏,当受外界干扰时,回复迅速;同理,高度环中气压传感器同样也会受到外界干扰,引入z轴加速度环可有效避免外界干扰造成的影响,增强了系统的鲁棒性。

四轴飞行器双闭环PID控制,如图3、图4所示。角度作为外环,角速度作为内环,进行姿态PID控制;当需要定高时,高度作为外环,z轴加速度作为内环,进行高度PID控制。其中,PID输出为油门值,油门给定电子调速器值,电子调速器控制电机使空间三轴欧拉角和高度变化。


图3姿态PID控制总体流程图


图4高度PID控制总体流程图

PID控制算法采用位置式数字PID控制:

式(7)中u(t)为PID输出值,e(t)为期望值与实际值之差,为积分量,为微分量,kp,、ki、kd。为比例、积分、微分系数。

在将积分量,微分量离散化得到PID计算公式

式(8)中T为更新时间。

基于公式(8),姿态PID控制算法

式(9)为角度环PID计算公式,(10)为角速度环PID计算公式。AngelPIDOut(t)为角度环PID输出,AngelRatePIDOut(t)为角速度环PID输出,e(t)=期望角度一实际角度,e'(t)=AngelPIDOut(t) - 实际角速度。

同理高度PID控制算法:

式(11)为高度环PID计算公式,公式(12)为加速度环PID计算公式,AltitudePIDOut(t)为高度环PID输出,AcceleratePIDOut(t)为加速度环PID输出。e(t)=期望高度一实际高度,e'(t)=AltitudePIDOut(t) - (z轴加速度 - 重力加速度值)。



4.2 油门输出计算

PID输出值先经过限幅处理,再输出给油门,防止某些时刻输出油门值过大,造成过冲,使系统难以稳定,公式如下

AngelOut=AngelPIDOut(t)(限制范围 - 100到100) (13)

AltitudeOut=AcceleratePIDOut(t)(限制范围 - 10到10) (14)

式中AngelOut。为欧拉角输出值,AltitudeOut为高度输出值。

最后经过十字飞行模式油门输出公式,计算出4个电机输出油门

式(15)中throttlelOut到throttle4Out为油门1到油门4输出值,依据公式(13)输出的AngelOut分为三轴角度:pitchOut为仰俯角输出值,rollOut为横滚角输出值,yawOut为航向角输出值。

4.3 油门补偿

以十字飞行模式为例,PID控制条件为线性环境,而给出的油门值与转速的关系为非线性,且两对向电机再同一油门下转速存在差异。运用光电传感器测出不同油门量对应的转速,通过matlab软件绘制出该曲线,其中一对向电机油门与转速的关系如图5所示,两电机在相同油门下转速存在差异且不平行,因此将油门曲线分段,并通过计算公式

补偿油门值 =α(实际油门值 - β) (16)

进行油门补偿,式(16)中α、β为补偿偏移系数,得出曲线如图5(b)所示。



5 测试

本次测试姿态解算更新周期T ≈ 4 mS,PID控制更新周期T ≈ 10 ms,期望值为水平0度。将四轴飞行器控制仰俯角的一对电机固定住,另一对边能自由旋转,即能改变横滚角度,如图6所示。将横滚角倾斜到 - 70°,遥控器油门迅速推到1400,平衡后如图6所示。


图6 姿态PID控制测试

将四轴飞行器采集的欧拉角值通过无线模块NRF24L01发送到PC机上,接收的数据显示到上位机进行分析。上位机显示横滚角波形如图7所示,波形图横坐标单位为10 ms,纵坐标单位为度。


图 7双闭环PID控制横滚角波形图

由图7可知,横滚角波形经过一大波一小波震荡后近似归为期望值零点,且超调量较小,系统很快进入稳定状态。

其他欧拉角测试结果类似。

在加入双闭环高度PID控制,四轴飞行器在室外飞行效果如图8所示,可以看出飞行器飞行稳定,达到设计要求。


图8 室外飞行测试

6 结论

主要研究了基于四轴飞行器的双闭环PID控制算法。在姿态PID控制和高度PID控制中分别增加了内环角速度环和加速度环,不仅抗干扰能力强,并且回复迅速,增强了系统的鲁棒性。

四轴飞行器飞行原理与双闭环PID控制的更多相关文章

  1. 两轮自平衡小车双闭环PID控制设计

                                                                                            两轮自平衡小车的研究意义 ...

  2. 一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制)

      PID控制应该算是应用非常广泛的控制算法了.小到控制一个元件的温度,大到控制无人机的飞行姿态和飞行速度等等,都可以使用PID控制.这里我们从原理上来理解PID控制. PID(proportion ...

  3. 四轴飞行器1.5 各种PID对比分析及选择

    原创文章,欢迎转载,转载请注明出处 这篇文章主要介绍我对PID的理解,以及选择PID算法的过程. 一 PID的理解和学习过程 二 飞控的PID效果 先上个飞控PID的响应的视频:介绍在后面 地址:ht ...

  4. 四轴飞行器1.3 MPU6050(大端)和M4的FPU开启方法

    四轴飞行器1.3 MPU6050(大端)和M4的FPU开启方法  原创文章,欢迎转载,转载请注明出处      最近时间花在最多的地方就是STM32的I2C上了.之前就知道STM32的I2C并不好用, ...

  5. 四轴飞行器1.2.2 RT-Thread 串口

    四轴飞行器1.2.2 RT-Thread 串口        本来是打算说根据RT-Thread的设备管理提供的驱动接口些串口驱动的,但是仔细一看,我去,串口驱动写好了,只需要调用就可以了.下面我们说 ...

  6. 四轴飞行器1.1 Matlab 姿态显示

    四轴飞行器1.1 Matlab 姿态显示 开始做四轴了,一步一步来,东西实在很多,比较杂.先做matlab上位机,主要用来做数据分析,等板子到了可以写飞控的程序了,从底层一层一层开始写..希望能好好的 ...

  7. 四轴飞行器1.7 NRF24L01P无线通讯和改进型环形缓冲(转)

    源: 四轴飞行器1.7 NRF24L01P无线通讯和改进型环形缓冲

  8. 从零开始的四轴飞行器-开篇flag

    在这里立下flag,我要理解学会四轴飞行器的控制方法.

  9. PID控制最通俗的解释与PID参数的整定方法

    转自->这里 PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解.阅读本文 ...

随机推荐

  1. 特征提取算法(4)——LoG特征提取算法

    目录 1.介绍 2.LoG原理 3.数学原理 4.模板性质 1.介绍 LoG(DoG是一阶边缘提取)是二阶拉普拉斯-高斯边缘提取算法,先高斯滤波然后拉普拉斯边缘提取. Laplace算子对通过图像进行 ...

  2. Nginx与Lua开发

    1.Lua及基础语法 Nginx与Lua环境 场景:用Nginx结合Lua实现代码的灰度发布 1.Lua 是一个简洁.轻量.可扩展的脚本语言 2.Nginx+Lua优势 充分的结合Nginx的并发处理 ...

  3. spring学习笔记之---IOC和DI

    IOC和DI (一)IOC (1) 概念 IOC (Inverse of Control) 反转控制,就是将原本在程序中手动创建对象的控制权,交给spring框架管理.简单的说,就是创建对象控制权被反 ...

  4. Centos7 yum安装OpenLDAP(普通用户可以更改密码)

    环境 系统版本:centos7.4 openldap版本2.4 安装和配置 安装并启动服务 安装: yum install openldap openldap-servers openldap-cli ...

  5. 个推基于 Zipkin 的分布式链路追踪实践

    作者:个推应用平台基础架构高级研发工程师 阿飞   01业务背景   随着微服务架构的流行,系统变得越来越复杂,单体的系统被拆成很多个模块,各个模块通过轻量级的通信协议进行通讯,相互协作,共同实现系统 ...

  6. 关于Idea热部署,修改代码不需要重启tomcat

  7. sip/sdp/rtp/rtcp/rtsp间的关系

    用一句简单的话总结:RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步. 转自该博客:http://blog.csdn.net/xdwyyan/article/detai ...

  8. vue 拖动调整左右两侧div的宽度

    原文链接:https://www.cnblogs.com/layaling/p/11009570.html 原文是左中右三种情况的拖动.由于项目需要,我删除掉了右边的,直接左右区域拖动调整div宽度 ...

  9. 如何将阿里云上的RDS 备份的mysql数据还原到windows环境中

    一.本地mysql数据库创建与备份库一致的数据库名,如testdb: 二.本地创建与备份库一致的数据库表,记得设置ALTER TABLE tableName1 ROW_FORMAT = compact ...

  10. (二)Maven之坐标和依赖

    目录 坐标 依赖 目录 坐标 引言: 坐标是依赖管理的基础,是构建的唯一标识. 组成元素: 使用groupId.artifactId.version.packaging.classifier标签即可定 ...