【优化求解】基于遗传算法的PID参数优化设计matlab代码

本文介绍了一种利用遗传算法对PID控制器参数进行优化的方法,针对柴油机调速系统进行仿真,结果显示这种方法显著提升了系统的动态性能,证实了遗传算法作为高效寻优工具的实用性。研究还讨论了PID控制策略在工程中的广泛应用和传统PID控制的改进策略,如参数自整定和优化。
摘要由CSDN通过智能技术生成

1 简介

PID调节器是最早发展起来的控制策略之一,遗传算法是一种借鉴生物界自然选择和自然遗传学机理上的迭代自适应概率性搜索算法。本文提出了一种基于遗传算法的PID控制器参数优化设计。遗传算法模仿生物进化的步骤,在优化过程中引入了选择,交叉,变异等算子,选择是从父代种群中将适应度较高的个体选择出来,以优化种群;交叉是从种群中随机地抽取一对个体,并随机地选择多位进行交叉,生成新样本,达到增大搜索空间的目的;变异是为了防止选择和交叉丢失重要的遗传信息,它对个体按位进行操作,以提高GA的搜索效率和全局搜索能力。通过适应度函数来确定寻优方向,与其他一些常规整定方法相比,遗传算法比较简便,整定精度较高。本文用遗传算法对柴油机调速系统的PID参数进行了优化,对该系统进行了仿真,实验结果表明该种算法的有效性,也表明遗传算法是一种简单高效的寻优算法,与传统的寻优方法相比明显地改善了控制系统的动态性能。

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控制算法具有以上多种优点,所以这种算法仍将在现场控制中居于主导地位

随着现代控制理论的建立和不断发展完善,对过程控制提出了新的方法和思路,同日寸也由于生产工艺不断地改进提高,对过程控制也提出了高要求。科研人员在不断探索新方法的同时,也对传统的PID控制的改进做了大量的研究。因为PID控制有其固有的优点,使得PID控制在今后仍会大量使用,如何进一步提高PID控制算法的能力或者依据新的现代控制理论来设计PID控制算法是一个非常吸引人的课题。科研人员在这一领域做的工作主要有以下两方面。

①PID参数自整定。由于受控对象存在着大量不可知因素,如随机扰动、系统时变、敏感误差等,这些不可知因素的作用常会导致受控对象参数的改变。在一个PID反馈控制回路中,受控对象参数的变化就会造成原来的PID参数控制性能的降低,为了克服这个问题人们提出了PID参数自整定,也就是随着受控对象的变化PID调节器自我调整和重新设定PID参数,科研人员根据古典控制理论和现代控制理论提出了许多种PID参数的在线自整定的方法。至今仍有人在这方面继续作研究。PID参数在线自整定方法比较典型的有改进型Ziegler-Nichols临界比例度法、基于过程模型辨识的参数自整定、基于经验的专家法参数自整定、模糊型PID调节器等。

②PID参数优化。PID参数优化是指依据一定的控制目标和给定的生产过程的模型通过理论计算得到最优的PID参数,PID参数优化在PID控制应用之初人们就开始作了大量研究工作,已经提出了许多种方法,如粒子群优化算法,免疫算法,单纯形法,差分进化算法,神经网络算法,遗传算法等。 

2 部分代码

%Increment PID Controller
clear all;
close all;

ts=0.001;
sys=tf(350,[1,45,1]);
dsys=c2d(sys,ts,'z');
[num,den]=tfdata(dsys,'v');

u_1=0.0;u_2=0.0;u_3=0.0;
y_1=0;y_2=0;y_3=0;

x=[0,0,0]';
error_1=0;
error_2=0;
for k=1:1:1000
   time(k)=k*ts;
   
   rin(k)=1.0;
   kp=5;
   ki=0.1;
   kd=15;
   
   du(k)=kp*x(1)+kd*x(2)+ki*x(3);
   u(k)=u_1+du(k);
   
   if u(k)>=10
       u(k)=10;
   end
   if u(k)<=-10
       u(k)=-10;
   end
   yout(k)=-den(2)*y_1-den(3)*y_2+num(2)*u_1+num(3)*u_2;
   
   error=rin(k)-yout(k);
   u_3=u_2;u_2=u_1;u_1=u(k);
   y_3=y_2;y_2=y_1;y_1=yout(k);
   
   x(1)=error-error_1;            %Calculating P
   x(2)=error-2*error_1+error_2;  %Calculating D
   x(3)=error;                    %Calculating I
   
   error_2=error_1;
   error_1=error;
end
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)');ylabel('rin,yout');

3 仿真结果

4 参考文献

[1]陈亚娟. (2008). 基于matlab遗传算法工具箱的pid参数优化研究. 科技信息(26), 2.

 

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值