目录

 主要内容   

 部分程序   

下载链接 


 主要内容   

为了调高风光互补发电储能系统的经济性,减少其运行费用,研究风光互补发电储能系统的容量优化配置模型,探讨粒子群算法的改进及混合储能容量优化方法。首先通过对全生命周期费用静态模型的介绍,利用蓄电池和超级电容器作为风光互补系统混合储能装置,以其全生命周期费用最小为目标,以系统的缺电率等运行指标为约束条件,建立了一种混合储能系统容量优化配置模型,其次,通过优化不对称加速因子进而改进了粒子群算法,最后利用算例在 Matlab 中进行了仿真与求解,结果表明,该方法不仅优化了蓄电池的工作状态,降低了储能系统的全生命周期费用,而且加快了收敛速度。

Matlab|基于改进粒子群算法的混合储能系统容量优化-LMLPHP

模型的建立风光互补发电系统中,将蓄电池-超级电容器混合作为储能装置,系统构成如图 1 所示,它由风力发电机组、光伏阵列、蓄电池、超级电容器、变流器、负载等组成。

Matlab|基于改进粒子群算法的混合储能系统容量优化-LMLPHP

Matlab|基于改进粒子群算法的混合储能系统容量优化-LMLPHP

Matlab|基于改进粒子群算法的混合储能系统容量优化-LMLPHP

Matlab|基于改进粒子群算法的混合储能系统容量优化-LMLPHP

 部分程序   

%% 参数初始化
%粒子群算法中的两个参数
c1 = 1.49445;
c2 = 1.49445;
​
maxgen=400;    %进化次数  
sizepop=100;    %种群规模
Vmax=10;      %速度最大值
Vmin=-10;     %速度最小值
popmax=[49060 9847457]; %粒子最大值
popmin=[1400 295198];   %粒子最小值 
​
​
    %% 产生初始粒子和速度
    for i=1:sizepop
        %随机产生一个种群
        pop(i,1)=(49060-1400)*rand+1400;    %初始种群
        pop(i,2)=(9847457-295198)*rand+295198;
        V(i,:)=0.5*rands(1,2);  %初始化速度
        %计算适应度
        fitness(i)=funm(pop(i,:));   %染色体的适应度
    end
​
    %% 个体极值和群体极值
    [bestfitness bestindex]=min(fitness); %找最小适应度
    zbest=pop(bestindex,:);   %全局最佳
    gbest=pop;    %个体最佳 
    fitnessgbest=fitness;   %个体最佳适应度值
    fitnesszbest=bestfitness;   %全局最佳适应度值
​
    %% 迭代寻优
    for i=1:maxgen
    
        for j=1:sizepop
        
            %计算权重
            weight=1;
            weight=0.9+(0.9-0.4)*exp(-20*(i^6)/(maxgen^6));
            %计算学习因子
            %速度更新
            V(j,:) = weight*V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));
            V(j,find(V(j,:)>Vmax))=Vmax;
            V(j,find(V(j,:):)=pop(j,:)+V(j,:);
            for k=1:2
                if pop(j,k)>popmax(k)
                    pop(j,k)=popmax(k);
                end
            end
            for k=1:2
                if pop(j,k)end
            end
        
            %适应度值
            fitness(j)=funm(pop(j,:)); 
         
        end
        
        for j=1:sizepop
​
            %个体最优更新
            if fitness(j) < fitnessgbest(j)
                gbest(j,:) = pop(j,:);
                fitnessgbest(j) = fitness(j);
            end
​
            %群体最优更新
            if fitness(j) < fitnesszbest
                zbest = pop(j,:);
                fitnesszbest = fitness(j);
            end
        end 
        yy(i)=fitnesszbest;    %保存下每一代的最优值
​
    end
%% 结果分析
plot(yy,'k')
title('最优个体适应度','fontsize',12);
xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);
zbest
fitnesszbest

下载链接 

03-19 08:21