diff options
author | Thales Lima Oliveira <thaleslima.ufu@gmail.com> | 2017-05-13 16:15:22 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-13 16:15:22 -0300 |
commit | 17d1dd82ec065eff08546ef1fd2a188ce77471b2 (patch) | |
tree | 811c788656f71692ccb0b038215dab7a87c2c0dc /Project/TransferFunction.h | |
parent | fe4776d88169c048e06c142d81bfd42651c63d1d (diff) | |
parent | d44c3a76943c90cfcbf336961d9ba3516a1c80dc (diff) | |
download | PSP.git-17d1dd82ec065eff08546ef1fd2a188ce77471b2.tar.gz PSP.git-17d1dd82ec065eff08546ef1fd2a188ce77471b2.tar.xz PSP.git-17d1dd82ec065eff08546ef1fd2a188ce77471b2.zip |
Merge pull request #32 from Thales1330/wip/controller-solver
Wip controller solver
Diffstat (limited to 'Project/TransferFunction.h')
-rw-r--r-- | Project/TransferFunction.h | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/Project/TransferFunction.h b/Project/TransferFunction.h index 45681ce..19bd04e 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(int maxIteration = 100, double error = 1e-3); + virtual bool Solve(double input, double timeStep); + + 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_error = 1e-3; + int m_maxIteration = 100; }; -#endif // TRANSFERFUNCTION_H +#endif // TRANSFERFUNCTION_H |