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

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

实现平台:matlab

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

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

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

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

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

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

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

 3.选址定容仿真分析

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

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

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

 部分代码展示


%% 多目标粒子群算法分布式电源定容选址优化规划
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)

你可能感兴趣的:(matlab,开发语言)