How do I convert distributed parameter lines to Pi Section lines?
5 views (last 30 days)
I am currently trying to modify the IEEE 13 Node Test Feeder example in simulink. Specifically, I need to convert the Distributed Parameter lines to Pi Section lines so that my discrete step time can be 10us or greater.
The problem I'm running into is that the resistance per unit length is specified as a 3x3 matrix in the Distributed Parameter line block.
R_602 = [0.4676 0.0982 0.0969; 0.0982 0.4645 0.0954; 0.0969 0.0954 0.4621]
L_602 = [0.0019 0.0007 0.0008; 0.0007 0.0020 0.0006; 0.0008 0.0006 0.0020]
C_602 = [0.9393 -0.1783 -0.2786; -0.1783 0.8537 -0.1086; -0.2786 -0.1086 0.8941]*1e-08
The help section for this block indicates that an NxN matrix can be used for a symmetrical line and must be used for an asymmetrical line. From the matrices above, it looks like that all of the lines are symmetrical because their matrices are symmetrical. I don't know if this is true but it seems intuitive that way.
The Pi Section block that I'm trying to convert these 3x3 matrices to only needs a + and 0 sequence parameter.
My question is: how do I pick out the [r1 r0] needed by the Pi section block from the 3x3 R_602 matrix that is specified for the Distributed Line block?
Also, how is it possible to have negative capacitances...?
Joel Van Sickel on 15 Nov 2021
Copying the answer from above so this question is marked as answered:
Edgar Modesto Amazonas Filho on 17 Feb 2017
You have to use symmetrical components to transform ABC to 012. It is worth noting the IEEE 13 nodes is an unbalanced system, then by using the 012 you have to neglect the non-diagonal elements in the PI model. Here it is an excerpt of a script to solve this problem:
w = 2*pi*60;
a = -0.5 + j*.86603;
a2 = -0.5 - j*.86603;
A = [
1 1 1
1 a2 a
1 a a2
Z_601s = inv(A)*Z_601*A;
R_601s = real(Z_601s);
X_601s = imag(Z_601s);
L_601s = X_601s/w;
R_601_10 = [R_601s(2,2) R_601s(1,1)];
L_601_10 = [L_601s(2,2) L_601s(1,1)];
B_601 = B_601./mi2km;
C_601s = B_601*ms2F;
C_601s = real(inv(A)*C_601*A);
C_601_10 = [C_601s(2,2) C_601s(1,1)];