From c7c1963fae6f88a55b3f7e4a3f9ea17e964d23d2 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Wed, 4 Oct 2017 21:06:20 -0300 Subject: Saturation fixed in q axis --- Project/Electromechanical.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'Project/Electromechanical.cpp') diff --git a/Project/Electromechanical.cpp b/Project/Electromechanical.cpp index 84e49d5..4b40c53 100644 --- a/Project/Electromechanical.cpp +++ b/Project/Electromechanical.cpp @@ -433,8 +433,8 @@ bool Electromechanical::InitializeDynamicElements() data.terminalVoltage = static_cast(syncGenerator->GetParentList()[0])->GetElectricalData().voltage; std::complex conjS(dataPU.activePower, -dataPU.reactivePower); - std::complex conjV = std::conj(data.terminalVoltage); - std::complex ia = conjS / conjV; + std::complex vt = data.terminalVoltage; + std::complex ia = conjS / std::conj(vt); double xd = data.syncXd * k; double xq = data.syncXq * k; @@ -458,12 +458,12 @@ bool Electromechanical::InitializeDynamicElements() } // Initialize state variables - std::complex eq0 = data.terminalVoltage + std::complex(ra, xq) * ia; + std::complex eq0 = vt + std::complex(ra, xq) * ia; double delta = std::arg(eq0); double id0, iq0, vd0, vq0; ABCtoDQ0(ia, delta, id0, iq0); - ABCtoDQ0(data.terminalVoltage, delta, vd0, vq0); + ABCtoDQ0(vt, delta, vd0, vq0); // Initialize saturation double xqs = xq; @@ -474,8 +474,8 @@ bool Electromechanical::InitializeDynamicElements() int numIt = 0; while(!exit) { oldDelta = delta; - // ABCtoDQ0(ia, delta, id0, iq0); - // ABCtoDQ0(data.terminalVoltage, delta, vd0, vq0); + ABCtoDQ0(ia, delta, id0, iq0); + ABCtoDQ0(vt, delta, vd0, vq0); // Direct-axis Potier voltage. double epd = vd0 + ra * id0 + xp * iq0; @@ -502,7 +502,7 @@ bool Electromechanical::InitializeDynamicElements() eq0 = data.terminalVoltage + std::complex(ra, xqs) * ia; delta = std::arg(eq0);*/ } - + double ef0 = vq0 + ra * iq0 - xds * id0; data.initialFieldVoltage = ef0 * sd; @@ -1065,7 +1065,7 @@ double Electromechanical::CalculateSyncMachineIntVariables(SyncGenerator* syncGe error = std::max(error, std::abs(data.subEq - subEq)); double subEd = - (data.icSubEd.c - data.icSubEd.m * ((syncXq - subXq) * iq)) / (1.0 + data.icSubEd.m * (data.sq - 1.0)); + (data.icSubEd.c - data.icSubEd.m * ((syncXq - subXq) * iq)) / (1.0 + data.icSubEd.m * (sq - 1.0)); error = std::max(error, std::abs(data.subEd - subEd)); data.tranEq = tranEq; -- cgit