From 9e1f6849c929506a17fa12185c5c0185d5287177 Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Fri, 8 Sep 2017 22:02:09 -0300 Subject: More grid data implemented Some fault bugfixes --- Project/ElectricCalculation.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'Project/ElectricCalculation.cpp') diff --git a/Project/ElectricCalculation.cpp b/Project/ElectricCalculation.cpp index 95810fc..485325f 100644 --- a/Project/ElectricCalculation.cpp +++ b/Project/ElectricCalculation.cpp @@ -122,7 +122,7 @@ bool ElectricCalculation::GetYBus(std::vector > for(auto it = m_lineList.begin(), itEnd = m_lineList.end(); it != itEnd; ++it) { Line* line = *it; if(line->IsOnline()) { - LineElectricalData data = line->GetElectricalData(); + LineElectricalData data = line->GetPUElectricalData(systemPowerBase); int n1 = static_cast(line->GetParentList()[0])->GetElectricalData().number; int n2 = static_cast(line->GetParentList()[1])->GetElectricalData().number; @@ -158,7 +158,7 @@ bool ElectricCalculation::GetYBus(std::vector > Transformer* transformer = *it; if(transformer->IsOnline()) { - TransformerElectricalData data = transformer->GetElectricalData(); + TransformerElectricalData data = transformer->GetPUElectricalData(systemPowerBase); int n1 = static_cast(transformer->GetParentList()[0])->GetElectricalData().number; int n2 = static_cast(transformer->GetParentList()[1])->GetElectricalData().number; @@ -249,7 +249,10 @@ bool ElectricCalculation::GetYBus(std::vector > yBus[n][n] += 1.0 / std::complex(data.negativeResistance, data.negativeReactance); } break; case ZERO_SEQ: { - yBus[n][n] += 1.0 / std::complex(data.zeroResistance, data.zeroReactance); + if(data.groundNeutral) { + yBus[n][n] += 1.0 / std::complex(data.zeroResistance + 3.0 * data.groundResistance, + data.zeroReactance + 3.0 * data.groundReactance); + } } break; } } @@ -268,7 +271,10 @@ bool ElectricCalculation::GetYBus(std::vector > yBus[n][n] += 1.0 / std::complex(data.negativeResistance, data.negativeReactance); } break; case ZERO_SEQ: { - yBus[n][n] += 1.0 / std::complex(data.zeroResistance, data.zeroReactance); + if(data.groundNeutral) { + yBus[n][n] += 1.0 / std::complex(data.zeroResistance + 3.0 * data.groundResistance, + data.zeroReactance + 3.0 * data.groundReactance); + } } break; } } @@ -286,8 +292,10 @@ void ElectricCalculation::UpdateElementsPowerFlow(std::vector -zeroLimit && reactiveLimit[i].maxLimit < zeroLimit) reactiveLimit[i].maxLimit = zeroLimit; - if(reactiveLimit[i].minLimit > -zeroLimit && reactiveLimit[i].minLimit < zeroLimit) reactiveLimit[i].minLimit = zeroLimit; + 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) -- cgit