Marine systems simulation
CLinearSystem.h
1#ifndef CLinearSystem_H
2#define CLinearSystem_H
3
70#include "SimObject.h"
71
72#include <Eigen/Eigen>
73
74#include <string>
75
76class CLinearSystem : public SimObject
77{
78 public:
79 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
80
82 CLinearSystem(std::string sSimObjectName, ISimObjectCreator* pCreator);
84
86 void OdeFcn(const double dT, const double* const adX, double* const adXDot, const bool bIsMajorTimeStep);
87
89 const double* Output(const double T, const double* const X);
90
91#ifdef FH_VISUALIZATION
93 virtual void RenderInit(Ogre::Root* const ogreRoot, ISimObjectCreator* const creator) { }
94
96 virtual void RenderUpdate(const double T, const double* const X) { }
97#endif
98 protected:
99 static Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> StringToEigenMatrix(const std::string& str);
100
101 int m_StateIndex;
102
104 Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> A;
105
107 Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> B;
108
110 Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> C;
111
113 Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> D;
114
116 ISignalPort* m_Input;
117
118 double* m_Signal;
119};
120
121
122#endif
Definition: CLinearSystem.h:77
EIGEN_MAKE_ALIGNED_OPERATOR_NEW CLinearSystem(std::string sSimObjectName, ISimObjectCreator *pCreator)
Constructor.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > D
The direct feedthrough matrix.
Definition: CLinearSystem.h:113
void OdeFcn(const double dT, const double *const adX, double *const adXDot, const bool bIsMajorTimeStep)
Calculates the state derivatives.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > B
The gain matrix.
Definition: CLinearSystem.h:107
const double * Output(const double T, const double *const X)
The output of the system equation Y=C*x+D*u.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > C
The output matrix.
Definition: CLinearSystem.h:110
ISignalPort * m_Input
Input port.
Definition: CLinearSystem.h:116
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > A
The system matrix.
Definition: CLinearSystem.h:104