|
|
本人在网络上找的两轮平衡小车代码,小车成功站立了已经 但是深知自己纯属抄袭,没有学到什么,在研究代码中,希望大家帮忙解答。这个小车有速度闭环但是不需要控制小车速度,只要他稳定站着不向一边倒就行
但是在pwm输出那一快很不理解啊,希望大神帮忙解答一下谢谢! 下面是代码,不懂之处在后面有标注,有的地方我自己标注的理解,不知道对不对,有错也请纠正 谢谢帮忙
void PWM_Calculate()
{
float ftmp = 0;
ftmp = (Speed_L + Speed_R) * 0.5; // 采集两个电机脉冲平均值
if( ftmp > 0)
Position_AVG = ftmp +0.5; //为什么分正负还要加减0.5, 0.5这个数值是怎么出来的?
else
Position_AVG = ftmp -0.5;
Position_AVG_Filter = Position_AVG; //
Position_Add += Position_AVG_Filter; //position //这两步在干嘛
Position_Add = constrain(Position_Add, -800, 800);
// Serial.print(Position_AVG_Filter); Serial.print("\t"); Serial.println(Position_Add);
//Serial.print((Angle_Car-2 + K_Base)* KA_P); Serial.print("\t");
pwm = (Angle_Car-5 + K_Base)* KA_P //P //为什么要减5以及加KB
+ Gyro_Car * KA_D //D //前两部好像是运用角速度微分,角加速度比例
+ Position_Add * KP_I //I //
+ Position_AVG_Filter * KP_P; //P //position 这两个又不懂了
pwm_r = pwm
pwm_l = pwm
} |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|