有不少網(wǎng)友感嘆高鐵技術(shù)之穩(wěn),一杯水放在窗戶上面都不會晃動.要達(dá)到這個‘穩(wěn)’,就要在電機(jī)啟動停止時,有一個加減速.電機(jī)啟動時,速度需要逐漸提高,停止時,速度逐漸減小,這就是步進(jìn)電機(jī)的加減速過程。單片機(jī)給步進(jìn)驅(qū)動一個脈沖,電機(jī)轉(zhuǎn)動一個步距角,單片機(jī)給脈沖越快,步進(jìn)電機(jī)單位時間內(nèi),轉(zhuǎn)動的角度也就越大.即脈沖頻率正比于電機(jī)轉(zhuǎn)速.另一方面,速度的變化對應(yīng)的物理量是加速度,高中物理可以知道,一個加速過程一般涉及:初始速度,加速度,加速時間這三個量.對應(yīng)到電機(jī)轉(zhuǎn)動:起始轉(zhuǎn)速(rpm),最大速度(rpm),加速時間(min),轉(zhuǎn)速對應(yīng)單片機(jī)定時器的頻率 pulse/ms(單片機(jī)定時器1毫秒中斷次數(shù)).
工控行業(yè)電機(jī)加減速一般有T型加速,S型加速.負(fù)載慣量比較輕的情況就可以使用T型曲線,負(fù)載慣量比較重的情況一般使用S型曲線,S型曲線光滑,速度不突變.
單片機(jī)速度控制原理
單片機(jī)通過調(diào)節(jié)頻率控制電機(jī)速度,頻率是單片機(jī)定時器的定時間隔決定的,只需要在定時器中斷處理程序里邊翻轉(zhuǎn)脈沖輸出端口即可.單片機(jī)的RAM和CPU不是很快,定時器的間隔使用查表的方法來獲取,效率比較高.
控制流程
T型曲線
T型曲線的加速減階段是線性加減速的,整個運(yùn)動[加速,勻速,減速]速度變化看起來像一個等腰梯形.
加速階段就是一個一次線性函數(shù),斜率不變[加速度不變],公式如下:
單片機(jī)生成加速數(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è)備晃動比較小,就需要加速過渡到勻速階段是漸進(jìn)光滑的,加速度不突變,進(jìn)入到勻速階段時加速度剛好為0.數(shù)學(xué)模型的S形曲線就是光滑,加速度不突變的。數(shù)學(xué)方程可以參考**邏輯斯蒂**曲線,下圖是公式推導(dǎo):
單片機(jī)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ū),這樣不用電機(jī)每次運(yùn)動都來生成一次,減少單片機(jī)的運(yùn)算量.也可使用上位機(jī)改變電機(jī)的起始速度,勻速速度,加速時間來調(diào)節(jié)電機(jī)加速性能,不用重新編譯單片機(jī)代碼,使用起來很方便.
-
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634642 -
電機(jī)
+關(guān)注
關(guān)注
142文章
9001瀏覽量
145337 -
脈沖頻率
+關(guān)注
關(guān)注
0文章
12瀏覽量
7967
發(fā)布評論請先 登錄
相關(guān)推薦
評論