行業新聞

          步進電機控制算法—梯形加減速運動算法

          2024-10-12 00:00:04

          什么是梯形加減速

          如下圖所示,假設該裝置使用步進電機實現物體X的移動,系統要求物體X從A點出發,到B點停止,移動的時間越短越好且系統穩定。

          使用梯形加減速

          OA段為滑塊的加速部分、AB則是勻速部分,BC則是減速部分。因其圖像呈現梯形,所以我們把這種運動變化稱之為梯形加減速

          使用加減速的理由

          為什么要使用加減速呢?步進電機有一個很重要的技術參數:空載啟動頻率,也就是在沒有負載的情況下能夠正常啟動的最大脈沖頻率,如果脈沖頻率大于該值,步進電機則不能夠正常啟動,發生丟步或者堵轉的情況;或者也可以理解為由于步進脈沖變化過快,轉子由于慣性的作用跟不上電信號的變化。所以要使用加減速來解決啟動頻率低的問題,在啟動時使用較低的脈沖頻率,然后逐漸的加快頻率

          梯形加減速算法特點

          梯形加減速一共分為三個階段,OA 加速部分、AB 勻速部分 和 BC 減速部分。在 OA 加速過程中,由低于步進電機的啟動頻率開始啟動(模型中由 0 啟動),以固定的加速度增加速度到目標值;在 AB 勻速過程中,以最大速度勻速運動;在 BC 減速部分中,以加速度不變的速度遞減到 0;這種算法是一種在加速過程和減速過程中加速度不變的勻變速控制算法,由于速度變化的曲線有折點,所以在啟動、停止、勻速段中很容易產生沖擊和振動

          算法基礎

          上圖為步進電機與時間的示意圖,其中:

           表示第1個脈沖發送時刻 表示第2個脈沖發送時刻 表示第3個脈沖發送時刻 表示定時器的計數周期 表示定時器從  ~  時刻的定時器計數值 表示定時器從  ~   時刻的定時器計數值 和  表示兩個脈沖之間的間隔時間步進電機的轉動需要控制器發送脈沖,如果控制器以恒定速度發送脈沖,那么步進電機就以恒定速度轉動;如果控制器以加速度發送脈沖,那么步進電機就以加速度運動;所以只要改變脈沖的頻率就可以改變速度的變化也就是說調整脈沖之間的時間間隔就可以改變速度以 stm32 的高級定時器 8 為例,使用定時器PWM輸出模式給控制器發送脈沖。高級定時器 8 的時鐘頻率為 168MHZ, 如果將分頻值設置為 5,那么定時器的時鐘頻率則為:  , 相當于計數 28M 次正好為一秒,周期與頻率為倒數關系,所以分頻值為 5 的定時器 8 的計數周期   ;  和  的值即為ARR寄存器的值,所以我們在固定的定時器頻率下,只需要改變ARR的值,即可改變電機的速度。

          梯形算法要求的變量

          我們通過控制定時器輸出PWM波形來描繪上述梯形,至少需要知道以下變量:在加速階段加速初始PWM頻率,即我們要求的ARR寄存器的值 加速度accel加速階段總的脈沖數勻速階段:勻速所用的脈沖數減速階段:減速初始頻率(也是勻速運動的速度)減速度decel減速所用的脈沖一般情況下,電機加速度accel、減速度decel和總步數(即總脈沖數)是給定的,我們需要通過這3個變量推導出剩余的變量。知道以上變量,再推導出每步的定時器頻率,結合脈沖數即可繪制完整的梯形圖。

          加減速算法推導過程

          1. 電機轉過的角度   的計算:

          電機轉過的角度  等于脈沖數乘以步距角:其中:  表示驅動電機的脈沖數,  表示電機的步距角2. 電機由速度0勻加速運動,轉過  所用的時間  :由勻加速直線運動公式:可推導出,電機轉過的角度  :其中:  為轉過的角度, ω 為初角速度,  為加角速度,  為所用的時間。當初角速度 ω 時,電機轉過  所用的時間  :

          3.求相鄰脈沖時間間隔  :

          其中:  表示定時器計數器相鄰兩脈沖間的計數值,  表示定時器的時鐘周期,定時器頻率的倒數假設相鄰兩脈沖間轉過的角度分別用  和  表示,所用時間用  和  表示,則  根據公式(4)也可以表示為:上式中  表示轉過  角度時,所用的脈沖數上式中  和  根據公式(1)可得出:  ,   ,則帶入最終可得到公式(6)上式中  表示轉過  角度時,所用的脈沖數此處計算時,讓  ,而不是  是因為  是兩脈沖之間的時間間隔,  的脈沖數  最小也應該等于1,所以在  為正整數的情況下,采用  更符合實際情況。

          4、 求第1個周期內計數器的值

          第1個周期內計數器的值,即電機勻加速運動時的初始值,加速初始PWM頻率。

          根據公式(5)和(6)可求得:
          由上得出:用公式(7)求第1個周期內計數器的值求第  個周期內計數器的值:由上得出:其中根據公式(7)  可得出:由于計算的過程中需要進行開方運算,微控制器的計算能力有限,因此在此使用泰勒公式進行泰勒級數逐級逼近的方法。在這里主要是用的是泰勒公式的特例——麥克勞林公式;具體如下:為構造與麥克勞林相同的公式將   ,并且與公式 (9) 做比值處理,并進行化簡計算,具體如下圖所示:公式推導一共分為以下 5 個步驟推導:A.   與  利用公式(8)求比值;B. 分子分母提出  和  , 并將其約掉;C. 整理化簡根號下的內容;D. 將麥克勞林公式帶入;E. 忽略無窮下余項,化簡求得;將其化簡為關于  的式子如下:化簡后得出:通過公式(7)和公式(9),即可推到出每個周期內的計時器的值,及每步的頻率。經過化簡的公式(9)有一定的誤差,其得出的結果比公式(8)快。所以我們對公式(7)乘以0.676加以校正。通過公式(9)和公式(10)我們可以求出:加速初始PWM頻率,即我們要求的ARR寄存器的值 電機加速階段每一步的PWM頻率,即ARR寄存器的值C知道寄存器ARR的值后,我們就可以控制電機加速了,但是我們不知道電機應該加速到什么時候,即電機加速多少步以后開始勻速運行,多少步以后開始減速運行,接下來我們繼續推導以上變量。5、 推導脈沖數和加速度成反比在電機由速度零勻加速或勻減速到速度零的運動情況下,由  和  可推出:由速度  帶入上式可得:轉化一下后:公式(11)中, ω 為最大速度,  為步距角,由此看出在最大速度和步距角不變的情況下,脈沖與加速度成反比。

          6、在一個電機勻加速到一定速度,再勻減速的情況下,如下圖:

          從0加速再減速到0的速度示意圖由公式(11)可得: () 兩邊同時加  得:化簡得出:

          7、求加減速步數

          對于步進電機加減速階段來說,由于已經設定好了步進電機加速度、減速度、最大速度和總運行步數,所以說一共分為2種情況:(1)電機能夠加速到給定的最大速度,勻速運行一段時間后,再減速到0電機加速到給定speed再減速的示意圖由  得到加速階段的步數:A. 由公式 (13) 得到: () B. 由公式 (12) 得出負號是因為減速過程,帶入公式(9)時用。帶入公式(9)時,  應為decel_step,其后每一步加1,直到停止。(2)由于運動距離過短,電機無法加速到最大速度即開始減速:機無法加速到給定speed就減速的示加速階段的步數由公式(15)計算,減速步數如下:負號是因為減速過程,帶入公式(9)時用。通過以上推導,我們求出了梯形算法要求的所有變量。算法優化由于算法在計算過程中涉及到一些浮點型運算,大量的浮點型運算會使得效率大大降低,為了使得計算速度得到更好的優化,我們做如下優化:1、對于加減速的每一步來說,都需要重新計算下一步的時間,計算的過程中可能會出現除不盡的項式,為了更有利的加減速,可以采用加速向上取整,減速向下取整的原則來做運算,也可以采用余數累計的方法,在這里使用的是將余數累計的方法來提高間隔時間的精度和準確性。 () 余數公式:()上式中,mod就是取余數的意思,即C語言中的%。

          2、令:速度擴大100倍

          加速度擴大100倍

          擴大后的速度和加速度還用原來的字母表示

          則 
           加速度擴大100倍以后,變為:令:則:公式(14)中,速度和加速度擴大100后,變化為:其他公式的加速度和速度相應放大100倍后,公式不發生變化ref:[1]正點原子[2]http://t.csdn.cn/P8g4H

          往期精彩

          儀表系統的嵌入式控制器的開發研究

          步進電機調速,S曲線調速算法你會嗎?

          PID算法整定在3D打印機擠出機上的應用

          控制算法之PID算法 | 從入門到理解到應用 (一發入魂)

          嵌入式軟件設計之美-嵌入式軟件架構設計中的狀態模式

          Copyright ? 2021-2022 精北傳動機械(上海)有限公司 All Rights Reserved. 滬公網安備31012002005970 滬ICP備20024360號-1