基于STM32的直流電機PWM調速控制_第1頁
基于STM32的直流電機PWM調速控制_第2頁
基于STM32的直流電機PWM調速控制_第3頁
基于STM32的直流電機PWM調速控制_第4頁
基于STM32的直流電機PWM調速控制_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、式催理7人考(嵌入式系統(tǒng)及接口技術課程大作業(yè))課程名稱:嵌入式系統(tǒng)及接口技術班級專業(yè):_姓名學號: 指導老師:電動摩托車控制器中的電機PWM調速摘要:隨著“低碳”社會理念的深入,新型的電動摩托車發(fā)展迅速,逐漸成為人們 主要的代步工具之一,由于直流無刷電機的種種優(yōu)點,在電動摩托車中也得到了 廣泛應用,因此,本文控制部分主要介紹一種基于 STM32F103芯片的新型直流 無刷電機調速控制系統(tǒng),這里主要通過 PWM技術來進行電機的調速控制,且運 行穩(wěn)定,安全可靠,成本低,具有深遠的意義。1 .總體設計概述1.1 直流無刷電機及工作原理直流無刷電機(簡稱BLDCM),由于利用電子換向取代了傳統(tǒng)的機械電

2、刷和 換向器,使得其電磁性能可靠,結構簡單,易于維護,既保持了直流電機的優(yōu)點 又避免了直流電機因電刷而引起的缺陷 ,因此,被廣泛應用。另外,由于直流 無刷電機專用控制芯片價格昂貴,本文介紹了一種基于STM32的新型直流無刷電機控制系統(tǒng),既可降低直流無刷電機的應用成本, 又彌補了專用處理器功能單 一的缺點,具有重要的現(xiàn)實意義和發(fā)展前景。工作原理:直流無刷電機是同步電機的一種,具轉子為永磁體,而定子則為 三個按照星形連接方式連接起來的線圈, 根據(jù)同步電機的原理,如果電子線圈產 生一個旋轉的磁場,則永磁體的轉子也會隨著這個磁場轉動因此, 驅動直流無刷 電機的根本是產生旋轉的磁場,而這個旋轉的磁場可以

3、通過調整A、B、C三相的電流來實現(xiàn),其需要的電流如圖1所示隨著我國經濟和文化事業(yè)的發(fā)展,在很多場合,都要求有直流電機PWM調速系統(tǒng)來進行調速,諸如汽車行業(yè)中的各種風扇、刮水器、噴水泵、熄火器、反 視鏡、賓館中的自動門、自動門鎖、自動窗簾、自動給水系統(tǒng)、柔巾機、導彈、 火炮、人造衛(wèi)星、宇宙飛船、艦艇、飛機、坦克、火箭、雷達、戰(zhàn)車等場合。1.2總體設計方案總體設計方案的硬件部分詳細框圖如圖1所示ADC模塊圖1總體方案系統(tǒng)框圖該方案主要運行狀況如下:通過摩托車車把的轉動來改變其機械位置, 然后這個變量通過ADC轉換后,傳送其調速信號給 STM32F103,另外,霍 爾傳感器將其對電機速度的檢測信號也

4、傳送給 STM32,在STM32中,首先 根據(jù)ADC的值改變PWM波形,并且與霍爾傳感器的檢測信號進行疊加, 最 終輸出疊加后的PWM波形給功率驅動電路,從而驅動電機并對其進行速度 的控制和調節(jié)。2,系統(tǒng)硬件設計2.1 總體硬件框圖系統(tǒng)的硬件電路選用STM32F103為主控芯片,作為電機控制的核心,通 過霍爾位置傳感器檢測位置信號,結合功率驅動電路以實現(xiàn)對電機的驅動。 止匕外,還有電流檢測電路可根據(jù)電機的狀態(tài)以調整轉速和實現(xiàn)過流保護功能 系統(tǒng)的硬件框圖如圖2所示:STM32F103圖2系統(tǒng)硬件框圖2.2 電機功率驅動電路設計直流無刷電機是將直流有刷電機的機械換向改進成電子換向而來的,要使其轉動

5、,就必須通過電子換向的方法調整電流,按照轉子所在的位置產生轉動磁場, 主控芯片控制H半橋驅動電路產生電機轉動的換向電流,以產生轉動的磁場, 驅動電路如圖3所示驅動電路的作用是將控制電路輸出的脈沖放大到足以驅動功率晶體管或 MOSFET管,所以單從原理上講,驅動電路主要起開關功率放大作用,即脈沖放 大器。但隨著開關工作頻率的提高,驅動電路的優(yōu)化設計顯得越來越重要。驅動 電路的最佳驅動特性應具有:功率管開通時,驅動電路提供的基極電流應有快速 的上升沿,并一開始有一定的過沖,以加速開通過程,并在集電極電流尖峰時開 啟驅動基極,從而減小開通損耗;功率管導通期間,驅動電路提供的基極電流在 任何負載情況下

6、都能保證功率管處于飽和導通狀態(tài),使功率管的飽和壓降較低, 以保證低的導通損耗;關斷瞬時,驅動電路應提供足夠的反向基極驅動,以迅速抽出基區(qū)的剩余載流子,并加反偏截止電壓,使集電極電流迅速下降以減少下降 時間。為了增加系統(tǒng)的抗干擾能力,STM32輸出的6路PWM信號首先必須經隔離 再送到IR2136進行驅動,由于開關速度達到 20KHz左右,故設計中選用高速光 耦器件HCPL4504,見圖3,其最高速度可達1Mbit/s,內部的噪聲抑制電路可 提供高于15kV/us的共模抑制。IR2136是IR公司的一款功率MOSFET IGBT專用柵極驅動集成電路,獨有 的I-IVIC(High voltage

7、 integrated circuit) 技術使得它可用作驅動工作在母線電壓 高達600V的電路中的功率MOS器件。其內部采用自舉技術,使得功率驅動元 件驅動電路僅需輸入一個直流電源,使其實現(xiàn)對功率MOSFET和IGBT的最優(yōu)驅動,并且它還具有完善的保護功能包括欠壓保護和過流保護,以便保證系統(tǒng)安全穩(wěn)定的工作。故本文選用IR2136作為主功率部分的MOSFET驅動,如圖3所示:圖3中經IR2136驅動的6路PwM信號被直接送到由6個MOSFET管組成的 主功率電路。如圖所示,該功率驅動采用三相全控電路,電動機的三相繞組為 Y 型聯(lián)結。MOSFET管選用IR公司的IRFZ48,該管導通電阻較低,當

8、連續(xù)流過10A 電流時,功耗才1 . 2w,根本不需要散熱片就可以穩(wěn)定工作。圖3功率驅動電路2.3 直流無刷電機的調速直流無刷電機調速的原理就是在驅動電機轉動的基礎上,將驅動電流由 PWM信號來控制,改變PWM信號的脈沖寬度,即通過調節(jié)MOSFET通斷的時 間來調節(jié)提供給電機三相的電流大小,從而對電機進行調速控制。本方案中MOSFET管的導通是通過 STM32的PWM 信號來控制的,STM32 內部的普通的定時器 TIM3和TIM4,每個可以產生四路 PWM發(fā)生器,這里用 TIM3產生4路,TIM4產生兩路,共六路可編程的 PWM信號,驅動H橋。直流無刷電機的電子換向是基于轉子的位置來控制的,

9、本系統(tǒng)采用3個霍爾傳感器對直流無刷電機進行位置測量 霍爾傳感器安裝在電機的內部,將轉子的 位置轉換為三路數(shù)字信號直接輸出到 STM32的GPIO 口在本設計中可方便地用 于通過檢測霍爾位置傳感器的信號來實現(xiàn)檢測轉子的位置,然后據(jù)此輸出相應的 PWM信號控制功率管的導通或關斷,從而實現(xiàn)電流的換向,在電機內部產生一 個轉動的磁場,進而驅動電機旋轉。另外,車把轉動的時候會通過一個 DA轉換, 然后得到調速的標志flag的值,從而根據(jù)這個flag值來改變PWM波的占空比, 從而進行電機的調速。直流無刷電機旋轉時三個霍爾傳感器的信號值和輸出的PWM信號之間的對應關系如圖4所小1 胴,HO Oto 111

10、 t UUl MilPV MlPU M2P5 M3P姆M4PW MS rJM iii W1圖4相位與PWM信號的對應關系霍爾傳感器的位置反饋信號在可以確定轉子位置的同時,也可用來測量電機的轉 速電機每轉動一周,每個霍爾傳感器即會產生兩次換向,三個霍爾傳感器共會有6次換相,這六次換相之間的時間差即為電機運轉一周所需的時間, 繼而可計 算出電機的轉速 根據(jù)計算出的電機轉速,調整 PWM信號的脈沖寬度,從而達 到調速的目的3.系統(tǒng)軟件設計本系統(tǒng)編程部分工作在keil4開發(fā)環(huán)境下完成,采用模塊化的設計方法, 與各子程序作為實現(xiàn)各部分功能和過程的入口 , 完成PWM脈寬調速的控制, STM32F103資

