APP下载

基于双种群混沌鲸鱼算法的自抗扰控制器参数整定

2019-04-15

计算机应用与软件 2019年4期
关键词:控制精度鲸鱼猎物

易 星 吴 昊

(南京交通职业技术学院电子信息工程学院 江苏 南京 211188)

0 引 言

自抗扰控制器(ADRC)[1]是一种具有强抗扰动能力且不基于精确数学模型的强鲁棒控制器。在控制过程中,自抗扰控制器可将模型内扰和外负载扰动作为总扰动,通过扩张状态观测器对扰动进行观测并通过非线性误差反馈控制率对所观测扰动给予补偿。但非线性自抗扰控制器具有结构复杂且耦合参数过多的特点,传统的经验整定法难以整定出合理有效的参数[2],导致在实际控制过程中常因参数整定不合理导致控制精度的丢失,很大程度上影响控制器的抗扰动能力。因此非线性自抗扰参数整定问题成为当下研究的重点[3]。

针对上述问题,大多学者结合了不同的智能优化算法对非线性自抗扰参数进行在线整定,如改进的遗传算法[4]、改进的粒子群算法[5]、蚁群算法[6]、改进的混沌粒子群算法[7]等。但绝大多数的智能算法寻优机制过于简单,在自抗扰控制器参数寻优的过程中,很有可能找到的都是局部最优解,难以得到有效的控制参数,很大程度上降低了控制器的控制精度。因此本文提出一种基于双种群混沌鲸鱼优化算法对控制参数进行在线寻优。鲸鱼优化算法WOA[8](Whale Optimization Algorithm)是一种新的群体智能优化算法,其优点在于参数少,局部搜索能力强,但很难找到全局最优解。针对此问题,本文提出双种群协同机制和混沌策略对算法进行改进,提高算法全局搜索能力,加快了算法后期的搜索速度。最后通过改进后的鲸鱼算法在线优化自抗扰控制器,并以机械臂作为被控对象进行仿真验证。

1 自抗扰控制原理

自抗扰控制器由微分跟踪器TD、非线性反馈NLSEF和扩张状态观测器ESO组成。其中:TD主要作用是提取系统输入信号安排过渡过程;ESO将影响系统的“总扰动”扩张成新的状态变量,实时监测并给予补偿;NLSEF将误差、误差的微分和误差积分三种信号以一种形式组合起来而形成的控制律。以二阶非线性对象为例,其结构如图1所示。

图1 非线性自抗扰结构框图

其中:v1和v2分别为TD给出的过度过程及其微分;NLSEF对误差e1和e2进行非线性组合,并输出控制信号u0;ESO估计对象的各阶状态变量z1、z2和对象总扰动实时作用量z3;b0为控制输入放大系数。TD、ESO以及NLSEF的数学表达式如下所示:

(1)

(2)

(3)

式中:r是快慢因子;h是步长;β01、β02、β03、β1、β2是修正系数,也是控制器中待整定参数;函数fal(·)是一种非线性函数,是输出误差校正率,其表达式为:

(4)

其余参数由于一部分变化极其敏感,一部分对控制系统影响不大,因此可事先根据经验先行设定。本文选取TD中r=100,h=0.01;ESO中的a1=0.5,a2=0.25,δ=0.01。

针对非线性自抗扰参数难整定以至于影响控制精度和抗扰动问题,选取ITAE作为优化的目标函数,采用双种群混沌鲸鱼算法进行在线优化,其系统框图如图2所示。

图2 基于DCWOA算法的ADRC系统框图

2 算法设计

2.1 标准鲸鱼优化算法

鲸鱼优化算法是一种高效的新型启发式优化算法,其寻优方式是基于模拟鲸鱼狩猎所得出的。该算法主要包括三个阶段:包围猎物、螺旋狩猎和搜索食物。对于鲸鱼优化算法而言,鲸鱼种群中任意一只鲸鱼所在的位置都可以表示为一个决策变量。

(1) 包围猎物:

座头鲸在狩猎的时候要包围猎物,其数学模型如下:

D=|CX*(t)-X(t)|

(5)

X(t+1)=X*(t)-A·D

(6)

式中:t表示为迭代次数;A和C为系数矩阵;X*(t)为当前最优的鲸鱼位置向量;X(t)表示当前鲸鱼的位置向量,A和C由下面的公式得出:

A=2a×r1-a

(7)

C=2×r2

(8)

式中:r1和r2为(0,1)之间的随机数;a的值在(0,2)之间并线性递减;t为当前的迭代次数;Tmax为最大迭代次数。

(2) 螺旋狩猎:

首先由于鲸鱼在捕食过程中是以螺旋运动方式包围猎物的,因此其捕食行为的数学模型如下:

X(t+1)=X*(t)+Dp·ebl·cos(2πl)

(9)

式中:Dp=|X*(t)-X(t)|代表鲸鱼和猎物之间的距离;X*(t)表示迭代过程中最好的位置向量;b为常数,螺线的形状随b的取值而改变;l是(-1,1)中的随机数。

其次鲸鱼在通过螺旋狩猎游向猎物的同时还要收缩包围圈。因此在该模型中,假设有Pi的概率选择收缩包围机制和(1-Pi)的概率选择螺旋模型来更新鲸鱼的位置,其数学模型如下:

(10)

由数学模型可得,鲸鱼在靠近猎物时会减小a的值,这样A的波动范围也随a下降。在迭代过程中当a的值从2到0下降时,A是在[-a,a]内的随机值,当A的值在[-1,1]内时,鲸鱼的下一个位置可以是它现在的位置和猎物的位置之间的任意位置。

(3) 搜索猎物:

搜索猎物采用随机个体位置寻找猎物,其数学模型如下:

D=|CXrand-X(t)|

(11)

X(t+1)=Xrand-A·D

(12)

式中:Xrand是随机所得的位置向量,算法设定当A≥1时,随机选择一个搜索领导个体,并通过领导个体的位置来更新其他鲸鱼的位置,以此引导鲸鱼离开当前猎物,借此找到更合适的猎物,目的是加强算法的全局搜索能力。

2.2 双种群混沌鲸鱼优化算法

WOA能有效地算法跳出局部最优,本文提出一种基于混沌序列和双种群寻优策略的双种群混沌鲸鱼优化算法DCWOA,改进后的算法使得收敛速度和收敛精度大幅提升。

首先,针对算法随机初始化导致算法收敛速度慢的问题,本文采用混沌序列代替算法传统的随机初始化方式。混沌现象是在非线性动力系统中表现的确定性、类随机的过程。混沌运动的优点在于对初值极度敏感,可在一定范围内,按照一定的自身规律,不断对所有的状态进行遍历。因此,本文采用Logistic映射产生混沌序列来对WOA中粒子的位置进行初始化,其表达式表示为:

xn+1=μxn(1-x)xn∈[0,1],μ∈[0,4],n=0,1,…

(13)

式中:当μ=4时,式(13)呈现完全混沌状态,得到的x序列为[0,1]的满映射。由于传统鲸鱼优化算法的初始化方式是随机初始化,导致每次搜索结果差别较大,粒子初始化后分散性较大,采用混沌序列的方式对WOA算法进行初始化,在保留粒子多样性的基础上,使算法具有较大范围的搜索能力。

其次,加入混沌序列虽然有效提高了算法的收敛速度,但并没有解决算法在寻优中会陷入局部最优的情况,因此本文考虑一种双种群寻优策略。将通过混沌初始化后的种群随机平均分为两个子种群s1和s2,其中:种群s1中的个体按基本鲸鱼优化算法进行寻优;种群s2中的个体在寻优过程中,加入变异策略,使算法在寻优过程中具有一定的指引性。当算法陷入局部最优时,产生一个跳变,使得个体跳出局部最优。由于传统鲸鱼优化算法和加入变异后的鲸鱼优化算法在产生新个体上的方式有所不同,因此,本文将两者的优势进行了结合,并引入混沌序列对种群进行初始化,提出了一种双种群混沌鲸鱼优化算法。其变异公式为:

(14)

Step1通过混沌序列对WOA种群进行初始化并随机产生两组规模为N/2的初始种群作为种群和种群。

Step2分别对种群s1和s2中每个个体求解相应的适应度函数值。

Step3若当前迭代次数达到最大迭代次数,跳转Step8,否则继续执行Step4。

Step4种群s1依照DCWOA算法寻优机制对粒子进行更新。对种群s2采用WOA对粒子进行更新,并计算更新后粒子的适应度值,对最优个体进行保留。

Step5选择:用m个部分随机的新个体替换种群s1中适应度函数值较差的m个个体。

Step6变异:利用基因突变方法从而改变种群s1中的部分个体的特性,并对变异后的个体进行边界处理。

Step7比较种群s1和种群s2中的最优个体,判断是否满足交换条件,如满足交换条件则将较好的个体交换到种群s1中,将较差的个体交换到种群s2中,之后转入Step4。

Step8输出最终计算结果。

3 算法性能测试

