✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

⛄ 内容介绍

本文首先分析了混合储能单元的功率需求和容量需求,结合蓄电池和超级电容器的特性,形成混合储能系统.然后建立以年平均初始投资成本,更换成本和运行和维护成本之和最小为目标,以功率约束,容量约束等综合指标为约束的优化配置模型,采用粒子群优化算法对其进行最优求解,从而实现混合储能单元的优化配置.通过仿真结果表明,混合储能方式较单一蓄电池储能在经济性和可靠性上有较大提高,体现了一定的应用前景.

⛄ 部分代码

%% 清空环境

clc

clear

%% 参数初始化

%粒子群算法中的两个参数

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,:));   %染色体的适应度  %调用funm

    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);

zbest

fitnesszbest

⛄ 运行结果

基于粒子群算法的混合储能系统容量优化附Matlab代码_优化算法

⛄ 参考文献

[1]朱向芬. 基于粒子群算法的混合储能系统容量优化配置[D]. 宁夏大学.

[2]杨国华, 朱向芬, 马玉娟,等. 基于改进粒子群算法的混合储能系统容量优化[J]. 电测与仪表, 2015, 52(23):6.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料