自学内容网 自学内容网

选址定容!基于改进多目标粒子群算法的配电网储能选址定容程序代码!

前言

分布式电源的出力具有不确定性,易受环境因素的影响,因此其大量接入将对配电网的安全稳定运行带来很大影响。储能系统具有快速能量响应能力,能够在一定程度上平抑分布式电源带来的不利影响。储能系统接入位置与其容量的不同对其平抑效果的影响很大,因此其接入位置的选择与容量的确定是亟需解决的一个问题。

储能系统选址定容优化模型

目标函数

配电网储能选址定容受诸多因素的影响,是一个多目标优化问题。分布式电源大量接入配电网后,将使其电能质量恶化,其中电压波动问题愈加突出,并加剧系统负荷波动,而储能系统能够在一定程度上改善这些不利影响。同时由于储能系统的成本相对较高,在配置时其容量也是一个不得不考虑的问题。因此,程序综合考虑储能系统带来的效益以及储能系统的成本,选取以下3个指标作为目标函数。

1)节点电压波动。节点电压是表征系统稳定性以及电能质量的重要指标之一。系统中各节点电压均应保持在一定水平,同时其波动也应维持在较小水平。接入分布式电源后,节点电压水平有了一定程度的提升,但其波动却加剧。

式中:Nbus为系统节点个数;T为考察时刻数;Vij为i节点j时刻的电压值;`Vi为i节点在考察时间内的电压平均值。

2)负荷波动。配电网中接入分布式电源后,由于其出力的不确定性将使系统负荷波动加剧,对发电企业以及用户造成不利影响。储能系统具有快速能量吞吐能力,能够对系统负荷波动进行平抑。

式中:Ps(i)为i时刻电网输入功率;`P为考察时间内电网输入功率的平均值。

3)储能系统容量。在考虑储能系统效益的同时也应考虑其成本,选取储能系统的总容量作为目标函数。以考察时间内储能系统的最大充/放电能量作为其额定容量。

式中:t0为最大充电或放电开始时刻;t0+nΔt为最大充/放电结束时刻:Pstorej(i)为第j个储能系统i时刻的充/放电功率;Δt为两时刻之间的时间间隔;Nstore为储能系统的个数。

综合考虑系统节点电压波动、负荷波动和储能系统容量,储能选址定容多目标优化函数如下:

进多目标粒子群算法

在PSO算法中,惯性权重w的取值对其收敛性能有重要影响。常用的w取值方法大多是随着迭代次数的递增而线性或非线性的递减,这种方法没有考虑迭代过程中粒子的特性,w的取值缺乏指导。

粒子位置向量与种群全局最优解的差值可以体现粒子与种群最优粒子的差距程度。当其值较大时表示当前粒子与种群最优粒子差距较大,此时w的取值也应较大,使得该粒子具有较好的全局搜索能力;而当其值较小时则表示其与种群最优粒子差距较小,此时应使其具有较好的局部搜索能力,w的取值也应较小。

本文将遗传算法中的交叉变异操作引入粒子群算法中,对粒子的位置向量进行交叉变异,用以提高种群的多样性。以粒子位置向量与种群全局最优解的差值X作为交叉变异的依据,具

体步骤为:

1)确定差值X的阀值瓦Xmin、交叉率Pc和变异率Pm。

2)判断i粒子Xi的大小,若置Xi<Xmin,则对i粒子进行交叉变异,否则转至步骤5)。

3)为i粒子的每维位置分量选取[0,1]的随机数饧,若rid,rid<pm,则对i粒子的第d维位置分量进行初始化操作。

4)变异后的粒子,再对其位置向量进行交叉操作,若饧rid<pm,则对其位置向量的第d维进行交叉,交叉对象为种群全局最优解,操作方法如下图所示。

5)交叉变异结束,即

式中:xmin为粒子位置变量的最小值;r为[0,1]的随机数。

基于动态密集距离的非劣解集更新

在进行多目标求解时,每次迭代后都要对非劣解集进行更新。为保持Pareto解集的规模以及解分布的均匀性,需要对Pareto解“择优”选取,密集距离用以表征粒子与其周围粒子之间的密集程度,可以用来描述解的均匀性。如下图所示。

程序采用“逐一去除”法进行非劣解的更新,即按密集距离排序后,去除密集距离最小的解,再计算剩余Pareto解的密集距离,按密集距离排序后再去除密集距离最小的解,循环计算,直至剩余Pareto解的个数为N。

最优解选取

IMOPSO算法的最终优化结果是一组Pareto解,决策者需要根据偏好信息从中选出最优解,其实质上是一个多属性决策问题。本文采用基于信息熵的TOPSIS法来进行最优解的选取。

