张墩利 ,周国栋 ,2,张 健
(1.湖南广播电视大学 机电工程系,长沙410004;2.中南大学 机电工程学院,长沙 410083;3.国网天津城东供电公司,天津 300000)
目前,自抗扰控制器(ADRC)的参数都是线下静态优化,好处是计算速度快,并且能解决大部分工业系统带来的干扰[1-2],但是在大时滞和强干扰系统中,如热工系统,静态的参数往往会带来输出超调甚至不稳定[3]。这时静态参数机制的ADRC暴露出其局限性。
针对以上问题,本文提出动态优化ADRC算法。该算法的核心思想是根据扰动量,动态调整扩张状态观测器(ESO)的误差估计系数。
粒子群优化算法(PSO)在多目标参数优化中具有收敛速度快、计算效率高等特点,将用于ESO误差系统的动态调整。
ADRC是一种新型非线性PID控制器。该控制器不需要被控对象的精确数学模型便可以实现高精度控制,具有响应速度快、抗干扰能力强、鲁棒性强等优点[4],因此具有很强的工业实用价值。在电力系统、机器人控制、电机控制、飞行控制等领域得到广泛应用[5]。
典型的二阶ADRC结构如图1所示,主要由3部分组成,分别是输入跟踪微分器(TD)、扩张状态观测器(ESO)和非线性反馈控制器(NLSEF)。
图1 ADRC控制器结构图Fig.1 Diagram of ADRC regulator
其中,TD的作用是为输入控制信号安排过渡过程并提取微分信号,其计算表达式为
式中:h0为滤波因子;r为跟踪速度参数。
ESO是ADRC控制器的核心部件,其作用是估算出系统的内外扰动总和,表达式为
ESO估算的扰动量是否准确,决定于3个关键参数 β01,β02和 β03。
NLSEF主要是根据输入微分信号和ESO的状态变量反馈值计算出输出控制量,该计算律实际上是非线性PD控制算法。其表达式为
式中, fst()函数和 fal()函数参见文献[4]。
由于ADRC控制器参数多,调节十分困难。近年来,对ADRC控制器优化、改造的研究很多,出现了模糊ADRC[6]、混沌粒子群优化ADRC[7]、免疫微粒群自抗扰控制[8]等。这些智能算法的引入大大提高了该控制器参数整定效率,扩展了其实用价值。但这些改进大都是采用静态优化机制,因此ESO的误差估计范围往往有限,一旦系统时滞严重或干扰跳动大,实际误差超出设计范围,系统将出现紊乱。这正是静态估算机制暴露出的不足。
粒子群优化算法(PSO)是进化算法的一种[9-10],该算法的求解过程是从一组随机初始解出发,通过邻域搜索计算方法,不断迭代寻优,在每次迭代计算中,粒子群通过个体最优解和群体最优解不断更新自己,直至找到最优解。相比遗传算法等进化算法,粒子群算法没有交叉和变异运算,可采用实数编码,结构简单,计算速度快,作为在线优化的算法具有很大优势[11]。
采用PSO动态优化的ADRC结构如图2所示。PSO嵌入在ESO前,其作用是优化ESO的3个扰动量估计系数。
图2 PSO-ADRC控制器结构图Fig.2 Structure of PSO-ADRC
动态优化面临的主要问题是实时性如何保证。为获取最大的计算效率,做了2个方面的改进:因为ADRC自身有抗干扰能力,因此没有必要每次都需要PSO在线优化,只有满足一定条件下才有必要进行优化,本实验中设置了一个误差阈值,只有当误差大于设定的阈值,PSO的在线优化才会启动;其次是PSO算法的时间复杂度本来就高,为满足控制系统的实时性要求,有必要对现有PSO算法进行改进。
为提高计算效率,在经典PSO算法基础上采用了Pareto精英保留策略[12],该算法也称非劣最优求解,其运算流程如图3所示。
图3 PSO优化流程Fig.3 Optimize process of PSO
Pareto-PSO方法是使用优化前的ESO误差系数作为初始值,不断保留进化过程中的精英。为克服粒子群算法的早熟缺陷,对适应度函数加以改进,加入粒子的密集度和优势度参数,其计算律为
式中:q为待优化函数的维度;fkmax和 fkmin函数为第k 个待优化函数的 2 个极值;f(i+1)k和 f(i-1)k为粒子的相邻粒子的第k个待优化函数值。
式中:p 为邻域范围;nd(i, j)为粒子优势计算值,当i粒子优于j粒子时值为1,反之为0。
粒子群适应度函数计算律为
式中:ess、e(t)、Mp分别为稳态误差、反馈误差和超调量;Kess、Ke、Kmp为相应系数。 优化目标为使 J值取值最小。
仿真环境:计算机处理器为英特尔CORE i5 2.5 GHz,内存 4 GB,WINDOWS7 操作系统,采用MATLAB 9.0编写算法程序。
实验分别采用ADRC控制算法和本文提出的PSO-ADRC控制算法对典型时滞系统进行在线优化,以文献[3]中的热工时滞系统为例,其传递函数为
式中,kp、Tp、τ为随锅炉运行工况不同而变化的参数。本实验采用65%负荷状态,其参数kp=7.5,Tp=150,τ=45,α=12。
ADRC控制器参数值设置如表1所示。
表1 ADRC系统参数Tab.1 Parameters of ADRC
当系统负荷从65%跳变到100%时,以上参数也随之会产生摄动,系统分别采用ADRC控制器和PSO-ADRC(粒子群优化自抗扰控制)控制器,其中PSO-ADRC控制器参数初始种群数为200,寻优最大迭代次数为tmax=1000,PSO优化启动误差阈值为4%,其阶跃响应曲线分别如图4所示,从图中可以看出,ADRC控制器的输出超调量为 20%,PSOADRC控制器的输出超调量为14.7%,但系统调节时间比ADRC延长了64 s。
图4 PSO-ADRC鲁棒性仿真测试Fig.4 Robustness simulation tests of PSO-ADRC
在输入信号中加入一段大的扰动信号,其响应曲线如图5所示,从图中可以看出,超调量从18%减少到3%,但调节时间延长了32 s。
图5 PSO-ADRC抗干扰仿真测试Fig.5 Anti-interference simulation test of PSO-ADRC
本文根据ADRC控制器的特点,针对其在大时滞系统和强干扰系统控制中的不足,以动态调整其误差估计系数的实时优化为方案,采用改进的Pareto精英保留PSO算法进行实时快速优化。针对热工时滞系统的仿真实验结果表明,对于大时滞和强干扰系统的控制具有很好的性能改善。
[1]潘文婷,孙运全,盛吉.基于粒子群的自抗扰静止同步补偿器仿真研究[J].计算机仿真,2011,28(8):298-301.
[2]杨瑞光,孙明玮,陈增强.飞行器自抗扰姿态控制优化与仿真研究[J].系统仿真学报,2010,22(11):2689-2693.
[3]管志敏.自抗扰控制器对一类热工对象的控制性能研究[J].热能动力工程,2011,26(4):445-448.
[4]韩京清.自抗扰控制技术-估计补偿不确定因素的控制技术[M].北京:国防工业出版社,2008.
[5]刘昊,王涛,范伟,等.气动人工肌肉关节的自抗扰控制[J].机器人,2011,33(4):461-466.
[6]宗阳,张科,王靖宇.一种基于模糊ADRC的舵机控制算法设计与实现[J].西北工业大学学报,2011,29(2):217-221.
[7]程启明,程尹曼,汪明媚,等.基于混沌粒子群算法优化的自抗扰控制在蒸汽发生器水位控制中的应用研究[J].华东电力,2011,39(6):311-314.
[8]刘朝华,张英杰,章兢,等.基于免疫双态微粒群的混沌系统自抗扰控制[J].物理学报,2011,60(1):69-74.
[9]J Kennedy,R Eberbarl.Particle swarm optimization[C]//Proc IEEE Int Conf on Nerural Networks,Perth,1995:1942-1948.
[10]R Eberbarl,J Kennedy.A new optimizer using particle swarm theory[C]//Proc 6th Int Symposium on Micro.Machine and Human Science,Nagoya,1995:39-43.
[11]张海军,岳恒,李春,等.基于PSO在线优化的多模型自适应动态矩阵控制[J].系统仿真学报,2007,19(15):3506-3509.
[12]陈锦珠,郭文忠,陈国龙.求解VLSI布图规划问题的多目标粒子群优化算法[J].计算机工程与科学,2010,32(9):57-60.