ClearAll["Global`*"]

Ymatice[uzel1_,uzel2_,Z_,Y_,B_,T_]:=Module[{YT,Ykm,Ymk,Yk0,Ym0,u1,u2,m},
YT=(1/Z);
Ykm=(YT/T);
Ymk=(YT/(Conjugate[T]));
Yk0=(1-(1/T))*YT+I*(B/2);
Ym0=((1-T)/(T*Conjugate[T]))*YT+I*(B/2);
(*Nejprve je nutno vložit na diagnálu uzlové admitance*)
m=DiagonalMatrix[Y];
For[i=1,i<Length[uzel1]+1,i++,
u1=uzel1[[i]];
u2=uzel2[[i]];
(*Dále pak admitance všech okolních větví*)
m[[u1,u1]]=m[[u1,u1]]+Ykm[[i]]+Yk0[[i]];
m[[u2,u2]]=m[[u2,u2]]+Ymk[[i]]+Ym0[[i]];
(*nediagonalni prvky*)
m[[u1,u2]]=m[[u1,u2]]-Ykm[[i]];
m[[u2,u1]]=m[[u2,u1]]-Ymk[[i]];
];
m
];

kV=1000;
MVA=MW=MVAr=1000000;
µS=(10^(-6));

G1={Eg->13.8kV,Sg->100MVA,xd->0.15};
T1={St->100MVA,U1->13.8kV,U2->121kV,p->(U1/U2),uk->0.1};
T2={St->25MVA,U1->23kV,U2->110kV,p->(U1/U2),uk->0.1};
Z1={Uz->22kV,Pz->10MW,Qz->-5MVAr};
V1={R->0.4,X->6,B->150µS};
V2={R->0.4,X->8,B->200µS};
V3={R->0.2,X->4,B->100µS};

(*a) - sestavte admitanční matici obvodu*)

(*vektor uzlových admitancí sousledné složky*)
Y1={0,0,0,(*G1*),(*Z1*)}

(*propoje mezi uzly*)
uzel1={1,1,2,2,5};
uzel2={2,3,3,4,3};

(*vektor meziuzlových impedancí a susceptancí sousledné složky*)
Zkm1={(*V1*),(*V2*),(*V3*),(*T1*),(*T2*)}
B1={(*V1*),(*V2*),(*V3*),(*T1*),(*T2*)}

(*vektor převodů*)
T={1,1,1,(*T24*),(*T53*)}//N

ymat=Ymatice[uzel1,
uzel2,
Zkm1,
Y1,
B1,
T];
%//MatrixForm
zmat=Inverse[ymat];
%//MatrixForm

(*b1) - stanovte viděnou impdeanci v uzlu 3*)

(*b2) - stanovte meziuzlovou viděnou impedanci mezi uzly 1 a 2*)

(*c1) - stanovte napětí na svorkách generátoru*)

(*c2) - stanovte proud generátoru*)

(*c3) - stanovte výkon generátoru*)

(*d) - stanovte pokles napětí na generátoru při ideálním zkratu v uzlu 5, řešte metodou superpozice.*)