北京化工大学
本 科 毕 业 论 文
题 目: 基于遗传算法整定的PID控制 院 系: 专 业: 电气工程及其自动化 班 级:________ ____ _ _ _____ 学生姓名:____________ ________ _____ 执导老师:___________ ______________ ______
论文提交日期: 年 月 日 论文答辩日期: 年 月 日
沈阳化工大学学士学位论文 摘要
摘 要
PID控制器是在工业过程控制中常见的一种控制器,因此,PID参数整定与优化一直是自动控制领域研究的重要问题。遗传算法是一种具有极高鲁棒性的全局优化方法,在自控领域得到广泛的应用。针对传统PID参数整定的困难性,本文提出了把遗传算法运用于PID参数整定中。
本文首先对PID控制的原理和PID参数整定的方法做了简要的介绍。其次介绍了遗传算法的原理、特点和应用。再次,本文结合实例阐述了基于遗传算法的PID参数优化方法,采用误差绝对值时间积分性能指标作为参数选择的最小目标函数,利用遗传算法的全局搜索能力,使得在无须先验知识的情况下实现对全局最优解的寻优,以降低PID参数整定的难度,达到总体上提高系统的控制精度和鲁棒性的目的。最后,本文针对遗传算法收敛速度慢、易早熟等缺点,将传统的赌盘选择法与最优保存策略结合起来,并采用改进的自适应交叉算子和自适应变异算子对PID参数进行迭代寻优整定。
采用MATLAB对上述算法进行仿真验证,仿真结果表明了遗传算法对PID参数整定的有效性。
关键词:PID;参数控制;遗传算法;MATLAB
沈阳化工大学学士学位论文 Abstract
Abstract
PID controller is a kind of controller that is usual in industrial process control. Therefore, tuning and optimization of PID parameters are important researchable problems in the automatic control field, where Genetic algorithm is widely used because of the highly robust global optimization ability of it. Aiming at the difficulty of traditional tuning of PID parameter, this paper puts forward a method that genetic algorithm is applied to the tuning of PID parameters.
Firstly, the principle of PID control and the methods of tuning of PID parameters are introduced briefly. Secondly, this paper introduces the principle, characteristics and application of genetic algorithm. Thirdly, this article expounds on the methods of tuning of PID parameters based on genetic algorithm with an example. In this paper, the performance index of time integral of absolute error serves as the minimum objective function in the tuning of PID parameters, and the global search ability of genetic algorithm is used, so the global optimal solution is obtained without prior knowledge, and the difficulty of tuning of PID parameter is reduced, so the goal is achieved which is improving the control accuracy and robustness of the system overall. Finally, aiming at the weakness of genetic algorithm, such as the slow convergence of prematurity and precocious, the traditional gambling site selection method and elitist model are united in this paper, and the paper also
沈阳化工大学学士学位论文 Abstract
adopted adaptive crossover operator and adaptive mutation operator to optimize PID parameters iteratively.
Use MATLAB to simulate these algorithms, and the simulation results show that PID controller tuning based on genetic algorithm is effective.
Keywords: Genetic algorithm; PID control; optimum; MATLAB
北京化工大学学士学位论文 目录
目 录
第一章 引言 ..................................................................................................... 1 1.1 课题研究的背景及意义 .................................................................. 1 1.2 PID控制的发展与现状 ................................................................... 1 1.3 本文研究的内容 ............................................................................... 2 第二章 PID控制 ............................................................................................. 4 2.1 PID控制原理 .................................................................................... 4 2.2 常规PID参数整定方法 .................................................................... 6 2.2.1 Ziegler-Nichols整定方法 ................................................... 6 2.2.2 改进的Ziegler-Nichols整定方法 ...................................... 8 2.2.3 ISTE最优设定方法的经验公式 ............................................. 9 2.2.4 Haalman法的计算公式 ......................................................... 10 2.2.5 KT整定法 ................................................................................ 11 第三章 基于遗传算法整定的PID控制 ...................................................... 13 3.1 遗传算法基本原理 ......................................................................... 13 3.1.1 遗传算法概要....................................................................... 13 3.1.2 遗传算法的应用步骤 .......................................................... 14 3.2 遗传算法的实现 ............................................................................. 15 3.2.1 编码方法 ............................................................................... 15 3.2.2 适应度函数 ........................................................................... 16 3.2.3 选择算子 ..................................................................................... 17 3.2.4 交叉算子 ..................................................................................... 17 3.2.5 变异算子 ............................................................................... 18 3.2.6 遗传算法控制参数选取 ...................................................... 19 3.3 遗传算法的仿真验证..................................................................... 20
北京化工大学学士学位论文 目录
3.2.6遗传算法中关键参数的确定 ................................................. 23 3.3 遗传算法的主要步骤....................................................................... 23 3.3.1 准备工作 ................................................................................. 23 3.3.2 基本遗传算法的步骤 ............................................................ 24 3.4遗传算法PID参数整定的编程实现 ............................................... 24 3.4.1初始群体 .................................................................................. 24 3.4.2 编码 ......................................................................................... 25 3.4.3 基本操作算子 ......................................................................... 26 3.4.4 目标函数 ................................................................................. 29 3.4.5 画图 ......................................................................................... 29 第四章 PID整定方法的仿真应用 ............................................................. 31 4.1 一阶对象 ........................................................................................... 31 4.2 二阶对象 ........................................................................................... 32 4.3 三阶对象 ........................................................................................... 34 第五章 结论 ................................................................................................... 37 参 考 文 献 ................................................................................................... 38 致 谢 ............................................................................................................. 40
沈阳化工大学学士学位论文 第一章 引言
第一章 引言
1.1 课题研究的背景及意义
PID(p一proportion,I一Integral,D一Differentia)控制是比例、积分、微分控制的简称PID[l]。自从20世纪30年代末出现以来,因为其突出的优点,比如算法比较简单、控制的系统鲁棒性比较好等,从而得到广泛的应用,特别是对于那些可以建立精确数学模型的确定性系统,在工业生产过程中发挥了重要的作用。根据估计,在工业控制中超过90%的控制回路都是PID类型的。然而,在其得到广泛应用的同时,在实际的工业应用中,常规PID控制器也存在一些共同的缺点,例如对于一些非线性的、时变的,难以建立精确的数学模型的应用中,常规PID控制器常常难以达到比较理想的控制效果[2]。
近年来,随着工业的快速发展,被控系统越来越复杂,因此也对控制品质提出了更高的要求,在广大科研人员及技术人员不断努力下,一些新型的控制方法被提出来,这极大的促进了控制理论及控制方法的发展。其中专家们提出来的专家控制、模糊控制、神经网络控制等方法发展比较迅速,这些方法与传统PID控制方法相结合起来,形成了智能控制与PID控制相结合的智能PID复合控制。由于PID控制方法的优点非常明显,PID控制器既在过去得到了广泛的应用,而且在可预见的将来仍然会大量被使用,所以在基本PID控制理论及方法的基础上,如何将其与现代新型的控制理论相结合,从而设计出效率更高、更优秀的PID控制算法,这些都仍是一个非常吸引人的课题。
1.2 PID控制的发展与现状
PID控制技术的发展可以分为两个阶段。20世纪30年代晚期微分技术的加入标志着PID控制成为一种标准结构,也是PID控制两个发展阶段的分水岭。第一个阶段为发明阶段(1900-1940)。PID控制的思想逐渐明确,气动反馈放大器被发明,仪表工业的重心放在实际PID控制器的结构设计上。1940年以后是第二阶段,这一阶段为革新阶段。在革新阶段,PID控制器已经发展成一种鲁棒的、可靠的、易于应用的控制器。仪表工业的重心是使PID控制技术能跟上工业技术的最新发展。从气动控
1
沈阳化工大学学士学位论文 第一章 引言
制到电气控制到电子控制再到数字控制,PID控制器的体积逐渐缩小,性能不断提高。一些处于世界领先地位的自动化仪表公司对PID控制器的早期发展做出重要贡献,甚至可以说PID控制器完全是在实际工业应用中被发明并逐步完善起来的。值得指出的是,1939年Taylor仪器公司推出的一款带有所谓“Pre-act”功能的名为“Fulscope”的气动控制器以及同时期Foxboro仪器公司推出的带有所谓“Hyper-re-set”功能的“Stabilog”气动控制器都是最早出现的具有完整结构的PID控制器[1]。
PID控制至今仍是应用最广泛的一种控制器。各种现代控制技术的出现并没有削弱PID控制器的应用,相反,新技术的出现对于PID控制技术的发展起了很大的推动作用。一方面,各种新的控制思想不断被应用于PID控制器的设计之中或者是使用新的控制思想设计出具有PID结构的新控制器,PID控制技术被注入了新的活力。另一方面,某些新控制技术的发展要求更精确的PID控制,从而刺激了PID控制器设计与参数整定技术的发展[4]。国际上有一些研究文章陈述了当前工业控制的状况,如日本电子测量仪表制造协会在1989年对过程控制系统做的调查报告。该报告表明90%以上的控制回路是PID结构[5]。
1.3 本文研究的内容
遗传算法就是根据自然界这个“物竞天择,适者生存”现象而提出来的一种随机搜索算法。遗传算法起源于对生物系统所进行的计算机模拟研究。早在本世纪40
年代,就有学者开始研究如何利用计算机进行生物模拟的技术,他们从生物学的角度进行了生物的进化过程模拟、遗传过程模拟等研究工作。进入60 年代后,美国密执安大学的Holland 教授及其学生们受到这种生物模拟技术的启发,创造出了一种基于生物遗传和进化机制的适合复杂系统优化计算的自适应概率优化技术——遗传算法[2-3]。
1967年,Holland的学生J.D.Bagley在博士论文中首次提出“遗传算法(Genetic Algorithms)”一词。1971年,R.B.Hollstien在他的博士论文中首次把遗传算法用于函数优化。1975年Holland出版了《自然系统和人工系统的自适应》,这是第一本系统论述遗传算法的专著。同年,K.A.De Jong完成了他的博士论文《一类遗传自适应系统的行为分析》。
2
沈阳化工大学学士学位论文 第一章 引言
进入八十年代,遗传算法迎来了兴盛发展时期。1985年,在美国召开了第一届遗传算法国际会议,成立了国际遗传算法学会。1989年,Holland的学生D.E.Goldberg出版了专著 《搜索、优化和机器学习中的遗传算法》。同年,美国斯坦福大学的Koza提出了用层次化的计算机程序来表达问题的遗传程序设计方法。1991年,L.Davis编辑出版了《遗传算法手册》,其中包括了遗传算法在工程技术和社会生活中的大量应用实例。
1992年,Koza发表了他的专著《遗传程序设计:基于自然选择法则的计算机程序设计》。1994年,他又出版了《遗传程序设计(第二册):可重用程序的自动发现》深化了遗传程序设计的研究,使程序设计自动化展现了新局面。目前,关于遗传算法研究的热潮仍在持续,越来越多的从事不同领域的研究人员已经或正在置身于有关遗传算法的研究或应用之中。
近些年,无论是遗传算法的理论研究还是它的应用研究都成了十分热门的课题。尤其是遗传算法的应用研究显得格外活跃,不但它的应用领域扩大,而且利用遗传算法进行优化和规则学习的能力也显著提高,同时产业应用方面的研究也在摸索之中。此外一些新的理论和方法在应用研究中亦得到了迅速的发展,这些无疑均给遗传算法增添了新的活力。遗传算法的应用研究已从初期的组合优化求解扩展到了许多更新、更工程化的应用方面。目前,遗传算法被广泛应用于生产调度、图象处理、函数优化、机器人学习、自动控制等领域。
3
沈阳化工大学学士学位论文 第二章PID控制原理
第二章 PID控制
2.1 PID控制原理
将偏差的比例(P-Proportional)、积分(I-Integral)、微分(D-Derivative)通过线性组合构成控制量,对被控对象进行控制,故称PID控制器。PID控制又分为模拟PID控制和数字PID控制。
2.1.1 模拟PID控制原理
(1)模拟PID控制
系统原理框图如图2.1所示。
比例 积分 被控对象 微分
图2.1 模拟PID控制系统原理框图
PID控制器是一种线性控制器,它根据给定值r(t)与实际输出值y(t)构成控制偏差: e(t)r(t)y(t) (2-1) PID的控制规律为:
tTde(t)1u(t)KP[e(t)e(t)dtD] (2-2)
TI0dt或写成传递函数的形式:
G(s)U(s)1kp(1TDs) (2-3) E(s)T1s式中,kp——比例系数,TI——积分时间常数,TD——微分时间常数。
4
沈阳化工大学学士学位论文 第二章PID控制原理
PID控制器各校正环节的作用如下:
比例环节——比例环节能及时成比例地反映控制系统地偏差信号,偏差一旦产生,控制器立即产生控制作用,以减少偏差。比例系数kp增大,可以加快系统响应速度,减小系数稳态误差,提高控制精度。但是过大会产生较大超调,甚至导致不稳定;若取得过小,能使系统减少超调量,但会降低系统的调节精度,使过渡过程时间延长。
积分环节——积分调节可提高系统的抗干扰能力,主要用于消除静差,提高系统的无静差度,适用于有自平衡性的系统。但它存在滞后现象,使系统的响应速度变慢,超调量变大,并可能产生振荡。积分作用的强弱取决于积分时间常数TI,TI越大,积分作用越小,反之则越强。加大积分系数TI有利于减小系统静差,但过强的积分作用会使超调加剧,甚至引起振荡;减小积分系数TI;虽然有利于系统稳定,避免振荡,减小超调量,但又对系统消除静差不利。
微分环节——微分环节能反映偏差信号的变化趋势(变化速率),并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信号,从而加快系统的动作速度,减小调节时间,从而改善了系统的动态特性。缺点是抗干扰能力差。TD的值对响应过程影响非常大。若增加微分作用,有利于加快系统响应,使超调量减小,增加稳定性,但也会带来扰动敏感,抑制外干扰能力减弱,若TD过大则会使响应过程过分提前制动从而延长调节时间;反之,若TD过小,调节过程的减速就会滞后,超调量增加,系统响应变慢,稳定性变差。
(2)数字PID控制
在计算机控制系统中,使用的是数字PID控制器,数字PID控制算法通常又分为位置式PID控制算法和增量式PID控制算法。
位置式PID控制算法。按模拟PID控制算法,以一系列的采样时刻点kT代表连续时间t,以矩形法数值积分近似代积分,即
5
沈阳化工大学学士学位论文 第二章PID控制原理
tkT (k0,1,2)
e(t)dtTe(jT)Te(j) (2-4)
0j0j0tkk de(t)e(kT)e((k1)T)e(k)e(k1) dtTT可得离散PID表达式:
u(k)kpe(k)kie(j)kd[e(k)e(k1)] (2-5)
j0k式中,kikpTT1,kdkpTDT,T为采样周期,k为采样序号,k=1,2,„,e(k-1)和e(k)
分别为第(k-1)和第k时刻所得的偏差信号。
在仿真过程中,可根据实际情况,对控制器的输出进行限幅:[-10,+10]。 由于位置式PID算法计算时要对误差进行累加,所以运算工作量大,而且如果执行器(计算机)出现故障,则会引起执行机构位置的大幅度变化。
增量式PID控制算法。当执行机构需要的是控制量的增量的时,应采用增量式PID控制。根据递推原理可得:
u(k1)kpe(k1)kie(j)kd[e(k1)e(k2)] (2-6)
j0k1则,由式(2-5)减去式(2-6)得增量式PID控制算法:
u(k)kp[e(k)e(k1)]kie(k)kd[e(k)2e(k1)e(k2)] (2-7) 增量式算法的优点是便于实现无扰动切换。当计算机出现故障时,可以保持原值,易得到比较好的控制效果。但是由于其积分截断效应大,有静态误差,溢出影响大。
2.2 常规PID参数整定方法
2.2.1 Ziegler-Nichols整定方法
该方法是Ziegler和Nichols于1942年提出的开环动态响应中某些特征参数而进行的PID参数整定,它是基于受控过程的开环动态响应。其整定经验公式是基于带有延迟的一阶惯性模型[3]提出的,这种对象模型可表示为:
6
沈阳化工大学学士学位论文 第二章PID控制原理
GsKse (2.6) 1Ts其中:K是放大系数;T是惯性时间常数;是延迟时间.,它们可以根据图2-4构成的示意图提取出来.
y(t) P A B y() t a L T 图2-4 用作图法确定参数
由于该整定算法取决于开环实验,因而抗干扰能力差,或者采用闭环整定方法频率响应法:己知频率响应数据,即从Nyquist图形上直接得出剪切频率c和该点处的幅值A(或增益Kc=1/A),在得到过程的特征参数后,Ziegler和Nichols便给出了PID参数整定的经验公式,如表2-1所示:
表2-1 Ziegler-Nichols 参数整定公式
控制器 类型 Kp P PI PID 根据模型设定 根据频率响应设定 Tc=2/c Td Kp 0.5Kc 0.4Kc 0.6Kc Ti 0.8Tc 0.5Tc Td 0.12Tc =K/T Ti 3 2 1/ 0.9/ 1.2/ /2
7
沈阳化工大学学士学位论文 第二章PID控制原理
2.2.2 改进的Ziegler-Nichols整定方法
前述Ziegler-Nichols整定方法,简单实用,整定效果较好,是基本的PID参数整定方法。但其存在一定缺点,即经常在设定点附近产生较强的振荡,并经常伴有较大的超调量。对于Z-N法引起的响应超调量过大的问题,常见的一种简单解决方法就是减小PID控制器的增益,但是这样又会降低响应速度。另外一种是滤波设定值的方法。该方法的优点在于没有改变PM控制器的参数值,因而不会对控制品质产生不利影响。Hang.C.C提出的精调的Ziegler-Nichols整定方法即Refined Ziegler-Nichols整定方法,简记为:R-ZN。就是一种类似于滤波设定值法的PID控制器参数整定方法。
其主要思想就是在设定值响应比例部分加入权值,将PID控制器的输出修正为:
1dyutKpryedtTD (2.7)
TIdt该方案把微分动作放到输出信号处去完成,并对比例输入部分进行了修正。它引入了规范化的死区时间常数和规范化的一阶时间常数,对照式(2.6)给出的一阶模型,这些规范化参数可作如下定义:
KcK, /T,且满足 21113 (2.8)
374对不同的A和p所在的范围,可以按照下面的方式来求出的值,并可以根据需要对传统的Z-N参数作出适当的修正:
若 2.25<<15或0.16<< 0.57,则应该保持Z-N参数,并为使超调小于10%或20%分别引入如下系数:
1536 或 (2.9) 15275若1.5<<2.25或0.57<<0.96,则应将Z-N积分系数修正为TI0.5TC,其中
或4981 (2.10) 17 若1.2<<1.5,则为使超调小于10%,应用如下修正:其中=1.
51214或KpT1I (2.11)
615145158
沈阳化工大学学士学位论文 第二章PID控制原理
2.2.3 ISTE最优设定方法的经验公式
庄敏霞与Atherton针对各种指标函数得出了最优PID参数整定的算法,考虑下面给出的最优指标通式.
Jnte,tdt (2.12) 0n2其中 : e,t--------进入PID控制器的误差信号
---------PID控制器参数构成的集合
根据设定点信号的最优自整定算法,对式(2.16)中给出的最优指标,着重考虑三种情况:当n=0,简记为ISE( integral squared error)准则;当n=1,简记为ISTE准则;当n=2,简记为IST2E准则。若已知系统的数学模型为标准的一阶惯性加纯迟延环节,如式(2.6)给出的。则我们可对典型PID结构可以建立经验公式:
a1L1Kp (2.13)
KTTiTa2b2L/Tb3b
LTda3T
T对不同的L/T的范围,可以得出a, b参数表,如却表2-2中给出的PID 参数设置可以通过Matlab来简单的实现.
表2-2 设定点积分PID最优控制参数表
L/T 准则 ISE 1.048 0.1-1 ISTE 1.042 IST2E 1.1-2 ISE 1.154 ISTE 1.142 0.579 0.919 IST2E a1 a2 a3 b1 b2 b3 0.968 1.061 0.583 0.892 -0.897 -0.897 -0.904 -0.567 1.195 0.987 0.977 1.047 -0.368 -0.238 -0.253 -0.220 -0.172 -0.165 0.489 0.888 0.385 0.906 0.316 0.892 0.490 0.708 0.384 0.839 0.315 0.832
9
沈阳化工大学学士学位论文 第二章PID控制原理
2.2.4 Haalman法的计算公式
Haalman法是基于选择期望的开环特性以满足闭环系统的控制品质要求。有不同的方法获取合适的开环传递函数,对于时滞对象,Haalman律议选择开环传递函数为:
GIs2Lse (2.14) 3Ls由(2.18)式可以看出,开环特性仅受时滞L的影响,过程的零极点被控制器的零极点对消,系数2/3保证了闭环系统的稳态误差最小和稳定性要求。 则控制器为:
Cs设过程对象的传递函数为:
Gs1esL, Ts1GIs (2.15) Gs则我们可得:
Cs2T11 (2.16) 3LTs式(2.20)为PI控制器的形式,即:
kR2T, TiT (2.17) 3L设过程对象的传递函数为: Gs1T1s1T2s1esL
2T1T2TT112s则: Cs1 (2.18)
3LTTsTT1212式(2.22)为PID控制器的形式,则:
kP2T1T21TT , Ti , Td12 (2.19) 3LT1T2T1T2Haalman法存在的缺点是过程对象的零极点被完全抵消后,可能导致系统内部存在不可控的因素,对于惯性时间占主导的对象来说,应用此方法整定控制器,对负载干扰的响应将变化非常缓慢。
10
沈阳化工大学学士学位论文 第二章PID控制原理
2.2.5 KT整定法
(1) 标准化的m益和标准化的滞后时间
KT整定法是基于标准化的增益k和标准化的滞后时间整定方法。ZN整定法的一种改进,由于使用了三个特征参数描述过程动态特性,因此,KT整定法使得控制性能获得了本质的改进。
标准化的增益 kGiG0 (2.20)
其中Gi过程对象临界点的频率特性,G0过程对象的静态增益.
标准化的滞后时间 L (2.21) LT其中:L为过程对象的时滞时间,T为过程对象的惯性时间常数。
k和都反映了过程对象控制的难易程度,k的取值范围0k1,k较小时系统容易控制,k值较大时系统控制较难。取值范围01,Z较小时系统容易控制,值较大时系统控制较难。当k较小时,有近似式: =1.6k。 最大稳定度Ms,
Msmax11GjGCj (2.22)
由于GsGCs的奈氏曲线到临界点稳定点一1的最短距离为1/Ms,故此参数反映了闭环系统的稳定性。Ms取值范围为1.2-2,Ms取值较大时,系统响应速度加快但稳定性减弱。
(2) KT频率响应法
通过闭环临界振荡实验或继电反馈实验测得过程的临界增益Kc,则由式(2.23)得,标准化增益k为:
k1 (2.23) KKC其中:K为过程静态增益,Kc为过程临界增益.
KT频率响应法的参数整定思想就是设法找到标准化的控制参数和标准化过程特
11
沈阳化工大学学士学位论文 第二章PID控制原理
征参数的函数关系。
表2-3和表2-4给出了利用KT频率响应法整定的PI和PID标准化控制参数。
表2-3 KT频率响应法的PI控制器参数整定公式
Ms=1.4 Ms= 2.0 a0 k/Kc Ti/Tc b 0.053 0.90 1.1 a1 2.9 -4.4 -0.0061 a2 -2.6 2.7 1.8 a0 0.13 0.90 0.48 a1 1.9 -4.4 0.40 a2 1.3 2.7 -0.17 注:表2-3中的k/Kc,Ti/Tc,b是标准化的PI控制参数. 表2-4 KT频率响应法的PID控制器参数整定公式
Ms=1.4 Ms= 2.0 a0 k/Kc Ti/Tc Td/Tc b
a1 -0.31 -1.6 -0.46 -1.3 a2 -1.0 -0.36 -2.1 3.5 a0 0.72 0.59 0.15 0.25 a1 -1.6 -1.3 -1.4 0.56 a2 1.2 0.38 0.56 0.051 0.33 0.76 0.17 0.58 12
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
第三章 基于遗传算法整定的PID控制
3.1 遗传算法基本原理
遗传算法就是这种生物行为的计算机模拟中令人瞩目的重要成果。基于对生物遗传和进化过程的计算机模拟,遗传算法使得各种人工系统具有优良的自适应能力和优化能力。遗传算法所借鉴的生物学基础就是生物的遗传和进化。
3.1.1 遗传算法概要
对于一个求函数最大值的优化问题(求函数最小值也类同),一般可以描述为下述数学规划模型:
max f(X) (3-1) s.t. XR (3-2) RU (3-3)
式中,X=[x1,x2,„,xn]T为决策变量,f(X)为目标函数,式(3-2)、式(3-3)为约束条件,U是基本空间,R是U的一个子集。满足约束条件的解X称为可行解,集合R表示由所满足约束条件的解所组成的一个集合,叫做可行解集合。
遗传算法中,将n维决策变量X用n个记号Xi(i=1,2,„,n)所组成的符号串X表示:X=X1X2„Xn X=[x1,x2,„,xn]T把Xi看做一个基因,它的所有可能取值称为等位基因,这样,X就可看做是由n个遗传基因所组成的一个染色体。最简单的等位基因是由0和1这两个整数组成的,相应的染色体就可以表示为一个二进制符号串。这种编码所形成的排列形式X是个体的基因型,与它对应的X值是个体的表现型。染色体X也称为个体X,对于每一个个体X,要按照一定的规则确定出其适应度。
遗传算法中,决策变量X组成了问题的解空间。对问题最优解的搜索是通过对染色体X的搜索过程来进行的,从而由所有的染色体X就组成了问题的搜索空间。遗传算法中最优解的搜索过程模仿生物的进化过程,使用遗传算子(选择算子、交叉算子、变异算子)作用于群体中,进行遗传操作,从而的到新一代群体。遗传算法的运算过程示意图如下图3.1所示:
13
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
群体P(t) 选择运算 个体评价 交叉运算 变异运算 群体P(t+1) 解码 解集合
图3.1 遗传算法的运算过程示意
由上图可以看出,使用上述三种遗传算子(选择算子、交叉算子、变异算子)的遗传算法的主要运算过程如下所述;
步骤一:初始化。设置进化代数计数器t=0;置最大进化代数T;随机生成M个个体作为初始群体P(0)。
步骤二:个体评价。计算群体P(t)中各个个体的适应度。 步骤三:选择运算。将选择算子作用于群体。 步骤四:交叉运算。将交叉算子作用于群体。
步骤五:变异运算。将变异算子作用于群体。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。
步骤六:终止条件判断。若tT,则:t=t+1,转到步骤二;若t>T,则以进化过程中所得到的具有最大适应度的个体作为最优解输出,终止计算。
3.1.2 遗传算法的应用步骤
遗传算法的应用步骤:
第一步:确定决策变量及其各种约束条件,即确定出个体的表现型X和问题的解空间。
第二步:建立优化模型,即确定出目标函数的类型及其数学描述形式或量化方法。 第三步:确定表示可行解的染色体编码方法,也即确定出个体的基因型X及遗传算法的搜索空间。
14
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
第四步:确定解码方法,即确定出由个体基因型X到个体表现性X的对应关系或转换方法。
第五步:确定个体适应度的量化评价方法,即确定出由目标函数值f(x)到个体适应度F(x)的转换规则。
第六步:设计遗传算子,即确定出选择运算、交叉运算、变异运算等遗传算子的具体操作方法。
第七步:确定遗传算法的有关运行参数,即确定出遗传算法的群体大小、终止代数、交叉概率、变异概率等参数。
3.2 遗传算法的实现
3.2.1 编码方法
在遗传算法中如何描述问题的可行解,即把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法就称为编码。
在编码策略上至今仍然存在执有争议的两派:一派根据Holland的模式定理建议采用尽量少的符号编码,遵循最小字符集编码规则。另一派以数值优化计算的方便和精度为准采用一个基因一个参数的方法,并把相应的基因操作改造成适合实数操作的形式。
遗传算法有许多种不同的编码方法,主要有二进制编码方法、十进制编码方法、符号编码方法等。按照十进制数的类型,十进制编码又可以分为自然数编码、整数编码、实数编码(浮点数编码)和复数编码等四种编码策略。
(1)二进制编码方法
二进制编码方法有下述一些优点:编码、解码操作简单易行;交叉、变异等遗传操作便于实现;符合最小字符集编码原则;便于利用模式定理对算法进行理论分析等。但在应用中发现二进制编码方法存在一些不足:局部搜索能力不强;求解一些多维、高精度要求的连续函数优化问题时容易产生误差或算法无法收敛;不便于反映所求问题的结构特征,一些经典的算子技巧无法应用等。
(2)符号编码方法
15
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
符号编码方法是指个体染色体编码串中的基因值取自一个无数值含义、而只有代码含义的符号集。符号编码方法主要解决线路选择、装箱问题和背包问题等。符号编码的主要优点是:符合有意义木块编码原则;便于在遗传算法中利用所求解问题的专门知识;便于遗传算法与相关近似算法之间的混合使用。但对于使用符号编码方法的遗传算法,一般需要认真设计交叉、变异等遗传运算的操作方法,以满足问题的各种约束要求,这样才能提高算法的搜索性能。
(3)浮点数编码方法
浮点数编码方法是指个体的每个基因值用相应变量的取值范围内的一个浮点数表示,个体的编码长度等于其决策变量的个数。因为这种编码使用的是决策变量的真值,所以浮点数编码又称真值编码。
浮点数编码方法有下面几个优点:适合于在遗传算法中表示范围较大的数;适合于精度要求较高的遗传算法;便于较大空间的遗传搜索;改善了遗传算法的计算复杂性,提高了运算效率;有利于遗传算法与经典优化方法的混合使用;便于设计针对问题的专门知识的知识型遗传算子;便于处理复杂的决策变量约束条件。
3.2.2 适应度函数
适应度用来评价群体中各个个体在优化计算中,有可能达到或接近于全局最优解的优良程度。适应度较高的个体遗传到下一代的概率较大,而适应度较低的个体遗传到下一代的概率就相对小一些,这种表示个体适应度的函数称为适应度函数。
遗传算法中度量适应性的方法主要有两种: 用目标函数的形式给出(原始适应函数)
原始适应函数是问题求解目标的直接表示,通常采用问题的目标函数作为个体的适应性度量。如在求解极值问题minf(x)时,f(x)即为x的原始适应函数。
用目标函数变换的方式来定义(标准适应度函数)
标准适应函数将原始适应函数作一个适当的变换以转化成标准的度量方式,即都转化为极大化情形,并保证适应值非负。这常常是演化计算中的某些选择策略(如基于适应值比例的选择策略)所需要的。
16
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
3.2.3 选择算子
选择的本质是染色体的复制,它是生物能够保持性状而达到物种稳定的最主要原因。在遗传算法中,选择的作用就像一个筛子,它根据个体对于目标函数的适应情况,将高适应值的个体选中,使其基因得以遗传复制到下一代,而低适应值的个体染色体则被淘汰。因此选择的本质是筛选,而功能则是定向进化。经过选择算子多次的定向积累,种群中的个体就会迅速向使目标函数值高的区域靠拢,形成高质量解种群。
选择算子的形式有很多种,不同的选择算子有不同的性质和适应范围。选择算子主要有比例选择算子、最有保存策略、排序选择等方式。
(1)比例选择
它是最常用和最基本的选择算子。比例选择算子的操作方法的基本思想是:各个个体被选中的概率与其适应度大小成正比。其缺点是由于比例选择算子是随机操作,所以选择误差比较大,适应度较高的个体也可能选择不上。
(2)最优保存策略
最优保存策略是当前群体中适应度最高的个体不参与交叉运算和变异运算,而是用它来替换掉本代群体中经过交叉、变异等遗传操作后所产生的适应度最低的个体。其缺点是全局搜索能力不强,容易陷入局部极值中。
(3)排序选择方法
排序选择方法的主要着眼点是个体适应度之间的大小关系,对个体适应度是否取正值或负值,以及个体适应度之间的数值差异程度并无特别要求。排序选择方法的主要思想是:对群体中的所有个体按其适应度大小进行排序,基于这个排序来分配各个个体被选中的概率。
3.2.4 交叉算子
所谓交叉运算,是指对两个相互配对的染色构按某种方式相互交换其部分基因,从而形成两个新的个体。交叉运算是遗传算法区别于其他进化算法的重要特征,它在遗传算法时起着关键作用,是产生新个体的主要方法。
最常用的交叉算子是单点交叉算子。但单点交叉操作有一定的适用范围,故人们
17
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
发展了其他一些交叉算子,如双点交叉、多点交叉、均匀交叉等。
(1)单点交叉算子
它是最简单也是最常用的一个交叉算子。这种交叉方式首先等概率地随机产生一个交叉位,把参与交叉的两个个体的基因从交叉位上切断,接以对方个体的后半部分基因,从而产生了两个新的个体和基因组合。
(2)双点交叉与多点交叉
双点交叉是指在个体编码串中随机设置了两个交叉点,然后再进行部分基因交换。
多点交叉是指在个体编码串中随机设置了多个交叉点,然后进行基因交换。但一般不太使用多点交叉算子,因为它有可能破坏一些好的模式。
(3)均匀交叉
均匀交叉是指两个配对个体的每一个基因座上的基因都以相同的交叉概率进行交换,从而形成两个新的个体。
3.2.5 变异算子
变异算子,变异运算是指将个体染色体编码串中的某些基因座上的基因值用该基因座上的其他等位基因来替换,从而形成一个新的个体。使用变异算子有两个目的:改善遗传算法的局部搜索能力,维持群体的多样性,防止出现早熟现象。
变异算子主要有:基本位变异算子,逆转算子,均匀变异等。 (1)基本位变异
基本位变异操作是指对个体编码串中以变异概率随机指定的某一位或某几位基因座上的基因值作变异运算。
基本位变异操作改变的只是个体编码串中的个别几个基因座上的基因值,并且变异发生的概率也比较小,所以其发挥的作用比较慢,作用的效果也不明显。
(2)逆转算子
逆转算子是通过颠倒个体编码串中随机指定的二个基因座之间的基因排列顺序,来实现变异操作,其目的主要是为了能使遗传算法更有利于生产较好的模式。
18
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
(3)均匀变异
均匀变异算子又叫一致变异算子,是指分别用符合某一范围内均匀分布的随机数,以某一较小的概率来替换个体编码串中各个基因座上的原有基因值。
3.2.6 遗传算法控制参数选取
在设计遗传算法时,一方面需要针对具体问题选择适当的编码方案及相应的遗传算子;另一方面需要选择算法的控制参数。参数的不同选取常常会对算法的性能产生较大的影响。遗传算法中需要选择的运行参数主要有编码串长度L、群体大小M、交叉概率pc、变异概率pm、终止代数T等。 (1)编码串长度L
使用二进制编码编来表示个体时,编码除长度L的选取与问题所要求的精度有关;使用浮点数编码来表示个体时,编码长度L与决策变量个数相等。 (2)群体大小M 群体大小M表示群体中所含个体的数量。当M取值较小时,可提高遗传算法的运算速度,但却降低了群体的多样性,有可能会引起遗传算法的早熟现象;而当M取值较大时,又会使得遗传算法的运行效率降低。一般建议的取值范围是20~100。 (3)交叉概率pc
交叉操作是遗传算法中产生新个体的主要方法,所以交叉概率一般应取较大值。但若取值过大,它又会破坏群体中的优良模式,对进化运算反而产生不利影响;若取值过小,产生新个体的速度又较慢。已经发现较高的交叉概率pc,会使种群迅速收敛到局部最优值,这不利于全局寻优。一般建议的取值范围是0.3~0.99。
(4)变异概率pm
变异概率pm取值较大,虽然能够产生出较多的新个体,但也有可能破坏掉很多较好的模式,使得遗传算法的性能近似于随机搜索算法的性能;若变异概率pm取值太小,则变异操作产生新个体的能力和抑制早熟现象的能力就会较差。一般建议的取
19
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
值范围是0.0001~0.1。
(5)终止代数T
终止代数T是表示遗传算法运行结束条件的一个参数,它表示遗传算法运行到指定的进化代数之后就停止运行,并将当前群体中的最佳个体作为所求问题的最优解输出。
算法参数是影响算法性能和效率的关键,如何确定最优参数使算法性能最佳,本身就是一个复杂的优化问题。
3.3 遗传算法的仿真验证
利用遗传算法求Rosenbrock函数的极大值: f (x1,x2) =100(x1-x2)2+ (1-x1)2 -2.048xi2.048 (i=1, 2)
该函数有两个局部极大点,分别是f(2.048,-2.048)=3897.7342和f(-2.048,-2.048)=3905.9262,其中后者为全局最大点。
求解该问题遗传算法的构造过程: 确定决策变量和约束条件。 建立优化模型。 确定编码方法。
用长度为10位的二进制编码串来分别表示二个决策变量x1、x2。10位二进制编码串可以表示从0到1023之间的1024个不同的数,故将x1、x2的定义域离散化为1023个均等的区域,包括两个端点在内共有1024个不同的离散点。从离散点-2.048到离散点2.048,依次让它们分别对应于从0000000000(0)到1111111111(1024)之间的二进制编码。再将分别表示x1、x2的两个10位长的二进制编码串连接在一起,组成一个20位长的二进制编码串,就构成了这个函数优化问题的染色体编码方法。使用这种编码方法,解空间和遗传算法的搜索空间就具有一一对应的关系。例如:X:0000110111 1101110001就表示一个个体的基因型,其中前10位表示x1,后10位表
220
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
示x2。
确定编码方法。
解码时需要将20位长的二进制编码串切断为两个10位长的二进制编码串,然后分别将它们转换为对应的十进制整数代码,分别标记为y1和y2。依据个体编码方法和对定义域的离散化方法可知,将代码yi转换为变量xi的解码公式为:
xi=4.096yi-2.048 (i=1, 2) (3-4) 1023例如:对个体X:0000110111 1101110001,它由两个代码组成:
y1=55,y2=881
上述两个代码经过解码后,可得到两个实际的值:
x1=-1.828,x2=1.476
确定个体评价方法。由于Rosenbrock函数的值域总是非负的,并且优化目标是求函数的最大值,故可将个体的适应度直接取为对应的目标函数值,即:
F(x)f(x1,x2) (3-5)
选取个体适应度的倒数作为目标函数:
J(x)1 (3-6) F(x)设计遗传算子:选择运算使用比例选择算子,交叉运算使用单点交叉算子,变异运算使用基本位变异算子。
确定遗传算法的运行参数:群体大小M=80,终止进化代数T=100,交叉概率
pc=0.6,变异概率pm=0.1。
21
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
按照上述步骤求Rosenbrock函数的极大值的MATLAB程序参见附录A。经过100步迭代,最佳样本为:BestS=[00000000000000000000],所以当x1=-2.0480,x2=-2.0480时,此函数取得极大值,为3905.9。仿真结果:目标函数J和适应度函数F的优化过程如图3.2,3.3所示。运行结果显示在第一代的时候BestJ=2.992410-4,Bestfi=3.3418103;第二代的时候BestJ就达到最小值2.560210-4,此时,Bestfi=3.9059103。由此可见,遗传算法对函数的优化与随机选取的初始群体无关,而是以目标函数值作为搜索信息,收敛速度快。
图3.2 目标函数J的优化过程 图3.3 适应度函数F的优化过程
22
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
3.2.6遗传算法中关键参数的确定
遗传算法中关键参数主要包括以下参数: (1)种群规模n
种群规模影响遗传优化的最终结果以及遗传算法的执行效率。当种群规模门太小时,遗传算法的优化性能一般不会太好,而采用较大的种群规模则可以减少遗传算法陷入局部最优解的机会,但较大的种群规模意味着计算复杂度高。如按前面所说的
2n2计 算来大约取值,因此一般取n从10到160之间。
(2) 交叉概率Pc
交叉概率P控制着交叉操作被使用的频度。较大的交叉概率可增强遗传算法开辟新的搜索区域的能力,但高性能的模式遭到破坏的可能性增大;若交叉概率太低,遗传算法搜索可能陷入迟钝状态。在实际运算时取0.25-1.000
(3) 变异概率Pm
变异在遗传算法中属于辅助性的搜索操作,它的主要目的是维持解种群的多样性,一般,低频度的变异可防止种群中重要的、单一基因的可能丢失,高频度的变异将使遗传算法趋于纯粹的随机搜索。通常取变异概率为0.01左右。
(4) 代沟G
代沟G控制着每一代种群构成中个体被更新的百分比,即在t代有n( 1-G)个个体结构选择复制到t+l代解种群中。代沟方式的选用为遗传算法利用优化过程的历史信息提供了条件,加速了遗传算法的收敛过程;当G过小时,可能导致GA的过早的不成熟的收敛。他的取值从0.30到1.00之间。这些参数的选取将影响着遗传算法的效率和精度,在设计时还需认真考虑。
3.3 遗传算法的主要步骤
3.3.1 准备工作
为了使用遗传算法来解决控制过程PID参数选择中的优化问题,准备工作分为以下四步:
23
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
(1) 确定问题的潜在解的遗传表示方案
在基本的遗传算法中,表示方案是把问题的搜索空间中每个可能的点表示为确定长度的特征串(通常是二进制串),表示方案的确定需要选择串长1和字母表规模k。在染色体串和问题的搜索空间中的点之间选择映射有时容易实现,有时又非常困难。选择一个便于遗传算法求解问题的表示方案经常需要对问题有深入地了解。
(2) 确定适应值的度量
适应值度量为群体中每个可能的确定长度的特征串指定一个适应值,它经常是问题本身所具有的。适应值度量必须有能力计算搜索空间中每个确定长度的特征串的适应值。
(3) 控制该算法的参数和变量
控制遗传算法的主要参数有群体规模n、算法执行的最大代数M、复制概率Pr、杂交概率PC、变异概率Pm和选择策略R等参数。
(4)确定指定结果的方法和停止运行的准则
当遗传代数达到最大允许代数时,就可以停止算法的执行,并指定执行中得到的最好结果作为算法的结果。
3.3.2 基本遗传算法的步骤
第一步 确定每个参数的大致范围和编码长度,进行编码; 第二步 随机产生n个个体构成初始种群P(0);
第三步 将种群中各个体解码成对应的参数值,用此参数求代价函数值J及适应函数值f,取f=1/J。
第四步 应用复制,交叉和变异算子对种群P(t)进行操作产生下一代种群P(t+1); 第五步 重复步骤(3)和(4),直至参数收敛或达到预定的指标。 [2]
3.4遗传算法PID参数整定的编程实现
3.4.1初始群体
本论文所有的算法都采用Matlab进行了仿真.Matlab的最大特点是对矩阵操作方
24
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
便。在此,以P,I,D三个被优化的参数为基因,每个基因的长度CodeL为10个二进制编码,创建初始个体;初始群体的大小Size可任意设置,如30,用随机生成矩阵语句rand(n,m)来实现。rand(n,m)产生的是一个nXm的均匀分布的随机矩阵,每个元素为一个0到1之间的4位小数。为产生出0/1序列进行二进制编码,规定上面产生的小数rand在区间(0,0.5]之间为逻辑0,在区间[0.5,1]之间为逻辑1。调用Matlab的库函数round(rand)来实现。具体语句如下:
Size=30; CodeL=10;
E=round(rand(Size,3*CodeL));
鉴于程序的通用性,对一些参数,如Size,CodeL等以变量操作,而在初始化时给定共体值,以下同理。
3.4.2 编码
在多数遗传算法的编程中都采用二进制编码,这样方便各种遗传操作。本论文采用二进制编码,P,I,D三个参数均采用十位二进制数表示,组合一起构成一个三十位的染色体,从左到右每十个数依次代表P,I,D参数的二进制码。
首先设置P,I,D三个参数的取值范围,P为[MinX(1), MaxX(1)], I为[MinX(2), MaxX(2)], D为[MinX(3), MaxX(3)];
MinX(1)=zeros(1); MaxX(1)=50*ones(1); MinX(2)=zeros(1); MaxX(2)=1.0*ones(1); MinX(3)=zeros(1); MaxX(3)=1.0*ones(1);
将第s个染色体E(s,:)的前10位,第10到20位,第20到30位二进制码分别编码为Kpid(s,1), Kpid(s,2), Kpid(s,3).用for循环进行Size次后得到矩阵Kpid便为解码的结果.
for s=1:1:Size m=E(s,:); y1=0;y2=0;y3=0; m1=m(1:1:CodeL);
25
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
for i=1:1:CodeL
y1=y1+m1(i)*2^(i-1); end
Kpid(s,1)=(MaxX(1)-MinX(1))*y1/(2^CodeL-1)+MinX(1); m2=m(CodeL+1:1:2*CodeL); for i=1:1:CodeL
y2=y2+m2(i)*2^(i-1); end
Kpid(s,2)=(MaxX(2)-MinX(2))*y2/(2^CodeL-1)+MinX(2); m3=m(2*CodeL+1:1:3*CodeL); for i=1:1:CodeL
y3=y3+m3(i)*2^(i-1); end
Kpid(s,3)=(MaxX(3)-MinX(3))*y3/(2^CodeL-1)+MinX(3);
end
3.4.3 基本操作算子
(1) 选择算子
采用最普遍的适应度比例法。
首先要计算每个染色体的适应度fi(i),并累加,利用库函数sum(fi)实现: fi_sum=sum(fi);
计算每一行被选择的概率Pi(i): for i=1:1:Size
Pi(i)=fi(i)/fi_sum; end
产生一个随机数,与各行的选择概率进行比较,当某行的概率小于这一随机数的时候,该行被选中,并保存在另一个同维的空矩阵T中,如此循环. 为保证每次选择操作后群体的大小,所以加一个计数器k,使每代群体个数为初始设定的Size个;同时,在选择判断语句中也要判定已经选择的个数,来保证群体大小的不变。所以计数和判
26
沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制
断语句改为:
T=zeros(Size,3*CodeL); k=0; while k E=T (2) 交叉算子 在众多的交叉算子算法中,我们选用最简单的一点交叉算法。参照选择算子中的选取方法,可以先选行,再选列,从而找到交叉点。以随机产生的数为参照,来确定交叉点。 设置交叉概率Pc: Pc=0.60; 随机生成一个0到3*CodeL之间的整数n: n=ceil(3*CodeL*rand); 用rand产生一个随机值: temp=rand; 对于行号用循环语句从第i行第一列找起,当随机值小于交又概率PC时,进行交叉操作,把第i行从第n个到最后一个的二进制数保存在临时矩阵F中,然后把第i+1行的第n个到最后一个的二进制数复制给第i行的第n个到最后一个的二进制数,最后把临时 27 沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制 矩阵F再复制给第i+1行的第n个到最后一个的二进制数,如此完成交叉操作. 实现语句如下: pc=0.60; n=ceil(3*CodeL*rand); for i=1:2:(Size-1) temp=rand; if pc>temp F=zeros(1,3*CodeL); F=E(i,n:3*CodeL); E(i,n:3*CodeL)=E(i+1,n:3*CodeL); E(i+1,n:3*CodeL)=F; end end 把最后一个个体替换成适应度最好的个体,保证最优基因不丢失: E(Size,:)=BestS; (3) 变异算子 对于变异算子,在此我们也选用最简单的基本位变异。 用rand产生一个随机值: temp=rand; 对于行号用循环语句从第i行第一列找起,当随机值小于交又概率PC时,进行变异操作, 如果E(i,j)是0就变为1, 如果E(i,j)是1就变为0,从而完成变异操作。具体实现如下: for i=1:1:Size for j=1:1:3*CodeL temp=rand; if pm>temp if E(i,j)==0 E(i,j)=1; else 28 沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制 E(i,j)=0; end end end end 把最后一个个体替换成适应度最好的个体,保证最优基因不丢失: E(Size,:)=BestS; 3.4.4 目标函数 目标函数BsJ取决于三个参数,第i代的误差error(i)的绝对值, 第i代的控制量输出u(i),以及上升时间tr.首先使用for循环实现对误差error(i)的绝对值和控制量输出u(i)的按系数累加,得出结果后再把上升时间tr按系数加上去, 具体实现如下[7]: for i=1:1:P Ji(i)=0.999*abs(error(i))+0.01*u(i)^2*0.1; B=B+Ji(i); if i>1 erry(i)=yout(i)-yout(i-1); if erry(i)<0 B=B+100*abs(erry(i)); end end end BsJ=B+0.2*tr*10; 3.4.5 画图 用plot函数画出遗传操作的目标函数值曲线图,最终控制结果的图和控制量输出图,最后输出显示一些遗传算法实现PID参数整定过程中的一些重要参数。具体实现如下[6]: figure(1); plot(time,BestJ); 29 沈阳化工大学学士学位论文 第三章 基于遗传算法整定的PID控制 legend('目标函数的优化过程'); xlabel('进化的代数/代');ylabel('目标函数BestJ'); figure(2); plot(timef,r,'r',timef,yout,'b'); grid on; legend('给定值', 'PID控制效果'); xlabel('时间/s ');ylabel('yout'); figure(3); plot(timef,u); grid on; legend('控制量输出'); xlabel('时间/s ');ylabel('f/Hz'); 30 沈阳化工大学学士学位论文 第四章 PID整定方法的仿真应用 第四章 PID整定方法的仿真应用 4.1 一阶对象 考虑下面这个一阶惯性环节的对象: Gs12.8 (4.1) 16s1采用遗传算法得出PID控制器参数为: Kp=3.6706, Ti=13.8416,Td=0.0127. 采用遗传算法法系统目标函数优化曲线如图4-1所示: 采用遗传算法法系统单位阶跃响应曲线如图4-2所示: 采用遗传算法法系统控制量输出曲线如图4-3所示: 64目标函数的优化过程636261目标函数BestJ 60595857565554 051015进化的代数/代202530 图4-1 遗传算法系统目标函数优化曲线 31 沈阳化工大学学士学位论文 第四章 PID整定方法的仿真应用 1.4给定值遗传算法控制效果 1.210.8yout0.60.40.20 012345时间/s678910 图4-2 遗传算法系统单位阶跃响应曲线 4.5控制量输出43.53频率f/Hz 2.521.510.50 012345时间/s678910 图4-3 遗传算法系统控制量输出曲线 4.2 二阶对象 考虑下面这个二阶环节的对象: 32 沈阳化工大学学士学位论文 第四章 PID整定方法的仿真应用 Gs3 (4.2) s26s9采用遗传算法得出PID控制器参数为: Kp= 13.5679 , Ti=1.3812,Td=0.0147. 采用遗传算法法系统目标函数优化曲线如图4-4所示: 采用遗传算法法系统单位阶跃响应曲线如图4-5所示: 采用遗传算法法系统控制量输出曲线如图4-6所示: 12目标函数的优化过程11 10目标函数BestJ9876 051015进化的代数/代202530 图4-4 遗传算法系统目标函数优化曲线 33 沈阳化工大学学士学位论文 第四章 PID整定方法的仿真应用 1.4给定值遗传算法控制效果 1.210.8yout0.60.40.20 012345时间/s678910 图4-5 遗传算法系统单位阶跃响应曲线 18控制量输出161412频率f/Hz 1086420 012345时间/s678910 图4-6 遗传算法系统控制量输出曲线 4.3 三阶对象 考虑下面这个三阶环节的对象: 34 沈阳化工大学学士学位论文 第四章 PID整定方法的仿真应用 Gs3 (4.3) s36s29s12采用遗传算法得出PID控制器参数为: Kp=9.4624, Ti=1.8886,Td=0.0635. 采用遗传算法法系统目标函数优化曲线如图4-7所示: 采用遗传算法法系统单位阶跃响应曲线如图4-8所示: 采用遗传算法法系统控制量输出曲线如图4-9所示: 33.5目标函数的优化过程33 32.5目标函数BestJ3231.53130.530 051015进化的代数/代202530 图4-7 遗传算法系统目标函数优化曲线 35 沈阳化工大学学士学位论文 第四章 PID整定方法的仿真应用 1.4给定值遗传算法控制效果 1.210.8yout0.60.40.20 012345时间/s678910 图4-8 遗传算法系统单位阶跃响应曲线 60控制量输出50 40频率f/Hz3020100 012345时间/s678910 图4-9 遗传算法系统控制量输出曲线 36 沈阳化工大学学士学位论文 第五章 结论 第五章 结论 本论文首先介绍了PID控制方法和常规PID参数整定方法,然后将遗传算法用于被控对象PID参数的整定及优化,为了对比控制效果,应用MATLAB软件进行了仿真验证,并用仿真曲线进行直观的对比。 实验结果表明,应用遗传算法PID控制方式对被控对象进行控制,能够在对所求解问题一无所知的情况下,快速从全局范围内对参数进行自动搜索优化,并在一定的结束条件下得出优化的控制参数,鲁棒性好,系统的静、动态特性和稳态性都较好,与常规的PID参数自整定方法相比,取得了令人满意的控制效果,证明是一种高效的PID参数整定方法。 但其针对局部范围的参数优化不够精确,寻优结果跳动较大,容易陷入某一局部解死角,应该结合其它参数寻优方法解决此处不足。 37 沈阳化工大学学士学位论文 参考文献 参 考 文 献 [1] 刘金琨.先进PID控制MATLAB应用(第二版)[M].北京:电子工业出版社,2003:210~239 [2] 周明,孙树栋.遗传算法原理及应用[M].北京:国防工业出版社,2002.5 [3] 陈国良,王煦法,庄镇泉,王东生.遗传算法及其应用[M].北京:人民邮电出版社,2001.2 [4] 王非,冯冬青,马雁.基于改进遗传算法的PID参数优化研究[J].中文核心期刊《微计算机信息》测控自动化,2008,24(8-1):36~38 [5] 顾毅,刘新国.基于遗传算法的PID控制器的研究[J].信息技术,2000,(8):24~25 [6] 李瑞霞,李粉霞.基于改进遗传算法的PID参数整定策略[J].机械工程与自动化,2008,(6):155~157 [7] 叶军,张新华.基于改进遗传算法的PID控制器设计[J].控制工程,2002,9(3):51~52 [8] 苗广祥,冯玉昌,陈卫,陆剑飞.基于一种改进遗传算法的PID参数优化仿真[J].仪器仪表用户,2004,11(5):75~76 [9] 毛敏,于希宁.基于遗传算法的PID参数优化方法[J].电力自动化,2002,35(8):48~51 [10] 王琛,王仕成.基于遗传算法的PID参数整定及仿真[J].计算机仿真,2005,(10):112~114 [11] 刘禾,段泉圣,李农庄,周茵.基于遗传算法的PID参数整定与优化[J].华北电力大学学报,2001,28(3):31~33 [12] 席玉棕.基于遗传算法的PID参数整定与优化[J].工程建设与设计,2005,(8):91~92 [13] 丁寅磊,吕丽霞.基于遗传算法的PID控制器参数优化研究[J].仪器仪表用户,2009,11(5):1~2 [14] 谢勤岚,陈红.基于遗传算法的PID控制器优化设计[J].光学与光电技术,2003,1(3):37~40 [15] 牛理想,扈晓利,王高平.基于遗传算法寻优的PID控制及MATLAB仿真[J].测试测量技术,2008,(12):7~9 [16] 魏克新,王云亮,陈志敏,高强.MATLAB语言与自动控制系统设计(第2版)[M].北京:机械工业出版社,2004.8:48~67 [17] 张瑞丰.精通MATLAB 6.5[M].北京:中国水利水电出版社,2004 [18] 何东健,刘忠超,范灵燕.基于MATLAB的PID控制器参数整定及仿真[J].西安科技大学学报,2006,26(4):511~514 [19] 杨智,朱海锋,黄以华.PID控制器设计与参数整定方法综述[J].化工自动 38 沈阳化工大学学士学位论文 参考文献 化及仪表,2005,32(5):1~7 [20] 张松艳.选择算子与遗传算法的计算效率分析[J].宁波大学学报(理工版),2009,22(3):373~377 [21] 唐永环.浅淡基于遗传算法的PID控制技术.科海故事博览•科教创新.中国期刊网,2009,(2):1~6 [22] 席裕庚,柴天佑等.遗传算法综述.控制理论与应用,1996,13(6):697~708 [23] 李建新,柳利军.一种基于遗传算法的PID参数的优化控制策略.电力电子,2005,12(7):3~9 [24] 唐世浩,朱启疆.遗传算法中初始群种与交叉、变异率对解的影响及其解决方案.科技通报,2001,(5):1~5 [25] 徐璐,涂承宇.一种新的改进遗传算法及其性能分析.电子学报,2001,(7):902~904 [26] 张明辉,王尚锦.具有自适应交叉算子的遗传算法及其应用.机械工程学报,2002,(1):51~55 [27] 丁承民,张传生,刘辉.遗传算法纵横谈.信息与控制,1997,(1):40~47 [28] 刘国华等.用MATLAB实现遗传算法程序.计算机应用研究,2001,(6):12~16 [29] J B.Rose.The gradient project programming[J].L inear Co Math,1960,8 (1):181~217 [30] REID D J.Genetic algorithms in const rained optimization[J].Mathl Comput Modelling,1996,23 (5):87~111 [31] Ian Griffin.Biomimicry for Optimization[J].Control and Automation,2003, 177(22):11-17 [32] Lothar M Schmitt.Theory of genetic algorithms[J].Theoretical Computer Science,2001,25(9):11~26 [33] Lin Cheng-jian.A GA-based neural fuzzy system for temperature control[J].Fuzzy Sets and Systems,2004,4(3):311~333 39 沈阳化工大学学士学位论文 致谢 致 谢 在各位领导、老师和各位同学的关心和帮助下,为期一个学期的毕业设计即将完成。 首先,感谢我的指导老师梁禹老师。从论文选题到搜集资料,从写稿到反复修改到论文的最终完成,梁老师无不给于悉心指导。他为人随和热情,治学严谨,知识渊博,实事求是。在毕业设计期间,梁老师多次询问设计进程,并为我指点迷津,帮助我开拓研究思路。对设计中遇到的问题,梁老师总会在百忙之中挤出时间为我耐心解答。可以说,毕业设计的每一步都是在导师的指导下完成的,倾注了导师大量的心血。 我还要感谢科亚学院所有老师,是他们教会我专业知识,并在我遇到困难时给于我关心和帮助。没有他们的帮助,我不可能在今年毕业。在此,我对他们表示由衷的感谢! 最后,感谢我至亲至爱的家人、朋友,以及亲爱的同学。有了他们的帮助、支持和鼓励,我的毕业设计才得以完成。谢谢! 40 因篇幅问题不能全部显示,请点此查看更多更全内容