aboutsummaryrefslogtreecommitdiff
path: root/src/modules/systemlib/pid/pid.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/systemlib/pid/pid.h')
-rw-r--r--src/modules/systemlib/pid/pid.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/modules/systemlib/pid/pid.h b/src/modules/systemlib/pid/pid.h
index 64d668867..f89c36d75 100644
--- a/src/modules/systemlib/pid/pid.h
+++ b/src/modules/systemlib/pid/pid.h
@@ -59,16 +59,18 @@ typedef struct {
float intmax;
float sp;
float integral;
- float error_previous;
+ float error_previous_filtered;
+ float control_previous;
float last_output;
float limit;
uint8_t mode;
+ float diff_filter_factor;
uint8_t count;
uint8_t saturated;
} PID_t;
-__EXPORT void pid_init(PID_t *pid, float kp, float ki, float kd, float intmax, float limit, uint8_t mode);
-__EXPORT int pid_set_parameters(PID_t *pid, float kp, float ki, float kd, float intmax, float limit);
+__EXPORT void pid_init(PID_t *pid, float kp, float ki, float kd, float intmax, float limit, float diff_filter_factor, uint8_t mode);
+__EXPORT int pid_set_parameters(PID_t *pid, float kp, float ki, float kd, float intmax, float limit, float diff_filter_factor);
//void pid_set(PID_t *pid, float sp);
__EXPORT float pid_calculate(PID_t *pid, float sp, float val, float val_dot, float dt);