diff options
author | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2017-10-11 19:25:34 -0300 |
---|---|---|
committer | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2017-10-11 19:25:34 -0300 |
commit | 7fb65c6ec6148a75830ad25b7f76500c17db0f3b (patch) | |
tree | 9eea1f1d2622446b3bf64d8cf0864c9a9aafad34 | |
parent | 4c162c4ef7386b8fea0ad82a0019a5434adc13fb (diff) | |
download | PSP.git-7fb65c6ec6148a75830ad25b7f76500c17db0f3b.tar.gz PSP.git-7fb65c6ec6148a75830ad25b7f76500c17db0f3b.tar.xz PSP.git-7fb65c6ec6148a75830ad25b7f76500c17db0f3b.zip |
Divider save bug fixed
Control icons updated
Version to download updated
24 files changed, 803 insertions, 781 deletions
diff --git a/Project/ControlEditor.cpp b/Project/ControlEditor.cpp index b9159e5..0bb6ed5 100644 --- a/Project/ControlEditor.cpp +++ b/Project/ControlEditor.cpp @@ -175,36 +175,37 @@ void ControlEditor::BuildControlElementPanel() wrapSizer->Add(constButton, 0, wxALL, 5); constButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this); + ControlElementButton* gainButton = new ControlElementButton( + m_panelControlElements, _("Gain"), wxImage(exePath + "\\..\\data\\images\\control\\gain.png"), ID_GAIN); + wrapSizer->Add(gainButton, 0, wxALL, 5); + gainButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this); + ControlElementButton* limButton = new ControlElementButton(m_panelControlElements, _("Limiter"), wxImage(exePath + "\\..\\data\\images\\control\\limiter.png"), ID_LIMITER); wrapSizer->Add(limButton, 0, wxALL, 5); limButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this); - ControlElementButton* gainButton = new ControlElementButton( - m_panelControlElements, _("Gain"), wxImage(exePath + "\\..\\data\\images\\control\\gain.png"), ID_GAIN); - wrapSizer->Add(gainButton, 0, wxALL, 5); - gainButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this); + ControlElementButton* rateLimButton = + new ControlElementButton(m_panelControlElements, _("Rate limiter"), + wxImage(exePath + "\\..\\data\\images\\control\\rateLimiter.png"), ID_RATELIM); + wrapSizer->Add(rateLimButton, 0, wxALL, 5); + rateLimButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this); ControlElementButton* multButton = new ControlElementButton( m_panelControlElements, _("Multiplier"), wxImage(exePath + "\\..\\data\\images\\control\\mult.png"), ID_MULT); wrapSizer->Add(multButton, 0, wxALL, 5); multButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this); + ControlElementButton* divButton = new ControlElementButton( + m_panelControlElements, _("Divider"), wxImage(exePath + "\\..\\data\\images\\control\\div.png"), ID_MATH_DIV); + wrapSizer->Add(divButton, 0, wxALL, 5); + divButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this); + ControlElementButton* satButton = new ControlElementButton( m_panelControlElements, _("Exponential"), wxImage(exePath + "\\..\\data\\images\\control\\sat.png"), ID_EXP); wrapSizer->Add(satButton, 0, wxALL, 5); satButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this); - - ControlElementButton* rateLimButton = - new ControlElementButton(m_panelControlElements, _("Rate limiter"), - wxImage(exePath + "\\..\\data\\images\\control\\rateLimiter.png"), ID_RATELIM); - wrapSizer->Add(rateLimButton, 0, wxALL, 5); - rateLimButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this); - - ControlElementButton* divButton = new ControlElementButton(m_panelControlElements, _("Divider"), wxImage(exePath + "\\..\\data\\images\\control\\mult.png"), ID_MATH_DIV); - wrapSizer->Add(divButton, 0, wxALL, 5); - divButton->Bind(wxEVT_LEFT_DOWN, &ControlEditor::LeftClickDown, this); } void ControlEditor::LeftClickDown(wxMouseEvent& event) diff --git a/Project/ControlElementContainer.cpp b/Project/ControlElementContainer.cpp index 042f7f2..9c9b1f1 100644 --- a/Project/ControlElementContainer.cpp +++ b/Project/ControlElementContainer.cpp @@ -64,6 +64,7 @@ void ControlElementContainer::ClearContainer() m_rateLimiterList.clear(); m_sumList.clear(); m_tfList.clear(); + m_dividerList.clear(); } void ControlElementContainer::FillContainer(std::vector<ControlElement*> controlElementList, @@ -113,7 +114,7 @@ void ControlElementContainer::GetContainerCopy(std::vector<ControlElement*>& con // Copy elements (exept connection line). int nodeID = 0; for(auto it = m_ctrlElementsList.begin(), itEnd = m_ctrlElementsList.end(); it != itEnd; ++it) { - Element* oldElement = *it; + ControlElement* oldElement = *it; ControlElement* copy = static_cast<ControlElement*>(oldElement->GetCopy()); controlElementList.push_back(copy); // Copy nodes. diff --git a/Project/ControlElementContainer.h b/Project/ControlElementContainer.h index 8c4a3bf..c8af332 100644 --- a/Project/ControlElementContainer.h +++ b/Project/ControlElementContainer.h @@ -71,7 +71,6 @@ class ControlElementContainer protected: std::vector<ControlElement*> m_ctrlElementsList; std::vector<Constant*> m_constantList; - std::vector<ConnectionLine*> m_cLineList; std::vector<Exponential*> m_exponentialList; std::vector<Gain*> m_gainList; diff --git a/Project/Electromechanical.cpp b/Project/Electromechanical.cpp index 3210842..b1d0e2f 100644 --- a/Project/Electromechanical.cpp +++ b/Project/Electromechanical.cpp @@ -536,9 +536,6 @@ bool Electromechanical::InitializeDynamicElements() data.oldSd = sd; data.oldSq = sq; - m_sdC = sd; - m_sqC = sq; - switch(data.model) { case Machines::SM_MODEL_1: { data.tranEq = std::abs(eq0); @@ -834,17 +831,12 @@ bool Electromechanical::SolveSynchronousMachines() sd = 2.0 * sd - data.oldSd; sq = 2.0 * sq - data.oldSq; - m_sdC = sd; - m_sqC = sq; - CalculateSyncMachineIntVariables(syncGenerator, id, iq, sd, sq, pe, k); } else { CalculateIntegrationConstants(syncGenerator, 0.0f, 0.0f); } } - m_wError = 0; - double error = 1.0; int iterations = 0; while(error > m_tolerance) { @@ -891,7 +883,6 @@ bool Electromechanical::SolveSynchronousMachines() return false; } } - m_numIt = iterations; // Solve controllers. int ctrlRatio = static_cast<int>(1 / m_ctrlTimeStepMultiplier); @@ -949,11 +940,6 @@ void Electromechanical::SaveData() bus->SetElectricalData(data); } } - - m_wErrorVector.push_back(m_wError); - m_numItVector.push_back(m_numIt); - m_sdCVector.push_back(m_sdC); - m_sqCVector.push_back(m_sqC); } void Electromechanical::SetSyncMachinesModel() @@ -1023,8 +1009,6 @@ double Electromechanical::CalculateSyncMachineIntVariables(SyncGenerator* syncGe double w = data.icSpeed.c + data.icSpeed.m * (data.pm - pe); error = std::max(error, std::abs(data.speed - w) / m_refSpeed); - m_wError += std::abs(data.speed - w) / m_refSpeed; - double delta = data.icDelta.c + data.icDelta.m * w; error = std::max(error, std::abs(data.delta - delta)); diff --git a/Project/Electromechanical.h b/Project/Electromechanical.h index bd6784d..cba15dc 100644 --- a/Project/Electromechanical.h +++ b/Project/Electromechanical.h @@ -57,13 +57,6 @@ class Electromechanical : public ElectricCalculation bool RunStabilityCalculation(); wxString GetErrorMessage() const { return m_errorMsg; } std::vector<double> GetTimeVector() const { return m_timeVector; } - std::vector<double> m_wErrorVector; - std::vector<double> m_deltaErrorVector; - std::vector<double> m_transEdErrorVector; - std::vector<double> m_transEqErrorVector; - std::vector<double> m_numItVector; - std::vector<double> m_sdCVector; - std::vector<double> m_sqCVector; protected: void SetEventTimeList(); @@ -133,12 +126,6 @@ class Electromechanical : public ElectricCalculation std::vector<bool> m_eventOccurrenceList; std::vector<double> m_timeVector; - - // tests - double m_wError = 0.0; - double m_sdC = 1.0; - double m_sqC = 1.0; - double m_numIt = 0; }; #endif // ELECTROMECHANICAL_H diff --git a/Project/FileHanding.cpp b/Project/FileHanding.cpp index 79dd800..210f86b 100644 --- a/Project/FileHanding.cpp +++ b/Project/FileHanding.cpp @@ -2174,237 +2174,245 @@ bool FileHanding::OpenControlElements(rapidxml::xml_document<>& doc, //{ Constant auto constListNode = elementsNode->first_node("ConstantList"); - if(!constListNode) return false; - auto constNode = constListNode->first_node("Constant"); - while(constNode) { - int id = GetAttributeValueInt(constNode, "ID"); - Constant* constant = new Constant(id); + if(constListNode) { + auto constNode = constListNode->first_node("Constant"); + while(constNode) { + int id = GetAttributeValueInt(constNode, "ID"); + Constant* constant = new Constant(id); - auto cadPropNode = constNode->first_node("CADProperties"); - if(!cadPropNode) return false; + auto cadPropNode = constNode->first_node("CADProperties"); + if(!cadPropNode) return false; - auto position = cadPropNode->first_node("Position"); - double posX = GetNodeValueDouble(position, "X"); - double posY = GetNodeValueDouble(position, "Y"); - auto size = cadPropNode->first_node("Size"); - double width = GetNodeValueDouble(size, "Width"); - double height = GetNodeValueDouble(size, "Height"); - double angle = GetNodeValueDouble(cadPropNode, "Angle"); + auto position = cadPropNode->first_node("Position"); + double posX = GetNodeValueDouble(position, "X"); + double posY = GetNodeValueDouble(position, "Y"); + auto size = cadPropNode->first_node("Size"); + double width = GetNodeValueDouble(size, "Width"); + double height = GetNodeValueDouble(size, "Height"); + double angle = GetNodeValueDouble(cadPropNode, "Angle"); - double value = GetNodeValueDouble(constNode, "Value"); + double value = GetNodeValueDouble(constNode, "Value"); - constant->SetWidth(width); - constant->SetHeight(height); - constant->SetAngle(angle); - constant->SetPosition(wxPoint2DDouble(posX, posY)); - constant->StartMove(constant->GetPosition()); + constant->SetWidth(width); + constant->SetHeight(height); + constant->SetAngle(angle); + constant->SetPosition(wxPoint2DDouble(posX, posY)); + constant->StartMove(constant->GetPosition()); - constant->SetValue(value); + constant->SetValue(value); - std::vector<Node*> nodeVector; - if(!OpenControlNodeList(constNode, nodeVector)) return false; + std::vector<Node*> nodeVector; + if(!OpenControlNodeList(constNode, nodeVector)) return false; - constant->SetNodeList(nodeVector); - constant->UpdatePoints(); - elementList.push_back(constant); + constant->SetNodeList(nodeVector); + constant->UpdatePoints(); + elementList.push_back(constant); - constNode = constNode->next_sibling("Constant"); - } //} + constNode = constNode->next_sibling("Constant"); + } + } + //} //{ Exponential auto expListNode = elementsNode->first_node("ExponentialList"); - if(!expListNode) return false; - auto expNode = expListNode->first_node("Exponential"); - while(expNode) { - int id = GetAttributeValueInt(expNode, "ID"); - Exponential* exponential = new Exponential(id); + if(expListNode) { + auto expNode = expListNode->first_node("Exponential"); + while(expNode) { + int id = GetAttributeValueInt(expNode, "ID"); + Exponential* exponential = new Exponential(id); - auto cadPropNode = expNode->first_node("CADProperties"); - if(!cadPropNode) return false; + auto cadPropNode = expNode->first_node("CADProperties"); + if(!cadPropNode) return false; - auto position = cadPropNode->first_node("Position"); - double posX = GetNodeValueDouble(position, "X"); - double posY = GetNodeValueDouble(position, "Y"); - auto size = cadPropNode->first_node("Size"); - double width = GetNodeValueDouble(size, "Width"); - double height = GetNodeValueDouble(size, "Height"); - double angle = GetNodeValueDouble(cadPropNode, "Angle"); + auto position = cadPropNode->first_node("Position"); + double posX = GetNodeValueDouble(position, "X"); + double posY = GetNodeValueDouble(position, "Y"); + auto size = cadPropNode->first_node("Size"); + double width = GetNodeValueDouble(size, "Width"); + double height = GetNodeValueDouble(size, "Height"); + double angle = GetNodeValueDouble(cadPropNode, "Angle"); - auto value = expNode->first_node("Value"); - double a = GetNodeValueDouble(value, "A"); - double b = GetNodeValueDouble(value, "B"); + auto value = expNode->first_node("Value"); + double a = GetNodeValueDouble(value, "A"); + double b = GetNodeValueDouble(value, "B"); - exponential->SetWidth(width); - exponential->SetHeight(height); - exponential->SetAngle(angle); - exponential->SetPosition(wxPoint2DDouble(posX, posY)); - exponential->StartMove(exponential->GetPosition()); + exponential->SetWidth(width); + exponential->SetHeight(height); + exponential->SetAngle(angle); + exponential->SetPosition(wxPoint2DDouble(posX, posY)); + exponential->StartMove(exponential->GetPosition()); - exponential->SetValues(a, b); + exponential->SetValues(a, b); - std::vector<Node*> nodeVector; - if(!OpenControlNodeList(expNode, nodeVector)) return false; + std::vector<Node*> nodeVector; + if(!OpenControlNodeList(expNode, nodeVector)) return false; - exponential->SetNodeList(nodeVector); - exponential->UpdatePoints(); - elementList.push_back(exponential); + exponential->SetNodeList(nodeVector); + exponential->UpdatePoints(); + elementList.push_back(exponential); - expNode = expNode->next_sibling("Exponential"); - } //} + expNode = expNode->next_sibling("Exponential"); + } + } + //} //{ Gain auto gainListNode = elementsNode->first_node("GainList"); - if(!gainListNode) return false; - auto gainNode = gainListNode->first_node("Gain"); - while(gainNode) { - int id = GetAttributeValueInt(gainNode, "ID"); - Gain* gain = new Gain(id); + if(gainListNode) { + auto gainNode = gainListNode->first_node("Gain"); + while(gainNode) { + int id = GetAttributeValueInt(gainNode, "ID"); + Gain* gain = new Gain(id); - auto cadPropNode = gainNode->first_node("CADProperties"); - if(!cadPropNode) return false; + auto cadPropNode = gainNode->first_node("CADProperties"); + if(!cadPropNode) return false; - auto position = cadPropNode->first_node("Position"); - double posX = GetNodeValueDouble(position, "X"); - double posY = GetNodeValueDouble(position, "Y"); - auto size = cadPropNode->first_node("Size"); - double width = GetNodeValueDouble(size, "Width"); - double height = GetNodeValueDouble(size, "Height"); - double angle = GetNodeValueDouble(cadPropNode, "Angle"); + auto position = cadPropNode->first_node("Position"); + double posX = GetNodeValueDouble(position, "X"); + double posY = GetNodeValueDouble(position, "Y"); + auto size = cadPropNode->first_node("Size"); + double width = GetNodeValueDouble(size, "Width"); + double height = GetNodeValueDouble(size, "Height"); + double angle = GetNodeValueDouble(cadPropNode, "Angle"); - double value = GetNodeValueDouble(gainNode, "Value"); + double value = GetNodeValueDouble(gainNode, "Value"); - gain->SetWidth(width); - gain->SetHeight(height); - gain->SetAngle(angle); - gain->SetPosition(wxPoint2DDouble(posX, posY)); - gain->SetValue(value); - gain->StartMove(gain->GetPosition()); + gain->SetWidth(width); + gain->SetHeight(height); + gain->SetAngle(angle); + gain->SetPosition(wxPoint2DDouble(posX, posY)); + gain->SetValue(value); + gain->StartMove(gain->GetPosition()); - std::vector<Node*> nodeVector; - if(!OpenControlNodeList(gainNode, nodeVector)) return false; + std::vector<Node*> nodeVector; + if(!OpenControlNodeList(gainNode, nodeVector)) return false; - gain->SetNodeList(nodeVector); - gain->UpdatePoints(); - elementList.push_back(gain); + gain->SetNodeList(nodeVector); + gain->UpdatePoints(); + elementList.push_back(gain); - gainNode = gainNode->next_sibling("Gain"); + gainNode = gainNode->next_sibling("Gain"); + } } //} //{ IO auto ioListNode = elementsNode->first_node("IOList"); - if(!ioListNode) return false; - auto ioNode = ioListNode->first_node("IO"); - while(ioNode) { - int id = GetAttributeValueInt(ioNode, "ID"); + if(ioListNode) { + auto ioNode = ioListNode->first_node("IO"); + while(ioNode) { + int id = GetAttributeValueInt(ioNode, "ID"); - auto cadPropNode = ioNode->first_node("CADProperties"); - if(!cadPropNode) return false; + auto cadPropNode = ioNode->first_node("CADProperties"); + if(!cadPropNode) return false; - auto position = cadPropNode->first_node("Position"); - double posX = GetNodeValueDouble(position, "X"); - double posY = GetNodeValueDouble(position, "Y"); - auto size = cadPropNode->first_node("Size"); - double width = GetNodeValueDouble(size, "Width"); - double height = GetNodeValueDouble(size, "Height"); - double angle = GetNodeValueDouble(cadPropNode, "Angle"); + auto position = cadPropNode->first_node("Position"); + double posX = GetNodeValueDouble(position, "X"); + double posY = GetNodeValueDouble(position, "Y"); + auto size = cadPropNode->first_node("Size"); + double width = GetNodeValueDouble(size, "Width"); + double height = GetNodeValueDouble(size, "Height"); + double angle = GetNodeValueDouble(cadPropNode, "Angle"); - std::vector<Node*> nodeVector; - if(!OpenControlNodeList(ioNode, nodeVector)) return false; + std::vector<Node*> nodeVector; + if(!OpenControlNodeList(ioNode, nodeVector)) return false; - IOControl::IOFlags value = static_cast<IOControl::IOFlags>(GetNodeValueInt(ioNode, "Value")); - int ioFlags = GetNodeValueInt(ioNode, "IOFlags"); + IOControl::IOFlags value = static_cast<IOControl::IOFlags>(GetNodeValueInt(ioNode, "Value")); + int ioFlags = GetNodeValueInt(ioNode, "IOFlags"); - IOControl* io = new IOControl(ioFlags, id); + IOControl* io = new IOControl(ioFlags, id); - io->SetWidth(width); - io->SetHeight(height); - io->SetAngle(angle); - io->SetPosition(wxPoint2DDouble(posX, posY)); - io->SetValue(value); - io->StartMove(io->GetPosition()); - io->SetNodeList(nodeVector); - io->UpdatePoints(); - elementList.push_back(io); + io->SetWidth(width); + io->SetHeight(height); + io->SetAngle(angle); + io->SetPosition(wxPoint2DDouble(posX, posY)); + io->SetValue(value); + io->StartMove(io->GetPosition()); + io->SetNodeList(nodeVector); + io->UpdatePoints(); + elementList.push_back(io); - ioNode = ioNode->next_sibling("IO"); + ioNode = ioNode->next_sibling("IO"); + } } //} //{ Limiter auto limiterListNode = elementsNode->first_node("LimiterList"); - if(!limiterListNode) return false; - auto limiterNode = limiterListNode->first_node("Limiter"); - while(limiterNode) { - int id = GetAttributeValueInt(limiterNode, "ID"); - Limiter* limiter = new Limiter(id); + if(limiterListNode) { + auto limiterNode = limiterListNode->first_node("Limiter"); + while(limiterNode) { + int id = GetAttributeValueInt(limiterNode, "ID"); + Limiter* limiter = new Limiter(id); - auto cadPropNode = limiterNode->first_node("CADProperties"); - if(!cadPropNode) return false; + auto cadPropNode = limiterNode->first_node("CADProperties"); + if(!cadPropNode) return false; - auto position = cadPropNode->first_node("Position"); - double posX = GetNodeValueDouble(position, "X"); - double posY = GetNodeValueDouble(position, "Y"); - auto size = cadPropNode->first_node("Size"); - double width = GetNodeValueDouble(size, "Width"); - double height = GetNodeValueDouble(size, "Height"); - double angle = GetNodeValueDouble(cadPropNode, "Angle"); + auto position = cadPropNode->first_node("Position"); + double posX = GetNodeValueDouble(position, "X"); + double posY = GetNodeValueDouble(position, "Y"); + auto size = cadPropNode->first_node("Size"); + double width = GetNodeValueDouble(size, "Width"); + double height = GetNodeValueDouble(size, "Height"); + double angle = GetNodeValueDouble(cadPropNode, "Angle"); - double upLimit = GetNodeValueDouble(limiterNode, "UpperLimit"); - double lowLimit = GetNodeValueDouble(limiterNode, "LowerLimit"); + double upLimit = GetNodeValueDouble(limiterNode, "UpperLimit"); + double lowLimit = GetNodeValueDouble(limiterNode, "LowerLimit"); - std::vector<Node*> nodeVector; - if(!OpenControlNodeList(limiterNode, nodeVector)) return false; + std::vector<Node*> nodeVector; + if(!OpenControlNodeList(limiterNode, nodeVector)) return false; - limiter->SetWidth(width); - limiter->SetHeight(height); - limiter->SetAngle(angle); - limiter->SetPosition(wxPoint2DDouble(posX, posY)); - limiter->SetUpLimit(upLimit); - limiter->SetLowLimit(lowLimit); + limiter->SetWidth(width); + limiter->SetHeight(height); + limiter->SetAngle(angle); + limiter->SetPosition(wxPoint2DDouble(posX, posY)); + limiter->SetUpLimit(upLimit); + limiter->SetLowLimit(lowLimit); - limiter->StartMove(limiter->GetPosition()); - limiter->SetNodeList(nodeVector); - limiter->UpdatePoints(); - elementList.push_back(limiter); + limiter->StartMove(limiter->GetPosition()); + limiter->SetNodeList(nodeVector); + limiter->UpdatePoints(); + elementList.push_back(limiter); - limiterNode = limiterNode->next_sibling("Limiter"); + limiterNode = limiterNode->next_sibling("Limiter"); + } } //} //{ Multiplier auto multiplierListNode = elementsNode->first_node("MultiplierList"); - if(!multiplierListNode) return false; - auto multiplierNode = multiplierListNode->first_node("Multiplier"); - while(multiplierNode) { - int id = GetAttributeValueInt(multiplierNode, "ID"); - Multiplier* multiplier = new Multiplier(id); + if(multiplierListNode) { + auto multiplierNode = multiplierListNode->first_node("Multiplier"); + while(multiplierNode) { + int id = GetAttributeValueInt(multiplierNode, "ID"); + Multiplier* multiplier = new Multiplier(id); - auto cadPropNode = multiplierNode->first_node("CADProperties"); - if(!cadPropNode) return false; + auto cadPropNode = multiplierNode->first_node("CADProperties"); + if(!cadPropNode) return false; - auto position = cadPropNode->first_node("Position"); - double posX = GetNodeValueDouble(position, "X"); - double posY = GetNodeValueDouble(position, "Y"); - auto size = cadPropNode->first_node("Size"); - double width = GetNodeValueDouble(size, "Width"); - double height = GetNodeValueDouble(size, "Height"); - double angle = GetNodeValueDouble(cadPropNode, "Angle"); + auto position = cadPropNode->first_node("Position"); + double posX = GetNodeValueDouble(position, "X"); + double posY = GetNodeValueDouble(position, "Y"); + auto size = cadPropNode->first_node("Size"); + double width = GetNodeValueDouble(size, "Width"); + double height = GetNodeValueDouble(size, "Height"); + double angle = GetNodeValueDouble(cadPropNode, "Angle"); - std::vector<Node*> nodeVector; - if(!OpenControlNodeList(multiplierNode, nodeVector)) return false; + std::vector<Node*> nodeVector; + if(!OpenControlNodeList(multiplierNode, nodeVector)) return false; - multiplier->SetWidth(width); - multiplier->SetHeight(height); - multiplier->SetAngle(angle); - multiplier->SetPosition(wxPoint2DDouble(posX, posY)); + multiplier->SetWidth(width); + multiplier->SetHeight(height); + multiplier->SetAngle(angle); + multiplier->SetPosition(wxPoint2DDouble(posX, posY)); - multiplier->StartMove(multiplier->GetPosition()); - multiplier->SetNodeList(nodeVector); - multiplier->UpdatePoints(); - elementList.push_back(multiplier); + multiplier->StartMove(multiplier->GetPosition()); + multiplier->SetNodeList(nodeVector); + multiplier->UpdatePoints(); + elementList.push_back(multiplier); - multiplierNode = multiplierNode->next_sibling("Multiplier"); + multiplierNode = multiplierNode->next_sibling("Multiplier"); + } } //} @@ -2447,201 +2455,205 @@ bool FileHanding::OpenControlElements(rapidxml::xml_document<>& doc, //{ Rate limiter auto rateLimiterListNode = elementsNode->first_node("RateLimiterList"); - if(!rateLimiterListNode) return false; - auto rateLimiterNode = rateLimiterListNode->first_node("RateLimiter"); - while(rateLimiterNode) { - int id = GetAttributeValueInt(rateLimiterNode, "ID"); - RateLimiter* limiter = new RateLimiter(id); + if(rateLimiterListNode) { + auto rateLimiterNode = rateLimiterListNode->first_node("RateLimiter"); + while(rateLimiterNode) { + int id = GetAttributeValueInt(rateLimiterNode, "ID"); + RateLimiter* limiter = new RateLimiter(id); - auto cadPropNode = rateLimiterNode->first_node("CADProperties"); - if(!cadPropNode) return false; + auto cadPropNode = rateLimiterNode->first_node("CADProperties"); + if(!cadPropNode) return false; - auto position = cadPropNode->first_node("Position"); - double posX = GetNodeValueDouble(position, "X"); - double posY = GetNodeValueDouble(position, "Y"); - auto size = cadPropNode->first_node("Size"); - double width = GetNodeValueDouble(size, "Width"); - double height = GetNodeValueDouble(size, "Height"); - double angle = GetNodeValueDouble(cadPropNode, "Angle"); + auto position = cadPropNode->first_node("Position"); + double posX = GetNodeValueDouble(position, "X"); + double posY = GetNodeValueDouble(position, "Y"); + auto size = cadPropNode->first_node("Size"); + double width = GetNodeValueDouble(size, "Width"); + double height = GetNodeValueDouble(size, "Height"); + double angle = GetNodeValueDouble(cadPropNode, "Angle"); - double upLimit = GetNodeValueDouble(rateLimiterNode, "UpperLimit"); - double lowLimit = GetNodeValueDouble(rateLimiterNode, "LowerLimit"); + double upLimit = GetNodeValueDouble(rateLimiterNode, "UpperLimit"); + double lowLimit = GetNodeValueDouble(rateLimiterNode, "LowerLimit"); - std::vector<Node*> nodeVector; - if(!OpenControlNodeList(rateLimiterNode, nodeVector)) return false; + std::vector<Node*> nodeVector; + if(!OpenControlNodeList(rateLimiterNode, nodeVector)) return false; - limiter->SetWidth(width); - limiter->SetHeight(height); - limiter->SetAngle(angle); - limiter->SetPosition(wxPoint2DDouble(posX, posY)); - limiter->SetUpLimit(upLimit); - limiter->SetLowLimit(lowLimit); + limiter->SetWidth(width); + limiter->SetHeight(height); + limiter->SetAngle(angle); + limiter->SetPosition(wxPoint2DDouble(posX, posY)); + limiter->SetUpLimit(upLimit); + limiter->SetLowLimit(lowLimit); - limiter->StartMove(limiter->GetPosition()); - limiter->SetNodeList(nodeVector); - limiter->UpdatePoints(); - elementList.push_back(limiter); + limiter->StartMove(limiter->GetPosition()); + limiter->SetNodeList(nodeVector); + limiter->UpdatePoints(); + elementList.push_back(limiter); - rateLimiterNode = rateLimiterNode->next_sibling("RateLimiter"); + rateLimiterNode = rateLimiterNode->next_sibling("RateLimiter"); + } } //} //{ Sum auto sumListNode = elementsNode->first_node("SumList"); - if(!sumListNode) return false; - auto sumNode = sumListNode->first_node("Sum"); - while(sumNode) { - int id = GetAttributeValueInt(sumNode, "ID"); - Sum* sum = new Sum(id); + if(sumListNode) { + auto sumNode = sumListNode->first_node("Sum"); + while(sumNode) { + int id = GetAttributeValueInt(sumNode, "ID"); + Sum* sum = new Sum(id); - auto cadPropNode = sumNode->first_node("CADProperties"); - if(!cadPropNode) return false; + auto cadPropNode = sumNode->first_node("CADProperties"); + if(!cadPropNode) return false; - auto position = cadPropNode->first_node("Position"); - double posX = GetNodeValueDouble(position, "X"); - double posY = GetNodeValueDouble(position, "Y"); - auto size = cadPropNode->first_node("Size"); - double width = GetNodeValueDouble(size, "Width"); - double height = GetNodeValueDouble(size, "Height"); - double angle = GetNodeValueDouble(cadPropNode, "Angle"); + auto position = cadPropNode->first_node("Position"); + double posX = GetNodeValueDouble(position, "X"); + double posY = GetNodeValueDouble(position, "Y"); + auto size = cadPropNode->first_node("Size"); + double width = GetNodeValueDouble(size, "Width"); + double height = GetNodeValueDouble(size, "Height"); + double angle = GetNodeValueDouble(cadPropNode, "Angle"); - std::vector<Sum::Signal> signs; - auto signsNode = sumNode->first_node("Signs"); - auto sign = signsNode->first_node("Value"); - while(sign) { - long value; - wxString(sign->value()).ToCLong(&value); - signs.push_back(static_cast<Sum::Signal>(value)); - sign = sign->next_sibling("Value"); - } - sum->SetSignalList(signs); + std::vector<Sum::Signal> signs; + auto signsNode = sumNode->first_node("Signs"); + auto sign = signsNode->first_node("Value"); + while(sign) { + long value; + wxString(sign->value()).ToCLong(&value); + signs.push_back(static_cast<Sum::Signal>(value)); + sign = sign->next_sibling("Value"); + } + sum->SetSignalList(signs); - std::vector<Node*> nodeVector; - if(!OpenControlNodeList(sumNode, nodeVector)) return false; + std::vector<Node*> nodeVector; + if(!OpenControlNodeList(sumNode, nodeVector)) return false; - sum->SetWidth(width); - sum->SetHeight(height); - sum->SetAngle(angle); - sum->SetPosition(wxPoint2DDouble(posX, posY)); + sum->SetWidth(width); + sum->SetHeight(height); + sum->SetAngle(angle); + sum->SetPosition(wxPoint2DDouble(posX, posY)); - sum->StartMove(sum->GetPosition()); - sum->SetNodeList(nodeVector); - sum->UpdatePoints(); - elementList.push_back(sum); + sum->StartMove(sum->GetPosition()); + sum->SetNodeList(nodeVector); + sum->UpdatePoints(); + elementList.push_back(sum); - sumNode = sumNode->next_sibling("Sum"); + sumNode = sumNode->next_sibling("Sum"); + } } //} //{ Transfer function auto tfListNode = elementsNode->first_node("TransferFunctionList"); - if(!tfListNode) return false; - auto tfNode = tfListNode->first_node("TransferFunction"); - while(tfNode) { - int id = GetAttributeValueInt(tfNode, "ID"); - TransferFunction* tf = new TransferFunction(id); + if(tfListNode) { + auto tfNode = tfListNode->first_node("TransferFunction"); + while(tfNode) { + int id = GetAttributeValueInt(tfNode, "ID"); + TransferFunction* tf = new TransferFunction(id); - auto cadPropNode = tfNode->first_node("CADProperties"); - if(!cadPropNode) return false; + auto cadPropNode = tfNode->first_node("CADProperties"); + if(!cadPropNode) return false; - auto position = cadPropNode->first_node("Position"); - double posX = GetNodeValueDouble(position, "X"); - double posY = GetNodeValueDouble(position, "Y"); - auto size = cadPropNode->first_node("Size"); - double width = GetNodeValueDouble(size, "Width"); - double height = GetNodeValueDouble(size, "Height"); - double angle = GetNodeValueDouble(cadPropNode, "Angle"); + auto position = cadPropNode->first_node("Position"); + double posX = GetNodeValueDouble(position, "X"); + double posY = GetNodeValueDouble(position, "Y"); + auto size = cadPropNode->first_node("Size"); + double width = GetNodeValueDouble(size, "Width"); + double height = GetNodeValueDouble(size, "Height"); + double angle = GetNodeValueDouble(cadPropNode, "Angle"); - std::vector<double> numerator, denominator; - auto numeratorNode = tfNode->first_node("Numerator"); - auto nValue = numeratorNode->first_node("Value"); - while(nValue) { - double value = 0.0; - wxString(nValue->value()).ToCDouble(&value); - numerator.push_back(value); - nValue = nValue->next_sibling("Value"); - } - auto denominatorNode = tfNode->first_node("Denominator"); - auto dValue = denominatorNode->first_node("Value"); - while(dValue) { - double value = 0.0; - wxString(dValue->value()).ToCDouble(&value); - denominator.push_back(value); - dValue = dValue->next_sibling("Value"); - } + std::vector<double> numerator, denominator; + auto numeratorNode = tfNode->first_node("Numerator"); + auto nValue = numeratorNode->first_node("Value"); + while(nValue) { + double value = 0.0; + wxString(nValue->value()).ToCDouble(&value); + numerator.push_back(value); + nValue = nValue->next_sibling("Value"); + } + auto denominatorNode = tfNode->first_node("Denominator"); + auto dValue = denominatorNode->first_node("Value"); + while(dValue) { + double value = 0.0; + wxString(dValue->value()).ToCDouble(&value); + denominator.push_back(value); + dValue = dValue->next_sibling("Value"); + } - std::vector<Node*> nodeVector; - if(!OpenControlNodeList(tfNode, nodeVector)) return false; + std::vector<Node*> nodeVector; + if(!OpenControlNodeList(tfNode, nodeVector)) return false; - tf->SetWidth(width); - tf->SetHeight(height); - tf->SetAngle(angle); - tf->SetPosition(wxPoint2DDouble(posX, posY)); + tf->SetWidth(width); + tf->SetHeight(height); + tf->SetAngle(angle); + tf->SetPosition(wxPoint2DDouble(posX, posY)); - tf->SetNumerator(numerator); - tf->SetDenominator(denominator); + tf->SetNumerator(numerator); + tf->SetDenominator(denominator); - tf->StartMove(tf->GetPosition()); - tf->SetNodeList(nodeVector); + tf->StartMove(tf->GetPosition()); + tf->SetNodeList(nodeVector); - tf->UpdateTFText(); + tf->UpdateTFText(); - elementList.push_back(tf); + elementList.push_back(tf); - tfNode = tfNode->next_sibling("TransferFunction"); + tfNode = tfNode->next_sibling("TransferFunction"); + } } //} // Connection line auto connectionListNode = elementsNode->first_node("ConnectionList"); - if(!connectionListNode) return false; - auto connNode = connectionListNode->first_node("Connection"); - while(connNode) { - ConnectionLine* cLine = NULL; - int id = GetAttributeValueInt(connNode, "ID"); + if(connectionListNode) { + auto connNode = connectionListNode->first_node("Connection"); + while(connNode) { + ConnectionLine* cLine = NULL; + int id = GetAttributeValueInt(connNode, "ID"); - auto cadPropNode = connNode->first_node("CADProperties"); - if(!cadPropNode) return false; - double offset = GetNodeValueDouble(cadPropNode, "Offset"); + auto cadPropNode = connNode->first_node("CADProperties"); + if(!cadPropNode) return false; + double offset = GetNodeValueDouble(cadPropNode, "Offset"); - auto parentList = connNode->first_node("ParentList"); - if(!parentList) return false; + auto parentList = connNode->first_node("ParentList"); + if(!parentList) return false; - auto parentNode = parentList->first_node("Parent"); - bool firstNode = true; - while(parentNode) { - int elementID = GetNodeValueInt(parentNode, "ElementID"); - int nodeID = GetNodeValueInt(parentNode, "NodeID"); + auto parentNode = parentList->first_node("Parent"); + bool firstNode = true; + while(parentNode) { + int elementID = GetNodeValueInt(parentNode, "ElementID"); + int nodeID = GetNodeValueInt(parentNode, "NodeID"); - ControlElement* element = GetControlElementFromID(elementList, elementID); - Node* node = element->GetNodeList()[nodeID]; + ControlElement* element = GetControlElementFromID(elementList, elementID); + Node* node = element->GetNodeList()[nodeID]; - if(firstNode) cLine = new ConnectionLine(node, id); - cLine->AddParent(element); - element->AddChild(cLine); - if(!firstNode) cLine->AppendNode(node, element); + if(firstNode) cLine = new ConnectionLine(node, id); + cLine->AddParent(element); + element->AddChild(cLine); + if(!firstNode) cLine->AppendNode(node, element); - if(firstNode) firstNode = false; - parentNode = parentNode->next_sibling("Parent"); - } + if(firstNode) firstNode = false; + parentNode = parentNode->next_sibling("Parent"); + } - auto parentLine = connNode->first_node("ParentLine"); - if(!parentLine) return false; - int parentLineID = GetAttributeValueInt(parentLine, "ID"); - if(parentLineID != -1) { - for(auto it = connectionList.begin(), itEnd = connectionList.end(); it != itEnd; ++it) { - ConnectionLine* parent = *it; - if(parent->GetID() == parentLineID) { - cLine->SetParentLine(parent); - parent->AddChild(cLine); + auto parentLine = connNode->first_node("ParentLine"); + if(!parentLine) return false; + int parentLineID = GetAttributeValueInt(parentLine, "ID"); + if(parentLineID != -1) { + for(auto it = connectionList.begin(), itEnd = connectionList.end(); it != itEnd; ++it) { + ConnectionLine* parent = *it; + if(parent->GetID() == parentLineID) { + cLine->SetParentLine(parent); + parent->AddChild(cLine); + } } } - } - cLine->SetOffset(offset); - cLine->UpdatePoints(); - connectionList.push_back(cLine); - connNode = connNode->next_sibling("Connection"); + cLine->SetOffset(offset); + cLine->UpdatePoints(); + connectionList.push_back(cLine); + connNode = connNode->next_sibling("Connection"); + } } ctrlContainer->FillContainer(elementList, connectionList); return true; diff --git a/Project/Project.mk b/Project/Project.mk index a4fb215..4aa8df3 100644 --- a/Project/Project.mk +++ b/Project/Project.mk @@ -13,7 +13,7 @@ CurrentFileName := CurrentFilePath := CurrentFileFullPath := User :=NDSE-69 -Date :=10/10/2017 +Date :=11/10/2017 CodeLitePath :="C:/Program Files/CodeLite" LinkerName :=C:/TDM-GCC-64/bin/g++.exe SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC diff --git a/Project/PropertiesForm.cpp b/Project/PropertiesForm.cpp index af7fcc2..bd09f3e 100644 --- a/Project/PropertiesForm.cpp +++ b/Project/PropertiesForm.cpp @@ -532,7 +532,7 @@ AboutFormBase::AboutFormBase(wxWindow* parent, wxWindowID id, const wxString& ti flexGridSizer247->Add(m_staticTextVersionLabel, 0, wxALL, WXC_FROM_DIP(5)); - m_staticTextVersion = new wxStaticText(this, wxID_ANY, _("Alpha 2017w38b"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); + m_staticTextVersion = new wxStaticText(this, wxID_ANY, _("Alpha 2017w41a"), wxDefaultPosition, wxDLG_UNIT(this, wxSize(-1,-1)), 0); flexGridSizer247->Add(m_staticTextVersion, 0, wxALL, WXC_FROM_DIP(5)); diff --git a/Project/PropertiesForm.wxcp b/Project/PropertiesForm.wxcp index 72d0a53..c3fc587 100644 --- a/Project/PropertiesForm.wxcp +++ b/Project/PropertiesForm.wxcp @@ -5801,7 +5801,7 @@ }, { "type": "multi-string", "m_label": "Label:", - "m_value": "Alpha 2017w38b" + "m_value": "Alpha 2017w41a" }, { "type": "string", "m_label": "Wrap:", diff --git a/Project/Workspace.cpp b/Project/Workspace.cpp index bd385b5..97be7b4 100644 --- a/Project/Workspace.cpp +++ b/Project/Workspace.cpp @@ -1466,12 +1466,6 @@ bool Workspace::RunStability() ElementPlotData plotData; if(element->GetPlotData(plotData)) plotDataList.push_back(plotData); } - ElementPlotData tests(_("Error"), ElementPlotData::CT_TEST); - tests.AddData(stability.m_wErrorVector, _("Speed error")); - tests.AddData(stability.m_sdCVector, _("Sd")); - tests.AddData(stability.m_sqCVector, _("Sq")); - tests.AddData(stability.m_numItVector, _("Number iterations")); - plotDataList.push_back(tests); ChartView* cView = new ChartView(this, plotDataList, m_stabilityTimeVector); cView->Show(); diff --git a/Project/data/images/control/div.png b/Project/data/images/control/div.png Binary files differnew file mode 100644 index 0000000..5ab2b20 --- /dev/null +++ b/Project/data/images/control/div.png diff --git a/Project/data/images/control/gain.png b/Project/data/images/control/gain.png Binary files differindex 33a3532..978a217 100644 --- a/Project/data/images/control/gain.png +++ b/Project/data/images/control/gain.png diff --git a/Project/data/images/control/io.png b/Project/data/images/control/io.png Binary files differindex 2a2201f..0d1da22 100644 --- a/Project/data/images/control/io.png +++ b/Project/data/images/control/io.png diff --git a/Project/data/images/control/limiter.png b/Project/data/images/control/limiter.png Binary files differindex 3aff22d..ee402cc 100644 --- a/Project/data/images/control/limiter.png +++ b/Project/data/images/control/limiter.png diff --git a/Project/data/images/control/mult.png b/Project/data/images/control/mult.png Binary files differindex fcdda5a..a009b3c 100644 --- a/Project/data/images/control/mult.png +++ b/Project/data/images/control/mult.png diff --git a/Project/data/images/control/rateLimiter.png b/Project/data/images/control/rateLimiter.png Binary files differindex d1b7f74..49a92aa 100644 --- a/Project/data/images/control/rateLimiter.png +++ b/Project/data/images/control/rateLimiter.png diff --git a/Project/data/images/control/sat.png b/Project/data/images/control/sat.png Binary files differindex a7c2555..9fc77be 100644 --- a/Project/data/images/control/sat.png +++ b/Project/data/images/control/sat.png diff --git a/Project/data/images/control/sum.png b/Project/data/images/control/sum.png Binary files differindex b572434..29d3330 100644 --- a/Project/data/images/control/sum.png +++ b/Project/data/images/control/sum.png diff --git a/Project/data/images/control/transferFunc.png b/Project/data/images/control/transferFunc.png Binary files differindex 5902a99..b1e95e1 100644 --- a/Project/data/images/control/transferFunc.png +++ b/Project/data/images/control/transferFunc.png diff --git a/Project/data/images/control/value.png b/Project/data/images/control/value.png Binary files differindex 822908b..b274e7a 100644 --- a/Project/data/images/control/value.png +++ b/Project/data/images/control/value.png diff --git a/Project/data/images/icon.ico b/Project/data/images/icon.ico Binary files differnew file mode 100644 index 0000000..f1817fa --- /dev/null +++ b/Project/data/images/icon.ico diff --git a/Project/data/lang/pt_BR/pt_BR.mo b/Project/data/lang/pt_BR/pt_BR.mo Binary files differindex 05ffb05..699ae18 100644 --- a/Project/data/lang/pt_BR/pt_BR.mo +++ b/Project/data/lang/pt_BR/pt_BR.mo diff --git a/Project/data/lang/pt_BR/pt_BR.po b/Project/data/lang/pt_BR/pt_BR.po index c9f09e9..15abcdd 100644 --- a/Project/data/lang/pt_BR/pt_BR.po +++ b/Project/data/lang/pt_BR/pt_BR.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: PSP-UFU pt_BR 0.0.1\n" -"POT-Creation-Date: 2017-09-14 20:02-0300\n" -"PO-Revision-Date: 2017-09-14 20:12-0300\n" +"POT-Creation-Date: 2017-10-11 19:08-0300\n" +"PO-Revision-Date: 2017-10-11 19:11-0300\n" "Last-Translator: \n" "Language-Team: Thales Lima Oliveira <thaleslima.ufu@gmail.com>\n" "Language: pt_BR\n" @@ -17,35 +17,35 @@ msgstr "" "X-Poedit-SearchPathExcluded-0: wxMathPlot\n" "X-Poedit-SearchPathExcluded-1: rapidXML\n" -#: AboutForm.cpp:22 +#: AboutForm.cpp:39 msgid "Developers" msgstr "Desenvolvedores" -#: AboutForm.cpp:27 +#: AboutForm.cpp:44 msgid "Main developer and project admin" msgstr "Desenvolvedor principal e administrador do projeto" -#: AboutForm.cpp:32 +#: AboutForm.cpp:49 msgid "Contributors / Special Thanks" msgstr "Colaboradores / Agradecimentos Especiais" -#: AboutForm.cpp:38 +#: AboutForm.cpp:55 msgid "Chief advisor" msgstr "Conselheiro-chefe" -#: Bus.cpp:178 +#: Bus.cpp:195 msgid "Edit bus" msgstr "Editar barra" -#: Bus.cpp:207 Transformer.cpp:407 Transformer.cpp:418 +#: Bus.cpp:224 Transformer.cpp:424 Transformer.cpp:435 msgid " V" msgstr " V" -#: Bus.cpp:207 Transformer.cpp:410 Transformer.cpp:421 +#: Bus.cpp:224 Transformer.cpp:427 Transformer.cpp:438 msgid " kV" msgstr " kV" -#: Bus.cpp:209 +#: Bus.cpp:226 msgid "" "\n" "V = " @@ -53,16 +53,16 @@ msgstr "" "\n" "V = " -#: Bus.cpp:209 Bus.cpp:215 Bus.cpp:216 Bus.cpp:217 Bus.cpp:219 Bus.cpp:220 -#: Bus.cpp:221 Bus.cpp:224 Capacitor.cpp:186 IndMotor.cpp:99 IndMotor.cpp:118 -#: Inductor.cpp:180 Line.cpp:497 Line.cpp:499 Line.cpp:501 Line.cpp:503 -#: Load.cpp:201 Load.cpp:218 SyncGenerator.cpp:176 SyncGenerator.cpp:195 -#: SyncMotor.cpp:124 SyncMotor.cpp:143 Transformer.cpp:436 Transformer.cpp:438 -#: Transformer.cpp:440 Transformer.cpp:442 +#: Bus.cpp:226 Bus.cpp:232 Bus.cpp:233 Bus.cpp:234 Bus.cpp:236 Bus.cpp:237 +#: Bus.cpp:238 Bus.cpp:241 Capacitor.cpp:203 IndMotor.cpp:109 IndMotor.cpp:128 +#: Inductor.cpp:197 Line.cpp:517 Line.cpp:519 Line.cpp:521 Line.cpp:523 +#: Load.cpp:218 Load.cpp:235 SyncGenerator.cpp:193 SyncGenerator.cpp:212 +#: SyncMotor.cpp:141 SyncMotor.cpp:160 Transformer.cpp:453 Transformer.cpp:455 +#: Transformer.cpp:457 Transformer.cpp:459 msgid " p.u." msgstr " p.u." -#: Bus.cpp:214 +#: Bus.cpp:231 msgid "" "\n" "\n" @@ -72,7 +72,7 @@ msgstr "" "\n" "Informações da falta:" -#: Bus.cpp:215 +#: Bus.cpp:232 msgid "" "\n" "Va = " @@ -80,7 +80,7 @@ msgstr "" "\n" "Va = " -#: Bus.cpp:216 +#: Bus.cpp:233 msgid "" "\n" "Vb = " @@ -88,7 +88,7 @@ msgstr "" "\n" "Vb = " -#: Bus.cpp:217 +#: Bus.cpp:234 msgid "" "\n" "Vc = " @@ -96,7 +96,7 @@ msgstr "" "\n" "Vc = " -#: Bus.cpp:219 +#: Bus.cpp:236 msgid "" "\n" "Ia = " @@ -104,7 +104,7 @@ msgstr "" "\n" "Ia = " -#: Bus.cpp:220 +#: Bus.cpp:237 msgid "" "\n" "Ib = " @@ -112,7 +112,7 @@ msgstr "" "\n" "Ib = " -#: Bus.cpp:221 +#: Bus.cpp:238 msgid "" "\n" "Ic = " @@ -120,7 +120,7 @@ msgstr "" "\n" "Ic = " -#: Bus.cpp:224 +#: Bus.cpp:241 msgid "" "\n" "\n" @@ -130,111 +130,111 @@ msgstr "" "\n" "Scc = " -#: Bus.cpp:240 TextForm.cpp:856 +#: Bus.cpp:257 TextForm.cpp:873 msgid "Voltage" msgstr "Tensão" -#: Bus.cpp:241 DataReport.cpp:227 DataReport.cpp:255 DataReport.cpp:258 -#: DataReport.cpp:261 DataReport.cpp:270 DataReport.cpp:273 DataReport.cpp:276 -#: DataReport.cpp:289 DataReport.cpp:292 DataReport.cpp:295 DataReport.cpp:304 -#: DataReport.cpp:307 DataReport.cpp:310 TextForm.cpp:857 +#: Bus.cpp:258 DataReport.cpp:244 DataReport.cpp:272 DataReport.cpp:275 +#: DataReport.cpp:278 DataReport.cpp:287 DataReport.cpp:290 DataReport.cpp:293 +#: DataReport.cpp:306 DataReport.cpp:309 DataReport.cpp:312 DataReport.cpp:321 +#: DataReport.cpp:324 DataReport.cpp:327 TextForm.cpp:874 msgid "Angle" msgstr "Ângulo" -#: BusForm.cpp:6 +#: BusForm.cpp:23 msgid "Three-phase" msgstr "Trifásico" -#: BusForm.cpp:7 +#: BusForm.cpp:24 msgid "Line-to-line" msgstr "Fase-fase" -#: BusForm.cpp:8 +#: BusForm.cpp:25 msgid "Double line-to-ground" msgstr "Fase-fase-terra" -#: BusForm.cpp:9 +#: BusForm.cpp:26 msgid "Line-to-ground" msgstr "Fase-terra" -#: BusForm.cpp:81 +#: BusForm.cpp:98 msgid "Value entered incorrectly in the field \"Rated voltage\"." msgstr "Valor inserido incorretamente no campo \"Tensão nominal\"." -#: BusForm.cpp:87 +#: BusForm.cpp:104 msgid "Value entered incorrectly in the field \"Controlled voltage\"." msgstr "Valor inserido incorretamente no campo \"Tensão controlada\"." -#: BusForm.cpp:122 +#: BusForm.cpp:139 msgid "Value entered incorrectly in the field \"Fault resistance\"." msgstr "Valor inserido incorretamente no campo \"Resistência da falta\"." -#: BusForm.cpp:126 +#: BusForm.cpp:143 msgid "Value entered incorrectly in the field \"Fault reactance\"." msgstr "Valor inserido incorretamente no campo \"Reatância da falta\"." -#: BusForm.cpp:133 +#: BusForm.cpp:150 msgid "Value entered incorrectly in the field \"Time\"." msgstr "Valor inserido incorretamente no campo \"Instante\"." -#: BusForm.cpp:137 +#: BusForm.cpp:154 msgid "Value entered incorrectly in the field \"Fault lenght\"." msgstr "Valor inserido incorretamente no campo \"Duração da falta\"." -#: BusForm.cpp:141 +#: BusForm.cpp:158 msgid "" "Value entered incorrectly in the field \"Fault resistence (stability)\"." msgstr "" "Valor inserido incorretamente no campo \"Resistência da falta " "(estabilidade)\"." -#: BusForm.cpp:145 +#: BusForm.cpp:162 msgid "Value entered incorrectly in the field \"Fault reactance (stability)\"." msgstr "" "Valor inserido incorretamente no campo \"Reatância da falta (estabilidade)\"." -#: BusForm.cpp:209 +#: BusForm.cpp:226 msgid "Lines AB" msgstr "Fases AB" -#: BusForm.cpp:210 +#: BusForm.cpp:227 msgid "Lines BC" msgstr "Fases BC" -#: BusForm.cpp:211 +#: BusForm.cpp:228 msgid "Lines CA" msgstr "Fase CA" -#: BusForm.cpp:216 +#: BusForm.cpp:233 msgid "Line A" msgstr "Fase A" -#: BusForm.cpp:217 +#: BusForm.cpp:234 msgid "Line B" msgstr "Fase B" -#: BusForm.cpp:218 +#: BusForm.cpp:235 msgid "Line C" msgstr "Fase C" -#: BusForm.cpp:225 TextForm.cpp:959 +#: BusForm.cpp:242 TextForm.cpp:976 msgid "V" msgstr "V" -#: BusForm.cpp:228 TextForm.cpp:960 +#: BusForm.cpp:245 TextForm.cpp:977 msgid "kV" msgstr "kV" -#: Capacitor.cpp:112 +#: Capacitor.cpp:129 msgid "Edit Capacitor" msgstr "Editar Capacitor" -#: Capacitor.cpp:131 ChartView.cpp:94 +#: Capacitor.cpp:148 ChartView.cpp:111 msgid "Capacitor" msgstr "Capacitor" -#: Capacitor.cpp:183 IndMotor.cpp:115 Inductor.cpp:177 Load.cpp:215 -#: SyncGenerator.cpp:192 SyncMotor.cpp:140 +#: Capacitor.cpp:200 IndMotor.cpp:125 Inductor.cpp:194 Load.cpp:232 +#: SyncGenerator.cpp:209 SyncMotor.cpp:157 msgid "" "\n" "Q = " @@ -242,148 +242,148 @@ msgstr "" "\n" "Q = " -#: Capacitor.cpp:189 IndMotor.cpp:121 Inductor.cpp:183 Load.cpp:221 -#: SyncGenerator.cpp:198 SyncMotor.cpp:146 +#: Capacitor.cpp:206 IndMotor.cpp:131 Inductor.cpp:200 Load.cpp:238 +#: SyncGenerator.cpp:215 SyncMotor.cpp:163 msgid " VAr" msgstr " VAr" -#: Capacitor.cpp:192 IndMotor.cpp:124 Inductor.cpp:186 Load.cpp:224 -#: SyncGenerator.cpp:201 SyncMotor.cpp:149 +#: Capacitor.cpp:209 IndMotor.cpp:134 Inductor.cpp:203 Load.cpp:241 +#: SyncGenerator.cpp:218 SyncMotor.cpp:166 msgid " kVAr" msgstr " kVAr" -#: Capacitor.cpp:195 IndMotor.cpp:127 Inductor.cpp:189 Load.cpp:227 -#: SyncGenerator.cpp:204 SyncMotor.cpp:152 +#: Capacitor.cpp:212 IndMotor.cpp:137 Inductor.cpp:206 Load.cpp:244 +#: SyncGenerator.cpp:221 SyncMotor.cpp:169 msgid " MVAr" msgstr " MVAr" -#: ChartView.cpp:17 ChartView.cpp:136 +#: ChartView.cpp:34 ChartView.cpp:153 msgid "Color" msgstr "Cor" -#: ChartView.cpp:28 +#: ChartView.cpp:45 msgid "Solid" msgstr "Sólido" -#: ChartView.cpp:29 +#: ChartView.cpp:46 msgid "Dot" msgstr "Ponto" -#: ChartView.cpp:30 +#: ChartView.cpp:47 msgid "Dash" msgstr "Traço" -#: ChartView.cpp:31 +#: ChartView.cpp:48 msgid "Dot and dash" msgstr "Ponto e traço" -#: ChartView.cpp:32 +#: ChartView.cpp:49 msgid "Cross" msgstr "Cruz" -#: ChartView.cpp:33 +#: ChartView.cpp:50 msgid "Driagonal cross" msgstr "Cruz diagonal" -#: ChartView.cpp:83 ChartView.cpp:503 ElementForm.cpp:236 +#: ChartView.cpp:100 ChartView.cpp:520 ElementForm.cpp:236 msgid "Time" msgstr "Tempo" -#: ChartView.cpp:90 ElementForm.h:143 +#: ChartView.cpp:107 ElementForm.h:143 msgid "Bus" msgstr "Barra" -#: ChartView.cpp:91 +#: ChartView.cpp:108 msgid "Induction motor" msgstr "Motor de indução" -#: ChartView.cpp:92 DataReport.cpp:380 DataReport.cpp:391 DataReport.cpp:532 -#: DataReport.cpp:733 DataReport.cpp:771 ElementForm.h:448 +#: ChartView.cpp:109 DataReport.cpp:397 DataReport.cpp:408 DataReport.cpp:549 +#: DataReport.cpp:750 DataReport.cpp:788 ElementForm.h:448 msgid "Line" msgstr "Linha" -#: ChartView.cpp:93 ElementForm.h:592 +#: ChartView.cpp:110 ElementForm.h:592 msgid "Load" msgstr "Carga" -#: ChartView.cpp:95 Inductor.cpp:125 +#: ChartView.cpp:112 Inductor.cpp:142 msgid "Inductor" msgstr "Indutor" -#: ChartView.cpp:96 +#: ChartView.cpp:113 msgid "Synchronous compensator" msgstr "Compensador síncrono" -#: ChartView.cpp:97 +#: ChartView.cpp:114 msgid "Synchronous generator" msgstr "Gerador síncrono" -#: ChartView.cpp:98 DataReport.cpp:426 DataReport.cpp:437 DataReport.cpp:583 -#: DataReport.cpp:837 DataReport.cpp:875 ElementForm.h:547 +#: ChartView.cpp:115 DataReport.cpp:443 DataReport.cpp:454 DataReport.cpp:600 +#: DataReport.cpp:854 DataReport.cpp:892 ElementForm.h:547 msgid "Transformer" msgstr "Transformador" -#: ChartView.cpp:99 ControlEditor.cpp:750 +#: ChartView.cpp:116 ControlEditor.cpp:781 msgid "Test" msgstr "Teste" -#: ChartView.cpp:124 ChartViewBase.cpp:123 +#: ChartView.cpp:141 ChartViewBase.cpp:123 msgid "Draw" msgstr "Plotar" -#: ChartView.cpp:140 ChartViewBase.cpp:127 +#: ChartView.cpp:157 ChartViewBase.cpp:127 msgid "Thickness" msgstr "Espessura" -#: ChartView.cpp:142 ChartViewBase.cpp:133 DataReport.cpp:212 -#: DataReport.cpp:224 DataReport.cpp:234 DataReport.cpp:279 -#: ElementForm.cpp:2329 SwitchingForm.cpp:6 SwitchingForm.cpp:15 +#: ChartView.cpp:159 ChartViewBase.cpp:133 DataReport.cpp:229 +#: DataReport.cpp:241 DataReport.cpp:251 DataReport.cpp:296 +#: ElementForm.cpp:2329 SwitchingForm.cpp:23 SwitchingForm.cpp:32 msgid "Type" msgstr "Tipo" -#: ChartView.cpp:144 ChartViewBase.cpp:141 +#: ChartView.cpp:161 ChartViewBase.cpp:141 msgid "Axis" msgstr "Eixo" -#: ChartView.cpp:159 ChartViewBase.cpp:160 +#: ChartView.cpp:176 ChartViewBase.cpp:160 msgid "Margins" msgstr "Margens" -#: ChartView.cpp:164 ChartViewBase.cpp:175 +#: ChartView.cpp:181 ChartViewBase.cpp:175 msgid "Axis limit" msgstr "Limites dos eixos" -#: ChartView.cpp:207 +#: ChartView.cpp:224 msgid "Save image" msgstr "Salvar imagem" -#: ChartView.cpp:243 +#: ChartView.cpp:260 msgid "Chart send to clipboard" msgstr "Gráfico enviado para a área de transferência" -#: ChartView.cpp:243 GeneralPropertiesForm.cpp:96 +#: ChartView.cpp:260 GeneralPropertiesForm.cpp:113 msgid "Info" msgstr "Informação" -#: ChartView.cpp:247 +#: ChartView.cpp:264 msgid "It was not possible to send to clipboard" msgstr "Não foi possível enviar para a área de transferência" -#: ChartView.cpp:247 ChartView.cpp:466 ControlEditor.cpp:733 -#: ControlEditor.cpp:821 ControlElementSolver.cpp:89 ControlSystemTest.cpp:36 -#: ControlSystemTest.cpp:43 ControlSystemTest.cpp:50 ControlSystemTest.cpp:57 -#: Element.cpp:277 Element.cpp:291 GeneralPropertiesForm.cpp:57 Line.cpp:151 -#: Line.cpp:377 MainFrame.cpp:269 SumForm.cpp:43 SumForm.cpp:58 -#: TextForm.cpp:1208 Workspace.cpp:1127 Workspace.cpp:1182 Workspace.cpp:1290 -#: Workspace.cpp:1394 Workspace.cpp:1416 Workspace.cpp:1434 Workspace.cpp:1452 +#: ChartView.cpp:264 ChartView.cpp:483 ControlEditor.cpp:766 +#: ControlEditor.cpp:860 ControlElementSolver.cpp:95 ControlSystemTest.cpp:53 +#: ControlSystemTest.cpp:60 ControlSystemTest.cpp:67 ControlSystemTest.cpp:74 +#: Element.cpp:297 Element.cpp:311 GeneralPropertiesForm.cpp:74 Line.cpp:168 +#: Line.cpp:397 MainFrame.cpp:308 SumForm.cpp:58 SumForm.cpp:74 +#: TextForm.cpp:1225 Workspace.cpp:1144 Workspace.cpp:1199 Workspace.cpp:1307 +#: Workspace.cpp:1411 Workspace.cpp:1433 Workspace.cpp:1451 msgid "Error" msgstr "Erro" -#: ChartView.cpp:459 +#: ChartView.cpp:476 msgid "Save CSV file" msgstr "Salvar arquivo CSV" -#: ChartView.cpp:466 +#: ChartView.cpp:483 msgid "It was not possible to open or create the selected file." msgstr "Não foi possível criar ou abrir o arquivo selecionado." @@ -495,75 +495,79 @@ msgstr "Y máx" msgid "Chart viewer" msgstr "Visualizador de gráficos" -#: ConstantForm.cpp:24 +#: ConstantForm.cpp:41 msgid "Value entered incorrectly in the field \"Constant value\"." msgstr "Valor inserido incorretamente no campo \"Valor da constante\"." -#: ControlEditor.cpp:135 +#: ControlEditor.cpp:158 msgid "In/Out" msgstr "Entrada/Saída" -#: ControlEditor.cpp:141 +#: ControlEditor.cpp:163 msgid "Transfer fcn" msgstr "Func Transferência" -#: ControlEditor.cpp:145 ElementForm.h:826 +#: ControlEditor.cpp:169 ElementForm.h:826 msgid "Sum" msgstr "Somador" -#: ControlEditor.cpp:151 ElementForm.h:944 +#: ControlEditor.cpp:174 ElementForm.h:944 msgid "Constant" msgstr "Constante" -#: ControlEditor.cpp:156 ElementForm.h:856 +#: ControlEditor.cpp:179 ElementForm.h:970 +msgid "Gain" +msgstr "Ganho" + +#: ControlEditor.cpp:184 ElementForm.h:856 msgid "Limiter" msgstr "Limitador" -#: ControlEditor.cpp:161 ElementForm.h:970 -msgid "Gain" -msgstr "Ganho" +#: ControlEditor.cpp:190 ElementForm.h:886 +msgid "Rate limiter" +msgstr "Limitador de taxa" -#: ControlEditor.cpp:166 +#: ControlEditor.cpp:196 msgid "Multiplier" msgstr "Multiplicador" -#: ControlEditor.cpp:170 ElementForm.h:918 +#: ControlEditor.cpp:201 +msgid "Divider" +msgstr "Divisor" + +#: ControlEditor.cpp:206 ElementForm.h:918 msgid "Exponential" msgstr "Exponencial" -#: ControlEditor.cpp:176 ElementForm.h:886 -msgid "Rate limiter" -msgstr "Limitador de taxa" - -#: ControlEditor.cpp:714 +#: ControlEditor.cpp:747 msgid "Save CTL file" msgstr "Salvar arquivo CTL" -#: ControlEditor.cpp:725 +#: ControlEditor.cpp:758 msgid "Open CTL file" msgstr "Abrir arquivo CTL" -#: ControlEditor.cpp:733 MainFrame.cpp:269 +#: ControlEditor.cpp:766 MainFrame.cpp:308 msgid "It was not possible to open the selected file." msgstr "Não foi possível abrir o arquivo selecionado." -#: ControlEditor.cpp:750 Electromechanical.cpp:26 +#: ControlEditor.cpp:781 Electromechanical.cpp:44 msgid "Initializing..." msgstr "Inicializando..." -#: ControlEditor.cpp:805 +#: ControlEditor.cpp:844 msgid "I/O" msgstr "I/O" -#: ControlEditor.cpp:806 ElementForm.cpp:3488 +#: ControlEditor.cpp:845 ElementForm.cpp:3488 msgid "Input" msgstr "Entrada" -#: ControlEditor.cpp:807 ElementForm.cpp:3498 +#: ControlEditor.cpp:846 ElementForm.cpp:3498 msgid "Output" msgstr "Saída" -#: ControlEditor.cpp:821 +#: ControlEditor.cpp:860 msgid "It was not possible to solve the control system" msgstr "Não foi possível resolver o sistema de controle" @@ -603,7 +607,7 @@ msgstr "Arrastar" msgid "Move" msgstr "Mover" -#: ControlEditorBase.cpp:85 Element.cpp:238 Line.cpp:284 MainFrameBase.cpp:144 +#: ControlEditorBase.cpp:85 Element.cpp:258 Line.cpp:304 MainFrameBase.cpp:144 msgid "Delete" msgstr "Excluir" @@ -685,186 +689,190 @@ msgstr "Editor de controle" msgid "Control system test" msgstr "Teste do sistema de controle" -#: ControlElementSolver.cpp:50 -msgid "The control system must have one input and one output." -msgstr "O sistema de controle deve ter uma entrada e uma saída." +#: ControlElementSolver.cpp:56 +msgid "The control system must have at least one input and one output." +msgstr "O sistema de controle deve ter pelo menos uma entrada e uma saída." -#: ControlElementSolver.cpp:66 +#: ControlElementSolver.cpp:72 msgid "There is no input in the control system." msgstr "Não há entrada no sistema de controle." -#: ControlElementSolver.cpp:70 +#: ControlElementSolver.cpp:76 msgid "There is no output in the control system." msgstr "Não há saída no sistema de controle." -#: ControlElementSolver.cpp:75 +#: ControlElementSolver.cpp:81 msgid "Input not connected." msgstr "Entrada não conectada." -#: ControlElementSolver.cpp:84 +#: ControlElementSolver.cpp:90 ControlElementSolver.cpp:153 msgid "It was not possible to initialize the control system." msgstr "Não foi possível inicializar o sistema de controle." -#: ControlSystemTest.cpp:36 +#: ControlElementSolver.h:84 +msgid "Unknown error." +msgstr "Erro desconhecido." + +#: ControlSystemTest.cpp:53 msgid "Value entered incorrectly in the field \"Start time\"." msgstr "Valor inserido incorretamente no campo \"Tempo de início\"." -#: ControlSystemTest.cpp:43 +#: ControlSystemTest.cpp:60 msgid "Value entered incorrectly in the field \"Slope\"." msgstr "Valor inserido incorretamente no campo \"Inclinação\"." -#: ControlSystemTest.cpp:50 SimulationsSettingsForm.cpp:96 +#: ControlSystemTest.cpp:67 SimulationsSettingsForm.cpp:113 msgid "Value entered incorrectly in the field \"Time step\"." msgstr "Valor inserido incorretamente no campo \"Passo de integração\"." -#: ControlSystemTest.cpp:57 SimulationsSettingsForm.cpp:99 +#: ControlSystemTest.cpp:74 SimulationsSettingsForm.cpp:116 msgid "Value entered incorrectly in the field \"Simulation time\"." msgstr "Valor inserido incorretamente no campo \"Tempo de simulação\"." -#: DataReport.cpp:184 +#: DataReport.cpp:201 msgid "Voltage (p.u.)" msgstr "Tensão (p.u.)" -#: DataReport.cpp:185 +#: DataReport.cpp:202 msgid "Voltage (V)" msgstr "Tensão (V)" -#: DataReport.cpp:186 +#: DataReport.cpp:203 msgid "Voltage (kV)" msgstr "Tensão (kV)" -#: DataReport.cpp:188 +#: DataReport.cpp:205 msgid "Active Power (p.u.)" msgstr "Potência ativa (p.u.)" -#: DataReport.cpp:189 +#: DataReport.cpp:206 msgid "Active Power (W)" msgstr "Potência ativa (W)" -#: DataReport.cpp:190 +#: DataReport.cpp:207 msgid "Active Power (kW)" msgstr "Potência ativa (kW)" -#: DataReport.cpp:191 +#: DataReport.cpp:208 msgid "Active Power (MW)" msgstr "Potência ativa (MW)" -#: DataReport.cpp:193 +#: DataReport.cpp:210 msgid "Reactive Power (p.u.)" msgstr "Potência reativa (p.u.)" -#: DataReport.cpp:194 +#: DataReport.cpp:211 msgid "Reactive Power (VAr)" msgstr "Potência reativa (VAr)" -#: DataReport.cpp:195 +#: DataReport.cpp:212 msgid "Reactive Power (kVAr)" msgstr "Potência reativa (kVAr)" -#: DataReport.cpp:196 +#: DataReport.cpp:213 msgid "Reactive Power (MVAr)" msgstr "Potência reativa (MVAr)" -#: DataReport.cpp:198 +#: DataReport.cpp:215 msgid "R (p.u.)" msgstr "R (p.u.)" -#: DataReport.cpp:199 +#: DataReport.cpp:216 msgid "R (" msgstr "R (" -#: DataReport.cpp:201 +#: DataReport.cpp:218 msgid "XL (p.u.)" msgstr "XL (p.u.)" -#: DataReport.cpp:202 +#: DataReport.cpp:219 msgid "XL (" msgstr "XL (" -#: DataReport.cpp:204 +#: DataReport.cpp:221 msgid "B (p.u.)" msgstr "B (p.u.)" -#: DataReport.cpp:205 +#: DataReport.cpp:222 msgid "B (S)" msgstr "B (S)" -#: DataReport.cpp:207 +#: DataReport.cpp:224 msgid "Current (p.u.)" msgstr "Corrente (p.u.)" -#: DataReport.cpp:208 +#: DataReport.cpp:225 msgid "Current (A)" msgstr "Corrente (A)" -#: DataReport.cpp:209 +#: DataReport.cpp:226 msgid "Current (kA)" msgstr "Corrente (kA)" -#: DataReport.cpp:213 DataReport.cpp:223 DataReport.cpp:235 DataReport.cpp:264 -#: DataReport.cpp:280 DataReport.cpp:298 ElementForm.cpp:40 ElementForm.cpp:409 +#: DataReport.cpp:230 DataReport.cpp:240 DataReport.cpp:252 DataReport.cpp:281 +#: DataReport.cpp:297 DataReport.cpp:315 ElementForm.cpp:40 ElementForm.cpp:409 #: ElementForm.cpp:1307 ElementForm.cpp:1620 ElementForm.cpp:2020 -#: ElementForm.cpp:2189 ElementForm.cpp:2446 TextForm.cpp:855 TextForm.cpp:866 -#: TextForm.cpp:875 TextForm.cpp:886 TextForm.cpp:897 TextForm.cpp:905 -#: TextForm.cpp:912 TextForm.cpp:919 TextForm.cpp:927 +#: ElementForm.cpp:2189 ElementForm.cpp:2446 TextForm.cpp:872 TextForm.cpp:883 +#: TextForm.cpp:892 TextForm.cpp:903 TextForm.cpp:914 TextForm.cpp:922 +#: TextForm.cpp:929 TextForm.cpp:936 TextForm.cpp:944 msgid "Name" msgstr "Nome" -#: DataReport.cpp:214 DataReport.cpp:236 DataReport.cpp:281 +#: DataReport.cpp:231 DataReport.cpp:253 DataReport.cpp:298 msgid "From" msgstr "De" -#: DataReport.cpp:215 DataReport.cpp:237 DataReport.cpp:282 +#: DataReport.cpp:232 DataReport.cpp:254 DataReport.cpp:299 msgid "To" msgstr "Para" -#: DataReport.cpp:220 DataReport.cpp:246 DataReport.cpp:286 +#: DataReport.cpp:237 DataReport.cpp:263 DataReport.cpp:303 msgid "Online" msgstr "Conectado" -#: DataReport.cpp:244 +#: DataReport.cpp:261 msgid "TAP" msgstr "TAP" -#: DataReport.cpp:245 +#: DataReport.cpp:262 msgid "Phase Shift" msgstr "Defasagem" -#: DataReport.cpp:249 +#: DataReport.cpp:266 msgid "Fault bus name" msgstr "Nome da barra com falta" -#: DataReport.cpp:250 DataReport.cpp:265 DataReport.cpp:283 DataReport.cpp:299 +#: DataReport.cpp:267 DataReport.cpp:282 DataReport.cpp:300 DataReport.cpp:316 msgid "Phase A" msgstr "Fase A" -#: DataReport.cpp:251 DataReport.cpp:266 DataReport.cpp:284 DataReport.cpp:300 +#: DataReport.cpp:268 DataReport.cpp:283 DataReport.cpp:301 DataReport.cpp:317 msgid "Phase B" msgstr "Fase B" -#: DataReport.cpp:252 DataReport.cpp:267 DataReport.cpp:285 DataReport.cpp:301 +#: DataReport.cpp:269 DataReport.cpp:284 DataReport.cpp:302 DataReport.cpp:318 msgid "Phase C" msgstr "Fase C" -#: DataReport.cpp:365 DataReport.cpp:414 DataReport.cpp:522 DataReport.cpp:573 -#: DataReport.cpp:721 DataReport.cpp:825 +#: DataReport.cpp:382 DataReport.cpp:431 DataReport.cpp:539 DataReport.cpp:590 +#: DataReport.cpp:738 DataReport.cpp:842 msgid "Yes" msgstr "Sim" -#: DataReport.cpp:368 DataReport.cpp:417 DataReport.cpp:525 DataReport.cpp:576 -#: DataReport.cpp:724 DataReport.cpp:828 +#: DataReport.cpp:385 DataReport.cpp:434 DataReport.cpp:542 DataReport.cpp:593 +#: DataReport.cpp:741 DataReport.cpp:845 msgid "No" msgstr "Não" -#: DataReport.cpp:486 +#: DataReport.cpp:503 msgid "Slack" msgstr "Referência" -#: DataReport.cpp:489 +#: DataReport.cpp:506 msgid "PV" msgstr "PV" -#: DataReport.cpp:492 +#: DataReport.cpp:509 msgid "PQ" msgstr "PQ" @@ -901,32 +909,36 @@ msgstr "Geradores" msgid "Data report" msgstr "Relatório de dados" -#: Electromechanical.cpp:26 +#: Electromechanical.cpp:44 msgid "Running simulation" msgstr "Simulação em andamento" -#: Electromechanical.cpp:33 +#: Electromechanical.cpp:51 msgid "It was not possible to build the admittance matrix." msgstr "Não foi possível construir a matriz admitância." -#: Electromechanical.cpp:74 +#: Electromechanical.cpp:92 #, c-format msgid "Simulation cancelled at %.2fs." msgstr "Simulação cancelada em %.2fs." -#: Electromechanical.cpp:564 -msgid "Error on initializate the AVR of \"" -msgstr "Erro ao inicializar o AVR de \"" +#: Electromechanical.cpp:507 +msgid "Error on initializate the saturation values of \"" +msgstr "Erro ao inicializar os valores de saturação de \"" -#: Electromechanical.cpp:564 Electromechanical.cpp:574 +#: Electromechanical.cpp:507 msgid "\"." msgstr "\"." -#: Electromechanical.cpp:574 +#: Electromechanical.cpp:608 +msgid "Error on initializate the AVR of \"" +msgstr "Erro ao inicializar o AVR de \"" + +#: Electromechanical.cpp:625 msgid "Error on initializate the speed governor of \"" msgstr "Erro ao inicializar o regulador de velocidade de \"" -#: Electromechanical.cpp:820 +#: Electromechanical.cpp:881 msgid "" "Impossible to solve the synchronous generators.\n" "Check the system parameters and/or decrease the time step." @@ -934,15 +946,20 @@ msgstr "" "Impossível de solucionar os geradores síncronos.\n" "Verifique os parâmetros do sistema e/ou diminua o passo de integração." -#: Electromechanical.h:47 +#: Electromechanical.cpp:1232 +msgid "" +"It was not possible to solve the saturation of the synchronous machine \"" +msgstr "Não foi possível solucionar a saturação da máquina síncrona \"" + +#: Electromechanical.h:103 msgid "Unknown error" msgstr "Erro desconhecido" -#: Element.cpp:230 MainFrameBase.cpp:148 +#: Element.cpp:250 MainFrameBase.cpp:148 msgid "Rotate clockwise" msgstr "Girar no sentido horário" -#: Element.cpp:234 +#: Element.cpp:254 msgid "Rotate counter-clockwise" msgstr "Girar no sentido anti-horário" @@ -978,8 +995,8 @@ msgstr "Resistência da falta (R)" #: ElementForm.cpp:320 ElementForm.cpp:852 ElementForm.cpp:909 #: ElementForm.cpp:932 ElementForm.cpp:955 ElementForm.cpp:986 #: ElementForm.cpp:1009 ElementForm.cpp:1040 ElementForm.cpp:1063 -#: ElementForm.cpp:1140 ElementForm.cpp:1163 TextForm.cpp:958 TextForm.cpp:968 -#: TextForm.cpp:973 TextForm.cpp:981 TextForm.cpp:989 +#: ElementForm.cpp:1140 ElementForm.cpp:1163 TextForm.cpp:975 TextForm.cpp:985 +#: TextForm.cpp:990 TextForm.cpp:998 TextForm.cpp:1006 msgid "p.u." msgstr "p.u." @@ -1006,15 +1023,15 @@ msgid "Rated power" msgstr "Potência nominal" #: ElementForm.cpp:459 ElementForm.cpp:2040 ElementForm.cpp:2466 -#: IOControlForm.cpp:25 SyncGenerator.cpp:226 TextForm.cpp:867 TextForm.cpp:898 -#: TextForm.cpp:920 TextForm.cpp:928 +#: IOControlForm.cpp:42 SyncGenerator.cpp:243 TextForm.cpp:884 TextForm.cpp:915 +#: TextForm.cpp:937 TextForm.cpp:945 msgid "Active power" msgstr "Potência ativa" #: ElementForm.cpp:488 ElementForm.cpp:2069 ElementForm.cpp:2209 -#: ElementForm.cpp:2495 IOControlForm.cpp:30 SyncGenerator.cpp:227 -#: TextForm.cpp:868 TextForm.cpp:899 TextForm.cpp:906 TextForm.cpp:913 -#: TextForm.cpp:921 TextForm.cpp:929 +#: ElementForm.cpp:2495 IOControlForm.cpp:47 SyncGenerator.cpp:244 +#: TextForm.cpp:885 TextForm.cpp:916 TextForm.cpp:923 TextForm.cpp:930 +#: TextForm.cpp:938 TextForm.cpp:946 msgid "Reactive power" msgstr "Potência reativa" @@ -1266,17 +1283,17 @@ msgstr "Tipo de carga" msgid "Switching properties" msgstr "Propriedades de chaveamento" -#: ElementForm.cpp:2327 SwitchingForm.cpp:23 SwitchingForm.cpp:36 -#: SwitchingForm.cpp:52 +#: ElementForm.cpp:2327 SwitchingForm.cpp:40 SwitchingForm.cpp:53 +#: SwitchingForm.cpp:69 msgid "Insert" msgstr "Inserir" -#: ElementForm.cpp:2328 ElementForm.cpp:2344 SwitchingForm.cpp:23 -#: SwitchingForm.cpp:36 +#: ElementForm.cpp:2328 ElementForm.cpp:2344 SwitchingForm.cpp:40 +#: SwitchingForm.cpp:53 msgid "Remove" msgstr "Remover" -#: ElementForm.cpp:2332 SwitchingForm.cpp:7 SwitchingForm.cpp:16 +#: ElementForm.cpp:2332 SwitchingForm.cpp:24 SwitchingForm.cpp:33 msgid "Time (s)" msgstr "Tempo (s)" @@ -1364,7 +1381,7 @@ msgstr "Valor da constante" msgid "Gain value" msgstr "Valor do ganho" -#: ElementForm.h:242 SyncGenerator.cpp:49 +#: ElementForm.h:242 SyncGenerator.cpp:66 msgid "Generator" msgstr "Gerador" @@ -1380,7 +1397,7 @@ msgstr "Elemento shunt reativo" msgid "Motor" msgstr "Motor" -#: ElementForm.h:770 Text.h:87 +#: ElementForm.h:770 Text.h:110 msgid "Text" msgstr "Texto" @@ -1392,55 +1409,55 @@ msgstr "Função transferência" msgid "Input / Output" msgstr "Entrada / Saída" -#: ExponentialForm.cpp:39 +#: ExponentialForm.cpp:56 msgid "Value entered incorrectly in the field \"A value\"." msgstr "Valor inserido incorretamente no campo \"Valor A\"." -#: ExponentialForm.cpp:42 +#: ExponentialForm.cpp:59 msgid "Value entered incorrectly in the field \"B value\"." msgstr "Valor inserido incorretamente no campo \"Valor B\"." -#: Fault.cpp:14 +#: Fault.cpp:31 msgid "There is no buses in the system." msgstr "Não há barramentos no sistema." -#: Fault.cpp:28 Fault.cpp:390 +#: Fault.cpp:45 Fault.cpp:407 msgid "Fail to invert the positive sequence admittance matrix." msgstr "Falha ao inverter a matriz admitância de sequência positiva." -#: Fault.cpp:32 +#: Fault.cpp:49 msgid "Fail to invert the negative sequence admittance matrix." msgstr "Falha ao inverter a matriz admitância de sequência negativa." -#: Fault.cpp:36 +#: Fault.cpp:53 msgid "Fail to invert the zero sequence admittance matrix." msgstr "Falha ao inverter a matriz admitância de sequência zero." -#: Fault.cpp:62 +#: Fault.cpp:79 msgid "There is no fault in the system." msgstr "Não há faltas no sistema." -#: GainForm.cpp:24 +#: GainForm.cpp:41 msgid "Value entered incorrectly in the field \"Gain value\"." msgstr "Valor inserido incorretamente no campo \"Valor do ganho\"." -#: GeneralPropertiesForm.cpp:12 +#: GeneralPropertiesForm.cpp:29 msgid "English" msgstr "English" -#: GeneralPropertiesForm.cpp:13 +#: GeneralPropertiesForm.cpp:30 msgid "Portuguese" msgstr "Português" -#: GeneralPropertiesForm.cpp:15 +#: GeneralPropertiesForm.cpp:32 msgid "Light" msgstr "Claro" -#: GeneralPropertiesForm.cpp:16 +#: GeneralPropertiesForm.cpp:33 msgid "Dark" msgstr "Escuro" -#: GeneralPropertiesForm.cpp:56 +#: GeneralPropertiesForm.cpp:73 msgid "" "It was not possible to access the init file.\n" "The settings won't be applied." @@ -1448,41 +1465,41 @@ msgstr "" "Não foi possível acessar o arquivo de inicialização.\n" "As configurações não serão aplicadas." -#: GeneralPropertiesForm.cpp:95 +#: GeneralPropertiesForm.cpp:112 msgid "The application must be restarted to settings changes be applied." msgstr "O programa deve ser reiniciado para as mudanças surtirem efeito." -#: GeneratorStabForm.cpp:83 +#: GeneratorStabForm.cpp:105 msgid "Synchronous generator: Switching" msgstr "Gerador síncrono: Chaveameto" -#: GeneratorStabForm.cpp:96 +#: GeneratorStabForm.cpp:118 msgid "Value entered incorrectly in the field \"Inertia\"." msgstr "Valor inserido incorretamente no campo \"Inércia\"." -#: GeneratorStabForm.cpp:100 +#: GeneratorStabForm.cpp:122 msgid "Value entered incorrectly in the field \"Damping factor\"." msgstr "Valor inserido incorretamente no campo \"Fator de amortecimento\"." -#: GeneratorStabForm.cpp:107 +#: GeneratorStabForm.cpp:129 msgid "Value entered incorrectly in the field \"Armature resistance\"." msgstr "Valor inserido incorretamente no campo \"Resistência de armadura\"." -#: GeneratorStabForm.cpp:111 +#: GeneratorStabForm.cpp:133 msgid "Value entered incorrectly in the field \"Potier reactance\"." msgstr "Valor inserido incorretamente no campo \"Reatância de Potier\"." -#: GeneratorStabForm.cpp:115 +#: GeneratorStabForm.cpp:137 msgid "Value entered incorrectly in the field \"Saturation factor\"." msgstr "Valor inserido incorretamente no campo \"Fator de aceleração\"." -#: GeneratorStabForm.cpp:120 +#: GeneratorStabForm.cpp:142 msgid "" "Value entered incorrectly in the field \"Synchronous direct-axis reactance\"." msgstr "" "Valor inserido incorretamente no campo \"Reatância síncrona de eixo direto\"." -#: GeneratorStabForm.cpp:125 +#: GeneratorStabForm.cpp:147 msgid "" "Value entered incorrectly in the field \"Synchronous quadrature-axis " "reactance\"." @@ -1490,14 +1507,14 @@ msgstr "" "Valor inserido incorretamente no campo \"Reatância síncrona de eixo em " "quadratura\"." -#: GeneratorStabForm.cpp:130 +#: GeneratorStabForm.cpp:152 msgid "" "Value entered incorrectly in the field \"Transitory direct-axis reactance\"." msgstr "" "Valor inserido incorretamente no campo \"Reatância transitória de eixo direto" "\"." -#: GeneratorStabForm.cpp:135 +#: GeneratorStabForm.cpp:157 msgid "" "Value entered incorrectly in the field \"Transitory quadrature-axis reactance" "\"." @@ -1505,7 +1522,7 @@ msgstr "" "Valor inserido incorretamente no campo \"Reatância transitória de eixo em " "quadratura\"." -#: GeneratorStabForm.cpp:140 +#: GeneratorStabForm.cpp:162 msgid "" "Value entered incorrectly in the field \"Transitory direct-axis time constant" "\"." @@ -1513,7 +1530,7 @@ msgstr "" "Valor inserido incorretamente no campo \"Constante de tempo transitória de " "eixo direto\"." -#: GeneratorStabForm.cpp:145 +#: GeneratorStabForm.cpp:167 msgid "" "Value entered incorrectly in the field \"Transitory quadrature-axis time " "constant\"." @@ -1521,7 +1538,7 @@ msgstr "" "Valor inserido incorretamente no campo \"Constante de tempo transitória de " "eixo em quadratura\"." -#: GeneratorStabForm.cpp:150 +#: GeneratorStabForm.cpp:172 msgid "" "Value entered incorrectly in the field \"Subtransitory direct-axis reactance" "\"." @@ -1529,7 +1546,7 @@ msgstr "" "Valor inserido incorretamente no campo \"Reatância subtransitória de eixo " "direto\"." -#: GeneratorStabForm.cpp:155 +#: GeneratorStabForm.cpp:177 msgid "" "Value entered incorrectly in the field \"Subtransitory quadrature-axis " "reactance\"." @@ -1537,7 +1554,7 @@ msgstr "" "Valor inserido incorretamente no campo \"Reatância subtransitória de eixo em " "quadratura\"." -#: GeneratorStabForm.cpp:160 +#: GeneratorStabForm.cpp:182 msgid "" "Value entered incorrectly in the field \"Subtransitory direct-axis time " "constant\"." @@ -1545,7 +1562,7 @@ msgstr "" "Valor inserido incorretamente no campo \"Constante de tempo subtransitória " "de eixo direto\"." -#: GeneratorStabForm.cpp:165 +#: GeneratorStabForm.cpp:187 msgid "" "Value entered incorrectly in the field \"Subtransitory quadrature-axis time " "constant\"." @@ -1553,47 +1570,67 @@ msgstr "" "Valor inserido incorretamente no campo \"Constante de tempo subtransitória " "de eixo em quadratura\"." -#: IOControl.cpp:142 +#: IOControl.cpp:161 IOControl.cpp:185 msgid "Vt" msgstr "Vt" -#: IOControl.cpp:150 -msgid "Pe" -msgstr "Pe" +#: IOControl.cpp:169 IOControl.cpp:201 +msgid "P" +msgstr "P" -#: IOControl.cpp:154 -msgid "Qe" -msgstr "Qe" +#: IOControl.cpp:173 +msgid "Q" +msgstr "Q" -#: IOControl.cpp:158 +#: IOControl.cpp:177 msgid "Vf" msgstr "Vf" -#: IOControl.cpp:162 +#: IOControl.cpp:181 IOControl.cpp:189 msgid "Pm" msgstr "Pm" -#: IOControlForm.cpp:15 SyncGenerator.cpp:225 +#: IOControlForm.cpp:32 SyncGenerator.cpp:242 msgid "Terminal voltage" msgstr "Tensão terminal" -#: IOControlForm.cpp:20 +#: IOControlForm.cpp:37 msgid "Velocity" msgstr "Velocidade" -#: IOControlForm.cpp:35 SyncGenerator.cpp:230 +#: IOControlForm.cpp:52 SyncGenerator.cpp:247 msgid "Field voltage" msgstr "Tensão de campo" -#: IOControlForm.cpp:40 SyncGenerator.cpp:228 +#: IOControlForm.cpp:57 SyncGenerator.cpp:245 msgid "Mechanical power" msgstr "Potência mecânica" -#: IndMotor.cpp:27 +#: IOControlForm.cpp:63 +msgid "Initial mechanical power" +msgstr "Potência mecânica inicial" + +#: IOControlForm.cpp:69 +msgid "Initial terminal voltage" +msgstr "Tensão terminal inicial" + +#: IOControlForm.cpp:76 +msgid "Initial velocity" +msgstr "Velocidade Inicial" + +#: IOControlForm.cpp:82 +msgid "Velocity variation" +msgstr "Variação de velocidade" + +#: IOControlForm.cpp:88 +msgid "Active power variation" +msgstr "Variação de potência ativa" + +#: IndMotor.cpp:37 msgid "Edit induction motor" msgstr "Editar motor de indução" -#: IndMotor.cpp:96 Load.cpp:198 SyncGenerator.cpp:173 SyncMotor.cpp:121 +#: IndMotor.cpp:106 Load.cpp:215 SyncGenerator.cpp:190 SyncMotor.cpp:138 msgid "" "\n" "P = " @@ -1601,42 +1638,42 @@ msgstr "" "\n" "P = " -#: IndMotor.cpp:102 Load.cpp:204 SyncGenerator.cpp:179 SyncMotor.cpp:127 +#: IndMotor.cpp:112 Load.cpp:221 SyncGenerator.cpp:196 SyncMotor.cpp:144 msgid " W" msgstr " W" -#: IndMotor.cpp:105 Load.cpp:207 SyncGenerator.cpp:182 SyncMotor.cpp:130 +#: IndMotor.cpp:115 Load.cpp:224 SyncGenerator.cpp:199 SyncMotor.cpp:147 msgid " kW" msgstr " kW" -#: IndMotor.cpp:108 Load.cpp:210 SyncGenerator.cpp:185 SyncMotor.cpp:133 +#: IndMotor.cpp:118 Load.cpp:227 SyncGenerator.cpp:202 SyncMotor.cpp:150 msgid " MW" msgstr " MW" -#: IndMotorForm.cpp:69 LoadForm.cpp:84 SyncMachineForm.cpp:306 -#: SyncMachineForm.cpp:440 +#: IndMotorForm.cpp:86 LoadForm.cpp:101 SyncMachineForm.cpp:323 +#: SyncMachineForm.cpp:457 msgid "Value entered incorrectly in the field \"Active power\"." msgstr "Valor inserido incorretamente no campo \"Potência ativa\"." -#: IndMotorForm.cpp:87 LoadForm.cpp:102 ReactiveShuntElementForm.cpp:96 -#: ReactiveShuntElementForm.cpp:120 SyncMachineForm.cpp:324 -#: SyncMachineForm.cpp:458 +#: IndMotorForm.cpp:104 LoadForm.cpp:119 ReactiveShuntElementForm.cpp:113 +#: ReactiveShuntElementForm.cpp:137 SyncMachineForm.cpp:341 +#: SyncMachineForm.cpp:475 msgid "Value entered incorrectly in the field \"Reactive power\"." msgstr "Valor inserido incorretamente no campo \"Potência reativa\"." -#: Inductor.cpp:110 +#: Inductor.cpp:127 msgid "Edit Inductor" msgstr "Editar indutor" -#: LimiterForm.cpp:27 RateLimiterForm.cpp:22 +#: LimiterForm.cpp:44 RateLimiterForm.cpp:39 msgid "Value entered incorrectly in the field \"Upper limit\"." msgstr "Valor inserido incorretamente no campo \"Limite superior\"." -#: LimiterForm.cpp:30 RateLimiterForm.cpp:25 +#: LimiterForm.cpp:47 RateLimiterForm.cpp:42 msgid "Value entered incorrectly in the field \"Lower limit\"." msgstr "Valor inserido incorretamente no campo \"Limite inferior\"." -#: Line.cpp:149 Line.cpp:375 +#: Line.cpp:166 Line.cpp:395 msgid "" "Unable to connect two buses with different nominal voltages.\n" "Use a transformer or edit the bus properties." @@ -1644,19 +1681,19 @@ msgstr "" "Não é possível conectar duas barras com tensões nominais diferentes.\n" "Utilize um transformador ou edite as propriedades do barramento." -#: Line.cpp:274 +#: Line.cpp:294 msgid "Edit line" msgstr "Editar linha" -#: Line.cpp:276 +#: Line.cpp:296 msgid "Insert node" msgstr "Inserir nó" -#: Line.cpp:280 +#: Line.cpp:300 msgid "Remove node" msgstr "Remover nó" -#: Line.cpp:496 Line.cpp:500 Transformer.cpp:435 Transformer.cpp:439 +#: Line.cpp:516 Line.cpp:520 Transformer.cpp:452 Transformer.cpp:456 msgid "" "\n" "P" @@ -1664,7 +1701,7 @@ msgstr "" "\n" "P" -#: Line.cpp:498 Line.cpp:502 Transformer.cpp:437 Transformer.cpp:441 +#: Line.cpp:518 Line.cpp:522 Transformer.cpp:454 Transformer.cpp:458 msgid "" "\n" "Q" @@ -1672,44 +1709,44 @@ msgstr "" "\n" "Q" -#: LineForm.cpp:123 +#: LineForm.cpp:140 msgid "Line: Switching" msgstr "Linha: Chaveamento" -#: LineForm.cpp:143 SyncMachineForm.cpp:291 SyncMachineForm.cpp:425 -#: TransformerForm.cpp:137 +#: LineForm.cpp:160 SyncMachineForm.cpp:308 SyncMachineForm.cpp:442 +#: TransformerForm.cpp:154 msgid "Value entered incorrectly in the field \"Nominal power\"." msgstr "Valor inserido incorretamente no campo \"Potência nominal\"." -#: LineForm.cpp:158 TransformerForm.cpp:152 +#: LineForm.cpp:175 TransformerForm.cpp:169 msgid "Value entered incorrectly in the field \"Resistance\"." msgstr "Valor inserido incorretamente no campo \"Resistência\"." -#: LineForm.cpp:173 +#: LineForm.cpp:190 msgid "Value entered incorrectly in the field \"Indutive Reactance\"." msgstr "Valor inserido incorretamente no campo \"Reatância indutiva\"." -#: LineForm.cpp:188 +#: LineForm.cpp:205 msgid "Value entered incorrectly in the field \"Capacitive Susceptance\"." msgstr "Valor inserido incorretamente no campo \"Susceptância capacitiva\"." -#: LineForm.cpp:203 +#: LineForm.cpp:220 msgid "Value entered incorrectly in the field \"Line size\"." msgstr "Valor inserido incorretamente no campo \"Comprimento da linha\"." -#: LineForm.cpp:209 +#: LineForm.cpp:226 msgid "Value entered incorrectly in the field \"Zero-sequence resistance\"." msgstr "" "Valor inserido incorretamente no campo \"Resistência de sequência zero\"." -#: LineForm.cpp:212 +#: LineForm.cpp:229 msgid "" "Value entered incorrectly in the field \"Zero-sequence indutive reactance\"." msgstr "" "Valor inserido incorretamente no campo \"Reatância indutiva de sequência zero" "\"." -#: LineForm.cpp:215 +#: LineForm.cpp:232 msgid "" "Value entered incorrectly in the field \"Zero-sequence capacitive susceptance" "\"." @@ -1717,177 +1754,177 @@ msgstr "" "Valor inserido incorretamente no campo \"Susceptância capacitiva de " "sequência zero\"." -#: Load.cpp:119 +#: Load.cpp:136 msgid "Edit Load" msgstr "Editar Carga" -#: LoadForm.cpp:71 +#: LoadForm.cpp:88 msgid "Load: Switching" msgstr "Carga: Chaveamento" -#: MainFrame.cpp:92 +#: MainFrame.cpp:49 MainFrame.cpp:291 +msgid "Open project" +msgstr "Abrir projeto" + +#: MainFrame.cpp:131 msgid "&Bus\tB" msgstr "&Barramento\tB" -#: MainFrame.cpp:92 +#: MainFrame.cpp:131 msgid "Adds a bus at the circuit" msgstr "Adiciona um barramento no circuito" -#: MainFrame.cpp:95 +#: MainFrame.cpp:134 msgid "&Line\tL" msgstr "&Linha\tL" -#: MainFrame.cpp:95 +#: MainFrame.cpp:134 msgid "Adds a power line at the circuit" msgstr "Adiciona uma linha no circuito" -#: MainFrame.cpp:96 +#: MainFrame.cpp:135 msgid "&Transformer\tT" msgstr "&Transformador\tT" -#: MainFrame.cpp:97 +#: MainFrame.cpp:136 msgid "Adds a transformer at the circuit" msgstr "Adiciona um transformador no circuito" -#: MainFrame.cpp:98 +#: MainFrame.cpp:137 msgid "&Generator\tG" msgstr "&Gerador\tG" -#: MainFrame.cpp:99 +#: MainFrame.cpp:138 msgid "Adds a generator at the circuit" msgstr "Adiciona um gerador no circuito" -#: MainFrame.cpp:100 +#: MainFrame.cpp:139 msgid "&Induction motor\tI" msgstr "&Motor de indução\tI" -#: MainFrame.cpp:101 MainFrame.cpp:104 +#: MainFrame.cpp:140 MainFrame.cpp:143 msgid "Adds an induction motor at the circuit" msgstr "Adiciona um motor de indução no circuito" -#: MainFrame.cpp:103 +#: MainFrame.cpp:142 msgid "&Synchronous compensator \tK" msgstr "&Compensador síncrono \tK" -#: MainFrame.cpp:106 +#: MainFrame.cpp:145 msgid "&Load\tShift-L" msgstr "&Carga\tShift-L" -#: MainFrame.cpp:106 +#: MainFrame.cpp:145 msgid "Adds a load at the circuit" msgstr "Adiciona uma carga no circuito" -#: MainFrame.cpp:107 +#: MainFrame.cpp:146 msgid "&Capacitor\tShift-C" msgstr "&Capacitor\tShift-C" -#: MainFrame.cpp:108 +#: MainFrame.cpp:147 msgid "Adds a shunt capacitor at the circuit" msgstr "Adiciona um capacitor shunt no circuito" -#: MainFrame.cpp:109 +#: MainFrame.cpp:148 msgid "&Inductor\tShift-I" msgstr "&Inductor\tShift-I" -#: MainFrame.cpp:110 +#: MainFrame.cpp:149 msgid "Adds a shunt inductor at the circuit" msgstr "Adiciona um indutor shunt no circuito" -#: MainFrame.cpp:130 +#: MainFrame.cpp:169 #, c-format msgid "New project %d" msgstr "Novo projeto %d" -#: MainFrame.cpp:245 +#: MainFrame.cpp:284 msgid "Open PSP file" msgstr "Abrir arquivo do PSP" -#: MainFrame.cpp:252 -msgid "Open project" -msgstr "Abrir projeto" - -#: MainFrame.cpp:310 MainFrame.cpp:331 +#: MainFrame.cpp:349 MainFrame.cpp:370 msgid "Save PSP file" msgstr "Salvar arquivo do PSP" -#: MainFrame.cpp:359 Workspace.cpp:701 +#: MainFrame.cpp:398 Workspace.cpp:718 #, c-format msgid "Bus %d" msgstr "Barra %d" -#: MainFrame.cpp:362 Workspace.cpp:705 +#: MainFrame.cpp:401 Workspace.cpp:722 msgid "Insert Bus: Click to insert, ESC to cancel." msgstr "Inserir Barramento: Clique para inserir, ESC para cancelar." -#: MainFrame.cpp:366 Workspace.cpp:718 +#: MainFrame.cpp:405 Workspace.cpp:735 #, c-format msgid "Line %d" msgstr "Linha %d" -#: MainFrame.cpp:369 Workspace.cpp:722 +#: MainFrame.cpp:408 Workspace.cpp:739 msgid "Insert Line: Click on two buses, ESC to cancel." msgstr "Inserir Linha: Clique em duas barras, ESC para cancelar." -#: MainFrame.cpp:374 Workspace.cpp:735 +#: MainFrame.cpp:413 Workspace.cpp:752 #, c-format msgid "Transformer %d" msgstr "Transformador %d" -#: MainFrame.cpp:377 Workspace.cpp:739 +#: MainFrame.cpp:416 Workspace.cpp:756 msgid "Insert Transformer: Click on two buses, ESC to cancel." msgstr "Inserir Transformador: Clique em duas barras, ESC para cancelar." -#: MainFrame.cpp:382 Workspace.cpp:747 +#: MainFrame.cpp:421 Workspace.cpp:764 #, c-format msgid "Generator %d" msgstr "Gerador %d" -#: MainFrame.cpp:385 Workspace.cpp:751 +#: MainFrame.cpp:424 Workspace.cpp:768 msgid "Insert Generator: Click on a buses, ESC to cancel." msgstr "Inserir Gerador: Clique em uma barra, ESC para cancelar." -#: MainFrame.cpp:389 Workspace.cpp:712 +#: MainFrame.cpp:428 Workspace.cpp:729 #, c-format msgid "Load %d" msgstr "Carga %d" -#: MainFrame.cpp:392 Workspace.cpp:716 +#: MainFrame.cpp:431 Workspace.cpp:733 msgid "Insert Load: Click on a buses, ESC to cancel." msgstr "Inserir Carga: Clique em uma barra, ESC para cancelar." -#: MainFrame.cpp:397 Workspace.cpp:792 +#: MainFrame.cpp:436 Workspace.cpp:809 #, c-format msgid "Capacitor %d" msgstr "Capacitor %d" -#: MainFrame.cpp:400 Workspace.cpp:796 +#: MainFrame.cpp:439 Workspace.cpp:813 msgid "Insert Capacitor: Click on a buses, ESC to cancel." msgstr "Inserir Capacitor: Clique em uma barra, ESC para cancelar." -#: MainFrame.cpp:405 Workspace.cpp:759 +#: MainFrame.cpp:444 Workspace.cpp:776 #, c-format msgid "Inductor %d" msgstr "Indutor %d" -#: MainFrame.cpp:408 Workspace.cpp:763 +#: MainFrame.cpp:447 Workspace.cpp:780 msgid "Insert Inductor: Click on a buses, ESC to cancel." msgstr "Inserir Indutor: Clique em uma barra, ESC para cancelar." -#: MainFrame.cpp:413 Workspace.cpp:767 +#: MainFrame.cpp:452 Workspace.cpp:784 #, c-format msgid "Induction motor %d" msgstr "Motor de indução %d" -#: MainFrame.cpp:416 Workspace.cpp:771 +#: MainFrame.cpp:455 Workspace.cpp:788 msgid "Insert Induction Motor: Click on a buses, ESC to cancel." msgstr "Inserir Motor de indução: Clique em uma barra, ESC para cancelar." -#: MainFrame.cpp:421 Workspace.cpp:780 +#: MainFrame.cpp:460 Workspace.cpp:797 #, c-format msgid "Synchronous condenser %d" msgstr "Compensador síncrono %d" -#: MainFrame.cpp:424 Workspace.cpp:784 +#: MainFrame.cpp:463 Workspace.cpp:801 msgid "Insert Synchronous Condenser: Click on a buses, ESC to cancel." msgstr "Inserir Compensador síncrono: Clique em uma barra, ESC para cancelar." @@ -2154,19 +2191,19 @@ msgstr "Abre um formulário para definir as configurações de simulação" msgid "PSP-UFU" msgstr "PSP-UFU" -#: PowerFlow.cpp:24 +#: PowerFlow.cpp:31 msgid "No buses found on the system." msgstr "Não foram encontradas barras no sistema." -#: PowerFlow.cpp:173 +#: PowerFlow.cpp:180 msgid "There is no slack bus on the system." msgstr "Não há barra de referência no sistema." -#: PowerFlow.cpp:177 +#: PowerFlow.cpp:184 msgid "The slack bus don't have generation." msgstr "A barra de referência não tem geração." -#: PowerFlow.cpp:192 +#: PowerFlow.cpp:199 msgid "The maximum number of iterations was reached." msgstr "O número máximo de iterações foi alcançado." @@ -2251,16 +2288,16 @@ msgid "Version:" msgstr "Versão:" #: PropertiesForm.cpp:535 -msgid "Alpha 2017w37a" -msgstr "Alpha 2017w37a" +msgid "Alpha 2017w41a" +msgstr "Alpha 2017w41a" #: PropertiesForm.cpp:539 msgid "Home page:" msgstr "Página Inicial" #: PropertiesForm.cpp:543 -msgid "http://www.ndse.ufu.br/pspufu" -msgstr "http://www.ndse.ufu.br/pspufu" +msgid "https://thales1330.github.io/PSP/" +msgstr "https://thales1330.github.io/PSP/" #: PropertiesForm.h:73 msgid "General settings" @@ -2270,363 +2307,370 @@ msgstr "Opções gerais" msgid "Simulation settings" msgstr "Opções de simulação" -#: ReactiveShuntElementForm.cpp:76 +#: ReactiveShuntElementForm.cpp:93 msgid "Capacitor: Switching" msgstr "Capacitor: Chaveamento" -#: ReactiveShuntElementForm.cpp:80 +#: ReactiveShuntElementForm.cpp:97 msgid "Inductor: Switching" msgstr "Indutor: Chaveamento" -#: SimulationsSettingsForm.cpp:63 +#: SimulationsSettingsForm.cpp:80 msgid "Value entered incorrectly in the field \"Base power\"." msgstr "Valor inserido incorretamente no campo \"Potência base\"." -#: SimulationsSettingsForm.cpp:87 +#: SimulationsSettingsForm.cpp:104 msgid "Value entered incorrectly in the field \"Acceleration factor\"." msgstr "Valor inserido incorretamente no campo \"Fator de aceleração\"." -#: SimulationsSettingsForm.cpp:90 +#: SimulationsSettingsForm.cpp:107 msgid "Value entered incorrectly in the field \"Tolerance (Power flow)\"." msgstr "" "Valor inserido incorretamente no campo \"Tolerância (Fluxo de carga)\"." -#: SimulationsSettingsForm.cpp:93 +#: SimulationsSettingsForm.cpp:110 msgid "" "Value entered incorrectly in the field \"Max. iterations (Power flow)\"." msgstr "" "Valor inserido incorretamente no campo \"Iterações máx (Fluxo de carga)\"." -#: SimulationsSettingsForm.cpp:102 +#: SimulationsSettingsForm.cpp:119 msgid "Value entered incorrectly in the field \"System frequency\"." msgstr "Valor inserido incorretamente no campo \"Frequência do sistema\"." -#: SimulationsSettingsForm.cpp:105 +#: SimulationsSettingsForm.cpp:122 msgid "Value entered incorrectly in the field \"Tolerance (Stability)\"." msgstr "Valor inserido incorretamente no campo \"Tolerância (estabilidade)\"." -#: SimulationsSettingsForm.cpp:108 +#: SimulationsSettingsForm.cpp:125 msgid "Value entered incorrectly in the field \"Max. iterations (Stability)\"." msgstr "" "Valor inserido incorretamente no campo \"Iterações máx (Estabilidade)\"." -#: SimulationsSettingsForm.cpp:111 +#: SimulationsSettingsForm.cpp:128 msgid "Value entered incorrectly in the field \"Controls step ratio\"." msgstr "" "Valor inserido incorretamente no campo \"Razão do passo dos controles\"." -#: SimulationsSettingsForm.cpp:114 +#: SimulationsSettingsForm.cpp:131 msgid "Value entered incorrectly in the field \"Plot time\"." msgstr "Valor inserido incorretamente no campo \"Tempo de impressão\"." -#: SumForm.cpp:43 +#: SumForm.cpp:58 msgid "You must assign at least two signals." msgstr "Você deve atribuir pelo menos dois sinais." -#: SumForm.cpp:58 +#: SumForm.cpp:74 msgid "Value entered incorrectly in the field \"Signs\"." msgstr "Valor inserido incorretamente no campo \"Sinais\"." -#: SyncGenerator.cpp:41 +#: SyncGenerator.cpp:58 msgid "Edit Generator" msgstr "Editar Gerador" -#: SyncGenerator.cpp:229 +#: SyncGenerator.cpp:246 msgid "Frequency" msgstr "Frequência" -#: SyncGenerator.cpp:231 +#: SyncGenerator.cpp:248 msgid "Delta" msgstr "Delta" -#: SyncMachineForm.cpp:344 SyncMachineForm.cpp:478 +#: SyncMachineForm.cpp:361 SyncMachineForm.cpp:495 msgid "Value entered incorrectly in the field \"Max reactive power\"." msgstr "Valor inserido incorretamente no campo \"Potência reativa máx\"." -#: SyncMachineForm.cpp:365 SyncMachineForm.cpp:499 +#: SyncMachineForm.cpp:382 SyncMachineForm.cpp:516 msgid "Value entered incorrectly in the field \"Min reactive power\"." msgstr "Valor inserido incorretamente no campo \"Potência reativa min\"." -#: SyncMachineForm.cpp:386 SyncMachineForm.cpp:520 +#: SyncMachineForm.cpp:403 SyncMachineForm.cpp:537 msgid "Value entered incorrectly in the field \"Positive resistance\"." msgstr "Valor inserido incorretamente no campo \"Resistência positiva\"." -#: SyncMachineForm.cpp:390 SyncMachineForm.cpp:524 +#: SyncMachineForm.cpp:407 SyncMachineForm.cpp:541 msgid "Value entered incorrectly in the field \"Positive reactance\"." msgstr "Valor inserido incorretamente no campo \"Reatância positiva\"." -#: SyncMachineForm.cpp:394 SyncMachineForm.cpp:528 +#: SyncMachineForm.cpp:411 SyncMachineForm.cpp:545 msgid "Value entered incorrectly in the field \"Negative resistance\"." msgstr "Valor inserido incorretamente no campo \"Resistência negativa\"." -#: SyncMachineForm.cpp:398 SyncMachineForm.cpp:532 +#: SyncMachineForm.cpp:415 SyncMachineForm.cpp:549 msgid "Value entered incorrectly in the field \"Negative reactance\"." msgstr "Valor inserido incorretamente no campo \"Reatância negativa\"." -#: SyncMachineForm.cpp:402 SyncMachineForm.cpp:536 +#: SyncMachineForm.cpp:419 SyncMachineForm.cpp:553 msgid "Value entered incorrectly in the field \"Zero resistance\"." msgstr "Valor inserido incorretamente no campo \"Resistência zero\"." -#: SyncMachineForm.cpp:406 SyncMachineForm.cpp:540 +#: SyncMachineForm.cpp:423 SyncMachineForm.cpp:557 msgid "Value entered incorrectly in the field \"Zero reactance\"." msgstr "Valor inserido incorretamente no campo \"Reatância zero\"." -#: SyncMachineForm.cpp:410 SyncMachineForm.cpp:544 +#: SyncMachineForm.cpp:427 SyncMachineForm.cpp:561 msgid "Value entered incorrectly in the field \"Ground resistance\"." msgstr "Valor inserido incorretamente no campo \"Resistência de aterramento\"." -#: SyncMachineForm.cpp:414 SyncMachineForm.cpp:548 +#: SyncMachineForm.cpp:431 SyncMachineForm.cpp:565 msgid "Value entered incorrectly in the field \"Ground reactance\"." msgstr "Valor inserido incorretamente no campo \"Reatância de aterramento\"." -#: SyncMotor.cpp:10 +#: SyncMotor.cpp:27 msgid "Edit Synchronous Condenser" msgstr "Editar Compensador Síncrono" -#: SyncMotor.cpp:19 +#: SyncMotor.cpp:36 msgid "Synchronous Condenser" msgstr "Compensador síncrono" -#: TextForm.cpp:858 TextForm.cpp:869 TextForm.cpp:880 TextForm.cpp:891 +#: TextForm.cpp:875 TextForm.cpp:886 TextForm.cpp:897 TextForm.cpp:908 msgid "Fault current" msgstr "Corrente de falta" -#: TextForm.cpp:859 +#: TextForm.cpp:876 msgid "Fault voltage" msgstr "Tensão de falta" -#: TextForm.cpp:860 +#: TextForm.cpp:877 msgid "Short-circuit power" msgstr "Nível de curto-circuito" -#: TextForm.cpp:876 TextForm.cpp:887 +#: TextForm.cpp:893 TextForm.cpp:904 msgid "Active power flow" msgstr "Fluxo de potência ativa" -#: TextForm.cpp:877 TextForm.cpp:888 +#: TextForm.cpp:894 TextForm.cpp:905 msgid "Reactive power flow" msgstr "Fluxo de potência reativa" -#: TextForm.cpp:878 TextForm.cpp:889 +#: TextForm.cpp:895 TextForm.cpp:906 msgid "Losses" msgstr "Perdas" -#: TextForm.cpp:879 TextForm.cpp:890 +#: TextForm.cpp:896 TextForm.cpp:907 msgid "Current" msgstr "Corrente" -#: TextForm.cpp:963 +#: TextForm.cpp:980 msgid "Degrees" msgstr "Graus" -#: TextForm.cpp:964 +#: TextForm.cpp:981 msgid "Radians" msgstr "Radianos" -#: TextForm.cpp:969 +#: TextForm.cpp:986 msgid "A" msgstr "A" -#: TextForm.cpp:970 +#: TextForm.cpp:987 msgid "kA" msgstr "kA" -#: TextForm.cpp:974 +#: TextForm.cpp:991 msgid "VA" msgstr "VA" -#: TextForm.cpp:975 +#: TextForm.cpp:992 msgid "kVA" msgstr "kVA" -#: TextForm.cpp:976 +#: TextForm.cpp:993 msgid "MVA" msgstr "MVA" -#: TextForm.cpp:982 +#: TextForm.cpp:999 msgid "W" msgstr "W" -#: TextForm.cpp:983 +#: TextForm.cpp:1000 msgid "kW" msgstr "kW" -#: TextForm.cpp:984 +#: TextForm.cpp:1001 msgid "MW" msgstr "MW" -#: TextForm.cpp:990 +#: TextForm.cpp:1007 msgid "VAr" msgstr "VAr" -#: TextForm.cpp:991 +#: TextForm.cpp:1008 msgid "kVAr" msgstr "kVAr" -#: TextForm.cpp:992 +#: TextForm.cpp:1009 msgid "MVAr" msgstr "MVAr" -#: TextForm.cpp:1207 +#: TextForm.cpp:1224 msgid "There are blank fields." msgstr "Existem campos em branco." -#: TransferFunctionForm.cpp:57 +#: TransferFunctionForm.cpp:74 msgid "Value entered incorrectly in the field \"Numerator parameters\"." msgstr "Valor inserido incorretamente no campo \"Parâmetros do numerador\"." -#: TransferFunctionForm.cpp:70 +#: TransferFunctionForm.cpp:87 msgid "Value entered incorrectly in the field \"Denominator parameters\"." msgstr "Valor inserido incorretamente no campo \"Parâmetros do denominador\"." -#: Transformer.cpp:258 +#: Transformer.cpp:275 msgid "Edit tranformer" msgstr "Editar Transformador" -#: TransformerForm.cpp:11 +#: TransformerForm.cpp:28 msgid "Grounded Wye - Grounded Wye" msgstr "Estrela aterrado - Estrela aterrado" -#: TransformerForm.cpp:12 +#: TransformerForm.cpp:29 msgid "Wye - Grounded Wye" msgstr "Estrela - Estrela aterrado" -#: TransformerForm.cpp:13 +#: TransformerForm.cpp:30 msgid "Grounded Wye - Wye" msgstr "Estrela aterrado - Estrela" -#: TransformerForm.cpp:14 +#: TransformerForm.cpp:31 msgid "Wye - Wye" msgstr "Estrela - Estrela" -#: TransformerForm.cpp:15 +#: TransformerForm.cpp:32 msgid "Delta - Grounded Wye" msgstr "Delta - Estrela aterrado" -#: TransformerForm.cpp:16 +#: TransformerForm.cpp:33 msgid "Delta - Wye" msgstr "Delta - Estrela" -#: TransformerForm.cpp:17 +#: TransformerForm.cpp:34 msgid "Grounded Wye - Delta" msgstr "Estrela aterrado - Delta" -#: TransformerForm.cpp:18 +#: TransformerForm.cpp:35 msgid "Wye - Delta" msgstr "Estrela - Delta" -#: TransformerForm.cpp:19 +#: TransformerForm.cpp:36 msgid "Delta - Delta" msgstr "Delta - Delta" -#: TransformerForm.cpp:123 +#: TransformerForm.cpp:140 msgid "Transfomer: Switching" msgstr "Transformador: Chaveamento" -#: TransformerForm.cpp:164 +#: TransformerForm.cpp:181 msgid "Value entered incorrectly in the field \"Indutive reactance\"." msgstr "Valor inserido incorretamente no campo \"Reatância indutiva\"." -#: TransformerForm.cpp:206 +#: TransformerForm.cpp:223 msgid "Value entered incorrectly in the field \"Turns ratio\"." msgstr "Valor inserido incorretamente no campo \"TAP\"." -#: TransformerForm.cpp:210 +#: TransformerForm.cpp:227 msgid "Value entered incorrectly in the field \"Phase shift\"." msgstr "Valor inserido incorretamente no campo \"Defasagem\"." -#: TransformerForm.cpp:216 +#: TransformerForm.cpp:233 msgid "Value entered incorrectly in the field \"Zero sequence resistance\"." msgstr "" "Valor inserido incorretamente no campo \"Resistência de sequência zero\"." -#: TransformerForm.cpp:221 +#: TransformerForm.cpp:238 msgid "" "Value entered incorrectly in the field \"Zero sequence indutive reactance\"." msgstr "" "Valor inserido incorretamente no campo \"Reatância indutiva de sequência zero" "\"." -#: TransformerForm.cpp:225 +#: TransformerForm.cpp:242 msgid "Value entered incorrectly in the field \"Primary ground resistance\"." msgstr "" "Valor inserido incorretamente no campo \"Resistência de aterramento do " "primário\"." -#: TransformerForm.cpp:229 +#: TransformerForm.cpp:246 msgid "Value entered incorrectly in the field \"Primary ground reactance\"." msgstr "" "Valor inserido incorretamente no campo \"Reatância de aterramento do primário" "\"." -#: TransformerForm.cpp:233 +#: TransformerForm.cpp:250 msgid "Value entered incorrectly in the field \"Secondary ground resistance\"." msgstr "" "Valor inserido incorretamente no campo \"Resistência de aterramento do " "secundário\"." -#: TransformerForm.cpp:237 +#: TransformerForm.cpp:254 msgid "Value entered incorrectly in the field \"Secondary ground reactance\"." msgstr "" "Valor inserido incorretamente no campo \"Reatância de aterramento do " "secundário\"." -#: Workspace.cpp:283 +#: Workspace.cpp:300 msgid "Do you want to change the rated voltage of the path?" msgstr "Você quer mudar a tensão nominal do trecho?" -#: Workspace.cpp:284 +#: Workspace.cpp:301 msgid "Warning" msgstr "Atenção" -#: Workspace.cpp:684 +#: Workspace.cpp:701 msgid "Insert Text: Click to insert, ESC to cancel." msgstr "Inserir Texto: Clique para inserir, ESC para cancelar." -#: Workspace.cpp:823 +#: Workspace.cpp:840 msgid "MODE: DRAG" msgstr "MODO: ARRASTAR" -#: Workspace.cpp:828 +#: Workspace.cpp:845 msgid "MODE: PASTE" msgstr "MODO: COLAR" -#: Workspace.cpp:835 +#: Workspace.cpp:852 msgid "MODE: INSERT" msgstr "MODO: INSERÇÃO" -#: Workspace.cpp:844 +#: Workspace.cpp:861 msgid "MODE: EDIT" msgstr "MODO: EDIÇÃO" -#: Workspace.cpp:848 +#: Workspace.cpp:865 #, c-format msgid "ZOOM: %d%%" msgstr "ZOOM: %d%%" -#: Workspace.cpp:1182 Workspace.cpp:1290 +#: Workspace.cpp:1199 Workspace.cpp:1307 msgid "It was not possible to paste from clipboard." msgstr "Não foi possível colar da área de transferência." -#: Workspace.cpp:1298 +#: Workspace.cpp:1315 msgid "Click to paste." msgstr "Clique para colar." -#: Workspace.cpp:1443 +#: Workspace.cpp:1460 msgid "Do you wish to open the stability graphics?" msgstr "Você deseja abrir os gráficos do estudo de estabilidade" -#: Workspace.cpp:1443 +#: Workspace.cpp:1460 msgid "Question" msgstr "Pergunta" -#: Workspace.cpp:1453 -msgid "Speed error" -msgstr "Erro de velocidade" +#~ msgid "Pe" +#~ msgstr "Pe" + +#~ msgid "Qe" +#~ msgstr "Qe" + +#~ msgid "http://www.ndse.ufu.br/pspufu" +#~ msgstr "http://www.ndse.ufu.br/pspufu" + +#~ msgid "Speed error" +#~ msgstr "Erro de velocidade" -#: Workspace.cpp:1454 -msgid "Number iterations" -msgstr "Número de iterações" +#~ msgid "Number iterations" +#~ msgstr "Número de iterações" #~ msgid "Eq error" #~ msgstr "Erro do Eq" diff --git a/docs/downloads/windows/pspufu.zip b/docs/downloads/windows/pspufu.zip Binary files differindex 0665cb0..594e487 100644 --- a/docs/downloads/windows/pspufu.zip +++ b/docs/downloads/windows/pspufu.zip |