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