00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef MSL_MODELMISC_H
00020 #define MSL_MODELMISC_H
00021
00022 #include <string>
00023 using namespace std;
00024
00025
00026 #include "model.h"
00027 #include "vector.h"
00028 #include "matrix.h"
00029
00031 class Model1D: public Model {
00032 public:
00033 double Force;
00034 Model1D(string path);
00035 virtual ~Model1D() {};
00036 virtual MSLVector StateToConfiguration(const MSLVector &x);
00037 virtual MSLVector Integrate(const MSLVector &x, const MSLVector &u, const double &h);
00038 virtual MSLVector StateTransitionEquation(const MSLVector &x, const MSLVector &u);
00039 virtual double Metric(const MSLVector &x1, const MSLVector &x2);
00040 };
00041
00042
00044 class ModelLinear: public Model {
00045 public:
00046 MSLMatrix A;
00047 MSLMatrix B;
00048 ModelLinear(string path);
00049 virtual ~ModelLinear() {};
00050 virtual MSLVector StateToConfiguration(const MSLVector &x);
00051 virtual MSLVector Integrate(const MSLVector &x, const MSLVector &u,
00052 const double &h);
00053 virtual MSLVector StateTransitionEquation(const MSLVector &x,
00054 const MSLVector &u);
00055 };
00056
00057
00058
00060 class ModelND: public Model {
00061 public:
00062 double CorridorWidth;
00063 ModelND(string path);
00064 virtual ~ModelND() {};
00065 virtual MSLVector StateToConfiguration(const MSLVector &x);
00066 virtual MSLVector Integrate(const MSLVector &x, const MSLVector &u, const double &h);
00067 virtual MSLVector StateTransitionEquation(const MSLVector &x, const MSLVector &u);
00068
00069 };
00070
00071
00073 class ModelNintegrator: public Model {
00074 public:
00075 double UBound;
00076 double VBound;
00077 ModelNintegrator(string path);
00078 virtual ~ModelNintegrator() {};
00079 virtual MSLVector StateToConfiguration(const MSLVector &x);
00080 virtual MSLVector Integrate(const MSLVector &x, const MSLVector &u, const double &h);
00081 virtual MSLVector StateTransitionEquation(const MSLVector &x, const MSLVector &u);
00082 };
00083
00084
00085 #endif