一种改进的粒子群算法的分数阶控制研究
2018-10-15韦宏利陈超波
兰 歆,韦宏利,陈超波
(西安工业大学 电子信息工程学院,陕西 西安 710021)
0 引 言
随着自动控制的发展,及其在工业、农业、交通运输和国防等各领域应用的不断提高,高精度的控制也逐步提升。倒立摆是一个非线性、多变量、强耦合、不稳定的高阶系统,具有形象、直观、结构简单、物理参数和形状易于改变、成本低廉等优势。在控制理论发展过程中,将创新的控制算法应用到倒立摆系统的控制上,可验证该控制理论的性能,评判它在实际应用中的可行性,并对各种方法的控制性能进行对比,从而提出控制效果更优的控制算法。倒立摆系统控制的方法有:PID控制[1]、状态反馈控制[2]、模糊控制[3]、拟人智能控制[4]、滑模变结构控制[5]等等。
分数阶微积分(fractional-order calculus)是传统整数阶微积分的广义形式,两者同时产生。分数阶微积分,指微分、积分的阶次是任意的也可以是分数的,优于整数阶。分数阶微积分在科技、工程和工业等领域的研究和应用不断增加。分数阶控制系统可以用时域、频域、复域进行表示,也可通过稳定性、鲁棒性、可观性、可控性等来分析。其中对分数阶具有很大影响的是Igor Podlubny教授提出的PIλDμ[6]。分数阶PID不仅是从整数阶扩充到分数阶,同时比传统的PID控制多了2个可调参数:积分阶次λ和微分阶次μ,这相当于增加了两个维度,更便于调控[7-13]。
随着PIλDμ的提出及广泛应用,对其参数寻优方法的研究受到了研究者的青睐。Vinagre[14]提出了基于相角裕度和幅值裕度方法,还提出了极点阶数搜索法(即通过估计K来搜索一对较优的极点在时域上)。文献[15]采用对称优化方法改进了相角裕度和幅值裕度。文献[16-17]采用3种方法来研究PIλDμ的参数整定。上述方法都有一个共同的特点,即控制器参数都通过大量的公式推导得出,计算量相当大且繁琐复杂。文献[18]在PIλDμ设计中加入粒子群算法,简化了结构以及参数设置,同时拥有非常强大的全局优化水平且便于实现,但是未能改善PSO算法易陷入局部最优和收敛效率低等问题。
在上述研究基础上,文中提出一种CAPSO算法,结合自适应调节惯性权重的算法和混沌粒子群算法,以避免算法的局部收敛、提高算法的精确度。
1 倒立摆数学建模与分析
文中倒立摆系统描述中涉及的符号、物理意义及相关数值如表1所示。
表1 直线一级倒立摆的参数指标
倒立摆受力分析如图1所示。
由图1可得:
(1)
Fh=Fg·cosα
(2)
Fs=Fg·sinα
(3)
对摆杆水平方向的受力进行分析可得:
(4)
对摆杆垂直方向的受力进行分析可得:
(5)
图1 倒立摆受力分析
基于力矩平衡方程得:
Fglsinαcosθ+Fglcosαsinθ+
(6)
化简得:
假设θ<<1,则可以进行近似处理:
(7)
(8)
方程化为:
令Ff=Fg(-sinα-θcosα),则上式化为:
(9)
代入实际数据后,得到:
(10)
忽略Ff,得到如下系统的微分方程:
(11)
(12)
(13)
2 分数阶PID控制器
2.1 分数阶微积分基本定义
(14)
Grünwald-Letnikov分数阶微积分定义:对于任意实数m>0,整数部分为[m](即[m]为小于m的最大整数),则函数f(t)的α阶微积分为:
(15)
其中
Riemann—Liouville分数阶微积分定义:
(16)
其中,m-1<α Caputo分数阶微积分定义: 其中,m-1<α PIλDμ控制器包括积分阶次λ和微分阶次μ,若λ=μ=0,实现P控制器,若λ=1,μ=0,实现PI控制器,若λ=0,μ=1,实现PD控制器,若λ=μ=1,实现PID控制器。若λ、μ为任意实数或者复数,得到分数阶控制器为: G(s)=Kp+Kis-λ+Kdsμ (18) PIλDμ控制器设计过程中需要先进行数值实现。文中利用Oustaloup[19]逼近算法进行离散化处理后进行数值实现。对于分数阶微积分算子的数值实现是Oustaloup滤波器[15]在频率域内,对Dα进行近似处理。Oustaloup滤波器的传递函数为: (19) 滤波器零极点和增益如下: (20) (21) 粒子群优化算法(PSO)[20-23]在求解优化问题时,每个问题的解被看作一个个的微粒。假设在一个D维搜索空间中,由N个粒子组成的种群中第i个粒子在D维搜索空间的位置Xi(k)=(Xi1(k),Xi2(k),…,Xid(k))T。基于目标函数中的每个粒子位置表示为pi=(pi1,pi2,…,piD)T,它所对应的适应度在第i个粒子的速度Vi(k)=(Vi1,Vi2,…,Vid)T,其个体最优位置为种群的群体最优位置pg=(pg1,pg2,…,pgD)T,且1≤d≤D,1≤i≤N。则更新粒子的速度和位移: vid(k+1)=ω(k+1)vid(k)+a1r1[pid(k)- xid(k)]+a2r2[pgd(k)-xid(k)] (22) xid(k+1)=xid(k)+vid(k+1) (23) 其中,假定粒子的编号是i=0,1,2…;a1、a2为学习因子(通常取值为2);r1、r2为分布在[0,1]区间的随机数。 针对PSO算法的缺陷,提出一种基于Logistic混沌搜索机制的粒子群算法,以提高粒子群的多样性和全局搜索能力。在该算法中,初始化混沌有助于增加粒子种群的多样性,而且混沌搜索可避免粒子陷入局部最优。在文献[20-24]中提出的各种混沌搜索算法都可以增强局部搜索能力。当粒子发生早熟时,由下式来更新位置变量: yi+1=4y1(1-yi) (24) (25) 其中,yi∈[0,1]是混沌状态处于系统的第i个变量;δ是决定变异的一个范围。 加入自适应调整策略,既可以对惯性权重进行自适应调整,又保证了局部搜索和全局搜索之间的相互协调。在相关文献中提出了惯性权重关于时间的线性递减自调整策略,但在实际搜索时ω是非线性的过程,所以不能反映实际的优化搜索能力。对此,文中提出对ω的动态自调整策略,不仅可以控制粒子速度,而且还能平衡算法的全局搜索和局部搜索性能。具体调整方法如下: (26) 其中,ωmax和ωmin分别为惯性权重的最大值和最小值;itermax和itermin分别为最大的迭代次数和最小的迭代次数。 当开始迭代时,迭代次数越小,惯性权重ω越大,粒子的运动速度、收敛速度都变快,从而易于全局搜索;反之,可将其作为局部搜索。 适应度函数可作为PSO算法优化搜索的基本依据。文中采用的参数选择的目标函数是常规的ITAE性能指标。为了得到它的最小值,ITAE优化法是由系统绝对值误差与时间的乘积的积分进行表示,即适应度函数如下: (27) 其中,假设每个粒子的位置都由一个5维向量表示,那么分数阶控制器的参数向量表示为x=(kp,ki,kd,λ,μ)。根据改进的粒子群算法进行寻优而得到的全局最优解,也是控制器参数整定的最优解。 利用CAPSO算法整定PIλDμ参数的步骤如下: Step1:将参数进行初始化。即随机生成粒子的参数,如N、itermax、ω。 Step2:采用混沌的方法初始化xi、vi,将PIλDμ参数设为变量xi,在遍历范围内对xi、vi进行随机初始化。由式27计算fi(x),并与pi进行对比。若fi(x) Step3:由式26调整ω,再由式24和式25更新xi、vi。 Step4:由式27计算更新后的适应度值,新粒子的个体和所处全局的最优位置,可得vt和xt。 Step5:判断是否到达itermax。当iter≥itermax时,转至Step7,否则转至Step6。 Step6:判断算法是否陷入局部最优。当第i个粒子连续N次满足条件f(xi)-f(pi)<η时(η为设定的常数阈值),则认为算法陷入局部最优,用式24和式25进行混沌搜索;否则转至Step4。 Step7:返回x=(kp,ki,kd,λ,μ),同时寻优完成。 利用MATLAB软件对PIλDμ的参数x=(kp,ki,kd,λ,μ)进行寻优,基于Oustaloup近似算法完成逼近近似的过程。假设拟合频率范围为[10-3,103],阶次为4,N为500,itermax为1 000,采样时间为0.001 s,ωmin取0.4,ωmax取0.8。因为算法中的参数是随机产生的,所以仿真结果取500次的平均值。 由表2、3和图2所示,对PIλDμ控制器参数优化过程中的几种算法进行了对比,可见主导极点法会产生大的超调量、调节时间漫长等问题。然而,PSO算法与它相比,超调量、调节时间等都有所下降,但不令人满意。文中提出的CAPSO算法,仿真结果显示上升时间短、超调量小,目标函数ITAE值也最小,适应度值为1.912 1,优于上述两种优化算法。 表2 不同算法整定最优参数 表3 不同算法时域性能参数 图2 3种算法下的PIλDμ阶跃响应 将CAPSO算法应用于整数阶PID控制器和PIλDμ进行参数优化,阶跃响应曲线如图3所示。可见,CAPSO-FOPID的控制效果要优于CAPSO-PID,而且其调节时间更少。从仿真结果看出,超调量从25.86%降至6.50%,减小了系统的稳态误差。 图3 在阶跃信号下的两种控制器的响应 将一种改进的PSO算法用于传统的PID控制与分数阶PID控制中,并进行了对比仿真。结果表明,在控制性能上,分数阶控制器要优于传统PID控制器,而且CAPSO-FOPID控制器在收敛速度与精度上也得到大幅改善。该方法既达到了系统的性能要求,也满足了PIλDμ控制器参数寻优,同时也为分数阶PID控制器在倒立摆系统中的控制方法提供了参考。2.2 分数阶控制器设计
3 基于改进的粒子群算法的分数阶控制器参数的寻优
3.1 粒子群算法
3.2 改进的粒子群算法
3.3 确定改进后算法的目标函数
3.4 基于CAPSO算法的PIλDμ的参数优化
3.5 Matlab仿真与分析
4 结束语