MATLAB遗传算法PID大作业【精品毕业设计】(完整版)

合集下载

MATLAB遗传算法PID大作业

MATLAB遗传算法PID大作业

遗传算法在调节控制系统参数中的应用【摘要】自动化控制系统多采用PID 控制器来调节系统稳定性和动态性,PID 的Kp,Ki,Kd 参数需要合理选择方能达到目标。

遗传算法是一种模拟生物进化寻求最优解的有效算法,本文通过利用GAbx 工具箱实现对控制电机的PID 进行参数优化,利用matlab 的仿真功能可以观察控制效果。

1. 直流伺服电机模型 1.1物理模型图1 直流伺服电机的物理模型αu ---电枢输入电压(V ) a R ---电枢电阻(Ω) S L ---电枢电感(H ) q u ---感应电动势(V ) g T ---电机电磁转矩(N m ⋅) J---转动惯量(2m kg ⋅)B---粘性阻尼系数(s m N ⋅⋅) g i ---流过电枢的电流(A ) θ---电机输出的转角(rad )1.2传递函数利用基尔霍夫定律和牛顿第二定律得出电机基本方程并进行拉布拉斯变换)()()()()()()()()()()(2s s K s U K s I s T s Bs s Js s T s I s L R s I s U s U e q t a g g a a a a q a θθθ⋅=⋅=⋅+⋅=⋅+⋅=-式中:t K 为电机的转动常数(m N ⋅)A ;e K 为感应电动势常数(s V ⋅)radaa R s L +1S1 BJs +1i KC K)(s U a)(s U q)(s I a )(s T g)(s Ω)(s θ图2 直流伺服电机模型方框图消去中间变量得系统的开环传递函数:sK K B Js R s L K s U s s G C t a d ta ]))([()()()(+++==θ系统参数如下:s m uN B m mg J ⋅⋅=⋅=51.3,23.32A m N K K uH L R e t a a )(03.0,75.2,4⋅===Ω=2. PID 校正图3 PID 校正s K sK K s G d ip c ++=)( Kp,Ki,Kd 为比例,积分,微分系数 令Kp=15、Ki=0.8 、Kd=0.6M 文件:J=3.23E-6;B=3.51E-6; Ra=4;La=2.75E-6; Kt=0.03; num= Kt;den=[(J*La) ((J*Ra)+(La*B)) ((B*Ra)+Kt*Kt) 0]; t=0:0.001:0.2; step(num,den,t); Kp=15; Ki=0.8; Kd=0.6;numcf=[Kd Kp Ki]; dencf=[1 0];numf=conv(numcf,num); denf=conv(dencf,den);[numc,denc]=cloop(numf,denf); t=0:0.001:0.04; step(numc,denc,t);matlab 进行仿真,我们可以看出不恰当的PID 参数并不能使系统达到控制系统的要求,因此需要对PID参数进行优化。

MATLAB实验遗传算法与优化设计(可编辑)

MATLAB实验遗传算法与优化设计(可编辑)

MATLAB实验遗传算法与优化设计遗传算法与优化设计一实验目的1 了解遗传算法的基本原理和基本操作选择交叉变异2 学习使用Matlab中的遗传算法工具箱 gatool 来解决优化设计问题二实验原理及遗传算法工具箱介绍1 一个优化设计例子图1所示是用于传输微波信号的微带线电极的横截面结构示意图上下两根黑条分别代表上电极和下电极一般下电极接地上电极接输入信号电极之间是介质如空气陶瓷等微带电极的结构参数如图所示Wt分别是上电极的宽度和厚度D是上下电极间距当微波信号在微带线中传输时由于趋肤效应微带线中的电流集中在电极的表面会产生较大的欧姆损耗根据微带传输线理论高频工作状态下假定信号频率1GHz电极的欧姆损耗可以写成简单起见不考虑电极厚度造成电极宽度的增加图1 微带线横截面结构以及场分布示意图1其中为金属的表面电阻率为电阻率可见电极的结构参数影响着电极损耗通过合理设计这些参数可以使电极的欧姆损耗做到最小这就是所谓的最优化问题或者称为规划设计问题此处设计变量有3个WDt它们组成决策向量[W D t] T待优化函数称为目标函数上述优化设计问题可以抽象为数学描述2其中是决策向量x1xn为n个设计变量这是一个单目标的数学规划问题在一组针对决策变量的约束条件下使目标函数最小化有时也可能是最大化此时在目标函数前添个负号即可满足约束条件的解X 称为可行解所有满足条件的X组成问题的可行解空间2 遗传算法基本原理和基本操作遗传算法 Genetic Algorithm GA 是一种非常实用高效鲁棒性强的优化技术广泛应用于工程技术的各个领域如函数优化机器学习图像处理生产调度等遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化算法按照达尔文的进化论生物在进化过程中物竞天择对自然环境适应度高的物种被保留下来适应度差的物种而被淘汰物种通过遗传将这些好的性状复制给下一代同时也通过种间的交配交叉和变异不断产生新的物种以适应环境的变化从总体水平上看生物在进化过程中子代总要比其父代优良因此生物的进化过程其实就是一个不断产生优良物种的过程这和优化设计问题具有惊人的相似性从而使得生物的遗传和进化能够被用于实际的优化设计问题按照生物学知识遗传信息基因Gene 的载体是染色体Chromosome 染色体中一定数量的基因按照一定的规律排列即编码遗传基因在染色体中的排列位置称为基因座Locus在同一个基因座上所有可能的基因就称为等位基因Allele生物所持有的基因以及基因的构成形式称为生物的基因型Genotype而该生物在环境中所呈现的相应性状称为该生物的表现型Phenotype在遗传过程中染色体上的基因能够直接复制给子代从而使得子代具有亲代的特征此外两条染色体之间也通过交叉 Crossover 而重组即两个染色体在某个相同的位置处被截断其前后两串基因交叉组合而形成两个新的染色体在基因复制时也会产生微小的变异Mutation从而也产生了新的染色体因此交叉和变异是产生新物种的主要途径由于自然选择在子代群体新产生的物种或染色体当中只有那些对环境适应度高的才能生存下来即适应度越高的被选择的概率也越大然后又是通过遗传和变异再自然选择一代一代不断进化因此生物遗传和进化的基本过程就是选择即复制交叉和变异遗传算法就是通过模拟生物进化的这几个基本过程而实现的①编码编码是设计遗传算法首要解决的问题在生物进化中选择交叉变异这些基本过程都是基于遗传信息的编码方式进行的即基于染色体的基因型而非表现型因此要模拟生物进化过程遗传算法必须首先对问题的可行解X决策向量进行某种编码以便借鉴生物学中染色体和基因等概念在遗传算法中将每一个决策向量X用一个染色体V来表示3其中每一个vi代表一个基因染色体的长度m不一定等于设计变量的数目n取决于染色体上基因的编码方式一般有两种编码方式二进制编码和浮点数编码如果是二进制编码每一个设计变量xi的真实值用一串二进制符号0和1按照一定的编码规则来表示每个二进制符号就代表一个基因因此染色体长度要远大于设计变量的数目这种由二进制编码构成的排列形式V就是染色体也称个体的基因型而基因型经过解码后所对应的决策向量X即可行解就是个体的表现型如果是浮点数编码每个设计变量用其取值范围内的一个浮点数表示构成染色体的一个基因vi因此个体的编码长度m也就等于决策变量的个数n由于这种编码方式使用的是决策变量的真实值所以也称真值编码方法无论哪种编码方式所有可能的染色体个体V构成问题的搜索空间种群遗传算法对最优解的搜索就是在搜索空间中搜索适应度最高的染色体后面叙述适应度的计算因此通过编码将一个问题的可行解从其解空间转换到了遗传算法能够处理的搜索空间经过个体的编码后就可以进行遗传算法的基本操作选择交叉和变异②选择复制操作选择也就是复制是在群体中选择适应度高的个体产生新群体的过程生物的进化是以集团为主体的与此相应遗传算法的运算对象是有M个个体或染色体组成的集合称为种群M也称为种群规模遗传算法在模拟自然选择时以个体的适应度Fitness高低为选择依据即适应度高的个体被遗传到下一代种群的概率较高而适应度低的个体遗传到下一代的概率则相对较低个体适应度由适应度函数计算适应度函数总是和个体表现型 ie X 的目标函数值f X 关联一般是由目标函数经过一定的变换得到一种最简单的方法就是直接使用目标函数f X 作为适应度函数4选定了适应度函数之后个体适应度也随之确定则在选择操作时个体被选中的概率5其中Fi为个体的适应度这种选择方式称为比例选择也称轮盘赌选择除此之外还有多种选择方法如随机竞争选择均匀选择无回放随机选择等不一一介绍③交叉操作所谓交叉就是以一定的概率交叉概率从群体中选择两个个体染色体按照某种方式交换其部分基因从而形成两个新的个体在遗传算法中它是产生新个体同时也是获得新的优良个体的主要方法它决定了遗传算法的全局搜索能力对于不同的编码方式交叉操作的具体方法也不相同对于浮点数编码一般使用算术交叉对于二进制编码有单点交叉和多点交叉等方式不论何种方式在交叉操作时首先应定义交叉概率Pc这个概率表明种群中参与交叉的个体数目的期望值是M 是种群规模通常交叉概率应取较大的值以便产生较多的新个体增加全局搜索力度但是Pc过大时优良个体被破坏的可能性也越大如果Pc 太小则搜索进程变慢影响算法的运行效率一般建议的取值范围是04–099④变异操作遗传算法中的变异操作就是将染色体上某些基因座上的基因以一定的变异概率Pm用其他的等位基因替代从而形成新的个体对于浮点数编码变异操作就是将变异点处的基因用该基因取值范围内的一个随机数替换对于二进制编码则是将变异点处的基因由1变成00变成1变异操作也有多种方法如均匀变异非均匀变异高斯变异等变异操作的概率Pm要比交叉操作的概率Pc小得多变异只是产生新个体的辅助手段但它是遗传算法必不可少的一个环节因为变异操作决定了算法的局部搜索能力它弥补了交叉操作无法对搜索空间的细节进行局部搜索的不足因此交叉和变异操作相互配合共同完成对搜索空间的全局和局部搜索以上简要介绍了遗传算法的基本原理和操作归纳起来基本遗传算法一般可以表示为一个8元组6式中C 个体的编码方法E 个体适应度评价函数P0 初始种群M 种群规模选择操作交叉操作变异操作是进化终止代数进化终止条件其中有4个运行参数需要预先设定M T PcPm 种群规模M一般取为20100 终止代数T一般取100500交叉概率Pc一般取04099 变异概率Pm一般取0000101最后给出遗传算法的基本步骤①选择二进制编码或浮点数编码把问题的解表示成染色体②随机产生一群染色体个体也就是初始种群③计算每一个个体的适应度值按适者生存的原则从中选择出适应度较大的染色体进行复制再通过交叉变异过程产生更适应环境的新一代染色体群即子代④重复第3步经过这样的一代一代地进化最后就会收敛到最适应环境适应度最大的一个染色体即个体上它就是问题的最优解图2给出了基本遗传算法设计流程图其中t代表当前代数T是进化终止代数图2 基本遗传算法设计流程图3 Matlab遗传算法工具箱 gatoolMatlab的遗传算法工具箱有一个精心设计的图形用户界面可以帮助用户直观方便快速地利用遗传算法求解最优化问题在Matlab命令窗口输入命令gatool可以打开遗传算法工具箱的图形用户界面如图3所示GA工具箱的参数设置步骤如下图3 遗传算法工具1 首先使用遗传算法工具箱必须输入下列信息Fitness function 适应度函数这里指的是待优化的函数也即目标函数该工具箱总是试图寻找目标函数的最小值输入适应度函数的格式为fitnessfun其中符号产生函数fitnessfun的句柄fitnessfun代表用户编写的计算适应度函数目标函数的M文件名该M文件的编写方法如下假定我们要计算Rastrigin函数的最小值7M函数文件确定这个函数必须接受一个长度为2的行向量X也即决策向量向量的长度等于变量数目行向量X的每个元素分别和变量x1和x2对应另外M文件要返回一个标量Z其值等于该函数的值下面是计算Rastrigin函数的M文件代码function Z Ras_fun XZ 20X 1 2X 2 2-10 cos 2piX 1 cos 2piX 2M文件编写保存后再在gatool工具箱界面Fitness function栏输入 Ras_funNumber of variable 变量个数目标函数中的变量数目也即适应度函数输入向量的长度在上例中它的值是22 其次设置遗传算法参数即Options设置以下只介绍部分运行参数的设置其他未提及的参数采用默认设置即可①种群参数 PopulationPopulation size 种群规模每一代中的个体数目一般是20-100之间种群规模大算法搜索更彻底可以增加算法搜索全局最优而非局部最优的概率但是耗时也更长Initial range 初始范围其值是两行的矩阵代表初始种群中个体的搜索范围实际上是决策向量X中每个变量xi的初始搜索范围矩阵的列数等于变量个数Number of variable第一行是每个变量的下限第二行是每个变量的上限如果只输入2 1的矩阵则每个变量的初始搜索范围都一样注意初始范围仅限定初始种群中个体或决策向量的范围后续各代中的个体可以不在初始范围之内初始范围不能设置太小否则造成个体之间的差异过小即种群的多样性降低不利于算法搜索到最优解②复制参数 ReproductionCrossover fraction 交叉概率一般取04099默认08③算法终止准则 Stopping Criteria提供了5种算法终止条件Generations最大的进化代数一般取100500默认是100当遗传算法运行到该参数指定的世代计算终止Time limit指明算法终止执行前的最大时间单位是秒缺省是Inf 无穷大Fitness limit 适应度限当最优适应度值小于或等于此参数值时计算终止缺省是-InfStall generation 停滞代数如果每一代的最佳适应度值在该参数指定的代数没有改善则终止计算缺省是50代Stall time 停滞时间如果每一代的最佳适应度值在该参数指定的时间间隔内没有改善则终止计算缺省是20秒3 设置绘图参数即Plots设置绘图参数Plots工作时可以从遗传算法得到图形数据当选择各种绘图参数并执行遗传算法时一个图形窗口在分离轴上显示这些图形下面介绍其中2个参数Best fitness 选择该绘图参数时将绘制每一代的最佳适应度值和进化世代数之间的关系图如图4的上图所示图中蓝色点代表每一代适应度函数的平均值黑色点代表每一代的最佳值Distance 选择此参数时绘制每一代中个体间的平均距离它反映个体之间的差异程度所以可用来衡量种群的多样性图4的下图显示的即是每一代个体间的平均距离图44 执行算法参数设置好了之后点击工具箱界面上的按钮Star 执行求解器在算法运行的同时Current generation当前代数文本框中显示当前的进化代数通过单击Pause按钮可以使计算暂停之后再点击Resume可以恢复计算当计算完成时Status and results窗格中出现如图5所示的情形图5其中包含下列信息算法终止时适应度函数的最终值即目标函数的最优值Fitness function value 0003909079476983379算法终止原因Optimization terminated imum number of generations exceeded 超出最大进化世代数最终点即目标函数的最优解[x1 x2] [-0004 -000193]两个变量的例子三实验内容1 Rastrigin函数的最小值问题函数表达式如 7 式函数图像如下图6所示它有多个局部极小值但是只有一个全局最小值Rastrigin函数的全局最小值的精确解是0出现在[x1 x2] [0 0]处图6 Rastrigin函数图像使用遗传算法工具箱近似求解Rastrigin函数的最小值首先编写计算适应度函数的M文件然后设置运行参数绘图参数Plots勾选Best fitness和Distance两项其它参数可以使用默认值执行求解器Run solver计算Rastrigin函数的最优值观察种群多样性对优化结果的影响决定遗传算法的一个重要性能是种群的多样性个体之间的距离越大则多样性越高反之则多样性越低多样性过高或过低遗传算法都可能运行不好通过实验调整Population 种群的Initial range 初始范围参数可得到种群适当的多样性取Initial range参数值[1 11]观察Rastrigin函数最小值的计算结果取Initial range参数值[1 100]观察Rastrigin函数最小值的计算结果取Initial range参数值[1 2]观察Rastrigin函数最小值的计算结果2 微带电极欧姆损耗的优化微带电极的欧姆损耗公式可由 1 式表示令设计变量[WDt] [x1 x2 x3] X变量的约束条件如下8根据 1 式和 8 式使用遗产算法工具箱优化设计电极的结构参数W 宽度 D 间距 t 厚度使得电极的欧姆损耗最小 1 式中用到的常数提示对约束条件 8 式的处理可以在编写计算适应度函数的M文件中实现方法是在M文件中引入对每个输入变量值范围的判断语句如果任一变量范围超出 8 式的限制则给该个体的适应度施加一个惩罚使得该个体被遗传到下一代的概率减小甚至为0一般可用下式对个体适应度进行调整9其中F x 是原适应度F x 是调整后的适应度P x 是罚函数为简单计本问题中我们可以给个体的适应度 com件的返回值Z 加上一个很大的数即可如正无穷Inf四思考题1 在遗传算法当中个体的变异对结果有何影响如果没有变异结果又将如何试以Rastrigin函数最小值的计算为例说明取变异概率为0即交叉概率Crossover fraction 102 遗传算法工具箱针对的是最小化函数值问题如果要利用该工具箱计算函数的最大值该如何实现。

基于遗传算法的PID参数优化毕业设计(论文)

基于遗传算法的PID参数优化毕业设计(论文)

本科生毕业设计(论文)论文题目:基于遗传算法的PID参数优化毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

Matlab遗传算法及实例

Matlab遗传算法及实例

Matlab遗传算法及实例Matlab遗传算法工具箱函数及实例讲解转:最近硏究了一下遗传算法,因为要用遗传算法来求解多元非线性模型。

还好用遗传算法的工具箱予以实现了,期间也遇到了许多问题。

借此与大家分享一下。

首先,我们要熟悉遗传算法的基本原理与运算流程。

基本原理:遗传算法是一种典型的启发式算法,属于非数值算法范畴。

它是模拟达尔文的自然选择学说和自然界的生物进化过程的一种计算模型。

它是采用简单的编码技术来表示各种复杂的结构,并通过对一组编码表示进行简单的遗传操作和优胜劣汰的自然选择来指导学习和确定搜索的方向。

遗传算法的操作对象是一群二进制串(称为染色体、个体),即种群,每一个染色体都对应问题的一个解。

从初始种群出发,采用基于适应度函数的选择策略在当前种群中选择个体,使用杂交和变异来产生下一代种群。

如此模仿生命的进化进行不断演化,直到满足期望的终止条件。

运算流程:Step 1 :对遗传算法的运行参数进行赋值。

参数包括种群规模、变量个数、交叉概率、变异概率以及遗传运算的终止进化代数。

Step 2 :建立区域描述器。

根据轨道交通与常规公交运营协调模型的求解变量的约束条件,设置变量的取值范围。

Step 3 :在Step 2的变量取值范围内,随机产生初始群体,代入适应度函数计算其适应度值。

Step 4 :执行比例选择算子进行选择操作。

Step 5 :按交叉概率对交叉算子执行交叉操作。

Step 6 :按变异概率执行离散变异操作。

Step 7 :计算Step 6得到局部最优解中每个个体的适应值,并执行最优个体保存策略。

Step 8 :判断是否满足遗传运算的终止进化代数,不满足则返回Step 4,满足则输出运算结果其次,运用遗传算法工具箱。

运用基于Matlab的遗传算法工具箱非常方便,遗传算法工具箱里包括了我们需要的各种函数库。

目前,基于Matlab的遗传算法工具箱也很多,比较流行的有英国设菲尔德大学幵发的遗传算法工具箱GATBXGAOT以及Math Works公司推出的GADS实际上,GAD鉞是大家所看到的Matlab中自带的工具箱。

基于遗传算的PID参数优化及MATLAB实现

基于遗传算的PID参数优化及MATLAB实现

引言PID操纵器结构简单且鲁棒性强,在操纵领域一直被普遍应用。

运算机的进展为在线辩识提供了条件,从而也为在线整定PID参数提供了可能。

PID操纵是工业进程中应用最普遍的策略之一,因此PID 操纵器参数的优化成为人们关注的问题,它直接阻碍操纵成效的好坏,并和系统的平安、经济运行有着密不可分的关系。

目前PID参数的优化方式很多,如:间接寻优法,梯度法,登山法等,而在热工系统中单纯形法、专家整定法那么应用普遍。

尽管二者都具有良好的寻优特性,但却存在一些短处,单纯刑法对初值比较灵敏,容易陷入局部最优解,造成寻优失败。

专家整定法那么需要太多体会,不同的目标函数对应不同的体会,而整理知识库是一项长时刻的工程。

因此咱们选取遗传算法来进行参数寻优,该方式是一种不需要任何初始信息并能够寻求全局最优解的高效的优化组合方式。

第一章:遗传算法和PID操纵原理简介一遗传算法简介大体原理遗传算法是依照生物进化的模型提出的一种优化算法。

遗传算法是从代表问题可能潜在解集的一个群组(popuation)开始的,而一个种群那么由通过基因(gene)编码(coding)的必然数量的个体(individual)组成。

每一个个体事实上是染色体(chromosome)带有特点的实体。

染色体作为遗传物质的要紧载体,即多个基因组合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现。

因此,在一开始需要实现从表现型到基因型的映射即编码工作。

由于仿照基因编码的工作很复杂,咱们往往进行简化,如二进制编码。

初代种群产生以后,依照适者生存和优胜劣汰的原理,逐代(genetation)演化产生出愈来愈好的近似解。

在每一代,依照问题域中个体的适应度(fitness)大小挑选(selection)个体,并借助于自然遗传学的遗传算子(genetic operator)进行组合交叉.(crossover)和变异(mutation),产生出代表新的解集的种群。

遗传算法的PID控制器的设计毕业论文

遗传算法的PID控制器的设计毕业论文
1991年D.Whitey在他的论文中提出了基于领域交叉的交叉算子(Adjacency based crossover),这个算子是特别针对用序号表示基因的个体的交叉,并将其应用到了TSP问题中,通过实验对其进行了验证。
D.H.Ackley等提出了随即迭代遗传爬山法(Stochastic Iterated Genetic Hill-climbing,SIGH)采用了一种复杂的概率选举机制,此机制中由m个“投票者”来共同决定新个体的值(m表示群体的大小)。实验结果表明,SIGH与单点交叉、均匀交叉的神经遗传算法相比,所测试的六个函数中有四个表现出更好的性能,而且总体来讲,SIGH比现存的许多算法在求解速度方面更有竞争力。
随着现代控制理论的建立和不断发展完善,对过程控制提出了新的方法和思路,同时也由于生产工艺不断地改进提高,对过程控制也提出了高要求。科研人员在不断探索新方法的同时,也对传统的PID控制的改进做了大量的研究。因为PID控制有其固有的优点,使得PID控制在今后仍会大量使用,如何进一步提高PID控制算法的能力或者依据新的现代控制理论来设计PID控制算法是一个非常吸引人的课题。科研人员在这一领域做的工作主要有以下两方面。
遗传算法的PID控制器的设计毕业论文
第1章 绪论
1.1 课背景
PID调节器是最早发展起来的控制策略之一,因为它所涉及的设计算法和控制结构都是简单的,并且十分适用于工程应用背景,此外PID控制方案并不要求精确的受控对象的数学模型,且采用PID控制的控制效果一般是比较令人满意的,所以在工业实际应用中,PID调节器是应用最为广泛的一种控制策略,也是历史最久、生命力最强的基本控制方式。调查结果表明在当今使用的控制方式中,PID型占84.5%,优化PID型占6.8%,现代控制型占有1.5%,手动控制型6.6%,人工智能(AI)型占0. 6%。如果把PID型和优化PID型二者加起来则占90%以上,这说明PID控制方式占绝大多数,如果把手动控制型再与上述两种加在一起,则占97. 5%,这说明古典控制占绝大多数。就连科学技术高度发达的日本,PID控制的使用率也高达84.%。这是由于理论分析及实际运行经验已经证明了PID调节器对于相当多的工业过程能够起到较为满足的控制效果。它结构简单、适用面广、鲁棒性强、参数易于调整、在实际中容易被理解和实现、在长期应用中已积累了丰富的经验。特别在工业过程中,由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大的代价进行模型辨识,但往往不能达到预期的效果,所以不论常规调节仪表还是数字智能仪表都广泛采用这种调节方式。正是由于PID控制算法具有以上多种优点,所以这种算法仍将在现场控制中居于主导地位

遗传算法MATLAB程序设计

遗传算法MATLAB程序设计

摘自Matlab在数学建模中的应用,北航出版社,2011.44.2遗传算法MATLAB程序设计4.2.1程序设计流程及参数选取4.2.1.1遗传算法程序设计伪代码BEGINt = 0 ; %Generations NO.初始化P(t) ; %Initial Population or Chromosomes计算P(t) 的适应值;while (不满足停止准则) dobegint = t+1 ;从P(t-1)中选择P(t) ; % Selection重组P(t) ; % Crossover and Mutation计算P(t) 的适应值;endEND4.2.1.2遗传算法的参数设计原则在单纯的遗传算法当中,也并不总是收敛,即使在单峰或单调也是如此。

这是因为种群的进化能力已经基本丧失,种群早熟。

为了避免种群的早熟,参数的设计一般遵从以下原则[5]:(1)种群的规模:当群体规模太小时,很明显会出现近亲交配,产生病态基因。

而且造成有效等位基因先天缺乏,即使采用较大概率的变异算子,生成具有竞争力高阶模式的可能性仍很小,况且大概率变异算子对已有模式的破坏作用极大。

同时遗传算子存在随机误差(模式采样误差),妨碍小群体中有效模式的正确传播,使得种群进化不能按照模式定理产生所预测的期望数量;种群规模太大,结果难以收敛且浪费资源,稳健性下降。

种群规模的一个建议值为0~100。

(2)变异概率:当变异概率太小时,种群的多样性下降太快,容易导致有效基因的迅速丢失且不容易修补;当变异概率太大时,尽管种群的多样性可以得到保证,但是高阶模式被破坏的概率也随之增大。

变异概率一般取0.0001~0.2。

(3)交配概率:交配是生成新种群最重要的手段。

与变异概率类似,交配概率太大容易破坏已有的有利模式,随机性增大,容易错失最优个体;交配概率太小不能有效更新种群。

交配概率一般取0.4~0.99。

(4)进化代数:进化代数太小,算法不容易收敛,种群还没有成熟;代数太大,算法已经熟练或者种群过于早熟不可能再收敛,继续进化没有意义,只会增加时间开支和资源浪费。

matlab模拟中央空调pid遗传算法

matlab模拟中央空调pid遗传算法

一、引言中央空调系统在现代建筑中扮演着至关重要的角色,对空调系统的控制效率和性能要求也越来越高。

PID控制器作为一种经典的控制算法,被广泛应用于中央空调系统中。

而遗传算法作为一种全局搜索和优化的方法,具有一定的优势和应用前景。

MATLAB作为一个功能强大的模拟工具,提供了丰富的工具箱和函数,可以用于模拟和优化中央空调系统的PID控制器参数。

二、MATLAB模拟中央空调PID控制器1. 使用MATLAB进行中央空调系统建模在MATLAB环境中,可以利用Simulink工具箱进行中央空调系统的建模。

建立空调系统的传递函数模型,包括室内外温度传感器、风机、制冷剂循环等部件,以及控制器的输入输出。

这一步可以帮助工程师理解系统的动态特性,并为下一步的控制器设计做准备。

2. 设计PID控制器在MATLAB中,可以利用Control System Toolbox设计PID控制器。

根据已建立的系统模型,利用PID Tuner或者手动调节的方式,得到合适的比例、积分和微分系数,使得系统能够快速、稳定地响应温度变化。

3. 仿真系统响应利用Simulink工具箱对设计的PID控制器进行仿真,观察系统的响应特性。

可以通过改变温度变化输入信号,观察系统的温度响应、控制器输出等参数,并评估PID控制器性能的优劣。

三、遗传算法在PID参数优化中的应用1. 遗传算法原理及优化遗传算法是一种模拟生物进化过程的优化方法,其基本思想是通过种群的选择、交叉和变异等操作,实现对问题的全局搜索和优化。

在PID参数优化中,可以利用遗传算法搜索合适的控制器参数,使得系统的性能指标达到最优。

2. MATLAB中的遗传算法工具MATLAB提供了遗传算法工具箱,可以方便地使用遗传算法对问题进行优化。

用户可以自定义适应度函数、遗传算子等参数,也可以选择内置的优化函数进行快速优化。

3. 将遗传算法与PID控制器相结合通过将遗传算法与PID控制器相结合,可以实现对PID参数的优化。

使用MATLAB遗传算法工具实例(详细)(精编文档).doc

使用MATLAB遗传算法工具实例(详细)(精编文档).doc

【最新整理,下载后即可编辑】最新发布的MATLAB 7.0 Release 14已经包含了一个专门设计的遗传算法与直接搜索工具箱(Genetic Algorithm and Direct Search Toolbox,GADS)。

使用遗传算法与直接搜索工具箱,可以扩展MATLAB及其优化工具箱在处理优化问题方面的能力,可以处理传统的优化技术难以解决的问题,包括那些难以定义或不便于数学建模的问题,可以解决目标函数较复杂的问题,比如目标函数不连续、或具有高度非线性、随机性以及目标函数没有导数的情况。

本章8.1节首先介绍这个遗传算法与直接搜索工具箱,其余各节分别介绍该工具箱中的遗传算法工具及其使用方法。

8.1 遗传算法与直接搜索工具箱概述本节介绍MATLAB的GADS(遗传算法与直接搜索)工具箱的特点、图形用户界面及运行要求,解释如何编写待优化函数的M文件,且通过举例加以阐明。

8.1.1 工具箱的特点GADS工具箱是一系列函数的集合,它们扩展了优化工具箱和MATLAB数值计算环境的性能。

遗传算法与直接搜索工具箱包含了要使用遗传算法和直接搜索算法来求解优化问题的一些例程。

这些算法使我们能够求解那些标准优化工具箱范围之外的各种优化问题。

所有工具箱函数都是MATLAB的M文件,这些文件由实现特定优化算法的MATLAB语句所写成。

使用语句type function_name就可以看到这些函数的MATLAB代码。

我们也可以通过编写自己的M文件来实现来扩展遗传算法和直接搜索工具箱的性能,也可以将该工具箱与MATLAB的其他工具箱或Simulink结合使用,来求解优化问题。

工具箱函数可以通过图形界面或MATLAB命令行来访问,它们是用MATLAB语言编写的,对用户开放,因此可以查看算法、修改源代码或生成用户函数。

遗传算法与直接搜索工具箱可以帮助我们求解那些不易用传统方法解决的问题,譬如表查找问题等。

遗传算法与直接搜索工具箱有一个精心设计的图形用户界面,可以帮助我们直观、方便、快速地求解最优化问题。

使用遗传算法求解函数最大值【精品毕业设计】(完整版)

使用遗传算法求解函数最大值【精品毕业设计】(完整版)

使用遗传算法求解函数最大值题目使用遗传算法求解函数f(x,y)=x∗sin(6∗y)+y∗cos⁡(8∗x)在x∈[1,2]及y∈[1,2]的最大值。

解答算法使用遗传算法进行求解,篇末所附源代码中带有算法的详细注释。

算法中涉及不同的参数,参数的取值需要根据实际情况进行设定,下面运行时将给出不同参数的结果对比。

定义整体算法的结束条件为,当种群进化次数达到maxGeneration时停止,此时种群中的最优解即作为算法的最终输出。

设种群规模为N,首先是随机产生N个个体,实验中定义了类型Chromosome表示一个个体,并且在默认构造函数中即进行了随机的操作。

然后程序进行若干次的迭代,在每次迭代过程中,进行选择、交叉及变异三个操作。

一选择操作首先计算当前每个个体的适应度函数值,这里的适应度函数即为所要求的优化函数,然后归一化求得每个个体选中的概率,然后用轮盘赌的方法以允许重复的方式选择选择N个个体,即为选择之后的群体。

但实验时发现结果不好,经过仔细研究之后发现,这里在x、y取某些值的时候,目标函数计算出来的适应值可能会出现负值,这时如果按照把每个个体的适应值除以适应值的总和的进行归一化的话会出现问题,因为个体可能出现负值,总和也可能出现负值,如果归一化的时候除以了一个负值,选择时就会选择一些不良的个体,对实验结果造成影响。

对于这个问题,我把适应度函数定为目标函数的函数值加一个正数,保证得到的适应值为正数,然后再进行一般的归一化和选择的操作。

实验结果表明,之前的实验结果很不稳定,修正后的结果比较稳定,趋于最大值。

二交叉操作首先是根据交叉概率probCross选择要交叉的个体进行交叉。

这里根据交叉参数crossnum进行多点交叉,首先随机生成交叉点位置,允许交叉点重合,两个重合的交叉点效果互相抵消,相当于没有交叉点,然后根据交叉点进行交叉操作,得到新的个体。

三变异操作首先是根据变异概率probMutation选择要变异的个体。

大作业 基于matlab的PID控制算法仿真 深圳大学

大作业 基于matlab的PID控制算法仿真 深圳大学

大作业基于matlab的PID控制算法仿真深圳大学大作业-基于matlab的pid控制算法仿真-深圳大学基于MATLAB的PID控制算法仿真要求:(1)利用MATLAB仿真工具Simulink制作了两种数字PID控制器算法(位置式和增量式)进行仿真(2)受控对象为一阶惯性连杆D(s)=1/(5S+1)(3)采样周期T=1s(4)仿真结果:确定pid相关参数,使得系统的输出能够很快的跟随给定数值变化,给出示例,输入和输出波形,程序列表和必要的分析。

首先,d(s)=1/(5s+1)Simulink模型建立如下:准备工作:(1)双击步骤并将sampletime设置为1,以满足采样周期T=1s的要求(2)选择的模拟时间为500图中\为积分器,\为微分器,\为比例系数。

\为积分时间常数,\为积分时间常数。

当P控制器的参数调整时,微分器和积分器的输出与系统断开。

在smulink中,断开微分器和积分器之间的输出连接。

同样,在设置PI控制器的参数时,断开微分器的输出连接。

第一步是先获取开环系统的单位阶跃响应,在simulink中,把反馈连线、微分器、积分器的输出连线都断开,并将’kp’的值置为1,连线如下图(下载)后,图片可调节变大)模拟完成后,双击“范围”得到下图将kp的值置为2,并连上反馈连线,得下图:上图显示了P控制下系统的单步响应。

接下来对pi控制整定,比例放大系数仍为kp=2,经多次输入ti的值,发现ti=2,即1/ti=0.5时,系统的输出最理想,如下图(下载后,图片可以调整和放大)选定仿真时间,仿真运行,运行元毕后.双击\得到以下结果当响应曲线有一定的超调量,系统响应因积分时间过长而不能稳定时,应缩短积分时间。

相反,如果过冲过大,则应增加积分时间,最后Ti=2最后,连上微分器,经多次输入调试,td的值置为2时,系统能最快地趋向稳定。

如下图双击范围以获取:(下载后,图片可调节变大)从以上三幅图可以看出,PI和PID控制的响应速度基本相同,系统的稳定输出值也相同。

完整的遗传算法函数Matlab程序【精品毕业设计】(完整版)

完整的遗传算法函数Matlab程序【精品毕业设计】(完整版)

完整的遗传算法函数Matlab程序function [x,endPop,bPop,traceInfo] = ga(bounds,eevalFN,eevalOps,startPop,opts,... termFN,termOps,selectFN,selectOps,xOverFNs,xOverOps,mutFNs,mutOps)n=nargin;if n<2 | n==6 | n==10 | n==12disp('Insufficient arguements')endif n<3 %Default eevalation opts.eevalOps=[];endif n<5opts = [1e-6 1 0];endif isempty(opts)opts = [1e-6 1 0];endif any(eevalFN<48) %Not using a .m fileif opts(2)==1 %Float gae1str=['x=c1; c1(xZomeLength)=', eevalFN ';'];e2str=['x=c2; c2(xZomeLength)=', eevalFN ';'];else %Binary gae1str=['x=b2f(endPop(j,:),bounds,bits); endPop(j,xZomeLength)=',...eevalFN ';'];endelse %Are using a .m fileif opts(2)==1 %Float gae1str=['[c1 c1(xZomeLength)]=' eevalFN '(c1,[gen eevalOps]);'];e2str=['[c2 c2(xZomeLength)]=' eevalFN '(c2,[gen eevalOps]);'];else %Binary gae1str=['x=b2f(endPop(j,:),bounds,bits);[x v]=' eevalFN ...'(x,[gen eevalOps]); endPop(j,:)=[f2b(x,bounds,bits) v];'];endendif n<6 %Default termination informationtermOps=[100];termFN='maxGenTerm';endif n<12 %Default muatation informationif opts(2)==1 %Float GAmutFNs=['boundaryMutation multiNonUnifMutation nonUnifMutation unifMutation']; mutOps=[4 0 0;6 termOps(1) 3;4 termOps(1) 3;4 0 0];else %Binary GAmutFNs=['binaryMutation'];mutOps=[0.05];endendif n<10 %默认的交叉信息if opts(2)==1 %浮点编码xOverFNs=['arithXover heuristicXover simpleXover'];xOverOps=[2 0;2 3;2 0];else %Binary GAxOverFNs=['simpleXover'];xOverOps=[0.6];endendif n<9 %Default select opts only i.e. roullete wheel.selectOps=[];endif n<8 %Default select infoselectFN=['normGeomSelect'];selectOps=[0.08];endif n<6 %默认的算法终止准则termOps=[100];termFN='maxGenTerm';endif n<4 %初始种群为空startPop=[];endif isempty(startPop) %随机生成初始种群startPop=initializega(80,bounds,eevalFN,eevalOps,opts(1:2));endif opts(2)==0 %二进制编码bits=calcbits(bounds,opts(1));endxOverFNs=parse(xOverFNs);mutFNs=parse(mutFNs);xZomeLength = size(startPop,2); %Length of the xzome=numVars+fittness numVar = xZomeLength-1; %变量数目popSize = size(startPop,1); %种群中个体数目endPop = zeros(popSize,xZomeLength); %次种群矩阵c1 = zeros(1,xZomeLength); %个体c2 = zeros(1,xZomeLength); %个体numXOvers = size(xOverFNs,1); %交叉操作次数numMuts = size(mutFNs,1); %变异操作次数epsilon = opts(1); %适应度门限值oeval = max(startPop(:,xZomeLength)); %初始种群中的最优值bFoundIn = 1;done = 0;gen = 1;collectTrace = (nargout>3);floatGA = opts(2)==1;display = opts(3);while(~done)[beval,bindx] = max(startPop(:,xZomeLength)); %当前种群的最优值best = startPop(bindx,:);if collectTracetraceInfo(gen,1)=gen; %当前代traceInfo(gen,2)=startPop(bindx,xZomeLength); %最优适应度traceInfo(gen,3)=mean(startPop(:,xZomeLength)); %平均适应度traceInfo(gen,4)=std(startPop(:,xZomeLength));endif ( (abs(beval - oeval)>epsilon) | (gen==1))if displayfprintf(1,'\n%d %f\n',gen,beval);endif floatGAbPop(bFoundIn,:)=[gen startPop(bindx,:)];elsebPop(bFoundIn,:)=[gen b2f(startPop(bindx,1:numVar),bounds,bits)... startPop(bindx,xZomeLength)];endbFoundIn=bFoundIn+1;oeval=beval;elseif displayfprintf(1,'%d ',gen);endendendPop = feeval(selectFN,startPop,[gen selectOps]); %选择操作if floatGAfor i=1:numXOvers,for j=1:xOverOps(i,1),a = round(rand*(popSize-1)+1); %一个父代个体b = round(rand*(popSize-1)+1); %另一个父代个体xN=deblank(xOverFNs(i,:)); %交叉函数[c1 c2] = feeval(xN,endPop(a,:),endPop(b,:),bounds,[gen… xOverOps(i,:)]);if c1(1:numVar)==endPop(a,(1:numVar))c1(xZomeLength)=endPop(a,xZomeLength);elseif c1(1:numVar)==endPop(b,(1:numVar))c1(xZomeLength)=endPop(b,xZomeLength);elseeeval(e1str);endif c2(1:numVar)==endPop(a,(1:numVar))c2(xZomeLength)=endPop(a,xZomeLength);elseif c2(1:numVar)==endPop(b,(1:numVar))c2(xZomeLength)=endPop(b,xZomeLength);elseeeval(e2str);endendPop(a,:)=c1;endPop(b,:)=c2;endendfor i=1:numMuts,for j=1:mutOps(i,1),a = round(rand*(popSize-1)+1);c1 = feeval(deblank(mutFNs(i,:)),endPop(a,:),bounds,[gen mutOps(i,:)]);if c1(1:numVar)==endPop(a,(1:numVar))c1(xZomeLength)=endPop(a,xZomeLength);elseeeval(e1str);endendPop(a,:)=c1;endendelse %遗传操作的统计模型for i=1:numXOvers,xN=deblank(xOverFNs(i,:));cp=find(rand(popSize,1)if rem(size(cp,1),2) cp=cp(1:(size(cp,1)-1)); endcp=reshape(cp,size(cp,1)/2,2);for j=1:size(cp,1)a=cp(j,1); b=cp(j,2);[endPop(a,:) endPop(b,:)] = feeval(xN,endPop(a,:),endPop(b,:), bounds,[gen xOverOps(i,:)]); endendfor i=1:numMutsmN=deblank(mutFNs(i,:));for j=1:popSizeendPop(j,:) = feeval(mN,endPop(j,:),bounds,[gen mutOps(i,:)]);eeval(e1str);endendend。

遗传算法的PID控制器的设计毕业论文

遗传算法的PID控制器的设计毕业论文
(2)PID参数优化。PID参数优化是指依据一定的控制目标和给定的生产过程的模型通过理论计算得到最优的PID参数,PID参数优化在PID控制应用之初人们就开始作了大量研究工作,已经提出了许多种方法,如粒子群优化算法,免疫算法,单纯形法,差分进化算法,神经网络算法,遗传算法等。
本文就是应用遗传算法对柴油机调速体统的PID参数进行优化,使系统具有更好的性能 绪论
1.1 课题背景
PID调节器是最早发展起来的控制策略之一,因为它所涉及的设计算法和控制结构都是简单的,并且十分适用于工程应用背景,此外PID控制方案并不要求精确的受控对象的数学模型,且采用PID控制的控制效果一般是比较令人满意的,所以在工业实际应用中,PID调节器是应用最为广泛的一种控制策略,也是历史最久、生命力最强的基本控制方式。调查结果表明在当今使用的控制方式中,PID型占84.5%,优化PID型占6.8%,现代控制型占有1.5%,手动控制型6.6%,人工智能(AI)型占0. 6%。如果把PID型和优化PID型二者加起来则占90%以上,这说明PID控制方式占绝大多数,如果把手动控制型再与上述两种加在一起,则占97. 5%,这说明古典控制占绝大多数。就连科学技术高度发达的日本,PID控制的使用率也高达84.%。这是由于理论分析及实际运行经验已经证明了PID调节器对于相当多的工业过程能够起到较为满足的控制效果。它结构简单、适用面广、鲁棒性强、参数易于调整、在实际中容易被理解和实现、在长期应用中已积累了丰富的经验。特别在工业过程中,由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大的代价进行模型辨识,但往往不能达到预期的效果,所以不论常规调节仪表还是数字智能仪表都广泛采用这种调节方式。正是由于PID控制算法具有以上多种优点,所以这种算法仍将在现场控制中居于主导地位

遗传算法毕业论文【精品毕业设计】(完整版)

遗传算法毕业论文【精品毕业设计】(完整版)

目录1 引言 (1)2 问题描述 (2)3 基于遗传算法TSP算法 (2)3.1 基于遗传算法的TSP算法总体框架 (2)3.2算法的详细设计 (3)3.2.1 解空间的表示方式 (3)3.2.2 种群初始化 (4)3.2.3适应度函数 (4)3.2.4选择操作 (4)3.2.5交叉操作 (5)3.2.6变异操作 (6)3.2.7进化逆转操作 (6)3.3 实验结果分析 (7)4 基于模拟退火算法的TSP算法 (10)4.1 SA算法的实现过程 (10)4.2 算法流程图 (10)4.3模拟退火算法的实现过程 (10)4.4实验结果 (11)5 对两种算法的评价 (14)5.1遗传算法优缺点 (14)5.2 模拟退火算法的优缺点 (15)6结语 (15)参考文献 (17)附录: ............................................................................................................ 错误!未定义书签。

廊坊师范学院本科生毕业论文论文题目:基于遗传算法与模拟退火算法的TSP算法求解10大城市最短旅途论文摘要:TSP问题为组合优化中的经典的NP完全问题.本论文以某旅行社为中国十大旅游城市--珠海、西安、杭州、拉萨、北京、丽江、昆明、成都、洛阳、威海制定最短旅途为例,分别利用基于遗传算法的TSP算法与基于模拟退火算法的TSP算法求解10大城市旅游路线问题.本论文给出了遗传算法与模拟退火算法中各算子的实现方法,并展示出求解系统的结构和求解系统基于MATLAB的实现机制.利用MATLAB软件编程,运行出结果,并对基于遗传算法的TSP算法结果与基于模拟退火算法的TSP算法的结果进行比较,描述其优缺点,并选择最为恰当的TSP算法,实现最短旅途的最优解.关键词:遗传算法;模拟退火算法;TSP;最短路径;Title:TSP Algorithm Based on Genetic Algorithm or Simulated Annealing Algorithm for Solving the Shortest Journey of 10 CitiesAbstract:TSP problem is a classic NP problem about combinatorial optimization.This article takes a travel agency looking for the shortesttrip of ten tourist cities in China-Zhuhai,Xi'an,Hangzhou,Lhasa,Beijing,Lijiang,Kunming,Chengdu,Luoyang and Weihai forinstance,and solves this problem by TSP algorithm based on geneticalgorithm and simulated annealing algorithm.The article gives theimplementations of every operator of genetic algorithm and simulatedannealing algorithm and demonstrates the architecture and theimplementation mechanism of the solving system based on MATLAB.Iprogram and operate the results by MATLAB software,and compare theresults based on genetic algorithm and simulated annealingalgorithm.And describe their advantages and disadvantages so thatchoose the most appropriate TSP algorithm to achieve the optimalsolution for the shortest path.Keywords:genetic algorithm;simulated annealing algorithm;TSP;the shortest path1 引言TSP问题为组合优化中的经典问题,已经证明为一NP完全问题[1],即其最坏情况下的时间复杂性随着问题规模的扩大,按指数方式增长[2],到目前为止不能找到一个多项式时间的有效算法.TSP问题可描述为:已知n个城市相互之间的距离,某一旅行商从某个城市出发访问每个城市一次且仅一次,最后回到出发城市,如何安排才使其所走路线最短.TSP问题不仅仅是一个简单的组合优化问题,其他许多的NP完全问题可以归结为TSP问题,如邮路问题、装配线上的螺帽问题和产品的生产安排问题等,使得TSP问题的有效求解具有重要的意义.本文中的TSP算法主要采用遗传算法与模拟退火算法.遗传算法是一种进化算法,其基本原理是仿效生物界中的“物竞天择,适者生存”的演化法则[3].遗传算法把问题参数编码为染色体,再按照所选择的适应度函数,利用迭代的方式进行选择、交叉、变异以及进化逆转等运算对个体进行筛选和进化,使适应值大的个体被保留,适应值小的个体被淘汰[4],新的群体继承了上一代的信息,又优于上一代,这样反复循环,直至满足条件,最后留下来的个体集中分布在最优解的周围,筛选出最优个体作为问题的解.模拟退火算法的出发点是基于物理中固体物质的退火过程与一般的组合优化问题之间的相似性[5],该算法是一种优化算法,其物理退火过程由三部分组成,分别为:加温过程、等温过程、冷却过程.其中,加温过程对应算法设定初温,等温过程对应算法的Metropolis[6]抽样过程,冷却过程对应控制参数的下降.这里能量的变化就是目标函数,要得到的最优解就是能量最低态[7].Metropolis准则是SA算法收敛于全局最优解的关键所在,Metropolis 准则以一定的概率接受恶化解,这样就使算法跳离局部最优的陷阱.2 问题描述本案例为某旅行社为中国十大旅游城市,分别为珠海、西安、杭州、拉萨、北京、丽江、昆明、成都、洛阳、威海,根据全程路径最短为目的,制定最优的旅游顺序依次游玩这十个城市.这类问题就由TSP算法来解决,寻找出一条最短遍历这10个城市的路径.利用google地图找到城市坐标,下表为这十个城市的位置坐标如表2-1所示.表2-1 10个城市的位置坐标3 基于遗传算法TSP算法3.1 基于遗传算法的TSP算法总体框架TSP问题的遗传算法包括编码设计、种群初始化、适应度函数选择、终止条件设定、选择操作设定、交叉操作设定以及变异操作设定和进化逆转操作.为简化TSP问题的求解,假设每个城市和其它任意一个城市之间都以欧氏距离[8]直接相连.遗传算法TSP问题的流程图如图2-1所示.。

遗传算法解决TSP问题的matlab程序【精品毕业设计】(完整版)

遗传算法解决TSP问题的matlab程序【精品毕业设计】(完整版)

1.遗传算法解决TSP 问题(附matlab源程序)2.知n个城市之间的相互距离,现有一个推销员必须遍访这n个城市,并且每个城市3.只能访问一次,最后又必须返回出发城市。

如何安排他对这些城市的访问次序,可使其4.旅行路线的总长度最短?5.用图论的术语来说,假设有一个图g=(v,e),其中v是顶点集,e是边集,设d=(dij)6.是由顶点i和顶点j之间的距离所组成的距离矩阵,旅行商问题就是求出一条通过所有顶7.点且每个顶点只通过一次的具有最短距离的回路。

8.这个问题可分为对称旅行商问题(dij=dji,,任意i,j=1,2,3,…,n)和非对称旅行商9.问题(dij≠dji,,任意i,j=1,2,3,…,n)。

10.若对于城市v={v1,v2,v3,…,vn}的一个访问顺序为t=(t1,t2,t3,…,ti,…,tn),其中11.ti∈v(i=1,2,3,…,n),且记tn+1= t1,则旅行商问题的数学模型为:12.min l=σd(t(i),t(i+1)) (i=1,…,n)13.旅行商问题是一个典型的组合优化问题,并且是一个np难问题,其可能的路径数目14.与城市数目n是成指数型增长的,所以一般很难精确地求出其最优解,本文采用遗传算法15.求其近似解。

16.遗传算法:17.初始化过程:用v1,v2,v3,…,vn代表所选n个城市。

定义整数pop-size作为染色体的个数18.,并且随机产生pop-size个初始染色体,每个染色体为1到18的整数组成的随机序列。

19.适应度f的计算:对种群中的每个染色体vi,计算其适应度,f=σd(t(i),t(i+1)).20.评价函数eval(vi):用来对种群中的每个染色体vi设定一个概率,以使该染色体被选中21.的可能性与其种群中其它染色体的适应性成比例,既通过轮盘赌,适应性强的染色体被22.选择产生后台的机会要大,设alpha∈(0,1),本文定义基于序的评价函数为eval(vi)=al23.pha*(1-alpha).^(i-1) 。

基于遗传算法的PID参数整定的MATLAB程序代码

基于遗传算法的PID参数整定的MATLAB程序代码

基于遗传算法的PID参数整定1引言传统的比例、积分、微分控制,即PID控制具有算法简单、鲁棒性好和可靠性高等优点,已经被广泛用于工业生产过程。

但工程实际中,PID控制器的比例、积分和微分调节参数往往采用实验加试凑的方法由人工整定。

这不仅需要熟练的技巧,往往还相当费时。

更为重要的是,当被控对象特性发生变化,需要控制器参数作相应调整时,PID控制器没有自适应能力,只能依靠人工重新整定参数,由于经验缺乏,整定结果往往达不到最优值,难以满足实际控制的要求。

考虑生产过程的连续性以及参数整定费事费力,这种整定实际很难进行。

所以,人们从工业生产实际需要出发,基于常规PID控制器的基本原理,对其进行了各种各样的改进。

近年来许多学者提出了基于各种智能算法的PID整定策略,比如模糊PID、神经元网络PID等等。

然而,这些先进算法都要求对被控对象有很多的先验知识,在实际应用中往往难于做到。

随着计算技术的发展,遗传算法有了很大的发展。

将遗传算法用于控制器参数整定,已成为遗传算法的重要应用之一。

本文介绍基于遗传算法的PID参数整定设计方法。

这是一种寻求全局最优的控制器优化方法,且无需对目标函数微分,可提高参数优化效果,简化计算过程。

仿真实例表明该方法与其他传统寻优方法相比,在优化效果上具有一定的优势。

2遗传算法简介2.1 遗传算法的基本原理遗传算法是John H.Holland根据生物进化的模型提出的一种优化算法。

自然选择学说是进化论的中心内容。

根据进化论,生物的发展进化主要有三个原因:即遗传、变异和选择。

遗传算法基于自然选择和基因遗传学原理的搜索方法,将“优胜劣汰,适者生存”的生物进化原理引入待优化参数形成的编码串群体中,按照一定的适应度函数及一系列遗传操作对各个体进行筛选,从而使适应度高的个体被保留下来,组成新的群体;新群体包含上一代的大量信息,并且引入了新的优于上一代的个体。

这样周而复始,群体中各个体适应度不断提高,直至满足一定的极限条件。

毕业设计--基于MATLAB的PID控制算法的实现

毕业设计--基于MATLAB的PID控制算法的实现

摘要目前工业自动化水平已成为衡量各行各业现代化水平的一个重要标志。

PID 控制及其控制器已在工程实际中得到了广泛的应用。

本文介绍了PID控制的基础知识和工作原理,并讨论PID控制器的类型以及各种控制器的优缺点,为进行数字PID的算法研究和仿真提供理论基础。

在简单介绍工业过程控制中经常使用到的位置式和增量式PID控制后主要讨论了两种改进的数字PID控制算法:积分分离PID算法与不完全微分PID算法,比较传统控制算法与改进的算法的优缺点,并基于MATLAB对其进行仿真,讨论仿真结果。

仿真结果表明:积分分离控制算法和不完全微分控制算法可以提高控制精度和消除系统高频干扰等。

证明改进的PID控制算法相比一般PID控制算法有很多优点。

关键词:数字PID;积分分离;不完全微分;MATLAB仿真AbstractAt present the level of industrial automation has become an important sign of the modernization of every industries.PID control and controllers now have been worked in a wide range of engineering applications.This paper briefly introduces and discusses the types and the advantages or disadvantages of the PID controllers.These konwledge lay the foundation for the arithmetical research and the simulation.It mainly discusses two improved PID control algorithms: Integral separation PID control algorithm and Not completely differential PID control algorithm after introducing the Incremental PID control and the Position control algorithm used in the industrial process paring the advantage and diadvantage of the traditional PID control algorithm to the improved PID control algorithm and discussing the results of MATLAB simulation.The simulation results show that the Integral separation PID control algorithm and Not completely differential PID control algorithm can improve the control accuracy and eliminate the high frequency interference ,etc.This article proves that the improved PID control algorithm have more advantages than normal PID control algorithm.Key words:digital PID; Integral separation; Not completely differential simulation; MATLAB simulation目录第1章概述 (1)1.1设计的目的和意义 (1)1.2国内外研究发展现状 (1)1.3本次设计的研究内容 (2)第2章 PID控制基本理论 (3)2.1PID的工作原理 (3)2.2PID控制器类型分类 (4)2.4PID控制器参数确定 (6)2.5PID控制器优缺点 (10)2.6本章小结 (10)第3章数字PID控制算法及仿真意义 (11)3.1数字PID控制算法 (11)3.2MATLAB简介 (19)3.3PID仿真的意义 (21)3.4本章小结 (22)第4章改进型PID控制算法及仿真 (23)4.1积分分离式PID控制算法 (23)4.2不完全微分PID控制算法 (27)4.3本章小结 (32)结论 (33)参考文献 (34)致谢 (35)附录 (36)第1章概述1.1 设计的目的和意义PID控制由于结构简单、工作稳定、鲁棒性好等因素在当今的工业过程控制中仍占有主导地位。

基于MATLAB的PID控制器设计毕业设计

基于MATLAB的PID控制器设计毕业设计

基于MATLAB的PID控制器设计摘要本论文以温度控制系统为研究对象设计一个PID控制器。

PID控制是迄今为止最通用的控制方法,大多数反馈回路用该方法或其较小的变形来控制。

PID控制器(亦称调节器)及其改进型因此成为工业过程控制中最常见的控制器 (至今在全世界过程控制中用的84%仍是纯PID调节器,若改进型包含在内则超过90%)。

在PID控制器的设计中,参数整定是最为重要的,随着计算机技术的迅速发展,对PID 参数的整定大多借助于一些先进的软件,例如目前得到广泛应用的MATLAB仿真系统。

本设计就是借助此软件主要运用Relay-feedback法,线上综合法和系统辨识法来研究PID控制器的设计方法,设计一个温控系统的PID控制器,并通过MA TLAB中的虚拟示波器观察系统完善后在阶跃信号下的输出波形。

关键词:PID参数整定;PID控制器;MATLAB仿真;冷却机;Design of PID Controller based on MATLABAbstractThis paper regards temperature control system as the research object to design a pid controller. Pid control is the most common control method up until now; the great majority feedback loop is controlled by this method or its small deformation. Pid controller (claim regulator also) and its second generation so become the most common controllers in the industry process control (so far, about 84% of the controller being used is the pure pid controller, it’ll exceed 90% if the second generation included). Pid parameter setting is most important in pid controller designing, and with the rapid development of the computer technology, it mostly recurs to some advanced software, for example, mat lab simulation software widely used now. this design is to apply that soft mainly use Relay feedback law and synthetic method on the line to study pid controller design method, design a pid controller of temperature control system and observe the output waveform while input step signal through virtual oscilloscope after system completed.Keywords: PID parameter setting ;PID controller;MATLAB simulation;cooling machine毕业论文(设计)诚信声明本人声明:所呈交的毕业论文(设计)是在导师指导下进行的研究工作及取得的研究成果,论文中引用他人的文献、数据、图表、资料均已作明确标注,论文中的结论和成果为本人独立完成,真实可靠,不包含他人成果及已获得或其他教育机构的学位或证书使用过的材料。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

遗传算法在调节控制系统参数中的应用
【摘要】自动化控制系统多采用PID 控制器来调节系统稳定性和动态性,PID 的
Kp,Ki,Kd 参数需要合理选择方能达到目标。

遗传算法是一种模拟生物进化寻求最优解的有效算法,本文通过利用GAbx 工具箱实现对控制电机的PID 进行参数优化,利用matlab 的仿真功能可以观察控制效果。

1. 直流伺服电机模型 1.1物理模型
图1 直流伺服电机的物理模型
αu ---电枢输入电压(V ) a R ---电枢电阻(Ω) S L ---电枢电感(H ) q u ---感应电动势(V ) g T ---电机电磁转矩(N m ⋅) J---转动惯量(2m kg ⋅)
B---粘性阻尼系数(s m N ⋅⋅) g i ---流过电枢的电流(A ) θ---电机输出的转角(rad )
1.2传递函数
利用基尔霍夫定律和牛顿第二定律得出电机基本方程并进行拉布拉斯变换
)
()()()()()()()()()()(2s s K s U K s I s T s Bs s Js s T s I s L R s I s U s U e q t a g g a a a a q a θθθ⋅=⋅=⋅+⋅=⋅+⋅=-
式中:t K 为电机的转动常数(m N ⋅)A ;e K 为感应电动势常数(s V ⋅)rad
a
a R s L +1
S
1 B
Js +1
i K
C K
)(s U a
)(s U q
)(s I a )(s T g
)(s Ω
)(s θ
图2 直流伺服电机模型方框图
消去中间变量得系统的开环传递函数:
s
K K B Js R s L K s U s s G C t a d t
a ]))([()
()
()(+++=
=
θ
系统参数如下:s m uN B m mg J ⋅⋅=⋅=51.3,23.32
A m N K K uH L R e t a a )(03.0,75.2,4⋅===Ω=
2. PID 校正
图3 PID 校正
s K s
K K s G d i
p c ++
=)( Kp,Ki,Kd 为比例,积分,微分系数 令Kp=15、Ki=0.8 、Kd=0.6
M 文件:J=3.23E-6;
B=3.51E-6; Ra=4;
La=2.75E-6; Kt=0.03; num= Kt;
den=[(J*La) ((J*Ra)+(La*B)) ((B*Ra)+Kt*Kt) 0]; t=0:0.001:0.2; step(num,den,t); Kp=15; Ki=0.8; Kd=0.6;
numcf=[Kd Kp Ki]; dencf=[1 0];
numf=conv(numcf,num); denf=conv(dencf,den);
[numc,denc]=cloop(numf,denf); t=0:0.001:0.04; step(numc,denc,t);
matlab 进行仿真,我们可以看出不恰当的PID 参数并不能使系统达到控制系统的要求,
因此需要对PID参数进行优化。

图4 系统阶跃响应(Kp=15,Ki=0.8,Kd=0.6)
3.遗传算法
3.1 遗传算法和工具箱简介
遗传算法(GA)是基于自然选择和基因遗传学原理的优化搜索方法。

它借鉴了达尔文的进化论和孟德尔的遗传学说。

其本质上是一种高效、并行、全局搜索的方法,它能在搜索过程中自动获取和积累有关搜索空间的知识,并自适应地控制搜索过程以求得最优解。

遗传算法操作使用适者生存的原则,在潜在的解决方案种群中逐次产生一个近似最优的方案。

在遗传算法的每一代中,根据个体在问题域中的适应度值和从自然遗传学中借鉴来的再造方法进行个体选择,产生一个新的近似解。

在这个过程导致种群中个体的进化,得到的新个体比原个体更能适应环境,就像自然界中的改造一样。

表3.1遗传学和遗传算法中基本用语对照表
遗传学遗传算法
染色体(Chromosome) 解的编码(算法的操作对象)
基因(Gene)解中每一分量
等位基因(Allele)特性值
基因座(Locus)二进制串中位置
基因型(Genptype)结构
表现型(Phenotype)参数集、候选解
个体(Individual)解
适者生存在算法停止时,最优目标值的解有最大可能被留住
适应性(Fitness)适应度函数值
群体(Population)选定的一组解
复制(Reproduction)根据适应度函数值选取的一组解
交配(Crossover)通过交配产生一组新解的过程
变异(Mutation)编码的某一个分量发生变化的过程
英国谢菲尔德大学开发的遗传算法工具箱把参数,选择,交叉,变异等过程封装成函数进行操作,其基本搜索过程不变。

相关文档
最新文档