摘 要:针对标准粒子群算法优化多变量系统的解耦控制时存在陷入非全局最优值的问题,设计出一种基于自适应变异的粒子群算法优化多变量系统解耦控制器的方法。该方法以标准粒子群算法为基础,在种群进化过程中引入变异操作,对不同进化程度的粒子以不同的概率进行更新,其中没有达到个体最优的粒子以随机的大概率进行位置与速度的初始化,对已经早熟的粒子以一定的小概率更新进化路径,以此来提高种群搜索全局最小值的能力。种群寻到最优值的状态就是控制器效果最好的状态,利用新的网络模型即可解决上述问题。经过对比仿真,验证了该方法的可行性。
本文源自陈晓全, 计算机时代 发表时间:2021-05-14 《计算机时代》杂志,于1983年经国家新闻出版总署批准正式创刊,CN:33-1094/TP,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:经验技巧、计算机教育、信息化建设等。
关键词:多变量系统;解耦控制;粒子群算法;自适应变异;全局最优值
0 引言
在现代控制系统中,随着控制量的不断增多,系统的耦合性与复杂性越来越强,应用在解耦控制领域的方法也是层出不穷,从最初的对角矩阵解耦到现在的神经网络,不同方法所具有的优缺点也很明显。在工业应用中,PID 神经元网络一直是主流应用,但是,面对更加复杂的系统,PID 网络的性能已经不能满足工业需求,因此,需要对传统网络模型优化,才能改进控制效果。文献[1]给出的方法为遗传算法,利用遗传算法中种群迭代进化的思想寻找出最优值,并以此来 PID 神经元网络。文献[2]中给出的方法为 PSO,利用各粒子之间的合作与竞争来寻得最优解,并以此来优化 PID 网络,结果表明该方法在一定范围内达到了优化效果。本文综合其他文献中提出的方法,针对 PSO 由于搜索区域的逐渐同化缩小而导致的过早收敛的问题,在其基础上引入变异操作,使得原本随着迭代而减小的寻优区域会以一定概率扩大,这样既让种群进化不朝着单一化的方向发展[3-4] ,也使得其寻优能力得到提高。本算法与其他算法在进行了仿真的对比,结果表明在响应时间与超调量的控制上有着更好的效果。明该方法在一定范围内达到了优化效果。
1 解耦控制器模型分析
1.1 解耦控制原理
关于 PID 控制器的静态参数以及功能不再介绍,下文着重阐述其动态运行过程。在解耦过程中,连接各层之间的权值是调节网络平衡的重要参数,所以网络的输出误差需要通过反馈对权值进行调整,从而使网络满足要求[5] 。PID 网络中权值的调整法则为梯度下降法则,其计算公式如下: J =∑E =∑k = 1 n [ yh (k) - r(k)] ⑴
上式中,n为输出节点个数,yh(k)为预测输出,r(k) 为控制目标[6] ,根据⑴式中计算出来的误差值来对网络的权值进行修正,修正方法如下: ωjk (k + 1) = ωjk (k) - η ∂J ∂ωjk ⑵ ωij(k + 1) = ωij(k) - η ∂J ∂ωij ⑶
其中,式⑵表示输出层与隐含层之间修正,式⑶表示隐含层与输入层之间的修正,wjk为隐含层与输出层之间的权值,wij 为输入层与隐含层之间的权值,η为学习速率[7-8] 。上述分析为传统 PID 网络的理论基础,实际应用中的结构图如图1所示。
图中,r1-rn为控制目标,u1-un为控制器控制律, y1-yn为控制量当前值,在网络仿真时设置好控制量的初始值与控制目标即可完成网络的初始化,下文均以 3输入3输出的耦合系统为例分析[9] 。
1.2 传统解耦控制的优化
在工业生产中,PID基本满足需求,但是一旦要求精度提高,则普通PID难以解决响应慢,超调量偏大的问题,一般情况下会对其网络结构进行优化,常用的解决方案分成两类,第一类,针对PID网络本身进行优化。常见方法为增加动量项法以及改变神经元系数法[10] 。第二类方法为利用神经网络对 PID 进行优化,其中应用较多的为遗传算法和粒子群算法,两种算法能够明显提高控制器的解耦效果,但是由于算法自身的特点,容易过早收敛进入早熟状态,所得的结果并不能保证每次都是最优值[11-13] ,有一定不确定性。因此,需要针对其缺点做一定的改进。
2 自适应变异粒子群算法模型的设计
2.1 模型数学原理
粒子群算法的核心思想就是利用种群中各粒子的相互影响进行迭代进化,由于不同粒子间的作用各不相同,受影响粒子的进化途径也不尽相同,从而衍生出最优值[14] 。其数学模型表示如下:在Q维空间中,粒子的个数为n,迭代次数为k,每个粒子i在Q维空间都存在唯一对应的位置与速度,其中位置矢量表达式为 Xi =(x1,x2,…,xN),速度的矢量表达式为 Vi=(v1, v2,…,vN) [15] 。在迭代寻优期间,需要注意两个特征值:首先,粒子自身在k代的进化过程中产生的最优值pi = (pi1,pi2,...,piQ),i=1,2,...,k;其次,种群中所有粒子在 k 代进化过程中产生的最优值 gi ,gi的值是唯一的,也就是最终的最优值。归结为下面的两个: Vk + 1 id = ωVk id + c1 r1 (P ) k id - Xk id + c2 r2 (P ) k id - Xk id ⑷ Xk + 1 id = Xk id + Vk + 1 id ⑸ 其中,w 为惯性权重因子,d=1,2,…,Q;i=1,2,…,n;Vid 为粒子的速度;c1和c2为加速因子(也称学习因子),其值通常大于零;r1和r2是分布于[0,1]区间的随机数。
2.2 改进方法
在种群进行进化迭代时,每个粒子都具有开拓范围以及发掘自身两种能力,所以进行变异操作时有以下两个方面的改进[16-17] 。第一,在初期阶段,对低于适应度平均值的粒子,在程序中对其进行变异操作,让该粒子的位置与速度以随机的概率变异;当某些粒子的进化速度趋于零时,以大概率的变异让其重新加速进化,避免种群缩小陷入局部最小值。其数学表达式如下: if (V ) k id = 0 then Vk id = λr1V ⑹ if (r2 < cL) then Xk id = r3X ⑺ 其中,λ为方向变异系数,cL用来控制变异的频率,r3是分布于[0,1]区间的随机数,V 和 X 为初始化后的新位置[18] 。第二,当种群中的某个粒子开始出现在该位置上进化出最小值时,其他粒子会大概率的以该粒子为目标靠拢进化,使得整个种群过度统一,所以根据这种情况,同样需要引入变异操作,改变最优位置粒子的运动状态,让其在附近的空间中继续寻找最优值,从而改变周围粒子向其靠拢的运动状态,使种群达到最优的进化效果,其策略如下: Vk + 1 id = ξk (1 - 2r4 ) ⑻ Xk + 1 id = gi + ωVk + 1 id ⑼
式⑻中,ξ代表比例因子,其作用是定义当前最优位置的粒子在附近空间的搜索进化能力[19] ,其更新方式如下: ì í î ï ï ï ï if (S > Sc ) then ξk + 1 = 2ξk if (F > Fc ) then ξk + 1 = 0.5ξk otherwise then ξk + 1 = ξk ⑽ 其中,F和S分别代表连续失败与连续成功的次数。
2.3 算法流程
根据理论算法分析,实际优化流程如下。
⑴ 种群初始化。对测试种群的规模、速度、位置、迭代次数等参数进行赋值[20] 。
⑵ 在进化过程中计算各粒子的适应度值。
⑶ 将各粒子的适应度值与种群最优适应度值进行比较,若小于最优值,则对粒子进行式(6-7)的变异操作;若达到最优值,则按照式(8-9)进行变异操作,更新其速度与位置,保证种群多样性[21-22] 。
⑷ 种群经过进化,产生pi和gi。
⑸ 根据迭代次数判断是否退出,若次数不足,则从⑵处继续执行操作。
3 优化效果对比仿真
本例中网络模型的各参数设置如下所示:sizepop =50,maxgen=50,c1=c2=1.49445,各粒子的速度与位置通过 rand函数产生,在进化过程中计算函数 Fitness的值,根据每个粒子 Fitness函数值得不同进行不同概率的变异操作,使种群不断更新。迭代结束后,根据网络的最优解确定 PID 网络的权值,从而使网络达到最优的效果[23] 。为了使优化效果更加明显,本节将选取另外三种方法与本例做对比,这三种方法分别为普通 PID 网络模型、改进 PID 算法的模型以及基于粒子群算法优化的 PID 网络模型,各模型的仿真效果如图2~图7所示。
我们从这些图可以看出,普通 PID 在解耦控制的效果上存在响应时间长,超调量过大的问题,尤其是对控制量1的解耦中,响应时间为0.17秒,和后面几种方法相比有着过大的延迟。在控制量 2 的解耦中,超调量接近 20%,不能满足精度要求高的控制系统。图 3 的改进方法为增加动量项,该方法是对 PID 本身的结构进行调整优化,其具体实现方法在文献[1]中已有介绍,本文不再展开。经过优化的PID控制器,对控制量 1 的响应时间缩短到了 0.13 秒左右,对控制量 2 的响应时间缩短到了 0.1 秒左右,起到了加快响应的效果,不过对超调量的把控还存在一定的不足。图 4 为粒子群优化 PID 的效果图,在响应时间和超调量的控制上有了显著的提高。控制量1-3的响应时间都缩短到了 0.04 秒左右,控制量 3 的超调量缩小至 0%,不过还存在部分控制量超调偏大的问题。图5为本次方法的仿真效果图,通过对比发现,无论是在响应时间还是超调量的指标上都比前三种方法有了极大的提高,控制量 1-3 的超调量都为 0% 且各响应时间都缩短至 0.03 秒左右并且系统的控制误差趋于零,网络迭代过程如图 6、图7所示。
4 结论
从仿真结果来看,自适应变异的粒子群算法在优化 PID 解耦控制的效果上,比上述三种方法有着更好的稳定性与更高的精确度,网络能够跳出早熟状态,解决了标准粒子群算法寻优结果偶然性的问题,从理论角度来说,能够最大程度的满足精确度较高的控制系统。