summaryrefslogtreecommitdiffstats
path: root/Project/ElectricCalculation.cpp
diff options
context:
space:
mode:
authorThales Lima Oliveira <thaleslima.ufu@gmail.com>2019-07-25 01:11:17 -0300
committerThales Lima Oliveira <thaleslima.ufu@gmail.com>2019-07-25 01:11:17 -0300
commitc7ef9a883031c68506357f9ef1b1a0b79c79f4da (patch)
tree06646fb4511030daa7fb6426dfab9dc2413a7253 /Project/ElectricCalculation.cpp
parent4f434e4a1cccce69e4b680e4734df52244d3a30b (diff)
downloadPSP.git-c7ef9a883031c68506357f9ef1b1a0b79c79f4da.tar.gz
PSP.git-c7ef9a883031c68506357f9ef1b1a0b79c79f4da.tar.xz
PSP.git-c7ef9a883031c68506357f9ef1b1a0b79c79f4da.zip
Motor integration with PF
Newton bug fixed Newton inertia implemented Gauss-Newton implemented
Diffstat (limited to 'Project/ElectricCalculation.cpp')
-rw-r--r--Project/ElectricCalculation.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/Project/ElectricCalculation.cpp b/Project/ElectricCalculation.cpp
index 7b03eeb..a2db413 100644
--- a/Project/ElectricCalculation.cpp
+++ b/Project/ElectricCalculation.cpp
@@ -397,6 +397,33 @@ void ElectricCalculation::UpdateElementsPowerFlow(std::vector<std::complex<doubl
}
}
+ // Ind motor
+ for(unsigned int i = 0; i < m_indMotorList.size(); i++) {
+ IndMotor* motor = m_indMotorList[i];
+ auto data = motor->GetElectricalData();
+ if(motor->IsOnline() && data.calcQInPowerFlow) {
+ double reactivePower = data.qValue * systemPowerBase;
+
+ switch(data.reactivePowerUnit) {
+ case UNIT_PU: {
+ reactivePower /= systemPowerBase;
+ } break;
+ case UNIT_kVAr: {
+ reactivePower /= 1e3;
+ } break;
+ case UNIT_MVAr: {
+ reactivePower /= 1e6;
+ } break;
+ default:
+ break;
+ }
+
+ data.reactivePower = reactivePower;
+
+ motor->SetElectricalData(data);
+ }
+ }
+
// Synchronous machines
for(int i = 0; i < (int)m_busList.size(); i++) {
Bus* bus = m_busList[i];