DEFINITIONS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
-#define ID_ACTUATOR "$Id$"
+#define ID_ACTUATOR "$Id: FGActuator.h,v 1.13 2012/04/08 15:04:41 jberndt Exp $"
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FORWARD DECLARATIONS
<actuator name="name">
<input> {[-]property} </input>
<lag> number </lag>
- <rate_limit> number <rate_limit>
+ <rate_limit> number </rate_limit>
<bias> number </bias>
<deadband_width> number </deadband_width>
<hysteresis_width> number </hysteresis_width>
Example:
@code
-<actuator name="fcs/gimbal_pitch_position">
+<actuator name="fcs/gimbal_pitch_position_radians">
<input> fcs/gimbal_pitch_command </input>
<lag> 60 </lag>
- <rate_limit> 0.085 <rate_limit> <!-- 5 degrees/sec -->
+ <rate_limit> 0.085 </rate_limit> <!-- 0.085 radians/sec -->
<bias> 0.002 </bias>
<deadband_width> 0.002 </deadband_width>
<hysteresis_width> 0.05 </hysteresis_width>
- <clipto> <!-- +/- 10 degrees -->
+ <clipto> <!-- +/- 0.17 radians -->
<min> -0.17 </min>
<max> 0.17 </max>
</clipto>
@endcode
@author Jon S. Berndt
-@version $Revision$
+@version $Revision: 1.13 $
*/
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
/** This function fails the actuator to zero. The motion to zero
will flow through the lag, hysteresis, and rate limiting
functions if those are activated. */
- inline void SetFailZero(bool set) {fail_zero = set;}
- inline void SetFailHardover(bool set) {fail_hardover = set;}
- inline void SetFailStuck(bool set) {fail_stuck = set;}
-
- inline bool GetFailZero(void) const {return fail_zero;}
- inline bool GetFailHardover(void) const {return fail_hardover;}
- inline bool GetFailStuck(void) const {return fail_stuck;}
+ void SetFailZero(bool set) {fail_zero = set;}
+ void SetFailHardover(bool set) {fail_hardover = set;}
+ void SetFailStuck(bool set) {fail_stuck = set;}
+
+ bool GetFailZero(void) const {return fail_zero;}
+ bool GetFailHardover(void) const {return fail_hardover;}
+ bool GetFailStuck(void) const {return fail_stuck;}
+ bool IsSaturated(void) const {return saturated;}
private:
double span;
bool fail_zero;
bool fail_hardover;
bool fail_stuck;
+ bool initialized;
+ bool saturated;
void Hysteresis(void);
void Lag(void);