为了验证本文所提DCWOA算法的有效性,选取7个测试函数进行测试,并将测试结果分别与基本鲸鱼优化算法(WOA)、混沌粒子群算法[7](CPSO)、改进鲸鱼优化算法[9](AWOA)进行对比验证。其中4种算法的种群规模为30,迭代次数均为200。具体的测试结果如表1所示,其中加粗字体表示最好的结果。

表1 7个不同测试函数的仿真计算结果

通过表1可得,DCWOA算法的整体性能比其他3种算法更为高效。对测试函数Ackley’s,相比其余3种算法而言,DCWOA寻找理论最优值更加稳定,搜索精度更高。对测试函数Beale’s、Booth’s、Threehump和Ackley’s来说,DCWOA算法在AWOA算法的基础上大大提高了精度。对于Lévi来说,DCWOA在控制精度上是略低于CPSO算法,但依然优于WOA和AWOA。对Easom而言,相比WOA算法,DCWOA在精度上略有不足,但却优于其他2种算法,同时也更加稳定。结果表明,在绝大部分的测试函数上,相比其他3种算法,DCWOA算法可以找到精度更高,收敛速度更快的最优解。因此DCWOA是一个具有高效性的优化算法,并且可用于优化自抗扰参数。

本文选取DCWOA算法对ADRC参数进行在线优化,并选取ITAE指标做为算法的目标函数,其中ITAE指标[10]的数学表达式如下:

(15)

为了验证本文所提算法的有效性,选取CPSO与DCWOA进行对比验证,具体结果如图3和图4所示。

图3 第一组参数寻优

图4 第二组参数寻优

图3和图4为CPSO和DCWOA算法对两组ADRC参数整定过程中的评价函数优化曲线。DCWOA算法相较CPSO而言,具有更高的搜索精度,更快的搜索速度,很大程度上提高了ADRC的控制精度。在寻优范围上,DCWOA远大于CPSO。在算法寻优初期,DCWOA算法得到的评价函数值的下降速度明显优于CPSO,说明DCWOA的寻优初值要好于CPSO,因此可得到比CPSO更快的寻优速度,使算法整体的优化效率得到提升,且评价函数值更小,故DCWOA可以更好地得到控制器参数。最后为了验证本文方法的高效性,在MATLAB上独立运行DCWOA、AWOA、WOA和CPSO算法各50次,并记录平均时间分别为5.34 s、6.88 s、7.33 s和6.02 s。因此验证本文算法复杂度更低,优化时间更短。

4 仿真实验

本文以两自由度串联机器人[11]为被控对象,通过DCWOA算法对ADRC参数进行在线整定,并与其他3种控制算法进行对比,验证了本文算法可以有效地整定ADRC参数。其中机械臂的动力学数学方程为:

(16)

式中:D为惯性矩阵;C为离心力矩阵;G为重力矩阵;τ为控制率,其数学表达式如下:

(17)

首先,通过DCWOA在线整定ADRC参数,其中:β01=98.375,β02=298.462,β03=95.42,β1=29.42,β2=30.25。

其次,通过优化后的自抗扰控制器对两自由度机械臂进行轨迹控制,通过对比不同控制方式所得到的控制结果,验证了本文方法具有更好的控制效果。其控制结果如图5和图6所示。

图5 基于不同算法的q1误差跟踪对比图

图6 基于不同算法的q2误差跟踪对比图

图5、图6分别为DCWOA整定后的ADRC与AWOA整定后的ADRC、CPSO整定后的ADRC、WOA整定后的ADRC以及经验整定法整定后的ADRC对于角度q1和角度q2的控制误差对比图。从图中可得DCWOA整定后的ADRC的控制精度远远高于其他4种控制方法,且可以更快地达到稳态,响应时间更短。由此可得,本文算法可以有效地整定ADRC参数。

5 结 语

本文针对传统经验整定法难以整定非线性ADRC参数问题,提出了一种双种群混沌鲸鱼优化算法。算法针对传统鲸鱼优化算法寻优缓慢的问题,通过引入混沌序列加以改进。针对算法在寻优过程中陷入局部最优问题,提出了双种群寻优的方式加以改进,克服了算法的原有缺陷,并先后通过测试函数和评价指标验证了算法的有效性。最后以两自由度串联机器人为被控对象进行实例验证,通过跟踪误差的对比结果进一步验证了算法的高效性,证明本文所提方法可以有效整定ADRC参数。

猜你喜欢

控制精度鲸鱼猎物
三木落
迷途鲸鱼
鲸鱼
可怕的杀手角鼻龙
MW级太空发电站微波能量波束指向控制精度分析
Duck-billed platypuses
聪明误
基于安卓的智能车转速系统的设计与实现
鲸鱼会得潜水病吗?
Take a Bus