32 Real omega = 2 * PI * frequency;
33 MatrixComp admittance = MatrixComp::Zero(3, 3);
34 admittance << Complex(0, omega * (**
mCapacitance)(0, 0)),
44 MatrixComp vInitABC = Matrix::Zero(3, 1);
45 vInitABC(0, 0) = RMS3PH_TO_PEAK1PH * initialSingleVoltage(1) -
46 RMS3PH_TO_PEAK1PH * initialSingleVoltage(0);
47 vInitABC(1, 0) = vInitABC(0, 0) * SHIFT_TO_PHASE_B;
48 vInitABC(2, 0) = vInitABC(0, 0) * SHIFT_TO_PHASE_C;
52 SPDLOG_LOGGER_INFO(
mSLog,
53 "\nCapacitance [F]: {:s}"
54 "\nAdmittance [S]: {:s}",
56 Logger::matrixCompToString(admittance));
59 "\n--- Initialization from powerflow ---"
60 "\nVoltage across: {:s}"
62 "\nTerminal 0 voltage: {:s}"
63 "\nTerminal 1 voltage: {:s}"
64 "\n--- Initialization from powerflow finished ---",
67 Logger::phasorToString(RMS3PH_TO_PEAK1PH * initialSingleVoltage(0)),
68 Logger::phasorToString(RMS3PH_TO_PEAK1PH * initialSingleVoltage(1)));
83 SparseMatrixRow &systemMatrix) {
84 if (terminalNotGrounded(0)) {
85 Math::addToMatrixElement(systemMatrix, matrixNodeIndex(0, 0),
88 Math::addToMatrixElement(systemMatrix,
90 matrixNodeIndex(0, 0), -1);
92 Math::addToMatrixElement(systemMatrix, matrixNodeIndex(0, 1),
95 Math::addToMatrixElement(systemMatrix,
97 matrixNodeIndex(0, 1), -1);
99 Math::addToMatrixElement(systemMatrix, matrixNodeIndex(0, 2),
102 Math::addToMatrixElement(systemMatrix,
104 matrixNodeIndex(0, 2), -1);
106 if (terminalNotGrounded(1)) {
107 Math::addToMatrixElement(systemMatrix, matrixNodeIndex(1, 0),
110 Math::addToMatrixElement(systemMatrix,
112 matrixNodeIndex(1, 0), 1);
114 Math::addToMatrixElement(systemMatrix, matrixNodeIndex(1, 1),
117 Math::addToMatrixElement(systemMatrix,
119 matrixNodeIndex(1, 1), 1);
121 Math::addToMatrixElement(systemMatrix, matrixNodeIndex(1, 2),
124 Math::addToMatrixElement(systemMatrix,
126 matrixNodeIndex(1, 2), 1);
129 Math::addToMatrixElement(
130 systemMatrix,
mVirtualNodes[0]->matrixNodeIndex(PhaseType::A),
131 mVirtualNodes[0]->matrixNodeIndex(PhaseType::A), -mDufourWKN(0, 0));
132 Math::addToMatrixElement(
133 systemMatrix,
mVirtualNodes[0]->matrixNodeIndex(PhaseType::A),
134 mVirtualNodes[0]->matrixNodeIndex(PhaseType::B), -mDufourWKN(0, 1));
135 Math::addToMatrixElement(
136 systemMatrix,
mVirtualNodes[0]->matrixNodeIndex(PhaseType::A),
137 mVirtualNodes[0]->matrixNodeIndex(PhaseType::C), -mDufourWKN(0, 2));
139 Math::addToMatrixElement(
140 systemMatrix,
mVirtualNodes[0]->matrixNodeIndex(PhaseType::B),
141 mVirtualNodes[0]->matrixNodeIndex(PhaseType::A), -mDufourWKN(1, 0));
142 Math::addToMatrixElement(
143 systemMatrix,
mVirtualNodes[0]->matrixNodeIndex(PhaseType::B),
144 mVirtualNodes[0]->matrixNodeIndex(PhaseType::B), -mDufourWKN(1, 1));
145 Math::addToMatrixElement(
146 systemMatrix,
mVirtualNodes[0]->matrixNodeIndex(PhaseType::B),
147 mVirtualNodes[0]->matrixNodeIndex(PhaseType::C), -mDufourWKN(1, 2));
149 Math::addToMatrixElement(
150 systemMatrix,
mVirtualNodes[0]->matrixNodeIndex(PhaseType::C),
151 mVirtualNodes[0]->matrixNodeIndex(PhaseType::A), -mDufourWKN(2, 0));
152 Math::addToMatrixElement(
153 systemMatrix,
mVirtualNodes[0]->matrixNodeIndex(PhaseType::C),
154 mVirtualNodes[0]->matrixNodeIndex(PhaseType::B), -mDufourWKN(2, 1));
155 Math::addToMatrixElement(
156 systemMatrix,
mVirtualNodes[0]->matrixNodeIndex(PhaseType::C),
157 mVirtualNodes[0]->matrixNodeIndex(PhaseType::C), -mDufourWKN(2, 2));