tic; %%%%%%%%%%%%%%%
clc;clear all;
%相关原始数据格式说明如下:
%n——节点个数;n1——支路条数;isb——平衡节点号;H——PQ节点个数(为后面形成PVU存储PV节点初始电压用);pr——误差精度。
%B1——支路参数矩阵,其中第一列和第二列是起始节点编号和终点节点编号,第三列、第四列、第五列、第六列分别为:支路电阻、电抗、变压器变比、电纳。(不考虑电导)
%B2——节点参数矩阵,其中第一列和第二列为节点编号和节点类型;第三列到第六列分别为:注入有功、注入无功、电压幅值、电压相位。
%节点类型分类如下:“0”为平衡节点,“1”为PQ,“2”为PV节点;“3”为PQ(V)节点,“4”为PI节点。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%数据输入:基准电压10KV,基准功率10MW %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
n=30;
n1=29;
isb=1;
H=29;
pr=0.0001;
B1=[ 1 2 0.0236 0.0233i 1 0;
2 3 0.0003 0.0002i 1 0;
3 4 0.0051 0.0005i 1 0;
3 5 0.0062 0.0006i 1 0;
3 6 0.0032 0.0011i 1 0;
6 7 0.003 0.0003i 1 0;
6 8 0.003 0.0003i 1 0;
6 9 0.0079 0.0008i 1 0;
6 10 0.0013 0.0008i 1 0;
10 11 0.0033 0.0003i 1 0;
10 12 0.005 0.0005i 1 0;
10 13 0.0027 0.0003i 1 0;
10 14 0.0008 0.0005i 1 0;
14 15 0.0025 0.0003i 1 0;
14 16 0.0026 0.0003i 1 0;
14 17 0.0065 0.0065i 1 0;
14 18 0.0041 0.0041i 1 0;
3 19 0.0012 0.0012i 1 0;
19 20 0.0011 0.0001i 1 0;
19 21 0.0061 0.0006i 1 0;
19 22 0.0012 0.0008i 1 0;
22 23 0.0008 0.0008i 1 0;
22 24 0.0034 0.0003i 1 0;
22 25 0.0009 0.0005i 1 0;
25 26 0.003 0.0003i 1 0;
25 27 0.0032 0.0003i 1 0;
25 28 0.0009 0.0006i 1 0;
28 29 0.0006 0.0007i 1 0;
28 30 0.0016 0.0002i 1 0];
B2=[1 0 0 0 1.05 0;
2 1 0 0 1 0;
3 1 0 0 1 0;
4 1 -0.16 -0.08 1 0;
5 1 -0.16 -0.08 1 0;
6 1 0 0 1 0;
7 1 -0.16 -0.08 1 0;
8 1 -0.16 -0.08 1 0;
9 1 -0.16 -0.08 1 0;
10 1 0 0 1 0;
11 1 -0.16 -0.08 1 0;
12 1 -0.16 -0.08 1 0;
13 1 -0.16 -0.08 1 0;
14 1 0 0 1 0;
15 1 -0.16 -0.08 1 0;
16 1 -0.16 -0.08 1 0;
17 1 -0.16 -0.08 1 0;
18 1 -0.16 -0.08 1 0;
19 1 0 0 1 0;
20 1 -0.16 -0.08 1 0;
21 1 -0.16 -0.08 1 0;
22 1 0 0 1 0;
23 1 -0.16 -0.08 1 0;
24 1 -0.16 -0.08 1 0;
25 1 0 0 1 0;
26 1 -0.16 -0.08 1 0;
27 1 -0.16 -0.08 1 0;
28 1 0 0 1 0;
29 1 -0.16 -0.08 1 0;
30 1 -0.16 -0.08 1 0];
T=60;%仿真代数 遗传算法
M=40;% 群体规模
pm=0.1;pc=0.8;%交叉变异概率
Ugmax=1.06;Ugmin=1.0;%参数取值范围
Timax=1.1;Timin=0.9;
Qcmax=0.05;Qcmin=-0.05;
Vimax=1.07;Vimin=0.93;
Z1=1;%Z2=1;%%惩罚因子%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&*********************具体数值待定
%QGmax=;QGmin=;
Long=5;%单个参数字串长度,总编码长度3L
bestv=-inf;
bval=round(rand(M,3*Long));%初始种群 round 四舍五入取整函数 编码后的初始种群
%%%%%%%%%%%%%bestv=-inf%最优适应度初值%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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
%disp('PQ、PV节点初始计算值:') ; %用所给参数计算出的初始PQ、PV节点参数
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));
Jac
评论2