?? sl14.m
字號:
clc
clear
% NODE; % TPYE V ANGEL PG QG PL QL SHUNT
% NODE TYPE PQ:1 PV:2 PH:3
% BRANCH; % i j R X B K
NODE=[
3 1.0600 0 0 0 0 0 0
2 1.0450 0 40.0000 0 21.7000 12.7000 0
2 1.0100 0 0 0 94.2000 19.0000 0
1 1.0000 0 0 0 47.8000 -3.9000 0
1 1.0000 0 0 0 7.6000 1.6000 0
2 1.0700 0 0 0 11.2000 7.5000 0
1 1.0000 0 0 0 0 0 0
2 1.0900 0 0 0 0 0 0
1 1.0000 0 0 0 29.5000 16.6000 0.1900
1 1.0000 0 0 0 9.0000 5.8000 0
1 1.0000 0 0 0 3.5000 1.8000 0
1 1.0000 0 0 0 6.1000 1.6000 0
1 1.0000 0 0 0 13.5000 5.8000 0
1 1.0000 0 0 0 14.9000 5.0000 0
];
BRANCH=[
2 1 .01938 .05917 .0264*2 1.000;
3 2 .04699 .19797 .0219*2 1.000;
4 2 .05811 .17632 .0187*2 1.000;
5 1 .05403 .22304 .0246*2 1.000;
5 2 .05695 .17388 .0170*2 1.000;
4 3 .06701 .17103 .0173*2 1.000;
5 4 .01335 .04211 .0064*2 1.000;
6 5 .00000 .25202 .0000 0.932;
7 4 .00000 .20912 .0000 0.978;
8 7 .00000 .17615 .0000 1.000;
9 4 .00000 .55618 .0000 0.969;
9 7 .00000 .11001 .0000 1.000;
10 9 .03181 .08450 .0000 1.000;
11 6 .09498 .19890 .0000 1.000;
12 6 .12291 .15581 .0000 1.000;
13 6 .06615 .13027 .0000 1.000;
14 9 .12711 .27038 .0000 1.000;
11 10 .08205 .19207 .0000 1.000;
13 12 .22092 .19988 .0000 1.000;
14 13 .17093 .34802 .0000 1.000;
] ;
x = size(NODE);
n = x(1);
m = length(find(NODE(:,1)==1));%PQ節點的個數
y = size(BRANCH);
G = zeros(n);
B = zeros(n);
for i=1:y(1)
ST = BRANCH(i,1);
ED = BRANCH(i,2);
R = BRANCH(i,3);
X = BRANCH(i,4);
BB = BRANCH(i,5);
K = 1/BRANCH(i,6);
RX2 = R^2+X^2;
G(ST,ED) = -K*R/RX2;
G(ED,ST) = -K*R/RX2;
B(ST,ED) = K*X/RX2;
B(ED,ST) = K*X/RX2;
G(ST,ST) = G(ST,ST) + R/RX2;
B(ST,ST) = B(ST,ST) - X/RX2;
B(ST,ST) = B(ST,ST) + BB/2;
G(ED,ED) = G(ED,ED) + K^2*R/RX2;
B(ED,ED) = B(ED,ED) - K^2*X/RX2;
B(ED,ED) = B(ED,ED) + BB/2;
end;
for i=1:n
B(i,i) = B(i,i) + NODE(i,8);
end; %求出節點導納矩陣
Delta_P = zeros(n,1);
Delta_Q = zeros(n,1);
Delta_V_Ample = zeros(n,1);
Delta_V_Angle = zeros(n,1);
PP = find(NODE(:,1)<3); % PQ/PV 節點
QQ = find(NODE(:,1)==1); % PQ 節點
V_Ample = NODE(:,2);
V_Ample(QQ) = 1.0;
V_Angle = zeros(n,1);
Pis = NODE(:,4)/100;
Qis = NODE(:,5)/100;
Pld = NODE(:,6)/100;
Qld = NODE(:,7)/100;
Pis(PP) = Pis(PP) - Pld(PP);
Qis(QQ) = Qis(QQ) - Qld(QQ);
kp = 0;
kq = 0;
ep = 1e-6;
k = 0;
while(~(kp*kq)) %只要非1
k =k + 1;
Delta_V_Angle_ij = V_Angle*ones(1,n) - ( V_Angle*ones(1,n) )'; % 計算相角差矩陣
S = G.*cos(Delta_V_Angle_ij) + B.*sin(Delta_V_Angle_ij); % Sij = Gij *cos(delta_ij) + Bij *sin(delta_ij)
P = V_Ample.*(S*V_Ample); % P為計算出來的母線功率
Delta_P(PP) = Pis(PP) - P(PP); % 有功不平衡量
if max(abs(Delta_P))<ep % 有功不平衡量小于允許范圍就做標記
kp = 1;
end;
if kp==0 % 有功不平衡量大于允許范圍就作修正
Delta_V_Angle(PP) = -(B(PP,PP)\( Delta_P(PP)./V_Ample(PP) ))./V_Ample(PP); % 解修正方程
V_Angle(PP) = V_Angle(PP) + Delta_V_Angle(PP); % 修正相角
kq = 0; % 這是必須的,認為無功不平衡量還是不滿足
end;
Delta_V_Angle_ij = V_Angle*ones(1,n) - ( V_Angle*ones(1,n) )'; % 計算相角差矩陣
T = G.*sin(Delta_V_Angle_ij) - B.*cos(Delta_V_Angle_ij); % Tij = Gij *sin(delta_ij) - Bij *cos(delta_ij)
Q = V_Ample.*(T*V_Ample); % Q為計算出來的母線功率
Delta_Q(QQ) = Qis(QQ) - Q(QQ); % 無功不平衡量
if max(abs(Delta_Q))<ep % 無功不平衡量小于允許范圍就做標記
kq = 1;
end;
if kq==0 % 無功不平衡量大于允許范圍就作修正
Delta_V_Ample(QQ) = -B(QQ,QQ)\(Delta_Q(QQ)./V_Ample(QQ)); % 解修正方程
V_Ample(QQ) = V_Ample(QQ) + Delta_V_Ample(QQ); % 修正幅值
kp = 0; % 這是必須的,認為有功不平衡量還是不滿足
end;
[Delta_P(PP)',Delta_Q(QQ)';V_Ample(QQ)',V_Angle(PP)'*180/pi]; %每次迭代結果
end;
[V_Ample';NODE(:,2)';V_Ample'-NODE(:,2)';V_Angle'*180/pi;NODE(:,3)';V_Angle'*180/pi-NODE(:,3)']';
P = P+Pld;
Q = Q+Qld;
V = [V_Ample,V_Angle*180/pi,P*100,Q*100,Pld*100,Qld*100] % 母線全部信息,幅值、相角、發電有功、發電無功、負荷有功、負荷無功
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -