From 41b81949a92aad043caa28b0e1144348d06921f8 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Wed, 6 Sep 2017 20:11:37 -0300 Subject: Data report implementation start --- Project/ElectricCalculation.cpp | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) (limited to 'Project/ElectricCalculation.cpp') diff --git a/Project/ElectricCalculation.cpp b/Project/ElectricCalculation.cpp index e67c9b4..95810fc 100644 --- a/Project/ElectricCalculation.cpp +++ b/Project/ElectricCalculation.cpp @@ -41,6 +41,16 @@ void ElectricCalculation::GetElementsFromList(std::vector elementList) else if(Transformer* transformer = dynamic_cast(element)) m_transformerList.push_back(transformer); } + + // Set buses numbers + int busNumber = 0; + for(auto itb = m_busList.begin(); itb != m_busList.end(); itb++) { + Bus* bus = *itb; + BusElectricalData data = bus->GetElectricalData(); + data.number = busNumber; + bus->SetElectricalData(data); + busNumber++; + } } bool ElectricCalculation::GetYBus(std::vector > >& yBus, @@ -274,15 +284,24 @@ void ElectricCalculation::UpdateElementsPowerFlow(std::vector reactiveLimit, double systemPowerBase) { - for(int i = 0; i < (int)reactiveLimit.size(); ++i) { - if(reactiveLimit[i].maxLimit > -1e-5 && reactiveLimit[i].maxLimit < 1e-5) reactiveLimit[i].maxLimit = 1e-5; - if(reactiveLimit[i].minLimit > -1e-5 && reactiveLimit[i].minLimit < 1e-5) reactiveLimit[i].minLimit = 1e-5; - } - // Buses voltages + double zeroLimit = 1e-4; + for(unsigned int i = 0; i < reactiveLimit.size(); ++i) { + if(reactiveLimit[i].maxLimit > -zeroLimit && reactiveLimit[i].maxLimit < zeroLimit) reactiveLimit[i].maxLimit = zeroLimit; + if(reactiveLimit[i].minLimit > -zeroLimit && reactiveLimit[i].minLimit < zeroLimit) reactiveLimit[i].minLimit = zeroLimit; + } + for(unsigned int i = 0; i < power.size(); ++i) { + if(std::real(power[i]) > -zeroLimit && std::real(power[i]) < zeroLimit) + power[i] = std::complex(0.0, std::imag(power[i])); + if(std::imag(power[i]) > -zeroLimit && std::imag(power[i]) < zeroLimit) + power[i] = std::complex(std::real(power[i]), 0.0); + } + // Buses for(int i = 0; i < (int)m_busList.size(); i++) { Bus* bus = m_busList[i]; BusElectricalData data = bus->GetElectricalData(); data.voltage = voltage[i]; + data.power = power[i]; + data.busType = busType[i]; bus->SetElectricalData(data); } -- cgit