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
-
-
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
Fields Modifier and Type Field Description protected Variable<AcVariableType>
phVar
protected Variable<AcVariableType>
phVarNegative
protected Variable<AcVariableType>
phVarZero
protected List<Variable<AcVariableType>>
variables
protected Variable<AcVariableType>
vVar
protected Variable<AcVariableType>
vVarNegative
protected Variable<AcVariableType>
vVarZero
-
Fields inherited from class com.powsybl.openloadflow.equations.AbstractElementEquationTerm
element
-
Fields inherited from class com.powsybl.openloadflow.equations.AbstractEquationTerm
self, sv
-
-
Constructor Summary
Constructors Constructor Description LoadFortescuePowerEquationTerm(LfBus bus, VariableSet<AcVariableType> variableSet, ComplexPart complexPart, Fortescue.SequenceType sequenceType)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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]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.String
getName()
List<Variable<AcVariableType>>
getVariables()
Get the list of variable this equation term depends on.double
ph(Fortescue.SequenceType g)
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
v(Fortescue.SequenceType g)
-
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
minus, multiply, multiply
-
-
-
-
Field Detail
-
vVar
protected final Variable<AcVariableType> vVar
-
phVar
protected final Variable<AcVariableType> phVar
-
vVarNegative
protected final Variable<AcVariableType> vVarNegative
-
phVarNegative
protected final Variable<AcVariableType> phVarNegative
-
vVarZero
protected final Variable<AcVariableType> vVarZero
-
phVarZero
protected final Variable<AcVariableType> phVarZero
-
variables
protected final List<Variable<AcVariableType>> variables
-
-
Constructor Detail
-
LoadFortescuePowerEquationTerm
public LoadFortescuePowerEquationTerm(LfBus bus, VariableSet<AcVariableType> variableSet, ComplexPart complexPart, Fortescue.SequenceType sequenceType)
-
-
Method Detail
-
ph
public double ph(Fortescue.SequenceType g)
-
v
public double v(Fortescue.SequenceType g)
-
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
public double der(Variable<AcVariableType> variable)
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
public String getName()
- Specified by:
getName
in classAbstractNamedEquationTerm<AcVariableType,AcEquationType>
-
getVariables
public List<Variable<AcVariableType>> 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]
-
-