function []=lab_5()
format short;
clc;
S = [ 
     0.6-0.9i   ;
     0.8+0.3i   ;
     -1+0i      ;
     -0.1+0.7i  ;
     -0.9+1i    ;
     0           ];

U0 = 10;
U = [0;0;0;0;0;0];
Zv = [
    0.8+1.6i    ;
    1+2i        ;
    0.2+0.4i    ;
    0.6+1.2i    ;
    0.8+1.6i    ;
    0.8+1.6i    ;
    0.4+0.8i  ];
Yv = 1./Zv;

A = [
    0   0    0    1   0   -1  0;
    1   0    -1   0   0   0   0;
    0   1    0    -1  0   0   0;
    0   0    0    0   0   1   -1;
    0   -1   1    0   -1  0   0;
    0   0    0    0   1   0   0];

Y = A * diag (Yv) * A';
J = conj (S ./ U0 /sqrt(3));
len=size(U,1);
G=real(Y);
B=imag(Y);
P=real(S);
Q=imag(S);
W=Y*U-sqrt(3)*J;
Wre=real(W);
Wim=imag(W);
dWre_dUre=[];
dWre_dUim=[];
dWim_dUre=[];
dWim_dUim=[];
Ure=real(U);
Uim=imag(U);
U0re=real(U0);
U0im=imag(U0);

for i=1:100
    for n=1:len
       Wre(n,1) = sum ( G(n,:)*Ure) - sum (B(n,:)*Uim)-( P(n)*(Ure(n)+U0re)+Q(n)*(Uim(n)+U0im))/((Ure(n)+U0re)^2+(Uim(n)+U0im)^2);
       Wim(n,1) = sum (B(n,:)*Ure)+sum(G(n,:)*Uim)-(P(n)*(Uim(n)+U0im)-Q(n)*(Ure(n)+U0re))/((Ure(n)+U0re)^2+(Uim(n)+U0im)^2);
    end
    dW_dU=zeros(2*len, 2*len);
for n=1:len
    for m=1:len
        dWre_dUre(n,m)=G(n,m)-P(n)/( (Ure(m)+U0re)^2+(Uim(m)+U0im)^2 );
        dWre_dUim(n,m)=-B(n,m)-Q(n)/( (Ure(m)+U0re)^2+(Uim(m)+U0im)^2 );
        dWim_dUre(n,m)=B(n,m)+Q(n)/( (Ure(m)+U0re)^2+(Uim(m)+U0im)^2 );
        dWim_dUim(n,m)=G(n,m)-P(n)/( (Ure(m)+U0re)^2+(Uim(m)+U0im)^2 );
    end
end
dW_dU = [dWre_dUre  dWre_dUim;
       dWim_dUre dWim_dUim];
disp('Определитель матрицы Якоби');
disp( det(dW_dU) )
V=[Ure;Uim] - inv(dW_dU)*[Wre; Wim];
Vre=V(1:len);
Vim=V(len+1 : 2*len);
Ure=Vre;
Uim=Vim;
end
U=Ure+1i*Uim;
Iv=A'*U.*Yv/sqrt(3);
disp('Расчёт методом Ньютона')
disp('Напряжения в узлах U, кВ')
disp('U=')
disp(abs(U+U0));
disp('токи в ветвях I, А')
abs(Iv*1000)
end
Соседние файлы в папке лаба 5