From c6c3ff70bfceac839af471c11fc8aa04060517b0 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Mon, 15 May 2017 21:50:48 -0300 Subject: Control test and sync generator control implemented Text buggy when opens --- Project/SyncGenerator.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'Project/SyncGenerator.cpp') diff --git a/Project/SyncGenerator.cpp b/Project/SyncGenerator.cpp index 17a7e91..c9cb497 100644 --- a/Project/SyncGenerator.cpp +++ b/Project/SyncGenerator.cpp @@ -1,5 +1,6 @@ #include "SyncMachineForm.h" #include "SyncGenerator.h" +#include "ControlElementContainer.h" SyncGenerator::SyncGenerator() : Machines() -- cgit From 1158ce068e3b5b391604270bf10c52d0d2f7f4db Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Tue, 16 May 2017 19:07:49 -0300 Subject: Sync generator control fixed --- Project/SyncGenerator.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'Project/SyncGenerator.cpp') diff --git a/Project/SyncGenerator.cpp b/Project/SyncGenerator.cpp index c9cb497..18d4119 100644 --- a/Project/SyncGenerator.cpp +++ b/Project/SyncGenerator.cpp @@ -144,6 +144,20 @@ Element* SyncGenerator::GetCopy() { SyncGenerator* copy = new SyncGenerator(); *copy = *this; + auto data = copy->GetElectricalData(); + + // Copy AVR + std::vector cLineList; + std::vector elementList; + m_electricalData.avr->GetContainerCopy(elementList, cLineList); + + ControlElementContainer* avrCopy = new ControlElementContainer(); + avrCopy->FillContainer(elementList, cLineList); + data.avr = avrCopy; + + //Copy Speed Governor + + copy->SetElectricalData(data); return copy; } -- cgit From 88cfd17f34495dafd631d0a5c20978b1b948c098 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Tue, 16 May 2017 20:17:26 -0300 Subject: AVR e speed gov save implemented Open fail --- Project/SyncGenerator.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'Project/SyncGenerator.cpp') diff --git a/Project/SyncGenerator.cpp b/Project/SyncGenerator.cpp index 18d4119..a24657c 100644 --- a/Project/SyncGenerator.cpp +++ b/Project/SyncGenerator.cpp @@ -156,6 +156,13 @@ Element* SyncGenerator::GetCopy() data.avr = avrCopy; //Copy Speed Governor + cLineList.clear(); + elementList.clear(); + m_electricalData.speedGov->GetContainerCopy(elementList, cLineList); + + ControlElementContainer* speedGovCopy = new ControlElementContainer(); + speedGovCopy->FillContainer(elementList, cLineList); + data.speedGov = speedGovCopy; copy->SetElectricalData(data); return copy; -- cgit From 7a556cd67b60f70b9779d298ee687f66c859a529 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Thu, 18 May 2017 16:48:47 -0300 Subject: AVR and speed gov open implemented --- Project/SyncGenerator.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'Project/SyncGenerator.cpp') diff --git a/Project/SyncGenerator.cpp b/Project/SyncGenerator.cpp index a24657c..b736f24 100644 --- a/Project/SyncGenerator.cpp +++ b/Project/SyncGenerator.cpp @@ -29,6 +29,9 @@ void SyncGenerator::Init() double y = std::sin(x); m_sinePts.push_back(wxPoint2DDouble((x / pi) * mx, y * my)); } + + m_electricalData.avr = new ControlElementContainer(); + m_electricalData.speedGov = new ControlElementContainer(); } void SyncGenerator::DrawSymbol() const -- cgit From 734476bea0a2b85b131f5a4d2c9e2b219af7be41 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Fri, 26 May 2017 02:21:15 -0300 Subject: Sync generator plot implemented Electromechanical calc not working --- Project/SyncGenerator.cpp | 49 +++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 17 deletions(-) (limited to 'Project/SyncGenerator.cpp') diff --git a/Project/SyncGenerator.cpp b/Project/SyncGenerator.cpp index b736f24..2579cef 100644 --- a/Project/SyncGenerator.cpp +++ b/Project/SyncGenerator.cpp @@ -2,21 +2,14 @@ #include "SyncGenerator.h" #include "ControlElementContainer.h" -SyncGenerator::SyncGenerator() - : Machines() -{ - Init(); -} - -SyncGenerator::SyncGenerator(wxString name) - : Machines() +SyncGenerator::SyncGenerator() : Machines() { Init(); } +SyncGenerator::SyncGenerator(wxString name) : Machines() { Init(); m_electricalData.name = name; } SyncGenerator::~SyncGenerator() {} - void SyncGenerator::Init() { int numPtsSine = 10; @@ -29,7 +22,7 @@ void SyncGenerator::Init() double y = std::sin(x); m_sinePts.push_back(wxPoint2DDouble((x / pi) * mx, y * my)); } - + m_electricalData.avr = new ControlElementContainer(); m_electricalData.speedGov = new ControlElementContainer(); } @@ -135,7 +128,7 @@ SyncGeneratorElectricalData SyncGenerator::GetPUElectricalData(double systemPowe } void SyncGenerator::SetNominalVoltage(std::vector nominalVoltage, - std::vector nominalVoltageUnit) + std::vector nominalVoltageUnit) { if(nominalVoltage.size() > 0) { m_electricalData.nominalVoltage = nominalVoltage[0]; @@ -148,25 +141,25 @@ Element* SyncGenerator::GetCopy() SyncGenerator* copy = new SyncGenerator(); *copy = *this; auto data = copy->GetElectricalData(); - + // Copy AVR std::vector cLineList; std::vector elementList; m_electricalData.avr->GetContainerCopy(elementList, cLineList); - + ControlElementContainer* avrCopy = new ControlElementContainer(); avrCopy->FillContainer(elementList, cLineList); data.avr = avrCopy; - - //Copy Speed Governor + + // Copy Speed Governor cLineList.clear(); elementList.clear(); m_electricalData.speedGov->GetContainerCopy(elementList, cLineList); - + ControlElementContainer* speedGovCopy = new ControlElementContainer(); speedGovCopy->FillContainer(elementList, cLineList); data.speedGov = speedGovCopy; - + copy->SetElectricalData(data); return copy; } @@ -216,3 +209,25 @@ wxString SyncGenerator::GetTipText() const return tipText; } + +bool SyncGenerator::GetPlotData(ElementPlotData& plotData) +{ + if(!m_electricalData.plotSyncMachine) return false; + plotData.SetName(m_electricalData.name); + plotData.SetCurveType(ElementPlotData::CT_SYNC_GENERATOR); + + std::vector absTerminalVoltage, activePower, reactivePower; + for(unsigned int i = 0; i < m_electricalData.terminalVoltageVector.size(); ++i) { + absTerminalVoltage.push_back(std::abs(m_electricalData.terminalVoltageVector[i])); + activePower.push_back(std::real(m_electricalData.electricalPowerVector[i])); + reactivePower.push_back(std::imag(m_electricalData.electricalPowerVector[i])); + } + plotData.AddData(absTerminalVoltage, _("Terminal voltage")); + plotData.AddData(activePower, _("Active power")); + plotData.AddData(reactivePower, _("Reactive power")); + plotData.AddData(m_electricalData.mechanicalPowerVector, _("Mechanical power")); + plotData.AddData(m_electricalData.freqVector, _("Frequency")); + plotData.AddData(m_electricalData.fieldVoltageVector, _("Field voltage")); + plotData.AddData(m_electricalData.deltaVector, _("Delta")); + return true; +} -- cgit