步进电机加减速——梯形算法
1.聲明
1、這是我第一篇博客文章,如有錯誤請各位大佬指點(diǎn),謝謝。
2、該篇文章是適合了解了步進(jìn)電機(jī)基礎(chǔ)原理的學(xué)習(xí)者閱讀。
2.目的
使用要求與場合: 1、步進(jìn)電機(jī)
2、速度變化較大
3、啟動停止頻繁
步進(jìn)電機(jī)加減速算法目的:對于上述2、3的場合,步進(jìn)電機(jī)容易出現(xiàn)丟步和過沖甚至無法啟動的現(xiàn)象,所以加入該算法來解決這一問題。
3. 算法實(shí)現(xiàn)
3.1加減速期望曲線
如圖1所示,該曲線是期望的加減速曲線。橫坐標(biāo)t為時間,縱坐標(biāo)ω為速度。以下三個參數(shù)有開發(fā)者設(shè)定。
accel:加速度
decel:減速度
step:總行程
圖1
3.2速度與脈沖周期有何關(guān)系
電機(jī)的調(diào)速與脈沖周期是有關(guān)系的,并且是正比例關(guān)系,脈沖周期越長,步進(jìn)電機(jī)轉(zhuǎn)速越慢。
在梯形加速過程,速度變化是直線的,將該曲線截取加速過程放大并加入脈沖,如圖2所示。
圖2
圖中t0到t1這段時間為第一個脈沖的時間,t1到t2為第二個脈沖的時間
C0為第一個脈沖的定時器計(jì)數(shù)值
tt為定時器的計(jì)數(shù)周期,也就是頻率的倒數(shù)
距離=速度*時間
每給一個脈沖,步進(jìn)電機(jī)行走一步,這時候步進(jìn)電機(jī)旋轉(zhuǎn)的角度稱為步距角,用α表示,單位為弧度。
所以圖2中每個長方形的面積就是一個步距角,所以每個長方形面積相等。
3.3位置與加速度的關(guān)系
根據(jù)牛頓定律位移S=V0t+1/2at2,由于步進(jìn)電機(jī)啟動初始速度為0,所以公式變成S=1/2at2。在這里用ω’表示加速度。所以公式變成S=1/2ω’t2。由于已知步距角和脈沖數(shù)(n),所以S=αn。
從而得到1/2ω’t2=αn
3.4脈沖周期與脈沖數(shù)和加速度的關(guān)系
由于t表示從t0到tn的時間,由于t0為0,所以tn=t,通過轉(zhuǎn)換,tn與加速度的關(guān)系如下:
tn=√(2*n *α/ω’)---
所以Cntt=t(n+1)-tn=(√(n+1)-√n)*√(2α/ω’)
得到Cn=1/tt *(√(n+1)-√n)*√(2α/ω’)
由上述的推導(dǎo)得到Cn與加速度和脈沖數(shù)和加速度的關(guān)系,因此可以求得在加速過程或者減速過程脈沖的周期。
3.5何時減速
得到了加減速度和脈沖周期的關(guān)系后還需要考慮電機(jī)什么時候開始減速。
3.5.1斜率與脈沖數(shù)的關(guān)系
如圖3所示
圖3
n1:加速需要的脈沖數(shù)
n2:減速需要的脈沖數(shù)
ω’1:加速度
ω’2:減速度
斜率(K)=y/x,所以y=K*x,在圖3中,由于該三角形高相等,所以n1 * ω’1=n2 * ω’2
為了方便后面計(jì)算,等式左右兩邊加上n1 * ω’2,得到n1 * ω’1+n1 * ω’2=n2 * ω’2+n1 * ω’2
最終得到n1=(n1+n2)*ω’2/(ω’1+ω’2)
3.5.2實(shí)際曲線另外一種情況
在實(shí)際的運(yùn)動中,梯形曲線并不一定是圖1那樣,還有另外一種情況,如圖4所示。
圖4
該圖顯示實(shí)際最大速度未達(dá)到設(shè)定最大速度。
accle_lim:實(shí)際加速運(yùn)動的脈沖數(shù)
max_s_lim:達(dá)到設(shè)定最大速度需要的脈沖數(shù)
根據(jù)公式n1=(n1+n2)*ω’2/(ω’1+ω’2)可以得到accle_lim=(step *decle)/(accel+decel)
根據(jù)公式n *ω’=ω’n/2 *α可以得到max_s_lim=n=speed *speed/(2 *α *accel)
從數(shù)學(xué)角度將模型的兩種情況分為了accle_lim>max_s_lim的和accle_lim<max_s_lim這兩種情況,而開始減速時間decel_val也會變得不同
1.accle_lim>max_s_lim
decel_val=(max_s_lim *accel)/decel
2.accle_lim<max_s_lim
decel_val=step-accle_lim
4.結(jié)論
通過上面的分析與計(jì)算得出了兩個關(guān)系
1、加減速度和脈沖周期的關(guān)系
2、減速開始時刻
總結(jié)
以上是生活随笔為你收集整理的步进电机加减速——梯形算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬取豆瓣书籍_Python爬
- 下一篇: Codeforces edu 88(A~