多变异遗传算法及其在非线性控制中的应用*

2022-11-25 12:34杨茂华
组合机床与自动化加工技术 2022年11期
关键词:微分遗传算法变异

杨茂华,谭 飞,b

(四川轻化工大学a.自动化与信息工程学院;b.人工智能四川省重点实验室,自贡 643000)

0 引言

遗传算法是模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法[1]。由于它优化求解不依赖函数本身,具有隐含并行性,非常适合于并行计算,且具有全局搜索能力、适用范围广、鲁棒性强,不需要太多苛刻条件得到了工程的较多应用[2]。在自动控制领域的系统辨识[3],神经网络[3],非线性系统[4],控制器优化[5]等方面均有研究发展。目前遗传算法仍存在编码、计算效率,精度等方面的一些问题需要解决[6]。LI、任芳等[7-9]证明了最优个体保留到下一代的遗传算法具有全局收敛性,这表明遗传算法设计需保留最优个体到下一代以保证算法全局收敛。

智能算法的发展为复杂函数的求解提供了一种解决途径。遗传算法在应用中多以二进制编码进行运算,因为它容易实现0,1间的变异从而保证较好的全局性,但因编码长,计算相对实数编码更耗时[10]。本文讨论一种多变异策略的实数编码遗传算法设计,并用于求解非线性控制系统最优参数,以满足控制性能快速准确的要求。

1 多变异遗传算法设计

1.1 遗传算法的编码与解码

遗传算法的编码方法有很多[11-13]。各种编码都有自己的特点,合理编码是提高计算效率的保证。

本文讨论归一化实数编码的多变异遗传算法设计求解连续定义域函数最大值问题。算法借助有限元的思想进行设计。把0~1分为n个有限单元(n为大于0的自然数),每个单元随机取一点作为该单元的值,以便实现补元变异运算。如图1所示,设n=10,则有d1∈[0,0.1),…,d10∈[0.9,1],d1的值为[0,0.1)里的任意的一点。

图1 归一化有限元分解

设算法优化的问题如下:

z=maxf(x),x=(x1,x2,…,xm)∈S⊆Rm

(1)

式中,xi∈[ai,bi],i=1,2,…,m;ai、bi∈R分别为xi的下界和上界。

(2)

此编码便于实现有限补元变异,具有更好的全局搜索性。这种归一化处理,不需处理符号位,不需考虑各变量定义域的宽度。

(3)

1.2 种群初始化

在目标函数定义域内随机均匀取p个点,并求取每个点的适应值构成一个列向量Z,同时每个点按式(2)转换构成交叉备选库。库中的p个变量坐标点值构成矩阵Vpm,编码矩阵Cpm。变量矩阵,编码矩阵每行一一对应,按适应值从大到小排序,最优个体在第一位,便于后继操作。

1.3 精英交叉

(4)

(5)

式中,r∈(0,1),是一个均匀分布的随机数;n为设定的有限元总数。

当目标函数变量数少于3个,随机抽取一维变量,按式(6)、式(7)所示的常规浮点交叉方法产生子代:

(6)

(7)

式中,α为一个0~1的随机数。

1.4 选择

所有交叉完成后,译码子代染色体,计算适应值,与父代一起排序,去掉适应值和个体元素极相似的个体,然后进行选择淘汰,选取排在前的u个染色进入下一父代备选库。u通常大于等于有限元数n+1~10倍变量数。该方法可称作两代重排。

1.5 算法变异策略设计

1.5.1 基因补元变异

变异操作的主要作用是补充等位基因由于选择淘汰造成的基因缺失,提高算法的全局收敛性。传统的变异操作是指按概率随机改变个体中基因值,这种操作存在丢失基因补充不完整,使算法局部可能。本算法搜索等位基因中缺失的有限元元素值,用最优个体修改其等位基因为缺失值,补充到备选库中,保证迭代交叉过程备选库编码阵每列各基因元素至少存在一份。该方法称为补元变异。

基因补元操作采用最优个体修改成需要补进的基因,可大概率实现缺失基因与优秀基因组合。

补元操作方法是把备选库基因编码阵C×n并向下截尾取整得矩阵C′,以C′为基础查找各列缺失的0~n-1的有限元基因,然后补进。每次补进一个基因,当m列补进完成后得到的个体加入到备选库编码阵C中,同时译码加入到V和Z阵中相应位置。同样方法完成0~n-1单元的查找补进,基因补全后按适应值从大到小对各阵进行排序。

1.5.2 差分变异

采用精英原则,在备选库中加入s条差分变异基因,其方法如式(8)所示。

(8)

1.5.3 重生变异

重生就是随机从目标函数当前定义域中随机生成多个点,如式(9)所示,译码并加入到父代备选库中,增加备选库基因模式的多样性,同时做好排序。这种重生策略是遗传算法收敛于全局最优的一种方法。重生策略也相当于是一种变异计算。

