what is mistake in my matlab code

1 次查看(过去 30 天)
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 个评论
Rena Berman
Rena Berman 2017-1-20
(Answers Dev) Restored Question.

请先登录,再进行评论。

采纳的回答

Kuifeng
Kuifeng 2016-4-2
编辑:Walter Roberson 2016-4-2
i think maybe your loop never finishes.... endlesss loop in the 'Ibranch'
k = 1;
while k<=nbr % k run in the number of branch
while Ibranch(k)>Imax(k) %to check Ibranh in each of branch
PG2=PG2-0.001;
Pgg=[0.0923,PG2,0.0792,1];
V=Zbus*(C*(phi*Pgg'));
k=k+1;
% caculate again the Ibranch in branch;
end
end
  1 个评论
Quynh tran
Quynh tran 2016-4-2
Many thanks for your answer. I tried as you talk, with your code, it even not work and freezing the program.

请先登录,再进行评论。

更多回答(2 个)

Walter Roberson
Walter Roberson 2016-4-2
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 个评论
Walter Roberson
Walter Roberson 2016-4-2
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
Quynh tran 2016-4-2
as you talk, I change my variable name. But have a new problem, that is the loop is not stop, it run enough niterloop even when the the Ibranch<Imax

请先登录,再进行评论。


Quynh tran
Quynh tran 2016-4-3
do you have any correct?

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by