✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,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
⛄ 运行结果
⛄ 参考文献
[1]朱向芬. 基于粒子群算法的混合储能系统容量优化配置[D]. 宁夏大学.
[2]杨国华, 朱向芬, 马玉娟,等. 基于改进粒子群算法的混合储能系统容量优化[J]. 电测与仪表, 2015, 52(23):6.