遗传算法的参数整定报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于遗传算法的PID 控制器参数整定报告
一、 遗传算法。
遗传算法(GAs )是基于自然界生物进化机制的搜索寻优技术。用遗传算法来整定PID 参数,可以提高优化性能,对控制系统有良好的控制精度、动态性能和鲁棒性。 一般的,Gas 包括三个基本要素:复制、交叉和突变。
二、
PID Optimal-Tuning
PID 控制:对偏差信号e(t)进行比例、积分和微分运算变换后形成的一种控制规律。
(1)
可调参数:比例度δ(P )、 积分时间Ti (I )、微分时间Td (D )。
通常,PID 控制准则可以写成下面传递函数的形式: )1()(s T T s K s G d i
p ++= (2) Kp 、Ti 和Td 分别是比例放大率、积分时间常量和微分时间常量。
1) 比例控制(P ):是一种最简单的控制方式。其控制器的输出与输
入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误
差(Steady state error ),比例度减小,稳态误差减小;
2) 积分(I )控制:在积分控制中,控制器的输出与输入误差信号
的积分成正比关系。
3) 微分(D )控制:在微分控制中,控制器的输出与输入误差信号
的微分(即误差的变化率)成正比关系。
文中,性能指标是误差平方的时间加权积分,表示为:
),,1,0(,0
2n k dt e t J i
t k Λ==⎰ (3)
其中n 是非负整数,i t 是积分周期。此外,其他标准项如超调量、上升时间和稳定时间
()()()()⎥⎦⎤⎢⎣⎡++=⎰
t e dt d T d e T t e K t u d t i p 01ττ
也被一个合成性能指标选择:
))(1(s s r r c t c t c os J ++= (4)
s r os t t 、、分别代表超调量、上升时间和稳定时间。s r c 、c 两个系数有用户定义或决定。预期的性能指标的最下化可以认为是小的超调量、短的上升时间和稳定时间。
三个PID 参数的编码方式如下:
10101011:S 10101000 11100111
p K i K d K
p K 、i K 和d K 都是八位二进制字符格式。
自适应函数的选择关系到性能指标,如:
10
1)(J J F F == (5) 实际上,)(J F 可以是任何一个能切实表达F 和J 关系的非线性函数。
遗传操作是模拟生物基因遗传的操作,从优化搜索的角度而言,遗传操作可使问题的解一代一代地优化,并逼近最优解,主要包括三个遗传算子:选择、交叉和变异。关于他们的具体方法这里不在赘述。
三、 计算机实现
作者编程使用的事TURBO C 。程序包括两个部分:一个是仿真PID 控制系统的闭环阶跃响应;另一个是实施对一代所有成员的遗传算法的仿真,这里遗传算法将一代作为一个整体。在第一代生物的二进制代码随机产生之后,这个过程重复直至迭代次数达到预选的次数。
步长、PID 参数范围、性能指标、自适应函数和方法得时间延迟都是从一个文件中读取。而遗传算法的的参数,诸如世代数、交叉概率、变异概率、选择概率等通过菜单选择。 整个闭环系统仿真的完成可以用四阶龙格库塔法或直接时域计算。在程序中,复制的实现是通过轮盘赌博法的线性搜索,面积加权于上一代成员的适应值。交叉发生在每一对复制产生的成员。
交叉操作是将一个随机产生的一个在0到1之间数与交叉概率比较决定是否需要交叉。如果需要交叉,则在1到47之间随机产生一个交叉位置代码。变异,对新一代所有成员都随机产生一个0到1之间的数与变异概率比较,然后再决定是否改变代码的一位。同理,反转也是这样判定和操作的。另一需要说明的事,两个反转位置代码是在1~48之间随机选择的。同样,依据随机的预选概率,预选操作是用好的后代取代不好父代。除了这些基本操作,另一个过程叫做存储也在程序中进行,它是存储老一代适应值高的成为新一代。
程序实现过程列出如下:
(1) 将d P K K K 和、i 三个参数编码成二进制字符串;
(2) 生成第一代成员编码成字符串;
(3) 将字符串解码成三个参数:d P K K K 和、i ;
(4) 计算所有的传递函数;
(5) 使用四阶龙格库塔仿真闭环系统的阶跃响应;
(6) 计算自适应函数;
(7) 用轮盘赌博法复制(繁殖)新一代的48位二进制字符串;
(8) 交叉,对新一代中每对进行交叉操作,交叉位置随机产生;
(9) 变异,依据变异概率对新一代所以成员进行变异操作;
(10) 反转,依据反转概率对新一代所以成员进行反转操作;
(11) 预选,依据预选概率对新一代所以成员进行反转操作;
(12) 存储老一代中自适应值高的使之成为新一代;
(13) 重复(3)~(12),迭代直至结果被接受。
在程序中,不同的性能指标可以选择,如误差的平方时间加权的积分。通过改变性能指标组合或增加一些系数来改变那些不完全满足要求的成员的适应值。
四、数值例子
在这里研究者共做了四个数值例子。使用了ZN 和遗传两种算法,对于遗传算法每个例子分别又使用了三个性能指标函数:)0.1c -where ))(r c 40==s c J ITSE J ISE J (和(、。(注:由于论文中只是指出了c J 的表达式,其他数据都是取自于其他论文。所以在后面的数值仿真中,本文只使用自适应函数为c J 来进行实现PID 参数整定。)
Example 2 )]44.01)(3.01/[()(33.02S S e S P S ++=-;
研究者的数值结果详见附录参考文献。
本人对文中第二个例子进行了仿真:样本个数为30,采用二进制编码方式,交叉概率:Pc=0.6,变异概率:Pm=0.001,种群大小M=30,终止迭代进化次数G=100。得到最佳样本Bests=[10111001];
最终PID 参数整定为
Ki=15.5816;Ki=0.9912;Kd=0.7136。
图1为系统阶跃响应,图2为目标函数J 的优化过程。
五、结论
通过对仿真结果的对比,发现GA 得到的结果总是好于ZN 。GA 成功的降低了不希望的超调量并且达到较少的上升和稳定时间。可以有效的解释作者提出的工作指标效果更好,在例1和例2中得到了充分的体现。