diff options
-rw-r--r-- | Project/Electromechanical.cpp | 16 | ||||
-rw-r--r-- | Project/Electromechanical.h | 2 | ||||
-rw-r--r-- | Project/Project.mk | 2 |
3 files changed, 10 insertions, 10 deletions
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<Bus*>(syncGenerator->GetParentList()[0])->GetElectricalData().voltage; std::complex<double> conjS(dataPU.activePower, -dataPU.reactivePower); - std::complex<double> conjV = std::conj(data.terminalVoltage); - std::complex<double> ia = conjS / conjV; + std::complex<double> vt = data.terminalVoltage; + std::complex<double> 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<double> eq0 = data.terminalVoltage + std::complex<double>(ra, xq) * ia; + std::complex<double> eq0 = vt + std::complex<double>(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<double>(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; diff --git a/Project/Electromechanical.h b/Project/Electromechanical.h index 3dd239a..cbbb600 100644 --- a/Project/Electromechanical.h +++ b/Project/Electromechanical.h @@ -110,7 +110,7 @@ class Electromechanical : public ElectricCalculation double m_ctrlTimeStepMultiplier = 0.1; double m_tolerance = 1e-8; int m_maxIterations = 100; - double m_saturationTolerance = 1e-4; + double m_saturationTolerance = 1e-8; std::vector<double> m_eventTimeList; std::vector<bool> m_eventOccurrenceList; diff --git a/Project/Project.mk b/Project/Project.mk index 838fd14..71c206d 100644 --- a/Project/Project.mk +++ b/Project/Project.mk @@ -13,7 +13,7 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=NDSE-69 -Date :=28/09/2017 +Date :=04/10/2017 CodeLitePath :="C:/Program Files/CodeLite" LinkerName :=C:/TDM-GCC-64/bin/g++.exe SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC |