All Classes and Interfaces

Class
Description
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
AbstractVector<V extends Enum<V> & Quantity,E extends Enum<E> & Quantity>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
We define T(i,j,g,h) = rho_i * rho_j * exp(j(a_j-a_i)) * y*_ij_gh * V_hj where i,j are line's ends i,j included in {1,2} where g,h are fortescue sequences g,h included in {z, p, n} = {0,1,2} (z = zero = 0, p = positive = 1, n = negative = 2) Expanded formula : T(i,j,g,h) = rho_i * rho_j * V_hj * yx_ij_gh * cos(a_j - a_i + th_hj) - rho_i * rho_j * V_hj * yy_ij_gh * sin(a_j - a_i + th_hj) +j( rho_i * rho_j * V_hj * yx_ij_gh * sin(a_j - a_i + th_hj) + rho_i * rho_j * V_hj * yy_ij_gh * cos(a_j - a_i + th_hj) ) 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 ]
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 i,j included in {1,2} where g,h are fortescue sequences g,h included in {z,p,n} = {0,1,2} Expanded formula : 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) ) 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 ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Keeps track of distributed active power
 
 
 
 
 
Equation<V extends Enum<V> & Quantity,E extends Enum<E> & Quantity>
 
 
 
EquationSystem<V extends Enum<V> & Quantity,E extends Enum<E> & Quantity>
 
 
 
 
 
 
EquationTerm<V extends Enum<V> & Quantity,E extends Enum<E> & Quantity>
An equation term, i.e part of the equation sum.
 
 
EquationVector<V extends Enum<V> & Quantity,E extends Enum<E> & Quantity>
 
 
 
Implementing the Even-Shiloach algorithm (see https://dl.acm.org/doi/10.1145/322234.322235) Due to time computation optimizations, this current implementation is only for graphs which initially have ONLY ONE connected component.
 
 
 
 
 
A voltage initializer that rely on VoltageMagnitudeInitializer for magnitude calculation and on DcValueVoltageInitializer for angle calculation.
 
 
 
 
Interface for incremental and decremental connectivity computations, through a mechanism which records the topological changes which later need to be undone.
 
 
 
 
 
 
 
 
 
 
 
 
JacobianMatrix<V extends Enum<V> & Quantity,E extends Enum<E> & Quantity>
 
 
 
 
 
 
 
This is an extension to a LfBranch Line to describe the asymmetry of a line to be used for an unbalanced load flow.
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 ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Generic load model as a sum of exponential terms: sum_i(ci * v^ni)
 
A LfLoad is an aggregation of several classical network loads.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
if the static var compensator has an automaton in stand by, this object must be field.
 
 
 
 
 
 
 
Limit violation manager.
 
 
 
 
 
 
 
 
 
 
 
TODO: move theses features to core.
Limit voltage magnitude change and voltage angle change between NR iterations
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
OpenSensitivityAnalysisProvider.ReplayResult<T extends com.powsybl.sensitivity.SensitivityResultWriter>
 
OuterLoop<V extends Enum<V> & Quantity,E extends Enum<E> & Quantity,P extends AbstractLoadFlowParameters,C extends LoadFlowContext<V,E,P>,O extends OuterLoopContext<V,E,P,C>>
 
 
 
 
 
 
 
 
 
 
 
 
 
Network related plausible values.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
State vector scaling.
 
 
 
 
 
 
 
TargetVector<V extends Enum<V> & Quantity,E extends Enum<E> & Quantity>
 
 
 
 
 
 
 
 
 
 
Variable<V extends Enum<V> & Quantity>
 
 
 
 
 
 
 
 
 
 
This voltage initializer is able to find a voltage magnitude starting point by resolving a linear system using only voltage set points, branches reactance and branches voltage ratio.