✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,

代码获取、论文复现及科研仿真合作可私信。

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

🍊个人信条:格物致知。

更多Matlab完整代码及仿真定制内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

🔥 内容介绍

随着电动汽车的普及,如何高效地进行充电成为了一个亟待解决的问题。在多充电站的情况下,如何实现电动汽车的有序充电,提高充电效率,降低充电成本,成为了一个重要的研究方向。本文将介绍基于粒子群算法实现IEEE33环境下的多充电站电动汽车群有序充电优化算法流程。

1.问题描述

考虑在IEEE33环境下,有多个充电站和多辆电动汽车。每个充电站都有一定数量的充电桩,每个充电桩的充电速度不同。每辆电动汽车都有一个充电需求,需要在规定时间内完成充电。同时,每个充电站的电力供应有限,需要在保证充电效率的前提下,合理分配电力资源。因此,需要设计一个有序充电方案,使得每辆电动汽车都能在规定时间内完成充电,同时最大化充电效率,最小化充电成本。

2.粒子群算法

粒子群算法是一种群体智能算法,模拟鸟群或鱼群等生物的集体行为,通过模拟群体的协作和竞争,寻找最优解。粒子群算法的基本思想是将每个解看作一个粒子,通过不断迭代,逐步接近最优解。粒子群算法具有收敛速度快、易于实现等特点,适用于解决复杂的优化问题。

3.算法流程

(1)初始化粒子群,包括每辆电动汽车的充电需求、每个充电站的充电桩数量和充电速度等信息。

(2)计算每个充电站的电力供应情况,并根据充电桩的充电速度和电动汽车的充电需求,确定每辆电动汽车的充电站和充电桩。

(3)根据每个充电站的电力供应情况,计算每辆电动汽车的充电时间和充电成本。

(4)根据充电时间和充电成本,更新每个粒子的适应度。

(5)根据粒子的适应度,更新粒子的速度和位置。

(6)重复步骤(2)-(5),直到达到预设迭代次数或达到最优解。

4.实验结果

通过对IEEE33环境下的多充电站电动汽车群有序充电优化算法进行实验,得到了如下结果:

(1)在充电效率和充电成本方面,粒子群算法优于其他算法。

(2)随着粒子数的增加,算法的收敛速度更快,但计算时间也会增加。

(3)在充电桩数量和充电速度等参数的变化下,算法的性能表现稳定。

5.总结

本文介绍了基于粒子群算法实现IEEE33环境下的多充电站电动汽车群有序充电优化算法流程。该算法具有收敛速度快、易于实现等特点,在充电效率和充电成本方面优于其他算法。未来可以进一步优化算法,提高算法的性能表现。


📣 部分代码

%相关原始数据格式说明如下:
%n——节点个数;n1——支路条数;isb——平衡节点号;H——PQ节点个数(为后面形成PVU存储PV节点初始电压用);pr——误差精度。
%B1——支路参数矩阵,其中第一列和第二列是起始节点编号和终点节点编号,第三列、第四列、第五列、第六列分别为:支路电阻、电抗、变压器变比、电纳。(不考虑电导)
%B2——节点参数矩阵,其中第一列和第二列为节点编号和节点类型;第三列到第六列分别为:注入有功、注入无功、电压幅值、电压相位。
%节点类型分类如下:“0”为平衡节点,“1”为PQ,“2”为PV节点;“3”为PQ(V)节点,“4”为PI节点。
function  [Ploss ,V_amp]=powerflow(car_1,car_2,car_3,P_flex)
n=33 ;       
n=33 ;       
n1=32;
isb=1;
H=32;                %%%%%%%%%%%%%18节点加DG    PQV处理
pr=0.01; 
v_amp=0;
B1=[1 2 0.00922 0.0047i 1 0;
    2 3 0.00493 0.02511i 1 0;
    3 4 0.0366 0.01864i 1 0;
    4 5 0.03811 0.01941i 1 0;
    5 6 0.0819 0.0707i 1 0;
    6 7 0.01872 0.06188i 1 0;
    7 8 0.07114 0.02351i 1 0;
    8 9 0.103 0.074i 1 0;
    9 10 0.1044 0.074i 1 0;
    10 11 0.01966 0.0065i 1 0;
    11 12 0.03744 0.01238i 1 0;
    12 13 0.1468 0.1155i 1 0;
    13 14 0.05416 0.07129i 1 0;
    14 15 0.05910 0.0526i 1 0;
    15 16 0.07463 0.05450i 1 0;
    16 17 0.1289 0.1721i 1 0;
    17 18 0.0732 0.0574i 1 0;
    2 19 0.0164 0.01565i 1 0;
    19 20 0.15042 0.13554i 1 0;
    20 21 0.04095 0.04784i 1 0;
    21 22 0.07089 0.09373i 1 0;
    3 23 0.04512 0.03083i 1 0;
    23 24 0.08980 0.07091i 1 0;
    24 25 0.08960 0.07011i 1 0;
    6 26 0.0203 0.01034i 1 0;
    26 27 0.02842 0.01447i 1 0;
    27 28 0.1059 0.09337i 1 0;
    28 29 0.08042 0.07006i 1 0;
    29 30 0.05075 0.02585i 1 0;
    30 31 0.09744 0.0963i 1 0;
    31 32 0.03105 0.03619i 1 0;
    32 33 0.03410 0.05302i 1 0];
