西北工业大学明德学院本科毕业设计论文
毕业 任务书
设计设 论文论
一、题目
基于粒子算法的控制器优化设计
二、指导思想和目的要求
1、利用已有的专业知识,培养学生解决实际工程问题的能力; 2、锻炼学生的科研工作能力和培养学生的团结合作攻关能力;
三、主要技术指标
1、熟悉掌握粒子群算法的基本原理; 2.对PID控制进行优化设计;
四、进度和要求
第01周----第02周: 英文翻译;
第03周----第04周: 了解智能算法的发展趋势; 第05周----第06周: 学习粒子群算法;
第07周----第09周: 设计PID控制器系统结构;
第10周----第11周: 设计基于智能优化算法的控制器优化结构; 第12周----第13周: 搭建Matlab/Simulink PID控制优化设计仿真程序,进
行仿真、验证;
第14周----第16周: 撰写毕业设计论文,论文答辩;
五、主要参考书及参考资料
[1] [2] [3] [4] [5] [6]
胡寿松.自动控制原理[M].科学出版社.2007
史峰、王辉.Matlab 智能算法[M].北京航空航天大学出版.2011 蒋慰孙,俞金寿.过程控制工程(第二版)[M].中国石化出版社. 1999 金以慧.过程控制[M].清华大学出版社.2000
陆德民.石油化工自动控制设计手册[M].化学工业出版社.2000
水琦, 何岗.鲁棒PID参数整定技术及应用[J].石化技术与应用.
2000,18(4):214-217
西北工业大学明德学院本科毕业设计论文
[7] [8]
王骥程,祝和云.化工过程控制工程[M].化学工业出版社.1991
吴建生,秦发金.基于Matlab的粒子群优化算法程序设计[J].柳州师专学
报.2005,20(4):97-100 [9]
王万良,唐宇.微粒子群算法的研究与展望[J].浙江工业大学学报.2007,35
(2):136-141
[10] 谢晓锋,张文俊,杨之廉.微粒群算法综述[J].控制与决策. 2003,18(2):129-134
[11] 纪震,廖惠连,吴青华.粒子群算法及应用[M].科学出版社.2009 [12] 龚纯,王正林,精通Matlab最优化计算[M].电子工业出版社. [13] 李丽,牛奔,粒子群优化算法[M].冶金工业出版社.2009 [14] 陈国良.遗传算法及其应用[M].人民邮电出版社.1996 [15] 王凌.智能优化算法及其应用[M].清华大学出版社.2001
[16] 陈云飞.广义分配问题的一种小生境遗传蚁群优化算法[J].北京理工大学学报.2005(06)
[17] 杨维.粒子群优化算法综述[J].中国工程学.2004(84)
[18] 志荣.基于MATLAB的粒子群优化算法及其应用[J].计算机仿真.2004(5)
[19] 李爱国.粒子群优化算法[J].计算机工程与应用2004(5)
[20] 刘国平.多目标最优化的粒子群算法[J].杭州师范学院学报2005(1)
学生 ___________ 指导教师 ___________ 系主任 ___________
西北工业大学明德学院本科毕业设计论文
摘 要
粒子群算法是一种基于群体智能的启发式全局搜索算法,粒子群算法通过粒子间的竞争和协作以实现在复杂搜索空间中寻找全局最优点。它具有易理解、易实现、全局搜索能力强等特点,倍受科学与工程领域的广泛关注,已经成为发展最快的智能优化算法之一。
PID参数的寻优方法有很多种,各种方法都有各自的特点,应按照实际系统的特点选择适当的方法。本文主要研究基于粒子群算法的PID控制系统参数优化设计方法,主要工作如下:其一,选择被控对象,本文选取的控制对象为不稳定系统的传递函数,对控制系统进行仿真,并对结果进行分析。其二,根据粒子群算法的特点,设置算法中的相应参数,对PID的kp、ki、kd进行优化;其三,采用Simulink对优化后的控制系统进行仿真,得到系统优化后的响应曲线。通过对结果分析可知,将粒子群算法应用于PID参数优化设计是完全可行的。
关键词:PID控制,粒子群算法,优化设计,Simulink
西北工业大学明德学院本科毕业设计论文
ABSTRACT
Particle swarm optimization is an emerging global based on swarm intelligence heuristic search algorithm, particle swarm optimization algorithm competition and collaboration between particles to achieve in complex search space to find the global optimum. It has easy to understand, easy to achieve, the characteristics of strong global search ability, and has never wide field of science and engineering concern, has become the fastest growing one of the intelligent optimization algorithms.
The PID parameters optimization method has a lot of kinds, all kinds of methods all have their own characteristics, should according to the characteristics of the actual system choosing proper method. There are a lot of methods of optimization for the parameters of PID, and each of them has its own characteristics. The proper methods need to be selected according to the actual characteristics of the system. In this paper we adopt the Particle Swarm Optimization to tune the parameters. To finish it, the following tasks should be done. First, choose the controlled object, this paper selects control object for unstable system transfer function, through the simulation of control system step by step. Second, according to the characteristics of the particle swarm algorithm, each of the parameters set PSO, use of MATLAB program, to optimize the
kp、ki、kd of the PID. Third, Using simulink tool of simulation of PID parameters optimization system, and simulation that the optimal parameters of the system to be affected, curve. Analysis results indicate that the algorithm process, performance index has been declining, PSO looking for more optimal parameters, so by using particle swarm optimization algorithm of the obtained result is obvious.
KEY WORDS: PID, Particle Swarm Optimization, Optimal Design, Simulink
西北工业大学明德学院本科毕业设计论文
目 录
摘 要 ............................................................. I ABSTRACT ......................................................... II 第一章 前 言 ...................................................... 1 1.1研究的背景和课题意义 .......................................... 1 1.2基本的PID参数优化方法 ........................................ 1 1.3常用的整定方法 ................................................ 2 1.4本文的主要工作 ................................................ 4 第二章 粒子算法 ................................................... 5 2.1粒子群算法的起源 .............................................. 5 2.2粒子算法的概述 ................................................ 6 2.3粒子算法的介绍 ................................................ 6 2.4基本粒子群算法 ................................................ 7 2.4.1算法原理 .................................................. 7 2.4.2算法步骤 .................................................. 8 2.4.3算法特点................................................... 9 2.4.4算法举例 .................................................. 9 2.5 带压缩因子的粒子群算法 ....................................... 13 2.5.1.算法原理 ................................................. 13 2.5.2.算法步骤 ................................................. 14 2.5.3.算法举例 ................................................. 15 2.6 带惯性权重的粒子群算法 ....................................... 16 第三章 PID控制理论 ............................................... 18 3.1 PID控制原理 ................................................. 18 3.2 数字PID控制算法 ............................................. 19 3.2.1 位置式PID控制算法 ....................................... 19 3.2.2 增量式PID控制算法 ....................................... 21 3.3 PID控制特点 ................................................. 22 3.4 PID控制器参数整定的原理和方法 ............................... 23 3.4.1 基于ZIEGLER-NICHOLS方法的PLD整定 ......................... 23 3.4.2 ISTE最优设定方法 ........................................ 23 3.4.3 临界灵敏度法 ............................................. 24 3.4.4 基于增益优化的整定法 ..................................... 25 3.4.5 基于总和时间常数的整定法 ................................. 26 第四章 优化设计框架 .............................................. 28 4.1优化设计简介 ................................................. 28
西北工业大学明德学院本科毕业设计论文
4.2 理论基础 ..................................................... 29 4.3 目标函数的选取 ............................................... 29 4.4问题描述 ..................................................... 30 4.5优化设计过程 ................................................. 31 4.6粒子群算法实现 ............................................... 32 4.7 SIMULINK部分的程序实现 ........................................ 34 4.8 PSO部分的程序实现 ........................................... 34 第五章 优化设计结果 .............................................. 35 5.1 粒子群算法整定结果 ........................................... 35 5.2 结果分析 ..................................................... 36 5.3 P、I、D参数对系统性能影响的研究 ............................. 36 第六章 论文总结与展望 ............................................ 40 致 谢 ............................................................ 42 参考文献 ......................................................... 43 毕业设计小结 ..................................................... 44 附录1 PSO部分程序代码清单 ....................................... 45
西北工业大学明德学院本科毕业设计论文
第一章 前 言
1.1研究的背景和课题意义
在现代工业控制领域,PID控制器由于其结构简单、鲁棒性好、可靠性高等优点得到了广泛应用。PID的控制性能与控制器参数kp、ki、kd的优化整定直接相关。在工业控制过程中,多数控制对象是高阶、时滞、非线性的,所以对PID控制器的参数整定是较为困难的。优化问题是工业设计中经常遇到的问题,许多问题最后都可以归结为优化问题。为了解决各种各样的优化问题,人们提出了许多优化算法,比较著名的有爬山法、神经算法和遗传算法等。优化问题有两个主要问题。一是要求寻找全局最小点,二是要求有较高的收敛速度。爬山法精度较高,但是易于陷入局部极小。遗传算法、神经网络算法等也还存在某些不足,前者要涉及到繁琐的编码解码过程和很大的计算量,后者的编程和解码过程需要大量CPU时间,算法易早熟,收敛易陷入局部最优,往往不能同时满足控制系统的速度和精度,且隐含层数目、神经元个数以及初始权值等参数选择都没有系统的方法。
1.2基本的PID参数优化方法
目前PID参数整定优化方法有很多,比如单纯形法、最速下降法、误差积分准则ISTE最优设定方法、遗传算法、蚁群算法等。单纯形法是一种求解多变量无约束最优化问题的直接搜索法,是求解非线性函数的无约束极值的一种经验方法;最速下降法是一种以梯度法为基础的多维无约束最优化问题的数值计算法,它的基本思想是选取目标函数的负梯度方法(最速下降方向)作为每步迭代的搜索方向,逐步逼近函数的极小值点;误差积分准则ISTE最优设定方法是针对一类特定被控对象的,如果被控对象形式已知,可以考虑使用这种ISTE误差积分准则作为目标函数进行参数优化;遗传算法借鉴了自然界优胜劣汰的进化思想,是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模
1
西北工业大学明德学院本科毕业设计论文
型,通过模拟自然进化过程搜索最优解的方法。其基本思想是:先初始化一个种群(种群是由经过基因编码的一定数目的个体组成的,每个个体代表所求问题的一种解决方案),然后按照生物进化理论中的适者生存和优胜劣汰的原理,逐代演化产生出越来越好的个体。在每一代,根据个体的适应度大小挑选出较好的个体,并借助于自然遗传学的遗传算子进行组合交叉和变异,产生出代表新的解集的种群。经过数代的演化,将使得最终的种群更加适应环境,种群中的个体更加优质,把最后种群中的最优个体经过解码后作为问题的近似最优解;蚁群算法是受到自然界中真实蚁群集体行为的研究成果的启发而提出的基于种群的模拟进化算法。蚂蚁从蚁巢出发寻找食物源,找到食物后在从食物源原路返回蚁巢的路上释放信息素,觅食的蚂蚁会跟随这个信息素踪迹找到食物源。信息素按照一定的比例释放的。路径越短,释放的信息素越多,浓度也越高;而信息素浓度越高,吸引的蚂蚁也越多;吸引的蚂蚁越多,遗留下的信息素也越多。最后所有的蚂蚁都集中到信息素浓度最高的一条路径上,这条路径就是从蚁巢到食物源的最短路径。为解决最优化问题人们提出过许多新技术和新方法,但工业和科学领域大量实际问题的困难程度正在日益增长,它们大多是根本无法在可接受的时间内找到解的问题。这类优化问题的困难性不仅体现在具有极大的规模,更为重要的是,它们多数是非线性的、动态的、多峰的、具有欺骗性的或者不具有任何导数信息。因此,发展通用性更强、效率更高的优化算法总是需要的。
1.3常用的整定方法
这里列举在过程控制系统中常用的参数整定方法:经验法、衰减曲线法、临界比例度法、反应曲线法。用衰减曲线法整定调节器参数的方法是:在纯比例作用下,Ti为?,Td为0,目的是要得到4:1,衰减振荡过度过程曲线。根据所得曲线,若衰减大于4:1 应调整?朝小比例带方向;若小于4:1,应调整?朝大比例带方向。记下4:1的比例带?,并在记录曲线上求得4:1衰减时的调节周期TP,然后计算?,Ti,Td各值。
临界比例度法考虑的实质是通过现场试验找到等幅振荡的过渡过程,得到临界比例度和等幅振荡周期。当操纵变量作阶跃变化时,被控变量随时间变化的曲
2
西北工业大学明德学院本科毕业设计论文
线称为反应曲线。对有自衡的非振荡过程,广义对象传递函数常可用
G?s??K?s???exp?sT?1?近似。K、?和T用图解法等得出。调节器参数整定的
反应曲线是依据广义对象的K、?和T定调节器参数的方法。
在这些指标中,不同的系统有不同的侧重:强调快速跟踪的系统要求调节时间尽可能短些,强调稳定平稳的系统则要求超调量小,但基本上都要保证系统稳定收敛,即衰减比大于1,超调量必须在允许值的范围内,另外,余差尽可能小至最后为零。影响控制系统指标的因素除了对象的时间常数、放大系数及滞后常数外,还有调节器的参数整定情况。调节器的参数整定是一个复杂的问题,这是因为这些参数的整定要考虑控制对象的各种特性,以及一些会影响系统运行过程的未知干扰;而且,调节器参数本身的调整也会对系统的特性产生重大影响。调节器的各参数对控制指标的具体影响主要体现在:
比例带?:比例带?越小,上升时间减小,衰减比S减小,稳定度下降。在工程上,比例带常用比例度P来描述。
微分作用:微分作用的大小由微分时间Td来决定。Td越大,越能克服系统的容量滞后和测量滞后,对缩短调节时间有一定作用。
积分作用:积分作用通过积分时间Ti来体现。Ti越小,消除余差越快,稳定度下降,振荡频率变高。
要实现PID参数的自整定,首先要对被控制的对象有一个了解,然后选择相应的参数计算方法完成控制器参数的设计。据此,可将PID参数自整定分成两大类:辨识法和规则法。基于辨识法的PID参数自整定,被控对象的特性通过对被控对象数学模型的分析来得到,在对象数学模型的基础上用基于模型的一类整定法计算PID参数。基于规则的PID参数自整定,则是运用系统临界点信息或系统响应曲线上的一些特征值来表征对象特性,控制器参数由基于规则的整定法得到。
尽管当今出现了许多高级控制方法,但是实际控制系统仍然是以比例积分微分(PID) 控制为主,即使已经有了一些行之有效的整定规则,但是手动整定PID控制器参数仍是一件复杂和费时的工作。因此出现了许多自整定算法。无论那种整定方法,都不是万能的,它们各有长处和不足,都有一定的适应范围。
3
西北工业大学明德学院本科毕业设计论文
为了提高传统PID整定技术的适应能力,好多新的方法,如遗传算法,模糊逻辑控制等在最近几年里获得了很快的发展,并广泛地应用于PID控制器参数整定中。每种控制方法都有各自的优点以及适用范围,在实际的操作中不同的方法来实现同一控制模型,其精确度也会有差别。
在工程实践中,总希望所选的方案是一切可能的方案中最优的方案,这就是最优控制的问题。解决最优控制的数学方法称为最优化方法,近几十年来,它已经是一门迅速发展的学科。在自动控制方面,将优化技术用于系统设计,能使设计出来的控制系统在满足一定的约束条件下,达到某种性能指标的函数为最小(或最大),这就是控制系统的最优化问题。
1.4本文的主要工作
本文采用粒子群算法对PID参数进行寻优。先选择控制对象,本文选取的控制对象为不稳定系统的传递函数,在MATLAB下实现粒子群算法寻优程序。通过粒子群算法得到系统性能最佳的PID参数后,采用SIMULINK仿真工具对PID参数优化系统进行仿真,得出系统的响应曲线。由仿真结果可知,对于不稳定的被控对象,由粒子群优化算法(Particle Swarm Optimization,PSO)设计出的PID控制器参数kp、ki、kd,由结果可知,很好的控制了被控对象。
本文的主要工作如下:
1.介绍研究背景,提出使用粒子群算法整定PID控制器参数的思想。并对基本的PID整定方法做一介绍。
2.学习粒子群算法,描述粒子群算法的起源与原理,列举出不同的粒子群算法,并且举出用粒子群算法来解决一些问题的实际例子。
3.着重介绍PID控制器的原理和特点,描述了数字式PID控制算法,并列出了几种PID整定的方法。
4.描绘优化设计框架,对所要整定的PID进行仿真,得出响应曲线。 5.对得出的响应曲线做出进一步的分析。 6论文总结。
4
西北工业大学明德学院本科毕业设计论文
第二章 粒子算法
2.1粒子群算法的起源
自然界中各种生物体均具有一定的群体行为,而人工生命的主要研究领域之一是探索自然界生物的群体行为,从而在计算机上构建其群体模型。自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣,生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,个体遵循:
(1)避免与邻域个体相冲撞。 (2)匹配邻域个体的速度。
(3)飞向鸟群中心,且整个群体飞向目标。
仿真中仅利用上面三条简单的规则,就可以非常接近的模拟出鸟群飞行的现象。1990年,生物学家Frank Heppner也提出了鸟类模型,它的不同之处在于:鸟类被吸引飞到栖息地。在仿真中,一开始每一只鸟都没有特定的飞行目标,只是使用简单的规则确定自己的飞行方向和飞行速度(每一只鸟都试图留在鸟群中而又不相互碰撞),当有一只鸟飞到栖息地时,它周围的鸟也会跟着飞向栖息地,这样,整个鸟群都会落在栖息地。
1995年,美国社会心理学家James Kennedy和电气工程师Russell Eberhart共同提出了粒子群算法,其基本思想是受对鸟类群体行为进行建模与仿真的研究结果的启发。他们的模型和仿真算法主要对Frank Heppner的模型进行了修正,以使粒子飞向解空间并在最好解处降落。Kennedy在他的书中描述了粒子群算法思想的起源:
自20世纪30年代以来,社会心理学的发展揭示:我们都是鱼群或鸟群聚集行为的遵循者。在人们的不断交互过程中,由于相互的影响和模仿,他们总会变得更相似,结果就形成了规范和文明。人类的自然行为和鱼群及鸟群并不类似,而人类在高维认知空间中的思维轨迹却与之非常类似。思维背后的社会现象远比鱼群和鸟群聚集过程中的优美动作复杂的多:首先,思维发生在信念空间,其维
5
西北工业大学明德学院本科毕业设计论文
数远远高于3;其次,当两种思想在认知空间会聚于同一点时,我们称其一致,而不是发生冲突。
2.2粒子算法的概述
在PSO算法,每个优化问题的解都是搜索空间中的一只鸟,被抽象为没有质量和体积的微粒,并将其延伸到N维空间。粒子i在N维空间里的位置表示为一个矢量.每个粒子的飞行速度也表示为一个矢量。
所有的粒子都有一个由被优化的函数决定的适应值(fitness),每个粒子还有一个速度决定它们飞翔的力向和距离。粒子们知道自已到目前为止发现的最好位置(pbest)和现在的位置。这个可以看做是拉子自已的飞行经验。除此之外,每个粒子还知道到目前为止整个群体中所有粒子发现的最好位置(gbest,gbest是pbest中的最好值),这个可以看做是粒子同伴的经验。粒子就是通过自己的经验和同伴中最好的经验来决定下一步的运动。
2.3粒子算法的介绍
PSO算法首先初始化一群随机粒子(随机解),然后粒子们就追随当前的最优粒子在解空间中搜索,即通过迭代找到最优解。假设d维搜索空间中的第i个粒子的位置和速度分别Xi?(xi,1 x2,i ? xi,d)和Vi?(vi,1 v2,i ? vi,d),在每一次迭代中,粒子通过跟踪两个最优解来更新自己,第一个就是粒子本身所找到的最优解。即个体极值pbest,Pi?(pi,1 p2,i ? pi,d);另一个是整个种群目前找到的最优解,
即全局最优解gbest,Pg。在找到这两个最优值时,粒子根据如下的公式来更新自已的速度和新的位置。
vi,j(t?1)??vi,j(t)?c1r1pi,j?xi,j(t)?c2r2pg,j?xi,j(t) (2.1) xi,j(t?1)?xi,j(t)?vi,j(t?1),j?1,2,?,d (2.2) 其中?为惯侣权因子,c1和c2为正的学习因子,?和r2为0到1之间均匀分
6
????西北工业大学明德学院本科毕业设计论文
布的随机数。
粒子群算法的性能很大程度上取决于算法的控制参数,例如粒子数、最大速度、学习因子、惯性权重等,各个参数的选取原则如下。
· 粒子数:粒子数的多少根据问题的复杂程度自行决定。对于一般的优化问
题取20至40个粒子就完全可以得到很好的结果;对于比较简单的问题10个粒子已经足够可以取得好的结果;对于比较复杂的问题或者特定类别的问题,粒子数可以取到100以上;
· 粒子的维度:这是由优化问题决定,就是问题解的维度; · 粒子的范围:由优化问题决定,每一维可设定不同的范围
· 最大速度Vmax:决定粒子在一个循环中最大的移动距离,通常设定为粒
子的范围宽度;
· 学习因子:学习因子使粒子具有自我总结和向群体中优秀个体学习的能
力,从而向群体内或邻域内最优点靠近,通常取c1和c2为2。但也有其他的取值,一般c1等于c2,且范围在0至4之间;
· 惯性权重:决定了对粒子当前速度继承的多少,合适的选择可以使拉子
具有均衡的探索能力和开发能力,惯性权重的取法一般有常数法、线性递减法、自适应法等。
2.4基本粒子群算法
2.4.1算法原理
基本粒子群算法采用常学习因子c1和c2及常惯性权重?,粒子根据如下的公式来更新自己的速度和新的位置。
vi,j(t?1)??vi,j(t)?c1r1pi,j?xi,j(t)?c2r2pg,j?xi,j(t) (2.3)
xi,j(t?1)?xi,j(t)?vi,j(t?1),j?1,2,?,d (2.4)
????7
西北工业大学明德学院本科毕业设计论文
2.4.2算法步骤
基本拉子群算法的基本步骤如下:
(1) 初始化粒子群,随机初始化各粒子。 (2) 根据适应度函数计算各粒子的适应度值。
(3) 对每个粒子,将它的适应度值与它的历史最优的适应度值比较,如果更好,则将其作为历史最优。
(4) 对每个粒子,比较它的适应度值和群体所经历的最好位置的适应度值,如果更好,则将其作为群最优。
(5) 根据方程对粒子的速度和位置进行进化。
(6) 如果达到结束条件(足够好的解或最大迭代次数),则结束,否则转步骤(2)。
粒子群算法的流程图如下:
开始初始化每个粒子的速度和位置计算每个粒子的适应值求出每个粒子的个体最优求出整个群体的全局最优值根据方程(2.3)和(2.4)对粒子的速度和位置进行优化N是否满足条件?Y结束
图2-1 粒子群算法流程图
8
西北工业大学明德学院本科毕业设计论文
2.4.3算法特点
粒子群算法具有以下主要优点: ◆ 易于描述 ◆ 设置参数少 ◆ 容易实现 ◆ 收敛速度快
粒子群算法很容易实现,计算代价低且占用计算机硬件资源少。粒子群算法已被证明能很好地解决许多全局优化问题。当然,PSO算法也和其它全局优化算法一样,有易陷入局部最优,收敛精度不高,后期收敛速度慢等缺点。 2.4.4算法举例
30i采用基本粒子群算法求取Sphere Model函数f(x)??xi2的最小值。 解:本例题中函数的最小点为(x1x2?x30)=(0 0 ?0),最小值为0,现在用PSO算法求最小值,首先看看不同迭代步数对结果的影响,粒子群规模为40,学习因子都为2,惯性权重为0.5,迭代步数分别取1000,5000,10000。
首先建立目标函数文件fitness.m输入下列内容:
在MATLAB命令窗口中输入:
[xm,fv]=PSO(@fitness,40,2,2,0.5,1000,30) [xm,fv]=PSO(@fitness,40,2,2,0.5,5000,30) [xm,fv]=PSO(@fitness,40,2,2,0.5,10000,30)
将上面的结果比较如下:
表格 2-1 MATLAB程序结果(不同迭代步数)
迭代步数 1000 0.171159151 9
5000 -0.09655836 10000 -0.015987273 x1
西北工业大学明德学院本科毕业设计论文
x2 0.142073624 -0.181912103 0.100336293 -0.166995445 0.035661509 0.03714832 0.045744151 -0.17108798 0.055131632 0.256463333 -0.130777383 0.116058331 -0.098250698 -0.168572745 0.280344421 0.006834519 0.156634145 0.083343625 0.098852089 0.07067315 -0.222052643 -0.04083795 10 0.008334669 0.018636421 0.103782436 -0.030102957 0.006084049 0.013657669 0.01093129 0.042910338 -0.15093465 0.076321997 0.004402608 0.026024016 0.011989153 0.016651766 -0.007360677 0.38583338 -0.012203864 0.038583338 0.089216026 -0.074770647 0.007202879 0.015707451 -0.001818132 0.004625648 0.038768164 0.007716967 0.015746696 -0.00238339 0.023852163 0.00743934 -0.014160336 -0.032519146 0.006066822 -0.007677664 -0.027326272 0.01974572 0.014704575 -0.037417556 -0.061915582 -0.046837159 -0.022234846 -0.071276469 0.049688358 0.006258405 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23
西北工业大学明德学院本科毕业设计论文
x24 0.210061935 -0.128197952 0.216501635 -0.087501913 0.060820255 -0.24635774 -0.013847313 0.647537257 -0.029049568 0.019223623 -0.020202074 0.007375891 -0.036771138 -0.041702041 -0.061609071 0.07892244 0.090448281 -0.013524576 0.01044023 -0.040697535 -0.00546114 -0.04696722 0.0160652994 0.033415582 x25 x26 x27 x28 x29 x30 函数极值 从上面总的求解结果可以看出,在其他参数不变的情况下,一般迭代步数越大,求得的解精度越高,但这并不是绝对的,因为PSO算法本质上也是一种随机算法,即使用同样的参数,每一次求解也可能得出不同的结果,同时如果对于多峰函数,PSO还有可能陷入局部最优点。
下面看看粒子群规模对结果的影响,学习因子都为2,惯性权重为0.5,迭代步数都为10000,粒子群规模分别取50,60和80。
在MATLAB命令窗口中输入:
[xm,fv]=PSO(@fitness,50,2,2,0.5,10000,30) [xm,fv]=PSO(@fitness,60,2,2,0.5,10000,30) [xm,fv]=PSO(@fitness,80,2,2,0.5,10000,30)
将上面求得的结果列表比较如下:
表格 2-2 MATLAB程序结果(不同粒子群规模) 粒子群规模 50 -0.011310346 0.004387846 -0.006667246 0.005968439 60 0.007425583 0.004817914 0.001855609 0.014335334 80 0.032168404 0.018358567 0.022236195 0.011242284 x1 x2 x3 x4 11
西北工业大学明德学院本科毕业设计论文
x5 0.00915497 -0.051987837 -0.028687574 -0.017726526 0.012876614 0.011624676 -0.023362432 -0.04250188 0.013219908 -0.010243719 -0.011879719 -0.031978858 -0.021793246 -0.014866581 0.032450927 -0.025591814 -0.009162494 0.053509427 -0.004734495 0.007099775 -0.000461146 -0.003042356 12 -0.001267227 -0.005496917 0.0001096 0.008815249 -0.0019579 -0.001582704 0.034052767 0.01536705 0.006606199 -0.008777581 -0.000378132 -0.004513022 -0.013723932 -0.000989141 -0.003615733 -0.005227237 0.003642045 -0.007972992 -0.005917549 0.012719095 0.000387322 -0.002620875 -0.020372561 0.022033454 0.052377912 -0.023582598 0.03170092 0.014189874 -0.013562149 0.046835547 0.032128767 0.040258144 -0.000129326 -0.049016752 -0.083971611 0.021355323 0.007294525 -0.027505171 0.030514614 -0.006440302 0.043635763 0.021021241 0.04026069 0.016406857 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26
西北工业大学明德学院本科毕业设计论文
x27 -0.005241852 -0.009992668 0.01191555 0.012901919 0.014116871 0.006107442 -0.007381692 -0.007381692 -0.002471487 0.002693362 -0.051622937 -0.021966852 -0.021966852 0.060333511 0.036639153 x28 x29 x30 函数极值 从上面的结果比较可以看出,粒子群规模不是越大越好,关键是各个参数之间的搭配,才能求得比较好的结果。
2.5 带压缩因子的粒子群算法
2.5.1.算法原理
学习因子c1和c2决定了粒子本身经验信息和其他粒子的经验信息对粒子运行轨迹的影响,反映了粒子群之间的信息文流。设置c1较大的值,会使粒子过多地在局部范围内徘徊,而较大的c2值,则又会促使粒子过早收敛到局部最小值。
为了有效地控制粒子的飞行速度使算法达到全局探测与局部开采两者间的有效平衡,Clerc构造了引入收缩因子的PSO算法,其速度更新公式为:
vi,j(t?1)??{vi,j(t)?c1r1pi,j?xi,j(t)?c2r2pg,j?xi,j(t)}???? (2.5)
??22?C?C?4C2,
C?c1?c2 (2.6)
为保证算法的顺利求解。c1+c2必须大于4。典型的取法有:
(1 ) c1=c2=2.05。此时C为4.1,收缩因子?为0.729,这在形式上就等效于
?=0.729, c1=c2=1.49445的基本PSO算法;
(2)微粒规模N=30, c1=2.8,c2=1.3,此时C为4.1,收缩因子?为0.729。
13
西北工业大学明德学院本科毕业设计论文
2.5.2.算法步骤
带压缩因子粒子群算法的基本步骤如下: (1)随机初始化种群中各微粒的位置和速度;
(2)评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微拉的
pbest中,将所有pbest中适应值最优个体的位置和适应值存储于gbest中;
(3)用下式更新粒子的速度和位移:
vi,j(t?1)??{vi,j(t)?c1r1pi,j?xi,j(t)?c2r2pg,j?xi,j(t)} (2.7) 其中??22?C?C?4C2????,
C?c1?c2
(4)对每个微粒,将其适应值与其经历过的最好位置作比较,如果较好,则将其作为当前的最好位置;
(5)比较当前所有pbest和gbest的值,更新gbest;
(6)若满足停止条件(通常为预设的运算精度或迭代次数),搜索停止,输出结果,否则返回(3)继续搜索。
其流程图如下:
14
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于智能优化算法的控制器优化设计本在线全文阅读。
相关推荐: