董如意,唐玉玉,桑可可
(吉林化工学院 信息与控制工程学院,吉林 吉林 132022)
随着人类科技的迅速发展,PID控制器广泛应用于航天、工业、国防、农业、化工等领域,PID控制器的应用与我们当前的生活息息相关[1].在被控对象系统的结构和系数都无法完全设定时,PID控制器可以利用其比列、积分和微分3个环节调节控制系统,以降低系统误差,操作简单、设计方便简洁.但是对于PID控制器3个参数的选择,过程相当冗长烦琐.所以,为了解决传统PID控制器参数很难整定到最优的问题,本文提出了一种经过改进的粒子群优化的算法,来对PID参数进行自适应调整[2].改进粒子群优化算法采用不断迭代自动寻求最佳解的方式,并具有求解速度快的优势,在Matlab环境下完成模拟仿真实验,并把模拟仿真结果同典型PSO算法的PID整定方法加以对比,进一步表明了该方法的可行性和优越性.
PID控制器,由比例P、积分I和微分D3个参数所构成.作为二阶线性控制器,比例、积分和微分这3个参数可以直接影响PID控制器的控制效果.所以,通过对比例、积分和微分3个参数进行调整[3],使系统达到良好的控制特性.协调这3个参数来实现控制器目标的最优值,并引入改进粒子群算法的特性,在给定的范围内对3个参数进行优化使其能达到最为合适的值,进而使整个控制系统性能达到最优.
在控制工业中最常见到的PID控制器的工作原理为:
(1)
其中,e(t)为控制误差,即:
e(t)=r(t)-y(t),
(2)
用传递函数表示,则为:
(3)
其中,Kp为比例系数;Ki为积分系数;Kd为微分系数.
粒子群算法(PSO)是一种较为成熟的群智能算法,启发于鸟群、蜂群等觅食的场景,把生物个体当作一个个粒子,并都处在一个D维空间进行搜索,通过迭代寻找最优解,并用适应度来评价解的好坏,最后根据当前搜索到的最优解来寻找全局最优解[4-6].在迭代过程中,粒子群由速度和位置两部分组成,其粒子速度由惯性部分、自我认知、社会经验3部分构成.粒子群的优化方程如公式(4)和公式(5)所示.
vij(t+1)=vij(t)+c1r1(t)[pij(t)-xij(t)]+c2r2(t)[pgt(t)-xij(t)],
(4)
Xij(t+1)=Xij(t)+vij(t+1),
(5)
式中小标j表示微粒的第j维;i表示微粒i;t表示迭代次数;r1、r2是相互独立的随机函数(取值范围在0-1之间).c1、c1为学习因子加速常量(取值范围在0-2之间),是调节全局最优粒子飞行方向和粒子飞行步长的关键参数,所以适当的选择学习因子对整个系统是非常关键的[7].学习因子选择过大或者过小都会导致粒子不会飞向目标区域,c1、c1的适当选择需要考虑收敛速度的同时还要考虑算法陷入局部最优,所以通常把c1、c1学习因子的值设定为2.
通过对标准粒子群算法的分析,可以确定粒子群更新方程的效果是否理想是粒子群算法性能优化的关键.在原始的粒子群更新方程中,粒子的位置和速度是按照自身当前状况、群体当前状况以及社会经验进行更新的,如果出现两个粒子足够接近时,即学习因子c1=c1=0,粒子也就会循着当前方向减速飞行,粒子陷入局部最优,从而使整个粒子群过早收敛.
遗传算法(GA)是一个较为经典的启发式算法,选择、交叉、变异是该算法的主要过程.在遗传算法的交叉过程中,把两个父代个体的部分结构进行重构,生成一个新的个体,其种群规模与父代一致,当交叉概率值越大时,算法的收敛性也得到了加快,具有很强的局部优化能力[8].在前期迭代搜索过程中粒子群算法加入遗传算法的交叉操作,生成了两个新的个体[9-10],方程如公式(6)所示.同时为了维护种群的多样性,增强全局搜索能力,引入动态的惯性权重参数,如公式(7)所示.
(6)
(p,q),
(7)
其中,ωmin和ωmax分别为初始权重和最大迭代次数时的权重;tmax最大迭代次数;σ为惯性因子;α为[0,1]之间的随机数.
改进的粒子群优化算法流程如下:
Step1 设置参数并且初始化.确定粒子种群数量、最大迭代次数、粒子的随机位置阈值和速度阈值等参数,每个粒子的pbest设置为当前位置,gbest为当前种群的最优值.
Step2 计算每个粒子的适应度值.结合传递函数和种群位置更新方程,确定PID控制参数的设定,对种群的历史pbest的适应值和全局gbest的适应度值进行比较,对pbest和gbest进行更新.
Step3 种群迭代更新.通过公式进行迭代操作,更新每个粒子的位置和速度.
Step4 引入遗传算法.保留适应度值比较好的,并对其进行交叉操作,产生同数量的子代,对子代粒子计算适应度值,并同父代的适应度值进行比较,保留较好的进行下一代.
Step5 获取最优解.看迭代次数有没有超过最大迭代次数,或者是否获得最优的适应值.如果达到,转入step6;否则转入step2.
Step6 输出gbest.
其算法流程图如图1所示.
为验证基于动态惯性权重的交叉算子PSO算法在PID控制参数整定的优化效果,本文采用的是一阶传递函数进行测试,方程如公式(8)所示.同时,适应度函数的选取常用的有积分平方差(ISE)、积分时间乘绝对值误差(ITAE)和积分绝对值误差(IAE)[11],本文选用ITAE作为评判指标,其方程如公式(9)所示.
(8)
(9)
采用Matlab来实现改进的PSO算法,Matlab软件进行PID整定参数的仿真,利用选择单位阶跃信号作为PID的输入信号.在本次实验中,初始种群的规模为100,最大迭代次数为100,c1=c2=1.5,交叉概率为0.6,变异概率设置为0.02[12-14],采用改进的粒子群优化算法对PID参数的整定并与标准的粒子群算法进行比较,比较这两种算法对PID控制器优化的阶跃响应控制效果.
由图2可知,ITAE性能指数会根据迭代次数的增加而不断下降,这说明算法有较快的收敛速度,并且改进的PSO算法其收敛速度得到了加快,明显比标准的PSO要收敛得迅速.同时也很好地表明改进的PSO算法可以对PID控制器的3个参数做出更合适的选择,从而使得PID控制器的性能得到进一步的改善,实现了本文提出的性能改善.
由图3中各曲线PID控制输出结果比较我们可以看到,标准的粒子群算法得到的单位阶跃响应曲线上升时间虽然比改进的粒子群算法要稍微快一些,但系统产生了振荡和超大调.而用遗传算法改进的粒子群算法在PID参数整定中系统运行超调现象不明显,达到对系统准确、快速、稳定的要求.
表1为本文所提出的改进方案与标准PSO方案应用于PID参数整定的性能对比分析.
表1 数据优化结果平均值
从表1中可以发现,在相同的迭代次数下,与标准PSO相比改进粒子群算法其优化效果要好,在快速达到整定状态和找到全局最优解方面也要比标准的PSO算法好.由此可知,在PID参数整定中,运用改进的PSO算法具有更好的系统优化性能,实现了更快的收敛速度,并防止了过早收敛.
结合遗传算法中交叉算子和粒子群收敛快、运行简单的优点上,提出了一种改进的粒子群算法.在前期搜索过程中,粒子群位置方程公式转化为PID 3个参数对其进行迭代更新,并同时引入交叉算子,防止收敛过快陷入局部最优,又为了保证种群的多样性加入动态的权重因子,使控制系统的全局优化性能得到改善.实验结果表明,改进粒子群算法优化的PID参数使得系统性能指标改善得更好:系统没有超调量、稳态误差相对较小,基本达到预期的效果.