ddhello 发表于 2017-6-12 11:29:55

程序理解有些疑惑

抱歉。水平还很菜。
在中断控制里面,通过编码器读取两个车轮的角速度时,程序代码
Encoder_Left=-Read_Encoder(2);
Encoder_Right=Read_Encoder(4);
中的负号怎么理解,后面的注释不太明白。

另外,计算最终电机的PWM用两个值相减:
Moto1=Balance_Pwm-Velocity_Pwm;
Moto2=Balance_Pwm-Velocity_Pwm;
有什么理论依据吗,一个是控制平衡,一个是控制速度的,为什么相减就是最终的了。

最后,在进行速度的PI控制程序中,为什么偏差是:
Encoder_Least =(Encoder_Left+Encoder_Right)-0;

0是目标速度没问题,但小车的速度不应该是(Encoder_Left+Encoder_Right)/2 吗?

希望得到管理员的答复。谢谢!

admin 发表于 2017-6-12 21:19:38

正负是调试得到的,除以2会引入舍去误差,没有必要

ddhello 发表于 2017-6-12 21:56:57

admin 发表于 2017-6-12 21:19
正负是调试得到的,除以2会引入舍去误差,没有必要

正负是调试得到的,不太明白,既然就是基本的采集编码器的数据,一个负的值是什么意思呢,代码注释为:因为两个电机的旋转了180度的,所以对其中一个取反,保证输出极性一致。怎么理解呢
还有就是为什么最后写入到电机的PWM是直接用两个值相减呢
谢谢!

ddhello 发表于 2017-6-14 21:14:37

求解答……

ddhello 发表于 2017-6-15 21:30:55

管理员啊……??

ddhello 发表于 2017-6-18 11:00:39

就这样,说好的答疑就这样?!
页: [1]
查看完整版本: 程序理解有些疑惑