第 12卷 第 4期 广 西 工 学 院 学 报
2001年 12月 JOURNAL 0F GuANGXI uNIVERs1TY oF TECHNOL0GY
Vo1.12 No.4
Dec 200I
文章编号 1004—6410(2001)04—0006—04
基于MATLAB遗传算法工具箱的控制系统设计仿真
姜 阳 ,孔 峰。
(1广西大学电气工程学院,广西 南宁 530004;2.广西工学院电子信息与控制工程系,广西 柳州 545006)
捕 要:本文介 绍了基 于 MATLAB的遗传算法工具箱 (GAOT),阐述了如何利用遗传算法工具箱结合
SIMULINK平台米实现控制系统的设计和仿真t井给出利用遗传算法工具箱对 PID控制器进行参数整定的仿真
实例。
关 键 词:MATLAB~遗传算法 (GA);控制系统仿真
中囤分类号:TP273 5 文献标识码:A
O 引言
遗传算法 (GA)是一种成熟的具有极高鲁棒性和广泛适用性的全局优化方法。由于遗传算法不受问题
性质 (如连续性、可微性)限制,能够处理传统优化算法难以解决的复杂问题,因此它在控制系统优化方
面具有巨大潜力。近年来 .遗传算法在控制领域的PID控制、线性和非线性控制、最优控制、鲁棒性、自
适应控制、滑模、模糊逻辑、神经网络、参数估计和系统辨识、模型线性化和控制器降阶、机器人手臂控
制和轨迹规划等方面均得到了广泛的应用 ]。
MathWorks公司推出的MATLAB软件包集强大的数值计算、便捷的图形图像处理、友好的界面于一
身,现在已经开始成为控制领域不可缺少的工具。与此同时,控制领域许多学者将 自己擅长的控制手段用
MATI AB加以实现,出现了诸多的MATI AB工具箱,如:非线性控制工具箱、神经网络工具箱、模糊控
制工具箱等等。本文将讨论利用MATLAB遗传算法工具箱GAOT实现控制系统设计和仿真的新方法。
1 遗传算法工具箱结构与功能
遗传算法工具箱GAOT包括了许多实用的函数,这些函数按照功能可以分为以下几类
1、1 主界面 函数
主程序 ga、iTs提供了遗传算法工具箱与外部的接口。在MATI AB环境下,执行ga并设定相应的参数,
就可以完成优化 它的格式如下:
function[x,endPop,bPop,tracelnfo]=ga(bounds,evalFN.evalOps,startPop,opts⋯ .termFN,termOps,
selectFN,select0ps,xOverFNs,xOverOps,mutFNs,mutOps)
由于 MATI AB是以矩阵为基本运算单元,因此它的每一个出口参数和人 口参数均为矩阵。主程序
ga.m的出、人 口参数组成是 :
出口参数:
x;找到的最优解,包括染色体和适配度;endPop:最终种群;bPop:种群变化的记录;tracelnfo:记
录每一代的最好适应度和平均适应度。
鉴墓昙害 2广0<西)1毂-07育-0厅6科研基金资助项目.桂毂科(98)l一6l号
作者简介:姜阳 (1976一).男一陕西铜川人.广西大学电气T程学院硬士研究生
维普资讯 http://www.cqvip.com
第 4期 姜 阳等:基于 MATLAB遗传算法工具箱的控f}l系统设计仿真 7
入 口参数:
bounds:变量上下界矩阵,矩阵的行数确定变量个数;evalFN :适应度函数;evalOps:适应度函数
参数:startPop:初始种群;opts:选项;terraFN :终止函数{termOps:终止函数参数;selectFN :选择
函数;sdectOps:选择函数参数;xOverFN :交叉函数:xOverOps:交叉函数参数}mufFN :变异函数;
mutOps:变异函数参数。
当输人参数有缺省时,工具箱为startPop以后的参数设定了默认值。输出参数有缺省时,MATI AB将
先忽略后面的参数,没有指定输出参数时,将最优解赋给变量 “ans”
这类函数还包括两个初始化函数 initializega.m和initializeoga.m,前者是二进制格式和浮点数格式的初
始化函数,后者是 “有序数据”
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示的胡始化函数
l 2 选择 函数
遗传算法工具箱提供了三个选择函数roulette.m,normGeomSelect.rn和tournSeleet.m。roulette.m是常
用的轮盘赌法,normGeomSeleet.m是基于归一化的优先选择法,tournSeleet.m则是竞争选择法。
1.3 演化 函数
遗传算法的演化过程包括交叉和变异两部分,因此演化函数也可以分为交叉和变异两类。依照数据类
型又可以把演化函数分为二进制格式、浮点数格式和 “有序数据”三类。例如:simpleXover.m为二进制格
式或浮点数格式的交叉函数;cyclicXover.In,linerXover.m,linerorderXover.m等为 “有序数据”的交叉函
数;boundaryMutation.m.nonUnifMutation.m等为浮点数格式的变异函数。
在优化过程中,如果单一的演化函数不能满足需要,那么可以将演化函数组台来使用。
1.4 其它
其它的一些函数包括终止函数、二进制表示函数、演示程序等等。
终止函数:maxGenTerm m和optMaxGenTerm.m,主程序ga.m用这两个终止函数来判断是否满足终
止条件
二进制表示函数:calcbits.m用来计算遗传算法满足精度要求时,染色体所需要的二进制位数。f2b.m
和b2f.m用来完成二进制数和浮点数之问的相互转换。
遗传算法工具箱还提供了演示程序。用户可以通过演示程序学习一维、多维空间上的寻优,基于二进
制数表示或基于浮点数表示的寻优,以及利用遗传算法求解著名的旅行商问题。
2 设计与仿真
PID控制是连续系统控制理论中十分成熟的一种控制方式,它被广泛地应用在实际生产中。PID控制经
过近 80年的发展,已经有了众多的参数整定方法;基于遗传算法的PID参数整定是对PID参数整定方法的
一 种重要补充和发展 这里针对文献口一中的一个PID参数整定示例.使用遗传算法工具箱结合SIMUI INK
平台对系统的PID控制器进行设计与仿真,以此来说明遗传算法工具箱在控制系统设计与仿真中的应用。
2.1 系统结构
SIMUI INK是MATI AB软件包中一个非常成功的系统仿真工具,它允许设计人员使用近似于画框图
的方法定 义系统 在本设计 中.首先利用
SIMUI INK平台对控制系统的结构进行设计。
基于遗传算法的 PID控制系统在结构上类似
于 传统 的 PID控制系统,PID控制系统在
SIMUI INK平台上表示如图 1。控制对象的传
1 n
递函数为G(s)=
图1 控制系统结构图
PID算法采用 MATLAB中给出的表达式 Gc( )一 K +K 了1+K
其中K K,、K。分别为比例、积分和微分系数。
为了测试系统的性能 ,在 系统的输 入端加人一个阶跃函数产毕器,输出端加入一个 显示模块 Seope。闭
维普资讯 http://www.cqvip.com
8 广西工学院学报 2001年 1 2月
环系统的阶跃响应和阶跃输入被同时送到显示模块 Scope,并以图形的方式加以显示。
2.2 遗传算法整定PID参数
应用遗传算法工具箱优化系统的主要步骤为以下几点:
A)制定优化指标
一 个控制系统的优劣需要规定的优化指标来衡量。优化指标(即系统的目标函数)的选择可以是多种
的,例如:f;I l ( )ldt;-r;l e2(t)dt;-r—l £ (t)dt;等等。式中 (f)是误差信号,为方便起见,可设
为阶跃函数辖人信号和系统输出信号的差。不同的优化指标表示对系统的要求不同,选择的优化指标不一
样,最终得到的结果也不一样。就优化指标f—I (t)dt;,一l (t)dt相比较而言,相同误差量越向时
J 0 J 0
⋯
间轴正方向推移,对指标f— I 。(t)dt带来的影响就越大。因此+如果要求系统快速收敛,采用指标f—
J O
r+呻 r+∞
J te (t)dt要好于指标f—J (t)dt。在控制系统设计中,因为控制性能指标通常不是求目标函数的最大
J O J O
值,所以还需要对目标函数作逶当的变换。变换的方法很多,如:取倒数、仿模拟退火过程等。
B)染色体编码
遗传算法工具箱中的染色体编码可以选择二进制编码或浮点数编码。同样的问题常常可以使用不同的
编码,但是不同的编码对编程的方便性和程序运行效率的影响是不同的。在这个设计中,考虑到后面适应度
函数编程的方便性,对 , , o选择浮点数编码 程序中具体实现时,只需要将ga.m的参数opts的第二个
矩阵元素设为 1即可
C)适应度函数的编程实现。
遗传算法在搜索进化过程中一般不需要其他外部信息,仅用适应度来评价个体的优劣,并以此作为遗
传操作的依据。在利用遗传算法工具箱进行控制系统设计时,适应度函数用来定义要解决的优化问题,因而
说适应度函数的实现是整个优化过程最重要的一步。对适应度函数的编程使用MATI,AB语言,并以M文件
的形式保存,文件名将作为ga.m的evalFN参数的实参。
下面以PID控制系统为例说明适应度函数的实现方法:
function[arg.value]一 PIDSysEval(arg)
适应度函数名为PIDSysEva]
函数有一个人口参数 arg,即染色体个体;两个出口参数,染色体和对应的适应度。
sye— PIDsys(arg(1),arg(2),arg(3)); 计算系统的闭环传递函数
其中arg(1),arg(2),arg(3)分别是从染色体中分离出的 , ,, D
Ey,t,x] step(sys); 计算阶跃响应
deha= (y一1). (y一1). t; 计算 te (t)
value一 一trapz(t,delta); %对 te (t)求数值积分
D)选取演化函数
依据优化问题的性质选取演化函数。以交叉函数为例 :simpleXover函数是简单的单点交叉,适用于一
些普通问题;arithXover函数是基于数学的交叉方法,对一些浮点数运算非常有效。如果单一的演化函数不
能满足需要,遗传算法工具箱还允许将几个演化函数组合起来使用。
E)初始化种群
由于遗传算法的群体型操作需要,所以J必须为遗传操作准备一个由若干初始解组成的初始群体。初始
化可以使用工具箱提供的初始化函数initializega.m或 initializeoga.m,也可以通过编程来实现较特殊的方
法 初始化过程除了需要明确群体的大小,产生初始数据串之外,还要求出每一个个体的适应度。主程序
ga以初始群体作为初始点开始迭代。
F)调用 ga函数完成优化
调用ga函数之前,还要依照ga函数人口参数的格式和实际问题的需要进行设置一些参数,如:evalOps
(适应度函数参散)、演化函效参数 (变异率等)以及在opts中定义运算精度等等。
维普资讯 http://www.cqvip.com
第4期 姜 阳等:基于MATLAB遗传算法工具箱的控制系统设计仿真 9
完成了以上的步骤之后,调用Ra函数完成优化过程。
G)控制系统仿真
将通过优化得到的参数代人 PID控制器中,使用 SIMUI INK进行系统仿真,检测结果。
2.3 仿真结果
作为比较,首先对文献 中使用 Ziegler--Nkhds法得到的一组参数 (KP一1.0468,K,一 1.2836, D
一 0.2134)在SIMUI INK平台上进行仿真,系统的阶跃响应如图 2所示。接着利用遗传算法工具箱计算
PID参数。计算中选取的种群大小为 20。浮点数计算精度为 lO一 演化函数均取组合型函数,具体如下:交
叉函数为arithXover,heuristieXover,simpleXover;变异函数为boundaryMutation,muhiNonUnifMutation,
№
nonUnifMutation,unifMutation。适应度函数为f一一 J (t)dt。在繁殖50代之后,求得PID参数为 P
一 1.78,K 一0.128,K。=1.0,系统的阶跃响应如图 3所示。
围 2 Ziegler—Nichols涪得到的阶跃响应 田3 GA得到的阶跃响应
以上仿真结果表明:PID控制器使用遗传算法工具箱计算得到的参数后,系统特性对于优化指标
,一 ~ (z)出有较大改善
, 系统没有产生超调,大大减少了调节时间。而且由于引入了遗传算法,参数调
试的方便性比传统方法有较大提高。
3 结束语
利用 MATI AB的遗传算法工具箱 GAOT对控制系统进行设计和仿真,可以方便灵活地选择编码方
式、计算精度和种群大小,适应度函数的编程也十分简单 在遗传进化中,有多种策略可供选择、组合,可
便捷地制定新策略。在 SIMUI INK平台上,遗传算法工具箱还可以与其它先进控制方法如模糊控制、人工
神经网络等结合,以实现更复杂和更有效的控制手段。
[ 参 考 文 献 ]
[】]C.R,Houck.J,Joines and M,Kay,A genetic algo~thm for function optimimti~:A Matlab implementation,ACM
T~ansactions on Mathmat[ca[Softwa~,l996.
[2]杨智民,王 旭,庄显义 .遗传算法在自动控制领域的应用综述 [刀 .信息与控制,2000,8(4):329—339.
[33魏克新,王云亮,陈志敏 .MATLAB语言与自动控制系统设计 [M].北京:机槭工业出版社,1997.8.
The design and simul ation of the control system based on
the MATLAB genetic al gorithm tool box
JIANG Yang ;KoNG Feng0
(1一Electric Engineering College,Guangxi University,Nanning 530004,China;2-Dept-of Electronic
Information and Control Engineering,Guangxi University of Teehndlogy,Liuzhou 545006,China)
Abstract In this paper we introduced a MATLAB-based genet~ algorithm toolbox,and discussed the
realization of the design and simulation of the control system by using the genet~ algorithm (GA)toolbox
combining with SIMUI INK,and offered a simulation example of applying the GA toolbox tO the determining
of the parameter of PID controclet.
Key words:MATI AB;genetic algorithm (GA);control system sim"elation
维普资讯 http://www.cqvip.com