📄 flowcalculation.m
字号:
fprintf(flowoutput,'进行线路补偿时各节点对应的负荷功率阻抗矩(从节点1开始):\n');
Rcopy=[0.316 0.464 0.575 0.805 1.064 1.202 1.524 1.754 3.834 2.008 1.877 5.03 5.739 8.274 9.192 2.858 4.442 5.999 3.176
0 0.148 0.259 0.489 0.748 0.886 1.208 1.438 3.518 1.692 1.561 4.714 5.423 7.958 8.876 2.542 4.126 5.683 2.86
0 0 0.111 0.341 0.6 0.738 1.06 1.29 3.37 1.544 1.413 4.566 5.275 7.81 8.728 2.394 3.978 5.535 2.712
0 0 0 0.23 0.489 0.627 0.949 1.179 3.259 0 1.302 4.455 5.164 7.699 8.617 2.283 3.867 5.424 2.601
0 0 0 0 0.259 0.397 0.719 0.949 3.029 0 1.072 4.225 4.934 7.467 8.387 2.053 3.637 5.194 2.371
0 0 0 0 0 0.138 0.46 0.69 2.77 0 0 0 0 0 0 1.794 3.378 4.935 2.112
0 0 0 0 0 0 0.322 0.552 2.632 0 0 0 0 0 0 1.656 3.24 4.797 1.974
0 0 0 0 0 0 0 0.23 2.31 0 0 0 0 0 0 0 0 0 1.652
0 0 0 0 0 0 0 0 2.08 0 0 0 0 0 0 0 0 0 1.422
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 3.153 3.862 6.397 7.315 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0.709 3.244 4.162 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 2.535 3.453 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.918 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.584 3.141 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.557 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
%R为对应两节点之间的所有支路电阻之和;
Q=[0.00055 0.00056 0.00009 0 0.00014 0 0.00011 0 0.00022 0.00023 0.00021 0.00095 0.00004 0.00028 0.00073 0.00020 0.00016 0.00066 0.00049];
%Q为对应节点的负荷无功功率
Q=Q'; %矩阵Q转置
H=zeros(19,1);
H=Rcopy*Q %H为各节点对应的负荷功率阻抗矩的集合
fprintf(flowoutput,'%g\n',H);
fprintf(flowoutput,'由负荷功率阻抗矩:当只选择一个节点进行集中补偿时,最优补偿点为7;当选择两点进行集中补偿时,最优补偿点应选择7和5\n');
fprintf(flowoutput,'\n');
%以上为初始潮流和负荷功率阻抗矩阵的计算程序.下面程序为进行线路补偿时,利用无功一次精确矩确定愦线上各节点对应的最优补偿容量
fprintf(flowoutput,'进行线路补偿时由无功一次精确矩确定的各节点的最优补偿容量(从节点2到节点10):\n');
linepower1=linepower;
linepower=imag(linepower);
Q1incopy=zeros(9); %无功一次精确矩确定各节点对应的补偿容量
T1copy=zeros(9); %存放中间变量
M1copy=zeros(9); %存放中间变量
for j=1:8
Q1incopy(j)=linepower(j+1,j+2);
end
Q1incopy(9)=PQ(18);
Q1incopy(2)=Q1incopy(2)+linepower(3,11);
Q1incopy(4)=Q1incopy(4)+linepower(5,12);
Q1incopy(6)=Q1incopy(6)+linepower(7,17);
Q1incopy(8)=Q1incopy(8)+linepower(9,20);
for j=1:9
M1copy(j)=10*((YBre(j,j+1))/(((YBre(j,j+1))^2)+((YBim(j,j+1))^2)))/((E(j))^2);
if j>1
M1copy(j)= M1copy(j)+M1copy(j-1);
end
end
for j=1:9
T1copy(j)=M1copy(j)*Q1incopy(j);
k1=j;
while k1>1
k1=k1-1;
T1copy(j)=T1copy(j)+M1copy(k1)*[(Q1incopy(k1))-(Q1incopy(k1+1))];
end
end
T1copy=T1copy(:,1)
fprintf(flowoutput,'%g\n',T1copy(:,1));
fprintf(flowoutput,'\n');
linepower=linepower1;
%本次毕业设计中采用负荷功率阻抗矩进行愦线上无功补偿点的选择,下面程序是计算负荷的无功二次精确矩也可以用来进行线路补偿方式下无功补偿点的选择,这里只做程序介绍
fprintf(flowoutput,'另外进行线路补偿时,由下面负荷的无功二次精确矩(从节点2到节点20)进行补偿点选择时\n');
R=[0.316 0.464 0.575 0.805 1.064 1.202 1.524 1.754 3.834 2.008 1.877 5.03 5.739 8.274 9.192 2.858 4.442 5.999 3.176];
%主干线路各段电阻值
R=R'; %矩阵转置
Qincopy=zeros(19); %存放对应节点的注入功率
Qoutcopy=zeros(19); %存放对应节点的下一级节点的注入功率
T2copy=zeros(19);
for j=1:19
for k=2:20
if j<k&&YBre(j,k)~=0&&YBim(j,k)~=0
Qincopy(k-1)=((imag(linepower(k,j)))^2)/((E(k-1))^2);
if k==20
Qoutcopy(k-1)=0;
else
Qoutcopy(k-1)=((imag(linepower(k+1,k)))^2)/((E(k))^2);
end
if k~=3&&k~=5&&k~=7&&k~=9
Qoutcopy(k-1)=Qoutcopy(k-1);
else
if k==3
Qoutcopy(k-1)=Qoutcopy(k-1)+(((imag(linepower(11,k)))^2)/((E(10))^2));
elseif k==5
Qoutcopy(k-1)=Qoutcopy(k-1)+(((imag(linepower(12,k)))^2)/((E(11))^2));
else
if k==7
Qoutcopy(k-1)=Qoutcopy(k-1)+(((imag(linepower(17,k)))^2)/((E(16))^2));
else
Qoutcopy(k-1)=Qoutcopy(k-1)+(((imag(linepower(20,k)))^2)/((E(19))^2));
end
end
end
end
T2copy(k-1)=R(k-1)*[(Qincopy(k-1))-(Qoutcopy(k-1))];
end
end
T2copy=T2copy(:,1) %各负荷节点的无功二次精确矩
fprintf(flowoutput,'%g\n',T2copy);
Kcopy=zeros(3,1); %存放各负荷节点的无功二次精确矩的前三个最大值且Kcopy(1)> Kcopy(2)> Kcopy(3)
K1=0; %存放无功二次精确矩值最大的节点号
K2=0; %存放无功二次精确矩值第二大的节点号
K3=0; %存放无功二次精确矩值第三大的节点号
fprintf(flowoutput,'由上面负荷的无功二次精确矩,进行线路补偿时:\n');
for j=1:3
for k=1:19
if j==1
if Kcopy(j)<T2copy(k)
Kcopy(j)=T2copy(k);
K1=k+1;
end
elseif j==2
if Kcopy(j)<T2copy(k)&&T2copy(k)~=Kcopy(1)
Kcopy(j)=T2copy(k);
K2=k+1;
end
else
if Kcopy(j)<T2copy(k)&&T2copy(k)~=Kcopy(1)&&T2copy(k)~=Kcopy(2)
Kcopy(j)=T2copy(k);
K3=k+1;
end
end
end
end
fprintf(flowoutput,'当选择一点(对应数值最大的一点)进行集中补偿时,最优补偿点应是选择%g\n',K1);
fprintf(flowoutput,'当选择两点(对应数值最大的两点)进行集中补偿时,最优补偿点应是选择%g\n',K1,K2);
fprintf(flowoutput,'当选择三点(对应数值最大的两点)进行集中补偿时,最优补偿点应是选择%g\n',K1,K2,K3);
fprintf(flowoutput,'\n');
fclose(flowoutput);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -