王森林,包曄峰,薛 猛,楊 可,趙虎成
(1.河海大學(xué),江蘇常州213022;2.卡特彼勒技術(shù)研發(fā)中心,江蘇無錫214028)
永磁無刷直流電動(dòng)機(jī)既具有交流電機(jī)的結(jié)構(gòu)簡(jiǎn)單、運(yùn)行可靠、維護(hù)方便等優(yōu)點(diǎn),又具有直流電機(jī)良好的調(diào)速特性。因此無刷直流電機(jī)在控制中的應(yīng)用會(huì)越來越受重視[1]。然而,目前國(guó)內(nèi)無刷直流電動(dòng)機(jī)的伺服控制器的控制精度較低、價(jià)格較高,因此設(shè)計(jì)一款控制精度高、成本低的無刷直流電動(dòng)機(jī)控制器顯得尤為重要。對(duì)無刷直流電動(dòng)機(jī)的控制通常采用PID控制策略。PID控制技術(shù)成熟,實(shí)現(xiàn)方便,適應(yīng)面廣、魯棒性強(qiáng)、控制品質(zhì)穩(wěn)定。本文基于伺服控制芯片LM629設(shè)計(jì)了一種無刷直流電動(dòng)機(jī)伺服控制器,通過軟件調(diào)節(jié)PID參數(shù)的方式來控制無刷直流電動(dòng)機(jī),增強(qiáng)其對(duì)不同電機(jī)的適應(yīng)性。
LM629是一款專用的電機(jī)控制芯片,該芯片可以為電機(jī)的數(shù)字控制提供所需的精確的、實(shí)時(shí)的控制。LM629的特性如下:
(1)32位的位置、速度和加速度寄存器;
(2)可編程的采樣時(shí)間間隔;
(3)8位PWM輸出;
(4)內(nèi)部的速度梯形圖發(fā)生器;
(5)16位的可編程數(shù)字PID濾波器;
(6)速度、目標(biāo)位置和PID參數(shù)可以在運(yùn)動(dòng)過程中改變;
(7)速度和位置操作模式;
(8)實(shí)時(shí)的可編程主機(jī)中斷[2];
圖1是基于LM629直流伺服控制系統(tǒng)的系統(tǒng)框圖。主處理器通過I/O接口與LM629進(jìn)行通信,向LM629輸入運(yùn)動(dòng)參數(shù)和PID參數(shù)。
圖1 系統(tǒng)框圖
系統(tǒng)通過增量式編碼器將電機(jī)的運(yùn)動(dòng)狀態(tài)信息反饋給LM629,編碼器提供的A、B信號(hào)用于反映電機(jī)的實(shí)際位置。Index信號(hào)用于反映電機(jī)的絕對(duì)位置。
LM629的位置生成器生成每個(gè)時(shí)刻對(duì)應(yīng)的位置值。在位置控制模式下,主處理器指定加速度值、最大速度值和位置值。LM629利用指定的參數(shù)控制電機(jī)以指定的加速度運(yùn)動(dòng)直到指定位置。在速度控制模式下,LM629控制電機(jī)以指定的加速度加速到設(shè)定的速度并保持這個(gè)速度直至收到新的速度命令。如果電機(jī)在運(yùn)動(dòng)過程中受到干擾,LM629保證平均速度不變。
LM629通過數(shù)字PID控制器調(diào)節(jié)閉環(huán)控制系統(tǒng)。數(shù)字PID控制器的偏差信號(hào)通過位置生成器和位置反饋處理器獲得[3]。
圖2是LM629伺服控制系統(tǒng)的硬件框圖,系統(tǒng)的硬件主要包括主處理器單元(ATmega16)、人機(jī)界面單元(鍵盤、TFT彩屏顯示)、伺服控制單元(LM629)和功率驅(qū)動(dòng)單元(L298)。
圖2 伺服控制系統(tǒng)硬件框圖
本系統(tǒng)采用ATmega16單片機(jī)作為主處理器。在該系統(tǒng)中ATmega16用于統(tǒng)籌和協(xié)調(diào)系統(tǒng)的工作,該芯片完成了對(duì)鍵盤和TFT彩屏的控制工作,同時(shí)根據(jù)用戶輸入的參數(shù)完成對(duì)LM629的控制。由于ATmega16單片機(jī)內(nèi)部資源非常豐富,本設(shè)計(jì)利用ATmega16單片機(jī)內(nèi)部的復(fù)位電路,省去了外部的復(fù)位電路;單片機(jī)內(nèi)部的看門狗提高了系統(tǒng)的抗干擾性能;單片機(jī)內(nèi)部的EEPROM用于存儲(chǔ)系統(tǒng)的重要信息,保證信息在掉電的情況下不易丟失。鍵盤用于輸入各種參數(shù),如:速度值、位置值、加速度值。用于選擇控制方式,如:位置控制模式、速度控制模式。顯示部分用于實(shí)時(shí)顯示電機(jī)的運(yùn)動(dòng)狀態(tài)和各種參數(shù)。由LM629構(gòu)成的直流伺服控制單元用于完成電機(jī)的伺服控制,主處理器只需要通過I/O接口向LM629指定運(yùn)動(dòng)參數(shù)和PID參數(shù),LM629便可以獨(dú)立完成伺服控制。信號(hào)處理電路用于對(duì)LM629輸出的信號(hào)進(jìn)行處理,并將處理后的信號(hào)輸入到L298驅(qū)動(dòng)單元。由L298構(gòu)成的功率驅(qū)動(dòng)單元用于將單片機(jī)的控制信號(hào)轉(zhuǎn)換、放大以驅(qū)動(dòng)直流電動(dòng)機(jī)。
LM629的軟件設(shè)計(jì)主要包括LM629初始化、裝載PID參數(shù)和裝載運(yùn)動(dòng)參數(shù)三個(gè)步驟。為了保證LM629工作正常,每次對(duì) LM629操作前都要對(duì)LM629進(jìn)行初始化。初始化的過程如下:
(1)將LM629的RST引腳拉低至少8個(gè)時(shí)鐘周期,實(shí)現(xiàn)對(duì)LM629的硬件復(fù)位;
(2)延時(shí) 1.5 ms,如果 LM629的狀態(tài)字為“84H”或者“C4H”,則對(duì)LM629進(jìn)行復(fù)位檢查,否則重新進(jìn)行硬件復(fù)位;
(3)通過向LM629寫入RSTI命令實(shí)現(xiàn)復(fù)位檢查,如果狀態(tài)字變?yōu)椤?0H”或者“C0H”,則復(fù)位成功,否則重新進(jìn)行硬件復(fù)位。
如果LM629初始化成功,則證明LM629工作正常,可以進(jìn)行裝載PID參數(shù)和裝載運(yùn)動(dòng)參數(shù)的操作。LM629具體的軟件流程如圖3所示。
圖3 LM629軟件流程圖
在裝載PID參數(shù)之前,首先要確定PID參數(shù)。PID參數(shù)可以通過經(jīng)驗(yàn)法確定。在裝載速度、位置和加速度等運(yùn)動(dòng)參數(shù)之前,必須對(duì)相應(yīng)參數(shù)進(jìn)行處理,使其變?yōu)長(zhǎng)M629可以識(shí)別的形式。下面舉例說明如何對(duì)運(yùn)動(dòng)參數(shù)進(jìn)行處理。
假設(shè)電機(jī)編碼器的線數(shù)為512線,并將采樣周期設(shè)為256 μs?,F(xiàn)需要電機(jī)以10 r/s2的加速度加速到50 r/s,最后停止到距起始點(diǎn)2 000轉(zhuǎn)的位置。
(1)目標(biāo)位置值的確定
由于LM629對(duì)增量式編碼器的反饋信號(hào)進(jìn)行了4倍頻。則:
R=512×4=2 084計(jì)數(shù)值 /圈
P=R×2 000=4 168 000計(jì)數(shù)值
將P轉(zhuǎn)為16進(jìn)制為P=003F9940H。
(2)速度值的確定
V=RT×50=26.675 200計(jì)數(shù)值 /采樣周期
需要裝載到LM629的速度值為32位,它由16位的正整數(shù)和16位的小數(shù)組成,所以需要載入的速度值:
V=V × 65 536=1 748 185.90
取整V=1 748 185。
將V轉(zhuǎn)為16進(jìn)制V=001AACD9H。
(3)加速度值的確定
需要裝載到LM629的加速度值為32位,它由16位的正整數(shù)和16位的小數(shù)組成,所以需要載入的加速度值:
取整A=8。
將A轉(zhuǎn)為16進(jìn)制,A=00000008H。
系統(tǒng)的軟件流程圖如圖4所示。系統(tǒng)軟件主要由三部分組成,分別是初始化、參數(shù)確定和參數(shù)載入。
圖4 直流伺服系統(tǒng)流程圖
(1)初始化
初始化包括AVR端口初始化、TFT彩屏初始化和HD7279初始化。AVR端口初始化用于確定各端口的輸入輸出狀態(tài),以便于對(duì)各外圍芯片進(jìn)行讀寫操作。TFT彩屏初始化實(shí)現(xiàn)對(duì)TFT彩屏的初始化,以便于彩屏正常顯示當(dāng)前的PID參數(shù)值和速度值。HD7279初始化用于對(duì)HD7279芯片進(jìn)行初始化,以便于操作者輸入系統(tǒng)參數(shù)。
(2)參數(shù)確定
初始化工作完成后,系統(tǒng)要確定需要載入到LM629的參數(shù)。系統(tǒng)首先從EEPROM中讀出系統(tǒng)上次工作的PID參數(shù)和各運(yùn)動(dòng)參數(shù),用戶如果需要改變參數(shù),可以通過鍵盤輸入?yún)?shù),系統(tǒng)將用戶輸入的參數(shù)存儲(chǔ)到EEPROM中,并將改變的參數(shù)設(shè)為載入?yún)?shù)。否則將原始參數(shù)設(shè)為載入?yún)?shù)。
(3)載入?yún)?shù)
參數(shù)確定之后,系統(tǒng)按照LM629的軟件流程圖將各參數(shù)載入到LM629中并起動(dòng)電機(jī)。系統(tǒng)開始工作。
當(dāng)系統(tǒng)完成用戶指定的任務(wù)之后,主程序返回到參數(shù)設(shè)定部分以用于設(shè)定新的運(yùn)動(dòng)參數(shù)。
為了驗(yàn)證伺服控制系統(tǒng)的控制精度,選用FAULHABER直流伺服電機(jī)1524B009SR進(jìn)行測(cè)試。該電機(jī)額定電壓為9 V,空載轉(zhuǎn)速為10 100 r/min,編碼器的線數(shù)為512線。利用經(jīng)驗(yàn)法設(shè)定PID參數(shù) kp、ki、kd分別為 10、5、10?,F(xiàn)需要電機(jī)以10 r/s2的加速度加速到50 r/s,最后停止到距離起始點(diǎn)2000轉(zhuǎn)的位置。圖5是直流伺服系統(tǒng)的實(shí)物圖。
圖5 直流伺服系統(tǒng)實(shí)物圖
實(shí)驗(yàn)方法:根據(jù)要求將需要的參數(shù)通過鍵盤輸入到系統(tǒng)中并起動(dòng)電機(jī),在電機(jī)的運(yùn)行過程中AVR單片機(jī)每隔300 ms讀取電機(jī)的轉(zhuǎn)速并將數(shù)據(jù)存儲(chǔ)在EEPROM中,電機(jī)運(yùn)行結(jié)束后,從EEPROM中讀取數(shù)據(jù)并用orign軟件繪制速度-時(shí)間曲線。得到的曲線如圖6所示。
圖6 理想曲線和實(shí)測(cè)曲線對(duì)比圖
由實(shí)驗(yàn)及結(jié)果可知,基于LM629的伺服控制器在位置控制模式下有較好的控制精度,該方案是一個(gè)理想的伺服無刷直流伺服電機(jī)的控制方案。
[1] 鄭靜,渠慎豐.小功率伺服無刷直流電機(jī)驅(qū)動(dòng)器設(shè)計(jì)[J].電子測(cè)量技術(shù),2006,29(3):130-132.
[2] 王華,王立權(quán),韓金華.電機(jī)專用控制器LM629的應(yīng)用研究[J].電子器件,2005,28(2):330-333.
[3] 賀志軍.基于LM629的電機(jī)伺服控制系統(tǒng)設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與制造,2009(2):40-42.