天天看点

【PID优化】基于粒子群和遗传算法PID控制器优化设计含Matlab源码

1 简介

遗传算法是一种模拟自然进化而提出的简单高效的优化组合方法.本 文研究了比例-积分-微分(PID)控制器优化设计的性能指标的选择问题,介绍了遗传算法的基本原理,给出了利用遗传算法进行PID控制器优化设计的步 骤.同时给出了一个用遗传算法进行单环系统PID控制器优化设计的仿真实例.仿真结果表明了遗传算法应用于PID控制器优化设计的可行性和有效性.遗传算 法还克服了其它方法的某些弊端.

2 部分代码

%% 清空环境
clear
clc
%% 参数设置
w = 0.6;      % 惯性因子 
c1 = 2;       % 加速常数
c2 = 2;       % 加速常数
Dim = 3;            % 维数
        % 群体最优更新
        if fSwarm(j) < fzbest
            zbest = Swarm(j,:);
            fzbest = fSwarm(j);
        end
    end 
    iter = iter+1;                      % 迭代次数更新
    y_fitness(1,iter) = fzbest;         % 为绘图做准备
    K_p(1,iter) = zbest(1);
    K_i(1,iter) = zbest(2);
    K_d(1,iter) = zbest(3);
end
%% 绘图输出
figure(1)      % 绘制性能指标ITAE的变化曲线
plot(y_fitness,'LineWidth',2)
title('最优个体适应值','fontsize',18);
xlabel('迭代次数','fontsize',18);ylabel('适应值','fontsize',18);
set(gca,'Fontsize',18);
figure(2)      % 绘制PID控制器参数变化曲线
plot(K_p)
hold on
plot(K_i,'k','LineWidth',3)
plot(K_d,'--r')
title('Kp、Ki、Kd 优化曲线','fontsize',18);
xlabel('迭代次数','fontsize',18);ylabel('参数值','fontsize',18);
set(gca,'Fontsize',18);
legend('Kp','Ki','Kd',1);      

3 仿真结果

【PID优化】基于粒子群和遗传算法PID控制器优化设计含Matlab源码
【PID优化】基于粒子群和遗传算法PID控制器优化设计含Matlab源码

4 参考文献

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

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

继续阅读