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