11、源分配如下表:表1芯片的資源分配GPIOD4霍爾傳感 器輸出端GPIOA6利用定時器TIM3,TIM4 產生的六路PWM輸出GPIOA7GPIOD5GPIOB0GPIOB1GPIOD6GPIOB6GPIOB71. PWM產生程序:本設計中采用 STM32F103的定時器TIM3, TIM4兩個定時器來產生PWM波形,程序函數(shù)如下:#include "timer.h"通用定時器中斷初始化這里時鐘選擇為 APB1的2倍,而APB1為36M/arr :自動重裝值。/psc :時鐘預分頻數(shù)/這里使用的是定時器 3 void Timerx_Init(u16 arr,u16 psc)

12、一RCC->APB1ENR|=1<<1;/TIM3時鐘使能TIM3->ARR=arr;設定計數(shù)器自動重裝值 剛好1msTIM3->PSC=psc;預分頻器7200,得到10Khz的計數(shù)時鐘/這兩個東東要同時設置才可以使用中斷TIM3->DIER|=1<<0;/ 允許更新中斷TIM3->DIER|=1<<6;允許觸發(fā)中斷TIM3->CR1|=0x01;使能定時器 3MY_NVIC_Init(1,3,TIM3_IRQChannel,2);/ 搶占 1,子優(yōu)先級 3,組 2 void PWM1_1_Init(u16 arr1,u

13、16 psc1) 一一此部分需手動修改IO 口設置 RCC->APB1ENR|=1<<1;/TIM3 時鐘使能GPIOA->CRL&=0XF0FFFFFF;/PA6 輸出GPIOA->CRL|=0X0B000000;/ 復用功能輸出GPIOA->ODR|=1<<6;PA6上拉TIM3->ARR=arr1;/設定計數(shù)器自動重裝值TIM3->PSC=psc1;預分頻器不分頻TIM3->CCMR1|=7<<4;/CH1 PWM2 模式TIM3->CCMR1|=1<<3; /CH1 預裝載使能TIM

