基于大爆炸优化算法的PID控制器参数寻优matlab仿真

67 阅读2分钟

1.课题概述

基于大爆炸优化算法的PID控制器参数寻优matlab仿真。对比优化前后的PID控制输出。

 

2.系统仿真结果

1.jpeg

2.jpeg

3.jpeg

4.jpeg  

3.核心程序与模型

版本:MATLAB2022a

`steps=range0;

it=1;

while steps>=range2

    % 输出迭代信息

    it

    % 生成新种群

    for i=1:Npop

        x(:,i)=Goodpid+2*(rand(dim, 1)-0.5).*steps;

        % 确保新个体在有效搜索范围内

ind=find(x(:, i)<vmin);

x(ind, i)=vmin(ind);

ind=find(x(:, i)>vmax);

x(ind, i)=vmax(ind);

    end

    % 计算新种群适应度

fhd   = str2func(Fobj);

fvals = feval(fhd, x);

     % 更新最优个体与最优性能指标

    if min(fvals)<fmin

fmin    = min(fvals);

ind     = find(fvals==min(fvals));

ind     = min(ind);

Goodpid = x(:,ind);

    end

 

steps  = steps-steps*range3;

Nrange = norm(steps);

    it=it+1;

 

kps(it)=Goodpid(1);

kis(it)=Goodpid(2);

kds(it)=Goodpid(3);

 

end

 

 

figure;

plot(kps)

hold on

plot(kis)

hold on

plot(kds)

grid on

legend('kp','ki','kd');

 

% 输出并保存最优PID参数

disp('优化后');

Kp=Goodpid(1)

Ki=Goodpid(2)

Kd=Goodpid(3)

disp('优化前');

Kp0=kps(2)

Ki0=kis(2)

Kd0=kds(2)

 

 

 

save PID.matKp Ki Kd Kp0 Ki0 Kd0`  

4.系统原理简介

       大爆炸优化算法(Big Bang-Big Crunch,BB-BC)是一种受宇宙大爆炸理论启发而提出的全局优化方法。它模仿了宇宙从奇点出发经历快速膨胀(Big Bang)、收缩(Big Crunch)以及再次膨胀等过程,在搜索空间中进行迭代以期找到全局最优解。这种方法特别适用于PID控制器参数的寻优问题,通过寻优使得PID控制器性能指标(如ITAE、ISE、ISSE等)达到最优。

 

       在PID控制器中,其输出u(t)由比例P、积分I和微分D三个部分组成:

 

       u(t) = K_P * e(t) + K_I * ∫e(t)dt + K_D * de(t)/dt

 

       其中,K_P、K_I和K_D分别代表比例增益、积分时间常数和微分时间常数,e(t)是误差信号,即设定值与实际值之差。

 

        大爆炸优化算法可以在全局范围内有效地寻优PID控制器参数,从而提高控制系统的动态性能和稳定性。