李軍科, 戴 明, 吳建軍
(1.江蘇省無線傳感系統(tǒng)應(yīng)用工程技術(shù)開發(fā)中心,江蘇 無錫214153,2. 無錫商業(yè)職業(yè)技術(shù)學(xué)院 電子系,江蘇 無錫214153)
在工業(yè)自動化控制中,經(jīng)常會有關(guān)于單軸運動控制的問題.目前解決此類問題的方案一般有用工控機(jī)、單片機(jī)或?qū)S玫膯屋S控制器做控制單元。工控機(jī)與專用單軸控制器成本較高。
單片機(jī)速度較慢,無法實現(xiàn)復(fù)雜算法控制[1-2]。數(shù)字信號控制器DSC 則集成傳統(tǒng)數(shù)字信號處理器DSP和控制器的優(yōu)點,目前已成為運動控制領(lǐng)域的核心控制單元,其突出特點就是系統(tǒng)軟件化,在硬件不做任何改動情況下,通過改變軟件就可以實現(xiàn)各種不同的控制功能[3]。
基于省大學(xué)生機(jī)械創(chuàng)新大賽實踐,在相關(guān)專業(yè)教師與學(xué)生創(chuàng)新團(tuán)隊的共同參與下,共同完成了DSC 平臺(TMS320F2806)的單軸運動控制教學(xué)平臺設(shè)計。上位機(jī)、驅(qū)動器、控制器、運動單元模塊化設(shè)計使得單軸控制器平臺在課程教學(xué)與工業(yè)應(yīng)用之間得到很好的平衡。有助于創(chuàng)新性人才培養(yǎng)和校企合作項目的開發(fā)。
驅(qū)動系統(tǒng)主控制芯片選擇TMS320F2806 處理器,這是一顆基于TMS320C2xx 內(nèi)核的定點DSP,是集成度較高、性能較強的運動控制系列器件。F2806 相比F2812 提供了增強型外設(shè)模塊ePWM、eCAP 和SCI[3]。內(nèi)核與I/O 電壓為1.8 V 與3.3 V,分別由+5 V 經(jīng)ASM117-1.8、AMS1117-3.3 提供。系統(tǒng)外部輸入+24 V 直流電源由LM2574 組成的BUCK 開關(guān)電路變換為+5 V 電壓提供TB6560 及相關(guān)隔離芯片。外部20 MHz 無源時鐘頻率經(jīng)內(nèi)部鎖相環(huán)倍頻后可達(dá)100 MHz。片內(nèi)32 kB 的Flash 提供用戶存儲指令與數(shù)據(jù)。EPWM1/2/3 定義為TB6560 步進(jìn)電機(jī)驅(qū)動芯片的脈沖、方向與使能信號。ECAP 則用來對限位傳感器信號捕獲。SCI 口采用RS232 串行通訊協(xié)議與上位機(jī)MSCOMM 控件接口。光藕隔離與邏輯變換電路主要完成F2806、TB6560 及其他器件之間電平轉(zhuǎn)換[5-6]。
圖1 基于F2806 與TB6560 芯片的單軸運動控制教學(xué)平臺
TB6560 是東芝公司推出的低功耗、高集成兩相混合式步進(jìn)電機(jī)驅(qū)動芯片,內(nèi)部集成雙全橋MOSFET 驅(qū)動;最高耐壓40 V,單相輸出最大電流3.5 A(峰值)?;诤懔鲾夭?qū)動原理,采用正弦波作為細(xì)分驅(qū)動的電流波形,具有整步、1/2、1/8、1/16 細(xì)分方式,能改善步進(jìn)電機(jī)驅(qū)動低頻噪聲偏大,高速丟步的缺點。
運動單元采用主流高科技傳動器件—滾珠絲桿和直線導(dǎo)軌。滾珠絲杠包括螺桿、螺帽、循環(huán)系統(tǒng)及鋼珠,其功能是將旋轉(zhuǎn)運動轉(zhuǎn)換為線性運動,具有高精度、高速度、可逆性等特點;直線導(dǎo)軌是一種滾動導(dǎo)引,由鋼珠在滑塊與滑軌之間作無限滾動循環(huán),負(fù)載平臺能沿著滑軌輕易地以高精度做線性運動,與傳統(tǒng)的滑動導(dǎo)軌相比較,因滾動導(dǎo)軌的摩擦系數(shù)可降至原來的1/50,由于起動的摩擦力大大減少,相對的無效運動較少,故能輕易地做到μm 級進(jìn)給和定位。
考慮性價比與教學(xué)要求,本系統(tǒng)設(shè)計了基于東芝公司TB6560 芯片的步進(jìn)電機(jī)驅(qū)動電路,如圖2 所示。F2806 主控制器EPWM 模塊送出的脈沖、方向與使能信號由74HC245 作3.3 ~5 V 的電平轉(zhuǎn)換。光耦隔離電路設(shè)計采用TLP2531 和PC817 芯片。TLP2531 是一款用于兩通道的高速光耦合器,由光敏二極管、高增益線性運放及肖特基鉗位的集電極開路的三極管組成,具有溫度補償、電流和電壓補償、高的輸入輸出隔離等功能,用來隔離CLK 和CW 信號。TLP521 是普通光耦隔離器,用來隔離ENABLE 信號。針對步進(jìn)電機(jī)工作時的振動大、噪聲大等缺點,可采用電流的細(xì)分、衰減模式的設(shè)置來改善。細(xì)分的原理本質(zhì)是通過控制步進(jìn)電機(jī)勵磁繞組中電流使步進(jìn)電機(jī)的內(nèi)部合成磁場為均勻的圓形磁場,從而實現(xiàn)對步進(jìn)電機(jī)步距角的細(xì)分。通過繞組中電流的細(xì)分改善了步進(jìn)電機(jī)低頻運行時振動大的缺點。不同衰減模式設(shè)置則減少了步進(jìn)電機(jī)運行時產(chǎn)生的高頻噪聲,改善了系統(tǒng)性能[7]。
圖2 TB6560 兩相四線步進(jìn)電機(jī)驅(qū)動電路
TB6560 提供了整步、半步、1/8、1/16 微細(xì)分設(shè)置。NFA/B 管腳外接無感電阻對輸出電流控制,I =1/NFR,阻值大小分別為1. 2 Ω、330 mΩ、500 mΩ。M0、Protect 管腳用做工作狀態(tài)與保護(hù)指示;Reset 為復(fù)位管腳,低電平有效;OSC 管腳所接電容大小決定斬波頻率大小。推薦100 ~1 000 pF 對應(yīng)斬波頻率40 ~400 kHz。DCY1/DCY2 外接撥碼開關(guān)設(shè)置電流衰減模式為0,25%,50%,100%。
為了減小電機(jī)發(fā)熱,在電機(jī)正常工作時設(shè)置輸出電流最大,不工作時電流減半或更小。設(shè)置步進(jìn)驅(qū)動系統(tǒng)“自動半流”功能。選擇單穩(wěn)態(tài)可重復(fù)觸發(fā)芯片74HC123 檢測CLK 信號。TQ2 接74HC123 反向輸出。當(dāng)電機(jī)正常工作時TQ2 是低電平,電流維持在NFA/B 管腳設(shè)定值100%。無脈沖輸入時,TQ2 是高電平。TQ1 與TQ2 不同狀態(tài)決定當(dāng)前工作電流大小。外接電壓為不超過40 V,推薦+24 V。輸入端加保險絲與壓敏電阻保護(hù)與濾波。電流大小、衰減模式以及自動半流設(shè)置可通過試驗板撥碼開關(guān)實現(xiàn),見表1、2。
表1 撥碼開關(guān)設(shè)置
表2 電流開關(guān)設(shè)置
系統(tǒng)設(shè)計MAX3232 串行通訊電路作為控制器與上位PC 機(jī)的數(shù)據(jù)傳輸,見圖3。MAX3232 收發(fā)器采用專有的低壓差發(fā)送器輸出級。利用雙電荷泵在3 ~5 V 電源供電時能夠?qū)崿F(xiàn)真正的RS232 性能。器件外部僅需要4 個0.1UF 小尺寸電荷泵電容,可以確保在120 kb/s 數(shù)據(jù)傳輸速率下維持RS232 輸出電平。MAX3232 引腳、封裝和功能與工業(yè)標(biāo)準(zhǔn)的MAX232 兼容。F2806 提供了SCI-A/B 兩路串行通訊接口可以實現(xiàn)DSP 與PC 機(jī)數(shù)據(jù)交換。圖3 中232TX、232RX 分別連接SCITXD、SCIRXD。T1、R1 與試驗板載DB9 母頭的發(fā)送、接收管腳相連[8]。
圖3 MAX3232 串行通訊電路
另外,考慮運動控制單元在工作過程中掉電或意外發(fā)生時電機(jī)當(dāng)前運動位置記錄問題,系統(tǒng)設(shè)計了AT24C256 掉電存儲保護(hù)電路。AT24C256 是I2C 總線接口的E2PROM,其存儲容量為256 kB,按字節(jié)方式組成了32 kByte 的內(nèi)部存儲空間。通過SCL、SDA 與F2806 處理器的I2C 接口。
在單軸的運動控制中,需要作頻繁的點位運動,若不作任何軌跡規(guī)劃處理,在很多場合是不理想的,達(dá)不到工藝加工的要求,其應(yīng)用將受到很大的限制。常見的步進(jìn)電機(jī)速度曲線有梯形曲線以及S 形曲線[9]。
梯形曲線給定3 個運動參數(shù):位置給定step 、最大速度speed 以及加速度accel/dccel。如圖4 所示,梯形曲線分為3 個階段:第1 階段。勻加速段,速度按照設(shè)定的加速度值accel 從零加速到最大速度speed;第二階段。勻速段,加速度值為零,速度保持已達(dá)到的最大速度運行;第三階段。勻減速段,按設(shè)定的加速度減速到零,同時到達(dá)目標(biāo)位置。
圖4 梯形加減速曲線
S 形曲線給定4 個運動參數(shù):位置給定P _ref、最大速度maxv、最大加速度maxa 以及加加速度Jerk。如圖5 所示,規(guī)則的S 形曲線分為7 個階段:前3 個階段為加速段,后3 個階段為減速段,加速段和減速段相互對稱,第4 個階段為勻速段。在第1 階段。加加速段,加速度從零開始,以設(shè)定的最大加速度maxa 為目標(biāo),以加加速度Jerk 為增量遞增,直到達(dá)到最大加速度為止。在第2 階段。勻加速段,加加速度為零,以最大加速度加速到第3 段。在第3 階段。減加速段,按負(fù)的加加速度使加速度減為零值,同時使速度達(dá)到最大值maxv,至此完成加速段過程。在第4 階段勻速運行,加速度和加加速度都為零以最大值maxv 運行。第5、6、7 階段依次為加減速段、勻減速段和減減速段,降速過程與之前的加速過程完全對稱。
本系統(tǒng)采用在線梯形加減速算法[10-11]。設(shè)梯形曲線中脈沖時間間隔分別為c0tp,c1tp,c2tp,…。這里cn是按處理器片內(nèi)定時器確定的計數(shù)值,tp是計數(shù)器的周期,單位是s。下式給出了加速、減速階段脈沖間隔計算。其中:α 為步距角;加速度w-是常數(shù);初始
圖5 S 型加減速曲線
若設(shè)置電機(jī)啟動后2 s 加速到240 r/min,計數(shù)器計數(shù)頻率為100 MHz,固定電機(jī)為16 細(xì)分,則w-=4πrad/s2,a=2π/3200 rad,c0=1 767 766。
上位PC 機(jī)的子程序用Visual Basic 語言編寫,功能是通過Mscomm 控件發(fā)送運動控制指令和接收位置信息數(shù)據(jù),如圖6 所示。Mscomm 控件是Microsoft 公司提供串行通信編程的ActiveX 控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡單方法。Mscomm控件提供了事件驅(qū)動處理通信的機(jī)制,類似一般程序的中斷方法,當(dāng)串口發(fā)生事件或錯誤時,Mscomm 控件觸發(fā)onComm 事件,應(yīng)用程序在捕獲事件后通過檢查Mscomm 控件的CommEvent 屬性獲得所發(fā)生的事件與方法[12]?,F(xiàn)給出Mscomm 控件發(fā)送與接收的部分代碼如下:
圖6 PC 機(jī)平臺運動控制界面
數(shù)據(jù)發(fā)送只需要向MSComm1.Output 寫入字符串即可。這里采用12 Byte 1 幀傳輸電機(jī)轉(zhuǎn)速、細(xì)分設(shè)置、方向、運動位移以及關(guān)鍵字參數(shù),分別填寫對應(yīng)的文本框TEXT 屬性完成。
下位機(jī)運動控制代碼在CCS2.0 編譯器完成。圖7 是采用梯形加減速算法流程圖。當(dāng)加減速度accel/decel、速度speed、步距角a、運動步數(shù)steps 給定,可計算出電機(jī)加速到設(shè)定轉(zhuǎn)速speed 的步數(shù)max_lim 和由加減速度、step 約束的accel_lim,流程圖中符號①處要求對max_lim 與accel_lim 判斷。若max_lim >accel_lim,說明沒有加速到設(shè)定速度電機(jī)便進(jìn)入了減速狀態(tài),不存在勻速段(status =2);反之,整個升降速控制為完整梯型速度曲線。計算減速階段電機(jī)步數(shù)dec_val 和decel_start。圖8 給出了在Matlab7.0 環(huán)境下梯形加減速算法在不同加速度下速度曲線。由式(1)計算加速與減速時2 個相鄰脈沖時間間隔Cn 更新ePWM1 模塊EPwm1Regs.TBPRD 寄存器的值,實現(xiàn)不同頻率脈沖對步進(jìn)電機(jī)控制。方向信號可以通過對AQCSFRC.bit.CSFB 位操作使得ePWM1B 管腳信號強制高或低控制電機(jī)正反轉(zhuǎn)[13]。
圖9 是單軸運動控制系統(tǒng)的主流程圖。上電后系統(tǒng)倍頻、使能外設(shè)時鐘。再對ePWM1、SCIA、eCAP1 完成中斷初始設(shè)置。其中ePWM1 中斷服務(wù)程序主要運行加減速代碼負(fù)責(zé)產(chǎn)生指令脈沖信號。eCAP1 捕獲中斷則檢測近電機(jī)側(cè)槽型光電開關(guān)信號上升沿以確定運動控制的零位置。由于直線導(dǎo)軌滑塊到達(dá)零位時,開關(guān)信號由低電平向高電平跳變存在30 ~40 個抖動以致零位不準(zhǔn)。解決問題的辦法是在第一個上升沿觸發(fā)捕獲中斷后,在中斷服務(wù)程序內(nèi)部設(shè)置eCAP1 為通用I/O,0.001 s 后再確認(rèn)是否為高電平,以此為依據(jù)確定每次運動的零點。單軸運動控制提供回零、相對位移、絕對位移、立即停止操作。上位機(jī)每條有效指令信息用12 Byte 數(shù)據(jù)編碼。SCIA 采用FIFO 中斷接收或發(fā)送上位機(jī)速度、細(xì)分、位移及方向等運動信息[14-15]。可給出FIFO 中斷與接收的部分寄存器代碼:
圖7 梯形加減速曲線Matlab 仿真
圖8 梯形加減速流程
圖9 單軸運動控制主程序
F2806 的SCI 接收器與發(fā)送器各具有一個16 級深度的FIFO,這樣可減少空頭服務(wù)。采用NRZ 數(shù)據(jù)格式,數(shù)據(jù)位8 位。16 位波特率寄存器BRR =0x0144=324,計算實際傳輸速率為LSPCLK/(8* (BRR +1))=9 615 bit/s。與上位機(jī)9 600 bit/s 發(fā)送速率匹配。當(dāng)接收FIFO 中滿12 Byte 長幀信息時,產(chǎn)生中斷接收。使能FIFO 中斷發(fā)送,運動單元位置信息可寫入SciaRegs.SCITXBUF 寄存器可供上位機(jī)接收查詢。
用所設(shè)計的驅(qū)動系統(tǒng)對42BYG250A 步進(jìn)電機(jī)進(jìn)行實驗,觀察電流波形與噪聲。電機(jī)參數(shù):步距角1.8,工作電壓9 ~30 V,繞組電阻1. 3 Ω,繞組電感2. 1 mH,保持力矩0.23 N·m。S-350-24 型開關(guān)電源提供驅(qū)動器測試工作電壓24 V,采用Tektronix TDS1012B雙通道示波器作波形測試。
為了清楚觀察電機(jī)繞組電流正弦細(xì)分控制的波形,在A/B 相繞組輸出端串接0.5 Ω 無感電阻用示波器觀察,如圖10 所示。電流波形光滑,電機(jī)轉(zhuǎn)動平穩(wěn),噪聲小,正弦特征明顯。
圖10 繞組串接無感電阻測試兩相電流
在單軸運動控制教學(xué)平臺實物中。滾珠絲桿與直線導(dǎo)軌之間采用定制剛性件連接。電控單元與機(jī)械運動部分在740 ×600 mm 木板固定并做水平度校正。采用上位PC 機(jī)控制測試定位性能,效果良好。
本文基于TMS320F2806 與TB6560 芯片設(shè)計完成了單軸運動控制教學(xué)平臺軟硬件設(shè)計。重點解決了上位機(jī)控制軟件設(shè)計、RS232 通信底層SCI FIFO 中斷接收與發(fā)送、加減速在線實現(xiàn)及點位控制。目前,該單軸運動控制平臺已經(jīng)在大學(xué)生創(chuàng)新教學(xué)和校企合作項目開發(fā)中得到應(yīng)用。
[1] 劉寶廷,程樹康 步進(jìn)電動機(jī)及其驅(qū)動系統(tǒng)[M]. 哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997:35-42.
[2] 張新榮,徐寶國. 基于正弦細(xì)分驅(qū)動技術(shù)的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計[J].電測與儀表,2010(8):69-72.ZHANG Xin-rong,XV Bao-guo Design of Step Motor Control System Base on Sine-Subdivided Drive[J]. Electrical Measurement &Instrumentation,2010(8):69-72.
[3] 王曉明,王 玲.電動機(jī)的DSP 控制—TI 公司DSP 應(yīng)用[M]. 北京.北京航空航天大學(xué)出版社,2004:214-217.
[4] 韓安太,劉峙非.DSP 控制器原理及其在運動控制系統(tǒng)中的應(yīng)用[M]. 北京:清華大學(xué)出版社,2003:176-181.
[5] 蘇奎峰,呂 強,鄧志東. TMS320F2812 原理與開發(fā)[M].北京:電子工業(yè)出版社,2005:223-230.
[6] 祝華遠(yuǎn),馬乃蒼.某新型數(shù)控機(jī)床步進(jìn)電機(jī)控制速度曲線的實現(xiàn)[J]. 機(jī)床與液壓,2003(3):351-354.ZHU Hua-yuan, MA Nai-cang. The Implementation Velocity Controlling Curve for A New-style Numerical Control Machine[J].Machine Toll & Hydraulics,2003(3):351-354.
[7] 高 亮. 8051 單片機(jī)對步進(jìn)電機(jī)的控制及步進(jìn)電機(jī)升降速曲線的設(shè)計[J]. 測控技術(shù).2002,21(11):64-68.GAO Liang,Controlling of Step Motor with 8051 microcontroller and Speed-UP and Speed-Down Curve Design [J]. Measurement and Control Technology,.2002,21(11):64-68.
[8] 范逸之,陳立元. Visual Baisic 與RS-232 串行通信控制[M]. 北京:清華大學(xué)出版社,2002.
[9] 錢 堃,房 芳. 面向運動控制的DSP 技術(shù)及課程設(shè)計教學(xué)[J]. 電氣電子教學(xué)學(xué)報,2013,35(2):27-30.QIAN Kun,F(xiàn)ANG Fang. Research on the Practice teaching of DSP technology for Motion Control[J]. Journal of EEE,2013,35(2):27-30.
[10] 楊志敏. 基于單片機(jī)加減控制算法的研究[D]. 哈爾濱:哈爾濱工業(yè)大學(xué),2007:42-48.
[11] 羅 鑫,張 峰.基于ARM Cortex-M3 的步進(jìn)電機(jī)線性速度控制實現(xiàn)[J].電氣自動化,2009(5):42-44.LUO Xing,ZHANG Feng. The Realization of Linear Speed Control of Stepper Motor Based on ARM Cortex-M3 [J]. Electrical Automation,2009(5):42-44.
[12] 王 璐,許雪峰. VB 串行通信在監(jiān)測系統(tǒng)中的應(yīng)用[J].實驗科學(xué)與技術(shù).2010,9(5):14-15.WANG Lu ,XU Xue-Feng. Application of Serial Communication in the Monitor System Based on VB[J]. Experi-ment Science or Technology,2010,9(5):14-15.
[13] 謝國鋼,王念興,李小海.全數(shù)字化步進(jìn)電動機(jī)細(xì)分驅(qū)動器設(shè)計[J]. 微特電機(jī),2012(8):67-70.XIE Guo-gang,WANG Nian-xing,LI Xiao-hai. Design of Fully Digitized Subdivided Driver for Stepping Motor[J]. Small & Special Electrical Machines,2012(8):67-70.
[14] 任潤柏,周荔丹,姚 鋼. TMS320F28x 源碼解讀[M]. 北京:電子工業(yè)出版社,2010:230-295.
[15] SPRU051A:TMS320F28X DSP Serial Communication Interface(SCI)Reference guide,TEXAS 2003-6.