收藏 分享(赏)

2013年单纯形PID控制寻优实现(有代码超详细).doc

上传人:dzzj200808 文档编号:2972153 上传时间:2018-10-01 格式:DOC 页数:16 大小:416.50KB
下载 相关 举报
2013年单纯形PID控制寻优实现(有代码超详细).doc_第1页
第1页 / 共16页
2013年单纯形PID控制寻优实现(有代码超详细).doc_第2页
第2页 / 共16页
2013年单纯形PID控制寻优实现(有代码超详细).doc_第3页
第3页 / 共16页
2013年单纯形PID控制寻优实现(有代码超详细).doc_第4页
第4页 / 共16页
2013年单纯形PID控制寻优实现(有代码超详细).doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、本文由加药装置提供者 独家撰写,转载注明出处。基于单纯形法的 PID 控制器的分析与最优设计摘要:PID 参数整定与优化一直是自动控制领域研究的重要问题以二次型性能指标为目标函数,采用单纯形寻优法整定 PID 参数,使目标函数为最小就可以达到控制系统优化的目的,即实现离散 PID 控制器的最优设计,文中给出了优化设计的过程,使其具有通用的意义最后,仿真结果和分析表明了单纯形法在 PID 控制器参数优化算法中是适用的,且利用此方法设计的控制器具有优良的有效性,改善了控制系统的动态性能。关键词:单纯形优化算法 PID 控制器 二次型指标 参数优化1 引言PID 控制器具有结构简单、实现方便、鲁棒

2、性强、效果满意的特点,并且人们对其原理和物理意义等都比较熟悉,已经建立了比较完善的理论体系,尤其在工业现场控制过程中应用尤为普遍,特别适用于对象动态特性未完全掌握、得不到精确数学模型、难以用控制理论来进行分析和综合的场合调查结果表明: 在当今使用的控制方式中,PID 型占 84. 5% ,优化 PID 型占 68%,现代控制型占有 15%,手动控制型 66%,人工智能(AI)型占 0.6% 。如果把 PID 型和优化 PID 型二者加起来,则占 90% 以上,本文由加药装置提供者 独家撰写,转载注明出处。这说明 PID 控制方式占绝大多数, 如果把手动控制型再与上述两种加在一起,则占 97.5

3、% , 这说明古典控制占绝大多数。就连科学技术高度发达的日本,PID 控制的使用率也高达 84.5%。这是由于理论分析及实际运行经验已经证明了 PID 调节器对于相当多的工业过程能够起到较为满足的控制效果。它结构简单、适用面广、鲁棒性强、参数易于调整、在实际中容易被理解和实现、在长期应用中己积累了丰富的经验。特别在工业过程中,由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大的代价进行模型辨识, 但往往不能达到预期的效果, 所以不论常规调节仪表还是数字智能仪表都广泛采用这种调节方式。正本文由加药装置提供者 独家撰写,转载注明出处。是 PID 控制

4、算法具有以上多种优点, 所以这种算法仍将在现场控制中居于主导地位。而且由于工业现场计算机控制的普遍应用,要求对离散控制器的设计越来越多基于此种状况,就有必要设计一种通用的控制器来满足不同的现场要求而Matlab是一种功能强、兼容性好、执行速度快、效率高的结构性程序设计语言,是目前最为常用的开放式程序设计语言之一,又具有和其他应用软件接口的功能我们选用Matlab语言作为控制器参数设计的平台。另外,用参数寻优方法设计离散PID控制器有很多方法,例如:最速下降法、共轭梯度法和单纯形法但是以梯度为基础的多变量寻优方法,都要求计算目标函数Q(口)的梯度,而实际问题中往往得不到其梯度的形式因此,采用这种

