• 大小: 30KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-04
  • 语言: Matlab
  • 标签: matlab  pso  simulate  

资源简介

粒子群算法的 matlab仿真 源码,simulate仿真,附示波仿真图。仅供参考请勿作商业用途

资源截图

代码片段和文件信息

clear
clc
n = 50;           % 粒子群规模
bird_setp  =50;   % 最大迭代次数
dim = 3;          % 维数

c2 =2;        % 加速常数1
c1 =2;        % 加速常数2 
w =0.9;           % 惯性权重 
fitness=0*ones(nbird_setp);                                
                                       %  初始化粒子群
R1 = rand(dim n);
R2 = rand(dim n);
current_fitness =0*ones(n1);
                                 % 初始化群体位置和速度
current_position = 10*(rand(dim n)-.5);
velocity = .3*randn(dim n) ;
local_best_position  = current_position ;
                                 % 个体评估      
for i = 1:n
    current_fitness(i) = tracklsq(current_position(:i));    
end

local_best_fitness  = current_fitness ;
[global_best_fitnessg] = min(local_best_fitness) ;

for i=1:n
    globl_best_position(:i) = local_best_position(:g) ;
end
                                               %  速度更新
velocity = w *velocity + c1*(R1.*(local_best_position-current_position)) + c2*(R2.*(globl_best_position-current_position));

                                               %  群体更新
current_position = current_position + velocity ;
                                               %  群体跟新评估   
%% 主体循环,迭代寻优
iter = 0 ;  
while  ( iter < bird_setp )
iter = iter + 1;

for i = 1:n
current_fitness(i) = tracklsq(current_position(:i)) ;    
end


for i = 1 : n
        if current_fitness(i) < local_best_fitness(i)
           local_best_fitness(i)  = current_fitness(i);  
           local_best_position(:i) = current_position(:i)   ;
        end   
 end

  
 [current_global_best_fitnessg] = min(local_best_fitness);
  
    
if current_global_best_fitness < global_best_fitness
   global_best_fitness = current_global_best_fitness;
   
    for i=1:n
        globl_best_position(:i) = local_best_position(:g);
    end
   
end


 velocity = w *velocity + c1*(R1.*(local_best_position-current_position)) + c2*(R2.*(globl_best_position-current_position));
 current_position = current_position + velocity; 
  
 sprintf(‘The value of interation iter %3.0f ‘ iter );


end
% 结束
                      

            xx=fitness(:50);
            [YI] = min(xx);
            current_position(:I)

               


    

%          
         

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      14694  2008-06-11 20:03  粒子群算法优化pid源码 matlab仿真\html\PSO.html

     文件       2679  2008-06-11 20:03  粒子群算法优化pid源码 matlab仿真\html\PSO.png

     文件       4307  2008-06-11 19:59  粒子群算法优化pid源码 matlab仿真\html\PSO_01.png

     文件       4671  2008-06-11 20:03  粒子群算法优化pid源码 matlab仿真\html\PSO_02.png

     文件      35168  2015-05-17 19:58  粒子群算法优化pid源码 matlab仿真\optsim1.mdl

     文件      29696  2008-01-18 21:25  粒子群算法优化pid源码 matlab仿真\optsim1.mdl.r2006a

     文件       2329  2015-05-17 21:15  粒子群算法优化pid源码 matlab仿真\PSO.m

     文件        590  2015-05-17 21:36  粒子群算法优化pid源码 matlab仿真\tracklsq.m

     目录          0  2015-05-17 20:00  粒子群算法优化pid源码 matlab仿真\html

     目录          0  2015-05-17 21:37  粒子群算法优化pid源码 matlab仿真

----------- ---------  ---------- -----  ----

                94134                    10


评论

共有 条评论