資源簡介
用粒子群pso算法優(yōu)化pid控制的參數(shù),matlab源代碼,非常實(shí)用!
代碼片段和文件信息
%%?清空環(huán)境
clear
clc
%%?參數(shù)設(shè)置
w?=?0.6;??????%?慣性因子?
c1?=?2;???????%?加速常數(shù)
c2?=?2;???????%?加速常數(shù)
Dim?=?3;????????????%?維數(shù)
SwarmSize?=?100;????%?粒子群規(guī)模
ObjFun?=?@PSO_PID;??%?待優(yōu)化函數(shù)句柄
MaxIter?=?100;??????%?最大迭代次數(shù)??
MinFit?=?0.1;???????%?最小適應(yīng)值?
Vmax?=?1;
Vmin?=?-1;
Ub?=?[300?300?300];
Lb?=?[0?0?0];
%%?粒子群初始化
????Range?=?ones(SwarmSize1)*(Ub-Lb);
????Swarm?=?rand(SwarmSizeDim).*Range?+?ones(SwarmSize1)*Lb??????%?初始化粒子群
????VStep?=?rand(SwarmSizeDim)*(Vmax-Vmin)?+?Vmin?????????????????%?初始化速度
????fSwarm?=?zeros(SwarmSize1);
for?i=1:SwarmSize
????fSwarm(i:)?=?feval(ObjFunSwarm(i:));?????????????????????????%?粒子群的適應(yīng)值
end
%%?個(gè)體極值和群體極值
[bestf?bestindex]=min(fSwarm);
zbest=Swarm(bestindex:);???%?全局最佳
gbest=Swarm;????????????????%?個(gè)體最佳
fgbest=fSwarm;??????????????%?個(gè)體最佳適應(yīng)值
fzbest=bestf;???????????????%?全局最佳適應(yīng)值
%%?迭代尋優(yōu)
iter?=?0;
y_fitness?=?zeros(1MaxIter);???%?預(yù)先產(chǎn)生4個(gè)空矩陣
K_p?=?zeros(1MaxIter);?????????
K_i?=?zeros(1MaxIter);
K_d?=?zeros(1MaxIter);
while(?(iter??Mi
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????29558??2010-08-22?18:38??pso優(yōu)化\PID_Model.mdl
?????文件???????2589??2010-08-23?13:03??pso優(yōu)化\PSO.m
?????文件????????174??2010-08-22?18:38??pso優(yōu)化\PSO_PID.m
?????目錄??????????0??2016-05-05?10:18??pso優(yōu)化
-----------?---------??----------?-----??----
????????????????32321????????????????????4
評論
共有 條評論