基于PSODE混合算法优化的自抗扰控制器设计
2017-03-04任潞何屏张晓磊郭秀林
任潞 何屏 张晓磊 郭秀林
摘 要: 自抗扰控制器在强干扰系统和大时滞条件下的控制效果不好,主要影响因素是静态参数机制,为此设计了一种基于差分进化算法和粒子群算法联合优化的自抗扰控制器。使用粒子群算法对自抗扰控制器中抗扩张状态观测器的动量估计系数进行在线优化,使用误差阈值触发启动的伺服机制提高动态优化的计算速度,并使用差分进化算法的变异、交叉和选择算子提高粒子群算法的多样性,防止陷入局部最优值以提高算法的收敛精度。在热工时滞系统中的实验结果表明,改进后的算法在强干扰系统和大时滞条件下的控制效果得到提高,抗干扰性能和鲁棒性得到提高。
关键词: 自抗扰控制器; 粒子群算法; 差分进化算法; 抗干扰; 鲁棒性
中图分类号: TN02?34; TP183 文献标识码: A 文章编号: 1004?373X(2017)03?0092?04
Design of active disturbance rejection controller based on
joint optimization algorithm of PSODE
REN Lu, HE Ping, ZHANG Xiaolei, GUO Xiulin
(Faculty of Metallurgical and Energy Engineering, Kunming University of Science and Technology, Kunming 650093, China)
Abstract: Since the active disturbance rejection controller in strong interference system and under large?delay condition has bad control effect due to the influence of the static parameter mechanism, an active disturbance rejection controller based on the joint optimization of the particle swarm optimization algorithm and difference evolution algorithm was designed. The particle swarm optimization algorithm is used to optimize the momentum estimation coefficient of the anti?expansion state observer in the controller online. The servo mechanism started by the error threshold trigger is adopted to improve the computation speed of the dynamic optimization. The mutation, crossover and selection operators of the difference evolution algorithm are employed to improve the diversity of the particle swarm optimization algorithm and prevent it from falling into the local optimum, so as to improve the convergence precision of the algorithm. The experimental results of the thermal time delay system show that the control effect of the improved controller in strong interference system and under large?delay condition is improved, and the anti?jamming performance and robustness are enhanced.
Keywords: active disturbance rejection controller; particle swarm optimization; differential evolution algorithm; anti?jamming performance; robustness
0 引 言
自抗扰控制器[1](Active Disturbances Rejection Control,ADRC)因其不需受控对象具备精确的数学模型就能实现高精度控制,在鲁棒性、抗干扰能力和响应速度方面具有独特的优势,在机器人控制、电机控制、电力系统和飞行控制等领域得到广泛应用,具备较强的工业实用价值[2]。但是由于ADRC的相关参数较多,调整存在较大难度,因此目前对ADRC的改进优化算法较多,主要包括使用混沌粒子群[3]、免疫粒子群[4]和模拟控制[5]等算法优化的ADRC,这些改进算法有效提高了ADRC的参数调整效率,对ADRC的实际应用起到较好的促进作用,但还是采用静态优化机制,而ADRC本身是参数线下静态优化机制,在热工系统之类的强干扰和大时滞环境系统下易导致输出超调和不稳定,系统误差易超差导致系统紊乱[6],针对这一缺陷,本文使用差分进化算法(Difference Hybrid Algorithm,DE)和粒子群算法(Particle Swarm Optimization Algorithm,PSO)的联合算法对ADRC算法进行动态优化,利用PSO对ADRC内扩张状态观测器的动量估计系数进行优化,同时结合差分进化算法的变异、交叉和选择算子提高粒子群算法的多样性,防止PSO陷入局部最优值,提高PSO的全局搜索能力。
1 PSODE算法
1.1 PSO算法
PSO算法[7]是基于种群的随机优化算法,模拟鸟群、昆虫、鱼群等的群集行为,算法初始化为一组随机解,经迭代后获得最优解,在各次迭代中粒子通过跟踪局部最优解[Pbest]和全局最优解[Gbest]进行更新。在种群数目为[m]的群体中,在[D]维解空间中第[i]个粒子的位置为[xi=xi1,xi2,…,xid,]其中[i=1,2,…,m,]粒子速度为[vi=vi1,vi2,…,vid],将粒子位置代入到目标函数中能获得适应值,设第[i]个粒子搜索到的最优位置为[Pi=Pi1,Pi2,…,Pid],整个群体获取的最优位置为[Pg=Pg1,Pg2,…,Pgd],各粒子通过更新粒子速度和位置在整个状态空间内搜索,如下所示:
[vidt+1=vidt+c1randpid-xid+c2randpgd-xid] (1)
[xidt+1=xidt+vidt+1] (2)
式中:[c1,c2]为学习因子,又称加速度常数;[rand?]是在区间[0,1]内的随机函数。
1.2 差分进化算法
差分进化算法[8]的主要原理是按照杂交、变异和选择等操作进行进化运算,通过杂交、变异后的新个体参与父体的竞争,根据新一代和父体的适应度好坏情况选择适应度好的一代作为下一代。设[pkt]是在变异过程中的独立个体,对其运算生成的变异个体[pkt+1]如下所示:
[pkt+1=pr3t+ξ?pr1t-pr2t] (3)
式中:[pr1,pr2,pr3]是从群体中任意选择的三个互异个体;[ξ]为缩放因子,其功能是对变异运算的影响进行调整以提高变异运算的可控性。
杂交操作是产生多样性较好的个体,以便于群体的差分进化,通过独立个体与变异个体的二项分布杂交运算重组,生成新型的杂交个体,杂交运算如下:
[pkt+1=pk1t+1,pk2t+1,…,pkjt+1,…,pkDt+1] (4)
[pkjt+1=pkjt+1,rand bj≤PCRpkjt,rand bj>PCR] (5)
式中:[j∈1,D,][D]为解空间维数;[PCR]为变异概率且有[PCR∈0,1;][rand bj]是同一随机数发生器的第[j]个值。在差分进化算法中选择操作时使用遗传替代最优原则,在子代进化指标优于父代时进行选择替换,若子代并没有优化则父代直接延续到子代。
1.3 PSODE混合优化算法
PSO算法和差分进化算法都是在群体内部的启发算法,但PSO算法的全局搜索能力不足,容易陷入局部最优解[9],可通过改进群体多样性方法提高算法的局部搜索能力,为此提出了粒子群算法与差分进化算法的混合优化算法,使用差分进化算法的交叉算子和选择算子提高局部搜索和记忆能力,同时其变异算子在保证种群多样性的同时可有效提高算法的相关性和检索速度,综合利用差分进化算法的变异、交叉、选择算子确保种群中优秀个体的存在,并使算法避免陷入局部最优值。
PSO算法使用非线性动态自适应惯性权重策略,惯性权重的更新过程如下:
[ωt=ωe+ωs-ωe?e-k?t2/t2max] (6)
式中:[ωs,ωe]分别为起始惯性权重和最终惯性权重;[k]为控制因子,对惯性权重随时间变化曲线的平滑度进行控制。PSODE算法(Particle Swarm Optimization′s Differential Evolution Algorithm)的原理是在群体中某个粒子陷入局部最优值时,根据粒子群体方向确定后续位置的同时还要根据差分进化算法的最优个体信息确定后续位置,两种算法的位置信息结合优化引导陷入局部最优的粒子向全局最优解的位置进化。为了预防算法在最大迭代次数完成之前位置更新陷入停滞,設置变异机制产生新的位置,其运算如下:
[xt+q+1k=Xmin+rand0,1?Xmax-Xmin] (7)
式中:[Xmin,Xmax]为算法预设的搜索边界;[rand0,1]为随机生成的[0,1]区间内的随机数,通过这种措施将使粒子不断更新。
2 组合优化的自抗扰控制器设计
2.1 ADRC结构
ADRC[10]主要由三个组成部分,对应的作用分别是:非线性跟踪微分器,用于实现对系统输入信号快速无超调跟踪并给出良好的微分信号;扩张状态观测器,用于对系统的扰动和状态进行估计;非线性状态误差反馈控制器,用于获取控制量。一般情况下最简单的ADRC只包含非线性状态误差反馈控制律,而最复杂的ADRC则由上述三个部分组成。典型的二阶ADRC结构如图1所示,其中[v(t)]是设定信号;[v1,v2]是[v(t)]和其微分的跟踪信号;[e1,e2]是误差;[y(t)]是被控系统的输出;[w(t)]是系统扰动;[z1,z2]是输出[y(t)]的跟踪信号;[z3]是未知扰动的观测值;[u0]是非线性状态误差反馈控制器输出的控制信号;[u]是经扰动补偿后的控制信号。
非线性跟踪微分器生成微分信号的同时为输入控制信号提供过渡过程,其计算过程如下:
[v1=v2v2=-fstv1,v2,vt,r,h0] (8)
式中:[r]是跟踪速度参数;[h0]是滤波因子。随后扩张状态观测器估算ADRC与被控系统的内外扰动总和:
[ε=z1-yz1=z2-β01fal(ε,α1,δ1)z2=z3-β02fal(ε,α2,δ1)+b0uz3=β03fal(ε,αe,δ1)] (9)
式中:[β01,][β02,][β03]为扩张状态观测器的动量估计系数,决定了扩张状态观测器估算扰动量的准确性;[fal?]为非线性反馈函数[11]。状态误差反馈控制器则根据扩张状态观测器的状态变量反馈值和非线性跟踪微分器的微分信号计算输出控制量,实际使用非线性PID控制算法如下:
[u0k=kpfale1(k),α1,δ1+kdfale2(k),α2,δ2] (10)
由于ADRC的静态估算机制不足,误差估计范围在面对系统干扰跳动大或者时滞严重时易超差,将会导致系统紊乱,因此本文引入差分进化算法和粒子群算法的联合算法对ADRC进行动态优化,以提高ADRC强干扰系统和大时滞条件下的控制效果。
2.2 ADRC优化
PSODE混合优化算法从随机解出发,通过差分进化算法控制PSO算法避免陷入局部最优解,从而快速获取全局最优解,其实现结构简单、计算速度快,可采用实数编码,在实时在线优化算法中具有一定优势。采用PSODE混合优化算法的ADRC结构如图2所示,将PSODE混合优化算法置于扩张状态观测器之前,对扩张状态观测器的三个动量估计系数[β01,][β02,][β03]进行优化。
由于ADRC本身具备抗干扰能力,因此在优化后的体系中为了确保PSODE混合优化算法的实时性,提高计算效率,设置一个误差阈值[ηT,]在误差超过该误差阈值后实施PSODE的在线优化,并非每次运算都进行优化,从而在保证算法性能的同时有效减少优化时间。同时PSODE混合优化算法的复杂度较高,出手系统实时性考虑必须对PSODE算法进行兼容性改进。在PSODE算法中为确定差分进化后的选择操作,需确定适应度[12]以比较父代个体与子代个体的优劣。为此设定粒子的密集度[Ni]的计算如下:
[Ni=k=1Dfkmax-fkminfi+1k-fi-1k] (11)
式中:[D]为解空间维数;[fi+1k, fi-1k]分别对应相邻的两个粒子的待优化函数值;[fkmax, fkmin]是对应待优化函数的极大值和极小值,并定义优势度[Yi]的计算:
[Yi=j=1qndi,j] (12)
式中:[q]为邻域范围;[ndi,j]为粒子优势值,在粒子[i]优于粒子[j]时取值为1,否则为0。在密集度和优势度的基础上定义PSODE算法的適应度[F]为:
[F=Kssess+Ke0ttetdt+KmpMpND] (13)
式中:[et,ess,Mp]分别是反馈误差、稳态误差和超调量,[Ke,Kss,Kmp]分别是对应系数。这样在PSODE算法运行中粒子选择操作可根据适应度[F]确定变异个体和父代的优劣从而保留整个群体中的精英,使优化算法更容易获取全局最优值。
3 实验验证
为了验证本文的PSODE联合优化算法的性能,在热工时滞系统[13]这种典型的时滞系统中进行实验验证,并与ADRC和PSO优化的ADRC算法进行性能比较。热工时滞系统的传递函数为:
[Gps=1-αs1+Tps2kpe-τs] (14)
式中:[kp,Tp,τ]均为系统状态参数,随锅炉运行工况的变化而变化,实验中使用[65%]负荷状态,主要相关参数设置如表1所示。
为测试各种算法的鲁棒性,设置系统负载从[65%]跳变到[100%],对应各参数随之跳变摄动,三种算法的阶跃响应曲线如图3所示。可见ADRC,PSO?ADRC和PSODE?ADRC三种控制器的输出超调量分别为[23.75%,][14.53%]和[9.71%],但相较于ADRC的系统调节时间,PSO?ADRC和PSODE?ADRC的调节时间分别延长了67 s,81 s。
为测试各种算法的鲁棒性,设置一段较长时间的扰动信号,三种算法的阶跃响应曲线如图4所示。可见ADRC,PSO?ADRC和PSODE?ADRC三种控制器的输出超调量分别为21.87%,9.13%和5.26%,但相较于ADRC的系统调节时间,PSO?ADRC和PSODE?ADRC的调节时间分别延长了52 s,62 s。
从实验结果可以看出,使用PSODE算法优化的自抗扰控制器相较于PSO?ADRC和ADRC的鲁棒性和抗干扰性能均有一定程度的提升,但对应的调节时间也相应增加,在一定程度上影响了系统的实时性。
4 结 语
本文针对ADRC系统静态估算机制不足导致在系统干扰跳动大或者时滞严重时适应性较差的缺陷,使用PSO算法和差分进化算法对ADRC在系统误差超过阈值后实施在线优化,调节扩张状态观测器的动量估计系数从而提高扩张状态观测器估算扰动量的准确性,在保证实时性的同时提高ADRC在时滞严重和强干扰环境下的抗干扰性能。实验结果表明,PSODE混合优化算法的ADRC鲁棒性和抗干扰性能均得到提高,但系统复杂度增大导致实时性受到一定影响,这将是后续研究需要重点解决的问题。
参考文献
[1] HAN J. From PID to active disturbance refection control [J]. IEEE transactions on industrial electronics, 2009, 56(3): 900?906.
[2] 杨瑞光,孙明玮,陈增强.飞行器自抗扰姿态控制优化与仿真研究[J].系统仿真学报,2010,22(11):2689?2693.
[3] 宗阳,张科,王靖宇.一种基于模糊ADRC的舵机控制算法设计与实现[J].西北工业大学学报,2011,29(2):217?221.
[4] 程启明,程尹曼,汪明媚,等.基于混沌粒子群算法优化的自抗扰控制在蒸汽发生器水位控制中的应用研究[J].华东电力,2011,39(6):957?963.
[5] 刘朝华,张英杰,章兢,等.基于免疫双态微粒群的混沌系统自抗扰控制[J].物理学报,2011,60(1):69?74.
[6] 张墩利,周国栋,张健.PSO动态优化的ADRC控制器研究[J].控制系统,2015,60(9):60?63.
[7] 刘晓丽,胡翠华,李兰英.基于微粒群优化的机器人自抗扰控制[J].现代电子技术,2009,32(10):25?26.
[8] 刘波,王凌,金以慧.差分进化算法研究进展[J].控制与决策,2007,22(7):721?729.
[9] 刘小华,林杰.基于遗传粒子群混合算法的供应链调度优化[J].控制与决策,2011,26(4):501?506.
[10] 杨婷婷,李爱军,侯震,等.基于粒子群算法的自抗扰飞行控制器优化设计[J].计算机仿真,2009,26(9):59?61.
[11] 张超,朱纪洪,高亚奎.基于最小拍观测器的自抗扰控制器设计与性能分析[J].控制理论与应用,2015,32(1):29?34.
[12] 于泓博,李会,韩德丽.基于PSODE的网格任务调度算法[J].计算机工程与设计,2012,33(4):1447?1451.
[13] 张吉礼,赵天怡,卢振,等.环境试验室热工系统规则自提取模糊控制仿真[J].控制理论与应用,2010,27(4):457?465.