summaryrefslogtreecommitdiffstats
path: root/Project/TransferFunction.h
diff options
context:
space:
mode:
Diffstat (limited to 'Project/TransferFunction.h')
-rw-r--r--Project/TransferFunction.h31
1 files changed, 24 insertions, 7 deletions
diff --git a/Project/TransferFunction.h b/Project/TransferFunction.h
index 45681ce..38e31bb 100644
--- a/Project/TransferFunction.h
+++ b/Project/TransferFunction.h
@@ -10,7 +10,14 @@ class TransferFunctionForm;
class TransferFunction : public ControlElement
{
-public:
+ public:
+ struct SpaceState {
+ std::vector<std::vector<double> > A;
+ std::vector<double> B;
+ std::vector<double> C;
+ double D;
+ };
+
TransferFunction(int id);
~TransferFunction();
@@ -19,25 +26,35 @@ public:
virtual bool Intersects(wxRect2DDouble rect) const { return m_rect.Intersects(rect); }
virtual bool ShowForm(wxWindow* parent, Element* element);
virtual void Rotate(bool clockwise = true);
-
+
virtual std::vector<double> GetNumerator() const { return m_numerator; }
virtual std::vector<double> GetDenominator() const { return m_denominator; }
virtual void SetNumerator(std::vector<double> numerator) { m_numerator = numerator; }
virtual void SetDenominator(std::vector<double> denominator) { m_denominator = denominator; }
virtual void UpdateTFText();
-
-protected:
+ virtual SpaceState GetSpaceState() { return m_ss; }
+ virtual void CalculateSpaceState(double timeStep = 1e-3, double error = 1e-3);
+ virtual bool Solve(double input);
+
+ protected:
virtual void SetText(wxString numerator, wxString denominator);
virtual wxString GetSuperscriptNumber(int number);
virtual void GetTFString(wxString& numerator, wxString& denominator);
-
+
wchar_t m_supNumber[10];
-
+
wxGLString* m_glStringNum = NULL;
wxGLString* m_glStringDen = NULL;
int m_fontSize = 10;
+
std::vector<double> m_numerator;
std::vector<double> m_denominator;
+ SpaceState m_ss;
+
+ std::vector<double> m_x;
+ std::vector<double> m_dx;
+ double m_timeStep = 1e-3;
+ double m_error = 1e-3;
};
-#endif // TRANSFERFUNCTION_H
+#endif // TRANSFERFUNCTION_H