?? compensation2.m
字號:
function compensation2
clear all;
Rmin=0; %DATAmin的讀標志
Rmax=0; %DATAmax的讀標志
flowoutput=fopen('compensation2result.txt','wt'); %創(chuàng)建補償后潮流計算結(jié)果compensationresult.txt文件
fprintf(flowoutput,'線路固定補償方式下兩點補償后潮流計算結(jié)果分析\n');
fprintf(flowoutput,'補償組合1為節(jié)點5和7共同補償,補償組合2為節(jié)點5和8共同補償,補償組合3為節(jié)點6和10共同補償,補償組合4為節(jié)點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 %文件定位器不在文件結(jié)尾
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中下標為奇數(shù)的元素表示P,為偶數(shù)的表示Q
n1=size(PQ)/2;
numPQ=n1(1); %每行PQ節(jié)點個數(shù)計數(shù)
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中下標為奇數(shù)的元素表示P,為偶數(shù)的表示Q
n2=size(S)/2;
numS=n2(1); %平衡節(jié)點S個數(shù)計數(shù)
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 %節(jié)點導(dǎo)納矩陣行元素個數(shù)計數(shù)
YBre(n-2,j)=Yb(2*j-1); %節(jié)點導(dǎo)納矩陣實部
YBim(n-2,j)=Yb(2*j); %節(jié)點導(dǎo)納矩陣虛部
end
end
end
end
%///上面為讀取原始數(shù)據(jù),形成節(jié)點導(dǎo)納矩陣程序;下面為線路補償方式下兩點補償后潮流計算程序///
EEcopy=zeros(4); %存放最大負荷時各補償組合分別進行對應(yīng)容量補償后節(jié)點20的電壓幅值
EEEcopy=zeros(1); %存放最小負荷時各補償組合分別進行對應(yīng)容量補償后節(jié)點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,'最大負荷時選擇最優(yōu)補償點\n');
fprintf(flowoutput,'最大負荷時各補償組合分別投入后,網(wǎng)絡(luò)中各節(jié)點電壓的恢復(fù)情況\n');
else
fprintf(flowoutput,'校驗最大負荷情況下選擇的補償點在最小負荷時是否會出現(xiàn)過補償現(xiàn)象\n');
end
for flag=1:4
if Rmin==0 %最大負荷時四種補償組合分別補償后結(jié)果輸出
fprintf(flowoutput,'選擇補償組合%g\n',flag);
else
if Rmin==1&&flag==1 %僅校驗最大負荷情況下選擇的最優(yōu)組合在最小負荷情況下進行補償時是否會出現(xiàn)過補償現(xiàn)象
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節(jié)點的電壓和相位賦初值
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節(jié)點的節(jié)點電壓和相位的不平衡量
E1=1.12; %平衡節(jié)點1的節(jié)點電壓幅值和相位
F1=0;
k=0; %存放迭代次數(shù)
while k<=20
k=k;
for j=2:numPQ+1
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -