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