summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Project/ConnectionLine.h9
-rw-r--r--Project/ControlEditor.cpp7
-rw-r--r--Project/ControlEditor.h2
-rw-r--r--Project/ControlElement.h32
-rw-r--r--Project/ControlElementSolver.cpp74
-rw-r--r--Project/ControlElementSolver.h41
-rw-r--r--Project/IOControl.h1
-rw-r--r--Project/Project.mk16
-rw-r--r--Project/Project.project2
-rw-r--r--Project/Project.txt2
10 files changed, 164 insertions, 22 deletions
diff --git a/Project/ConnectionLine.h b/Project/ConnectionLine.h
index e9d238a..8000cfa 100644
--- a/Project/ConnectionLine.h
+++ b/Project/ConnectionLine.h
@@ -29,6 +29,12 @@ class ConnectionLine : public ControlElement
virtual bool SetParentLine(ConnectionLine* parent);
virtual std::vector<ConnectionLine*> GetLineChildList() const;
+
+ virtual bool IsSolved() const { return m_solved; }
+ virtual SetSolved(bool solved) { m_solved = solved; }
+
+ virtual double GetValue() const { return m_value; }
+ virtual void SetValue(double value) { m_value = value; }
protected:
double m_lineOffset = 0.0;
@@ -38,6 +44,9 @@ class ConnectionLine : public ControlElement
ConnectionLineType m_type = ELEMENT_ELEMENT;
ConnectionLine* m_parentLine = NULL;
+
+ double m_value;
+ bool m_solved = false;
};
#endif // CONNECTIONLINE_H
diff --git a/Project/ControlEditor.cpp b/Project/ControlEditor.cpp
index a9d0213..5fbd60e 100644
--- a/Project/ControlEditor.cpp
+++ b/Project/ControlEditor.cpp
@@ -13,6 +13,8 @@
#include "Constant.h"
#include "Gain.h"
+#include "ControlElementSolver.h"
+
#include "ChartView.h"
#include "ElementPlotData.h"
@@ -618,6 +620,9 @@ void ControlEditor::OnKeyDown(wxKeyEvent& event)
{
//tests
if(event.ControlDown() && event.ShiftDown()) {
+
+ ControlElementSolver solver(this, 1e-3, true, 0.0);
+ /*
std::vector<double> time, sinC, cosC, tgC;
for(int i=0; i<360; ++i) {
time.push_back(i);
@@ -642,7 +647,7 @@ void ControlEditor::OnKeyDown(wxKeyEvent& event)
epdList.push_back(curve3Data);
ChartView* cView = new ChartView(this, epdList, time);
- cView->Show();
+ cView->Show();*/
}
}
}
diff --git a/Project/ControlEditor.h b/Project/ControlEditor.h
index 232ebd8..9dd4e38 100644
--- a/Project/ControlEditor.h
+++ b/Project/ControlEditor.h
@@ -25,6 +25,8 @@ class Exponential;
class Constant;
class Gain;
+class ControlElementSolver;
+
class ChartView;
class ElementDataObject;
diff --git a/Project/ControlElement.h b/Project/ControlElement.h
index 1cf4e0b..8e377b2 100644
--- a/Project/ControlElement.h
+++ b/Project/ControlElement.h
@@ -5,7 +5,7 @@
class Node
{
-public:
+ public:
enum NodeType { NODE_IN = 0, NODE_OUT };
Node(wxPoint2DDouble position = wxPoint2DDouble(0, 0), NodeType nodeType = NODE_IN, double borderSize = 0.0);
@@ -13,39 +13,33 @@ public:
wxRect2DDouble GetRect() const { return m_rect; }
void SetRect(wxRect2DDouble rect) { m_rect = rect; }
-
wxPoint2DDouble GetPosition() const;
void SetPosition(wxPoint2DDouble position);
NodeType GetNodeType() const { return m_nodeType; }
void SetNodeType(NodeType nodeType) { m_nodeType = nodeType; }
-
double GetRadius() const { return m_radius; }
std::vector<wxPoint2DDouble> GetInTrianglePts() const { return m_triPts; }
-
double GetAngle() const { return m_angle; }
void SetAngle(double angle) { m_angle = angle; }
-
void Rotate(bool clockwise = true);
-
+
void RotateTriPt(double angle);
void StartMove(wxPoint2DDouble position);
void Move(wxPoint2DDouble position);
bool Contains(wxPoint2DDouble position) const;
-
+
bool IsConnected() const { return m_connected; }
void SetConnected(bool connected = true) { m_connected = connected; }
-
int GetID() const { return m_id; }
void SetID(int id) { m_id = id; }
-
-protected:
+ protected:
int m_id = -1;
-
+
wxRect2DDouble m_rect;
NodeType m_nodeType;
-
+
bool m_connected = false;
wxPoint2DDouble m_moveStartPt;
@@ -58,7 +52,7 @@ protected:
class ControlElement : public Element
{
-public:
+ public:
ControlElement(int id);
~ControlElement();
@@ -67,11 +61,17 @@ public:
void SetNodeList(std::vector<Node*> nodeList) { m_nodeList = nodeList; }
std::vector<Node*> GetNodeList() const { return m_nodeList; }
-
virtual void DrawNodes() const;
-protected:
+ void SetInput(double input) { m_input = input; }
+ double GetInput() const { return m_input; }
+ double GetOutput() const { return m_output; }
+ virtual bool Solve() { return false; }
+ protected:
std::vector<Node*> m_nodeList;
+
+ double m_input = 0.0;
+ double m_output = 0.0;
};
-#endif // CONTROLELEMENT_H
+#endif // CONTROLELEMENT_H
diff --git a/Project/ControlElementSolver.cpp b/Project/ControlElementSolver.cpp
new file mode 100644
index 0000000..799ca57
--- /dev/null
+++ b/Project/ControlElementSolver.cpp
@@ -0,0 +1,74 @@
+#include "ControlElementSolver.h"
+
+#include "ControlElementContainer.h"
+#include "ControlEditor.h"
+#include "ConnectionLine.h"
+#include "Constant.h"
+#include "Exponential.h"
+#include "Gain.h"
+#include "IOControl.h"
+#include "Limiter.h"
+#include "Multiplier.h"
+#include "RateLimiter.h"
+#include "Sum.h"
+#include "TransferFunction.h"
+
+ControlElementSolver::ControlElementSolver(ControlEditor* controlEditor, double timeStep, bool startAllZero, double input)
+{
+ m_ctrlContainer = new ControlElementContainer();
+ m_ctrlContainer->FillContainer(controlEditor);
+
+ //Check if the sistem have one input and one output
+ bool fail = false;
+ wxString failMessage = "";
+ auto ioList = m_ctrlContainer->GetIOControlList();
+ if(ioList.size() != 2) {
+ fail = true;
+ failMessage = _("The control system must have one input and one output.");
+ }
+ bool haveInput, haveOutput;
+ haveInput = haveOutput = false;
+ for(auto it = ioList.begin(), itEnd = ioList.end(); it != itEnd; ++it) {
+ IOControl* io = *it;
+ if(io->GetType() == Node::NODE_OUT) {
+ m_inputControl = io;
+ haveInput = true;
+ }
+ else if(io->GetType() == Node::NODE_IN) {
+ m_outputControl = io;
+ haveOutput = true;
+ }
+ }
+ if(!fail && !haveInput) {
+ fail = true;
+ failMessage = _("There is no input in the control system.");
+ }
+ if(!fail && !haveOutput) {
+ fail = true;
+ failMessage = _("There is no output in the control system.");
+ }
+
+ if(fail) {
+ wxMessageDialog msgDialog(controlEditor, failMessage, _("Error"), wxOK | wxCENTRE | wxICON_ERROR);
+ msgDialog.ShowModal();
+ }
+
+ m_timeStep = timeStep;
+ if(!startAllZero) InitializeValues(input);
+}
+
+void ControlElementSolver::InitializeValues(double input)
+{
+
+}
+
+void ControlElementSolver::SolveNextStep(double input)
+{
+ auto connectionLineList = m_ctrlContainer->GetConnectionLineList();
+ for(auto it = connectionLineList.begin(), itEnd = connectionLineList.end(); it != itEnd; ++it) {
+ ConnectionLine* cLine = *it;
+ cLine->SetSolved(false);
+ }
+ // Get first node (connected with input)
+ ConnectionLine
+} \ No newline at end of file
diff --git a/Project/ControlElementSolver.h b/Project/ControlElementSolver.h
new file mode 100644
index 0000000..47838d7
--- /dev/null
+++ b/Project/ControlElementSolver.h
@@ -0,0 +1,41 @@
+#ifndef CONTROLELEMENTSOLVER_H
+#define CONTROLELEMENTSOLVER_H
+
+#include <stddef.h> // NULL definition
+#include <vector>
+
+class ControlElementContainer;
+class ControlEditor;
+class ConnectionLine;
+class Constant;
+class Exponential;
+class Gain;
+class IOControl;
+class Limiter;
+class Multiplier;
+class RateLimiter;
+class Sum;
+class TransferFunction;
+
+class ControlElementSolver
+{
+ public:
+ ControlElementSolver() {}
+ ControlElementSolver(ControlEditor* controlEditor, double timeStep = 1e-3, bool startAllZero = false, double input = 0.0);
+ ~ControlElementSolver() {}
+
+ virtual void InitializeValues(double input);
+ virtual void SolveNextStep(double input);
+ virtual std::vector<double> GetSolutions() { return m_solutions; }
+ virtual double GetLastSolution() {return m_solutions[m_solutions.size() - 1];}
+
+ protected:
+ ControlElementContainer* m_ctrlContainer = NULL;
+ double m_timeStep;
+ std::vector<double> m_solutions;
+
+ IOControl* m_inputControl = NULL;
+ IOControl* m_outputControl = NULL;
+};
+
+#endif // CONTROLELEMENTSOLVER_H
diff --git a/Project/IOControl.h b/Project/IOControl.h
index 7b3f4d0..8a7666f 100644
--- a/Project/IOControl.h
+++ b/Project/IOControl.h
@@ -35,6 +35,7 @@ class IOControl : public ControlElement
virtual IOFlags GetValue() const { return m_value; }
virtual void SetValue(IOFlags value);
virtual int GetIOFlags() const { return m_ioFlags; }
+ virtual Node::NodeType GetType() { return m_ioNodeType; }
protected:
IOFlags m_value;
diff --git a/Project/Project.mk b/Project/Project.mk
index c43d7d9..07076f7 100644
--- a/Project/Project.mk
+++ b/Project/Project.mk
@@ -13,7 +13,7 @@ CurrentFileName :=
CurrentFilePath :=
CurrentFileFullPath :=
User :=NDSE-69
-Date :=03/05/2017
+Date :=04/05/2017
CodeLitePath :="C:/Program Files/CodeLite"
LinkerName :=C:/TDM-GCC-64/bin/g++.exe
SharedObjectLinkerName :=C:/TDM-GCC-64/bin/g++.exe -shared -fPIC
@@ -69,9 +69,9 @@ Objects0=$(IntermediateDirectory)/main.cpp$(ObjectSuffix) $(IntermediateDirector
$(IntermediateDirectory)/WorkspaceBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlEditorBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/ChartViewBase.cpp$(ObjectSuffix) $(IntermediateDirectory)/Bus.cpp$(ObjectSuffix) $(IntermediateDirectory)/Line.cpp$(ObjectSuffix) $(IntermediateDirectory)/Transformer.cpp$(ObjectSuffix) $(IntermediateDirectory)/Machines.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncGenerator.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotor.cpp$(ObjectSuffix) \
$(IntermediateDirectory)/Branch.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMotor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Shunt.cpp$(ObjectSuffix) $(IntermediateDirectory)/Load.cpp$(ObjectSuffix) $(IntermediateDirectory)/Inductor.cpp$(ObjectSuffix) $(IntermediateDirectory)/Capacitor.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ElectricCalculation.cpp$(ObjectSuffix) $(IntermediateDirectory)/PowerFlow.cpp$(ObjectSuffix) $(IntermediateDirectory)/Fault.cpp$(ObjectSuffix) \
$(IntermediateDirectory)/Text.cpp$(ObjectSuffix) $(IntermediateDirectory)/GraphicalElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElement.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunction.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConnectionLine.cpp$(ObjectSuffix) $(IntermediateDirectory)/Sum.cpp$(ObjectSuffix) $(IntermediateDirectory)/Multiplier.cpp$(ObjectSuffix) $(IntermediateDirectory)/Limiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiter.cpp$(ObjectSuffix) $(IntermediateDirectory)/Exponential.cpp$(ObjectSuffix) \
- $(IntermediateDirectory)/Constant.cpp$(ObjectSuffix) $(IntermediateDirectory)/Gain.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControl.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementContainer.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GeneratorStabForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SwitchingForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransformerForm.cpp$(ObjectSuffix) \
- $(IntermediateDirectory)/LoadForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ReactiveShuntElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotorForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMachineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TextForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunctionForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SumForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ExponentialForm.cpp$(ObjectSuffix) \
- $(IntermediateDirectory)/ConstantForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GainForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControlForm.cpp$(ObjectSuffix)
+ $(IntermediateDirectory)/Constant.cpp$(ObjectSuffix) $(IntermediateDirectory)/Gain.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControl.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementContainer.cpp$(ObjectSuffix) $(IntermediateDirectory)/ControlElementSolver.cpp$(ObjectSuffix) $(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(ObjectSuffix) $(IntermediateDirectory)/BusForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GeneratorStabForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SwitchingForm.cpp$(ObjectSuffix) \
+ $(IntermediateDirectory)/TransformerForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LoadForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ReactiveShuntElementForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IndMotorForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SyncMachineForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TextForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/TransferFunctionForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/SumForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/LimiterForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/RateLimiterForm.cpp$(ObjectSuffix) \
+ $(IntermediateDirectory)/ExponentialForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/ConstantForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/GainForm.cpp$(ObjectSuffix) $(IntermediateDirectory)/IOControlForm.cpp$(ObjectSuffix)
@@ -528,6 +528,14 @@ $(IntermediateDirectory)/ControlElementContainer.cpp$(DependSuffix): ControlElem
$(IntermediateDirectory)/ControlElementContainer.cpp$(PreprocessSuffix): ControlElementContainer.cpp
$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ControlElementContainer.cpp$(PreprocessSuffix) ControlElementContainer.cpp
+$(IntermediateDirectory)/ControlElementSolver.cpp$(ObjectSuffix): ControlElementSolver.cpp $(IntermediateDirectory)/ControlElementSolver.cpp$(DependSuffix)
+ $(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/ControlElementSolver.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/ControlElementSolver.cpp$(ObjectSuffix) $(IncludePath)
+$(IntermediateDirectory)/ControlElementSolver.cpp$(DependSuffix): ControlElementSolver.cpp
+ @$(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/ControlElementSolver.cpp$(ObjectSuffix) -MF$(IntermediateDirectory)/ControlElementSolver.cpp$(DependSuffix) -MM ControlElementSolver.cpp
+
+$(IntermediateDirectory)/ControlElementSolver.cpp$(PreprocessSuffix): ControlElementSolver.cpp
+ $(CXX) $(CXXFLAGS) $(IncludePCH) $(IncludePath) $(PreprocessOnlySwitch) $(OutputSwitch) $(IntermediateDirectory)/ControlElementSolver.cpp$(PreprocessSuffix) ControlElementSolver.cpp
+
$(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(ObjectSuffix): wxMathPlot/mathplot.cpp $(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(DependSuffix)
$(CXX) $(IncludePCH) $(SourceSwitch) "C:/Users/NDSE-69/Documents/GitHub/PSP/Project/wxMathPlot/mathplot.cpp" $(CXXFLAGS) $(ObjectSwitch)$(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(ObjectSuffix) $(IncludePath)
$(IntermediateDirectory)/wxMathPlot_mathplot.cpp$(DependSuffix): wxMathPlot/mathplot.cpp
diff --git a/Project/Project.project b/Project/Project.project
index 6671989..752ee00 100644
--- a/Project/Project.project
+++ b/Project/Project.project
@@ -49,6 +49,7 @@
<File Name="Gain.cpp"/>
<File Name="IOControl.cpp"/>
<File Name="ControlElementContainer.cpp"/>
+ <File Name="ControlElementSolver.cpp"/>
</VirtualDirectory>
<File Name="ElementPlotData.cpp"/>
</VirtualDirectory>
@@ -140,6 +141,7 @@
<File Name="Gain.h"/>
<File Name="IOControl.h"/>
<File Name="ControlElementContainer.h"/>
+ <File Name="ControlElementSolver.h"/>
</VirtualDirectory>
<File Name="ElementPlotData.h"/>
</VirtualDirectory>
diff --git a/Project/Project.txt b/Project/Project.txt
index fbf464d..65a2851 100644
--- a/Project/Project.txt
+++ b/Project/Project.txt
@@ -1 +1 @@
-./Release/main.cpp.o ./Release/win_resources.rc.o ./Release/ElementDataObject.cpp.o ./Release/Element.cpp.o ./Release/ElementPlotData.cpp.o ./Release/ArtMetro.cpp.o ./Release/wxGLString.cpp.o ./Release/MainFrame.cpp.o ./Release/Workspace.cpp.o ./Release/FileHanding.cpp.o ./Release/ControlEditor.cpp.o ./Release/Camera.cpp.o ./Release/ChartView.cpp.o ./Release/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/BusFormBitmaps.cpp.o ./Release/ElementFormBitmaps.cpp.o ./Release/ControlEditorBitmaps.cpp.o ./Release/ChartViewBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o ./Release/ElementForm.cpp.o ./Release/ControlEditorBase.cpp.o ./Release/ChartViewBase.cpp.o ./Release/Bus.cpp.o ./Release/Line.cpp.o ./Release/Transformer.cpp.o ./Release/Machines.cpp.o ./Release/SyncGenerator.cpp.o ./Release/IndMotor.cpp.o ./Release/Branch.cpp.o ./Release/SyncMotor.cpp.o ./Release/Shunt.cpp.o ./Release/Load.cpp.o ./Release/Inductor.cpp.o ./Release/Capacitor.cpp.o ./Release/PowerElement.cpp.o ./Release/ElectricCalculation.cpp.o ./Release/PowerFlow.cpp.o ./Release/Fault.cpp.o ./Release/Text.cpp.o ./Release/GraphicalElement.cpp.o ./Release/ControlElement.cpp.o ./Release/TransferFunction.cpp.o ./Release/ConnectionLine.cpp.o ./Release/Sum.cpp.o ./Release/Multiplier.cpp.o ./Release/Limiter.cpp.o ./Release/RateLimiter.cpp.o ./Release/Exponential.cpp.o ./Release/Constant.cpp.o ./Release/Gain.cpp.o ./Release/IOControl.cpp.o ./Release/ControlElementContainer.cpp.o ./Release/wxMathPlot_mathplot.cpp.o ./Release/BusForm.cpp.o ./Release/GeneratorStabForm.cpp.o ./Release/LineForm.cpp.o ./Release/SwitchingForm.cpp.o ./Release/TransformerForm.cpp.o ./Release/LoadForm.cpp.o ./Release/ReactiveShuntElementForm.cpp.o ./Release/IndMotorForm.cpp.o ./Release/SyncMachineForm.cpp.o ./Release/TextForm.cpp.o ./Release/TransferFunctionForm.cpp.o ./Release/SumForm.cpp.o ./Release/LimiterForm.cpp.o ./Release/RateLimiterForm.cpp.o ./Release/ExponentialForm.cpp.o ./Release/ConstantForm.cpp.o ./Release/GainForm.cpp.o ./Release/IOControlForm.cpp.o
+./Release/main.cpp.o ./Release/win_resources.rc.o ./Release/ElementDataObject.cpp.o ./Release/Element.cpp.o ./Release/ElementPlotData.cpp.o ./Release/ArtMetro.cpp.o ./Release/wxGLString.cpp.o ./Release/MainFrame.cpp.o ./Release/Workspace.cpp.o ./Release/FileHanding.cpp.o ./Release/ControlEditor.cpp.o ./Release/Camera.cpp.o ./Release/ChartView.cpp.o ./Release/MainFrameBitmaps.cpp.o ./Release/WorkspaceBitmaps.cpp.o ./Release/BusFormBitmaps.cpp.o ./Release/ElementFormBitmaps.cpp.o ./Release/ControlEditorBitmaps.cpp.o ./Release/ChartViewBitmaps.cpp.o ./Release/MainFrameBase.cpp.o ./Release/WorkspaceBase.cpp.o ./Release/ElementForm.cpp.o ./Release/ControlEditorBase.cpp.o ./Release/ChartViewBase.cpp.o ./Release/Bus.cpp.o ./Release/Line.cpp.o ./Release/Transformer.cpp.o ./Release/Machines.cpp.o ./Release/SyncGenerator.cpp.o ./Release/IndMotor.cpp.o ./Release/Branch.cpp.o ./Release/SyncMotor.cpp.o ./Release/Shunt.cpp.o ./Release/Load.cpp.o ./Release/Inductor.cpp.o ./Release/Capacitor.cpp.o ./Release/PowerElement.cpp.o ./Release/ElectricCalculation.cpp.o ./Release/PowerFlow.cpp.o ./Release/Fault.cpp.o ./Release/Text.cpp.o ./Release/GraphicalElement.cpp.o ./Release/ControlElement.cpp.o ./Release/TransferFunction.cpp.o ./Release/ConnectionLine.cpp.o ./Release/Sum.cpp.o ./Release/Multiplier.cpp.o ./Release/Limiter.cpp.o ./Release/RateLimiter.cpp.o ./Release/Exponential.cpp.o ./Release/Constant.cpp.o ./Release/Gain.cpp.o ./Release/IOControl.cpp.o ./Release/ControlElementContainer.cpp.o ./Release/ControlElementSolver.cpp.o ./Release/wxMathPlot_mathplot.cpp.o ./Release/BusForm.cpp.o ./Release/GeneratorStabForm.cpp.o ./Release/LineForm.cpp.o ./Release/SwitchingForm.cpp.o ./Release/TransformerForm.cpp.o ./Release/LoadForm.cpp.o ./Release/ReactiveShuntElementForm.cpp.o ./Release/IndMotorForm.cpp.o ./Release/SyncMachineForm.cpp.o ./Release/TextForm.cpp.o ./Release/TransferFunctionForm.cpp.o ./Release/SumForm.cpp.o ./Release/LimiterForm.cpp.o ./Release/RateLimiterForm.cpp.o ./Release/ExponentialForm.cpp.o ./Release/ConstantForm.cpp.o ./Release/GainForm.cpp.o ./Release/IOControlForm.cpp.o