summaryrefslogtreecommitdiffstats
path: root/src/control.cpp.old
diff options
context:
space:
mode:
Diffstat (limited to 'src/control.cpp.old')
-rw-r--r--src/control.cpp.old46
1 files changed, 0 insertions, 46 deletions
diff --git a/src/control.cpp.old b/src/control.cpp.old
deleted file mode 100644
index 0e0d641..0000000
--- a/src/control.cpp.old
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "control.h"
-
-#include "EigenUnsupported/MatrixFunctions"
-
-namespace ct
-{
- template<typename T>
- template<int n, int m, int k>
- TimeSeries<T>::TimeSeries(size_t nsamples, T start, T end, const SSModel<T, n, m, k>& ss)
- : nsamples(nsamples)
- , start(start) , end(end)
- , t(nsamples)
- , u(ss.u.rows(), nsamples)
- , x(ss.x.rows(), nsamples)
- , y(ss.y.rows(), nsamples)
- {}
-
- template<typename T, int n, int m, int k>
- void response(SSModel<T, n, m, k> ss, TimeSeries<T>& ts)
- {
- /* Numerically integrate solution with timestep dt and linear interpolation
- * between input samples
- */
- using namespace Eigen;
-
- T dt = (ts.start - ts.end) / ts.nsamples;
- Matrix<T, n, n> expM = (ss.A * dt).exp();
- Index Ad = expM(seq(0,n), seq(0,n));
- Index Bd1 = expM(seq(0, n), seq(n + m, last));
- Matrix<T, n, m> Bd0 = expM(seq(0, n), seq(n, n + m)) - Bd1;
-
- for (int i = 1; i < ts.nsamples; i++)
- ts.x(all, i) = Ad * ts.x(all, i - 1) + Bd0 * ts.u(all, i - 1) + Bd1 * ts.u(all, i);
-
- ts.y = ss.C * ts.x + ss.D * ts.u;
- }
-
- template<typename T, int n, int m, int k>
- void step(SSModel<T, n, m, k> ss, TimeSeries<T>& ts)
- {
- ts.u.fill(static_cast<T>(1));
- response(ss, ts);
- }
-}
-
-// vim: ts=2 sw=2 noet: