步进电机的位置控制
位置控制,我的理解就是输入一个目标的位置,然后电机通过一个加减速的过程后到达目标位置.
这个加减速的方法,目前了解的有'梯形'和'S形'.
梯形:加速度固定,但是在启动,到达最大速度和停止这几个地方会出现加速度的'剧变',但是可以完全预知电机的速度和位置,并且这个计算也不会太复杂.
S形:或者说是正弦波形,加速度在此法中不是固定的,而是按照正弦波的形状来改变.好处当然是加速度变化缓慢(加速度的微分没有突变).坏处当然就是变得复杂了,而且在此法中要预测电机的速度和位置就变得相对复杂很多.
所以,加减速当然就选择梯形法了.
怎么实现从当前位置(起点)按照梯形法走到目标位置(终点)呢?如下图所示:
S是起点;E是终点;那么M就是(E-S)/2,也就是中点.
在确定加速度的情况下,线段a,b的斜率就可以知道.然后假设电机从点S开始加速,越过点M(点c)后开始减速,最后刚好到达点E.因为加速和减速的加速度都是一样的,所以SM,ME两个线段的长度是一样,所以只要取得SE的中点M就可以保持目标位置的正确(理论上是这样)
按照上述方法就可以实现加减速,并到达目标位置附近.
为什么说是到达目标位置附近呢?
现在还没测试程序对于位置控制的准确性,所以一下只是基于猜测:
首先,在加减速过程中,可能会因为精度问题而使得实际的速度曲线有明显的'阶梯',而这个阶梯可能(或不可能)影响到逼近目标位置.
其次,也是因为精度的问题,按照设定的加速度可能无法最大限度地逼近目标位置,而需要进行额外的操作(以很低的速度走过一个小角度)才能够最大限度地逼近目标位置.
最大的可能就是上面第一个情况出现,而需要用额外操作来最大限度地逼近目标角度.
赞 (0)