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