吕红芳,王 涛,嵇月强,高 慧,徐 斌,王秋婷
(1.上海电机学院电气学院,上海 201306;2.杭州优稳自动化系统有限公司技术中心,浙江杭州 311100)
随着工业自动化的发展,在控制领域对于PID控制器的研究也不断深入。PID 控制器结构简单、安全可靠,而且相比于其他工控算法的鲁棒性好[1],算法易于实现,因而在工业控制行业备受推崇。输出与输入的偏差和比例、积分、微分环节系数对控制性能的优劣起直接作用。
由于控制对象的复杂化,使得传统的PID 控制不再满足控制需求。使用优化算法对PID 控制器参数进行优化是如今研究的热点,由艾伯哈特博士和甘乃迪博士[2]提出的粒子群优化算法(particle swarm optimization,PSO)具有代码易实现、迭代过程简单、收敛迅速、参数设置较少等优势[3]。虽然PSO 算法优化性能较好,但也存在早熟收敛、容易陷入局部极值、迭代后期收敛速度慢等问题。针对以上问题,国内外学者进行了积极的探索。邓雪等[4]提出通过非线性惯性权重刻画搜索速度,对个体最优适应值较差部分粒子进行初始化处理,以降低陷入局部最优可能性;张枭等[5]提出一种精英反向粒子群算法(elite opposite particle swarm optimization,EOPSO),在算法进化过程中,对当前种群中的优秀个体,根据概率进行精英反向学习,生成精英反向种群,并将精英反向种群与当前种群进行竞争,当算法陷入停滞时,对最优个体进行柯西变异。华勇等[6]提出了一种基于自然选择和惯性权值非线性递减的改进粒子群算法,引入二阶振荡策略使种群进化过程保持多样性,并将遗传算法中选择机理与粒子群算法结合提高其性能。
基于此,本文提出了免疫粒子群优化算法(artificial immune-particle swarm optimization,AIPSO)对PID控制器进行优化。通过对标准粒子群的惯性权值系数、学习因子、速度迭代公式等参数改进,引入免疫优化算法与粒子群算法结合,将其与传统的ZN公式法等相比较,以证明其控制的优越性。
将比例、积分、微分等环节并联在一起,构成PID 控制器[7]。比例环节表现系统偏差,通过调节比例系数提高系统灵敏及系统稳定性;积分环节作用是消除系统稳态误差,改善系统性能;微分环节反映系统偏差信号的变化规律,根据其进行超前控制调节。其一般表达形式为
式中:e为系统偏差。
传统的PID 算法也存在缺陷,如出现超调现象、系统响应慢等,故对其进行修改。采用抗积分饱和算法来限制积分导致的超调,提升响应速度:
PSO 实际上是基于鸟群捕食的社会行为得到启发而提出的一种实现简单、全局搜索能力强且性能优越的启发式搜索技术。在PSO 算法中N个粒子一直在并行地进行搜索运动,搜索空间中的每一个粒子均代表优化问题的解。每一个粒子都具有其速度、位置、目标函数相对应的最优适配值。在每次迭代中,粒子算法对个体迄今最优位置Pi进行记录,同时交流粒子之间的信息,进一步获得全局极值Pg。粒子通过对Pi、Pg的对比来更新位置和速度。假设在D维连续的搜索空间中,种群由N个粒子构成,对粒子群中的第i个粒子进行定义,位置,速 度Vi=,个体极值,全局极值,其公式如下:
2.2.1 惯性权重改进
在标准粒子群算法中,惯性权重越大,粒子沿其原始方向具有更快的速度,到达更远的区域,也就意味更好的全局搜索能力。惯性权重越小,拥有更优的局部搜索能力。通常情况下在粒子群寻优过程初期,希望得到更为优质的全局搜索能力,寻优后期表现出良好的局部寻优能力。因此,为了满足实际搜索过程中的各种复杂情况,构造函数使惯性权重系数非线性减少,满足粒子群寻优各个时期。惯性权重为
式中:Tmax为最大迭代次数;t为当前迭代次数。
2.2.2 学习因子改进
c1、c2表示粒子速度每次更新时对个体最优位置Pi和全局最优位置Pg的参考程度。当种群迭代前期,个体信息的意义大于全局信息意义,所以c1取值大于c2取值,搜索后期需要粒子快速收敛于全局最优,c2取值大于c1取值。故本文构造函数使学习因子动态调整,即
2.2.3 改进学习模式
在迭代过程中,粒子在总结自身经验的基础上,也需要向其他优秀的粒子学习,特别是在迭代初期,向个体最优粒子学习占据主导地位。为了更为全面地学习最优粒子行为,按照个体适配值优劣选取前1/3 粒子,以选取粒子的均值代替个体最优粒子,此方法在一定程度上保证了粒子群的多样性。对个体Pi的改进如下:
式中:m=N/3。
改进后的速度更新公式为
2.2.4 免疫算法改进PSO优化算法
前文中对PSO算法参数进行了改进,在此改进的基础上引入免疫算法(artificial immune,AI)。AI 是一种模仿人体防御机制,解决数据处理、故障诊断、优化控制等问题的学习算法[9]。引入AI主要目的是在粒子进行迭代寻优过程中保留优质适应度粒子,使其快速收敛于全局最优值。与此同时保持粒子多样性,保证在迭代过程中种群的完整性。
本次引入AI 算法中的免疫记忆、免疫自调节、免疫选择等思想,可以对PSO做出相应补充:
(1)计算每次迭代产生粒子的适应度,将适应度值优质的微粒储存为记忆微粒。
(2)通过免疫机制中抗体间基于浓度的相互抑制作用进行种群的更新,有效避免早期收敛。即按照亲和力强弱和浓度重新进行排序,即
式中:J为绝对误差积分。
根据亲和力选择粒子概率为
粒子浓度可近似表示为
根据浓度选择粒子概率为
则粒子被选择的概率为
式中:i=1,2,…,N;η=[0,1]为权重系数。
根据Hi大小进行排序,对缺失粒子与Hi值小粒子使用上一代记忆微粒替代[10]。
(3)迭代完成的粒子重新进行适应度计算,选择优秀粒子对记忆微粒群进行更新。
通过上述AI 行为对PSO 算法进行补充,即将AI算法与PSO算法进行结合,形成AI-PSO。
衡量一个PID 控制系统的调节品质,一般采用绝对误差积分作为评价的性能指标:
故本文选用其作为评价性能指标。
步骤1对N个微粒的种群进行初始化,设置算法初始参数,如Vmax、Tmax、c1、c2等。
步骤2通过式(15)和式(16)计算各粒子适应度f(i),并对优质粒子进行保存。
步骤3利用式(4)、式(8)进行迭代,对粒子的速度、位置信息进行更新。
步骤4检查最新一代粒子适应度,并对记忆粒子信息库进行更新。
步骤5当达到最大迭代次数或当前全局最优粒子符合条件时,继续步骤6;否则根据亲和力与浓度大小确定的概率进行挑选排序,并使用上一代记忆微粒群进行补充,转至步骤3。
步骤6将符合性能的最优微粒位置量解码为PID控制参数。
本文基于Matlab 2017 环境下编写算法程序,搭建Simulink 模型进行仿真,其模型如图1所示。
图1 Simulink仿真模型Fig.1 Simulink simulation model
将得到的初始化群体解码通过函数赋值给工作空间之后,Simulink模型中的参数获取赋值在工作空间中的值,通过运行Simulink模型得到对应的适应度值进行判断是否达到全局最优。选取的被控对象为
式中:s为变量。
分别使用ZN 公式法、PSO 算法、AI-PSO 算法对PID 参数进行整定。采用PSO 算法优化PID 参数时,粒子群规模设置为50,最大迭代次数设置为50。Kp、Ki、Kd的取值范围设置为[25 140 1],粒子速度取值范围为[-1,1]。取ωmax=0.9,ωmin=0.4,适应值变化图如图2和图3所示。
图2 PSO算法最优个体适应值变化Fig.2 PSO algorithm optimal individual fitness value change graph
图3 AI-PSO算法最优个体适应值变化Fig.3 AI-PSO algorithm optimal individual fitness value change graph
由图2 可知,PSO 算法的最优个体适应值在迭代30 次之后才趋于稳定,其最优适应值趋于0.041 2。由图3可知,当迭代约至27次后最优适应值趋于稳定,其最优适应值趋于0.026 3。
通过上述3 种算法的控制响应输出曲线如图4所示。
图4 响应曲线对比Fig.4 Response curve comparison
针对被控对象采用不同方式优化后的PID 控制性能分析见表1。
表1 PID整定参数Tab.1 PID tuning parameters
从上述数据可以看出,传统ZN 公式法整定参数对于PID 控制器系统输入信号响应慢、调节时间较长、超调量较大,从而导致控制精度较低。改进参数后的PSO 优化算法较ZN 法在上述性能方面进一步得到提升,最优适应值优化比例约44.7%。AI-PSO 优化算法较ZN 法上升时间优化比例约51.0%,调试时间优化比例约73.0%,超调量优化比例约41.6%,个体最优适应值优化比例约64.9%。
综上所述,免疫粒子群优化对于PID 控制参数优化具有积极作用,是一种比较有效的优化方式。
本文基于PID 控制的参数整定,引入了AIPSO。其中,针对传统PSO 中的惯性权重使用余弦函数进行调整,惯性权重由大到小进行非线性递减。c1、c2使用指数函数进行调整,c1非线性递减,c2非线性递增。改进了粒子迭代过程中学习模式,将AI 中的思想与粒子群算法进行结合,改进了PSO在迭代过程的不足。在Matlab 2017 仿真环境下,免疫粒子群算法与传统ZN 法、改进后PSO 应用于PID 控制,由3 种方式优化参数结果对比可知,AIPSO 使得PID 控制系统响应的主要性能指标更优,具有较强竞争力。