我是靠谱客的博主 直率砖头,最近开发中收集的这篇文章主要介绍智能pid matlab,粒子群算法优化pid参数,照智能算法案例来写的,为啥.....,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

%粒子群优化算法(Particle Swarm Optimization)

%初始格式化

clear all;

clc;

format;

%相关参数的设置

c1=2;%学习因子1

c2=2;%学习因子2

w=0.65;%惯性权重

Dim=3;%粒子维度

SwarmSize=100;种群规模

ObjFun=@PSO_PID;

MaxIter=100;%最大迭代次数

MinFit=0.1;

Vmax=1;

Vmin=-1;

Ub=[300 300 300];

Lb=[0 0 0];

%粒子群初始化

Range=ones(SwarmSize,1)*(Ub-Lb);

Swarm=rand(SwarmSize,Dim).*Range+ones(SwarmSize,1)*Lb;

VStep=rand(SwarmSize,Dim)*(Vmax-Vmin)+Vmin;

fSwarm=zeros(SwarmSize,1);

for i=1:SwarmSize

fSwarm(i,:)=feval(ObjFun,Swarm(i,:));

end

%个体极值和群体极值

[bestf bestindex]=min(fSwarm);

zbest=Swarm(bestindex,:);

gbest=Swarm;

fgbest=fSwarm;

fzbest=bestf;

%迭代寻优

inter=0;

y_fitness=zeros(1,MaxIter);

K_p=zeros(1,MaxIter);

K_i=zeros(1,MaxIter);

K_d=zeros(1,MaxIter);

while((iterMinFit))

for j=1:SwarmSize

%速度更新

VStep(j,:)=w*VSstep(j,:)+c1*rand*(gbest(j,:)-Swarm(j,:))+c2*rand*(zbest-Swarm(j,:));

if VStep(j,:)>Vmax,VStep(j,:)=Vmax;end

if VStep(j,:)

%位置更新

Swarm(j,:)=Swarm(j,:)+VStep(j,:);

for k=1:Dim

if Swarm(j,k)>Ub(k),Swarm(j,k)=Ub(k);end

if Swarm(j,k)

end

%适应度

fSwarm(j,:)=feval(ObjFun,Swarm(j,:));

%个体最优更新

if fSwarm(j)

gbest(j,:)=Swarm(j,:);

end

%群体最优更新

if fSwarm(j)

zbest=Swarm(j,:);

fbest=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)

plot(y_fitness,'LineWidth',2)

title('最优个体适应值','fontsize',18);

xlabel('迭代次数','fontsize',18);ylabel('适应值','fontsize',18);

set(gca,'Fontsize',18);

figure(2)

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);

最后

以上就是直率砖头为你收集整理的智能pid matlab,粒子群算法优化pid参数,照智能算法案例来写的,为啥.....的全部内容,希望文章能够帮你解决智能pid matlab,粒子群算法优化pid参数,照智能算法案例来写的,为啥.....所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部