Professional Documents
Culture Documents
Tol = 1;
Iter = 1;
while (Tol > 1e-5) % Iteration starting..
P = zeros(nbus,1);
Q = zeros(nbus,1);
% Calculate P and Q
for i = 1:nbus
for k = 1:nbus
P(i) = P(i) + V(i)* V(k)*(G(i,k)*cos(del(i)-del(k)) +
B(i,k)*sin(del(i)-del(k)));
Q(i) = Q(i) + V(i)* V(k)*(G(i,k)*sin(del(i)-del(k)) -
B(i,k)*cos(del(i)-del(k)));
end
end
% Jacobian
% J1 - Derivative of Real Power Injections with Angles..
J1 = zeros(nbus-1,nbus-1);
for i = 1:(nbus-1)
m = i+1;
for k = 1:(nbus-1)
n = k+1;
if n == m
for n = 1:nbus
J1(i,k) = J1(i,k) + V(m)* V(n)*(-G(m,n)*sin(del(m)-del(n)) +
B(m,n)*cos(del(m)-del(n)));
end
J1(i,k) = J1(i,k) - V(m)^2*B(m,m);
else
J1(i,k) = V(m)* V(n)*(G(m,n)*sin(del(m)-del(n)) -
B(m,n)*cos(del(m)-del(n)));
end
end
end
Iter = Iter + 1;
Tol = max(abs(M)); % Tolerance..
end
loadflow(nbus,V,del,BMva); % Calling Loadflow.m..
% Program to for Admittance And Impedance Bus Formation....
% Type....
% 1 - Slack Bus..
% 2 - PV Bus..
% 3 - PQ Bus..
% |Bus | Type | Vsp | theta | PGi | QGi | PLi | QLi | Qmin | Qmax |
busdat14 = [1 1 1.060 0 0 0 0 0 0 0;
2 2 1.045 0 40 42.4 21.7 12.7 -40 50;
3 2 1.010 0 0 23.4 94.2 19.0 0 40;
4 3 1.0 0 0 0 47.8 -3.9 0 0;
5 3 1.0 0 0 0 7.6 1.6 0 0;
6 2 1.070 0 0 12.2 11.2 7.5 -6 24;
7 3 1.0 0 0 0 0.0 0.0 0 0;
8 2 1.090 0 0 17.4 0.0 0.0 -6 24;
9 3 1.0 0 0 0 29.5 16.6 0 0;
10 3 1.0 0 0 0 9.0 5.8 0 0;
11 3 1.0 0 0 0 3.5 1.8 0 0;
12 3 1.0 0 0 0 6.1 1.6 0 0;
13 3 1.0 0 0 0 13.5 5.8 0 0;
14 3 1.0 0 0 0 14.9 5.0 0
% |Bus | Type | Vsp | theta | PGi | QGi | PLi | QLi | Qmin | Qmax |
busdat30 = [1 1 1.06 0 0 0 0 0 0 0;
2 2 1.043 0 40 50.0 21.7 12.7 -40 50;
3 3 1.0 0 0 0 2.4 1.2 0 0;
4 3 1.06 0 0 0 7.6 1.6 0 0;
5 2 1.01 0 0 37.0 94.2 19.0 -40 40;
6 3 1.0 0 0 0 0.0 0.0 0 0;
7 3 1.0 0 0 0 22.8 10.9 0 0;
8 2 1.01 0 0 37.3 30.0 30.0 -10 40;
9 3 1.0 0 0 0 0.0 0.0 0 0;
10 3 1.0 0 0 19.0 5.8 2.0 0 0;
11 2 1.082 0 0 16.2 0.0 0.0 -6 24;
12 3 1.0 0 0 0 11.2 7.5 0 0;
13 2 1.071 0 0 10.6 0.0 0.0 -6 24;
14 3 1.0 0 0 0 6.2 1.6 0 0;
15 3 1.0 0 0 0 8.2 2.5 0 0;
16 3 1.0 0 0 0 3.5 1.8 0 0;
17 3 1.0 0 0 0 9.0 5.8 0 0;
18 3 1.0 0 0 0 3.2 0.9 0 0;
19 3 1.0 0 0 0 9.5 3.4 0 0;
20 3 1.0 0 0 0 2.2 0.7 0 0;
21 3 1.0 0 0 0 17.5 11.2 0 0;
22 3 1.0 0 0 0 0.0 0.0 0 0;
23 3 1.0 0 0 0 3.2 1.6 0 0;
24 3 1.0 0 0 4.3 8.7 6.7 0 0;
25 3 1.0 0 0 0 0.0 0.0 0 0;
26 3 1.0 0 0 0 3.5 2.3 0 0;
27 3 1.0 0 0 0 0.0 0.0 0 0;
28 3 1.0 0 0 0 0.0 0.0 0 0;
29 3 1.0 0 0 0 2.4 0.9 0 0;
30 3 1.0 0 0 0 10.6 1.9 0 0 ];
% |Bus | Type | Vsp | theta | PGi | QGi | PLi | QLi | Qmin | Qmax |
busdat57 = [1 1 1.040 0 0.0 0.0 0.0 0.0 0.0 0.0;
2 2 1.010 0 3.0 88.0 0.0 -0.8 50.0 -17.0;
3 2 0.985 0 41.0 21.0 40.0 -1.0 60.0 -10.0;
4 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
5 3 1.000 0 13.0 4.0 0.0 0.0 0.0 0.0;
6 2 0.980 0 75.0 2.0 0.0 0.8 25.0 -8.0;
7 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
8 2 1.005 0 150.0 22.0 450.0 62.1 200.0 -140.0;
9 2 0.980 0 121.0 26.0 0.0 2.2 9.0 -3.0;
10 3 1.000 0 5.0 2.0 0.0 0.0 0.0 0.0;
11 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
12 2 1.015 0 377.0 24.0 310.0 128.5 155.0 -150.0;
13 3 1.000 0 18.0 2.3 0.0 0.0 0.0 0.0;
14 3 1.000 0 10.5 5.3 0.0 0.0 0.0 0.0;
15 3 1.000 0 22.0 5.0 0.0 0.0 0.0 0.0;
16 3 1.000 0 43.0 3.0 0.0 0.0 0.0 0.0;
17 3 1.000 0 42.0 8.0 0.0 0.0 0.0 0.0;
18 3 1.000 0 27.2 9.8 0.0 0.0 0.0 0.0;
19 3 1.000 0 3.3 0.6 0.0 0.0 0.0 0.0;
20 3 1.000 0 2.3 1.0 0.0 0.0 0.0 0.0;
21 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
22 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
23 3 1.000 0 6.3 2.1 0.0 0.0 0.0 0.0;
24 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
25 3 1.000 0 6.3 3.2 0.0 0.0 0.0 0.0;
26 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
27 3 1.000 0 9.3 0.5 0.0 0.0 0.0 0.0;
28 3 1.000 0 4.6 2.3 0.0 0.0 0.0 0.0;
29 3 1.000 0 17.0 2.6 0.0 0.0 0.0 0.0;
30 3 1.000 0 3.6 1.8 0.0 0.0 0.0 0.0;
31 3 1.000 0 5.8 2.9 0.0 0.0 0.0 0.0;
32 3 1.000 0 1.6 0.8 0.0 0.0 0.0 0.0;
33 3 1.000 0 3.8 1.9 0.0 0.0 0.0 0.0;
34 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
35 3 1.000 0 6.0 3.0 0.0 0.0 0.0 0.0;
36 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
37 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
38 3 1.000 0 14.0 7.0 0.0 0.0 0.0 0.0;
39 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
40 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
41 3 1.000 0 6.3 3.0 0.0 0.0 0.0 0.0;
42 3 1.000 0 7.1 4.4 0.0 0.0 0.0 0.0;
43 3 1.000 0 2.0 1.0 0.0 0.0 0.0 0.0;
44 3 1.000 0 12.0 1.8 0.0 0.0 0.0 0.0;
45 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
46 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
47 3 1.000 0 29.7 11.6 0.0 0.0 0.0 0.0;
48 3 1.000 0 0.0 0.0 0.0 0.0 0.0 0.0;
49 3 1.000 0 18.0 8.5 0.0 0.0 0.0 0.0;
50 3 1.000 0 21.0 10.5 0.0 0.0 0.0 0.0;
51 3 1.000 0 18.0 5.3 0.0 0.0 0.0 0.0;
52 3 1.000 0 4.9 2.2 0.0 0.0 0.0 0.0;
53 3 1.000 0 20.0 10.0 0.0 0.0 0.0 0.0;
54 3 1.000 0 4.1 1.4 0.0 0.0 0.0 0.0;
55 3 1.000 0 6.8 3.4 0.0 0.0 0.0 0.0;
56 3 1.000 0 7.6 2.2 0.0 0.0 0.0 0.0;
57 3 1.000 0 6.7 2.0 0.0 0.0 0.0 0.0];
switch num
case 14
busdt = busdat14;
case 30
busdt = busdat30;
case 57
busdt = busdat57;
end
% Returns Line datas of the system...
function linedt = linedatas(num)
switch num
case 14
linedt = linedat14;
case 30
linedt = linedat30;
case 57
linedt = linedat57;
end
\
% Program for Bus Power Injections, Line & Power flows (p.u)...
function [Pi Qi Pg Qg Pl Ql] = loadflow(nb,V,del,BMva)
Iij = zeros(nb,nb);
Sij = zeros(nb,nb);
Si = zeros(nb,1);
% Line Losses..
Lij = zeros(nl,1);
for m = 1:nl
p = fb(m); q = tb(m);
Lij(m) = Sij(p,q) + Sij(q,p);
end
Lpij = real(Lij);
Lqij = imag(Lij);
disp('############################################--########################');
disp('----------------------------------------------------------------------');
disp(' Newton Raphson Loadflow Analysis ');
disp('----------------------------------------------------------------------');
disp('| Bus | V | Angle | Injection | Generation |
Load |');
disp('| No | pu | Degree | MW | MVar | MW | Mvar | MW
| MVar | ');
for m = 1:nb
disp('------------------------------------------------------------------');
fprintf('%3g', m); fprintf(' %8.4f', V(m)); fprintf(' %8.4f', Del(m));
fprintf(' %8.3f', Pi(m)); fprintf(' %8.3f', Qi(m));
fprintf(' %8.3f', Pg(m)); fprintf(' %8.3f', Qg(m));
fprintf(' %8.3f', Pl(m)); fprintf(' %8.3f', Ql(m)); fprintf('\n');
end
disp('-----------------------------------------------------------------------');
fprintf(' Total ');fprintf(' %8.3f', sum(Pi));fprintf(' %8.3f',
sum(Qi));
fprintf(' %8.3f', sum(Pi+Pl)); fprintf(' %8.3f', sum(Qi+Ql));
fprintf(' %8.3f', sum(Pl)); fprintf(' %8.3f', sum(Ql)); fprintf('\n');
disp('-----------------------------------------------------------------------');
disp('#######################################################################');
disp('-----------------------------------------------------------------------');
disp(' Line FLow and Losses ');
disp('-----------------------------------------------------------------------');
disp('|From|To | P | Q | From| To | P | Q | Line
Loss |');
disp('|Bus |Bus| MW | MVar | Bus | Bus| MW | MVar | MW |
MVar |');
for m = 1:nl
p = fb(m); q = tb(m);
disp('--------------------------------------------------------------------');
fprintf('%4g',full(p)); fprintf('%4g',full(q)); fprintf(' %8.3f',
full(Pij(p,q))); fprintf(' %8.3f',full(Qij(p,q)));
fprintf(' %4g',full(q)); fprintf('%4g',full(p)); fprintf('
%8.3f',full(Pij(q,p))); fprintf(' %8.3f',full(Qij(q,p)));
fprintf(' %8.3f',full(Lpij(m))); fprintf(' %8.3f',full(Lqij(m)));
fprintf('\n');
end
disp('---------------------------------------------------------------------');
fprintf(' Total Loss ');
fprintf(' %8.3f', sum(Lpij)); fprintf(' %8.3f', sum(Lqij)); fprintf('\n');
disp('---------------------------------------------------------------------');
disp('######################################################################');