基于粒子群优化算法的分布式电源优化调度实现配电网稳定运行(Matlab代码实现)

欢迎来到本博客❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

本文目录如下:

目录

1 概述

2 运行结果

3 Matlab代码及数据

4 参考文献


1 概述

随着社会经济的快速发展,化石能源被无节制的开采与使用,能源紧缺以及环境污染问题愈发严重,气候变化加剧,恶劣天气现象频繁发生。为了有效缓解能源和环境问题,新能源技术例如风能、太阳能以及潮汐能等,目前被广泛使用。分布式能源是新能源发展的重要方向,具有清洁、节能环保和高效灵活的特点,并且具有经济性。现如今,分布式电源在配电网中的利用率越来越高,并网后会给配电网的安全运行造成不同程度的影响,故含分布式电源配电网的优化运行问题亟待解决。

2 运行结果

 

部分代码:

% k:初始为0.6(k belongs to [0.1,1.0]),速率和x的关系(V = kX)
% wV:初始为1(wV best belongs to [0.8,1.2]),速率更新公式中速度前面的弹性系数
% wP:初始为1,种群更新公式中速度前面的弹性系数
% v:初始为5,SVM Cross Validation参数
% popcmax:初始为100,SVM 参数c的变化的最大值.
% popcmin:初始为0.1,SVM 参数c的变化的最小值.
% popgmax:初始为1000,SVM 参数g的变化的最大值.
% popgmin:初始为0.01,SVM 参数c的变化的最小值.

Vcmax = pso_option.k*pso_option.popcmax;
Vcmin = -Vcmax ;
Vgmax = pso_option.k*pso_option.popgmax;
Vgmin = -Vgmax ;

eps = 10^(-5);

% train_1 = train(1:100,1);
% train_label1 = train_label(1:100);

% train_2 = train(31:40,1:9);
% train_label2 = train_label(31:40);

%% 产生初始粒子和速度
for i=1:pso_option.sizepop
    
    % 随机产生种群和速度
    pop(i,1) = (pso_option.popcmax-pso_option.popcmin)*rand+pso_option.popcmin;  
    pop(i,2) = (pso_option.popgmax-pso_option.popgmin)*rand+pso_option.popgmin;
    V(i,1)=Vcmax*rands(1,1);  
    V(i,2)=Vgmax*rands(1,1);
    
    % 计算初始适应度
    
    fitness(i)=myfunc_fit1(pop(i,:));
    
%     [traini1,a1,b1]=svmpredict(train_label1,train_1,model);
%     [traini2,a2,b2]=svmpredict(train_label2,train_2,model);
%     fitness(i)= 0.25*mse(traini1-train_label1) + 0.75*mse(traini2-train_label2);
end

% 找极值和极值点
[global_fitness bestindex]=min(fitness); % 全局极值
local_fitness=fitness;   % 个体极值初始化

global_x=pop(bestindex,:);   % 全局极值点
local_x=pop;    % 个体极值点初始化

% 每一代种群的平均适应度
avgfitness_gen = zeros(1,pso_option.maxgen); 

%% 迭代寻优
for i=1:pso_option.maxgen
    
    for j=1:pso_option.sizepop
        
        %速度更新        
        V(j,:) = pso_option.wV*V(j,:) + pso_option.c1*rand*(local_x(j,:) - pop(j,:)) + pso_option.c2*rand*(global_x - pop(j,:));
        if V(j,1) > Vcmax
            V(j,1) = Vcmax;
        end
        if V(j,1) < Vcmin
            V(j,1) = Vcmin;
        end
        if V(j,2) > Vgmax
            V(j,2) = Vgmax;
        end
        if V(j,2) < Vgmin
            V(j,2) = Vgmin;
        end

3 Matlab代码及数据

4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]袁玉松. 计及分布式电源的配电网优化运行策略研究[D].湖北民族大学,2020.DOI:10.27764/d.cnki.ghbmz.2020.000148.

你可能感兴趣的:(电力系统,matlab,算法,分布式)