Write MATLAB code to find Y bus for any bus system

  • Engineering
  • Thread starter Fatima Hasan
  • Start date
  • #1
319
13
Homework Statement:
Write MATLAB code to find Y bus for any bus system, calculate Z, I, Bus voltages, and power of the following system (attached below).
Relevant Equations:
-
Here's my work:
Matlab:
clc;
clear all;
% Ybus by step by step method for an any bus system

%         |  From |  To   |   R     |   X    |   gsh    |     B  |   T|ysh
%         |  Bus  | Bus   |  pu     |  pu    |    pu    |     pu   | ph-sh
linedata =  [1       2        0        -5         0          0        0
             1       3        0        -3         0          0        0
             2       3        0        -4         0          0        0];
        
fbus=linedata(:,1);             % Reading from bus
tbus=linedata(:,2);             % Reading to bus
R = linedata(:,3);              % Resistance, R...
X = linedata(:,4);              % Reactance, X...
gsh=linedata(:,5);
B = 1i*linedata(:,6);         % Ground Admittance, TOTAL..
T=linedata(:,7);
Z= R + 1i*X;                    % Z matrix...
y = 1./Z

buses = max(max(fbus),max(tbus));      % No. of buses...
lines = length(fbus);               % No. of elements...

%        Eg    Xg  Zd
BusData=[1     1   inf
        0      0   inf
        0      0   inf]   
 
Eg=BusData(:,1);
Xg=1i*BusData(:,2);
Zd=1i*BusData(:,3);
Zd=-1./Zd;
Xg=-Xg;   
ybus= zeros(buses,buses);       % Initializing YBUS as a zero matrix

for i=1:lines                % Forming the off diagonal elements
 if fbus(i)>0 && tbus(i)>0
     ybus(fbus(i),tbus(i))=ybus(fbus(i),tbus(i))-y(i);
    ybus(tbus(i),fbus(i))=ybus(fbus(i),tbus(i));     %same as opposite element
 end
end


for i=1:buses                   % Forming the diagonal elements
    for j=1:lines
        if fbus(j)==i || tbus(j)==i      % || represents  OR
            ysh(i,i)=(gsh(j)+B(j))/2;   
            ybus(i,i)=ybus(i,i)+y(j);   
        end
    end
end
yn=ybus+ysh+Xg+Zd   %Y
I=[Eg/Xg]           %I
Z=inv(yn)           % Z
V=inv(yn)*I         %Bus voltages

However, I got a different result from the corrected one (attached below). Could someone figure out my mistake please ?
 

Attachments

  • Ans.JPG
    Ans.JPG
    16.1 KB · Views: 50
  • Question.JPG
    Question.JPG
    13.5 KB · Views: 50

Answers and Replies

  • #2
13,169
7,065
Its unreasonable to tell us:

I wrote this program and it doesn't work can you find my mistake?

You should instead use the matlab debugger and step through your code to see if its doing what you expect at every step.

Sadly, programmers must understand the algorithms they implement and be able to solve it manually in order to be able to debug their programs.

Work through your code and tell what line or lines you think its wrong. You can even put in print statements to show intermediate results and use the computer to compute some numbers to help you.
 

Related Threads on Write MATLAB code to find Y bus for any bus system

  • Last Post
Replies
0
Views
1K
  • Last Post
Replies
13
Views
5K
Replies
10
Views
52K
Replies
21
Views
2K
Replies
2
Views
1K
Replies
0
Views
3K
Replies
4
Views
8K
  • Last Post
Replies
1
Views
1K
  • Last Post
Replies
14
Views
4K
Top