基于ATmega32M1和ATAVRMC320的無刷直流電機無傳感器換相控制
一、引言
在無刷直流電機(BLDC)的控制中,無傳感器換相技術是一項關鍵技術。本文將介紹如何使用ATAVRMC320開發(fā)套件實現(xiàn)BLDC電機的無傳感器換相。ATmega32M1集成了多種外設,可減少BLDC應用中所需的外部組件數(shù)量,既適用于無傳感器換相,也適用于帶霍爾傳感器的換相,本文主要聚焦于無傳感器換相。在深入研究之前,建議先仔細閱讀AVR928應用筆記,它詳細闡述了無傳感器控制方法的理論。
文件下載:ATAVRMC320.pdf
由于網(wǎng)絡問題,暫時無法獲取無傳感器換相技術優(yōu)勢的相關信息。不過我們繼續(xù)了解硬件和固件等方面的內(nèi)容。
二、硬件部分
2.1 硬件組成
整套硬件包括ATAVRMC310和ATAVRMC300板,它們是ATAVRMC320入門套件的兩個部分。詳細的使用說明可參考AVR430(MC300硬件用戶指南)和AVR470(MC310硬件用戶指南)。
2.2 MC310跳線設置
| AVR172固件是基于特定的跳線設置開發(fā)的,以下是具體設置: | Designator | Setting | Function |
|---|---|---|---|
| J5 | Vm connect PB4 to Vm’ (motor voltage measurement if necessary) | 必要時用于電機電壓測量 | |
| J6 | PFC OC Connect to overcurrent signal | 連接過流信號 | |
| J7 | none | 用于CAN應用 | |
| J8 | ShCo connect PC5 to ShCo for current measurement | 用于電流測量 | |
| J9 | GNDm connect PC4 to GNDm for current measurement | 用于電流測量 | |
| J12 | TxD connect PD3 to the RS232 driver MOSI A Connect PD3 to ISP connector (for ISP use) RxDUSB Connect PD3 to RxD1 (for USB interface use) |
連接RS232驅動、用于ISP和USB接口 | |
| J13 | RxD connect PD4 to the RS232 driver SCK Connect PD3 to ISP connector (for ISP use) TxDUSB Connect PD3 to RxD1 (for USB interface use) |
連接RS232驅動、用于ISP和USB接口 | |
| J15 | none | 用于CAN應用添加終端電阻 | |
| J21 | Cmp- connect ACMP0- to V+W bemf conditioning | 用于反電動勢調(diào)節(jié) | |
| J22 | Cmp+ connect ACMP0+ to U bemf conditioning | 用于反電動勢調(diào)節(jié) | |
| J23 | Cmp- connect ACMP1- to U+W bemf conditioning | 用于反電動勢調(diào)節(jié) | |
| J24 | Cmp+ connect ACMP1+ to V bemf conditioning | 用于反電動勢調(diào)節(jié) | |
| J25 | Cmp- connect ACMP2- to U+V bemf conditioning | 用于反電動勢調(diào)節(jié) | |
| J26 | Cmp+ connect ACMP2+ to W bemf conditioning | 用于反電動勢調(diào)節(jié) | |
| J28 | VCC supply the on board USB dongle from the board power supply | 為板載USB加密狗供電 |
2.3 MC300跳線設置
| Designator | Setting | Function |
|---|---|---|
| J2 | none | 為ATAVRMC310板提供 +5V 電源 |
在ATAVRMC300上,Vm和Vin連接器可由同一個 +12V/7A 電源供電,也可使用單獨的 +12V/1A 電源為Vin(處理器電源電壓)供電。
2.4 電源供應
此固件示例配置的電源電壓 Vm = 12V,該電源必須能夠提供高達 4A 的輸出電流。
2.5 電機參數(shù)
MC320和MC300電機控制套件中的BLDC電機具有以下特性:
- 制造商:TECMOTION
- 相數(shù):3
- 極數(shù):8(4 對)
- 額定電壓:24V
- 額定轉速:4000 rpm
- 額定扭矩:62.5 Nm
- 扭矩常數(shù):35 Nm/A = k_tau
- 線間電阻:1.8 ohm = R
- 反電動勢:3.66 V / Krpm = k_e
- 峰值電流:5.4A
當 Vm = 12V 時,額定轉速為 2000 rpm。
2.6 ATmega32M1配置
ATmega32M1必須使用PLL編程為以 16MHz 運行(設置相應的熔絲位),同時要禁用CKDIV8熔絲。擴展/高/低熔絲配置為:FF/DF/F3。
2.7 技術建議
- 斷開BLDC電機:在電機運行或線圈有電流時,切勿斷開BLDC電機。只有當PWM占空比為 0% 且轉子靜止,即線圈中無電流時,才允許斷開電機。要注意,當停止電源或PWM時,轉動慣量大的BLDC電機可能會繼續(xù)運行較長時間。
- 接地和電源布線:在設計自己的電路板時,要注意接地布線和電源布線。處理器和附加信號調(diào)理組件(如附加快速比較器、運算放大器等)的電源必須與電機電源解耦。接地連接應具有低電阻和低電感,以防止因大電流導致的電壓降和噪聲。建議在多層PCB中使用接地平面以確保正常運行。
三、固件部分
3.1 固件基礎
示例固件基于AVR928應用筆記中描述的無傳感器方法,使用ATmega32M1內(nèi)部比較器以無傳感器模式運行。套件中BLDC電機的霍爾傳感器線可以保持未連接狀態(tài)。源文件目錄中包含一個HTML文檔,可通過readme.html文件打開。
3.2 主流程圖
固件的主流程圖由每 1.024ms 由Timer0產(chǎn)生的g_tick來調(diào)度任務。
3.3 MS_ALIGN階段
ALIGN階段將電機強制置于特定位置,該階段的時間由ALIGN_TIME常數(shù)控制,它是ru_period_counter的初始值(對于MC310電機為 200)。
3.4 RAMP_UP階段
- 參數(shù)表:斜坡上升特性(占空比和時間)存儲在兩個表中:ramp_up_duty_table[]提供步驟的占空比,ramp_up_time_table[]提供步驟的長度(ru_step_length)。這兩個表針對特定的電機和應用。
- 計數(shù)器:通過三個獨立的計數(shù)器實現(xiàn)步驟序列的掃描和步驟長度的監(jiān)控:
- ru_step_length_cntr:計算換相時間(直到ru_step_length變量)
- ru_period_counter:計算步驟長度(直到RAMP_UP_PERIOD常數(shù))
- ramp_up_index:計算步驟編號(直到RAMP_UP_INDEX_MAX常數(shù))
- 步驟時間和數(shù)量:步驟時間RAMP_UP_PERIOD = 50ms,RAMP_UP_INDEX_MAX = 9 定義了 10 步的斜坡上升。
- 參數(shù)表定義:在固件示例中,表根據(jù)套件中電機的特性定義:
- ramp_time_table[] = {26,23,20,17,14,11,8,5,3,2,2};
- ramp_dup_duty_table[] = {122,124,126,129,131,133,135,137,140,143,145};
- Sp1/pwm1參數(shù):AVR928應用筆記中描述的通常參數(shù)為Pwm 1 = 50%,Sp 1 = Sp_max / 60。對于MC310 Tecmotion電機,Pwm 1 = 48%(= 122 / 256),Sp1由ru_step_length的初始值定義,ru_step_length = RAMP_UP_STEP_MAX = 40,這意味著每 40ms 進行一次換相,電機的電氣旋轉時間為 120ms,機械旋轉時間為 480ms,旋轉速度為 125 rpm,所以Sp 1 = Sp_max / 32。
- Sp2/pwm2參數(shù):AVR928應用筆記中描述的理論參數(shù)為Pwm 2 = 60%,Sp2 = Sp_max / 6 = Sp 1 / 10。對于Tecmotion電機,Pwm 2 = 57%(= 145 / 256),Sp2由ru_step_length的最后一個值 2 定義,這意味著每 4ms 進行一次換相,電機的電氣旋轉時間為 12ms,機械旋轉時間為 48ms,旋轉速度為 1250 rpm,所以Sp2 = Sp_max / 3.2,這也證實了AVR498應用筆記中定義的Sp1和Sp2之間通常的比例為 10。
3.5 LAST_RAMP_UP階段
為避免最后一步過短,該階段監(jiān)控最后一個斜坡上升步驟,以確保在進入閉環(huán)運行之前正確結束。
3.6 RUNNING階段
- 閉環(huán)框圖:運行階段是一個無傳感器閉環(huán),其框圖展示了系統(tǒng)的整體控制結構。
- 運行流程圖:流程圖顯示了電機狀態(tài)保持為MS_RUNNING,mci_set_ref_speed()函數(shù)根據(jù)電位器調(diào)整或串行傳輸接收到的速度命令更新速度設定點。在mc_regulation_loop()函數(shù)中,duty_cycle_reference是控制PWM發(fā)生器的占空比變量,它是不同模式下相關函數(shù)的計算結果:
- 在OPEN_LOOP模式下:由mci_set_ref_speed()函數(shù)確定。
- 在SPEED_LOOP模式下:根據(jù)ref_speed和監(jiān)測到的mci_get_measured_speed()計算,measured_speed = (KSPEED * 4) / mci_measured_period,mci_measured_period在模擬比較器 1 的中斷向量中計算,該中斷使用Timer 0 計算周期。
- 在CURRENT_LOOP模式下:由mc_control_current(mc_get_potentiometer_value())確定。
- 無傳感器檢測和換相管理:使用模擬比較器 0、1 和 2 檢測 U、V 和 W 相的過零點。Timer 1 用于監(jiān)測兩個連續(xù)過零點之間的時間,該時間對應電機電氣旋轉的一個扇區(qū),即整個電氣周期的 60°。當發(fā)生過零事件時,Timer 1 的值被存儲,然后除以 2(得到 30° 時間)并加載到Timer 1 的比較 A 寄存器中,再加上自身的一半得到 45° 時間并加載到Timer 1 的比較 B 寄存器中。Timer 1 比較 A 事件在過零后 30° 發(fā)生,激活下一個換相狀態(tài)并屏蔽過零,以避免在步驟結束時有源開關釋放時產(chǎn)生的電感放電(去磁)脈沖。由于電機線圈的電感,會產(chǎn)生一個等于 -Ldi/dt 的電壓,去磁通過功率橋的二極管完成。Timer 1 比較 B 事件釋放過零屏蔽,根據(jù)motor_step變量啟用比較器 n 中斷,該Timer1中斷提供去磁屏蔽延遲。
四、通信部分
4.1 RS232通信
- 連接設置:通過直接電纜將PC的COM端口連接到ATAVRMC310的RS232連接器。串行配置為:38400波特率、8 位數(shù)據(jù)位、1 個停止位、無握手。
- PC應用:用戶可以使用常見的PC串行通信應用(如Hyperterminal)或從Atmel網(wǎng)站(http://www.atmel.com)下載的“Motor Control Center”應用通過RS232與固件通信。
-
PC終端消息和命令:上電時,終端會收到歡迎消息“ATMEL Motor Control Interface”。可以向固件發(fā)送以下命令: Command Action ru 運行電機 st 停止電機 help 獲取幫助 fw 設置電機正轉 bw 設置電機反轉 ss 設置速度(后跟速度值) gi 獲取ID g0 獲取狀態(tài) 0 g1 獲取狀態(tài) 1 - Motor Control Center:用戶指南可在安裝目錄(C:Program FilesAtmelMotor Control CenterhelpOverview.htm)中找到。使用時需先選擇AVR172目標以獲得正確的配置。
4.2 USB通信
可以通過PC與MC310板的USB連接器進行通信,具體配置細節(jié)可參考AVR470(MC310硬件用戶指南)。通信端口將成為虛擬COM端口,可使用與RS232通信相同的工具通過該虛擬COM端口進行通信。
在實際應用中,你是否遇到過類似的電機控制問題呢?對于無傳感器換相技術,你還有哪些疑問或想法?歡迎在評論區(qū)交流分享。
-
無刷直流電機
+關注
關注
61文章
745瀏覽量
49538
發(fā)布評論請先 登錄
基于ATmega32M1和ATAVRMC320的無刷直流電機無傳感器換相控制
評論