5、方法寻优时,只能用近似的方法计算梯度的值这样会产生很大的误差,计算量也很大为了避免计算梯度,产生了许多只计算目标函数的寻优方法,即模式寻优法所谓模式寻优法,就是直接依据目标函数的信息来确定寻优方向的方法而其中单纯形法的理论比较成熟,所以本文采用此方法单纯形法利用单纯形的顶点计算目标函数值,按一定规则进行探索性搜索,并对搜索区间的单纯形顶点的函数值进行比较,判断目标函数的变化趋势,确定有利的搜索方向和步长2 PID 控制器2.1 PID控制器基本原理PID是工业控制中应用最广泛、技术最成熟的一种控制方法,系统主要本文由加药装置提供者 独家撰写,转载注明出处。由被控对象和PID控制器两部分组成。

6、常规的PID一般为线性控制器,实际输出值和给定值会存在一个偏差,将偏差按比例、积分和微分通过线性组合来构成控制量,最后对被控对象进行控制,故称PID控制器。其基本控制原理框图如图2.1所示。比例积分微分被控对象+-R e图2.1 PID控制原理框图PID控制器是一种线性控制器,它根据给定值 与实际输出值 构成控()rt()yt制偏差:(2-1)()()()etrtyt将偏差进行比例、积分、微分运算并通过一定规律的线性组合构成控制量对被控量进行控制,满足:()ut(2-2)()()()()etpIDdutKetetK式中 是比例系数, 是积分系数, 是微分系数。pKITpT将PID算法离散化就得

7、到数字PID控制算法,分为位置式PID和增量式PID两种,本设计采用增量式PID控制算法,由式(5-2)得:(2-3)0()()()()1)kpIDiukKeeKek根据递推原理得到:本文由加药装置提供者 独家撰写,转载注明出处。(2-4)10(1)()()(1)(2)kpIDiukKekeKek将(5-3)式减去(5-4)式得:(2-5)() )(2)(1(2)DDDpI pKKukTekekekTT式中T为采样周期。2.2 PID 控制器参数对控制性能的影响2.2.1、比例系数Kp对系统性能的影响(1)对系统的动态性能影响:Kp加大,将使系统响应速度加快,Kp偏大时,系统振荡次数增多,调

8、节时间加长;Kp太小又会使系统的响应速度缓慢。Kp的选择以输出响应产生4:1衰减过程为宜。(2)对系统的稳态性能影响:在系统稳定的前提下,加大Kp可以减少稳态误差,但不能消除稳态误差。因此Kp的整定主要依据系统的动态性能。2.2.2、积分时间TI对系统性能的影响积分控制通常和比例控制或比例微分控制联合作用,构成PI控制或PID控制。(1)对系统的动态性能影响:积分控制通常影响系统的稳定性。TI太小,系统可能不稳定,且振荡次数较多;TI太大,对系统的影响将削弱;当TI较适合时,系统的过渡过程特性比较理想。(2)对系统的稳态性能影响:积分控制有助于消除系统稳态误差,提高系统的控制精度,但若TI太大

9、,积分作用太弱,则不能减少余差。3.3.3、微分时间TD对系统性能的影响积分控制通常和比例控制或比例积分控制联合作用,构成PD控制或PID控制。本文由加药装置提供者 独家撰写,转载注明出处。(1)对系统的动态性能影响:微分时间TD的增加即微分作用的增加可以改善系统的动态特性,如减少超调量,缩短调节时间等。适当加大比例控制,可以减少稳态误差,提高控制精度。但TD值偏大或偏小都会适得其反。另外微分作用有可能放大系统的噪声,降低系统的抗干扰能力。(2)对系统的稳态性能影响:微分环节的加入,可以在误差出现或变化瞬间,按偏差变化的趋向进行控制。它引进一个早期的修正作用,有助于增加系统的稳定性。PID控

10、制器的参数必须根据工程问题的具体要求来考虑。在工业过程控制中,通常要保证闭环系统稳定,对给定量的变化能迅速跟踪,超调量小。在不同干扰下输出应能保持在给定值附近,控制量尽可能地小,在系统和环境参数发生变化时控制应保持稳定。一般来说,要同时满足这些要求是很难做到的,必须根据系统的具体情况,满足主要的性能指标,同时兼顾其它方面的要求。在选择采样周期T时,通常都选择T远远小于系统的时间常数。因此,PID参数的整定可以按模拟控制器的方法来进行。3 单纯形算法单纯形法是一种不必计算目标函数的梯度即可直接寻优的方法。在很多的实际问题中,往往目标函数不容易以明确的形式表达出来,这样单纯形法的优点便凸显出来,使

11、之在寻优中得到比较广泛的应用。单纯形是指空间中最简单的图形,对于n元函数,它由n+1个点组成的多面体。寻优时计算单纯形顶点的函数值,加以比较,判断目标函数的变化趋势,确定出有利的搜索方向和步长。本文由加药装置提供者 独家撰写,转载注明出处。求得一个新点以后,把原来的单纯形中的函数的最大值点(称为最坏点)去掉,由n个点加上新的点又形成一个单纯形。再求得这个单纯形顶点处的函数值,加以比较,不断地重复上述过程,使单纯形往目标函数极小点处移动。控制器参数寻优中常用的是爬山法中的单纯形法。其思想是:在n维空间中取(n+1)个点构成初始单纯形,比较这(n+1)个点处目标函数值(二次型性能指标函数, )的

12、大小,丢弃最坏的点 (函数值最大的点),代之220)(kJeuk以新的点,构成新的单纯形,反复迭代,使其顶点处的函数值逐步下降,顶点逐步逼近目标函数的最小点。若要求一个函数的最大点(或最小点),则可先计算若干点处的函数值,进行比较,并根据它们的大小关系确定函数的变化趋势作为搜索的参考方向,然后按参考方向搜索直到找到最小值(或最大值)为止。我们在后面的章节中还会有相关的介绍。3.1 目标函数的选取在参数最优化的问题中要涉及性能指标函数,性能指标函数是被寻参数的函数,称为目标函数。选择不同的目标函数的出发点是使它即能比较明确的反映系统的品质,又便于计算。当然选择不同的目标函数,即使对于同一系统,寻

13、优最后得到的优化参数也是会有所不同的。对于本文所描述的控制系统,选取二次型性能指标作为单纯形优化算法的目标函数。当目标函数目的在于使终端误差、控制过程中的偏差和控制能量综合起来比较小时,目标函数常常采用二次型性能指标函数,即:(3.1) 220()()kJeuk本文由加药装置提供者 独家撰写,转载注明出处。其中 为常数,取值范围为 。013.2 单纯形原理以二元函数为例,说明搜索目标函数极小值点的过程。 2x1x1x20c85c06图 3.1 单纯形法寻优过程如图 3.1 画出目标函数 的等高线族,设由 1,2,3 三点组成的三fXc角形为初始单纯形,计算三点的目标函数值分别为 、 、 ,比

14、较它们的大小,ff得出 。因此, 1 点是最坏点,2 点是次坏点,3 点是最好点,分别记123ff为 , , 。作 1 点的对称点(称为反射点)4,舍去 1 点,得到HXGL2,3,4 三点组成的新的单纯形。容易看出 2 点又是最坏点,作其反射点 5 并和 3,4 两点共同构成新的单纯形,比较它们的函数值大小舍去最坏点 3,由其反射点 6 和 4,5 两点再构成新的单纯形。如此反复,使单纯形往最小的点移动,最后可以得到收敛的极小值点。一般来说,沿最坏点的对称方向搜索最为有利。因此,需要计算反射点,对于二维的情况:RX位于 , 的连线上, 是 和 的中点,因此有HCCXGL1122HRX(3.2

15、) 从而得; (3.3)RGL本文由加药装置提供者 独家撰写,转载注明出处。或2iRiGiLiHiGiLiHxXxn(3.4) 式子中 ,坐标 。n1,对于 n 维的情况有02niRijiHixx1,2in(3.5)当然为了使搜索过程加快,往往需要调整反射点,就是在射线上的 的两RX边,找出比 值更小的点。对于这个问题可以分以下两点来讨论:Rf(1)当 说明反射点前进的太远了,应该予以压缩,在上图中所示求G出压缩点: 。式中压缩因子 为 0 到1SHRHHRXXX1 之间的正数,但是不能取 0.5,因为当 为 0.5 时, 和 Xs 重合,将降低单C纯形的维数。求出压缩点的函数值 ,若 ,说

16、明有所改善,应保留压缩SfGf点 Xs,去掉最坏点 ,组成新的单纯形。若 ,由于 和 都无明显HXSSfR的改善,说明单纯形太大,应该将单纯形以 Xl 为中心进行收缩,使其他的 n 个点向它收缩 ,即 122iLi1,in(2)当 时,说明反射点在该方向上前进的不过,应该再前进一些RGf(称为扩张) ,如上图的点 ,满足EX式中 为扩张因子,一般取1EHRHHRX。1.2求出扩张点的函数值 ,如果 说明扩张有效,用 代替 组成新EfERfEXH的单纯形,否则当 时,表明扩张无效,应该以 代替 组成新的单纯RR形。对于以上几种情况,都组成了新的单纯形,接着还应该在这 个点中找出1n本文由加药装置

17、提供者 独家撰写,转载注明出处。最坏的点,次坏的点,最好的点,然后取出新的反射点,重复上述的过程。这种寻优方法的收敛条件,对每步的单纯形按下式判别:HLf(3.6)其中 是精度指标,上式关系成立时,认为 就是最好的点,否则,应求 LX反射点。再继续去求反射点。4 被控对象建模已知被控对象的传递函数模型为:(4-1()0)Gs1)采样周期 T=1s,要求阶跃响应超调量 。利用 MATLAB/Simulink20%搭建系统仿真模型。其中离散 PID 控制器的仿真模型如图 4.1 所示图 4.1离散 PID 控制系统的仿真模型如图 4.2 所示本文由加药装置提供者 独家撰写,转载注明出处。图 4

18、.2对于 PID 控制器,给定如下二次型性能指标函数:(4-2)220()kkJeu( )其中 为常数,取值范围为 ,在 Simulink 环境下的 PID 控制系统总1模型为图 4.3 所示图 4.3文件保存为 pidcontrol.mdl,Out1 输出目标函数,同时输出被控量和控制量波形。5 仿真结果分析本文由加药装置提供者 独家撰写,转载注明出处。二次型性能指标的常数 的取值范围为 ,首先取 =0.8。设置控0,1制系统 Simulink 模型的运行时间为 100。给定阶跃信号,最后获得的优化PID 整定结果为 Kp=0.3024,K i=0,K d=1.0094,性能指标 J=5.

19、3465。得仿真控制信号的波形和响应曲线如下图 5.1 和图 5.2,为了说明优越性,选取一些参数进行对比如下个图,并列表对比各个性能值如表 5.1.0 10 20 30 40 50 60 70 80 90 10000.20.40.60.811.21.40 10 20 30 40 50 60 70 80 90 100-0.200.20.40.60.811.2图 5.1 单纯形法优化的响应曲线 图 5.2 单纯形法优化的控制信号波形0 20 40 60 80 100 12000.20.40.60.811.21.40 20 40 60 80 100 120-0.200.20.40.60.811.2

20、图 5.3 对比数据 1 响应曲线 图 5.4 对比数据 1 控制信号波形本文由加药装置提供者 独家撰写,转载注明出处。0 10 20 30 40 50 60 70 80 90 10000.20.40.60.811.21.40 10 20 30 40 50 60 70 80 90 100-0.200.20.40.60.811.21.4图 5.5 对比数据 2 响应曲线 图 5.6 对比数据 2 控制信号波形参数指标 对比 1 对比 2 单纯形Kp 0.2877 0.2675 0.3024Ki 0 0 0Kd 0.7722 0.8329 1.0094调节时间 50s 41s 37s控制信号峰值

21、 1.0611 1.3118 1.1004响应曲线峰值 1.2024 1.1711 1.1688稳态值 1 1 1响应曲线超调量 20.24% 17.11% 16.88%最小适应值 J 5.4163 5.6213 5.3465表 5.1通过比较可知单纯形算法所得系统的性能较为优越。本文由加药装置提供者 独家撰写,转载注明出处。6. 总结本次作业在二次型性能指标 J 为目标函数,通过单纯形算法,对控制对象进行 PID 参数整定,对 PID 系数进行了优化。利用优化结果进行了系统仿真,分析了控制器输出响应与系统动态响应。对不同参数 kp,ki,kd 进行了对比分析,得出结论。单纯形算法可以得到优

