hysteresis_model
/build/rock-master-18.09-control-hysteresis-model-0.20150522/BoucWenHysteresisModel.hpp
Go to the documentation of this file.
1 /*
2  * =====================================================================================
3  *
4  * Filename: bouc_wen_model.h
5  *
6  * Description: Class definition of bouc wen hysterisis model
7  *
8  * Version: 1.0
9  * Created: 10/16/09 15:37:47
10  * Revision: none
11  * Compiler: gcc
12  *
13  * Author: Ajish Babu (), ajish.babu@dfki.de
14  * Company: DFKI
15  *
16  * =====================================================================================
17  */
18 
19 #ifndef BOUC_WEN_HYSTERESIS_MODEL_H
20 #define BOUC_WEN_HYSTERESIS_MODEL_H
21 
22 #include <math.h>
23 #include "motor_controller/RK4Integrator.hpp"
24 #include "iostream"
25 
26 
28 {
29  class BoucWenModel : public motor_controller::RK4_SIM
30  {
31  public:
32  BoucWenModel(double samp_time = 0.001, int _simulation_per_cycle = 1,
33  double _initial_time = 0.0, double *_initial_state = NULL);
35 
36  double sampling_period;
38 
39  inline void DERIV(const double t, const double *x,
40  const double *u, double *xdot);
41 
42  bool getStress (double currTime, double strain, double& strainVel, double& stress);
43  void reset(double initTime = 0.0) {
44  init_param( (sampling_period/((double)simulation_per_cycle)),
45  initTime, NULL);
46  };
47  void setParameters(double* const p);
48  void setParameters(
49  double _A,
50  double _beta,
51  double _gamma,
52  double _n,
53  double _a,
54  double _ki,
55  double _gearPlay,
56  double _deflectionOffset,
57  double _dampingConstant,
58  double _velocitySmoothFactor);
59 
60  void getParameters(double *p) const;
61  void printParameters() const;
62 
63  private:
64  double A;
65  double beta;
66  double gamma;
67  double n;
68  double a;
69  double ki;
70 
71  double gearPlay;
72  double deflectionOffset;
73  double dampingConstant;
74  double velocitySmoothFactor;
75 
76  double torqueGearPlay;
77  double torque;
78 
79  double prevTime;
80  double prevStrain;
81  double prevStrainVel;
82 
83  bool firstRun;
84  };
85 }
86 #endif
Definition: BoucWenHysteresisModel.hpp:27
void printParameters() const
Definition: BoucWenHysteresisModel.cpp:125
BoucWenModel(double samp_time=0.001, int _simulation_per_cycle=1, double _initial_time=0.0, double *_initial_state=NULL)
Definition: BoucWenHysteresisModel.cpp:23
void setParameters(double *const p)
Definition: BoucWenHysteresisModel.cpp:139
void getParameters(double *p) const
Definition: BoucWenHysteresisModel.cpp:109
Definition: BoucWenHysteresisModel.hpp:29
void DERIV(const double t, const double *x, const double *u, double *xdot)
Definition: BoucWenHysteresisModel.cpp:35
bool getStress(double currTime, double strain, double &strainVel, double &stress)
Definition: BoucWenHysteresisModel.cpp:49
void reset(double initTime=0.0)
Definition: BoucWenHysteresisModel.hpp:43
int simulation_per_cycle
Definition: BoucWenHysteresisModel.hpp:37
void init_param(double _integration_step, double _initial_time, double *_initial_state)
Definition: RK4Integrator.cpp:48
~BoucWenModel()
Definition: BoucWenHysteresisModel.hpp:34
double sampling_period
Definition: BoucWenHysteresisModel.hpp:34