【微电网优化】基于粒子群算法实现分布式电源的选址和定容附matlab代码
1 简介


2 部分代码
%% 粒子群算法function [Best_pos,Best_score,curve]=PSO(pop,Max_iter,lb,ub,dim,fobj,Vmax,Vmin)%% 参数设置w = 0.9; % 惯性因子c1 = 2; % 加速常数c2 = 2; % 加速常数Dim = dim; % 维数sizepop = pop; % 粒子群规模maxiter = Max_iter; % 最大迭代次数if(max(size(ub)) == 1)ub = ub.*ones(1,dim);lb = lb.*ones(1,dim);endfun = fobj; %适应度函数%% 粒子群初始化Range = ones(sizepop,1)*(ub-lb);pop = rand(sizepop,Dim).*Range + ones(sizepop,1)*lb; % 初始化粒子群V = rand(sizepop,Dim)*(Vmax-Vmin) + Vmin; % 初始化速度fitness = zeros(sizepop,1);for i=1:sizepopfitness(i,:) = fun(pop(i,:)); % 粒子群的适应值end%% 个体极值和群体极值[bestf, bestindex]=min(fitness);zbest=pop(bestindex,:); % 全局最佳gbest=pop; % 个体最佳fitnessgbest=fitness; % 个体最佳适应值fitnesszbest=bestf; % 全局最佳适应值%% 迭代寻优iter = 0;while( (iter < maxiter ))for j=1:sizepop% 速度更新V(j,:) = w*V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));if V(j,:)>VmaxV(j,:)=Vmax;endif V(j,:)V(j,:)=Vmin;end% 位置更新pop(j,:)=pop(j,:)+V(j,:);for k=1:Dimif pop(j,k)>ub(k)pop(j,k)=ub(k);endif pop(j,k)
pop(j,k)=lb(k);endend% 适应值fitness(j,:) =fun(pop(j,:));% 个体最优更新if fitness(j) < fitnessgbest(j)gbest(j,:) = pop(j,:);fitnessgbest(j) = fitness(j);end% 群体最优更新if fitness(j) < fitnesszbestzbest = pop(j,:);fitnesszbest = fitness(j);endenditer = iter+1; % 迭代次数更新curve(iter) = fitnesszbest;end%% 绘图Best_pos = zbest;Best_score = fitnesszbest;end
3 仿真结果


4 参考文献
[1]陈眩姿. 基于粒子群算法的微电网分布式电源优化规划[J]. 电力电子, 2013(3):6.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
