热门关键词:

遗传算法与蚁群算法在PID优化中的应用比较

  • 该文件为pdf格式
  • 文件大小:254.5KB
  • 浏览次数
  • 发布时间:2014-09-26
文件介绍:

本资料包含pdf文件1个,下载需要1积分

遗传算法(Genetic Algorithm)是由 J.H.Holand于 20世纪 6O年代提出的-种优化方法。它模拟生物界生存竞争、优胜劣汰、适者生存”的机理,用逐次迭代法搜索寻优。它具备下述特点l1]:(1)是对参数 的编码进行操作,而非参数本身。

(2)直接以目标函数作为 目标值搜索。(3)从多个点开始搜索,搜索效率高,具有并行计算的特点。(4)有极强的容错能力。(5)使用概率搜索,其中的选择、交叉和变异都是随机操作,而不是确定的精确规则。

蚁群算法(Ant Colony Algorithm)是 2O世纪 9O年代由意大利学者 M.Dorigo等人首先提出来的口],它是从蚂蚁觅食的群体行为得到的启示。当-只蚂蚁从-条路径上走过时会留下信息素,其他蚂蚁走过也会 留下信息素,前面蚂蚁的信息素对后面蚂蚁的行为起到指引作用,刚开始蚂蚁胡乱行走,蚂蚁多的路径信息素不断叠加,蚂蚁少的路径信息素逐渐挥发,最终所有蚂蚁走的路径会越来越集中,直到按-条最优路径行走,即算法上的收敛。该算法本身具有以下优点:(1)应用的广泛性:该算法基本可以解决遗传算法应用方面的所有问题,特别擅长离散寻优。(2)分布式计算特征:每只人工蚂蚁的搜索都是独立进行的,可最终的解不会受单个蚂蚁的影响。(3)易于与其他算法结合:很容易和其他算法结合,改善算法性能。

控制领域的 PID参数优化是我们在控制中经常遇到的,它是连续空间寻优问题。本文将应用二进制编码遗传算法和-种求解连续空间的蚁群算法分别对 PID参数进行寻优比较。

1 基于遗传算法的 PID整定原理口]1.1 参数的确定及表示首先确定参数范围,-般由用户给定,然后根据精度需要对其进行编码。若取二进制编码,则用每个二进制编码串表示- 个参数,把所有二进制编码串连接起来组成-个长的二进制串,该字串为遗传算法操作对象。

1.2 选取初始种群由计算机随机产生 O~1之间随机数,规定 O~O.5表示 0,0.5~1表示 1。根据计算复杂程度来确定种群规模。

1.3 适应度函数的选取衡量控制系统好坏的性能指标:系统的稳定性、瞬态质量和稳态误差。同时,实际控制系统由于能量有限,其输出信号也不可能无限大。因此,给出系统的控制量、误差值和曲线上升时间作为约束条件,构造目标函数 J(z)。目标函数确定后,将其转化为适应度函数,( )进行寻优。最优控制参数就是在满足约束条件下使适应度函数 厂(z)最大时,z所对应的参数。

1141.4 遗传算法操作首先,用轮盘法”进行复制 ,即通过适应度 函数求适应度值,复制概率大的在下-代有较多的子代,少的会逐渐被淘汰。

其次,按照 P 概率进行单点交叉。最后,按照 P 概率进行变异操作。初始种群样本经过复制、交叉及变异得到了新-代种群,将该代种群二进制码代入适应度函数。如此不断重复,当满足结束条件时则停止循环。

利用遗传算法优化 忌 、 、 的具体步骤如下:(1)根据经验确定每个参数的大概取值范围,根据精度要求确定编码长度。(2)由随机函数产生 n个初始种群样本 P(O)。(3)把种群编码换算成参数代入目标函数计算,获得函数值 ,控制指标J越小越好。因为轮盘法”复制概率要越大越好,同时 J的计1算值比较小,所以这里取适应度函数 厂-l-。(4)对种群J J 1P( )进行复制、交叉、变异操作,生成下-代种群 P(t1)。

(5)重复步骤(3)和(4),直至参数收敛或达到预定的指标。

2 基于蚁群算法的 PID整定原理基本蚁群算法是用来解决离散空间问题的,针对连续空间求解,这种算法的寻优要通过以下步骤实现。

2.1 连续空间离散化我们以求解非线性规划问题为例进行说明,如下式 :minF( 1,z2, ,z )使 a 1321Ⅱ X2a z ≥6 ( -1,2,,r)。这里 F为任-非线形函数,约束条件构成 上的-个凸包,我们可以使用不等式变换的方法求得包含这个凸包的最小 n维立方体 ,设该立方体为:Ii≤z ≤ (i-1,2,,,z)r - 1 ]选取-定的子区问长度length,设是 -l 蒜l,将该立方体第 i维分量分成志 个子区间,其中的第 个子区间为 ( -1)·length,min(u ,li ·length)]。

2.2 转移概率准则设共有 7n只蚂蚁,将解的 n维分量看成 n个顶点,第 i个顶点代表第i维分量,每个顶点有 个子区间,转移概率准则指蚂蚁从每个顶点按照-定的概率到其内部区间的转移,我们记其中第 条连线上在t时刻的信息量为r ,它随蚂蚁信息素调整在动态变化。每只蚂蚁都要从第 1个顶点按照-定的策略选择该顶点的-个子区间,再从第 2个顶点选择-个子区间最终到达第 ”个顶点,选择第 n个顶点的子区间,把所有子区间构成-条连线,即蚂蚁的路径。每只蚂蚁所走过的路径都代表-个解的每-个分量所在的子区间。根据下面公式选取第 i个分量的值所在的子区间号 : 。

f argmaxr l1≤ ≤ ) 若 g≤qcJ- , herwy0 oth i se l其中,q值在(o,1)内随机选取,q0是最佳分量值选取概率,例如可取 qoO.8,表示信息量最大的子区间以概率 0.8被选中,其余的子区间选中概率为 0.2。arg max 1≤ ≤ 表示分量 i的信息量最大的子区间号。t时刻蚂蚁 k在[1,k ]内选择 。区间的概率:三 。( )- 1"60/ Z'ik(f)2.3 局部调整准则局部调整在每只蚂蚁完成-次从顶点 i到区问J的转移后进行 ,将所走过的区间上的信息素强度做如下局部更新:( )-(1-po)·r ( ) ·min l O≤r≤ 其中, [O,13为局部信息素挥发指数 ,局部更新的目的是降低被选中区间的信息量,减少蚂蚁搜索的停滞现象。

2.4 全局调整准则全局调整在所有蚂蚁都完成-次搜索后进行,信息素更新准则:r ( 1)p·r ( )Ar信息增量 △ 表示为:Arij-∑- 1△ 表示本次循环中蚂蚁 k在顶点i的 区间留下的信息量,它的计算公式根据模型而定,例如在最常用的 ant circlesystem模型中:f( 若蚂蚁 k在本次循环中经过顶点 的 区间Arij 1o otherwise式中,Q为比例系数;L 为蚂蚁k在本次循环中所走的路径的长度。

2.5 候选组选择、交叉、变异将控制指标值转化为适应度值,在各个子区间已有的值中选择若干个适应度好的解的分量作为候选组,在候选组里随机选 2个值 ,然后交叉、变异 ,获得 1个新值作为解的相应分量。

在每次迭代计算中,候选组值不断被更好的解的分量值更新。

候选组选择、交叉、变异过程如下:(1)候选值的个数 g -0,即候选组 里没有候选值,则产生 1个 [ ( -1)·length,min(u ,z ·length)]间的随机数作为解的分量值。(2)若gi-1,即候选组里只有 1个候选值,则直接对这个候选值进行变异操作。(3)若 g -2,即候选组里有 2个候选值 ,则直接对这 2个候选值进行交叉、变异等操作。(4)否则,选择 2个分量进行交叉、变异操作。

在选择操作中,根据候选组里所有候选值的适应度大小,用轮盘法”选取 2个值。设第 个值对应的解的适应度值为j, ,则该解被选中的概率为 。

1在交叉操作中,设所选择的 2个值为 z (1)和 薯(2),其适应度分别为 ,1,-厂2,且 > ,我们以概率 p- 进行交叉操作。

随机产生pE[o,1],若 < -则进行交叉操作,取随机数 ),∈[O,1],交叉结果值 z订。 -X (1)),·[z (2)-X (1)];若 >户- ,则不进行交叉操作,取 如 -t(1)。

