LPC2141的無刷直流電機控制系統(tǒng)設計
1 概 述
無刷直流電機是最常用的無刷電機。它易于驅(qū)動,速度可調(diào)且工作壽命長,適用于各類大小型工業(yè)應用,諸如小型馬達的控制(如12 V直流無刷電機)。
LPC2141是NXP公司推出的嵌入高速FLASH閃存的32位ARM微控制器,具有高性能、小體積、低功耗、片上可選擇多種外設等優(yōu)點,應用范圍很廣。LPC2141包括多個32位定時器、10位ADC和 PWM輸出功能,通過匹配PWM定時器的輸出,可以適合于各種工業(yè)控制;芯片上集成USB,可以通過USB接口連接PC GUI(圖形用戶界面)軟件,方便地控制電機。
本文基于LPC2141的無刷直流電機控制系統(tǒng)設計,包括NXP公司完整的電機控制系統(tǒng)解決方案(NXP公司的ARM微控制器、MOSFET驅(qū)動器、MOSFET等)。無刷直流電機控制系統(tǒng)框圖如圖1所示。
2無刷直流電機原理
無刷直流電機由永磁轉子和三相定子組成,如圖2所示。無刷直流電動機不使用電刷換相,而是采用電子換相。通常,3個霍爾傳感器用來檢測轉子位置,通過檢測這些傳感器的不同時序來換相。
無刷直流電機控制(Brushless DC Motor CONTROL,BLDC) 馬達,比傳統(tǒng)的有刷直流電動機和三相異步電動機有更多的優(yōu)勢,提供更長的使用壽命,具備更好的速度與轉矩特性、更低的噪聲和更寬的速度范圍。此外,由于電機的扭矩較大,對于矢量空間和重量起關鍵因素的場合更加實用。
在無刷直流電機中,電磁場不旋轉運動,而永磁旋轉,三相定子繞組保持靜態(tài)。這可能會產(chǎn)生一個問題,如何傳遞電流給運動的轉子。為了解決這個問題,電刷換向器被智能電子控制器所取代。有刷直流電動機中該控制器也執(zhí)行相同的功率分配,但使用的是電路控制,而不是一個換向器/刷系統(tǒng)。
電動機的速度和扭矩取決于帶電繞組電機所產(chǎn)生的磁場的強度,磁場的強度又取決于通過的電流大小。因此,調(diào)整轉子電壓(或電流)將改變電機轉速。
3無刷直流電機的控制
3.1轉子的控制
無刷直流電機的驅(qū)動必須考慮在轉子的不同位置施加不同的電壓,即必須正確控制三相繞組系統(tǒng)的電壓相序,以便使定子磁場和轉子磁場之間的相角度始終接近90°,從而獲得最大的扭矩。因此,控制器需要一些控制策略來確定轉子的方向/位置(相對于定子線圈)。
本設計使用霍爾傳感器來直接測量轉子的位置(也有一些應用中使用旋轉編碼器,或者在驅(qū)動線圈中使用反電勢的方式)。當一個傳感器輸出180°電角度的高電平時,其他傳感器輸出180°的低電平。3個傳感器兩兩有60°相角度差,因此很容易將傳感器的輪換分為6個階段(通過3位二進制代碼表示)。圖3為三相橋電機驅(qū)動結構圖。表1則顯示了三相霍爾傳感器輸出電平值和實際的電機繞組MOS管驅(qū)動換相之間的關系。
3.2速度的控制
通過改變加在電機上的電壓,可以改變電機的轉速。如圖4所示,使用PWM輸出來控制6個開關三相橋(Q1~Q6),可以通過改變占空比的PWM 信號來調(diào)整電機的電壓。
3.3電機的反饋
3.3.1 電流測量
電機電流的低成本測量可以在MOSFET與地之間使用電流感應電阻。小電壓出現(xiàn)在電流檢測電阻上,經(jīng)過濾波和放大之后,輸入到LPC2141的 ADC輸入端。
電機的電流測量也經(jīng)常用于保護模式。當電機在堵轉位置時,電流會急劇增加。由于電流的異常突變,ADC的數(shù)值會達到一個極限,從而將系統(tǒng)關斷,切換到保護模式,從而提高系統(tǒng)的安全系數(shù)。
3.3.2 RPM轉速測量
作為閉環(huán)速度控制,實際的電機速率必須實時監(jiān)測。通過霍爾傳感器連接LPC2141的輸入引腳,可以很準確地測量電機轉速。常用如下2種方法:
①連接霍爾傳感器輸出到LPC2141的外部中斷輸入引腳。這樣每60°電角度就會產(chǎn)生一次中斷。通過在一定的確切時間(如1 s)統(tǒng)計計數(shù)中斷的數(shù)量,即可很容易地計算出精確的電機速度。
?、谶B接傳感器信號到LPC2141的定時器捕獲引腳,通過衡量每一個旋轉相位的切換時間來計算電機的轉速。
4硬件設計
4.1 LPC2141的使用方法
LPC2141的系統(tǒng)功能框圖如圖5所示。LPC2141是NXP公司基于ARM7的LPC2000系列低成本微控制器,具有6通道PWM定時器、片上USB接口、8 KB的片上靜態(tài)RAM和32 KB的片上閃存程序存儲器。對于較大的存儲或特定外設(CAN總線、以太網(wǎng)等)的要求,可以選擇LPC2000系列的其他型號(如LPC2368等),這些芯片都是和LPC2141兼容的。
本設計具備如下特性:CPU負載小于5%,代碼大小為6 KB(包含USB通信代碼);未用的外設包括UART、I2C、SPI/SSP、RTC、2個定時器和5個A/D輸入;超過30個未用的通用輸入輸出口 GPIO,用于用戶的特定應用要求。
4.2電機的選擇
使用Maxon公司120 W的EC-40直流電機??蛰d時供電電壓為24 V,電機的轉速可達到5 900 r/min,最大的連續(xù)電流達到6 A。
4.3 MOSFET的選擇
選用NXP公司的PH20100S N溝道場效應管Trench-MOS邏輯電平。這個電平與選定的電機有關。對于24 V電機,MOSFET的VDS需要至少40 V,而漏電流必須足夠大,以滿足電機的啟動電流。由于系統(tǒng)程序代碼設計了軟啟動機制(對于小臺階的啟動需要一定的速度),漏電流在一定程度上有所減小。 PH20100S能夠處理的最大漏極電流是34.3 A,峰值電流是137 A,采用表面貼裝SOT669(LFPAK)封裝。
4.4 MOSFET驅(qū)動的選擇
MOSFET驅(qū)動用于提升控制器LPC2141輸出驅(qū)動電機的電壓。本文選擇NXP公司的PMD3001D和PMGD400UN作為 MOSFET,驅(qū)動電路如圖6所示。
4.5電機速度的調(diào)整
LPC2141集成6通道32位PWM定時器,通過設定不同的PWM占空比數(shù)值來控制電機的轉速,通過USB接口讀取電機實際的轉速。
5 軟件設計
本系統(tǒng)軟件部分包括3部分:用戶接口(GUI)、USB設備驅(qū)動和BLDC電機控制代碼。
5.1 用戶接口
Windows的用戶界面可控制無刷直流電機演示,如圖7所示。該應用程序軟件是BLDC_USBGUI.EXE,采用Mierosoft Visual Basic 2008專業(yè)版開發(fā),需要在PC機上安裝Microsoft.NET Framework,可方便地控制電機速度和讀取電機電流及轉速。
5.2 USB設備驅(qū)動
USB通信部分可以到Keil公司網(wǎng)站() 上下載USB通信代碼(LPC2148 USB HID人體學設備驅(qū)動代碼)。如有疑問可與筆者聯(lián)系(okarmdy@gmail.com)。
5.3 BLDC電機控制代碼
本例程序采用C語言編寫,采用Keil公司uVision3開發(fā)環(huán)境進行編譯。系統(tǒng)執(zhí)行的任務如下:
?、賃SB接口用于接收電機的轉速信息,以及設定電機電流和轉速。
?、谑褂?0位A/D輸入檢測電機電流大小,用于保護電機。
③使用定時器1產(chǎn)生10 ms的系統(tǒng)中斷時間戳,用于在不同時間戳切換和分派系統(tǒng)任務。
?、苁褂枚〞r器0的捕獲引腳讀取霍爾傳感器來控制電機的轉子,設定PWM定時器占空比來控制轉速,驅(qū)動Q1~Q6的MOSFET輸出,從而控制三相橋的導通與關斷。
電機控制部分代碼包括5個模塊:bide.c、ADC.c、pwm.c、hsensor.c、timerl.c。頭文件bidc.h用于設置無刷直流電機控制的相關參數(shù)(如電機電流和轉速設定等)。使用Keil’s uVision3調(diào)試開發(fā)環(huán)境自帶的標準啟動代碼庫配置LPC2141芯片,設置CCLK=PCLK=60 MHz。
結語
本文使用LPC2141微控制器設計了一款無刷直流電機控制系統(tǒng),代碼精簡,控制可靠。經(jīng)過長期測試證明,系統(tǒng)相關器件的選型設計是穩(wěn)定的。從芯片設計和系統(tǒng)低成本設計上,該系統(tǒng)具有一定的應用推廣價值。