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