在变异操作中,以概率 进行变异操作,随机产生 P∈Gongyi vu-snu!三兰量鳖 鍪[O,1],若 P

2.6 蚁群算法步骤利用蚁群算法优化 忌 k k 的具体步骤如下:2.6.1 初始化根据经验确定 、是 、k 的取值范围,将每个变量区间分成等份,设置蚁群初始参数,记所有变量每个区间的初始化信息素强度为 。随机产生M 个初始解,计算解的适应度值,并确定M个初始解的各个变量所属的子区间,产生各个子区间上的相应变量的候选组。根据M 个初始解的适应度值,进行第-次全局信息素更新。为了避免没有蚂蚁爬过的区间信息素下降到-个极小值 ,使解过早局部收敛,同时设定区间上信息素的下限值。

2.6.2 迭代过程while(不满足中止条件时)for i-1 to n do(对 n个变量循环,这里 -3)for k-1 tom do(对m只蚂蚁循环)根据 q。和 ( )选取第 i个分量的子区间 ;对第 个子区间上的信息量r 进行局部更新;对区间 的候选组用选择、交叉、变异操作生成第 i个分量的新解;计算新解的适应度 ;)把蚂蚁产生的 m个新解与原M 个解合并,进行适应度排序,淘汰 m个较差者,计算新的M 个值的候选组;各区问信息量进行全局信息素更新,设定区间上信息素的下限值 ;3 仿真实验优化控制对象为-阶延迟传递函数 G(s)- e-6s采样时间为 1 ms,输入指令为-阶跃信号。为获取满意的过渡过程动态特性,采用误差绝对值时间积分性能指标作为参数选择的最小 目标函数。同时为了防止控制能量过大,在 目标函数中加入控制输入的平方项。选用下式作为参数选取的最优指标3]:J- [ l e( )lW2 ( )]dt ·式中, 为系统误差;( )为控制器输出;t 为上升时间;Wl、W2、毗 为权值。

为了避免超调,采用惩罚功能,即-旦产生超调,将超调量作为最优指标的-项,此时最优指标为:if g< 0J: [ I 8( )lW2 ( )W4 l 8( )1]出十w3·t机电信息 2013年第 15期总第369期 115 三至量堡 G。ngYi vu u式中, 为权值,且 》 。

3.1 遗传算法运行仿真采用二进制编码方式,用长度为 1O位的二进制编码串来分别表示 3个决策变量 忌 、尼 、 。遗传算法中使用的样本个数为 3o,终止运行代数100,交叉概率和变异概率分别为:Pc、P 。参数 的取值范围为[O,100], 、k 的取值范围为[O,1]。根据控制对象特征 ,这里取 撕 -0.999, -0.001, -0,-O。表 1为 P 、 取不同值的仿真结果。

表 1 遗传算法运行仿真参数表 2 蚁群算法运行仿真参数从表 1的仿真结果可以看出,遗传算法在 PP 取不同值的情况下,优化的性能好坏会有所差别,但是总体效果差别不大。这说明遗传算法优化 PID参数调试简单,对参数调试要求不高,适合快速调试。

3.2 蚁群算法运行仿真参数 的取值范围为[O,1o0],走 、 的取值范围为[o,1],每个变量区间进行 100等分。设定样本个数为 3O,蚁群规模N-20,终止运行代数 100,初始信息素强度Vo,全局信息素释放计算常数Q,全局信息素残留因子P,局部信息素挥发指数,最佳解分量值所在的子区间选择概率 qo,交叉概率 P ,变异概率 。根据控制对象特征,这里取 -0.999,v.dJ2-0.001,W3-O,W4-0。表 2为ro、Q、P、Oo、qo、p。 、p 取不同值的仿真结果。

从表 2的仿真结果可以看 出,蚁群算法也可用于 PID优化,因为参数较多,所以调试比遗传算法复杂,当参数选择不匹配时,优化差别会很大,不适合快速调试。

4 结语本文分别用遗传算法和蚁群算法对 PID优化运算进行了仿真,结果表明2种算法都可以解决优化问题,而且优化性能差不多,但是蚁群算法的调试要比遗传算法复杂得多。在这里 ,蚁群算法的收敛速度也比不过遗传算法,不过蚁群算法作为-种新的热门算法,有很广阔的发展前景。

正在加载...请等待或刷新页面...
发表评论
验证码 验证码加载失败