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