14、3->CCER|=1<<0;/OC1 輸出使能TIM3->CR1=0x8000;/ARPE 使能TIM3->CR1|=0x01; 使能定時器 3)void PWM1_2_Init(u16 arr2,u16 psc2)(此部分需手動修改IO 口設置RCC->APB1ENR|=1<<1;/TIM3 時鐘使能GPIOA->CRL&=0X0FFFFFFF;/PA7 輸出GPIOA->CRL|=0XB0000000;/ 復用功能輸出GPIOA->ODR|=1<<7;/PA7 上拉TIM3->ARR=arr2;/設

15、定計數(shù)器自動重裝值TIM3->PSC=psc2;/預分頻器不分頻TIM3->CCMR1|=7<<12;/CH2 PWM2 模式TIM3->CCMR1|=1<<11; /CH2 預裝載使能/OC2輸出使能 /ARPE使能使能定時器3TIM3->CCER|=1<<4;TIM3->CR1=0x8000;TIM3->CR1|=0x01;) void PWM1_3_Init(u16 arr3,u16 psc3)(此部分需手動修改IO 口設置RCC->APB1ENR|=1<<1;/TIM3 時鐘使能GPIOB->

16、;CRL&=0XFFFFFFF0;/PB0 輸出GPIOB->CRL|=0X0000000B;/ 復用功能輸出GPIOB->ODR|=1<<0;/PB0 上拉TIM3->ARR=arr3;/設定計數(shù)器自動重裝值TIM3->PSC=psc3;/預分頻器不分頻TIM3->CCMR2|=7<<4;/CH3 PWM2 模式/OC3輸出使能 /ARPE使能使能定時器3TIM3->CCMR2|=1<<3; /CH3預裝載使能TIM3->CCER|=1<<8;TIM3->CR1=0x8000;TIM3-&

17、gt;CR1|=0x01;) void PWM1_4_Init(u16 arr4,u16 psc4)(一一此部分需手動修改IO 口設置RCC->APB1ENR|=1<<1;/TIM3 時鐘使能GPIOB->CRL&=0XFFFFFF0F;/PB1 輸出GPIOB->CRL|=0X000000B0;/ 復用功能輸出GPIOB->ODR|=1<<1;/PB1 上拉TIM3->ARR=arr4;/設定計數(shù)器自動重裝值TIM3->PSC=psc4;/預分頻器不分頻TIM3->CCMR2|=7<<12;/CH4 PWM

18、2 模式TIM3->CCMR2|=1<<11; /CH4預裝載使能TIM3->CCER|=1<<12;/OC4 輸出使能TIM3->CR1=0x8000;/ARPE 使能TIM3->CR1|=0x01;使能定時器 3)void PWM2_1_Init(u16 arr5,u16 psc5)(此部分需手動修改IO 口設置RCC->APB1ENR|=1<<2;/TIM4 時鐘使能GPIOB->CRL&=0XF0FFFFFF;/PB6 輸出 GPIOB->CRL|=0X0B000000;/ 復用功能輸出GPIOB-&

19、gt;ODR|=1<<6;/PB6 上拉TIM4->ARR=arr5;/設定計數(shù)器自動重裝值TIM4->PSC=psc5;/預分頻器不分頻TIM4->CCMR1|=7<<4;/CH1 PWM2 模式TIM4->CCMR1|=1<<3; /CH1預裝載使能TIM4->CCER|=1<<0;/OC1 輸出使能TIM4->CR1=0x8000;/ARPE 使能TIM4->CR1|=0x01;使能定時器 4void PWM2_2_Init(u16 arr6,u16 psc6) 此部分需手動修改IO 口設置RCC-

20、>APB1ENR|=1<<2;/TIM4 時鐘使能GPIOB->CRL&=0X0FFFFFFF;/PB7 輸出GPIOB->CRL|=0XB0000000; 復用功能輸出GPIOB->ODR|=1<<7;/PB7 上拉TIM4->ARR=arr6;/設定計數(shù)器自動重裝值TIM4->PSC=psc6;/預分頻器不分頻TIM4->CCMR1|=7<<12;/CH2 PWM2 模式TIM4->CCMR1|=1<<11; /CH2 預裝載使能TIM4->CCER|=1<<4;/OC

21、2 輸出使能TIM4->CR1=0x8000;/ARPE 使能TIM4->CR1|=0x01;使能定時器 42、霍爾傳感器部分的程序#include "huoer.h"void huoer_Init(void)一RCC->APB2ENR|=1<<5;/ 使能 PORTD 時鐘GPIOD->CRL&=0XF000FFFF;/PD4,5,5 設置成輸入 GPIOD->CRL|=0X08880000;GPIOD->ODR|=1<<4;/PD4上拉GPIOD->ODR|=1<<5;/PD5上拉GP

22、IOD->ODR|=1<<6;/PD6上拉3、延時程序#include <stm32f10x_lib.h>#include "delay.h"static u8 fac_us=0;/us 延時倍乘數(shù)static u16 fac_ms=0;/ms 延時倍乘數(shù)/初始化延遲函數(shù)/SYSTICK的時鐘固定為 HCLK時鐘的1/8SYSCLK:系統(tǒng)時鐘void delay_init(u8 SYSCLK)SysTick->CTRL&=0xfffffffb;/bit2清空,選擇外部時鐘HCLK/8fac_us=SYSCLK/8;fac_ms=(

23、u16)fac_us*1000; 一一/延時nms/SysTick->LOAD 為24位寄存器,所以,最大延時為:/nms<=0xffffff*8*1000/SYSCLK / 對 72M 條件下,nms<=1864 void delay_ms(u16 nms) ( u32 temp;SysTick->LOAD=(u32)nms*fac_ms;/ 時間加載(SysTick->LOAD 為 24bit) SysTick->VAL =0x00;/ 清空計數(shù)器SysTick->CTRL=0x01 ;/ 開始倒數(shù)do ( temp=SysTick->CTR

24、L; while(temp&0x01&&!(temp&(1<<16);等待時間到達SysTick->CTRL=0x00;/ 關閉計數(shù)器SysTick->VAL =0X00;/ 清空計數(shù)器 /延時nus /nus為要延時的us數(shù). void delay_us(u32 nus) ( u32 temp; SysTick->LOAD=nus*fac_us; / 時間加載 SysTick->VAL=0x00;/ 清空計數(shù)器SysTick->CTRL=0x01 ;/ 開始倒數(shù)do ( temp=SysTick->CTRL; w

25、hile(temp&0x01&&!(temp&(1<<16);等待時間到達SysTick->CTRL=0x00;/ 關閉計數(shù)器SysTick->VAL =0X00;/ 清空計數(shù)器4、主程序#include <stm32f10x_lib.h>#include "sys.h" #include "delay.h" #include "timer.h" #include "huoer.h" int main(void) ( u8 flag;/DA轉換過來

26、的調速標志Stm32_Clock_Init(9); 系統(tǒng)時鐘設置 delay_init(72);/ 延時初始化PWM1_1_Init(900,0);/不分頻。PWM 頻率=72000/900=8KhzPWM1_2_Init(900,0); PWM1_3_Init(900,0); PWM1_4_Init(900,0); PWM2_1_Init(900,0); PWM2_2_Init(900,0); while(1) ( switch(flag) (case 0:PWM1_VAL=900;PWM2_VAL=900;PWM3_VAL=900;PWM4_VAL=900;PWM5_VAL=900;PWM

27、6_VAL=900; break;if(huoer1=1)&&(huoer3=0)PWM1_VAL=300;elsePWM1_VAL=900;if(huoer1=0)&&(huoer2=1)PWM2_VAL=300;elsePWM2_VAL=900;if(huoer2=0)&&(huoer3=1)PWM3_VAL=300;elsePWM3_VAL=900;if(huoer1=0)&&(huoer3=1)PWM4_VAL=300;elsePWM4_VAL=900;if(huoer1=1)&&(huoer2=0)PWM

28、5_VAL=300;elsePWM5_VAL=900;if(huoer2=1)&&(huoer3=0)PWM6_VAL=300;elsePWM6_VAL=900;break;if(huoer1=1)&&(huoer3=0)PWM1_VAL=350;elsePWM1_VAL=900;if(huoer1=0)&&(huoer2=1)PWM2_VAL=350;elsePWM2_VAL=900;if(huoer2=0)&&(huoer3=1)PWM3_VAL=350;elsePWM3_VAL=900;if(huoer1=0)&&a

29、mp;(huoer3=1)PWM4_VAL=350;elsePWM4_VAL=900;if(huoer1=1)&&(huoer2=0)PWM5_VAL=350;elsePWM5_VAL=900;if(huoer2=1)&&(huoer3=0)PWM6_VAL=350;elsePWM6_VAL=900;break;if(huoer1=1)&&(huoer3=0)PWM1_VAL=400;elsePWM1_VAL=900;if(huoer1=0)&&(huoer2=1)PWM2_VAL=400;elsePWM2_VAL=900;if(

30、huoer2=0)&&(huoer3=1)PWM3_VAL=400;elsePWM3_VAL=900;if(huoer1=0)&&(huoer3=1)PWM4_VAL=400;elsePWM4_VAL=900;if(huoer1=1)&&(huoer2=0)PWM5_VAL=400;elsePWM5_VAL=900;if(huoer2=1)&&(huoer3=0)PWM6_VAL=400;elsePWM6_VAL=900;break;if(huoer1=1)&&(huoer3=0) PWM1_VAL=450;els

31、ePWM1_VAL=900;if(huoer1=0)&&(huoer2=1)PWM2_VAL=450;elsePWM2_VAL=900;if(huoer2=0)&&(huoer3=1)PWM3_VAL=450;elsePWM3_VAL=900;if(huoer1=0)&&(huoer3=1)PWM4_VAL=450;elsePWM4_VAL=900;if(huoer1=1)&&(huoer2=0)PWM5_VAL=450;elsePWM5_VAL=900;if(huoer2=1)&&(huoer3=0)PWM6_V

32、AL=450;elsePWM6_VAL=900;case 1:case 2:case 3:case 4:break;case 5: if(huoer1=1)&&(huoer3=0) elseif(huoer1=0)&&(huoer2=1) elseif(huoer2=0)&&(huoer3=1) elseif(huoer1=0)&&(huoer3=1) elseif(huoer1=1)&&(huoer2=0) elseif(huoer2=1)&&(huoer3=0) elsebreak;case 6

33、: if(huoer1=1)&&(huoer3=0) elseif(huoer1=0)&&(huoer2=1) elseif(huoer2=0)&&(huoer3=1) elseif(huoer1=0)&&(huoer3=1) elseif(huoer1=1)&&(huoer2=0) elseif(huoer2=1)&&(huoer3=0) elsebreak;case 7: if(huoer1=1)&&(huoer3=0) elseif(huoer1=0)&&(hu

34、oer2=1) elseif(huoer2=0)&&(huoer3=1) elseif(huoer1=0)&&(huoer3=1) elseif(huoer1=1)&&(huoer2=0) elseif(huoer2=1)&&(huoer3=0) elsebreak;PWM1_VAL=500;PWM1_VAL=900;PWM2_VAL=500;PWM2_VAL=900;PWM3_VAL=500;PWM3_VAL=900;PWM4_VAL=500;PWM4_VAL=900;PWM5_VAL=500;PWM5_VAL=900;PWM6_VAL=500;PWM6_VAL=900;PWM1_VAL=550;PWM1_VAL=900;PWM2_V

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論