宋建國, 韓鵬杰, 盧 意
(北京工業(yè)大學(xué) 信息學(xué)部,北京 100000)
隨著生產(chǎn)自動化程度的提高,流水線生產(chǎn)作業(yè)也越來越普遍,驅(qū)動其運動的電機在預(yù)設(shè)時間到達預(yù)設(shè)位置且運行平滑準確是流水線作業(yè)的核心,即定時間運行定距離,其主要要求是力矩足夠,運行時間和距離精確且一般行程較短。步進電機以其控制簡單,價格低廉,無累計誤差精度較高等優(yōu)勢廣泛用于電機控制生產(chǎn)領(lǐng)域。但步進電機自身存在精度誤差,電機起動時可能產(chǎn)生低頻共振,起動停止速度突變時容易造成失步越步等,這些均會使系統(tǒng)最終運動效果不理想,使估計預(yù)設(shè)運動時間和預(yù)設(shè)運動距離不匹配,因此開環(huán)下合理規(guī)劃電機運動過程使其運動過程平穩(wěn)是能夠精確控制電機的先決條件,通常設(shè)計加減速曲線將電機起動運行停止過程進行平滑控制,常用梯形、S型、指數(shù)型3種變速曲線進行變速控制,保證電機平穩(wěn)運行?,F(xiàn)階段對于變速曲線研究應(yīng)用主要側(cè)重于平穩(wěn)性,對于運動過程的時間距離準確性沒有過多研究,但在實際應(yīng)用中往往需要同時考慮運動平穩(wěn)性和時間距離準確性。因此,本文針對于要求步進電機固定距離精確起停的情況進行系統(tǒng)設(shè)計,通過分析對比3種加速曲線[1],選用S型加速曲線符合本設(shè)計要求,對比分析多種S曲線函數(shù),提出了新型余弦S曲線,對于S變速階段實際運動距離難以計算的問題提出了解決方案,結(jié)合本設(shè)計要求,搭建控制模型進行仿真分析,搭建硬件測試平臺實踐驗證,驗證了控制算法的合理性,通過簡單的參數(shù)設(shè)置,本設(shè)計可以滿足要求步進電機固定距離精確起停的工況。
步進電機以脈沖頻率為控制信號,一個脈沖驅(qū)動電機行進一個步距角,理想條件下電機轉(zhuǎn)動速度與驅(qū)動脈沖頻率成正比,因此脈沖頻率等效于電機速度,運行脈沖數(shù)量等效于運行距離。輸出轉(zhuǎn)矩隨頻率上升而下降,構(gòu)建步進電機動力學(xué)模型[2]為
(1)
式中:θ為運行角度;J為轉(zhuǎn)動慣量和負載慣量之和;B為機械阻尼、電磁阻尼等系數(shù)之和;K為系統(tǒng)彈性系數(shù);T為電機生成總力矩;Ta、TL為電機加速轉(zhuǎn)矩、負載轉(zhuǎn)矩;Tf為電機摩擦和其他無關(guān)阻力矩。
角度轉(zhuǎn)速加速度之間關(guān)系為
(2)
式中:ω為運行轉(zhuǎn)速;ε為運行加速度。
忽略系統(tǒng)彈性系數(shù)項聯(lián)立式(1)和式(2)進行微分方程求解,得到轉(zhuǎn)矩加速度關(guān)系:
(3)
式中:T0為電機初始轉(zhuǎn)矩。
由于電機起動階段慣性扭矩較大,加速轉(zhuǎn)矩較小[3],隨著驅(qū)動頻率上升兩相混合式步進電機繞組電感形成的反向電動勢逐漸增大,渦流損耗逐漸增加,電機輸出力矩變小。根據(jù)矩頻圖像與式(3)結(jié)合分析得到近似頻率加速度圖像。
圖1 加速頻率特性曲線
電機負載力矩與其他阻力矩一定的情況下,由圖1可知起動階段電機提供的最大加速度很小,隨著頻率上升電機輸出的加速力矩,即能提供的電機升速的最大加速度逐漸下降,圖像與矩頻曲線相似,加速曲線加速度變化應(yīng)符合上述曲線規(guī)律,實時曲線加速度應(yīng)不超過電機提供的最大加速度,才能在提高加速效率的同時保證電機運行的平穩(wěn)準確性。圖1顯示了3種加速曲線運行加速度情況,對比分析可知S曲線最符合電機加速度頻率曲線規(guī)律,起動階段加速度逐漸上升,避免起動階段加速力矩過小造成失步,減速時S曲線速度平滑到0避免由于急停慣性過大導(dǎo)致對系統(tǒng)沖擊過大和越步。對于本設(shè)計要求的精確起停,選用S型加速曲線最為合適。
S曲線常選用三角、Sigmoid和Bezier函數(shù)進行擬合,函數(shù)原型如表1所示。
表1 3種S曲線函數(shù)原型
3種函數(shù)生成的S曲線圖像相似,區(qū)別在于運算量、準確度和復(fù)雜度。Sigmoid函數(shù)由于其函數(shù)特性,容易出現(xiàn)加速不完全的情況,導(dǎo)致最終速度小于預(yù)設(shè)速度;Bezier曲線函數(shù)不同情況下變形較繁瑣,移植性差;三角函數(shù)結(jié)構(gòu)簡單,運算量一般且變速結(jié)果準確。因此最終選用三角函數(shù)設(shè)計S曲線。上述函數(shù)運用到步進電機變速過程均需要進行變換,轉(zhuǎn)化成脈沖數(shù)/頻率關(guān)系方便程序編寫和移植。
對三角余弦函數(shù)進行變換處理,建立電機脈沖頻率和時間的關(guān)系式:
(4)
式中:fa為實時加速脈沖頻率;fmax為運行最高頻率;ts為加速時間。
式(5)、式(6)分別為勻速和減速段頻率與時間關(guān)系式:
fc=fmax,ts≤t≤tc+ts
(5)
tc+ts≤t≤tt
(6)
式中:tt為總時間;tc為勻速時間。
以式(4)~式(6)規(guī)劃全路徑過程為S加速—勻速—S減速,加減速時間相等皆為ts。對脈沖頻率積分處理得到運行時間與脈沖數(shù)量(運行距離)n的關(guān)系式:
(7)
聯(lián)立式(4)~式(7)得到運動最大頻率:
(8)
總時間:
tt=2ts+tc
(9)
根據(jù)上節(jié)推導(dǎo)在MATLAB/Simulink中進行模型搭建,考慮到實際運行情況應(yīng)對曲線離散化處理即進行等時間分割,對于步進電機控制驅(qū)動芯片接受的脈沖頻率即控制速度,在不同離散時間段通過S曲線計算脈沖頻率,變換分割時間根據(jù)芯片計算能力和電機特性選取,本設(shè)計選用1 ms作為分割時間。運動開始電機以0速起動進行S曲線加速運動,運動到預(yù)設(shè)速度進行勻速運動,最后通過S曲線減速到0,其中減速段可經(jīng)過加速段翻轉(zhuǎn)平移得到,在合理規(guī)劃下整個運動過程能夠平滑起停。
圖2 離散規(guī)劃運動過程
搭建S曲線仿真模型:
圖3 曲線仿真模型
模型設(shè)置入口參數(shù)設(shè)定運動距離、時間和勻速時間,在實際情況下每個分割時間段脈沖數(shù)只能為整數(shù)且時間段內(nèi)選用非連續(xù)頻率積分最終導(dǎo)致脈沖數(shù)與實際要求不等,造成運動位置不準確,必須設(shè)計補償模塊二次規(guī)劃使最終運動距離等于預(yù)設(shè)距離。曲線規(guī)劃補償部分是整個控制部分核心,通過M語言在函數(shù)模塊中實現(xiàn),通過控制最高脈沖頻率大小實現(xiàn)粗調(diào)、削減運行時間實現(xiàn)微調(diào)。補償模塊以2.1節(jié)推導(dǎo)式(4)~式(6)為基礎(chǔ),建立脈沖數(shù)量與脈沖頻率的關(guān)系式:
nx(t)=fx(t)·TS,x=a、c、d
(10)
式中:TS為分割時間,na、nc、nd分別為加速勻速減速段脈沖數(shù)。
計算每個時間段運行脈沖數(shù)量n,考慮實際情況,時間段內(nèi)運行脈沖數(shù)必須為整,以加速段舉例:
na=[fa(i·TS)·TS](0≤i≤ia)
(11)
其中,ia為加速段分割數(shù)目:
(12)
(13)
(14)
式中:id、ic分別為減速和勻速段分割數(shù)目;iall為總分割數(shù)目。
計算總運行脈沖數(shù)量N:
(15)
預(yù)設(shè)條件代入初次計算N,小于預(yù)設(shè)距離所需脈沖數(shù),開始進行補償運算,頻率粗調(diào)階段根據(jù)式(8)補償預(yù)設(shè)脈沖數(shù)量改變最高脈沖頻率,抬高每階段發(fā)送脈沖數(shù)使N逼近預(yù)設(shè)脈沖數(shù)。圖4對不同補償過程曲線實時發(fā)送脈沖數(shù)進行比較,可看到粗調(diào)后比規(guī)劃前最高脈沖數(shù)圖像上移,微調(diào)后圖像左移。圖5顯示粗調(diào)后實際距離與預(yù)設(shè)距離仍存在微小誤差,但確定了新的脈沖數(shù),在預(yù)設(shè)距離臨界值有上下2種補償脈沖數(shù),代表多次補償?shù)那耙浑A段和后一階段,選擇接近臨界值的情況時間微調(diào),改變勻速時間段或末段使實際距離等于預(yù)設(shè)距離,得到新的各段運動時間。在上述運動距離和各段運動時間條件下代入運行模塊按照上式計算各段脈沖頻率最終實現(xiàn)距離時間精確運行。
圖4 不同規(guī)劃段實時發(fā)送脈沖數(shù)對比
圖5 粗調(diào)、微調(diào)后位移曲線對比
利用搭建模型進行仿真,仿真結(jié)果數(shù)據(jù)如表2所示。
表2 仿真結(jié)果數(shù)據(jù)表
仿真條件下結(jié)果顯示運行時間和距離精度很高,且無勻速情況下時間誤差更小。
同一運動中,給定時間tt中勻速和變速段時間的占比直接影響最終運動效果和適用范圍,對總時間tt的分配問題進行分析討論,勻速和變速段時間分配邏輯關(guān)系如圖6所示。
圖6 時間分配邏輯關(guān)系圖
由以上可知ts的變化影響電機的運行平穩(wěn)性和帶載能力,最高頻率太大會削減高速段運動力矩。在行進距離較短的應(yīng)用場合,電機運行轉(zhuǎn)速遠小于最高轉(zhuǎn)速且通過S曲線加速能到達的實際轉(zhuǎn)速大于電機額定轉(zhuǎn)速,在負載力矩有保證不失步前提下可以考慮去除勻速段,在電機負載大的情況下應(yīng)減少變速時間。通過預(yù)設(shè)穩(wěn)定工作頻率fs(不大于fs的情況下保證力矩足夠)結(jié)合式(8)輔助確定ts的最大值,能夠保證運行效果。
為了驗證上述理論推導(dǎo)的正確性和合理性,預(yù)設(shè)0.4 s運行6 400脈沖,利用2.2節(jié)搭建模型對無勻速和0.2 s勻速2種情況進行仿真對比,圖7顯示出無勻速較有勻速情況最高頻率更大,力矩更小,圖8通過加速度、位移曲線對比顯示出無勻速條件下最高加速度更小,位移運動更加平滑。
圖7 不同勻速時間仿真頻率對比
圖8 不同勻速時間仿真加速度/位移對比
為了驗證控制算法的合理性,選擇加裝角度傳感器的步進電機對設(shè)計的算法進行測試驗證,選用STM32F042F6P6作為主控芯片,AS5600磁編碼器采集角度信息,A3979驅(qū)動芯片驅(qū)動電機,主控芯片通過CAN實現(xiàn)與Labveiw搭建的上位機通信,測試電機選擇兩相混合式步進電機。
表3 電機參數(shù)表
以3.1選型器件搭建硬件測試平臺。測試平臺框圖和硬件實物圖分別如圖9、圖10所示。
圖9 測試平臺框圖
圖10 硬件實物圖
為了便于程序編寫,將推導(dǎo)的時間/頻率關(guān)系轉(zhuǎn)換成脈沖數(shù)/頻率關(guān)系,生成的脈沖數(shù)/頻率關(guān)系固化在ROM中,運行時通過查表法讀取裝載值[4],減少CPU運行時間,提升響應(yīng)速度。
驅(qū)動芯片16細分下驅(qū)動選型電機,電機穩(wěn)定工作頻率為19 200 Hz,運行1周需3 200個脈沖驅(qū)動,預(yù)設(shè)0.4 s運行1周,上述值代入式(8)計算出穩(wěn)定最大變速時間為0.23 s,設(shè)定變速時間0.2 s。脈沖數(shù)/頻率生成部分數(shù)據(jù)如表4所示。
表4 脈沖數(shù)/頻率數(shù)據(jù)表
由表4知最大頻率11 413 Hz遠小于穩(wěn)定工作頻率,從脈沖頻率變化規(guī)律可以看出曲線平滑啟停且基本對稱。以上述數(shù)據(jù)進行路徑規(guī)劃,采集輸出脈沖頻率變化波形,如圖11所示。
圖11 脈沖頻率輸出波形
每5 ms讀取1次AS5600磁編碼器角度寄存器,其轉(zhuǎn)動1周輸出范圍為0~4 095,將角度信息經(jīng)過求導(dǎo)變換得到速度,經(jīng)過累加變換得到位置,經(jīng)CAN通信將位置信息發(fā)送到上位機,得到實時位置曲線,如圖12所示。
圖12 步進電機位置曲線
多次改變初始設(shè)定參數(shù),選用不同運動策略試驗,對運動效果進行分析比較,如表5所示。
表5 運動效果對比
對上述結(jié)果分析,證明采用余弦S曲線進行路徑優(yōu)化,較優(yōu)化前運行穩(wěn)定性和準確度均有明顯提升,可以實現(xiàn)電機在預(yù)設(shè)時間和距離里準確起停,符合設(shè)計要求。
本文通過理論分析、仿真模擬、硬件驗證設(shè)計余弦S變速曲線控制算法,不僅可以應(yīng)用于常見的優(yōu)化步進電機起停運動,而且針對于較少研究的步進電機曲線運動距離時間控制策略,設(shè)計控制算法能夠?qū)r間距離準確控制,只需設(shè)定運動距離、運動時間、變速時間即可規(guī)劃整個運動過程,最終實現(xiàn)在滿足運動距離情況下運動時間誤差小于1.5%,滿足大部分應(yīng)用場景。且曲線在不同負載情況可以靈活判定調(diào)節(jié),參數(shù)設(shè)定簡單移植方便,有廣泛的應(yīng)用場景和較高的實用價值,已在全自動號碼機項目中實現(xiàn)應(yīng)用。