我似乎把自己编入了一个角落,遇到了以下问题:我试图通过基于 RS485 的慢速总线连接来控制机器人上的电机。不幸的是,我无法访问电机上的固件,所以我坚持使用当前设置。
最大的问题是我只能控制电机的目标速度。虽然我可以通过内置编码器检索其绝对位置,但电机本身的固件中没有内置定位功能。
第二个问题是总线连接真的很慢,有点尴尬的协议需要 25 毫秒才能完成一个完整的周期——通过速度调整来控制位置是否可行?
我尝试了一种简单的方法,即估计前方 25 毫秒的位置,减去当前位置并除以 25 毫秒来计算下一个所需位置所需的速度。然而,当瞄准一个固定位置时,这在某些速度下会严重振荡,我认为这是由于高循环时间会产生大量超调。
也许 PID 控制器可以提供帮助,但我不确定目标值是多少——到目前为止我使用的每个 PID 都使用一个固定目标。一个完全移动的目标(即位置)很难想象,至少对我来说是这样。
处理这种情况的通常方法是什么?也许结合天真的方法并仅为额外的偏移项添加 PID 控制?还是我需要购买不同的电机?