✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
大规模电动汽车接入电力系统时,就会使得电力负荷的峰谷差和功率波动产生的巨大的影响,更严重的,还会超过电力系统的供电能力和承受能力,给电网的安全稳定运行带来巨大的挑战.在此背景下,首先对电动汽车充电负荷的影响因素进行了分析,根据电动汽车的充电特性建立起电动汽车充电负荷的模型.然后,基于粒子群算法对模型进行优化求解,使得电网负荷的峰谷差最小,约束条件为负荷波动和充电电量限制.通过仿真,与无序充电的情况做出对比,有序充电在平滑负荷波动,降低电网的峰谷差的方面有很好的'削峰填谷'的作用.
⛄ 部分代码
%相关原始数据格式说明如下:
%n——节点个数;n1——支路条数;isb——平衡节点号;H——PQ节点个数(为后面形成PVU存储PV节点初始电压用);pr——误差精度。
%B1——支路参数矩阵,其中第一列和第二列是起始节点编号和终点节点编号,第三列、第四列、第五列、第六列分别为:支路电阻、电抗、变压器变比、电纳。(不考虑电导)
%B2——节点参数矩阵,其中第一列和第二列为节点编号和节点类型;第三列到第六列分别为:注入有功、注入无功、电压幅值、电压相位。
%节点类型分类如下:“0”为平衡节点,“1”为PQ,“2”为PV节点;“3”为PQ(V)节点,“4”为PI节点。
function [Ploss_after,V]=test(P_flex)
n=33 ;
n1=32;
isb=1;
H=31; %%%%%%%%%%%%%18节点加DG PQV处理
pr=0.0001;
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];
B2(:,3)=B2(:,3)*P_flex;
B2(:,4)=B2(:,4)*P_flex;
% Ploss_before=239;
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;
⛄ 运行结果
⛄ 参考文献
[1]沈亮, 俞伟勇, 秦奋. 基于改进粒子群算法的电动汽车有序充电策略[J]. 产业与科技论坛, 2017, 16(5):2.
[2]余星儒, 高桂革. 基于粒子群算法的电动汽车有序充电控制策略的研究[J]. 电力学报, 2017, 32(3):7.