#define PI (3.14159265)// 度數表示的角速度*1000#define MDPS (70)// 弧度表示的角速度#define RADPS ((float)MDPS*PI/180000)// 每個查詢周期改變的角度#define RADPT (RADPS/(-100))// 平衡的角度范圍;+-60度(由于角度計算采用一階展開,實際值約為46度)#define ANGLE_RANGE_MAX (60*PI/180)#define ANGLE_RANGE_MIN (-60*PI/180)// 全局變量pid_s sPID; // PID控制參數結構體float radian_filted=0; // 濾波后的弧度accelerometer_s acc; // 加速度結構體,包含3維變量gyroscope_s gyr; // 角速度結構體,包含3維變量int speed=0, distance=0; // 小車移動的速度,距離int tick_flag = 0; // 定時中斷標志int pwm_speed = 0; // 電機pwm控制的偏置值,兩個電機的大小、正負相同,使小車以一定的速度前進int pwm_turn = 0; // 電機pwm控制的差異值,兩個電機的大小相同,正負相反,使小車左、右轉向float angle_balance = 0; // 小車的平衡角度。由于小車重心的偏移,小車的平衡角度不一定是radian_filted為零的時候
標簽:
pid
自平衡小車
上傳時間:
2022-06-01
上傳用戶: