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