李 銳,孟 婥,郗欣甫,鄭秋桐
(東華大學(xué) 機械工程學(xué)院,上海 201620)
提花控制器是地毯織機中的核心控制部分,其驅(qū)動的步進電動機直接影響織物的質(zhì)量,因此,對步進電動機的運行速度進行研究具有重要意義。步進電動機是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件,具有精度高、運行可靠、無累計誤差等優(yōu)點,被廣泛應(yīng)用于數(shù)字控制系統(tǒng)[1]。步進電動機啟動時脈沖頻率不能高于空載啟動頻率,否則電動機會發(fā)生丟步或堵轉(zhuǎn)。要達到較高的運行頻率,電動機必須有加速過程[2]。常見加減速算法有直線加減速、指數(shù)曲線加減速等,因其均具有柔性沖擊,不適合高速運動[3]。為此,本文提出基 于STM32F407芯片控制平臺的步進電動機S型曲線啟動算法[4],解決步進電動機加減速過程中存在柔性沖擊問題,增強電動機高速運動時的穩(wěn)定性與可靠性[5]。
地毯織機控制系統(tǒng)中由于步進電動機啟動與停止過程存在柔性沖擊[6],使得織物質(zhì)量大大下降;若步進電動機按照S曲線加減速則不存在柔性沖擊,且適合高速運動[7]。
步進電動機作為地毯織機提花控制系統(tǒng)中的主要驅(qū)動部分[8],不僅直接控制提花輪,也可用來模擬主軸系統(tǒng),因此步進電動機轉(zhuǎn)速即為主軸實際轉(zhuǎn)速[9]。圖1為地毯織機提花控制系統(tǒng)步進電動機。其中:“1”為步進電動機,且受控于不同提花控制器[10],步進電動機“2”間接受控于模擬主軸系統(tǒng)的步進電動機“1”[11]。示波器為Scope View上位機軟件,可在該軟件中設(shè)置需要監(jiān)測的變量:包括主軸實際轉(zhuǎn)速,控制系統(tǒng)速度比值,編碼器位置等[12]。
圖1 地毯織機提花控制系統(tǒng)步進電動機
STM32F407ZGT6內(nèi)核是ARM公司設(shè)計的Cortex-M4內(nèi)核,該內(nèi)核采用ARMv7-ME架構(gòu)。芯片內(nèi)核高達168 M,實際可以超頻一點,支持FPU和DSP指令。
STM32F407ZGT6內(nèi)部集成的定時器多達 17個,其中包括10個通用定時器,2個基本定時器,2個高級定時器,1個系統(tǒng)定時器和2個看門狗定時器。定時器最多具有4個獨立通道,可用于輸入捕獲、輸出比較、PWM生成、單脈沖模式輸出。
在程序中,設(shè)置計數(shù)器的時鐘頻率,即設(shè)置分頻系數(shù)psc,可得計數(shù)器的計數(shù)頻率f,其值為時鐘總線頻率除以psc,然后根據(jù)需要產(chǎn)生的PWM波形的周期設(shè)置自動重裝載值pre。pre×f即為產(chǎn)生PWM波形的頻率,其倒數(shù)為周期值。
步進電動機參數(shù)如表1所示。
表1 步進電動機參數(shù)
假設(shè)產(chǎn)生脈沖的定時器的計數(shù)頻率為ft,第1次計數(shù)次數(shù)為C0,則:
δt=C0×tt=C0/ft
(1)
通過給出電動機步距角α,位置θ與角速度w,可得步進電動機轉(zhuǎn)1轉(zhuǎn)需要的脈沖數(shù)spr;以及當(dāng)脈沖數(shù)為n時,各個變量之間的關(guān)系:
α=2π/spr
(2)
θ=nα
(3)
w=θ/δt
(4)
為使步進電動機啟動過程平滑,引入加速度與速度,由式(4)可知,步進電動機的速度坡度、每 2個脈沖之間的時間間隔都需通過計算得到,使用定時器的計數(shù)次數(shù)Cn來離散時間軸,控制步進電動機運動和處理延時。步進電動機運動時間與角速度關(guān)系如圖2所示。
圖2 S曲線的離散化
期望的線性速度坡度是通過定時器的擬合無限接近,通過改變2個脈沖之間的計數(shù)次數(shù)Cn改變δt。計數(shù)值Cn的求解如下:
(5)
(6)
(7)
(8)
(9)
(10)
(11)
由于STM32F407芯片系統(tǒng)的計算能力有限,連續(xù)2次計算開方根很費時,因此,須考慮用多項式展開式(11),以減少運算。式(12)為泰勒公式的一個特例——麥克勞林公式:
(12)
第n個脈沖定時器計數(shù)器值Cn可使用式(12)簡化,見式(13):
(13)
由式(7)、(9)、(10)可知,角加速度與C0、n相關(guān)。如需改變角加速度,需重新計算一個n值。時間tn和n作為角加速度、角速度及步距角的參數(shù),由式(5)、(7)可得:
(14)
(15)
聯(lián)合式(14)和(15)得:
(16)
電動機加速階段程序為:
case ACCEL:
MSD_PULSE_TIM->CCER|=1《12;
//使能輸出
MSD_StepCounter(srd.dir);
step_count++;
srd.accel_count++;
new_step_delay=srd.step_delay-(((2*(long)srd.step_delay)+rest)/(4*srd.accel_count+1));
//保存除不盡的余數(shù)參與下1次的計算 new_step_delay//為余數(shù)
rest=((2*(long)srd.step_delay)+rest)%(4*srd.accel_count+1);
//檢查是否夠應(yīng)該開始減速
if(step_count>=srd.decel_start)
{
srd.accel_count=srd.decel_val;
srd.run_state=DECEL;
}
//檢查是否到達期望的最大速度
else if(new_step_delay<=srd.min_delay)
{
last_accel_delay=new_step_delay;
new_step_delay=srd.min_delay;
rest=0;
srd.run_state=RUN;
}
break;
上述程序運行到加速階段時,new_step_delay和2個參數(shù)為改變計數(shù)次數(shù)Cn值的關(guān)鍵,也是改變加速運行以及整個電動機運行曲線的關(guān)鍵。根據(jù)確定的數(shù)學(xué)關(guān)系,設(shè)定一個參數(shù)rest彌補步進電動機運行中2個脈沖之間的時間延遲。圖3為步進電動機啟動階段的算法程序流程圖。
圖3 步進電動機啟動階段算法程序流程圖
實際過程中,由于硬件傳動機構(gòu)等因素需對主軸的實際速度乘以一個速度比值P(簡稱比值P),比值P為主軸實際速度與設(shè)定速度的比值,其是實時變化的??刂葡到y(tǒng)中與步進電動機相關(guān)參數(shù)如表2 所示。
表2 步進電動機運行參數(shù)
提花控制系統(tǒng)電動機實際轉(zhuǎn)速為:
(17)
送紗量為:
(18)
由式(18)可知在簇絨地毯提花控制系統(tǒng)中,針密h、絨高H、主軸設(shè)定速度v2等參數(shù)設(shè)定不變情況下,改變速度比值P,可直接改變送紗量S。
以編碼器值變化時刻為時間起點,以55 ms為時間長度,依次確定t1、t2值,計算出送紗量與時間關(guān)系,如表3所示。
表3 送紗量與時間的關(guān)系
上位機軟件Scope View中設(shè)置好要觀察的變量:主軸實際轉(zhuǎn)速、速度比值以及編碼器位置后,導(dǎo)出數(shù)據(jù),利用Matlab軟件分析數(shù)據(jù)。
當(dāng)編碼器動作、主軸實際轉(zhuǎn)速呈現(xiàn)S型坡度快速上升,編碼器的位置呈周期性變化時,主軸實際速度基本保持不變,停止階段,主軸實際速度呈S型快速減小。圖4為編碼器動作時,主軸實際速度與編碼器位置的關(guān)系曲線。
圖4 編碼器與主軸實際轉(zhuǎn)速的關(guān)系
圖5為編碼器與比值P的關(guān)系。編碼器動作時,速度比值P也呈S型曲線快速增長,編碼器位置周期性變化時,比值基本保持不變,步進電動機停止階段,比值也快速減小。類比圖4可知,比值P的變化規(guī)律與主軸實際速度一致。
圖5 編碼器與比值的關(guān)系
圖6為編碼器、主軸實際速度與比值的關(guān)系??梢钥闯?,比值P的值始終低于主軸的實際速度,該結(jié)果與表2吻合。
圖6 編碼器、主軸實際速度及比值的關(guān)系
由圖4、5、6可知,速度比值P與主軸實際速度v1同步變化,且由表2可知P值等于v1/v2,結(jié)合式(18)可知,送紗量S為速度比值P與時間積分,即主軸實際轉(zhuǎn)速v1與送紗量S同步變化。因此送紗量直接反映步進電動機運行情況。
為保持送紗量穩(wěn)定,分析Scope View導(dǎo)出的數(shù)據(jù),改變程序中控制器計數(shù)頻率ft與計數(shù)次數(shù)Cn,即改變單位時間內(nèi)脈沖數(shù)量n,主軸實際速度v1隨即被改變,比值P也同步變化,將得出的比值P實時發(fā)送給地毯織機提花控制系統(tǒng),即可改變送紗量S。
采用4.1節(jié)中送紗量計算方法,可得電動機啟動、穩(wěn)定運行、停止階段送紗量S與時間的關(guān)系。圖7 為電動機啟動、穩(wěn)定運行、停止階段送紗量與時間的關(guān)系。
圖7 電動機啟動、穩(wěn)定運行、停止階段送紗量與時間的關(guān)系
由圖7可知,步進電動機加速過程與減速過程均符合S曲線規(guī)律,脈沖頻率間切換平滑,電動機穩(wěn)定,且控制系統(tǒng)根據(jù)實際送紗量要求,在設(shè)定好主軸轉(zhuǎn)速v2不變情況下,主軸實際速度v1與設(shè)定速度比值P不斷增大。
①根據(jù)步進電動機S曲線啟動要求,理論推導(dǎo),可得定時器計數(shù)次數(shù)Cn離散時間軸,將結(jié)果寫入程序;下載進控制器,使其輸出相應(yīng)脈沖頻率控制步進電動機;步進電動機實際轉(zhuǎn)速即主軸實際轉(zhuǎn)速v1,v1與設(shè)定速度v2比值,即速度比值P,得出Cn與P的關(guān)系。
②由Cn、v1以及P的關(guān)系,得出修改Cn將得到的速度比值P在上位機實時發(fā)送給地毯織機提花控制系統(tǒng),即可得理想送紗量S,實現(xiàn)步進電動機S曲線啟動。