B2=[1 0 0 0 1.05 0;
    2 1 -0.01 -0.006 1 0;
    3 1 -0.009 -0.004 1 0;
    4 1 -0.012 -0.008 1 0;
    5 1 -0.006 -0.003 1 0;
    6 1 -0.006 -0.002 1 0;
    7 1 -0.02 -0.01 1 0;
    8 1 -0.02 -0.01 1 0;
    9 1 -0.006 -0.002 1 0;
    10 1 -0.006 -0.0035 1 0;
    11 1 -0.0045 -0.003 1 0;
    12 1 -0.006 -0.0035 1 0;
    13 1 -0.006 -0.0035 1 0;
    14 1 -0.012 -0.008 1 0;
    15 1 -0.006 -0.001 1 0;
    16 1 -0.006 -0.002 1 0;
    17 1 -0.006 -0.002 1 0;
    18 1 -0.009 -0.004 1 0;
    19 1 -0.009 -0.004 1 0;
    20 1 -0.009 -0.004 1 0;
    21 1 -0.009 -0.004 1 0;
    22 1 -0.009 -0.004 1 0;
    23 1 -0.009 -0.005 1 0;
    24 1 -0.042 -0.02 1 0;
    25 1 -0.042 -0.02 1 0;
    26 1 -0.006 -0.0025 1 0;
    27 1 -0.006 -0.0025 1 0;
    28 1 -0.006 -0.002 1 0;
    29 1 -0.012 -0.007 1 0;
    30 1 -0.02 -0.06 1 0;
    31 1 -0.015 -0.007 1 0;
    32 1 -0.021 -0.01 1 0;
    33 1 -0.006 -0.004 1 0];


for i=1:33
    B2(i,3)=  B2(i,3)*P_flex; %负荷时变系数
    B2(i,4)=  B2(i,4)*P_flex;
end

global position
B2(position(1),3)=B2(position(1),3)-car_1/10000;  %电动汽车接入
B2(position(1),4)=B2(position(1),4)-0.484*car_1/10000;  %功率因素为0.9
B2(position(2),3)=B2(position(2),3)-car_2/10000;  %电动汽车接入
B2(position(2),4)=B2(position(2),4)-0.484*car_2/10000;  %功率因素为0.9
B2(position(3),3)=B2(position(3),3)-car_3/10000;  %电动汽车接入
B2(position(3),4)=B2(position(3),4)-0.484*car_3/10000;  %功率因素为0.9

Y=zeros(n);               %zeros就是生成一个全0的矩阵
Times=1;                  %置迭代次数为初始值


for i=1:n1
        p=B1(i,1);
        q=B1(i,2);
        Y(p,q)=Y(p,q)-1/((B1(i,3)+B1(i,4))*B1(i,5));
        Y(q,p)=Y(p,q);
        Y(p,p)=Y(p,p)+1/(B1(i,3)+B1(i,4))+0.5*B1(i,6);%
        Y(q,q)=Y(q,q)+1/((B1(i,3)+B1(i,4))*B1(i,5)^2)+0.5*B1(i,6);%高压侧阻抗乘以变比平方  输入时注意低压侧在前
end
%disp('节点导纳矩阵:') ;
Y;
G=real(Y);
B=imag(Y);
OrgS=zeros(2*n-2,1);
DetaS=zeros(2*n-2,1);   %将OrgS、DetaS初始化
%创建OrgS,用于存储初始功率参数
Q=0;
PQV=0;
x=1.655;         %%%x1=6.7,x2=9.85,x=x1+x2;其中x1为定子漏抗,x2为转子漏抗
xp=18.8;         %%%xc=,xm=,xp=xc*xm/(xc-xm);其中xc为机端并联电容器电抗,xm为激磁电抗
h=0;

