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