天天看點

步進電機的位置控制

  位置控制,我的了解就是輸入一個目标的位置,然後電機通過一個加減速的過程後到達目标位置.

  這個加減速的方法,目前了解的有\'梯形\'和\'S形\'.

  梯形:加速度固定,但是在啟動,到達最大速度和停止這幾個地方會出現加速度的\'劇變\',但是可以完全預知電機的速度和位置,并且這個計算也不會太複雜.

  S形:或者說是正弦波形,加速度在此法中不是固定的,而是按照正弦波的形狀來改變.好處當然是加速度變化緩慢(加速度的微分沒有突變).壞處當然就是變得複雜了,而且在此法中要預測電機的速度和位置就變得相對複雜很多.

  是以,加減速當然就選擇梯形法了.

  怎麼實作從目前位置(起點)按照梯形法走到目标位置(終點)呢?如下圖所示:

步進電機的位置控制

  S是起點;E是終點;那麼M就是(E-S)/2,也就是中點.

  在确定加速度的情況下,線段a,b的斜率就可以知道.然後假設電機從點S開始加速,越過點M(點c)後開始減速,最後剛好到達點E.因為加速和減速的加速度都是一樣的,是以SM,ME兩個線段的長度是一樣,是以隻要取得SE的中點M就可以保持目标位置的正确(理論上是這樣)

  按照上述方法就可以實作加減速,并到達目标位置附近.

  為什麼說是到達目标位置附近呢?

  現在還沒測試程式對于位置控制的準确性,是以一下隻是基于猜測:

  首先,在加減速過程中,可能會因為精度問題而使得實際的速度曲線有明顯的\'階梯\',而這個階梯可能(或不可能)影響到逼近目标位置.

  其次,也是因為精度的問題,按照設定的加速度可能無法最大限度地逼近目标位置,而需要進行額外的操作(以很低的速度走過一個小角度)才能夠最大限度地逼近目标位置.

  最大的可能就是上面第一個情況出現,而需要用額外操作來最大限度地逼近目标角度.

步進電機的位置控制