Class LoadFortescuePowerEquationTerm
java.lang.Object
com.powsybl.openloadflow.equations.AbstractEquationTerm<V,E>
com.powsybl.openloadflow.equations.AbstractNamedEquationTerm<V,E>
com.powsybl.openloadflow.equations.AbstractElementEquationTerm<LfBus,AcVariableType,AcEquationType>
com.powsybl.openloadflow.ac.equations.asym.LoadFortescuePowerEquationTerm
- All Implemented Interfaces:
EquationTerm<AcVariableType,
,AcEquationType> Evaluable
public class LoadFortescuePowerEquationTerm
extends AbstractElementEquationTerm<LfBus,AcVariableType,AcEquationType>
- Author:
- Jean-Baptiste Heyberger <jbheyberger at gmail.com>
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.powsybl.openloadflow.equations.EquationTerm
EquationTerm.MultiplyByScalarEquationTerm<V extends Enum<V> & Quantity,
E extends Enum<E> & Quantity> -
Field Summary
Modifier and TypeFieldDescriptionprotected final Variable<AcVariableType>
protected final Variable<AcVariableType>
protected final Variable<AcVariableType>
protected final List<Variable<AcVariableType>>
protected final Variable<AcVariableType>
protected final Variable<AcVariableType>
protected final Variable<AcVariableType>
Fields inherited from class com.powsybl.openloadflow.equations.AbstractElementEquationTerm
element
Fields inherited from class com.powsybl.openloadflow.equations.AbstractEquationTerm
self, sv
-
Constructor Summary
ConstructorDescriptionLoadFortescuePowerEquationTerm
(LfBus bus, VariableSet<AcVariableType> variableSet, ComplexPart complexPart, Fortescue.SequenceType sequenceType) -
Method Summary
Modifier and TypeMethodDescriptionstatic com.powsybl.math.matrix.DenseMatrix
createCartesianMatrix
(double m1x, double m1y, double m2x, double m2y, double m3x, double m3y, boolean isVector) if this is a vector we build: m = [m1x;m1y;m2x;m2y;m3x;m3y] equivalent in complex to [m1;m2;m3] if not, this is a 6x6 square matrix expected: [m1x -m1y 0 0 0 0 ] [m1y m1x 0 0 0 0 ] [ 0 0 m2x -m2y 0 0 ] [m1 0 0] m = [ 0 0 m2y m2x 0 0 ] equivalent in complex to [ 0 m2 0] [ 0 0 0 0 m3x -m3y] [ 0 0 m3] [ 0 0 0 0 m3y m3x]static com.powsybl.math.matrix.DenseMatrix
createInvVabcSquare
(LfBus bus, double vAx, double vAy, double vBx, double vBy, double vCx, double vCy) double
der
(Variable<AcVariableType> variable) Get partial derivative.static double
dpq
(LfBus bus, ComplexPart complexPart, Fortescue.SequenceType sequenceType, Variable<AcVariableType> derVariable, double vo, double pho, double vd, double phd, double vi, double phi) We derivate the PQ formula with complex matrices: [So] [dVo/dx 0 0] [1/Va 0 0] [Sa] [Vo 0 0] [Sa 0 0] [1/Va 0 0] [1/Va 0 0] [dV0/dx] d( [Sd] )/dx = 1/3 . [0 dVd/dx 0] .double
eval()
Evaluate equation term.getName()
Get the list of variable this equation term depends on.double
static double
pq
(LfBus bus, ComplexPart complexPart, Fortescue.SequenceType sequenceType, double vZero, double phZero, double vPositive, double phPositive, double vNegative, double phNegative) We use the formula with complex matrices: [So] [Vo 0 0] [1/Va 0 0] [Sa] [Sd] = [0 Vd 0]. 1/3 .double
Methods inherited from class com.powsybl.openloadflow.equations.AbstractElementEquationTerm
getElementNum, getElementType
Methods inherited from class com.powsybl.openloadflow.equations.AbstractNamedEquationTerm
write
Methods inherited from class com.powsybl.openloadflow.equations.AbstractEquationTerm
calculateSensi, getChildren, getEquation, hasRhs, isActive, rhs, setActive, setEquation, setSelf, setStateVector
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.powsybl.openloadflow.equations.EquationTerm
eval, minus, multiply, multiply
-
Field Details
-
vVar
-
phVar
-
vVarNegative
-
phVarNegative
-
vVarZero
-
phVarZero
-
variables
-
-
Constructor Details
-
LoadFortescuePowerEquationTerm
public LoadFortescuePowerEquationTerm(LfBus bus, VariableSet<AcVariableType> variableSet, ComplexPart complexPart, Fortescue.SequenceType sequenceType)
-
-
Method Details
-
ph
-
v
-
pq
public static double pq(LfBus bus, ComplexPart complexPart, Fortescue.SequenceType sequenceType, double vZero, double phZero, double vPositive, double phPositive, double vNegative, double phNegative) We use the formula with complex matrices: [So] [Vo 0 0] [1/Va 0 0] [Sa] [Sd] = [0 Vd 0]. 1/3 . [F] . [0 1/Vb 0] . [Sb] [Si] [0 0 Vi] [0 0 1/Vc] [Sc] <------------------------------> term (Ifortescue)* <-------------------------------------------> term Sfortescue -
dpq
public static double dpq(LfBus bus, ComplexPart complexPart, Fortescue.SequenceType sequenceType, Variable<AcVariableType> derVariable, double vo, double pho, double vd, double phd, double vi, double phi) We derivate the PQ formula with complex matrices: [So] [dVo/dx 0 0] [1/Va 0 0] [Sa] [Vo 0 0] [Sa 0 0] [1/Va 0 0] [1/Va 0 0] [dV0/dx] d( [Sd] )/dx = 1/3 . [0 dVd/dx 0] . [F] . [0 1/Vb 0] . [Sb] + [0 Vd 0] . [F] .(-1/3). [0 Sb 0] . [0 1/Vb 0] . [0 1/Vb 0] . [F] . [dVd/dx] [Si] [0 0 dVi/dx] [0 0 1/Vc] [Sc] [0 0 Vi] [0 0 Sc] [0 0 1/Vc] [0 0 1/Vc] [dVi/dx] <--------------------------------------------> <-----------------------------------------------------------------------> term T1 term (dIfortescue)* <-----------------------------------------------------------------------------------> term T2 -
eval
public double eval()Description copied from interface:EquationTerm
Evaluate equation term.- Returns:
- value of the equation term
-
der
Description copied from interface:EquationTerm
Get partial derivative.- Parameters:
variable
- the variable the partial derivative is with respect to- Returns:
- value of the partial derivative
-
getName
- Specified by:
getName
in classAbstractNamedEquationTerm<AcVariableType,
AcEquationType>
-
getVariables
Description copied from interface:EquationTerm
Get the list of variable this equation term depends on.- Returns:
- the list of variable this equation term depends on.
-
createInvVabcSquare
public static com.powsybl.math.matrix.DenseMatrix createInvVabcSquare(LfBus bus, double vAx, double vAy, double vBx, double vBy, double vCx, double vCy) -
createCartesianMatrix
public static com.powsybl.math.matrix.DenseMatrix createCartesianMatrix(double m1x, double m1y, double m2x, double m2y, double m3x, double m3y, boolean isVector) if this is a vector we build: m = [m1x;m1y;m2x;m2y;m3x;m3y] equivalent in complex to [m1;m2;m3] if not, this is a 6x6 square matrix expected: [m1x -m1y 0 0 0 0 ] [m1y m1x 0 0 0 0 ] [ 0 0 m2x -m2y 0 0 ] [m1 0 0] m = [ 0 0 m2y m2x 0 0 ] equivalent in complex to [ 0 m2 0] [ 0 0 0 0 m3x -m3y] [ 0 0 m3] [ 0 0 0 0 m3y m3x]
-