基于遗传算法PID控制寻优实现(有代码超详细)
- 格式:docx
- 大小:163.77 KB
- 文档页数:15
遗传算法入门实例:对PID参数寻优[原创][这乌龟飙得好快啊]开始之前:假设你已经:能运用C语言,初步了解PID、遗传算法的原理。
遗传算法能干什么?(我有个毛病:每当遇到一个东东,我首先会设法知道:这个东东能干什么呢?)遗传算法可以解决非线性、难以用数学描述的复杂问题。
也许这样的陈述让你觉得很抽象,把它换成白话说就是:有个问题我不知道甚至不可能用数学的方法去推导、解算,那么也许我就可以用遗传算法来解决。
遗传算法的优点是:你不需要知道怎么去解决一个问题; 你需要知道的仅仅是,用怎么的方式对可行解进行编码,使得它能能被遗传算法机制所利用。
如果你运用过PID来控制某个系统,那你一定非常清楚:PID麻烦就在那三个参量的调整上,很多介绍PID的书上常搬一些已知数学模型的系统来做实例环节,但事实上我们面对的往往是不可能用数学模型描述的系统,这个时候该怎么取PID的参值呢?1、可以依靠经验凑试,耗时耗精力。
2、离线规划,这就是下文要做的事情3、在线规划,比方说神经网络PID(后续文章将推出,做个广告先^_^)。
一、 将PID用在本次试验中来个问题先:A VR怎样利用片上和少量的外围器件快速准确地实现D/A输出?(0~5V)1、实验电路的搭建:图1:实验原理图搭建这样的电路纯粹是为了本次实验的直观(超调、调整不足等现象通过示波器一目了然),当然,如果实际工程这么简单那也用不到PID,更用不到遗传算法了。
回归话题,解释下上面的电路:M16单片机的OC2输出0~100%占空比的PWM,经过RC,可以得到0~5V 的直流电压,这就实现了简易的D/A(实际实验,发现输出电压是1.XX伏~4.XX 伏,未带负载)。
用一个图表示:这个时候如果我要输出 3.5V (可以是其它值)电压,该加怎样的PWM呢?(有个简单的方法:标定,但是这种方法系统调整响应速度较为缓慢,理由见图5下附言)也许我们可以把这个输出电压加到A/D反馈到系统,这样就形成了闭环控制:系统输出PWM ——>> PWM 转换成电压——>>A/D 采集,获得实际值与目标值的偏差(例如3.5V )——>>将偏差进行PID 加载到PWM 输出(然后输出又影响下一次的输入……)把示波器加到测试点上,调整扫描周期,使示波器能看到完整的一个调整过程。
遗传算法在调节控制系统参数中的应用【摘要】自动化控制系统多采用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参数进行优化。
PID控制算法的C语言实现(完整版) 在现代工业生产中,为了实现对生产过程的精确控制,我们需要采用一种能够根据实际需求自动调整参数的控制算法。
PID(Proportional-Integral-Derivative)控制算法就是这样一种广泛应用于工业控制系统的算法。
本文将详细介绍PID控制算法的C语言实现,包括算法的基本原理、实现方法以及注意事项。
我们来了解一下PID控制算法的基本原理。
PID控制器由三个部分组成:比例(P)、积分(I)和微分(D)。
这三个部分分别对误差信号进行处理,然后将处理后的信号相加得到控制输出。
具体来说,比例部分根据误差信号的大小产生相应的控制作用;积分部分对误差信号进行累积,以消除系统的静差;微分部分对误差信号的变化趋势进行预测,以便及时调整控制策略。
通过这三个部分的综合作用,PID控制器能够实现对生产过程的精确控制。
接下来,我们来看一下如何用C语言实现PID控制算法。
我们需要定义一些变量来存储所需的参数和状态信息。
例如,我们需要定义比例系数Kp、积分系数Ki、微分系数Kd以及误差信号e等。
我们还需要定义一些变量来存储上一次的误差信号和积分项等。
这些变量的定义如下:```cdouble Kp, Ki, Kd; // 比例、积分、微分系数double e; // 当前误差信号double de; // 当前误差信号的导数double last_e; // 上一次的误差信号double integral; // 积分项有了这些变量之后,我们就可以开始实现PID控制器的计算过程了。
PID控制器的计算过程主要包括以下几个步骤:1. 计算误差信号:当前误差信号等于期望值与实际值之差。
2. 计算比例项:比例项等于当前误差信号乘以比例系数Kp;3. 计算积分项:积分项等于当前误差信号乘以积分系数Ki加上累积误差信号乘以积分系数Ki;4. 计算微分项:微分项等于当前误差信号的导数乘以微分系数Kd;5. 计算控制输出:控制输出等于比例项、积分项和微分项之和。
引言PID操纵器结构简单且鲁棒性强,在操纵领域一直被普遍应用。
运算机的进展为在线辩识提供了条件,从而也为在线整定PID参数提供了可能。
PID操纵是工业进程中应用最普遍的策略之一,因此PID 操纵器参数的优化成为人们关注的问题,它直接阻碍操纵成效的好坏,并和系统的平安、经济运行有着密不可分的关系。
目前PID参数的优化方式很多,如:间接寻优法,梯度法,登山法等,而在热工系统中单纯形法、专家整定法那么应用普遍。
尽管二者都具有良好的寻优特性,但却存在一些短处,单纯刑法对初值比较灵敏,容易陷入局部最优解,造成寻优失败。
专家整定法那么需要太多体会,不同的目标函数对应不同的体会,而整理知识库是一项长时刻的工程。
因此咱们选取遗传算法来进行参数寻优,该方式是一种不需要任何初始信息并能够寻求全局最优解的高效的优化组合方式。
第一章:遗传算法和PID操纵原理简介一遗传算法简介大体原理遗传算法是依照生物进化的模型提出的一种优化算法。
遗传算法是从代表问题可能潜在解集的一个群组(popuation)开始的,而一个种群那么由通过基因(gene)编码(coding)的必然数量的个体(individual)组成。
每一个个体事实上是染色体(chromosome)带有特点的实体。
染色体作为遗传物质的要紧载体,即多个基因组合,其内部表现(即基因型)是某种基因组合,它决定了个体的形状的外部表现。
因此,在一开始需要实现从表现型到基因型的映射即编码工作。
由于仿照基因编码的工作很复杂,咱们往往进行简化,如二进制编码。
初代种群产生以后,依照适者生存和优胜劣汰的原理,逐代(genetation)演化产生出愈来愈好的近似解。
在每一代,依照问题域中个体的适应度(fitness)大小挑选(selection)个体,并借助于自然遗传学的遗传算子(genetic operator)进行组合交叉.(crossover)和变异(mutation),产生出代表新的解集的种群。
第38卷第3期2021年3月吉林化工学院学报JOURNAL OF JILIN INSTITUTE OF CHEMICAL TECHNOLOGYVol.38 No.3Mar. 2021文章编号:1007-2853 (2021) 03-0057-04惩罚函数结合遗传算法的PID 参数优化高兴泉,黄东冬,丁三毛(吉林化工学院信息与控制工程学院,吉林吉林132022)摘要:针对传统优化算法对PID 参数优化时,由于目标函数选择不当岀现的超调量过大,从而引起系统的反应速度变慢和稳定性变差的问题,提岀以传统遗传算法为基础,引入惩罚函数的方法,根据系统中 岀现的超调量来构造新的目标函数,实现对PID 的参数优化.实验表明,该方法可以有效减少系统中的超调量,加快优化以及运行速度的同时保证系统的稳定性,实现对PID 参数的优化.关键词:惩罚函数;遗传算法;PID 中图分类号:TP 273 文献标志码:ADOI :10.16039/22-1249.2021.03.012现如今,多数PID 参数进行优化的相关优化 算法在求解最优化问题时,都是依靠适应度函数 值的大小来区分优化结果的好坏,可以看出目标 函数的选取在优化算法中起着决定性的作用.一 些常见的目标函数如绝对误差积分[1]、误差平方 积分[2]、时间乘误差平方积分[3]、时间乘绝对误 差积分[4]都被引用到优化算法的过程中,这些目 标函数能够迅速减小起始误差,并且在系统中反 应较快,但是系统中因此出现的超调变大将会无法避免,这些适应度函数作用于系统时选择性较 差,最终导致系统的反应速度变慢和稳定性变差 等问题•本文提出将惩罚函数[5]引入到目标函数 中实现对PID 的参数优化的方法,首先以传统遗 传算法[6]为基础,选用时间乘绝对误差积分为目标函数,然后将系统中出现的超调量作为惩罚项 来构建新的目标函数•最后以双容水箱为例的仿 真结果中表明,用惩罚函数构造出的新的目标函 数能大大减小超调量,提高系统的动态响应能力.(1)其中:/是一个比例系数;&是积分系数;心是微 分系数;e(t)是误差信号;吠t)是PID 的控制输出.PID 控制器在实际应用时,最为困难的在于 比例、积分、微分系数的选取问题上•所以一般都会使用优化算法对这3个参数进行优化进而得到 理想的参数来应用于系统•对于传统优化算法都 会使用如下4种目标函数来对参数进行优化.(1) 绝对误差积分J I e( t) I dt;(2) 误差平方积分:Je 2(t)dt;(3) 时间乘误差平方积分Jte 2( t)dt;(4) 时间乘绝对误差积分:JtI e( t) I dt.对于这4种目标函数优化出来的PID 参数效 果并不满意,使得系统中出现震荡和超调的现象 从而导致系统不稳定•这里提出将传统目标函数中结合惩罚函数的思想来解决此类问题•1 PID 控制算法及其参数优化2惩罚函数PID 控制器是根据系统的给定值与输出值之间的偏差作为输入信号,利用此信号来和PID 控 制器中的控制算法相乘产生控制输出,其控制规 律如下:t d [ e( t)]"(t ) =K p e(t ) + K. Ie (t )d t + K d ,0 dt惩罚函数法⑺的优点是能将系统约束融入最优化问题中,其中心思想就是将脱离可行域的 点通过构造惩罚函数的方式来进行约束,然后用 最优化方法解决无约束情况下的相应的问题•然 后考虑非线性约束优化问题[8-9]:minA %),(2)s.t. g :( %) M 0 ,i = 1,…,m.收稿日期:2020-12-31基金项目:吉林省教育厅十三五科学技术项目(JJKH20200252K);吉林市科技创新发展计划项目(20200202003) 作者简介:高兴泉(1976-),男,吉林松原人,吉林化工学院教授,博士,主要从事先进控制、智能制造方面的研究.58吉 林 化 工 学 院 学 报2021 年hj (x )二 0,j = 1, — ,1, (3)其中f( x )为目标函数旳(x )(j = 1, •••,/)是等式 约束条件,g :( x ) ( i = 1,…,m)是不等式约束条件,三者均是在R n 上的连续函数.惩罚函数中心思想就是将问题(2)转化为: min G (x)二f(x) + cP (x),此处的 G(x )就是惩罚函数,c 为惩罚因子,P (x)则为惩罚项.通常当x 在可行域内时,P (x)二0,则G (x)二f(x );当x 不在可行域内的时候,在x 处,cP(x )是很大的正数,他的存在就是迫使脱离点靠近可行域.引理2.1[10] 假设仁g ,h 是R n 上的连续函数,对于每一个惩罚因子c,都会存在一个x c eR n ,使得G ( c) =f(x c ) + cP (x c )成立,满足以下内容:(1) inf{/(x ) :g(x ) W 0,h(x)二 0} Msup c 〉0G( c),其中 G (c)二 inf{/(x) + cP (x ) };(2) 当c > 0时,/(x )关于x 单调不降,G (c)对于c 单调不降,P (x c )对于c 单调不增.为了得到满意的过渡过程动态特性,采用时间乘绝对误差积分为目标函数:/(x)二[tI e (t) \d t , (4)若系统中出现了超调,以原来的目标函数为基础再加入惩罚函数,将系统中出现的超调量作 为惩罚项加入目标函数中形成新的目标函数:G (x )二[t \ e( t) \ dt+c [\ e( t ) \ d t ,00(5)所以对于系统中的目标函数可以总结为:「8I t \ e(t) \ dtj 0G(x)二 \88I t \ e(t) \ dt+c I \ e(t) \ dtJ 0J 0e(t) M 0e(t) < 0(6)将带有惩罚函数的目标函数应用到PID 的参数优化中需要一种优化算法,这里结合传统遗传算法实现PID 的参数优化.3遗传算法解决PID 参数优化问题3.1遗传算法遗传算法是一种可以模拟自然界生物繁衍规则进化发展机制的随机全局搜索和优化学习算法.该算法的工作原理大致为以下3步:第1步,初始群体是在给定区域内的随机方式产生;第2步,通过研究选取的适应度函数来计算各个个体的适应度值,以适应度值的大小来判断所得解或 个体是否为系统最优;第3步,按照遗传算子3大基本步骤进行寻优处理,也就是选择、交叉、变异,从而得到最优良的个体,最终让种群不断地寻优直至达到理想的目标区域内为止.3.2遗传算法求解PID 参数优化问题的步骤遗传算法来优化K p , K i , K d 3个参数,优化得到的参数对系统的控制性能有很大的改善.首先随机产生初始种群,将种群信息给予PID 参数.若系统中出现超调,那么将超调量作为惩罚项构造惩罚函数并且加入目标函数中,从而生成新的目标函数.将新的目标函数融入遗传算法中的性能指标中进行判断,借助遗传算法中的基本法则不 断优化,直到系统达到最大进化代数,输出最优一组参数.惩罚函数结合遗传算法优化PID 参数示意图如图 1 所示.图1遗传算法优化PID 参数系统图K dr 、T 1图1中:r(t)为系统输入信号;y(t)为系统输出信号;e( t )为误差信号;J =I t \ e( t) \ dt ;J 1 =J + c f\ e( t) \ d t ,u (t)为 PID 控制器输出 .3.3实施步骤遗传算法通过以下步骤优化PID 参数:(1) 按经验选取一组K p 、人、K d 参数,根据系 统的实际情况以及要求确定约束条件,K p e [0,8],K i e[0,2],K °丘[0,1].(2) 编码及初始种群生成.采用二进制的方法对系统中的久、仏、心参数进行编码,并且设置种群规模为50,根据之前按经验法所得参数产生初始种群.(3) 系统如果存在超调,则选择加入惩罚函数的目标函数J 1,如果没有超调,则选择目标函数J 作为最优性能指标.(4) 解码,确定适应度函数/ = 1/J,根据适应第3期高兴泉,等:惩罚函数结合遗传算法的PID参数优化59度函数来算个体适应度值的大小来判断并找出最优个体.(5)若符合优化要求(达到设置的最大进化代数),即可输出系统中最优的一组PID参数,算法结束,若不满足要求,按照遗传算法的核心三大步继续寻优以寻得最优一组参数为止.(6)返回步骤(3),若系统流程优化至指定要求(达到设置的最大进化代数),将最优解输出,否则,继续进行优化.遗传算法优化PID参数的流程图如图24仿真实验并分析以双容水箱系统为例.将惩罚函数引入到目标函数中实现对PID参数优化的方法应用到双容水箱系统中.双容水箱模型描述如下:Sh1=Q-S12gh1Sh2=S12gh1-S2(7)其中:h1和h2分别代表上水箱和下水箱的液位;Q 代表流量;其他参数代表的意义及其数值如表1所示.双容水箱系统实际上是以下水箱的液位达到设定值为控制目标.上水箱和下水箱的初始液位均设为0.本次设计实验是对下水箱液位达到的设定值为15cm.表1参数代表意义及数值符号物理量及单位数值S上下水箱横截面积/cm215.5179S1上水箱出水口横截面积/cm20.1781S2下水箱出水口横街面积/cm20.1781g重力加速度/(cm-s-2)981下面采用基本遗传算法、惩罚函数引入到目标函数两种方法对PID参数整定的仿真进行对比实验.遗传算法中的种群大小设置为50,进化代数为100代,交叉率为0.9,变异率为0.01,惩罚函数的惩罚因子设置为100.两种方法优化PID参数结果如表2所示.表2两种方法优化PID参数的结果优化方法K p K i K d迭代次数基本遗传算法 2.07070.06510.617162惩罚结合遗传算法0.87130.04220.762712图3所示为两种优化PID参数方法对最优适应度值的对比图.从图3就可以看出,通过两种优化方法最后得到的最优指标几乎是一致的,但是基本的遗传算法在58代的时候接近最优,62代才能达到最优,而惩罚函数引入到目标函数的方法在5代的时候接近最优,到12代的时候就达到了最优,表明了惩罚函数引入到目标函数的方法能够大大提高系统的动态响应能力.图4为总仿真时间为200s下的两种优化后的下水箱液位曲线和PID输出控制量曲线.从图4可以看出,基本的遗传算法虽然能使60吉 林 化 工 学 院 学 报2021 年系统达到稳态,但是系统中还是存在着较大的超 调.而用本文所设计的新目标函数的结果来看,系 统中几乎没有存在超调,有效地控制了系统中的 超调量,并且能够有效地改善系统控制性能的稳t/ s3020 f \ —iSsSIt 算法40 80 120 160 200t/ s图4液位曲线及控制量曲线5 结 论针对传统优化算法对PID 参数优化时,由于 目标函数选择不当出现的超调量过大,从而引起 系统的反应速度变慢和稳定性变差的问题,提出了惩罚函数引入到目标函数中实现对PID 的参数优化的方法.在系统的运行过程中,一旦产生超 调,则惩罚函数将会用超调量作为惩罚项加入目标函数中,进而形成新的目标函数,遗传算法将会以带有罚函数的目标函数进行优化.本文中,以双 容水箱系统仿真为例,实践仿真结果表明,惩罚函数引入到目标函数中实现对PID 的参数优化的方法能有效地减小了超调量,加快优化以及运行速度的同时保证了系统的稳定性.参考文献:[1]康有,夏传清,马顺刚•洪水频率分析中目标函数的统计试验研究[J/OL ].水力发电:1-9[ 2019-08-23 ]. http ://kns. cnki. net/kcms/detail/11. 1845. TV.20190726.1700.002.html.[2] 张娟,孙彦超,高杨,等.基于花授粉算法的无刷直流电动机速度控制研究[J].微特电机,2020, 48(3) :58-60,64.[3] 汪浩,李晓明,严伟,等.具有最小时间加权平方误差积分的主动队列管理算法ISTE-PI[J].计算机学 报,2012,35(5) :951-963.[4] 周志刚,马永光,董子健,等.基于人群搜索算法的自抗扰控制器参数优化[J].热力发电,2018, 47(9) :1-8.[5] 闫帅印,薄瑞峰,李瑞琴,等.动态惩罚函数非线性规划遗传算法及在汽车变速器中的应用[J].机械 传动,2015,39(2):146-149.[6] 周勇,邓仕英.基于改进遗传算法的PID 参数优化在闪蒸罐压力控制中的应用[J].现代制造工程, 2019(2) :134-139.[7] 皇甫尚乾.改进罚函数分级遗传算法及其在结构优化设计中的应用[D].广州:广州大学,2018.[8 ] MAHSA GHOVVATI , GHOLAM KHAYATI ,HOSSEINATTAR , et al.Kinetic parameters estimation of protease production using penalty function method with hybrid genetic algorithm and particle swarm optimization [ J]. Biotechnology & ; Biotechnological Equipment , 2016,30(2) :404-410.[9] 黄静,刘玉惠•一种求解约束优化问题的遗传算法[J].青海师范大学学报(自然科学版),2020,36 ( 1): 11-15.[10] 徐健锐,朱会娟.基于自适应惩罚函数的云工作流调度协同进化遗传算法[J].计算机科学,2018, 45(8) :105-112.PID Parameter Optimization based on PenaltyFunction and Genetic AlgorithmGAO Xingquan , HUANG Dongdong , DING Sanmao( School of Information and Control Engineering,Jilin Institute of Chemical Technology,Jilin 132022,China)Abstract : Aiming at the problem that the overshoot of the traditional optimization algorithm in the optimizationof PID parameters is too large due to the improper selection of objective function , which results in the slow reaction speed and poor stability of the system, a new method based on the traditional genetic algorithm and introducing penalty function is proposed to construct a new one according to the overshoot in the system.The objective function is used to optimize the parameters of PID . Experiments show that this method can effectively reduce the overshoot in the system,speed up the optimization and operation speed while ensuring the stability of the system , and realize the optimization of PID parameters.Key words : penalty function;geneticalgorithm;PID。
基于遗传算法的PID控制器参数优化遗传算法是一种模拟生物进化过程的智能算法,适用于解决优化问题。
在PID控制器设计中,参数的选择对控制系统的性能和稳定性有很大影响。
使用遗传算法对PID控制器参数进行优化,能够自动找到最优参数组合,提高系统的控制性能。
PID控制器由比例(P)、积分(I)、微分(D)三个部分组成,其输出是通过对误差的线性组合得到的。
参数的选择直接影响控制器的稳定性、动态响应和抗干扰能力。
传统的方法通常是通过试错法进行参数整定,这种方法的缺点是效率低、调试过程繁琐且容易出错。
遗传算法是一种模拟自然界进化过程的智能优化算法,其中每个个体代表一组可能的参数,通过适应度函数来衡量个体的适应度,并选择适应度较高的个体进行遗传和变异操作,最终找到适应度最优的个体。
将遗传算法应用于PID控制器参数优化的步骤如下:1.确定优化目标:通过设置适应度函数来度量控制系统的性能指标,如超调量、调整时间和稳定性。
2.初始化种群:随机生成一组初始参数作为初始种群,并利用适应度函数来评估每个个体的适应度。
3.选择操作:根据适应度选择一部分适应度较高的个体作为父代,通过选择操作进行选择。
4.交叉操作:将选中的父代进行交叉操作,生成新的子代个体。
5.变异操作:对子代进行变异操作,引入新的个体差异。
6.评估适应度:利用适应度函数评估新生成的子代个体的适应度。
7.判断终止条件:判断是否满足终止条件,如达到最大迭代次数或找到满足条件的解。
8.更新种群:根据选择、交叉和变异操作的结果,更新种群。
9.重复步骤3-8,直到满足终止条件。
10.输出最优解:输出适应度最好的个体参数作为PID控制器的优化参数。
使用遗传算法进行PID控制器参数优化有如下优点:1.自动化:遗传算法能够自动寻找最优参数组合,减少了人工试错的过程。
2.全局:遗传算法具有全局的能力,能够参数空间的各个角落,找到更好的解决方案。
3.鲁棒性:遗传算法能够处理多变量、多模态和不连续的问题,具有较好的鲁棒性。
文章编号:167321220(2009)022044203基于遗传算法的电液位置伺服控制系统P I D参数整定汤 永,吴志刚,李新民(中国直升机设计研究所,景德镇,333001)摘 要 为了改善电液伺服位置系统的控制性能,本文采用了传统遗传算法对相关P I D参数进行寻优整定。
通过仿真工具S I M UL I N K和实际试验表明,控制系统既有较快的动态响应,又有较高的稳态精度。
关键词 电液位置伺服;P I D整定;遗传算法中图分类号: V227 文献标识码: AP I D Tun i n g ba sed on Gen eti c A lgor ithm s i n Electr o2Hydrauli cPositi on Ser vo SystemT ANG Y ong,WU Zhigang,L I Xinm in(China He licop ter R esearch and Deve l opment Institute,Jing dezhen,333001)Ab stra ct I n order to i m p r ove the perf or m ances of e lec tr o2hydraulic position servo syste m,traditi onG A(Gene tic Algorithm s)was applied t o P I D Tuning.The results of S I M U L I N K si mula ti ons indicatethat the system not only has the faster dynam ic res ponse,but also shows the better ulti ma te preci2 sion.It was pr oved to be eff ective by te st also.Key word s electr o2hydraulic positi on servo;genetic a lgorithm s;P I D tuning1 前言某型直升机地面联合试验台的旋翼系统桨距变化采用电液位置伺服控制系统来实现。
基于遗传算法寻优的PID控制与仿真
秦国经;任庆昌
【期刊名称】《中国西部科技》
【年(卷),期】2011(10)11
【摘要】目的:本文中介绍了遗传算法和基于遗传算法寻优的PID控制设计.方法:采用误差绝对值时间积分性能指标作为参数选择的最小目标函数,利用遗传算法的全局搜索能力,使得在无须先验知识的情况下实现对全局最优解的寻优.结果:并将结果与常规的PID控制方式进行比较,通过MATLAB仿真结果表明.结论:根据遗传算法寻优设计的PID控制器具有较好的动态品质和稳态精度.
【总页数】3页(P12-13,9)
【作者】秦国经;任庆昌
【作者单位】西安建筑科技大学,陕西西安710055;西安建筑科技大学,陕西西安710055
【正文语种】中文
【相关文献】
1.基于遗传算法寻优的PID控制及MATLAB仿真
2.基于遗传算法的锅炉水温PID 控制寻优
3.基于混合遗传算法的转台PID控制寻优
4.基于非线性模型和遗传算法寻优的无人艇航向PID控制研究
5.基于混合遗传算法的航空发动机PID控制参数寻优
因版权原因,仅展示原文概要,查看原文内容请购买。
PID控制算法的C语言实现一 PID算法原理最近两天在考虑一般控制算法的C语言实现问题,发现网络上尚没有一套完整的比较体系的讲解。
于是总结了几天,整理一套思路分享给大家。
在工业应用中PID及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握PID算法的设计与实现过程,对于一般的研发人员来讲,应该是足够应对一般研发问题了,而难能可贵的是,在我所接触的控制算法当中,PID控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的经典。
经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧,何等的简单!简单的不是原始的,简单的也不是落后的,简单到了美的程度。
先看看PID算法的一般形式:PID的流程简单到了不能再简单的程度,通过误差信号控制被控量,而控制器本身就是比例、积分、微分三个环节的加和。
这里我们规定(在t时刻):1.输入量为rin(t);2.输出量为rout(t);3.偏差量为err(t)=rin(t)-rout(t);pid的控制规律为理解一下这个公式,主要从下面几个问题着手,为了便于理解,把控制环境具体一下:1.规定这个流程是用来为直流电机调速的;2.输入量rin(t)为电机转速预定值;3.输出量rout(t)为电机转速实际值;4.执行器为直流电机;5.传感器为光电码盘,假设码盘为10线;6.直流电机采用PWM调速转速用单位转/min表示;不难看出以下结论:1.输入量rin(t)为电机转速预定值(转/min);2. 输出量rout(t)为电机转速实际值(转/min);3.偏差量为预定值和实际值之差(转/min);那么以下几个问题需要弄清楚:1.通过PID环节之后的U(t)是什么值呢?2.控制执行器(直流电机)转动转速应该为电压值(也就是PWM占空比)。
3.那么U(t)与PWM之间存在怎样的联系呢?/user1/3407/archives/2006/33541.html(见附录1)这篇文章上给出了一种方法,即,每个电压对应一个转速,电压和转速之间呈现线性关系。
基于遗传算法的PID整定与优化作者:李燕皇来源:《商品与质量·学术观察》2013年第05期摘要:遗传算法是一种基于达尔文进化论和孟德尔遗传学说来实现随机、迭代、自适应、并行性搜索的优化算法,尤其适合处理复杂的、非线性的控制问题。
因此在此文,采用遗传算法直接优化PID控制器参数,并控制一个带迟延的主汽温控制系统,仿真结果表明遗传算法收敛较快,得到的PID控制器控制效果明显优于传统的PID控制。
关键词:遗传算法优化主汽温引言由于PID控制规律具有算法简单、鲁棒性好和可靠性高等优点,因此过程控制中采用最多的依然是PID方式。
PID参数整定与优化的方法有很多,工程上整定方法有衰减曲线法、Z-N 法, ISTE最优设定方法、快速整定和继电法等,在参数优化过程中多采用梯度法,单纯形法和智能方法。
衰减曲线法、Z—N法和快速整定法是经验的总结不是最优解,继电法会使被控系统振荡,而优化中的梯度法需要对目标函数微分,同时梯度法与单纯形法会陷入局部最优点,而ISTE最优设定方法和智能方法是针对一类特定被控对象的。
本文采用遗传算法进行PID参数整定与优化,这是一种寻求全局最优的优化方法,无需对目标函数微分。
1、遗传算法遗传算法简称GA(Genetic Algorithms)是1962年由美国Michigan大学的Holland教授提出的模拟自然界遗传机制和生物进化论而成的一种并行随机搜索寻优方法[1]。
它将“优胜劣汰,适者生存”的生物进化原理引入优化参数形成的编码串联群体中,按所选择的适应值函数并通过遗传中的复制、交叉及变异对个体进行筛选,使适应值高的个体被保留下来,组成新的的群体,新的群体既继承了上一代的信息,又优于上一代。
这样周而复始,群体中个体适应度不断提高,直到满足一定的条件。
其算法简单,可并行处理,能得到全局最优解。
GA寻优的一些遗传操作:1、染色体(基因组、个体)染色体即问题解答的二进制串或十进制串表示,对应地有二进制编码和实数编码。
总第233期2009年第3期计算机与数字工程Computer&D ig ital Eng ineer ingV o l.37No.378基于改进遗传算法的PID参数寻优与控制器设计*成学亮尉宇王涛(武汉科技大学信息科学与工程学院武汉430080)摘要相比传统的调节方法,遗传算法具有更好的鲁棒性、最优性,能较好的实现参数的自动化调节。
对标准遗传算法(SGA)进行了分析、研究,并在SGA的基础上进行了改进。
改进的遗传算法从提高全局搜索性能和加快收敛速度出发,提出了改进的选择算子、交叉算子和变异算子,仿真结果表明,改进的遗传算法的全局搜索性能和收敛速度远远优于标准遗传算法。
关键词遗传算法PID控制器参数优化中图分类号T P301.6Parameters Optimizatio n and Design f or PID ControllerBased on a New Genetic AlgorithmCheng X ue liang W ei Y u W ang T ao(D ept.of Inf or mat io n Scie nce and Eng ineer ing,W uhan U niver sity o f Science and T echno lo gy,W uha n430081)A bstract Co mpare d w ith the c omm on m ethods,the tuning me thod based on G A can g et bette r pa ram eter s,with few er limits.T he author a naly zed and studie d the standar d gene tic alg or ithms(G A),impr o ved the algo r ithm based on SG A.A dded so me new impr ov ed steps,impr ov ed alg or ithm eff iciently so lves the pr oblem o f g lo ba l co nver gence and im-pr ov es the co nver ge nce speed.T he ne w steps are se lect oper ato r、cr o sso ver oper ato r and mutation oper ato r.T he globa l conv erg ence and the co nv er gence speed o f impro ve d a lg or ithm are m or e sa tisf ie r tha n SG A.Key words g enetic a lg or ithms,PI D contr o ller,par ameter tuningClass Nu mber T P301.61前言目前随着现代工业控制过程和环境的日趋复杂化,对PID控制系统的控制品质提出了更高的要求。
基于遗传算法的PID参数整定1引言传统的比例、积分、微分控制,即PID控制具有算法简单、鲁棒性好和可靠性高等优点,已经被广泛用于工业生产过程。
但工程实际中,PID控制器的比例、积分和微分调节参数往往采用实验加试凑的方法由人工整定。
这不仅需要熟练的技巧,往往还相当费时。
更为重要的是,当被控对象特性发生变化,需要控制器参数作相应调整时,PID控制器没有自适应能力,只能依靠人工重新整定参数,由于经验缺乏,整定结果往往达不到最优值,难以满足实际控制的要求。
考虑生产过程的连续性以及参数整定费事费力,这种整定实际很难进行。
所以,人们从工业生产实际需要出发,基于常规PID控制器的基本原理,对其进行了各种各样的改进。
近年来许多学者提出了基于各种智能算法的PID整定策略,比如模糊PID、神经元网络PID等等。
然而,这些先进算法都要求对被控对象有很多的先验知识,在实际应用中往往难于做到。
随着计算技术的发展,遗传算法有了很大的发展。
将遗传算法用于控制器参数整定,已成为遗传算法的重要应用之一。
本文介绍基于遗传算法的PID参数整定设计方法。
这是一种寻求全局最优的控制器优化方法,且无需对目标函数微分,可提高参数优化效果,简化计算过程。
仿真实例表明该方法与其他传统寻优方法相比,在优化效果上具有一定的优势。
2遗传算法简介2.1 遗传算法的基本原理遗传算法是John H.Holland根据生物进化的模型提出的一种优化算法。
自然选择学说是进化论的中心内容。
根据进化论,生物的发展进化主要有三个原因:即遗传、变异和选择。
遗传算法基于自然选择和基因遗传学原理的搜索方法,将“优胜劣汰,适者生存”的生物进化原理引入待优化参数形成的编码串群体中,按照一定的适应度函数及一系列遗传操作对各个体进行筛选,从而使适应度高的个体被保留下来,组成新的群体;新群体包含上一代的大量信息,并且引入了新的优于上一代的个体。
这样周而复始,群体中各个体适应度不断提高,直至满足一定的极限条件。
基于遗传优化算法对离散PID控制器参数的优化设计摘要PID控制作为一种经典的控制方法,从诞生至今,历经数十年的发展和完善,因其优越的控制性能业已成为过程控制领域最为广泛的控制方法;PID控制器具有结构简单、适应性强、不依赖于被控对象的精确模型、鲁棒性较强等优点,其控制性能直接关系到生产过程的平稳高效运行,因此对PID控制器设计和参数整定问题的研究不但具有理论价值更具有很大的实践意义,遗传算法是一种借鉴生物界自然选择和自然遗传学机理上的迭代自适应概率性搜索算法。
本论文主要应用遗传算法对PID调节器参数进行优化。
关键词:遗传优化算法PID控制器参数优化1.前言PID调节器是最早发展起来的控制策略之一,因为它所涉及的设计算法和控制结构都是简单的,并且十分适用于工程应用背景,此外PID控制方案并不要求精确的受控对象的数学模型,且采用PID控制的控制效果一般是比较令人满意的,所以在工业实际应用中,PID调节器是应用最为广泛的一种控制策略,也是历史最久、生命力最强的基本控制方式。
调查结果表明: 在当今使用的控制方式中,PID型占84. 5% ,优化PID型占68%,现代控制型占有15%,手动控制型66%,人工智能(AI)型占0.6% 。
如果把PID型和优化PID型二者加起来,则占90% 以上,这说明PID控制方式占绝大多数,如果把手动控制型再与上述两种加在一起,则占97.5% ,这说明古典控制占绝大多数。
就连科学技术高度发达的日本,PID控制的使用率也高达84.5%。
这是由于理论分析及实际运行经验已经证明了PID调节器对于相当多的工业过程能够起到较为满足的控制效果。
它结构简单、适用面广、鲁棒性强、参数易于调整、在实际中容易被理解和实现、在长期应用中己积累了丰富的经验。
特别在工业过程中,由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大的代价进行模型辨识,但往往不能达到预期的效果,所以不论常规调节仪表还是数字智能仪表都广泛采用这种调节方式。
正是PID控制算法具有以上多种优点,所以这种算法仍将在现场控制中居于主导地位。
PID控制器参数整定的方法很多,概括起来有两大类:一是实验凑试法,它主要依赖调试经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
二是理论计算整定法,它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改[1]。
但根据参数凑试法得出的控制器参数的控制效果并不是很理想,而手动调整控制器参数找到较优值费时又费力,因此利用一种优化算法对控制器参数进行优化是非常必要的。
本文采用遗传优化算法,在二次型性能指标下对离散PID控制器的控制参数进行优化并给出了优化结果,同时通过仿真进行研究与分析。
本文的其余部分安排如下:第二部分介绍了PID控制器的基本原理;第三部分介绍了遗传优化算法;第四部分采用MATLAB编程和simulink模块对被控对象进行建模;第五部分使用遗传算法对系统进行仿真分析。
最后,在第六部分对本文的研究进行了总结。
2.PID控制器2.1. PID控制器基本原理PID控制是基于对变量“过去”、“现在”和“未来”信息估计的交叉控制算法。
控制系统框图如图2-1所示,系统主要由被控对象和PID控制器两部分组成。
常规的PID一般为线性控制器,实际输出值和给定值会存在一个偏差,将偏差按比例、积分和微分通过线性组合来构成控制量,最后对被控对象进行控制,故称PID控制器。
图2-1 PID控制器结构图当系统是连续控制时,PID 控制器的输出u(t)与输入e(t)之间会存在比例、积分、微分的关系,用下式表示出来,1()()[()()]tc dide t u t k e t e t dt T T dt=++⎰(2-1) 也可写成常见的传递函数形式:1()(1)()c d i U s K T s E s T s=++ (2-2) 式中,()()()e t r t y t =-,c K 是比例增益,i T 是积分时间,d T 是微分时间。
在计算机控制系统中,也普遍采用PID 控制思想。
此时,调节器的输出与输入之间的关系为:(){()()[()()]}kdc i iT Tu kT K e kT e it e kT e kT T T T ==++--∑ (2-3)其中,c K 、i T 、d T 分别为比例系数、积分时间常数和微分时间常数;T 为采样周期;k 为采样序号,k=0,1,2,…;u(kT)为第k 次采样输出值;e(kT)为第k 次采样的输入偏差值;e(kT -T)为第(K -1)次采样的输入偏差值。
2.2. PID 控制器参数对控制性能的影响PID 控制器各个参数对系统的动态和稳态性能起着不同的作用,这三个参数的取值优劣将直接影响PID 控制系统的控制品质好坏。
2.2.1. 比例作用比例作用就是以比例形式来反应系统的偏差信号e(t),以最快速度来产生控制作用,使偏差逐渐趋于减小。
(1)对动态特性的影响比例控制参数K c 加大,使系统的动作灵敏,速度加快,K c 越大,振荡次数加多,调节时间也越长。
当K c 太大时,系统会趋于不稳定,若K c 太小,又会使系统的动作缓慢。
(2)对稳态特性的影响在系统稳定的情况下,比例系数K c 增大,稳态误差就会减少,以此来提高控制精度,但是加大K c 只是减少,却无法从本质上上消除稳态误差。
2.2.2. 积分作用引入积分作用,主要是为了在稳态状态下,满足被控量对设定值的无静差跟踪,对系统的性能影响主要表现如下:(1)对动态特性的影响积分作用会引起系统的稳定性下降,T i太小,系统将不稳定,T i偏小到一定程度时,系统会出现振荡;T i太大,对系统性能的影响力也会缩减,只有当T i 合适时,才能出现比较理想的过渡特性。
(2)对稳态特性的影响积分作用能够降低系统稳态误差,同时也能提高系统的控制精度,不过,当T i值太大时,积分作用将会变得非常弱,稳态误差e ss也不会紧随减弱了。
2.2.3. 微分作用微分作用常规使用会与比例作用、比例积分作用联合,构成PD控制器或者PID控制器。
微分作用主要改善闭环系统的动态特性和稳定性。
T d偏大时,超调量会较大,调节时间也会较长;T d偏小时,超调量也较大,相应调节时间也会较长。
3.遗传优化算法遗传算法是-类可用于复杂系统优化计算的鲁棒搜索算法,与其他一些优化算法相比,它主要有下述几个恃点:(1) 遗传算法以决策变量的编码作为运算对象。
这种对决策变量的编码处理方式,使得我们在优化计算过程中可以借鉴生物学中染色体和基因等概念,可以模仿自然界中生物的遗传和进化等机理,也使得我们可以方便地应用遗传操作算子。
(2) 遗传算法直接以目标函数值作为搜索信息。
传统优化算法不仅需要利用目标函数值,而且往往需要目标函数的导数值等其他一些辅助信息才能确定搜索方向。
而遗传算法仅使用由目标函数值变换来的适应度函数值,就可确定进一步的搜索方向和搜索范围,无需目标函数的导数值等其他一些辅助信息。
这个特性对很多目标函数是无法或很难求导数的函数,或导数不存在的函数的优化问题,以及组合优化问题等,应用遗传算法时就显得比较方便,因为它避开了函数求导这个障碍。
(3) 遗传算法同时使用多个搜索点的搜索信息。
单个搜索点所提供的搜索信息毕竟不多,所以搜索效率不高,有时甚至使搜索过程陷于局部最优解而停滞不前。
遗传算法从由很多个体所组成的一个初始群体开始最优解的搜索过程,而不是从一个单一的个体开始搜索,这是遗传算法所特有的一种隐含并行性。
(4) 遗传算法使用概率搜索技术。
很多传统的优化算法往往使用的是确定性的搜索方法,而遗传算法属于一种自适应概率搜索技术,其选择、交叉、变异等运算都是以一种概率的方式来进行的,从而增加了其搜索过程的灵活性。
当然,交叉概率和奇异概率等参数也会影响算法的搜索效果和搜索效率,所以如何选择溃传算法的参数在其应用中是一个比较重要的问题。
而另一方面,与其他一些算法相比,遗传算法的鲁棒性又会使得参数对其搜索效果的影响会尽可能地低。
3.1. SGA的基本实现技术基于对自然界中生物遗传与进化机理的模仿,针对不同的问题,很多学者设计了许多不同的编码方法来表示问题的可行解,开发出了许多种不同的遗传算子来模仿不同环境下的生物遗传特性。
这样,由不同的编码方法和不同的遗传算子就构成了各种不同的遗传算法。
但这些遗传算法都有共同的特点,即通过对生物遗传和进化过程中选择、交叉、变异机理的模仿,来完成对问题最忧解的自适应搏索过程。
基于这个共同特点,Goldberg总结出了一种统一的最基本的遗传算法——基本遗传算法(Simple Genetic Algorithms,简称SGA)。
基本遗传算法只使用选择算子、交叉算子和变异算子这三种基本遗传算子,其遗传进化操作过程简单,容易理解,是其他一些遗传算法的雏形和基础,它不仅给各种遗传算法提供了一个基本框架,同时也具有一定的应用价值。
3.2. 编码方法在遗传算法中如何描述问题的可行解,即把一个问题的可行解从其解空间转换到遗传算法所能处理的搜索空间的转换方法称为编码。
编码是应用遗传算法时要解决的首要问题,也是设计遗传算法时的一个关键步骤。
二进制编码方法是遗传算法中最常用的一种编码方法。
假设某一个参数U 的取值范围是[U min , U max ],用- 1 位二进制数n 来表示,则它们的关系如下式(3- 1)所示:min max min ()21lnu U U U =+-- (3-1)上述过程为解码,它的反过程即为编码。
3.3. 适应度函数在研究自然界中生物的遗传和进化现象时,生物学家使用适应度这个术语来度量某个物种对于其生存环境的适应程度。
遗传算法中也使用适应度这个概念来度量群体中各个个体在优化计算中有可能达到或接近于或有助于找到最优解的优良程度。
适应度较高的个体遗传到下一代的概率就较大:而适应度较低的个体遗传到下一代的概率就相对小一些。
度量个体适应度的函数称为适应度函数( Fitness Function)。
3.4. 选择、交叉、变异算子遗传算法使用选择算子来对群体中的个体进行优胜劣汰操作。
最常用的选择算子是基本遗传算法中的比例选择算子。
其基本思想是:各个个体被选中的概率与其适应度大小成E 比。
设群体大小为M ,个体i 的适应度为F ,则个体i 被选中的概率P is 为:1,(1,2,...,)iis Mii F p i M F===∑ (3-2)交叉算子是指对两个相互配对的染色体按某种方式相互交换其部分基因,从而形成两个新的个体。
交叉运算是遗传算法区别于其他进化算法的重要特征,它在遗传算法中起关键作用,是产生新个体的主要办法。