Package com.powsybl.openloadflow.network
Class LfAsymLineAdmittanceMatrix
- java.lang.Object
-
- com.powsybl.openloadflow.network.LfAsymLineAdmittanceMatrix
-
public class LfAsymLineAdmittanceMatrix extends Object
This class is made to build and access the admittance terms that will be used to fill up the Jacobian : The following formulation approach is used : side 1 ________ side 2 [ Iz_1 ] [ Vz_1 ] z-----| |-------z [ Ip_1 ] [ Vp_1 ] p-----| Yzpn |-------p [ In_1 ] [ Vn_1 ] n-----|________|-------n [ Iz_2 ] = [Yzpn] * [ Vz_2 ] [ Ip_2 ] [ Vp_2 ] [ In_2 ] [ Vn_2 ] Given that at bus 1 where j is one neighbouring bus, the injection at bus 1 is equal to the sum of Powers from neighboring busses: Sum[j](S_1j) =Pp_1 + j.Qp_1 = Sum[j](Vp_1.Ip_1j*) Pz_1 + j.Qz_1 = Sum[j](Vz_1.Iz_1j*) Pn_1 + j.Qn_1 = Sum[j](Vn_1.In_1j*) Substituting [I] by [Yzpn]*[V] allows to know the equations terms that will fill the jacobian matrix Step 1: Get [Yzpn] ------------------ First step is to compute [ Yzpn ] from a 3-phase description because this is how we can describe unbalances of phases for a line: For each a,b,c phase we know the following relation (only true for lines with no mutual inductances, otherwise we must handle full [Yabc] matrix): [Ia_1] [ ya_11 ya_12 ] [Va_1] [Ia_2] = [ ya_21 ya_22 ] * [Va_2] with (for a line only) : ya_11 = ga1 + j.ba1 + 1/za , ya_12 = -1/za , ya_21 = -1/za , ya_22 = ga2 + j.ba2 + 1/za From the fortescue transformation we have: [Ga] [Gz] [Gb] = [F] * [Gp] [Gc] [Gn] where [G] might be [V] or [I] where [F] is the fortescue transformation matrix Therefore we have: [ya_11 0 0 ya_12 0 0 ] [ 0 yb_11 0 0 yb_12 0 ] [inv(F) O ] [ 0 0 yc_11 0 0 yc_12] [ F 0 ] [Yzpn] = [ 0 inv(F)] * [ya_21 0 0 ya_22 0 0 ] * [ 0 F ] [ 0 yb_21 0 0 yb_22 0 ] [ 0 0 yc_21 0 0 yc_22] [Yzpn] is a complex matrix Step 2: Define the generic term that will be used to make the link between [Yzpn] and S[z,p,n] the apparent power ----------------------------------------------------------------------------------------------------------------- We define T(i,j,g,h) = rho_i * rho_j * exp(j(a_i-a_j)) * y*_ij_gh * V_gi * V*_hj where i,j are line's ends included in {1,2} where g,h are fortescue sequences included in {z,p,n}={0,1,2} Step 3 : express the expanded value of T(i,j,g,h): -------------------------------------------------- T(i,j,g,h) = rho_i * rho_j * V_gi * V_hj * yx_ij_gh * cos(a_i - a_j + th_gi - th_hj) - rho_i * rho_j * V_gi * V_hj * yy_ij_gh * sin(a_i - a_j + th_gi - th_hj) -j( rho_i * rho_j * V_gi * V_hj * yx_ij_gh * sin(a_i - a_j + th_gi - th_hj) + rho_i * rho_j * V_gi * V_hj * yy_ij_gh * cos(a_i - a_j + th_gi - th_hj) ) Step 4 : express the apparent powers with T(): ---------------------------------------------- S_z_12 = T(1,1,z,z) + T(1,1,z,p) + T(1,1,z,n) + T(1,2,z,z) + T(1,2,z,p) + T(1,2,z,n) S_p_12 = T(1,1,p,z) + T(1,1,p,p) + T(1,1,p,n) + T(1,2,p,z) + T(1,2,p,p) + T(1,2,p,n) S_n_12 = T(1,1,n,z) + T(1,1,n,p) + T(1,1,n,n) + T(1,2,n,z) + T(1,2,n,p) + T(1,2,n,n) Step 5 : make the link between y_ij_gh in T() and [Yzpn]: --------------------------------------------------------- By construction we have : [ y_11_zz y_11_zp y_11_zn y_12_zz y_12_zp y_12_zn ] [ y_11_pz y_11_pp y_11_pn y_12_pz y_12_pp y_12_pn ] [Yzpn] = [ y_11_nz y_11_np y_11_nn y_12_nz y_12_np y_12_nn ] [ y_21_zz y_21_zp y_21_zn y_22_zz y_22_zp y_22_zn ] [ y_21_pz y_21_pp y_21_pn y_22_pz y_22_pp y_22_pn ] [ y_21_nz y_21_np y_21_nn y_22_nz y_22_np y_22_nn ]- Author:
- Jean-Baptiste Heyberger
-
-
Field Summary
Fields Modifier and Type Field Description static double
EPS_VALUE
-
Constructor Summary
Constructors Constructor Description LfAsymLineAdmittanceMatrix(LfAsymLine asymLine)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getX(Side i, Side j, Fortescue.SequenceType g, Fortescue.SequenceType h)
double
getY(Side i, Side j, Fortescue.SequenceType g, Fortescue.SequenceType h)
boolean
isCoupled()
-
-
-
Field Detail
-
EPS_VALUE
public static final double EPS_VALUE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
LfAsymLineAdmittanceMatrix
public LfAsymLineAdmittanceMatrix(LfAsymLine asymLine)
-
-
Method Detail
-
isCoupled
public boolean isCoupled()
-
getX
public double getX(Side i, Side j, Fortescue.SequenceType g, Fortescue.SequenceType h)
-
getY
public double getY(Side i, Side j, Fortescue.SequenceType g, Fortescue.SequenceType h)
-
-