From 2b02ef22cc5f2025b09b700f1cb6e1cec94d80f6 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Fri, 26 Apr 2019 17:52:32 -0300 Subject: Power quality fully implemented A formal filter element must be implemented in future --- Project/PowerQuality.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'Project/PowerQuality.cpp') diff --git a/Project/PowerQuality.cpp b/Project/PowerQuality.cpp index 30969d9..c8fcd91 100644 --- a/Project/PowerQuality.cpp +++ b/Project/PowerQuality.cpp @@ -256,6 +256,7 @@ bool PowerQuality::CalculateFrequencyResponse(double systemFreq, double initFreq, double endFreq, double stepFreq, + int injBusNumber, double systemPowerBase) { // Clear all previous data @@ -273,9 +274,10 @@ bool PowerQuality::CalculateFrequencyResponse(double systemFreq, for(unsigned int j = 0; j < m_busList.size(); j++) { line.push_back(std::complex(0.0, 0.0)); } yBus.push_back(line); } - // Create and fill with zoros the injected current vector + // Create and fill with zeros the injected current vector std::vector > iInj; - for(unsigned int i = 0; i < m_busList.size(); i++) { iInj.push_back(std::complex(10.0, 0.0)); } + for(unsigned int i = 0; i < m_busList.size(); i++) { iInj.push_back(std::complex(0.0, 0.0)); } + iInj[injBusNumber] = std::complex(1.0, 0.0); if(initFreq < 1e-6) initFreq = stepFreq; double currentFreq = initFreq; @@ -293,13 +295,12 @@ bool PowerQuality::CalculateFrequencyResponse(double systemFreq, for(unsigned int i = 0; i < m_busList.size(); i++) { auto data = m_busList[i]->GetElectricalData(); - iInj[data.number] = std::complex(1.0, 0.0); + if(data.plotPQData) { + auto zh = GaussianElimination(yBus, iInj); - auto zh = GaussianElimination(yBus, iInj); - - data.absImpedanceVector.push_back(std::abs(zh[data.number])); - m_busList[i]->SetElectricalData(data); - iInj[data.number] = std::complex(0.0, 0.0); + data.absImpedanceVector.push_back(std::abs(zh[data.number])); + m_busList[i]->SetElectricalData(data); + } } currentFreq += stepFreq; -- cgit