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