国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

步進電機S型加減速算法改善研究

2022-01-18 03:02劉錦杭
機械工程與自動化 2021年6期
關(guān)鍵詞:狀態(tài)機分量加速度

劉錦杭

(惠州城市職業(yè)學院 機電學院,廣東 惠州 516025)

0 引言

步進電機的加減速控制一直是影響電機運行的重要因素,突變的加減速會導致電機失步,造成位置與精度誤差,因此必須有合理的加減速控制來保證電機能夠平穩(wěn)順暢地運行。電機的運行是一個“加速-恒速-減速-停止”的過程,在此過程中,當控制系統(tǒng)極限啟動頻率大于電機所需運行速度時,電機可以直接啟動;當控制系統(tǒng)通過停止發(fā)送驅(qū)動脈沖或讓使能離線時電機停機。若在電機啟動時,直接以正常運行速度啟動,容易導致電機失步或無法啟動。為了避免此情況,電機啟動后需要有一個均勻加速的過程來慢慢達到要求的運行速度。另一方面,由于慣性的存在,電機停止容易沖過設(shè)定的目標位置,造成位置偏離,正常的電機停止應(yīng)該使啟動速度等于或略高于減速過程結(jié)束時的速度,經(jīng)低速運行若干步后停止。為保證步進電機運行的穩(wěn)定、平滑,本文從電機的加減速控制算法入手,通過改善S型加減速算法來實現(xiàn)電機的穩(wěn)定運行,并通過MCU控制器對運行過程進行仿真,以驗證改善后的S型加減速算法的可行性。

1 電機加減速控制方法分析

目前對電機加減速的控制主要有T型加減速算法和S型加減速算法,如圖1、圖2所示。圖2中,c為加加速度,是一常數(shù);0~t1時間段為加加速階段,速度由起始速度增加到中間速度v1,加速度a逐步增加;t1~t2時間段為減加速階段,速度由v1上升到運行速度vt,此時間段內(nèi)加速度a減小到零,加加速度為負值;t2~t3時間段為均速運行階段;t3~t4、t4~t5分別為加減速階段和減減速階段,與加速曲線對稱,兩時間段內(nèi)加速度a為負值。對比兩種控制方式在啟動瞬間、加速結(jié)束、開始減速、減速完成四個節(jié)點的情況,T型加減速算法在加減速過程中角加速度突變不連續(xù),導致角速度ω不能平滑過渡,而S型加減速算法在加減速階段與勻速階段都是連續(xù)的,且加速度的變化率是可控的,這有利于電機控制性能的提高。但是相對來說,T型加減速算法容易實現(xiàn),而S型加減速法算法比較復雜。

圖1 T型加減速算法曲線

圖2 S型加減速算法曲線

2 S型加減速算法改善

基于對兩種算法的分析,S型加減速算法有利于提高步進電機的運動穩(wěn)定性,避免機器運動時造成的柔性沖擊,本文對S型加減速算法進行研究。S型曲線來源于Sigmoid函數(shù),是一個在生物學中常見的S型函數(shù),其定義為:

(1)

曲線方程(1)將橫坐標的任一實數(shù)映射在(0,1],如圖3所示,曲線平滑,能夠引入作為電機的加減速曲線。

圖3 Sigmoid函數(shù)曲線

由圖3曲線可見,式(1)的曲線方程在x軸上有負值,因此不能直接用于步進電機的加減速控制,對方程(1)進行拉伸和平移,以適應(yīng)電機加減速曲線的實際需要,變換后方程如下:

(2)

其中:A、B分別為y方向平移和拉伸分量;a、b分別為x方向平移和拉伸分量。

對比式(2)與式(1),y方向進行A分量的平移和B分量的拉伸,A、B分量可用于控制電機速度或頻率的取值范圍;x軸方向進行a分量平移與b分量拉伸,a分量與b分量用于控制電機速度或頻率變化率。變換后的曲線依然是理論上的曲線,需要對曲線進行離散化使其能夠適用于電機的加減速控制。離散即把曲線離散成各個頻率段,在程序中保存時間點和與其對應(yīng)的頻率,并形成表格,在系統(tǒng)運行時根據(jù)已有表格中的頻率值依次進行加載生成實際的脈沖曲線,使脈沖曲線與理論曲線相擬合,加速階段的曲線離散后如圖4所示。圖4中,t1為中間速度(拐點速度)時刻,即電機在此時間前為加加速階段,在此之后為減加速階段;t2為電機加速完成進入均速運行時刻;t′為離散實現(xiàn)過程中將加速時間平均分成若干個固定長度的時間段。由于頻率與速度之間只相差一個脈沖當量并且成正比關(guān)系,因此曲線算法也適用于速度。

圖4 加速階段的曲線離散

離散化后,加速過程曲線方程為:

F=Fmin+(Fmax-Fmin)/(1+e-f(i-m)/m).

(3)

其中:F為加速曲線當前頻率;Fmin為加速曲線起始頻率;Fmax為加速曲線目標頻率;i為循環(huán)計算索引,從0開始到選取的加減速點總數(shù);f為曲線的斜率,f越大曲線越陡峭;m為1/2加減速點總數(shù)。

對應(yīng)式(2),離散后相當于A分量=Fmin,B分量=Fmax-Fmin,a分量=f/m,b分量=f。

變量f取值的大小決定著S曲線壓縮的程度,理想的S曲線f取值為4~6。設(shè)電機起始速度=20 r/min,電機最大速度=200 r/min,設(shè)f=4、f=5、f=6,求得三個f對應(yīng)的速度曲線,如圖5所示。

