mirror of
https://github.com/avem-labs/Avem.git
synced 2023-09-01 15:18:49 +08:00
38 lines
695 B
C
38 lines
695 B
C
#ifndef PID_H
|
|
#define PID_H
|
|
|
|
extern float g_Yaw, g_Pitch, g_Roll; //eular
|
|
|
|
#define OUTTER_LOOP_KP 0 //0.257 * 0.83 0.255
|
|
#define OUTTER_LOOP_KI 0
|
|
#define OUTTER_LOOP_KD 0
|
|
|
|
#define INNER_LOOP_KP 0.03f
|
|
#define INNER_LOOP_KI 0
|
|
#define INNER_LOOP_KD 0
|
|
|
|
#define SUM_ERRO_MAX 900
|
|
#define SUM_ERRO_MIN -900
|
|
|
|
#define PID_IMAX 30
|
|
#define PID_IMIN -30
|
|
|
|
typedef struct {
|
|
float InnerLast;
|
|
float OutterLast;
|
|
float *Feedback;
|
|
float *Gyro;
|
|
float Error;
|
|
float p;
|
|
float i;
|
|
float d;
|
|
short output;
|
|
__IO uint16_t *Channel1;
|
|
__IO uint16_t *Channel2;
|
|
} pid_st, *pid_pst;
|
|
|
|
void pid_SingleAxis(pid_pst package, float setPoint);
|
|
void pid(float setPoint, float d);
|
|
|
|
#endif
|