【控制】基于海鸥算法实现PID参数优化整定附matlab代码

 1 内容介绍

PID控制器广泛应用在电子、自动控制、航空等领域,在工业控制领域占据了重要的地位,但是对于PID控制,主要的问题在于PID的参数整定。目前,PID控制器的参数整定很多都依赖于传统的经验法,经过不断的测试,从而得到一个比较合理的PID参数。最为经典的Z-N法是由ZIEGLER和NICHOL提出用于PID参数的整定,但是该方法存在超调量大、响应时间长等缺点。由于智能时代的到来,很多智能优化算法都开始用于优化PID参数,得到了更好的参数,例如:遗传算法(GA)、细菌觅食算法(BFO)、粒子群算法(PSO)、人工鱼群算法(AFSA)等算法都成功地应用于PID参数整定。通过比较,智能优化算法比传统的经验法效率更高,结果更精确,但是这些智能优化算法也存在容易陷入局部最优以及过早收敛等问题,需要进一步改进。海鸥优化算法(SeagullOptimizationAlgorithm,SOA)是DHIMAN等提出的一种新的智能优化算法,该算法通过模拟海鸥群体的迁徙和攻击行为,具有全局搜索和局部搜索的能力,其中迁徙行为具有全局搜索能力,攻击行为具有局部搜索能力。

1标准海鸥优化算法

海鸥优化算法主要模拟海鸥的迁徙和攻击行为。在迁徙的过程中,每只海鸥的位置不同,从而避免了碰撞事件的发生。在海鸥群体移动的过程中,海鸥会朝着最佳位置的方向进行移动,从而得到最佳的位置。在攻击的过程中,海鸥会做出螺旋形状的运动,使得海鸥可以朝着不同的角度进行攻击,最后计算出海鸥的最终位置。迁移行为和攻击过程如下所述:

​2 PID 控制器的原理 

在模拟控制系统中,PID 控制是最常见的控制 器。传统的 PID 控制器通常由控制器和受控对象组 成,它是一种线性控制器,通过对偏差信号进行比 例、积分以及微分实现对系统的控制。其中,比例环 节反映控制系统的偏差,控制器可以减少产生的偏 差; 积分环节可以消除静差,提高系统的无差度; 微 分环节反映偏差信号的变化趋势,并能在偏差信号变 得太大之前,在系统中引入一个有效的早期修正信 号,从而加快系统的运行速度,减少调节时间。 PID 控制器的优化问题就是确定一组合适的参数 Kp、 Ki、Kd,使得系统的指标达到最优。PID 控制系统如 图 13 所示。

2 仿真代码

clc % 清屏
clear all; % 删除workplace变量
close all; % 关掉显示图形窗口

ts=0.001;
sys=tf([1.05],[6.8e-6 2.47e-3 0.7925]);
dsys=c2d(sys,ts,'z');
[num,den]=tfdata(dsys,'v');
u_1=0.0;u_2=0.0;
y_1=0.0;y_2=0.0;
x=[0,0,0]';
error_1=0;
for k=1:1:100
    time(k)=k*ts;
    kp=0.0409;
    ki=64.3062;
    kd=0;
    rin(k)=1;
    u(k)=kp*x(1)+kd*x(2)+ki*x(3);
    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(k)=rin(k)-yout(k);
    %return of parameters
    u_2=u_1;u_1=u(k);
    y_2=y_1;y_1=yout(k);
    x(1)=error(k);           % Calculating  P
    x(2)=(error(k)-error_1)/ts;   %          D
    x(3)=x(3)+error(k)*ts;       %           I
    error_1=error(k);
 end
 figure(1)
 plot(time,rin,'b',time,yout,'r','LineWidth',3)
 xlabel('time(s)'),ylabel('rin,yout');
 figure(2)
 plot(time,error,'b','LineWidth',3)
 xlabel('time(s)'),ylabel('rin,error');
 

3 运行结果

4 参考文献

[1]许乐, 莫愿斌, 卢彦越. 基于改进海鸥优化算法的PID控制器参数优化[J]. 机床与液压, 2021, 49(16):7.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天天Matlab科研工作室

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

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

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

打赏作者

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

抵扣说明:

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

余额充值