《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 业界动态 > 基于非线性控制系统优化的遗传算法研究

基于非线性控制系统优化的遗传算法研究

2009-02-17
作者:甘俊英1 张有为2

  摘 要: 针对非线性控制系统参数优化问题,结合非线性控制系统理论、最优化理论及遗传算法,提出了一种新的仿真优化方法,该方法利用遗传算法来求解非线性控制系统参数优化问题。
  关键词: 遗传算法 参数优化方法 非线性控制系统


  控制系统参数优化方法已有许多文献作了论述[1][2][3]
  这些方法大多是基于估计目标函数对优化变量的梯度信息进行优化。而对非线性控制系统参数优化问题,由于控制系统具有非线性特性,基于估计目标函数对优化变量的梯度信息进行优化的方法就显得无能为力了。
  遗传算法是最新兴起的智能计算技术,是一种借鉴生物界自然选择和自然遗传机制的高度并行、随机自适应搜索算法,具有能快速有效地搜索复杂、高度非线性的多维空间的特点,通过反复迭代,最终能够找到全局最优。由于遗传算法是在解空间的多个区域内进行搜索,能以较大的概率跳出局部最优,因此可找到整体最优解。仿真结果表明,该方法是一种有效的方法。它主要用于处理最优化问题和机器学习。隐含并行性和有效利用全局信息是遗传算法的两大显著特点,前者使遗传算法只须检测少量的结构就能反映搜索空间的大量区域;后者使遗传算法具有稳健性。遗传算法尤其适于处理传统搜索方法解决不了的复杂的非线性问题。
  本文提出的仿真优化方法采用了实数编码方案,确定了适应值函数的度量,选择了群体规模、代数、遗传算子及其概率参数、停止准则等控制参数初始值,并给出了仿真实例。结果表明,该方法是一种有效的非线性控制系统参数优化方法。
1 问题的描述
1.1 函数优化问题的描述

  函数优化问题可以描述为:
  

  这里SRn称为搜索空间,f:S→R称为目标函数,(1)式描述的优化问题称为极大化问题,(2)式描述的称为极小化问题。
  定义1 对最优化问题(1)式,设x·∈S,若存在δ>0,使得当x∈S∩{x:‖x-x·‖<δ}时有:
  f(x·)≥f(x)      (3)
  则称x·是f在S上的一个局部最优点,解f(x·)称为一个局部最优值。若(3)式中的严格不等式成立,则x·和f(x·)分别称为严格局部最优点和严格局部最优值。
  定义2 对最优化问题(1)式,设x·∈S,若存在δ>0,使得对任意x·∈S都有:
  f(x·)≥f(x)      (4)
  则称x·是f在S上的一个全局极大点或整体最优点,f(x·)称为整体最优值。若(4)式中的严格不等式成立,则x·和f(x·)分别称为严格整体最优点和严格整体最优值。
1.2 遗传算法的描述
  遗传算法是从任一初始化的群体出发,通过随机选择、杂交和变异等遗传操作,使群体一代一代地进化到搜索空间中越来越好的区域,直至抵达最优解点,即高适应值点。该算法可表述为:
  Ωk=Uk∪Vk
  Uk={I1,I2…,IM}
  Vk={IM+1,IM+2…,IN}
  Ec:Ii→Si
  Dc:Si→Ii
  Fi=ff(Ii) 1≤i≤N
其中:Ωk——第k代群体;
   Uk——第k代群体中的父代;
   Vk——第k代群体中的子代;
   Ik——第k代群体中的每个个体;
   Ec——编码算子;
   Dc——译码算子;
   Si——个体Ii被编码后的码串a1a2…a1
   ff——适应值函数。
  遗传操作的随机选择可描述为:
  
  表示适应值越大的个体进入子代且机会越多,执行选择的概率就越高。
  遗传操作的杂交可描述为:
  
  如果随机实数小于杂交率Pc,则执行杂交,否则执行复制。
  遗传操作的变异可描述为:

     ELSE NULL

 如果随机实数小于变异率Pm,则产生一随机整数r,并在第r位执行变异。
