From 004257e2abebbf448ba8d1fba32daae216b2c88e Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Wed, 2 Nov 2016 23:11:44 -0200 Subject: Gauss-Seidel implemented --- Project/IndMotor.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'Project/IndMotor.cpp') diff --git a/Project/IndMotor.cpp b/Project/IndMotor.cpp index 1c3b252..7a56466 100644 --- a/Project/IndMotor.cpp +++ b/Project/IndMotor.cpp @@ -35,3 +35,43 @@ bool IndMotor::ShowForm(wxWindow* parent, Element* element) indMotorForm->Destroy(); return false; } + +IndMotorElectricalData IndMotor::GetPUElectricalData(double systemPowerBase) +{ + IndMotorElectricalData data = m_electricalData; + + switch(data.activePowerUnit) { + case UNIT_W: { + data.activePower = data.activePower / systemPowerBase; + data.activePowerUnit = UNIT_PU; + } break; + case UNIT_kW: { + data.activePower = (data.activePower * 1e3) / systemPowerBase; + data.activePowerUnit = UNIT_PU; + } break; + case UNIT_MW: { + data.activePower = (data.activePower * 1e6) / systemPowerBase; + data.activePowerUnit = UNIT_PU; + } break; + default: + break; + } + switch(data.reactivePowerUnit) { + case UNIT_VAr: { + data.reactivePower = data.reactivePower / systemPowerBase; + data.reactivePowerUnit = UNIT_PU; + } break; + case UNIT_kVAr: { + data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase; + data.reactivePowerUnit = UNIT_PU; + } break; + case UNIT_MVAr: { + data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase; + data.reactivePowerUnit = UNIT_PU; + } break; + default: + break; + } + + return data; +} -- cgit