前言
無刷直流 (Brushless Direct Current, BLDC)電機是一種正快速普及的電機類型,它可在家用電器、汽車、航空航天、消費品、醫療、工業自動化設備和儀器等行業中使用。正如名稱指出的那樣,BLDC 電機不用電刷來換向,而是使用電子換向。BLDC 電機和有刷直流電機以及感應電機相比,有許多優點。其中包括:
• 更好的轉速-轉矩特性
• 快速動態響應
• 高效率
• 使用壽命長
• 運轉無噪音
• 較高的轉速範圍此外,
由於輸出轉矩與電機體積之比更高,使之在需要着重考慮空間與重量因素的應用中,大有用武之地。
無刷電機
上一節成功實現了BLDC電機的6步轉動控制,成功實現電機的正反轉功能,但電機的速度還不可控制,本節將用NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH快速爲大家實現BLDC的開環速度控制!
本節所用電機爲2836無刷電機,電機有兩組線(hall傳感器線和電機三相線),工作電壓24V,最大轉速12000rpm:
示例詳解
本節直接使用到ST的NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH 開發板進行演示
NUCLEO-F103RB對應的大致原理接線圖:
X-NUCLEO-IHM07M1 3SH部分原理圖:
-
準備操作
-
X-NUCLEO-IHM07M1 3SH是專門用於PMSM(永磁同步)或BLDC(直流無刷 )的電機驅動板,其電機驅動板驅動芯片型號爲L6230(詳細數據手冊可在st官網下載),本節主要目的是給大家演示BLDC 6步方波控制原理,僅需讓BLDC電機實現簡單正反轉動即可,僅需用到IN1,IN2, IN3和OUT1,OUT2,OUT3以及HALL傳感器信號接口H1,H2,H3。
-
需要用到的信號 |
對應MCU引腳 |
EN1 |
PC10 |
IN1 |
PA8 |
EN2 |
PC11 |
IN2 |
PA9 |
EN3 |
PC12 |
IN3 |
PA10 |
H1 |
PA15 |
H2 |
PB3 |
H3 |
PB10 |
爲了更加簡單地介紹清楚BLDC 6 步方波控制的具體實現,爲了實現電機的速度控制,本節直接使用STM32的TIM1產生三路PWM波對應信號IN1、IN2、IN3,通過調節PWM波佔空比實現電機的速度控制;將EN1、EN2、EN3配置成普通輸出IO口輸出模式,H1,H2,H3配置成TIM2的hall傳感器模式,並開啓T1的捕獲中斷,中斷觸發模式爲雙邊觸發模式,在中斷服務程序中實理更加快帶的電機換相(6步換步)操作。
-
在STM32CubeMX中,有專門的NUCLEO-F103RB工程模板,新建一個Cube工程,芯片型號爲st32f103rb:
生成一個簡單的工程模板實現了RCC,SYS,USART2接口的配置,同時還實現了LD2(LED)引腳的配置。接下來手動配置各功能模塊,首先是TIM1,配置成三路PWM 模式1輸出,PWM載波頻率是20Khz = 72M/(2+1)/(1199+1),各通道初始PWM波是500:
接下來是TIM2配置,開啓三路輸入捕獲功能,使能XOR功能,開啓定時器中斷:
上圖中所述想要直接利用TIM2的HALL傳感器功能,僅在CUBE中配置是不點問題的,原因如下,在配置輸入捕獲通道時,很多模式不可選:
而要直正實現STM32的定時器HALL傳感器接口功能,除了要開啓XOR功能外(在CUBE可直接勾選):
還需要用到TI1F_ED(直接的雙邊沿檢測)信號,TRC信號..並最終產生CC1I中斷,完整的信號流圖如下圖:
故還需要開啓中斷,並最終要在自動生成的TIM.C中進行適當修改(後面源碼上有介紹):
最後是PC10,PC11,PC12普通IO功能配置,GPIO_OUTPUT模式,默認輸出爲低:
生成工程:
-
打開工程, 加入事先準備好的BLDC.C(在src文件夾)和BLDC.H(在INC文件夾)文件:
同時在tim.c及stm32f1xx_it.c中加入如下代碼:
最後在main.c中加入如下代碼:
設置工程下載後自動運行:
編譯代碼,下載程序運行可直以看到電機成功轉動起來,用是按程序設定的不通pwmref值(通過BldcUpdataPwm接口設置),電機速度不同,如果有示波器可以看到三相線上的輸出電壓波形圖如下:
Pwmref = 500電機三相波形圖
Pwmref = 100 電機三相波形圖
OK,本期實驗完成!本節通過stm32的TIM1產生PWM來控制Bldc電機的平均工作電壓,實現了對BLDC電機的開環速度控制,通過TIM2配置了hall 功能接口實現了對bldc電機hall位置的獲取,在TIM2中斷服務函數中完成對bldc電機的換相操作。下一節將介紹實現bldc電機的閉環電流控制。最後如果大家有什麼疑問或是有想了解的其它內容,也歡迎大家留言!!最後喜歡這個公衆號的同學們記得加關注了,每天都會有技術乾貨推出!!
文中源碼及資料下載,微信關注十三公衆號“張十三的博客”,在公衆號裏給十三發送 “下載|STM32 電機教程 11”