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//
54struct 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
124
125 // for future use (e.g. backward pid parameters)
129};
130
131//------------------------------------------------------------------------------
132// class definition
133//------------------------------------------------------------------------------
134//
136{
137 //--- user interface ---------------------------------------------------
138
139 // public member functions
140 public :
141
142 // constructor/destructor
143
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);
153 //; activate controller
154
155 virtual void SetCycleTime(real64 arCycleTime);
156 //; set controller cycle time [sec]
157 virtual void OnGearRatioChanged();
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();
162 //; inform controller about a touched border
163 virtual void BorderRelaxStop();
164 //; inform controller about border relax time has expired
165
166 virtual CINCOObject* GetRegister();
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();
188 //; reset controller values (called whenever the controller is
189 //; switched on)
190 ICACHE virtual void Control();
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
Short comment.
Definition cinosbasecontrol.h:319
Definition cinosmcmodule.h:1900
Definition cinosposcontrol.h:136
real64 GetVff()
Get current feed forward V.
Definition cinosposcontrol.h:172
void SetVff(real64 arVff)
Set current feed forward V.
Definition cinosposcontrol.h:178
Descriptor structure used to configure a controller. It is usually defined in a corresponding xxx....
Definition cinosbasecontrol.h:197
Descriptor structure used to configure a controller. It is usually defined in a corresponding xxx....
Definition cinosposcontrol.h:72
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
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
real64 m_rBff
Feed forward B.
Definition cinosposcontrol.h:119
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
real64 m_rSintMax
Max. allowed max. position error integrator [inc].
Definition cinosposcontrol.h:123
real64 m_rAff
Feed forward A.
Definition cinosposcontrol.h:115
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
real64 m_rVff
Feed forward V.
Definition cinosposcontrol.h:111
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
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
Definition cinosposcontrol.h:56