for i=1:n    %对PQ(V)节点的处理
    h=h+1;
    if i~=isb&&B2(i,2)==3   
         Q(i)=-(B2(i,5))^2/xp+(-(B2(i,5))^2+sqrt((B2(i,5))^4-4*(B2(i,3))^2*x^2))/2*x;
         B2(i,4)=Q(i);
         B2(i,2)=1; 
         PQV=h;
    end  
end
       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ig=0.01;
Q=0;
PI=0;
h=0;
for i=1:n    %对PI节点的处理
    h=h+1;
    if i~=isb&&B2(i,2)==4   
         Q(i)=sqrt(Ig^2*((B2(i,5))^2)-B(i,3)^2);        %e=B2(i,5),f=0,e^2+f^2=B2(i,5))^2,其中e和f为光伏发电系统接入节点电压的实部和虚部
         B2(i,4)=Q(i);
         B2(i,2)=1; 
         PI=h;
    end  
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
h=0;
j=0;
for i=1:n            %对PQ节点的处理
    if i~=isb&&B2(i,2)==1   
        h=h+1;
        for j=1:n
            OrgS(2*h-1,1)=OrgS(2*h-1,1)+B2(i,5)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))+B2(i,6)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));   %Pi 书P57页11-45
            OrgS(2*h,1)=OrgS(2*h,1)+B2(i,6)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))-B2(i,5)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));       %Qi  同上
        end
    end
end
for i=1:n           %对PV节点的处理
    if i~=isb&&B2(i,2)==2
        h=h+1;
        for j=1:n
            OrgS(2*h-1,1)=OrgS(2*h-1,1)+ B2(i,5)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))+B2(i,6)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5)); %同上
            OrgS(2*h,1)=OrgS(2*h,1)+ B2(i,6)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))-B2(i,5)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));    %同上
        end
    end
end
OrgS;
%创建PVU 用于存储PV节点的初始电压
PVU=zeros(n-H-1,2);
t=0;
for i=1:n
    if B2(i,2)==2
        t=t+1;
        PVU(t,1)=B2(i,5);
        PVU(t,2)=B2(i,6);
    end
end
%disp('PV节点初始值:电压、相位ei、fi:')   ; 
PVU;
%创建DetaS,用于存储有功功率、无功功率和电压幅值的不平衡量 书p58 11-46和11-47
h=0;
for i=1:n           %对PQ节点的处理
    if i~=isb&&B2(i,2)==1
        h=h+1;
        DetaS(2*h-1,1)=B2(i,3)-OrgS(2*h-1,1);
        DetaS(2*h,1)=B2(i,4)-OrgS(2*h,1);
    end
end
t=0;
for i=1:n           %对PV节点的处理
    if i~=isb&&B2(i,2)==2
        h=h+1;
        t=t+1;
        DetaS(2*h-1,1)=B2(i,3)-OrgS(2*h-1,1);
        DetaS(2*h,1)=PVU(t,1)^2+PVU(t,2)^2-B2(i,5)^2-B2(i,6)^2;
    end
end
%disp('P、Q、V不平衡量:')  ;
DetaS;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%创建I,用于存储节点电流参数(计算雅克比矩阵用 具体见纸板公式推导)
I=zeros(n-1,1);
h=0;
for i=1:n
   if i~=isb
        h=h+1;
        I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,5)+B2(i,6)*sqrt(-1));                                           
    end                                                           
end
I;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%创建Jacbi(雅可比矩阵)     各元素是书中各元素求法乘个-1 所以△W=J△V
Jacbi=zeros(2*n-2);
h=0;
k=0;
for i=1:n       %对PQ节点的处理
    if B2(i,2)==1
        h=h+1;
        for j=1:n
            if j~=isb
                k=k+1;
                if i==j     %对角元素的处理
                    Jacbi(2*h-1,2*k-1)=-B(i,j)*B2(i,5)+G(i,j)*B2(i,6)+imag(I(h,1));      
                    Jacbi(2*h-1,2*k)=G(i,j)*B2(i,5)+B(i,j)*B2(i,6)+real(I(h,1));
                    Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));
                    Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));
                else        %非对角元素的处理
                    Jacbi(2*h-1,2*k-1)=-B(i,j)*B2(i,5)+G(i,j)*B2(i,6);
                    Jacbi(2*h-1,2*k)=G(i,j)*B2(i,5)+B(i,j)*B2(i,6);
                    Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);
                    Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);
                end
                if k==(n-1) %将用于内循环的指针置于初始值,以确保雅可比矩阵换行
                    k=0;
                end
            end
        end
    end
end
k=0;
for i=1:n       %对PV节点的处理
    if B2(i,2)==2
        h=h+1;
        for j=1:n
            if j~=isb
                k=k+1;
                if i==j     %对角元素的处理
                    Jacbi(2*h-1,2*k-1)= -B(i,j)*B2(i,5)+G(i,j)*B2(i,6)+imag(I(h,1));
                    Jacbi(2*h-1,2*k)= G(i,j)*B2(i,5)+B(i,j)*B2(i,6)+real(I(h,1));
                    Jacbi(2*h,2*k-1)=2*B2(i,6);
                    Jacbi(2*h,2*k)=2*B2(i,5);
                else        %非对角元素的处理
                    Jacbi(2*h-1,2*k-1)= -B(i,j)*B2(i,5)+G(i,j)*B2(i,6);
                    Jacbi(2*h-1,2*k)= G(i,j)*B2(i,5)+B(i,j)*B2(i,6);
                    Jacbi(2*h,2*k-1)=0;
                    Jacbi(2*h,2*k)=0;
                end
                if k==(n-1)     %将用于内循环的指针置于初始值,以确保雅可比矩阵换行
                    k=0;
                end
            end
        end
    end
end
%disp('雅克比矩阵为:')  ;
Jacbi; %列参数跟书上的相反   这里面第一列是对电压相位的偏导 第二列是对幅值的偏导
%求解修正方程,获取节点电压的不平衡量
DetaU=zeros(2*n-2,1);
DetaU=Jacbi\DetaS;       
%disp('求解修正方程得:')  ;
DetaU;
%修正节点电压
j=0;
for i=1:n       %对PQ节点处理
    if B2(i,2)==1
        j=j+1;
        B2(i,5)=B2(i,5)+DetaU(2*j,1);
        B2(i,6)=B2(i,6)+DetaU(2*j-1,1);
    end
end
for i=1:n       %对PV节点的处理
    if B2(i,2)==2
        j=j+1;
       B2(i,5)=B2(i,5)+DetaU(2*j,1);
       B2(i,6)=B2(i,6)+DetaU(2*j-1,1);
    end
end
for i=1:n            %对PQ(V)节点的处理
    if i==PQV
       B2(i,2)=3; 
    end
end
for i=1:n            %对PI节点的处理
    if i==PI
       B2(i,2)=4; 
    end
end
%disp('修正后的B2阵:')  ;
B2;
%开始循环**********************************************************************
while max(abs(DetaU))>pr%先取绝对值在找出最大值来与误差精度比较
for i=1:n            %对PQ(V)节点的处理
    if i~=isb&&B2(i,2)==3   
         Q(i)=-(B2(i,5))^2/xp+(-(B2(i,5))^2+sqrt((B2(i,5))^4-4*(B2(i,3))^2*x^2))/2*x;
         B2(i,4)=Q(i);
    end
    if B2(i,2)==3
       B2(i,2)=1; 
    end
end
for i=1:n    %对PI节点的处理
    if i~=isb&&B2(i,2)==4   
         Q(i)=sqrt(Ig^2*((B2(i,5))^2)-B(i,3)^2);       
          B2(i,4)=Q(i);
    end
    if B2(i,2)==4
       B2(i,2)=1; 
    end
end
OrgS=zeros(2*n-2,1);        
h=0;
j=0;
for i=1:n            %对PQ节点的处理
    if i~=isb&&B2(i,2)==1   
        h=h+1;
        for j=1:n
            OrgS(2*h-1,1)=OrgS(2*h-1,1)+B2(i,5)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))+B2(i,6)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));         %Pi
            OrgS(2*h,1)=OrgS(2*h,1)+B2(i,6)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))-B2(i,5)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));            %Qi
        end
    end
end
for i=1:n           %对PV节点的处理
    if i~=isb&&B2(i,2)==2
        h=h+1;
        for j=1:n
            OrgS(2*h-1,1)=OrgS(2*h-1,1)+ B2(i,5)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))+B2(i,6)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));
            OrgS(2*h,1)=OrgS(2*h,1)+ B2(i,6)*(G(i,j)*B2(j,5)-B(i,j)*B2(j,6))-B2(i,5)*(G(i,j)*B2(j,6)+B(i,j)*B2(j,5));
        end
    end
end
%disp('修正后的迭代计算PQ、PV节点参数:') ; 
OrgS;
%创建DetaS
h=0;
for i=1:n           %对PQ节点的处理
    if i~=isb&&B2(i,2)==1
        h=h+1;
        DetaS(2*h-1,1)=B2(i,3)-OrgS(2*h-1,1);
        DetaS(2*h,1)=B2(i,4)-OrgS(2*h,1);
    end
end
t=0;
for i=1:n           %对PV节点的处理
    if i~=isb&&B2(i,2)==2
        h=h+1;
        t=t+1;
        DetaS(2*h-1,1)=B2(i,3)-OrgS(2*h-1,1);
        DetaS(2*h,1)=PVU(t,1)^2+PVU(t,2)^2-B2(i,5)^2-B2(i,6)^2;
    end
end
%disp('修正后的迭代计算PQ、PV节点不平衡量:') ; 
DetaS;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%创建I
I=zeros(n-1,1);
h=0;
for i=1:n
    if i~=isb
        h=h+1;
        I(h,1)=(OrgS(2*h-1,1)-OrgS(2*h,1)*sqrt(-1))/conj(B2(i,5)+B2(i,6)*sqrt(-1));                                              
    end                                                           
end
I;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%创建Jacbi
Jacbi=zeros(2*n-2);
h=0;
k=0;
for i=1:n       %对PQ节点的处理
    if B2(i,2)==1
        h=h+1;
        for j=1:n
            if j~=isb
                k=k+1;
                if i==j     %对角元素的处理
                    Jacbi(2*h-1,2*k-1)=-B(i,j)*B2(i,5)+G(i,j)*B2(i,6)+imag(I(h,1));           
                    Jacbi(2*h-1,2*k)=G(i,j)*B2(i,5)+B(i,j)*B2(i,6)+real(I(h,1));
                    Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k)+2*real(I(h,1));
                    Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1)-2*imag(I(h,1));
                else        %非对角元素的处理
                    Jacbi(2*h-1,2*k-1)=-B(i,j)*B2(i,5)+G(i,j)*B2(i,6);
                    Jacbi(2*h-1,2*k)=G(i,j)*B2(i,5)+B(i,j)*B2(i,6);
                    Jacbi(2*h,2*k-1)=-Jacbi(2*h-1,2*k);
                    Jacbi(2*h,2*k)=Jacbi(2*h-1,2*k-1);
                end
                if k==(n-1) %将用于内循环的指针置于初始值,以确保雅可比矩阵换行
                    k=0;
                end
            end
        end
    end
end
k=0;
for i=1:n       %对PV节点的处理
    if B2(i,2)==2
        h=h+1;
        for j=1:n
            if j~=isb
                k=k+1;
                if i==j     %对角元素的处理
                    Jacbi(2*h-1,2*k-1)= -B(i,j)*B2(i,5)+G(i,j)*B2(i,6)+imag(I(h,1));
                    Jacbi(2*h-1,2*k)= G(i,j)*B2(i,5)+B(i,j)*B2(i,6)+real(I(h,1));
                    Jacbi(2*h,2*k-1)=2*B2(i,6);
                    Jacbi(2*h,2*k)=2*B2(i,5);
                else        %非对角元素的处理
                    Jacbi(2*h-1,2*k-1)= -B(i,j)*B2(i,5)+G(i,j)*B2(i,6);
                    Jacbi(2*h-1,2*k)= G(i,j)*B2(i,5)+B(i,j)*B2(i,6);
                    Jacbi(2*h,2*k-1)=0;
                    Jacbi(2*h,2*k)=0;
                end
                if k==(n-1)     %将用于内循环的指针置于初始值,以确保雅可比矩阵换行
                    k=0;
                end
            end
        end
    end
end
%disp('修正后的雅克比矩阵:')  ;
Jacbi;
DetaU=zeros(2*n-2,1);
DetaU=Jacbi\DetaS;
DetaU;
%修正节点电压
j=0;
for i=1:n       %对PQ节点处理
    if B2(i,2)==1
        j=j+1;
        B2(i,5)=B2(i,5)+DetaU(2*j,1);
        B2(i,6)=B2(i,6)+DetaU(2*j-1,1);
    end
end
for i=1:n       %对PV节点的处理
    if B2(i,2)==2
        j=j+1;
       B2(i,5)=B2(i,5)+DetaU(2*j,1);
       B2(i,6)=B2(i,6)+DetaU(2*j-1,1);
    end
end
for i=1:n            %对PQ(V)节点的处理
    if i==PQV
       B2(i,2)=3; 
    end
end
for i=1:n            %对PI节点的处理
    if i==PI
       B2(i,2)=4; 
    end
end
Times=Times+1;      %迭代次数加1
end
disp('初始潮流计算结果如下:');
disp('迭代次数:');
Times
disp('节点电压幅值如下(按节点由小到大的顺序):');
B2(:,5)
%创建Sb,用于存储平衡节点功率
Sb=zeros(1);
for i=1:n
    if i==isb
        for j=1:n
     Sb=Sb+(B2(i,5)+sqrt(-1)*B2(i,6))*conj(Y(i,j))*conj(B2(j,5)+sqrt(-1)*B2(j,6)); 
        end                                                           
     end
end
disp('初始平衡节点功率:')
Sb
%求解各条支路的功率
Sij=zeros(n);
for i=1:n
     for j=1:n
     Sij(i,j)=Sij(i,j)+(B2(i,5)+sqrt(-1)*B2(i,6))^2*conj(B1(1,4))+(B2(i,5)+sqrt(-1)*B2(i,6))*conj(Y(i,j))*(conj((B2(i,5)+sqrt(-1)*B2(i,6)))-conj((B2(j,5)+sqrt(-1)*B2(j,6)))); 
      end
end
%disp('线路功率分布:')
Sij;
Sij_P=real(Sij);
Sij_Q=imag(Sij);
for i=1:32
     P_flow(i)=  abs( Sij_P(B1(i,1),B1(i,2)));
end

for i=1:33
    for j=1:33
        if Sij_P(i,j)<0.0001
             Sij_P(i,j)=0;
        end
         if Sij_Q(i,j)<0.0001
             Sij_Q(i,j)=0;
         end
    end
end
%%%求解系统网损
Ploss=0;
for i=1:n            
        for j=1:n
            Ploss=Ploss+B2(i,5)*B2(j,5)*(G(i,j)*cos(B2(i,6)-B2(j,6))+B(i,j)*sin(B2(i,6)-B2(j,6))); 
        end
end
Ploss=Ploss*10000;
 V_amp=B2(:,5);
for i=1:n  %电压罚函数
    V_33(i)=abs(1-V_amp(i)); %求与额定电压的差值
end
V_flu=sum(V_33);

end

⛳️ 运行结果

【有序充电】基于粒子群算法实现IEEE33环境下的多充电站电动汽车群有序充电优化附Matlab代码_粒子群算法

【有序充电】基于粒子群算法实现IEEE33环境下的多充电站电动汽车群有序充电优化附Matlab代码_粒子群算法_02

【有序充电】基于粒子群算法实现IEEE33环境下的多充电站电动汽车群有序充电优化附Matlab代码_优化算法_03

【有序充电】基于粒子群算法实现IEEE33环境下的多充电站电动汽车群有序充电优化附Matlab代码_粒子群算法_04

【有序充电】基于粒子群算法实现IEEE33环境下的多充电站电动汽车群有序充电优化附Matlab代码_迭代_05

【有序充电】基于粒子群算法实现IEEE33环境下的多充电站电动汽车群有序充电优化附Matlab代码_粒子群算法_06

🔗 参考文献

[1] 龚莉莉.基于利益链的配电网电动汽车充电优化策略研究[J].[2023-11-14].

[2] 李敏,苏小林,阎晓霞,等.多目标分层分区的电动汽车有序充放电优化控制[J].电网技术, 2015, 39(12):7.DOI:10.13335/j.1000-3673.pst.2015.12.033.

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

👇  私信完整代码、论文复现、期刊合作、论文辅导及科研仿真定制

1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面

卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

2.图像处理方面

图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

3 路径规划方面

旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

4 无人机应用方面

无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配、无人机安全通信轨迹在线优化

5 无线传感器定位及布局方面

传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

6 信号处理方面

信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

7 电力系统方面

微电网优化、无功优化、配电网重构、储能配置

8 元胞自动机方面

交通流 人群疏散 病毒扩散 晶体生长

9 雷达方面

卡尔曼滤波跟踪、航迹关联、航迹融合