2 基于非线性控制系统优化的遗传算法
  非线性控制系统参数优化问题属于非线性优化问题。对于非线性优化问题,只有在函数性质比较好(可微、驻点能解析地计算等)的情况下,才能获得满意的结果。对于复杂的函数优化问题,一般只能采用基于迭代原理的数值解法,但这些解法通常难以找到全局最优解,而且仍然要对求解函数的性质作诸多的限制。而遗传算法在解决这类问题时通常能发挥它的优势。
  当遗传算法用于求解非线性控制系统参数优化问题时,需要解决两个问题:非线性控制系统的模型仿真和遗传算法的设计。两者联系的纽带是目标函数的获取以及目标函数转换成适应值函数。在非线性控制系统参数优化方法中,目标函数可采用多种定义,如误差平方积分、时间乘误差平方积分、误差绝对值积分及加权二次型性能指标等,它取决于非线性控制系统的误差。非线性控制系统参数优化的前提是希望产生的误差最小,求解目标很自然地被表示成某个目标函数f(x)的极小化,而不是某个适应值函数F(x)的极大化。因此,常常需要通过一次或多次变换把目标函数f(x)转化为适应值函数F(x)。目前经常用到的适应值函数变换方法有:线性比例变换、幂比例变换、指数比例变换及引入某一比例参数等。一旦获得了适应值函数,即可进行遗传操作,所以,非线性控制系统的模型仿真是不能独立于遗传算法的设计的,两者应统一起来考虑。其程序流程图如图1所示。


  首先随机生成一初始群体,并确定编码方案及遗传算法初始化参数;接着对群体中的个体进行译码,该译码值即为非线性控制系统的寻优参数,这样就可对非线性控制系统进行动态仿真,获得误差目标函数;再通过一函数变换,目标函数即可转化成适应值函数;最后根据适应值的大小,执行选择、杂交和变异等遗传操作,直到满足终止条件为止。
  对于非线性控制系统的模型仿真,本文采用的是MATLAB的SIMULINK软件,由于寻优参数是变量,因此对不同的问题要设计不同的S函数,可参阅文献[4][5][6]。对于遗传算法的设计,需要考虑下面几方面的问题:
  (1)确定编码方案:编码方案的选择对算法的性能、效率等产生很大的影响。遗传算法在求解高维或复杂问题时常常使用实数编码。实数编码表示比较自然,而且较易引入非线性控制系统领域内的知识。搜索空间S上的每个点x可表示为一个n维实向量,其中n表示遗传算法优化参数的个数。
  (2)控制参数初始化的确定:选择一个整数M作为群体规模的参数,然后从S上随机地选取M个点x(i,0),i=1…,M,这些点组成初始群体P(0)={x(1,0),…,x(M,0)}。群体规模影响遗传算法的最终性能和效率。群体规模的经验取值一般为M=20~100。
  杂交概率是控制杂交算子的应用频率,杂交率越高,群体中串的更新就越快,这样高性能的串被破坏得也就越快;而杂交率过低,搜索可能会停滞不前。杂交率的经验取值一般为pc=0.60~0.95。变异是增加群体的多样性,变异概率经验取值一般为pm=0.001~0.01。
  (3)确定适应值函数:适应值用来区分群体中个体的好坏,适应值越大的个体性能越好,反之,适应值越小的个体性能越差。遗传算法正是基于适应值对个体进行选择,以保证适应值好的个体有机会在下一代中产生更多的子个体。
  设f(x)为非线性控制系统的目标函数,Cmax为其最大值,则适应值函数F(x)可表示为:
  
  其中,x∈SRn,f(x)为一泛函,表示控制系统误差函数的函数。
  (4)确定选择策略:优胜劣汰的选择机制使得适应值大的解有较高的存活概率,这是遗传算法与一般搜索算法的主要区别之一。对每个个体x(i,k),其生存概率为:
  

  其中k表示代数,则每个个体的繁殖量为Ni=round(pik·N),其中round(x)表示与x距离最小的整数。显然,个体x(i,k)的生存概率pik越大,繁殖量Ni也越大,进行交配的机会也就越多。
  (5)设计遗传算子:遗传算子包括繁殖算子、杂交算子和变异算子。杂交算子是模拟生物界的有性繁殖,它的引入是遗传算法区别于其它所有优化算法的根本所在,同时也是遗传算法中最重要的部分。变异算子可视为与繁殖算子或杂交算子一起连续发生的操作,故一个给定个体可以在一代内进行繁殖和变异,或进行杂交和变异。
  在非线性控制系统参数优化中,由于采用了实数编码方案,设计遗传算子时就应以实数编码方案为前提。在实数编码时,杂交算子有离散杂交和算术杂交两种方式,本文采用离散杂交方式。在实数编码时,变异算子有均匀性变异、正态性变异、非一致性变异、自适应性变异和多级变异几种方式,本文采用均匀性变异算子。
  (6)确定算法的终止准则:由于遗传算法没有利用目标函数的梯度等信息,所以无法确定个体在解空间的位置,从而无法用传统的方法来判定算法的收敛与否以终止算法。通常是预先规定一个最大代数或算法在连续多少代以后解的适应值没有明显改进时,即终止。
3 仿真实例
  已知一非线性控制系统,由饱和非线性环节、速率限制非线性环节和三阶系统组成,系统参数及其结构框图如图2所示。这是工业控制系统中存在较多的一种典型控制过程,该系统的单位阶跃响应如图3所示。从系统的单位阶跃响应可以看出,这是一不稳定的振荡非线性系统。对这一不稳定的非线性控制系统,通常采用PID调节器进行校正,校正后其结构框图如图4所示。


  设PID调节器的传递函数为:
  
  其中,KP、TI、TD分别为PID调节器比例、积分、微分的寻优参数。用MATLAB仿真时,将PID调节器设计为比例、积分、微分参变量的S函数,这样可以方便遗传算法的求解。
  从图4可知,误差信号为e(t)=r(t)-y(t),取目标函数为误差平方积分,即,其中积分上限t应以调节时间为基准,选得足够大,本文选50s或100s。根据目标函数的定义及误差的大小,从目标函数到适应值函数的变换为:
  
  仿真实现时,设PID调节器给定最优化初始值为KP=0.63,TI=0.0504s,TD=1.9688s。对于这组初始值,可得系统的单位阶跃响应,如图5所示。采用图1所示的遗传算法时,设群体规模N=10,杂交概率pc=0.25,变异概率pm=0.001,最大代数k=10,因此可得PID调节器最优化参数值为KP=3.6232,TI=0.1175s,TD=16.9950s,此时系统的单位阶跃响应如图6所示。采用文献[6]所述的常规方法进行优化时,最优化参数为KPP=1.3353,TI=0.1547s,TD=8.3280s,此时系统的单位阶跃响应如图7所示。

  


  从上述仿真结果可以看出,采用遗传算法进行非线性控制系统参数优化时,系统的超调量较低、上升时间较短、调节时间较短,反映了系统的稳定性和快速性都较好。而采用文献[6]所述的常规方法进行优化时,由于系统包含非线性环节,寻优时有时容易陷入局部最优,而且占用CPU时间较长、迭代次数较多,运行速度也就较慢。因此,对于非线性控制系统参数优化问题,要想获得全局最优,宜采用遗传算法来求解。
  本文针对非线性控制系统参数优化问题,采用遗传算法来求全局最优解。遗传算法是利用参变量的某种编码,从一个点的群体开始搜索,依据适应值函数信息,无须导数或其它辅助信息,使用概率转移规则,因此能够找到全局最优。而常规优化方法则是采用启发式策略,在单个猜测解的邻域内探寻,即使算法中允许跳到解空间中更远的部分,这些启发式算法也往往容易陷入局部最优。另外,遗传算法的本质并行性使得它非常适合大规模并行计算机。因此,遗传算法在计算机科学的领域内必将展示巨大的潜力。
参考文献
1 陈宗海.过程系统建模与仿真.合肥:中国科技大学出版社,1997
2 解可新,韩立兴,林友联. 最优化方法.天津:天津大学出版社,1997
3 符曦.系统最优化及控制.北京:机械工业出版社,1995
4 何国辉,甘俊英.控制系统校正环节优化设计的计算机辅助分析.自动化仪表,1998;19(2):31~33
5 甘俊英,何国辉.基于MATLAB的控制系统校正环节优化设计.电气自动化,1999;21(1): 20~21
6 甘俊英,陆桂芳.控制系统多变量函数最优化求解方法.99’学术论文集,中国科学技术大学出版社,1999

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。