有不少網(wǎng)友感嘆高鐵技術(shù)之穩(wěn),一杯水放在窗戶上面都不會晃動.要達到這個‘穩(wěn)’,就要在電機啟動停止時,有一個加減速.電機啟動時,速度需要逐漸提高,停止時,速度逐漸減小,這就是步進電機的加減速過程。單片機給步進驅(qū)動一個脈沖,電機轉(zhuǎn)動一個步距角,單片機給脈沖越快,步進電機單位時間內(nèi),轉(zhuǎn)動的角度也就越大.即脈沖頻率正比于電機轉(zhuǎn)速.另一方面,速度的變化對應(yīng)的物理量是加速度,高中物理可以知道,一個加速過程一般涉及:初始速度,加速度,加速時間這三個量.對應(yīng)到電機轉(zhuǎn)動:起始轉(zhuǎn)速(rpm),最大速度(rpm),加速時間(min),轉(zhuǎn)速對應(yīng)單片機定時器的頻率 pulse/ms(單片機定時器1毫秒中斷次數(shù)).
工控行業(yè)電機加減速一般有T型加速,S型加速.負(fù)載慣量比較輕的情況就可以使用T型曲線,負(fù)載慣量比較重的情況一般使用S型曲線,S型曲線光滑,速度不突變.
單片機速度控制原理
單片機通過調(diào)節(jié)頻率控制電機速度,頻率是單片機定時器的定時間隔決定的,只需要在定時器中斷處理程序里邊翻轉(zhuǎn)脈沖輸出端口即可.單片機的RAM和CPU不是很快,定時器的間隔使用查表的方法來獲取,效率比較高.
控制流程
T型曲線
T型曲線的加速減階段是線性加減速的,整個運動[加速,勻速,減速]速度變化看起來像一個等腰梯形.
加速階段就是一個一次線性函數(shù),斜率不變[加速度不變],公式如下:
單片機生成加速數(shù)組代碼:
//生成T形加速數(shù)組
//Vmin:起始速度(pulse/s)
//Vmax:最大速度,即勻速速度(pulse/s)
//AccTime:加速時間(ms)
//pBuffer:數(shù)組緩存區(qū)
//返回值:數(shù)組長度
int GenTTable(uint Vmin,uint Vmax,int AccTime,uint* pBuffer)
{
//計算加速度
uint a = (Vmax-Vmin)/AccTime;
uint v = Vmin;
uint t = 0;
int index = 0;
while(v<=Vmax)
{
v = a*t+Vmin;
pBuffer[index] = f/v; //f為定時器的工作頻率
t += 1000000/v; //v的速度為pulse/s,一個脈沖的時間為:1/v s=1000000/v us
index++;
}
return index;
}
S形加減速
從T形加速曲線的圖形,可以看出加速階段轉(zhuǎn)向勻速階段時加速度是突然變?yōu)榱愕模@對大慣量的設(shè)備晃動比較大,要想設(shè)備晃動比較小,就需要加速過渡到勻速階段是漸進光滑的,加速度不突變,進入到勻速階段時加速度剛好為0.數(shù)學(xué)模型的S形曲線就是光滑,加速度不突變的。數(shù)學(xué)方程可以參考**邏輯斯蒂**曲線,下圖是公式推導(dǎo):
單片機S形曲線加速數(shù)組生成:
上面的公式推導(dǎo)有一個結(jié)論:
程序代碼就是根據(jù)這個公式來生成數(shù)組數(shù)據(jù)
//生成S形加速數(shù)組
//Vmin:起始速度(pulse/s)
//Vmax:最大速度,即勻速速度(pulse/s)
//AccTime:加速時間(s)
//pBuffer:數(shù)組緩存區(qū)
//返回值:數(shù)組長度
int GenSTable(uint Vmin,uint Vmax,int AccTime,uint* pBuffer)
{
double tSum = 0;
double T= AccTime*f; //f為定時器工作頻率
uint C0 = (uint)(f/Vmin);
uint Cmax = (uint)(f/Vmax);
uint index = 0;
while (tSum < T)
{
pBuffer[index]= (uint)(Cmax+pow(C0-Cmax,(T-tSum)/T));
tSum += pBuffer[index];
index++;
}
return index;
}
上面生成的加速數(shù)據(jù)就是定時器的間隔,可以把這邊這份數(shù)據(jù)寫到Flash的扇區(qū),這樣不用電機每次運動都來生成一次,減少單片機的運算量.也可使用上位機改變電機的起始速度,勻速速度,加速時間來調(diào)節(jié)電機加速性能,不用重新編譯單片機代碼,使用起來很方便.
-
單片機
+關(guān)注
關(guān)注
6063文章
44924瀏覽量
647024 -
電機
+關(guān)注
關(guān)注
143文章
9254瀏覽量
148389 -
脈沖頻率
+關(guān)注
關(guān)注
0文章
12瀏覽量
8056
發(fā)布評論請先 登錄
STM32:F407步進電機S形加減速算法的實現(xiàn)相關(guān)資料分享
啟動停止頻繁步進電機加減速算法目的是什么
步進電機驅(qū)動算法——S形加減速算法原理 精選資料下載
F407步進電機梯形加減速算法是如何實現(xiàn)的?
步進電機梯形勻加速算法是什么
梯形加減速算法實現(xiàn)
步進電機的基本參數(shù)及梯形加減速算法

步進電機驅(qū)動算法之梯形加減速算法

評論