From 2c60c7c13ecc8e45e072346193a820f697fb6fdf Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Tue, 23 May 2017 20:18:04 -0300 Subject: Switching event bug fixed --- Project/Electromechanical.cpp | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) (limited to 'Project/Electromechanical.cpp') diff --git a/Project/Electromechanical.cpp b/Project/Electromechanical.cpp index 191a1da..895a6f3 100644 --- a/Project/Electromechanical.cpp +++ b/Project/Electromechanical.cpp @@ -89,10 +89,11 @@ void Electromechanical::SetEvent(double currentTime) // Insert machine (only disconnected machines) if(swData.swType[i] == SW_INSERT && !generator->IsOnline() && generator->GetParentList().size() == 1) { - generator->SetOnline(true); - auto data = generator->GetPUElectricalData(m_powerSystemBase); - int n = static_cast(generator->GetParentList()[0])->GetElectricalData().number; - m_yBus[n][n] += GetSyncMachineAdmittance(generator); + if(generator->SetOnline(true)) { + auto data = generator->GetPUElectricalData(m_powerSystemBase); + int n = static_cast(generator->GetParentList()[0])->GetElectricalData().number; + m_yBus[n][n] += GetSyncMachineAdmittance(generator); + } } } } @@ -116,12 +117,13 @@ void Electromechanical::SetEvent(double currentTime) // Insert load (only disconnected load) if(swData.swType[i] == SW_INSERT && !load->IsOnline() && load->GetParentList().size() == 1) { - load->SetOnline(true); - auto data = load->GetPUElectricalData(m_powerSystemBase); - Bus* parentBus = static_cast(load->GetParentList()[0]); - int n = parentBus->GetElectricalData().number; - std::complex v = parentBus->GetElectricalData().voltage; - m_yBus[n][n] += std::complex(data.activePower, -data.reactivePower) / (v * v); + if(load->SetOnline(true)) { + auto data = load->GetPUElectricalData(m_powerSystemBase); + Bus* parentBus = static_cast(load->GetParentList()[0]); + int n = parentBus->GetElectricalData().number; + std::complex v = parentBus->GetElectricalData().voltage; + m_yBus[n][n] += std::complex(data.activePower, -data.reactivePower) / (v * v); + } } } } @@ -153,8 +155,7 @@ void Electromechanical::SetEvent(double currentTime) // Insert line (only disconnected lines) if(swData.swType[i] == SW_INSERT && !line->IsOnline() && line->GetParentList().size() == 2) { - if(line->GetParentList()[0] && line->GetParentList()[1]) { - line->SetOnline(true); + if(line->SetOnline(true)) { auto data = line->GetElectricalData(); int n1 = static_cast(line->GetParentList()[0])->GetElectricalData().number; @@ -212,8 +213,7 @@ void Electromechanical::SetEvent(double currentTime) // Insert transformer (only disconnected transformers) if(swData.swType[i] == SW_INSERT && !transformer->IsOnline() && transformer->GetParentList().size() == 2) { - if(transformer->GetParentList()[0] && transformer->GetParentList()[1]) { - transformer->SetOnline(true); + if(transformer->SetOnline(true)) { auto data = transformer->GetElectricalData(); int n1 = static_cast(transformer->GetParentList()[0])->GetElectricalData().number; @@ -260,8 +260,7 @@ void Electromechanical::SetEvent(double currentTime) // Insert capacitor (only disconnected capacitors) if(swData.swType[i] == SW_INSERT && !capacitor->IsOnline() && capacitor->GetParentList().size() == 1) { - if(capacitor->GetParentList()[0]) { - capacitor->SetOnline(true); + if(capacitor->SetOnline(true)) { auto data = capacitor->GetPUElectricalData(m_powerSystemBase); int n = static_cast(capacitor->GetParentList()[0])->GetElectricalData().number; m_yBus[n][n] -= std::complex(0.0, data.reactivePower); @@ -287,8 +286,7 @@ void Electromechanical::SetEvent(double currentTime) // Insert inductor (only disconnected inductors) if(swData.swType[i] == SW_INSERT && !inductor->IsOnline() && inductor->GetParentList().size() == 1) { - if(inductor->GetParentList()[0]) { - inductor->SetOnline(true); + if(inductor->SetOnline(true)) { auto data = inductor->GetPUElectricalData(m_powerSystemBase); int n = static_cast(inductor->GetParentList()[0])->GetElectricalData().number; m_yBus[n][n] -= std::complex(0.0, -data.reactivePower); -- cgit