what is mistake in my matlab code
Mostrar comentarios más antiguos
Ybusn(linedata)=
Columns 1 through 5
14.7752 - 6.4985i 0.0000 + 0.0000i 0.0000 + 0.0000i -14.7752 + 6.4985i 0.0000 + 0.0000i
0.0000 + 0.0000i 14.7752 - 6.4985i 0.0000 + 0.0000i 0.0000 + 0.0000i -14.7752 + 6.4985i
0.0000 + 0.0000i 0.0000 + 0.0000i 14.7752 - 6.4985i 0.0000 + 0.0000i 0.0000 + 0.0000i
-14.7752 + 6.4985i 0.0000 + 0.0000i 0.0000 + 0.0000i 26.1902 - 9.6810i -11.4150 + 3.1825i
0.0000 + 0.0000i -14.7752 + 6.4985i 0.0000 + 0.0000i -11.4150 + 3.1825i 37.6052 -12.8635i
0.0000 + 0.0000i 0.0000 + 0.0000i -14.7752 + 6.4985i 0.0000 + 0.0000i -11.4150 + 3.1825i
Column 6
0.0000 + 0.0000i
0.0000 + 0.0000i
-14.7752 + 6.4985i
0.0000 + 0.0000i
-11.4150 + 3.1825i
26.1902 - 9.6810i
phi =
0.9840 - 0.0134i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.9808 - 0.0125i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.9795 - 0.0122i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.0000 - 0.0000i
C =
1.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 1.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 0.0000 + 0.0000i 1.0000 + 0.0000i 0.0000 + 0.0000i
-0.4669 + 0.0010i -0.4669 + 0.0010i -0.4669 + 0.0010i -0.4669 + 0.0010i
-0.2139 - 0.0103i -0.2139 - 0.0103i -0.2139 - 0.0103i -0.2139 - 0.0103i
-0.3193 + 0.0093i -0.3193 + 0.0093i -0.3193 + 0.0093i -0.3193 + 0.0093i
Zbus=1/Ybus;
PG1=0.0923;
PG2=0.1368; %sau nay chinh lai de chon nut dieu chinh cong suat phat
PG3=0.0792;
Pgg=[PG1,PG2,PG3,1];
%tinh dong dien nhanh
e=ybusn(linedata);
linebranch=zeros(nbr,3);
Ig=phi*Pgg';
Ibus=C*Ig;
V=Zbus*Ibus;
for k=1:nbr
if nl(k)>0 && nr(k)>0
Ibranch(k)=abs(-(V(nl(k))-V(nr(k)))*e(nl(k),nr(k)));
end
end
Ibranch;
linebranch(:,1)=linedata(:,1);
linebranch(:,2)=linedata(:,2);
linebranch(:,3)=Ibranch';
disp([ ' nl nr |I|' ]);
disp([linebranch]);
%Kiem tra dong nhanh
nbr=length(linedata(:,1));
Imax=linedata(:,7);
flag=0;
niter=0;
n=0
while (flag==0&&niter<90)
for n=1:nbr
if linebranch(n)>Imax(n)
niter=niter+1;
PG2=PG2-0.001;
Pgg=[PG1,PG2,PG3,1];
Ig=phi*Pgg';
Ibus=C*Ig;
V=Zbus*Ibus;
for k=1:nbr
if nl(k)>0 && nr(k)>0
Ibranch(k)=abs(-(V(nl(k))-V(nr(k)))*e(nl(k),nr(k)));
end
end
else
flag=1;
end
end
end
Ibranch
I changed my new code. It work ok but the loop is not stop when Ibracnh<Imax.Please post your answer in a new answer let me know you online and answer you soon, don't post in comment.
4 comentarios
Walter Roberson
el 2 de Abr. de 2016
And without the code for "caculate again the Ibranch in branch"
Star Strider
el 2 de Abr. de 2016
Please define these:
xfirst;
pop0;
popp=pop;
x0n;
Plossn; %buoc nay thuc hien de tinh duoc ma tran B
%nhap cong suat phat tung nut
Pgg=[0.0923,0.1368,0.0792,1];
%tinh dong dien nhanh
e=ybusn(linedata);
linebranch=zeros(nbr,3);
Ig=phi*Pgg';
Ibus=C*Ig;
V=Zbus*Ibus;
Please also define any other constants necessary to run your code.
Quynh tran
el 2 de Abr. de 2016
Rena Berman
el 20 de En. de 2017
(Answers Dev) Restored Question.
Respuesta aceptada
Más respuestas (2)
Walter Roberson
el 2 de Abr. de 2016
Your code has
while Ibranch(k)>Imax(k) %to check Ibranh in each of branch
but inside the "while" you do not appear to change Ibranch or Imax or k. If the condition becomes true once, then it appears that you are going to get an infinite loop.
However, you do have the line of code
caculate again the Ibranch in branch;
which, due to MATLAB's command / function equivalence, would be the same as calling
calculate('again', 'the', 'Ibranch', 'in', 'branch')
and we have no information about any function named "calculate" or how that function is going to modify Ibranch or Imax . It could happen. It just looks unlikely.
5 comentarios
Quynh tran
el 2 de Abr. de 2016
Walter Roberson
el 2 de Abr. de 2016
while k=1:nbr is not valid code.
Be careful: you appear to have an outer loop in "k" and also an inner loop in "k".
Quynh tran
el 2 de Abr. de 2016
Walter Roberson
el 2 de Abr. de 2016
Your current posted code has an outer loop of "for k=1:nbr " and also has that as an inner loop. If you need an inner loop then you must use a different variable name for the index.
Quynh tran
el 2 de Abr. de 2016
Quynh tran
el 3 de Abr. de 2016
0 votos
Categorías
Más información sobre App Building en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!