三相無刷直流電機(jī)驅(qū)動(dòng)設(shè)計(jì)
說明
- 所有的硬件和代碼已經(jīng)開源,請(qǐng)移步代碼開源連接
- 首先這個(gè)項(xiàng)目這個(gè)是自己學(xué)習(xí)的時(shí)候做的,目前已經(jīng)驗(yàn)證霍爾有感方案,其他的還沒驗(yàn)證。
- 如果當(dāng)中存在問題,歡迎評(píng)論區(qū)一起討論。
介紹
stm32直流電機(jī)控制
- 采用STM32F103C6T6A作為主控
- 主控與驅(qū)動(dòng)分離
- 采用三相逆變橋電路
- 前級(jí)采用柵極驅(qū)動(dòng)MOS,自帶閉鎖
- 驅(qū)動(dòng)板可適配有感,無感方案
項(xiàng)目簡介
??在本項(xiàng)目中。采用主控與驅(qū)動(dòng)分離的方式。其大致框圖如下所示。一共分為三塊板子,分別為BLDC_Core板(主控板)、BLDC_Drive板(驅(qū)動(dòng)板)、KEY板(按鍵板)。每個(gè)板子之間用SH1.0的線束進(jìn)行連接,目前已經(jīng)驗(yàn)證有感方案HALL換相無問題。其滿載電機(jī)空轉(zhuǎn)整個(gè)系統(tǒng)800mA。
六步法
實(shí)際上三相直流無刷電機(jī)可以理解為采用交流電來控制,而在驅(qū)動(dòng)板當(dāng)中的逆變橋就是來產(chǎn)生交流電的。在最常用的BLDC驅(qū)動(dòng)中,比較常用且簡單的就是采用六步換相來驅(qū)動(dòng)電機(jī)。而這種方法可以稱為6步法
六步法中的三相電機(jī)每次只有兩組繞組有電流通過,產(chǎn)生磁場。為了讓電機(jī)旋轉(zhuǎn),一般按照Q1Q2—Q2Q3—Q3Q4—Q4Q5—Q5Q6—Q6Q1的順序依次導(dǎo)通功率開關(guān)管。下圖是逆變器的結(jié)構(gòu)。
HALL換相位法
在本設(shè)計(jì)當(dāng)中,采用外部中斷來獲取HALL值,當(dāng)電機(jī)旋轉(zhuǎn)時(shí),會(huì)觸發(fā)HALL中斷,在中斷中讀取HALL的值,根據(jù)實(shí)際的值來進(jìn)行換相位,就能夠驅(qū)動(dòng)電機(jī)。下表是一版直流無刷電機(jī)的換相表。
根據(jù)我們的換相表,就能以此設(shè)計(jì)出六步換相的程序。以正轉(zhuǎn)為例,我們便可以設(shè)計(jì)出如下程序。其中hall_state是獲取到的霍爾的值。本設(shè)計(jì)中:上管調(diào)制,下管驅(qū)動(dòng)。
switch (hall_state)
{
case 1:
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3);//U+
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_2);//V+
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);//W+
UL_OFF;VL_OFF;WL_ON;//下管
break;
case 2:
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_3);//U+
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);//V+
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);//W+
UL_ON;VL_OFF;WL_OFF;//下管
break;
case 3:
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_3);//U+
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);//V+
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);//W+
UL_OFF;VL_OFF;WL_ON;//下管
break;
case 4:
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_3);//U+
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_2);//V+
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);//W+
UL_OFF;VL_ON;WL_OFF;//下管
break;
case 5:
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_3);//U+
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_2);//V+
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_1);//W+
UL_OFF;VL_ON;WL_OFF;//下管
break;
case 6:
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_3);//U+
HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_2);//V+
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);//W+
UL_ON;VL_OFF;WL_OFF;//下管
break;
default:
Motor_Stop();//電機(jī)停轉(zhuǎn)
break;
}
原理圖
下方給出了本設(shè)計(jì)當(dāng)中的原理圖。
BLDC_Drive原理圖
BLDC_Core原理圖
PCB
下方給出了本設(shè)計(jì)當(dāng)中的PCB。
BLDC_Drive的PCB
BLDC_Core的PCB
渲染圖
下方給出了本設(shè)計(jì)當(dāng)中的渲染圖。
BLDC_Drive的渲染圖
BLDC_Core的渲染圖
文章來源:http://www.zghlxwxcb.cn/news/detail-764731.html
軟件架構(gòu)
在軟件框架上主要采用了裸機(jī)開發(fā),適用了分時(shí)調(diào)度,采用定時(shí)器2來產(chǎn)生1MS的時(shí)基標(biāo)志位。通過這個(gè)標(biāo)志位來完成調(diào)度,具體調(diào)度部分代碼可參考User_Scheduler.c文件。在換相控制方面在HALL中斷當(dāng)中完成,電機(jī)驅(qū)動(dòng)部分代碼可參考hall.c和motor.c文件。文章來源地址http://www.zghlxwxcb.cn/news/detail-764731.html
參與貢獻(xiàn)
- 愛學(xué)習(xí)的王大可負(fù)責(zé)了硬件設(shè)計(jì),以及程序編寫。
- 幺幺零1223負(fù)責(zé)了原理圖評(píng)審,與焊接調(diào)試。
- lu yoann負(fù)責(zé)Core板和Drive板的焊接。
到了這里,關(guān)于三相直流無刷電器驅(qū)動(dòng)器(BLDC)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!