圖5 三個f對應(yīng)的速度曲線

從圖5可以看出,在三個曲線中,遵循f越大曲線相對越陡峭,f越小曲線相對平穩(wěn),越接近勻加速的軌跡。由此可知,控制f的取值可以使得步進電機加減速時速度平滑地過渡。S型加減速算法原理設(shè)計曲線核心代碼如下:

void CalculateSModelAccelLine(u16 usArrPerd[], float usLinePoint,float fMaxFreq,float fMinFreq,float fAccelRatio)

{

int i;

float freqTmp;

float deno;

float melo;

float delt=fMaxFreq-fMinFreq;

for(i=0;i

{

melo=fAccelRatio*(i-usLinePoint/2)/(usLinePoint/2);deno=1.0/(1+expf(-melo));

freqTmp=delt*deno+fMinFreq;

usArrPerd[i]=(u16)(1000000.0/freqTmp);

}

}

3 單片機控制步進電機速度實驗

3.1 脈沖頻率輸出

應(yīng)用STM32F103VCT6單片機來控制步進電機,以STM32F103VCT6的高級定時器產(chǎn)生PWM信號驅(qū)動電機,步進電機所需的驅(qū)動芯片選用東芝公司的TB6560,并將驅(qū)動電路設(shè)計到控制器內(nèi)部??刂葡到y(tǒng)以定時中斷加PWM的方式發(fā)送指定脈沖數(shù),控制PWM輸出引腳的電平即可控制脈沖數(shù)。PWM的輸出由定時中斷捕捉,一個脈沖需經(jīng)兩次定時器中斷才能產(chǎn)生,由此可得到ARR(定時器裝載值),計算方法如下:

(4)

其中:fclk為定時器的時鐘頻率;fTarget為脈沖目標頻率。

3.2 實驗仿真

設(shè)定步進電機起始頻率Fmin為1 000 Hz,最大頻率Fmax為10 000 Hz,加加速度c為100 000脈沖/S3,采用Keil軟件通過調(diào)試微控制器讀取內(nèi)存值,由內(nèi)存值繪制頻率與時間關(guān)系曲線,如圖6所示。由圖6可見,頻率與時間關(guān)系曲線符合S型加減速特性,在加減速過程中能夠平滑過渡。

圖6 頻率與時間關(guān)系曲線

3.3 步進電機控制狀態(tài)機

在實際應(yīng)用中對步進電機的控制一般有停機、加速、運行和減速4種狀態(tài),這4種狀態(tài)對應(yīng)了S型加減速曲線的整個過程,步進電機控制狀態(tài)機如圖7所示。

圖7 步進電機控制狀態(tài)機

根據(jù)電機控制的4個狀態(tài)設(shè)計出控制代碼,步進電機狀態(tài)機核心代碼如下:

void MotorControl(void)

{

switch (g_stStepMotor.m_ucMotorState)

{

case MOTOR_STOP://停機狀態(tài)處理

break;

case MOTOR_ACCEL://加速狀態(tài)處理

if (usAccelPulseNum

{ //加速點數(shù)未到,繼續(xù)設(shè)定PWM頻率

TIM3->ARR=(ucSpeedAccel[usAccelPulseNum]>>1);

usAccelPulseNum++;//

}

if(usAccelPulseNum>=ACCEL_POINT_NUM)

{ //達到設(shè)定的加速點數(shù),將電機狀態(tài)切換至運行狀態(tài)

TIM3->ARR=(ucSpeedAccel[ACCEL_POINT_NUM-1]>>1);

g_stStepMotor.m_ucMotorState=MOTOR_RUN;

}

break;

case MOTOR_RUN://運行狀態(tài)處理

break;

case MOTOR_DECEL://減速狀態(tài)處理

if (usDecelPulseNum>0)

{ //減速點數(shù)未到,繼續(xù)設(shè)定PWM頻率

TIM3->ARR=(ucSpeedDecel[usDecelPulseNum]>>1);

usDecelPulseNum--;

}

if (usDecelPulseNum<=0)

{ //達到設(shè)定的減速點數(shù),停機處理

usDecelPulseNum=0;

usAccelPulseNum=0;//清零相關(guān)數(shù)據(jù)

MOTOR_SET_TQ2;

MOTOR_SET_TQ1;//釋放電機力矩

MOTOR_DISABLE;//步進電機脫機控制

TIM_Cmd(TIM3,DISABLE);//失能PWM定時器

g_stStepMotor.m_ucMotorState=MOTOR_STOP;//切換至停機

}

break;

}

}

4 結(jié)語

研究了將S曲線引入步進電機的加減速控制中,通過對S曲線進行轉(zhuǎn)換與離散,得出了可運用于實際電機加減速控制的方程,針對離散后的方程給出了S型加減速核心代碼,并進行了仿真實驗。仿真實驗結(jié)果表明:步進電機按照改善后的S型曲線法進行加減速,整個運行過程較為平穩(wěn),沒有產(chǎn)生沖擊和跳變。

猜你喜歡
狀態(tài)機分量加速度
“鱉”不住了!從26元/斤飆至38元/斤,2022年甲魚能否再跑出“加速度”?
帽子的分量
一物千斤
基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
天際加速度
創(chuàng)新,動能轉(zhuǎn)換的“加速度”
死亡加速度
論《哈姆雷特》中良心的分量
雙口RAM讀寫正確性自動測試的有限狀態(tài)機控制器設(shè)計方法
基于瞬時對稱分量法的三相四線制D-STATCOM控制研究