summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Project/Electromechanical.cpp11
-rw-r--r--Project/Electromechanical.h4
-rw-r--r--Project/Workspace.cpp2
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);