diff options
-rw-r--r-- | Project/ConnectionLine.h | 9 | ||||
-rw-r--r-- | Project/ControlEditor.cpp | 7 | ||||
-rw-r--r-- | Project/ControlEditor.h | 2 | ||||
-rw-r--r-- | Project/ControlElement.h | 32 | ||||
-rw-r--r-- | Project/ControlElementSolver.cpp | 74 | ||||
-rw-r--r-- | Project/ControlElementSolver.h | 41 | ||||
-rw-r--r-- | Project/IOControl.h | 1 | ||||
-rw-r--r-- | Project/Project.mk | 16 | ||||
-rw-r--r-- | Project/Project.project | 2 | ||||
-rw-r--r-- | Project/Project.txt | 2 |
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 |