基于改进遗传算法的PID参数寻优与控制器
基于改进遗传算法的PID参数寻优与控制
器设计
总第233期
2009年第3期
计算机与数字工程
Computer&DigitalEngineering
V01.37No.3
78
基于改进遗传算法的PID参数寻优与控制器设计
成学亮尉字王涛
(武汉科技大学信息科学与工程学院武汉430080)
摘要相比传统的调节方法,遗传算法具有更好的鲁棒性,最优性,能较好的实现参数的自动化调节.对
遗传算
,并在SGA的基础上进行了改进.改进的遗 法(SGA)进行了
,研究
传算法从提高全局搜索性能和加快收敛速度出发,
提出了改进的选择算子,交叉算子和变异算子,仿真结果表明,改进的遗传算法的全局搜索性能和收敛速度远远优于标准遗
传算法.
关键词遗传算法PID控制器参数优化
中图分类号TP301.6
ParametersOptimizationandDesignforPIDController
BasedonaNewGeneticAlgorithm
ChengXueliangWeiYuWangTao
(Dept.ofInformationScienceandEngineering,WuhanUniversityofScienceandTechnology,Wuhan430081)
AbstractComparedwiththecommonmethods,thetuningmethodbasedonGAcangetbetterparameters,with
fewerlimits.Theauthoranalyzedandstudiedthestandardgeneticalgorithms(GA),improvedthealgorithmbasedon
SGA.Addedsomenewimprovedsteps,improvedalgorithmefficientlysolvestheproblemofglobalconvergenceandim-
provestheconvergencespeed.Thenewstepsareselectoperator,crossoveroperatorandmutationoperator.Theglobal
convergenceandtheconvergencespeedofimprovedalgorithmaremoresatisfierthanSGA.
Keywordsgeneticalgorithms,PIDcontroller,parametertuning
ClassNumberTP301.6
…l刖百
目前随着现代工业控制过程和环境的日趋复
杂化,对PID控制系统的控制品质提出了更高的
要求.由于常规理论整定法复杂,繁琐且效果不
佳,而工程整定法实际上属于人工整定法,需要实
际操作者有一定的控制领域知识和丰富的经验,且
往往整定效果不理想.传统的整定方法当系统结
构和参数发生变化时,需要停下来重新进行整定,
不能满足生产的连续性要求,更不要说一些实时性
要求高的系统;目前随着模糊控制,神经网络,专
家系统智能控制理论的发展,形成了多种智能控制
与PID控制相结合的智能PID控制策略l_1].
遗传算法(GeneticAlgorithm,GA)研究的历
史比较短,2O世纪6O年代末期到70年代初期,主
要由美国Michigan大学的JohnHolland与其同
事,学生们研究形成了一个较完整的理论和方
法l2],从试图解释自然系统中生物的复杂适应过程
人手,模拟生物进化的机制来构造人工系统的模
型.随后经过20余年的发展,取得了丰硕的应用
成果和理论研究的进展.遗传算法是一种具有良
好的全局搜索能力,鲁棒性好,不需要问题本身解
空间可微,不依赖于先验知识的一种优化算法,近
年来已有很多国内外学者将遗传算法用于PID控
制器的参数优化设计[3].
针对遗传算法在PID参数调节应用中存在的
遗传算法的局限性问题(如早熟收敛,搜索停滞
等),一些文献在研究GA用于PID参数整定时将
*
收稿日期:2008年1O月21日,修回日期:2008年11月7日
第37卷(2009)第3期计算机与数字工程
标准遗传算法进行了改进.但是,在大多数文献资
料中都忽略了一个问题,即在用遗传算法进行参数
优化的过程中,适应度计算耗用了大部分时间和资
源,减少个体适应度的评价次数才能根本提高优化
速度.
针对遗传算法的编码问题,为了保证算法性能
绝大多数文献对PID控制器的三个参数进行二进
制编码(因为二进制编码比实值编码有更好的搜
索能力),但是没有解决解的精度与计算量之间的
矛盾(编码越短,计算量越小,但精度不高;增加码
长能提高精度,但同时加重了计算量),因此需要一
种高性能的遗传算法.
2遗传算法的改进
2.1编码
由于遗传算法的广泛应用,迄今为止研究人员
已提出许多种编码
.总的来说,这些编码方法
可分为二进制编码方法,格雷码编码方法,浮点数
编码方法,符号编码方法等方法.本文使用基于二
进制编码的遗传算法,二进制编码具有以下优点:
1)--进制编码类似于生物染色体的组成,因而
算法易于用生物遗传理论来解释并使得遗传操作
如交叉,变异很容易实现;2)采用二进制编码,算法
处理的模式最多;3)编码,解码操作简单易行;4)符
合最小字符集编码原则;
举例
编码方法如下:
f(-z1,z2)===lO0(x}一z;).4-(1一Lz;)…
一
2.4084z42.408(一1,2)<上
用长度为10位的二进制数编码串分别表示两
个决策变量.该二进制串可以表示从0,1023之
间的1024个不同的数,所以可以将-z,z离散化
为1023个均等的区域,总共有1024个不同的点.
从离散点一2.048到2.048,依次分别对应于
0000000000(O)111l11111l(1023)之间的二进制
编码.再将表示z,的二进制串连接起来,就形
成了一个20位长的二进制串,其中前1O位表示
,后10位表示.27.这就是针对这个函数的二进
制编码方法.如果要解码时,将2O位长的二进制
编码分为各1O位两部分,然后再将它们分别转换
为十进制数字,分别记为,z,可知解码公式为:
z一4.096×一2.048(1,2)(2)
2.2适应度函数的选取
在遗传算法中使用适应度这个概念来度量各个
个体在优化计算中能达到或接近有助于找到最优解
的优良程度.适应度高的个体遗传到下一代的概率
较大,适应度小的个体就会被淘汰掉.适应度函数
是根据目标函数确定的用于区分群体中个体好坏的
标准,是种群进化的驱动力,也是进行选择的唯一依
据,适应度函数是非负且数值越大越好.
本章要对PID控制器的三个参数进行寻优.
为了获取满意的过渡过程的动态特性,采用误差绝
对值时间积分性能指标作为参数选择的最小目标
函数值.为了防止控制能量过大,在目标函数中加
入了控制输入的平方项选用下式作为参数选择的
最优指标:
J—I(叫1le()l+W2(,))dr+3?t
(3)
其中,P(,)为系统误差,U(,)为控制器输出,t为上
升时间,w1,7x.,2,w3为权值.
为了避免超调,采用了惩罚功能,即一旦产生
超调,就将超调量作为最优指标的一项,此时最优
指标为:
J—l(叫1}(,)l4-硼2(,)4-W4{ey()1)
+W3?t(4)
其中Wl,W2,叫3为权值,且W4》3,ey(,)一()
一
(f一1),()为被控对象输出.
则现在适应度函数可以取为:
J『(W1IP(,)I+w2U2()+l(,)f)dr1
+W3.
l
(5)
2.3选择算子
选择(Selection)又称复制(Reproduction),是
在群体中选择生命力强的个体产生下一代群体的
过程.遗传算法使用选择算子来对种群中的个体
进行选择操作;根据每个个体的适应度大小来进行
选择,适应度高的被遗传到下亮等:基于改进遗传算法的PID参数寻
优与控制器设计第37卷
最优解.本文对几种常用的选择经过总结后,提
出如下的一种选择算子.
1)首先计算种群中所有个体的适应度,再对所
有个体的适应度求和;
2)再计算种群中所有个体的适应度与种群适
应度的比值,将每个个体的适应度与适应度之和相
除,再乘于种群个体数;
3)对以上运算得出的数值,凡是大于1的个体
将会被选中进行下步运算;
4)对于本代种群中适应度最高几个个体的直
接进人下一代不参加交叉与变异运算;
5)对于种群中被淘汰的个体的位子,将再次随
机产生个体添满,确保搜索的全局性.
使用这种选择算子,可以很好地保留适应度高
的几个个体不被淘汰和改变,且保证本代适应度最
高的几个个体直接进入下一代种群,不经过交叉,
变异运算,确保优良的遗传基因能够得到遗传,不
良的基因被淘汰.
2.4交叉算子
在自然界的遗传中,两个同源染色体通过交配
而重组,从而产生新的个体.交配重组是生物遗传
和进化过程中的一个主要环节.通过模仿这个环
节,遗传算法使用交叉算子来产生新的个体,它通
过一定的概率从群体中选择两个个体,交叉两个体
的某些位.产生的子代继承了父代的基本特征.
遗传算法中的交叉运算,对两个相互配对的染
色体按照一定的方式交换部分基因,从而形成两个
新的个体.交叉运算可以有效的避免运算过早收
敛,保证搜索的全局性.这也是遗传算法的重要特
征.有许多学者已经研究了很多非常有效的遗传
算子,如:单点交叉,两点交叉,均匀交叉,多点交
叉,顺序交叉,循环交叉,算术交叉等.但是交叉算
子的设计和实现与具体问题密切相关,还要和编码
方式一同考虑,并不是一成不变的,基于本文采用
二进制编码,针对的是PID控制器参数寻优的问
题,采用以下的交叉算子.
由于本文针对的是PID参数寻优的问题,它的
编码是由三个参数的二进制编码连接在一起形成的
二进制串,所以决定采用三点交叉的交叉算子,即让
PID三个参数的二进制串都有一定交叉的概率,且
随机生成交叉点.虽然三点交叉很可能破坏掉好的
个体,但是本文采用的选择算子,对最优秀的个体采
用了保留的方法,确保了最优秀的几个个体不会破
坏,所以在这里采用三点交叉的方法可以增加群体
的多样性,增加寻找到最优解的可能性.
2.5变异算子
在生物的遗传和自然进化过程中,细胞分裂复
制环节可能会因为某些偶然因素影响而产生一些
变化,直接导致生物的某些基因发生变异,从而产
生新的染色体_6],这些变异有些是有益变异,有些
是有害变异.但正是因为变异的存在,使得生物的
多样性成为可能.遗传算法模仿生物遗传和进化
过程中的变异环节,以较小的概率对个体编码串上
的某些位值进行改变,对于本文的二进制编码就是
将”0”变为”l”或者将”1”变为”0”.
遗传算法引入变异运算有以下两个好处:
1)改善遗传算法的局部搜索能力,对于选择和
交叉运算得来的优秀个体,已经很接近于最优解,
通过变异算子来调整个体编码串中的部分基因值,
就可以从局部的角度出发使个体更逼近最优解;
2)维持群体的多样性,防止出现早熟现象.变
异算子用新的基因值替换原有的基因值,从而改变
个体编码的结构,维持群体的多样性.
到目前为止,已经有很多学者研究出一些有效
的变异操作方法.如基本位变异,均匀便宜,边界
变异,非均匀变异,高斯近似变异等.本文采用以
下的变异操作方法.
首先对已经计算出适应度的群体进行升序的
排列,变异概率随适应度的减小而增大,这样使得
优秀个体的变异概率减小,不良个体的变异概率增
大,可以有效地去除不良基因,产生优秀基因.变
异概率如下:
P一0.01一I-1:1:size]?0.01/size(6)
其中size为排序后数列的序号,0.01为变异概率.
3遗传算法早熟问题的防止
早熟问题,即未成熟收敛,这是遗传算法十分
常见的问题.当还未达到全局最优解或满意解的
时候,群体不再产生性能超过父代的后代,群体中
的各个个体非常相似.导致整个群体在找到最优
解之前就收敛到一个非优的个体上.
3.1早熟问题产生的原因
早熟问题产生的主要原因有以下几点:
1)理论与实际的距离,在理论上选择,交叉,变
异操作都是精确且相互间协调,能搜索到整个空
间,但具体实现时很难做到.
2)所求解的问题对于标准遗传算法来说比较
困难时,遗传算法就会偏离寻优方向,即遗传算法
第37卷(2009)第3期计算机与数字工程81
的欺骗问题.
3)遗传算法处理的群体是有限的,因而存在误
差.
上述三个方面都可能产生早熟现象,使群体中
个体的多样性过早的丢失,得到局部最优解.
在遗传算法处理过程的每个环节都有可能遇
到早熟的因素,在迭代的过程中,未得到最优解之
前,群体就失去了多样性,表现如下:
1)在迭代的初期即产生了很高适应度的个体
x;
2)在基于适应度比例的选择下,其他个体被淘
汰,大部分个体与X一致;
3)相同的两个个体进行交叉,不能生成新的个
体;
4)变异生成的个体适应度高但数量少,淘汰的
概率很大;
5)群体中的大部分个体都处于和X一致的状
态.
对于遗传算法的应用,解决早熟问题是必要
的,否则,遗传算法的全局寻优能力和其他优秀品
质将无法体现,遗传算法的优越性也无从谈起.
3.2早熟问题的防止
在分析了早熟问题产生的原因后,就要防止该
现象的出现,维持群体的多样性直至最优解或满意
解出现.本文将采用重新启动的方法来避免早熟
现象.
重新启动是实际应用中最早出现的方法之一,
在遗传算法搜索中遇到早熟问题时,则随机选择一
组初始值重新进行遗传算法操作l6].在本文中,上
一
代的最优个体与本代的最优个体进行比较,如果
两者相等,则说明遗传算法进入了早熟状态,随机
选择一组初始值进行运算,另外为了保存以前的运
算结果,使收敛的最优个体进入下一代进行运算,
保留优秀的基因.
4仿真结果
本文选取被控对象的二阶传递函数如下:
1
G(S)一—$2—+2—S一+1(7)
采样时间为lOOms,输人为阶跃信号.目标函
数选取如下:
r..
J—I(叫1le(,)I+2U())dr+叫3?tJ0
(8)
ifey()<O
J===J(叫1IP()I+训2”(,)+ley(f)1)dt+叫3
?t(9)
P()为误差,U(f)为控制器输出,t为上升时
间;叫1,训,3为权值;()为被控对象的输出.
遗传算法中使用的样本个数为30,交叉概率和
变异概率分别为:P一0.9,Pm一0.003,参数的取值
范围为:K,K,.取一0.799,一0.01,一
1.0,W4—10采用二进制编码,获得优化参数为:PID
整定结果为k一11.2502,k一3.4712,===2.0205
性能指标J一7.4564.代价函数的优化过程和采
用整定后的PID控制阶跃响应如图1和图2所示.
图1代价函数
J的优化过程
5结语
图2整定后的PID
控制阶跃响应图
针对基本遗传算法早熟收敛,局部搜索能力不
足等问题,本文对基本遗传算法进行了一些改进,
主要是对编码,选择算子,交叉算子,变异算子进行
了改进.针对遗传算法早熟收敛的问题采用了重
新启动的方法,经过MATLAB仿真后,证明改进
是有效的,防止了遗传算法早熟收敛的问题.
参考文献
[1]王耀南.智能控制系统[M].长沙:湖南大学出版
社,1996
E2]HollandJH.AdaptationinNaturalandArtificial
Systems[M].AnnArbor:TheUniversityofMichigan
Press,1975
[-3]GrefensteteJJ.optimizationofcontrolparameters
forgeneticalgorithms[-J].IEEETrans,SMC,1989,16(1):
122,128
[-4]Mzhang.DPAthertorLAutomatictuningofopti—
mumPIDcontrollers[J].IEEEprocD,1993,140(3):216,
244
[5]W.Huang,H.N.La叽Usinggeneticalgorithms
tOoptimizecontrollerparametersforHVACsystems[J].
energyandbuidings.1997,26:277~282
E6]雷英杰,张善文,李续武等.MATLAB遗传算法工
具箱及应用[M].西安:西安电子科技大学出版社,2005