diff options
-rw-r--r-- | Project/Electromechanical.cpp | 11 | ||||
-rw-r--r-- | Project/Electromechanical.h | 4 | ||||
-rw-r--r-- | Project/Workspace.cpp | 2 |
3 files changed, 16 insertions, 1 deletions
diff --git a/Project/Electromechanical.cpp b/Project/Electromechanical.cpp index f0614e3..49c1352 100644 --- a/Project/Electromechanical.cpp +++ b/Project/Electromechanical.cpp @@ -682,6 +682,8 @@ bool Electromechanical::CalculateMachinesCurrents() // matrix) to calculate the electrical power. std::complex<double> iMachine = iInj - iUnadjusted; data.electricalPower = v * std::conj(iMachine); + data.sd = sd; + data.sq = sq; } else { data.electricalPower = std::complex<double>(0.0, 0.0); } @@ -838,6 +840,8 @@ bool Electromechanical::SolveSynchronousMachines() double genError = CalculateSyncMachineIntVariables(syncGenerator, id, iq, sd, sq, pe, k); if(genError > error) error = genError; + m_sdC = data.sd; + m_sqC = data.sq; } ++iterations; @@ -896,6 +900,8 @@ void Electromechanical::SaveData() m_wErrorVector.push_back(m_wError); m_numItVector.push_back(m_numIt); + m_sdCVector.push_back(m_sdC); + m_sqCVector.push_back(m_sqC); } void Electromechanical::SetSyncMachinesModel() @@ -926,6 +932,7 @@ void Electromechanical::CalculateSyncMachineNonIntVariables(SyncGenerator* syncG double vd, vq; ABCtoDQ0(data.terminalVoltage, data.delta, vd, vq); + CalculateSyncMachineSaturation(syncGenerator, k); sd = data.sd; sq = data.sq; @@ -938,6 +945,8 @@ void Electromechanical::CalculateSyncMachineNonIntVariables(SyncGenerator* syncG pe = id = iq = 0.0f; } data.pe = pe; + data.sd = sd; + data.sq = sq; data.oldPe = pe; data.oldId = id; data.oldIq = iq; @@ -1124,7 +1133,7 @@ bool Electromechanical::CalculateSyncMachineSaturation(SyncGenerator* syncMachin syncXq = data.transXd * k; syncXd = syncXq; } else if(data.syncXq == 0.0) - syncXd = data.syncXd * k; + syncXq = data.syncXd * k; double xp = data.potierReactance * k; if(xp == 0.0) xp = 0.8 * (data.transXd * k); diff --git a/Project/Electromechanical.h b/Project/Electromechanical.h index 37ea4f2..9de4171 100644 --- a/Project/Electromechanical.h +++ b/Project/Electromechanical.h @@ -44,6 +44,8 @@ class Electromechanical : public ElectricCalculation std::vector<double> m_transEdErrorVector; std::vector<double> m_transEqErrorVector; std::vector<double> m_numItVector; + std::vector<double> m_sdCVector; + std::vector<double> m_sqCVector; protected: void SetEventTimeList(); @@ -110,6 +112,8 @@ class Electromechanical : public ElectricCalculation // tests double m_wError = 0.0; + double m_sdC = 0.0; + double m_sqC = 0.0; double m_numIt = 0; }; diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp index 70bd345..6f753ce 100644 --- a/Project/Workspace.cpp +++ b/Project/Workspace.cpp @@ -1451,6 +1451,8 @@ bool Workspace::RunStability() } ElementPlotData tests(_("Error"), ElementPlotData::CT_TEST); tests.AddData(stability.m_wErrorVector, _("Speed error")); + tests.AddData(stability.m_sdCVector, _("Sd")); + tests.AddData(stability.m_sqCVector, _("Sq")); tests.AddData(stability.m_numItVector, _("Number iterations")); plotDataList.push_back(tests); |