x′=(b-a)*r+a

(9)

式中,a为变量下界;b为各变量上界;r为随机生成的均匀分布于[0,1]间行向量;*为对应元素相乘,不是矩阵乘。

1.6 算法运算步骤

采用有限元编码完成第1.1~1.5节的算法结构步骤如下:

步骤1:设置算法参数;

步骤2:产生初始种群并排序,编码;

步骤3:进入迭代循环;

步骤4:交叉操作,译码评价;

步骤5:两代一起排序;去除相似基因;选择;

步骤6:趋势变异;基因补全;

步骤7:重生变异操作;加入备选库并排序;

步骤8:保存最佳个体信息;

步骤9:判断是否满足终止条件,满足就转步骤10,否则转步骤4;

步骤10:循环结束,显示寻优结果,算法结束。

需要说明的是算法通过选择操作得到的只是部分备选库个体,再经过差分变异、补元变异和重生变异等方法,才得到完整的下一代交叉操作的父代种群备选库。备选库种群中只有被联赛选到的才参与交叉运算。

算法的停止条件可设置多个,到达最大代数、最大评价次数或满足寻优精度等条件即可停止,显示参数和结果,完成计算。

2 算法全局收敛性分析

该算法在交叉操作时采用精英策略,称为多变异精英遗传算法(multi-mutation elite genetic algorithm,MMEGA);若两个父体都用联赛选择记为联赛遗传算法(league matches genetic algorithm,LMGA)。由于算法都采用补元策略和重生策略,及时从搜索域随机补充新个体,任给一个足够小的正数δ,有全局最优点x*所在的可接受域D满足式(6),使备选库种群基因模式丰富多样,保证了全局性搜索。

D={x|f(x*)-f(x)|<δ,x∈Rn}

(10)

采用文献[14]的方法,设随机事件序列Am。

Am={ω|x∈D}

(11)

通过每次随机抽取落入D的概率为p,第m次迭代落入D的概率为P(Am)。

P(Am)=(1-p)m-1p

(12)

在m次随机取点中取到可接受域D中的概率为(p-(1-p)mp)/(1-p),当m趋于足够大时概率值达到1,算法全局收敛。

3 算法测试

算法备选库种群规模取100个,交叉得80个个体,评价后选择较优适应值的40个留下,差分变异得到15个,设有限元数n为40,基因补全可最多得40个,余下的由重生操作产生。

本文的两种算法与文献[15]的基于权重的粒子群(QPSO)算法进行比较。测试函数如下所列Benchmark函数,如式(13)~式(17)所示。

本文算法采用MATLAB2020a在R7-4800H、4G内存、Win10系统下编程实现。函数优化停止条件:①达到最大代数2000或评价次数200 000;②全局最优值绝对误差小于阀值1E-10。只要任何一个条件满足就终止迭代进化。采用30代独立运行进行统计比较。

(13)

(14)

(15)

(16)

(17)

上述5个函数的典型收敛情况统计于表1,从表中可以看出,MMEGA在多变异策略的辅助下取得了更好的收敛结果。MMEGA算法与QPSO算法比较,也相对更好,这些说明了基于精英策略的多重变异有限元遗传算法在解决复杂优化问题是有效性的。多变异策略和精英交叉方法使算法收敛的准确性和快速性得到了提高。

表1 函数在30维变量30次独立运行下的均值与方差

4 非线性控制设计与参数优化

4.1 常规PID控制结果

文献[16]中,取典型热工过程对象的传递函数式(18),系统的控制结构如图2所示,控制器如式(19)所示,是不完全微分PID算式,工程上微分增益Kd不宜过大,本算法取值10。希望系统阶跃响应调整时间小于50 s,超调量不大于2%。原系统采用PID控制,采用粒子群算法对控制参数优化,调节时间151 s,结果不理想。

图2 控制系统结构

为改善控制质量,增加快速性,减小超调令,重定义优化目标函数如式(20)所示;式中ts为系统的调整时间(2%标准)。目标函数采用对系统超调加权500倍惩罚,希望系统响应快且不出现大的超调。把本文设计的MMEGA算法用于优化式(19)的PID控制器参数,仿真步长0.05 s,其调整时间结果67.4 s,超调量0.6%,仍不满足要求。

G(s)=0.75e-8.1s/(1+61.4s)2

(18)

(19)

(20)

4.2 非线性PID控制设计

系统一典型实际微分PID控制时控制器的比例P,积分I和微分D的控制分量绘制如图3所示,比例控制反应快,但仔细分析可见比例P控制量为正时,微分控制量有正有负,存在相互抵消的控制时段如图3中ab段。改进控制策略,采用非线性方法,希望在大偏差时用较大的快速比例作用使系统输出向目标靠拢,减小偏差;在小偏差时以系统稳定为重要条件,减小比例控制作用,但大比例也不能过大到使系统失稳,应有饱和特征。根据这些分析设计非线性比例控制系数算式如式(21)所示。

图3 PID控制器的分量曲线

Kp=x1+x2exp(|e(t)|)/(exp(-e(t))+exp(e(t)))

(21)

式中,e(t)为系统实时偏差;x1和x2为可调系数;Kp的最大值为x1+x2,以系统临界增益为限。

在PID控制中的积分控制作用主要是用来消除系统的跟踪误差,在偏差较大时积分作用强累积的位置控制量会较大,如果位置控制量大于系统稳态需要的激励就必须通过反向偏差取释放,从而不可避免产生加大的超调,实际表现为系统稳定性下降。改进的非线性积分增益,在偏差较大时用小积分增益,偏差大时采用增大积分增益,及时快速学习位置控制量。改进的非线性积分系数如式(22)所示:

Ki=1/Ti=1/x3+1/x4/exp(|e(t)|)

(22)

式中,x3和x4为两个可调系数,采用倒数是希望和常规PID的积分时间统一量纲。

微分控制作用的引入是为了预测系统输出,做好控制补偿,由于微分对噪声敏感,说以改用实际微分更容易满足工业控制要求。图3中微分作用与比例控制有抵消作用,这种作用目的是减小系统超调,但在大偏差时抵消过多比例控制作用不利于提高系统的快速性,改进的微分作用希望在大偏差时弱些,小偏差时加强一点,并且不改变原来的微分控制特性,在偏差反向时与比例控制作用合力消除误差,这样更有利于及时补偿小的扰动引起的误差。改进的非线性微分控制时间系数如式(23)所示:

Kd=x5+x6exp(e(t)sign(de/dt))

(23)

式中,x5和x6为两个可调系数;sign为符号函数,偏差导数大于等于0时取1,否则取-1。基本控制算式仍用式(14)。

式(21)~式(23)是带入实际微分PID控制器式(19),构成非线性PID(NPID)控制算式,NPID比常规PID式(19)多了3个可调参数x2、x4和x6,通过适当设置可把NPID变为常规PID控制,这对工业应用来说是一种灵活的选择。这个NPID比文献[17]、文献[18]的设计相对简单且更合理。

4.3 NPID控制器参数优化

采用设计的MMEGA算法对NPID控制系统的6个控制参数进行优化,优化步骤如第1.6节,第一次优化设各参数设置优化范围为(0,500),进行初步优化,再适当减小范围提高精度。种群60,其中差分变异5个,补元变异10个,随机重生变异2个,最大评价6000次。每次评价都对系统进行仿真,并求取指标式(20)。系统仿真时间0.05 s,仿真最大时间100 s。采用5次独立优化,取最优结果如表2所示。系统优化后的阶跃响应曲线如图4所示。

表2 算法优化控制参数结果比较

图4 热工控制系统的阶跃响应曲线

可以看到,采用非线性PID控制,比PSO算法和ZN法的得到的结果在系统快速和平稳性上获了明显提高,调整时间46 s,且超调小,比较常规PID控制,明显提高了系统响应的快速和平稳性。达到系统给定控制要求。

这说明常规PID控制满足不了控制要求的地方可考虑采用非线性控制方法,同时也表明了本文设计的多变异遗传算法整定非线性PID的控制参数是一种可行的方法。

5 结论

本文设计出了一种基于实时精英策略的多变异的实数编码遗传算法,具有全局优化和精确求解的能力。其原理简单,编码方便,利用精英学习的快速收敛能力、有向差分变异的求精能力、补元和重生策略保证了种群的多样性和收敛的全局性,算法的全局最优化能力得到了极大提高,避免了局部收敛。这些方法值得其他智能优化算法设计时学习。通过测试函数仿真实验表明多变异遗传算法与QPSO算法比较具有良好的性能,并且快速稳定收敛,性能表现优越。再将这种算法用于常规控制和设计的非线性控制器参数的优化,使热工控制系统性能得到较好提升,满足了控制的性能要求,较ZN法和PSO法的结果在系统快速和平稳性获得了明显提高,说明该算法具有较好解决工程实际优化问题的价值。这个过程也说明非线性控制解决常规控制不足是一条可选途径。

猜你喜欢
微分遗传算法变异
一类带有Slit-strips型积分边值条件的分数阶微分方程及微分包含解的存在性
基于遗传算法的高精度事故重建与损伤分析
变异
基于遗传算法的模糊控制在过热汽温控制系统优化中的应用
基于遗传算法的智能交通灯控制研究
基于跟踪微分器的高超声速飞行器减步控制
微分在近似计算中的应用
基于微分对策理论的两车碰撞问题
变异的蚊子
病毒的变异