序数偏好法,其实质是通过计算备选方案与理想方案、负理想方案之间的距离来进行决策,使所选方案与理想方案的距离最小,与负理想方案的距离最大。

采用改进多目标粒子群算法求解配电网储能系统多目标选址定容问题的流程如下图所示。

程序介绍

以系统节点电压波动、负荷波动以及储能系统总容量为目标建立了储能选址定容优化模型。求解过程中提出了一种改进多目标粒子群算法(IMOPSO)。该算法根据粒子与种群最优粒子的距离来指导惯性权重的取值,使得各粒子的惯性权重可以自适应调整,并在二者距离较小时引入交叉变异操作,避免陷入局部最优解,同时采用动态密集距离排序来更新非劣解集并指导种群全局最优解的选取,在保持解集规模的同时使解的分布更均匀。为避免决策者偏好对最终结果的影响,采用基于信息熵的序数偏好法从最优Pareto解集中选取储能的最优接入方案。程序中算例丰富,注释清晰,干货满满,创新性和可扩展性很高,足以撑起一篇高水平论文!下面对程序做简要介绍!

程序适用平台:Matlab+Yalmip+Cplex

程序结果

部分程序

%%  导入网络参数 FH1=[]; ​% plot(FH1)%输入全天的负荷数据WT1=[];
PV1=[];   %输入全天的光伏数据
Generator=xlsread('GEN.xlsx','A2:U8');   %输入发电机矩阵参数,其中20,14接风电;9,30接光伏
Bus=xlsread('BUS.xlsx','A2:M34');    %输入负荷矩阵参数,matpower数据格式,第3列和第4列为有功和无功负荷所占总有功和无功负荷比例
FH=FH1/1000;   %将kw化为mw,调整渗透率
​FHP(:,t)=FH(1,t)*Bus(:,3);      %求各个时间段的有功负荷
​FHQ(:,t)=FH(1,t)*2.3/3.715*Bus(:,4);   %求各个时间段的无功负荷【常数什么意思】
%  导入结束 ​%%  决策空间的设置1 
maxFun=3;  ​ %三个目标函数
 fff=[0,1;0.05,0.4;0.2,2]; %各个目标函数的最小值和最大值,即绝对正理想解和绝对负理想解,可分别设单目标求解
%fff=[0,0.4;30,100;10000,20000];  ​
wmax=0.9;          %maximum of inertia factor,最大惯性系数 ​
X1limit = [2, 33];              % 设置选址参数限制
%X2limit = [0.2, 2.5];              % 设置容量参数限制,统一化成MW
X2limit = [1, 2];              % 设置容量参数限制,统一化成MW
V1limit = [-31, 31];               % 设置速度限制
%V2limit = [-2.3, 2.3];              % 设置速度限制​ 
% 决策空间设置1结束 ​%%  种群位置与速度初始化   
X1 = round(X1limit(1, 1) + (X1limit(1, 2) - X1limit(1, 1)) * rand(n, 2));        %初始种群的位置(节点位置)四舍五入取整
X2 = X2limit(1, 1)+(X2limit(1, 2)-X2limit(1, 1)) * rand(n, 2);       %初始种群的位置(容量大小)
X = [X1,X2];                %初始种群的位置 ​
V1 = V1limit(1, 2) * (2*rand(n, 2)-1);     %初始种群的速度
V2 = V2limit(1, 2) * (2*rand(n, 2)-1);     %初始种群的速度
V=[V1,V2];                      % 初始种群的速度
% 24小时储能出力变量初始化 
E1=zeros(n,T+1);   %储能1各时段的剩余容量,即SOC
E2=zeros(n,T+1);   %储能2各时段的容量
E1(:,1)=0.5*X(:,3);   %初始容量设为50%总容量【拟采用40%】
​x1limit = [-0.5, 0.5];% 设置储能有功出力约束
v1limit = [-1, 1]; ​% 设置储能有功出力约束
%******变量维数(总共52维)解释:位置1,位置2,额定容量1,额定容量2,储能1的24小时出力,储能2的24小时出力
x=[X,bsxfun(@times,x1limit(1,2)*ones(1,48),(2*rand(n, 48)-1))];
v=[V,bsxfun(@times,v1limit(1,2)*ones(1,48),(2*rand(n, 48)-1))];

部分内容源自网络,侵权联系删除!

欢迎感兴趣的小伙伴关注并私信获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!


原文地址:https://blog.csdn.net/weixin_48747334/article/details/142483526

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!