基于多目标粒子群算法的电力系统分布式电源选址定容matlab精品代码

程序名称:基于多目标粒子群算法的电力系统分布式电源选址定容

实现平台:matlab

简介:为更好地解决分布式电源选址定容问题,提出一种改进的多目标粒子群算法。考虑投资成本、网损以及电压稳定性三因素建立了一个三目标的数学模型,并采用上述多目标粒子群算法对模型求解。最后利用 IEEE-69节点系统仿真来验证所提算法在分布式电源选址定容方面的有效性。

具体细节可参考自动化与仪器仪表. 2021,(05)论文《基于多目标规划的分布式电源选址定容研究》

1 含 DG 的配电网优化配置模型

 

 2.基于 AMOPSO 算法的分布式电源优化配置具体步骤

 

 3.选址定容仿真分析

 

 

 部分代码展示


%% 多目标粒子群算法分布式电源定容选址优化规划
tic                                                             %测试时间
format short ;
clc;
clear 
close all
%% 算法初始参数设置
pop=90;                                                         %种群粒子数目
gen=200;                                                         %最大迭代次数
M=4;                                                            %目标函数个数(M-1)
V=68;                                                           %控制变量个数
Xmax=10;                                                        %控制变量约束最大值
Xmin=0;                                                         %控制变量约束最小值
g_best=zeros(gen,V);                                            %全局最优存放位置
pop_num=50;                                                     %保存的最优前沿
lamda=0.5;                                                      %退火常数
%% 初始化种群个体
[pop_x,pop_v]=initial(pop,V,M);
%% 模拟退火粒子群算法
for t=1:gen                                                     %进入主要循环,gen迭代次数
                clear Gbest_value
                clear R
              %%  1.寻找全局最优
                [pbest,pbest_value,k]=gbest_fitness(pop_x,V,M,pop); 
                g_best(t,:)=pbest;
                g_best_value(t,:)=pbest_value;
              %% 1.对各目标函数值进行排序
                for j = 1 : M
                [Gbest_value(:,j),R(:,j)]=sort(g_best_value(:,j));
                end
               %% 2.根据个体排序计算其适应度
               for i = 1 : t
                  for j = 1 : M
                      if R(i,j)>1
                            ex(i,j)=(pop-R(i,j))^2;
                      else 
                            ex(i,j)=k*pop;  
                      end
                  end
               end
               ex=sum(ex');
             %% 3.得到适应度最好的全局最优解
               [Fit,index]=sort(ex');
               %[y_val,index]=min(g_best_value);
               clear Fit;
               gbest=g_best(index,:);
        %% 2.速度更新
               change_v=update_v(t,gen,pop_v,pop_x(:,1:68),g_best,V,pop,pbest);
               pop_v=change_v;
        %% 2.更新位置
               change_x=pop_x(:,1:V)+change_v(:,1:V);
        %% 控制变量约束
            for i = 1 : pop
                for j = 1 : V
            if change_x(i,j)>Xmax
                   change_x(i,j)=randi([0,10],1,1);
            else if change_x(i,j)<Xmin
                   change_x(i,j)=randi([0,10],1,1);
                end
            end
                end
            end
        %% 粒子群速度限制约束
             
        %% 求出各个体的目标函数值
         for i=1:pop
              change_x(i,V+1:V+M)=mokuaihanshu(pop_x(i,:),pop,M,V);%求出各个体的目标函数值
         end
        %% 形成混合种群
         [y1,x1]=size(pop_x);
         [y2,x2]=size(change_x);%注意:此时x1不等于x2
         migle_x(1:y1,:)=pop_x;
         migle_x(y1+1:y1+y2,1:x2)=change_x;
        %% 进行非支配排序
         migle_x = non_domination_sort_mod(migle_x, M, V);
        %% 选择下一代种群
         pop_x = replace_chromosome(migle_x, M, V, pop);
    
    %% 画图输出
  
    Ploss=pop_x(:,V+1)./(10^9);
     Cost=pop_x(:,V+2)./(10^6);
     plot3(Ploss,Cost,pop_x(:,V + 3),'b*');
     xlabel('网损');ylabel('总投资与运行成本');zlabel('负荷节点电压偏差');
    grid on
hold off
title('多目标优化结果')
drawnow
end
 pop_x(1:(V+3))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玉子(代码分享版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值