Write MATLAB code to find Y bus for any bus system

Click For Summary
SUMMARY

The discussion focuses on writing MATLAB code to compute the Y bus matrix for any bus system using a step-by-step method. The provided code initializes the Y bus matrix, calculates off-diagonal and diagonal elements, and computes bus voltages. A user reports discrepancies between their results and a corrected version, prompting suggestions to utilize the MATLAB debugger for troubleshooting. Key insights emphasize the importance of understanding algorithms and debugging techniques in programming.

PREREQUISITES
  • Familiarity with MATLAB programming language
  • Understanding of electrical engineering concepts, specifically Y bus matrix
  • Knowledge of complex numbers and their operations in MATLAB
  • Experience with debugging techniques in MATLAB
NEXT STEPS
  • Learn MATLAB debugging techniques to identify and resolve code issues
  • Study the formation of Y bus matrices in power systems
  • Explore MATLAB functions for matrix operations and complex number handling
  • Review algorithms for manual calculation of Y bus matrices
USEFUL FOR

Electrical engineers, MATLAB programmers, and students studying power systems who need to compute and analyze Y bus matrices effectively.

Fatima Hasan
Messages
315
Reaction score
14
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
endfor 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: 178
  • Question.JPG
    Question.JPG
    12.9 KB · Views: 188
Physics news on Phys.org
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.
 
  • Love
Likes   Reactions: Tom.G

Similar threads

  • · Replies 21 ·
Replies
21
Views
3K
Replies
2
Views
1K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K