pes2014/admmatrix.asv

31 lines
2.2 KiB
Plaintext
Raw Normal View History

2012-05-22 11:33:21 +08:00
function [G,B,GB,Y,r,c,Angle] = admmatrix(Busnum,Linei,Linej,Liner,Linex,Lineb,Transfori...
,Transforj,Transforr,Transforx,Transfork0,Branchi,Branchb)
%**************************************************************************
% <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : <20>Ӻ<EFBFBD><D3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>γɽڵ㵼<DAB5>ɾ<EFBFBD><C9BE><EFBFBD>Y
% <20><> <20>ߣ<EFBFBD>
% <20><><EFBFBD><EFBFBD>ʱ<EFBFBD>䣺2010.12
%**************************************************************************
%% ֧·<D6A7><C2B7><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD>
G = -sparse(Linei,Linej,Liner./(Liner.^2+Linex.^2),Busnum,Busnum) - sparse(Linej,Linei,Liner./(Liner.^2+Linex.^2),Busnum,Busnum);
G = G - sparse(1:Busnum,1:Busnum,sum(G,2)'); % <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·֧·<D6A7>
B = sparse(Linei,Linej,Linex./(Liner.^2+Linex.^2),Busnum,Busnum)+sparse(Linej,Linei,Linex./(Liner.^2+Linex.^2),Busnum,Busnum);
B = B - sparse(1:Busnum,1:Busnum,sum(B,2)')+sparse(Linei,Linei,Lineb,Busnum,Busnum)+sparse(Linej,Linej,Lineb,Busnum,Busnum);
%% <20><>ѹ<EFBFBD><D1B9>֧·<D6A7><C2B7><EFBFBD><EFBFBD>
if Transfori>0
mr = Transforr./(Transforr.^2+Transforx.^2); % <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9>֧·<D6A7>
mx = -Transforx./(Transforr.^2+Transforx.^2); % <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9>֧·<D6A7><C2B7><EFBFBD><EFBFBD>
G = G-sparse(Transfori,Transforj,mr./Transfork0,Busnum,Busnum)-sparse(Transforj,Transfori,mr./Transfork0,Busnum,Busnum)...
+sparse(Transfori,Transfori,mr./Transfork0./Transfork0,Busnum,Busnum)+sparse(Transforj,Transforj,mr,Busnum,Busnum);
B = B-sparse(Transfori,Transforj,mx./Transfork0,Busnum,Busnum)-sparse(Transforj,Transfori,mx./Transfork0,Busnum,Busnum)...
+sparse(Transfori,Transfori,mx./Transfork0./Transfork0,Busnum,Busnum)+sparse(Transforj,Transforj,mx,Busnum,Busnum);
end
%% <20>ӵ<EFBFBD>֧·<D6A7><C2B7><EFBFBD><EFBFBD>
if Branchi>0 % <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>޽ӵ<DEBD>֧·
B = B+sparse(Branchi,Branchi,Branchb,Busnum,Busnum);
end
%% <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ
GB = G+B.*1i; %<25><><EFBFBD><EFBFBD><E7B5BC><EFBFBD><EFBFBD><EFBFBD>ɺϲ<C9BA><CFB2><EFBFBD>д<EFBFBD>ɸ<EFBFBD><C9B8><EFBFBD><EFBFBD><EFBFBD>ʽ
Y = abs(GB); %<25><><EFBFBD>ڵ㵼<DAB5>ɷ<EFBFBD>ֵ
[r,c] = find(Y);
Angle = angle(GB(GB~=0)); %<25><><EFBFBD>ڵ㵼<DAB5>ɽǶ<C9BD>
%Angle=angle(GB);