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

一、主要内容

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

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

二、部分代码

%% 参数初始化%粒子群算法中的两个参数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,:)<Vmin))=Vmin;            %种群更新            pop(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)<popmin(k)                    pop(j,k)=popmin(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);zbestfitnesszbest

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

电力程序小学童

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

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

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

打赏作者

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

抵扣说明:

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

余额充值