22、化的 PID 控制器参数,使系统有较好的动态性能。7 参考文献1 关守平.计算机控制理论与设计M.沈阳:东北大学出版社,2009,49:552 刘文定.过程控制系统的 MATLAB 仿真M.北京:机械工业出版社,2009,207:2253 薛定宇基于 MATLABSimulink 的系统仿真技术与应用清华大学出版社,20024 Kennedy JF, Eberhart RC, Shi Y. Swarm intelligence. San Francisco, CA, USA: Morgan Kaufmann Publications; 2001.5 王伟,于军琪. 基于单纯形法的最优 PID

23、控制器设计J. 装备制造技术,2009(6):7778.6 The MathWorks Inc. Simulink Design Optimization Users Guide, 2010.本文由加药装置提供者 独家撰写,转载注明出处。附录Simulink 调用程序Function j=PIDJ(t) %获取在给定次参数值下运行 100 秒的二次型性能指标值assignin(base,kp,t(1);%将初始值赋给 pid 控制器参数assignin(base,ki,t(2); assignin(base,kd,t(3);t_time,x_state,y_out=sim(pidcontro

24、l,0,100);%调用 pid 控制系统,运行 100 秒j=y_out(end,1);%取最后一个一值即在这次参数值下运行 100 秒的二次型性能指标值单纯形程序clear all;%清空环境clc;m=3;%构造正规单纯形x0=0.5,0,5h=0.01;q=h*(sqrt(m+1)-1)/(m*sqrt(2);p=h*(sqrt(m+1)+m-1)/(m*sqrt(2);for i=1:mZ(i)=q; endX1=x0;本文由加药装置提供者 独家撰写,转载注明出处。for j=2:m+1;X1=X1;Z+x0;X1(j,j-1)=p+x0(j-1);endX=X1;%最后得四组初始

25、数据eps=1.0e-1;alpha=1.2;sita=0.5;gama=2;beta=0.3;%反射系数,扩展系数,压缩系数,允许误差选取N=size(X);n=N(2);FX=zeros(1,n);while 1% 在这初值情况下的所有性能指标值赋给 FXfor i=1:n FX(i)=PIDJ(X(:,i); endXS,IX=sort(FX);%将单纯形的定点按目标函数值的大小重新编号Xsorted=X(:,IX);%排序后的编号px=sum(Xsorted(:,1:(n-1),2)/(n-1);%单纯形的中心Fpx=PIDJ(px);SumF=0;for i=1:n %取值SumF=

26、SumF+(FX(IX(i)-Fpx)2;endSumF=sqrt(SumF/n);if SumF=eps %精度判断x=Xsorted(:,1); %取最好值break;elsex2=px+alpha*(px-Xsorted(:,n);%将中心点想单纯形外反射fx2=PIDJ(x2);if fx2XS(1)%比较性能值(目标函数大小)判断是否替换x3=px+gama*(x2-px);fx3=PIDJ(x3);if fx3XS(1)Xsorted(:,n)=x3;X=Xsorted;continue;elseXsorted(:,n)=x2;X=Xsorted;continue;endelsei

27、f fx2XS(n-1)Xsorted(:,n)=x2;X=Xsorted;本文由加药装置提供者 独家撰写,转载注明出处。continue;elseif fx2XS(n)Xsorted(:,n)=x2;endx4=px+beta*(Xsorted(:,n)-px);%中心点的压缩fx4=PIDJ(x4);FNnew=PIDJ(Xsorted); if fx4FNnew Xsorted(:,n)=x4;X=Xsorted;continue;elsex0=Xsorted(:,1);for j=1:nXsorted(:,j)=x0+sita*(Xsorted(:,j)-x0);endendendendendX=Xsorted;endmin=PIDJ(x);%得到的最小目标函数值kp=x(1);ki=x(2);kd=x(3);%最后得到的最优参数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报