📄 compensation2.m
字号:
function compensation2
clear all;
Rmin=0; %DATAmin的读标志
Rmax=0; %DATAmax的读标志
flowoutput=fopen('compensation2result.txt','wt'); %创建补偿后潮流计算结果compensationresult.txt文件
fprintf(flowoutput,'线路固定补偿方式下两点补偿后潮流计算结果分析\n');
fprintf(flowoutput,'补偿组合1为节点5和7共同补偿,补偿组合2为节点5和8共同补偿,补偿组合3为节点6和10共同补偿,补偿组合4为节点4和8共同补偿\n');
while Rmax==0||Rmin==2 %Rmin=2表示'DATAmin.txt'文件待读
n=0;
if Rmax==0
fid=fopen('DATAmax.txt'); %读'DATAmax.txt'文本文件
Rmax=1; %Rmax=1表示'DATAmax.txt'文件已读
else
fid=fopen('DATAmin.txt'); %读'DATAmin.txt'文本文件
Rmin=1; %Rmin=1表示'DATAmin.txt'文件已读
end
while feof(fid)==0 %文件定位器不在文件结尾
line=fgetl(fid); %读出定位器所在行
if double(line(1))>=48&&double(line(1))<=57||double(line(1))==43||double(line(1))==45
n=n+1;
if n==1
PQ=line;
PQ=sscanf(PQ,'%f'); %列向量PQ中下标为奇数的元素表示P,为偶数的表示Q
n1=size(PQ)/2;
numPQ=n1(1); %每行PQ节点个数计数
for j=1:numPQ;
PQre(n,j)=PQ(2*j-1);
PQim(n,j)=PQ(2*j);
end
end
if n==2
S=line;
S=sscanf(S,'%f'); %列向量S中下标为奇数的元素表示P,为偶数的表示Q
n2=size(S)/2;
numS=n2(1); %平衡节点S个数计数
for j=1:numS
Sre(1,j)=S(2*j-1);
Sim(1,j)=S(2*j);
end
end
if n>=3
Yb=line;
Yb=sscanf(Yb,'%f');
n3=size(Yb)/2;
numYB=n3(1);
for j=1:numYB %节点导纳矩阵行元素个数计数
YBre(n-2,j)=Yb(2*j-1); %节点导纳矩阵实部
YBim(n-2,j)=Yb(2*j); %节点导纳矩阵虚部
end
end
end
end
%///上面为读取原始数据,形成节点导纳矩阵程序;下面为线路补偿方式下两点补偿后潮流计算程序///
EEcopy=zeros(4); %存放最大负荷时各补偿组合分别进行对应容量补偿后节点20的电压幅值
EEEcopy=zeros(1); %存放最小负荷时各补偿组合分别进行对应容量补偿后节点2的电压幅值
PQcopy=zeros(2*numPQ,1);
PQcopy=PQ;
T1copy =[ 0.0305 0.0391 0.0642 0.0888 0.1070 0.1170 0.1200 0.1222 0.1282];
if Rmin==0
fprintf(flowoutput,'最大负荷时选择最优补偿点\n');
fprintf(flowoutput,'最大负荷时各补偿组合分别投入后,网络中各节点电压的恢复情况\n');
else
fprintf(flowoutput,'校验最大负荷情况下选择的补偿点在最小负荷时是否会出现过补偿现象\n');
end
for flag=1:4
if Rmin==0 %最大负荷时四种补偿组合分别补偿后结果输出
fprintf(flowoutput,'选择补偿组合%g\n',flag);
else
if Rmin==1&&flag==1 %仅校验最大负荷情况下选择的最优组合在最小负荷情况下进行补偿时是否会出现过补偿现象
fprintf(flowoutput,'选择补偿组合%g\n',flag);
else
break;
end
end
if flag==1
PQ(8)= PQ(8)+T1copy(4);
PQ(12)=PQ(12)+T1copy(6);
elseif flag==2
PQ(8)= PQ(8)+T1copy(4);
PQ(14)=PQ(14)+T1copy(7);
else
if flag==3
PQ(10)= PQ(10)+T1copy(5);
PQ(18)=PQ(18)+T1copy(9);
else
PQ(6)= PQ(6)+T1copy(3);
PQ(14)=PQ(14)+T1copy(7);
end
end
QP=zeros(2*numPQ,1);
for j=1:numPQ
QP(2*j-1)=PQ(2*j);
QP(2*j)=PQ(2*j-1);
end
E=ones(numPQ,1); %PQ节点的电压和相位赋初值
F=zeros(numPQ,1);
P=zeros(numPQ,1);
Q=zeros(numPQ,1);
epQP=zeros(2*numPQ,1); %存放P、Q的不平衡量
epEF=zeros(2*numPQ,1); %存放PQ节点的节点电压和相位的不平衡量
E1=1.12; %平衡节点1的节点电压幅值和相位
F1=0;
k=0; %存放迭代次数
while k<=20
k=k;
for j=2:numPQ+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -