INOS
cinosposcontrol.h
Go to the documentation of this file.
1 //******************************************************************************
27 //******************************************************************************
28 
29 #ifndef INC_CINOSPOSCONTROL_H
30 #define INC_CINOSPOSCONTROL_H
31 
32 //------------------------------------------------------------------------------
33 // defines
34 //------------------------------------------------------------------------------
35 //
36 #define DF_INOS_POS_CONTROL_DBT "INOS-POS-CONTROL" // db table name
37 #define DF_INOS_POS_CONTROL_NAME "CINOSPosControl" // control name
38 //
39 //------------------------------------------------------------------------------
40 // includes
41 //------------------------------------------------------------------------------
42 //
43 // system
44 #include <cinosbasecontrol.h>
45 //
46 // C++
47 //
48 // project
49 //
50 //------------------------------------------------------------------------------
51 //--- structures ---------------------------------------------------------------
52 //------------------------------------------------------------------------------
53 //
54 struct SPidPos
55  //; structure of PID parameters
56 {
57  real64 m_rKp;
58  real64 m_rKi;
59  real64 m_rKd;
60  real64 m_rAff;
61  real64 m_rTi;
62  real64 m_rTd;
63  real64 m_rVff;
64  real64 m_rBff;
65 };
66 
72 {
77  real64 m_rKpHalt;
78 
83  real64 m_rTiHalt;
84 
89  real64 m_rTdHalt;
90 
95  real64 m_rKpRun;
96 
101  real64 m_rTiRun;
102 
107  real64 m_rTdRun;
108 
111  real64 m_rVff;
112 
115  real64 m_rAff;
116 
119  real64 m_rBff;
120 
123  real64 m_rSintMax;
124 
125  // for future use (e.g. backward pid parameters)
127  real64 m_rSINOSPosControl_Internal0[8];
129 };
130 
131 //------------------------------------------------------------------------------
132 // class definition
133 //------------------------------------------------------------------------------
134 //
136 {
137  //--- user interface ---------------------------------------------------
138 
139  // public member functions
140  public :
141 
142  // constructor/destructor
143 
144  explicit CINOSPosControl(SINOSPosControl* apDesc);
145  //; constructor
146  virtual ~CINOSPosControl();
147  //; destructor
148 
149  // activate / inactivate
150 
151  virtual void Activate(bool abCheckPos = true, bool abSimulatePos = false,
152  bool abSimulateOut = false, bool abSimulateAct = false) override;
153  //; activate controller
154 
155  virtual void SetCycleTime(real64 arCycleTime) override;
156  //; set controller cycle time [sec]
157  virtual void OnGearRatioChanged() override;
158  //; called whenever the axis gear ratio has changed, it gives the controller
159  //; the chance to recalculate internal values if necessary
160 
161  virtual void BorderRelaxStart() override;
162  //; inform controller about a touched border
163  virtual void BorderRelaxStop() override;
164  //; inform controller about border relax time has expired
165 
166  virtual CINCOObject* GetRegister() override;
167  //; do inco registration and return pointer to it
168 
172  real64 GetVff()
173  { return m_rVff; };
174 
178  void SetVff(real64 arVff)
179  { m_rVff = arVff; };
180 
181  //--- internals --------------------------------------------------------
182 
183  friend class CINCOPosCtrPar;
184 
185  // protected member functions
186  protected:
187  virtual void Reset() override;
188  //; reset controller values (called whenever the controller is
189  //; switched on)
190  ICACHE virtual void Control() override;
191  //; do a control cycle
192  void CalcVff();
193 
194  // protected members
195  protected:
196  uint8 m_uActSet;
197  //; actual PID set (0-halt, 1-run)
198 
199  // controller parameters (0-halt, 1-run)
200  SPidPos m_Pid[2];
201  //; pid parameters
202  real64 m_rSintMax;
203  //; max. allowed position integrator
204  real64 m_rVff;
205  //; feed forward V
206 
207  // error values
208 
209  real64 m_rSerrInc;
210  //; actual S error [inc]
211  real64 m_rSerrIncMax = 0x7fffffff;
212  //; max. allowed S error [inc]
213  real64 m_rSintInc;
214  //; actual S error integral [inc]
215  real64 m_rVerrInc;
216  //; actual V error [inc/t]
217 
218  // allow dynamic object handling (new/delete)
219  DECLARE_DYNAMIC_CACHE(CINOSPosControl);
220 };
221 
222 
223 //------------------------------------------------------------------------------
224 // end of file
225 //------------------------------------------------------------------------------
226 
227 #endif // INC_CINOSPOSCONTROL_H
CINOSBaseControl
Definition: cinosbasecontrol.h:318
SINOSPosControl::m_rKpRun
real64 m_rKpRun
Kp [*] parameter of the PID controller used in run mode. The PID controller is only active if DF_INOS...
Definition: cinosposcontrol.h:95
SINOSPosControl::m_rTdHalt
real64 m_rTdHalt
Td [ms] parameter of the PID controller used in halt mode. The PID controller is only active if DF_IN...
Definition: cinosposcontrol.h:89
SINOSPosControl
Descriptor structure used to configure a controller. It is usually defined in a corresponding xxx....
Definition: cinosposcontrol.h:71
CINOSPosControl::GetVff
real64 GetVff()
Get current feed forward V.
Definition: cinosposcontrol.h:172
SINOSPosControl::m_rTiHalt
real64 m_rTiHalt
Ti [ms] parameter of the PID controller used in halt mode. The PID controller is only active if DF_IN...
Definition: cinosposcontrol.h:83
SINOSPosControl::m_rTdRun
real64 m_rTdRun
Td [ms] parameter of the PID controller used in run mode. The PID controller is only active if DF_INO...
Definition: cinosposcontrol.h:107
CINOSPosControl::SetVff
void SetVff(real64 arVff)
Set current feed forward V.
Definition: cinosposcontrol.h:178
SINOSPosControl::m_rAff
real64 m_rAff
Feed forward A.
Definition: cinosposcontrol.h:115
SINOSPosControl::m_rTiRun
real64 m_rTiRun
Ti [ms] parameter of the PID controller used in run mode. The PID controller is only active if DF_INO...
Definition: cinosposcontrol.h:101
SINOSPosControl::m_rSintMax
real64 m_rSintMax
Max. allowed max. position error integrator [inc].
Definition: cinosposcontrol.h:123
SPidPos
Definition: cinosposcontrol.h:54
cinosbasecontrol.h
Short comment.
SINOSPosControl::m_rVff
real64 m_rVff
Feed forward V.
Definition: cinosposcontrol.h:111
SINOSPosControl::m_rBff
real64 m_rBff
Feed forward B.
Definition: cinosposcontrol.h:119
CINOSPosControl
Definition: cinosposcontrol.h:135
SINOSBaseControl
Descriptor structure used to configure a controller. It is usually defined in a corresponding xxx....
Definition: cinosbasecontrol.h:196
SINOSPosControl::m_rKpHalt
real64 m_rKpHalt
Kp [*] parameter of the PID controller used in halt mode. The PID controller is only active if DF_INO...
Definition: cinosposcontrol.h:77