粒子群优化的四旋翼PID控制系统

2019-06-28 01:52王一奇余红英
微特电机 2019年6期
关键词:旋翼飞行器粒子

王一奇,余红英

(中北大学,太原 030051)

0 引 言

四旋翼是一种以远程控制或者机内程序控制的飞行器[1],多年来一直是航空领域的研究热点。在过去15年里,无人航行器开始用在空中、海上、太空、地面各种军事以及民用任务中,受到人们的高度重视。近年来我国的四旋翼发展步伐也逐渐加快[2],有很多企业完成了四旋翼飞行器的商业化,如大疆、小米等[3]。

四旋翼的小巧灵活使它拥有很好的反监视、反侦查能力。与常规的飞行器相比,四旋翼飞行器更加经济,并且具有较高的能源利用率。目前,四旋翼在飞行时间上仍有不足,但随着新型材料工艺和微电子传感器工艺的不断进步,这一难关终将被攻克。四旋翼在众多领域中都占据一席之地,但仍然有许多技术不成熟,目前主要研究的方向集中在以下几个方面:四旋翼飞行器的PID控制;四旋翼飞行器相关传感器以及新材料工艺的开发[4];动力与能源。

1 系统控制与优化原理

1.1 四旋翼飞行器的PID控制

四旋翼本质上是一个欠驱动系统,它拥有6个自由度,因此四旋翼飞行器的控制一直是一个难点[5]。现在常见的控制算法有非线性控制、模糊控制以及PID控制[6],其中非线性控制能够较好地进行四旋翼飞行器姿态控制,但因为非线性控制器对模型的准确度要求比较高,而四旋翼飞行器的一些参数无法精确地测量得到,所以对于模型准确度要求不高、拥有较强适应能力的PID控制器在四旋翼控制上得到了广泛的应用。

1.2 粒子算法原理

在D维空间中搜索目标,由n个粒子组成的一组粒子,每个粒子是D维矢量,它的空间位置表达式为xi=(xi1,xi2,…,xiD),i=1,2,…,n。每个粒子在指定空间中的位置是受控对象优化问题的解决方案[7]。第i个粒子的飞行速度是D维空间矢量,记为vi=(vi1,vi2,…,viD);具有最佳适应值的第i个粒子的位置被记录为个体的历史最佳位置,记为pi=(pi1,pi2,…,piD);整个粒子群的最优位置被记录为全局历史最佳位置,记为pg=(pg1,pg2,…,pgD),粒子群的进化方程可写成:

vij(t+1)=vij(t)+c1r1(t)[pij(t)-xij(t)]+

c2r2(t)[pgj(t)-xij(t)]

(1)

xij(t+1)=xij(t)+vij(t+1)

(2)

式中:下标j定义为粒子的第j维;下标i定义为粒子i;t定义为第t代;c1,c2为加速常量,通常在(0,2)间取值;r1和r2是算法生成的0~1之间的随机数。从式(1)和式(2)可以看出,c1为调节飞向其最佳位置的粒子的步长[8],c2为调节粒子飞入全局最佳位置的步长[9]。

2 粒子群算法设计

2.1 粒子群算法流程

基本粒子群算法的流程如下:

(1) 初始化粒子组的值,并给每个粒子一个随机的初始值[10]。

(2) 根据目标返回性能指标,计算每个粒子的当前适应度值。

(3) 对每个粒子,将其适应值与历史最佳适应值进行比较。

(4) 对于每个粒子,对比它的适应值和整体粒子群到达的最优位置的适应值,如果其得到优化,那么把它的适应度值作为群体最优[11]。

(5) 根据式(1)和式(2)计算粒子的速度和位置。

(6) 如果达到足够好的解决方案或操作达到最大迭代次数,则结束,否则转到步骤(2)。

2.2 性能指标函数选取

在参数优化问题中有一个性能指标函数。不同的目标函数可以清晰地反映系统的质量,具有计算简单的优点。当然,选择不同的目标函数会导致同一系统的不同优化结果[12]。

目标函数的选择分为两种:一种是基于系统输出响应特性的特征目标函数;另一种是误差类型的目标函数,它将预期响应与实际响应之间的差异函数作为目标函数。误差类型目标函数本质上是对特征目标函数的数学分析,因此误差类型目标函数可以表现出系统的性能。

误差绝对值积分型目标函数的表达式:

(3)

这种优化方法有许多优点:加入绝对值的方法解决了正负问题,e(t)在过程中的缺点得到了纠正;加了时间权重t之后,还可以基本消除过程后期发生的错误。因此,本文选择误差绝对值积分型目标函数进行参数优化。

3 粒子算法优化PID的设计

3.1 Simulink仿真模型的建立

由四旋翼数学模型可知[13],输出响应都是二阶导数,因此在被控对象后加二次积分,可以得到X轴位移,Y轴位移,Z轴高度,滚转角φ,俯仰角θ,偏航角ψ的输出响应。通过四旋翼的运动方程可知,对四旋翼建模所需的参数包括:质量、机臂长度(轴距)以及四旋翼的三轴转动惯量。同时为了更完整地建立四旋翼飞行器的模型,将陀螺效应也考虑进去。由于实验条件的限制,不能对所有的飞行器参数进行测量,但参考并选取了不失一般性的参数,仍然可以验证控制器的对比分析,并得出正确的结果[14]。故采用如表1所示参数,其中重力加速度取g=9.8 m/s2。

表1 四旋翼飞行器参数

将建好的四旋翼数学模型写入到model faction模块中,使用临界比例法来确定初始的PID参数[15],得到各通道的PID参数如表2所示。

表2 仿真参数取值表

3.2 加入优化算法的模型改进

在Simulink仿真环境下运行,实现四旋翼PID控制的粒子群优化的流程图如图1所示。

图1 与Simulink结合的粒子群算法

依照粒子群优化算法流程编写程序,由于存在4个输入量,即使用了4个PID控制模块,故需要分别对4个PID模块的参数进行粒子群算法优化。在原有四旋翼飞行器模型基础上分别衍生出4个模型,它与原有模型相同,只是每个模型分别返回高度、滚转角、俯仰角、偏航角的性能指标。

在Simulink环境下仿真,将粒子群算法生成的参数Kp,Ki,Kd分别赋值给4个PID模块,使用sim命令直接运行对应模块,得到性能指标。

3.3 优化后仿真结果

编写算法程序,在MATLAB软件中运行算法代码,以俯仰角控制为例,运行优化俯仰角响应的程序,得到仿真结果如图2和图3所示。

依次得到优化后的各PID参数如表3所示。

设置优化后的参数,再次运行模型,对比2次仿真结果,比较优化前后的图形如图4所示。

图2 俯仰角响应最优个体适应值

图3 俯仰角响应PID参数

KpKiKdZ605434φ305.630θ301.530ψ30430

(a) Z轴高度

(b) 滚转角

(c) 俯仰角

(d) 偏航角

通过分析仿真结果发现,Z轴高度响应的系统超调量由优化前的31%降低到11%,稳态误差由5.2%升到5.6%,几乎为零,超调时间1.54 s,几乎无变化;滚转角超调量由优化前的15.1%升高到16.4%,稳态误差由2.6%降到1.7%,几乎为零,超调时间由0.8 s降到0.1 s;俯仰角超调量由优化前的14.2%升高到15.8%,稳态误差由2.8%降到2.3%,几乎为零,超调时间由0.9 s降低到0.1 s;偏航角超调量由优化前的14%升高到15%,稳态误差由2.9%降低到1.7%,几乎为零,超调时间由1.0 s降低到0.2 s。结果表明,粒子群算法对PID控制系统有一定的优化作用。

4 结 语

本文提出了采用粒子群优化的四旋翼PID控制,通过粒子群优化算法对PID参数进行优化,优化后响应时间短、超调量小,取得了较好的效果。但本文还存在一些不足,如不能直接使用粒子群对Simulink模型进行优化。主要原因为在模型中有S-Function模块,运行时需要调用m函数,使得系统的运行时间较慢,而且在进行粒子群优化时需要多次迭代,使粒子群优化需要的时间更长。

猜你喜欢
旋翼飞行器粒子
高超声速飞行器
碘-125粒子调控微小RNA-193b-5p抑制胃癌的增殖和侵袭
改进型自抗扰四旋翼无人机控制系统设计与实现
花样旋翼大秀场
大载重长航时油动多旋翼无人机
基于膜计算粒子群优化的FastSLAM算法改进
基于STM32的四旋翼飞行器的设计
Conduit necrosis following esophagectomy:An up-to-date literature review
复杂飞行器的容错控制
问:超对称是什么?