From dbe0b112622f8e91fa3e44a6b6e1aa7e230d3ded Mon Sep 17 00:00:00 2001 From: Thales Lima Oliveira Date: Sun, 31 Dec 2017 17:59:10 -0200 Subject: Math Expression implemented --- Project/TransferFunction.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'Project/TransferFunction.cpp') diff --git a/Project/TransferFunction.cpp b/Project/TransferFunction.cpp index 2233764..b34633c 100644 --- a/Project/TransferFunction.cpp +++ b/Project/TransferFunction.cpp @@ -308,8 +308,13 @@ void TransferFunction::CalculateSpaceState(int maxIteration, double error) } } -bool TransferFunction::Solve(double input, double timeStep, double currentTime) +bool TransferFunction::Solve(double* input, double timeStep) { + if(!input) { + m_output = 0.0; + return true; + } + int order = static_cast(m_ss.A.size()); std::vector x; @@ -341,7 +346,7 @@ bool TransferFunction::Solve(double input, double timeStep, double currentTime) // x' = Ax + Bu dx[i] = 0.0; for(int j = 0; j < order; j++) dx[i] += m_ss.A[i][j] * x[j]; - dx[i] += m_ss.B[i] * input; + dx[i] += m_ss.B[i] * input[0]; if(std::abs(dx[i] - olddx[i]) > dxError) dxError = std::abs(dx[i] - olddx[i]); @@ -360,7 +365,7 @@ bool TransferFunction::Solve(double input, double timeStep, double currentTime) m_dx[i] = dx[i]; } - m_output += m_ss.D * input; + m_output += m_ss.D * input[0]; return true; } -- cgit