PIC16F72電動車控制器源程序_第1頁
PIC16F72電動車控制器源程序_第2頁
PIC16F72電動車控制器源程序_第3頁
PIC16F72電動車控制器源程序_第4頁
PIC16F72電動車控制器源程序_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、PIC16F72電動車控制器源程序PIC16F72單片機控制的電動自行車C源程序,原理圖及設計說明table=98%trtdcolor=blackuPIC16F72單片機控制的電動自行車C源程序,原理圖及設計說明/u/color/td/trtrtdtable=95%trtdPIC16F72單片機控制的電動自行車驅動系統C程序PIC單片機控制的電動自行車驅動系統C程序.46.#include <pic.h>/電動車雙閉環程序,采用雙閉環方式控制電機,以得到最好的zh 轉速性能,并且可以/限制電機的最大電流。本應用程序用到兩個CCP 部件,其中CCP1 用于PWM 輸出,以控/制電機電

2、壓;CCP2 用于觸發AD,定時器TMR2、TMR1,INT 中斷,RB 口電平變化中斷,/看門狗以及6 個通用I/O 口#define AND 0xe0 /狀態采集5,6,7 位#define CURA 0X0a /電流環比例和積分系數之和#define CURB 0X09 /電流環比例系數#define THL 0X6400 /電流環最大輸出#define FULLDUTY 0X0FF /占空比為1 時的高電平時間#define SPEA 0X1d /轉速環比例和積分系數之和#define SPEB 0X1c /轉速環比例系數#define GCURHILO 0X0330 /轉速環最大輸出

3、#define GCURH 0X33 /最大給定電流#define GSPEH 0X67 /最大轉速給定#define TSON 0X38 /手柄開啟電壓1.1 V,TSON*2 為剎車后手柄開啟電壓,即/2.2 V#define VOLON 0X4c /低電壓保護重開電壓3.0 V 即33 V#define VOLOFF 0X49 /低電壓保護關斷電壓2.86 V 即31.5 Vvolatile unsigned char DELAYH,DELAYL,oldstate,speed,speedcount,tsh,count_ts,count_vol,gcur,currenth,voltage;

4、 /寄存器定義static bit sp1,spe,ts,volflag,spepid,lowpower,off,shutdown,curpid; /標志位定義static volatile unsigned char new10=0xaf,0xbe,0xff,0x7e,0xcf,0xff,0xd7,0x77,0xff,0xff; /狀態寄存器表/-PIC16F877 初始化子程序-void INIT877()PORTC=0X0FF; /關斷所有MOSFETTRISC=0X02; /設置C 口輸出PIE1=0X00; /中斷寄存器初始化,關斷所有中斷TRISA=0XCF; /設置RA4,RA5

5、 輸出TRISB=0XEF; /RB 口高三位輸入,采集電機三相的霍爾信號PORTC=new(PORTB&AND)>>5; /采集第一次霍爾信號,并輸出相應的信號,導通/兩個MOS 管T2CON=0X01; /TMR2 4 分頻CCPR1L=0X0FF; /初始時PWM 輸出全高CCP1CON=0X0FF; /CCP1 設置為PWM 方式CCP2CON=0X0B; /CCP2 設置為特殊方式,以觸發ADADCON0=0X81; /AD 時鐘為32 分頻,且AD 使能,選擇AN0 通道采集手/柄電壓TMR2=0X00; /TMR2 寄存器初始化TMR1H=0X00; /TMR

6、1 寄存器初始化TMR1L=0X00;T1CON=0X00; /TMR1 為1 分頻CCPR2H=0X08;CCPR2L=0X00; /電流采樣周期設置為TAD=512 sPR2=0XC7; /PWM 頻率設置為5 kHzADCON1=0X02; /AD 結果左移OPTION=0XFB; /INT 上升沿觸發TMR2ON=1; /PWM 開始工作INTCON=0XD8; /中斷設置GIE=1,PEIE=1,RBIE=1ADIE=1; /AD中斷使能speedcount=0x00; /轉速計數寄存器speed=0x7f; /轉速保持寄存器spe=1; /低速標志位sp1=1; /低速標志位old

7、state=0x0ff; /初始狀態設置,區別于其他狀態count_ts=0x08; /電流采樣8 次,采集1 次手柄count_vol=0x00; /采樣256 次手柄,采集1 次電池電壓ts=1; /可以采集手柄值的標志位ADGO=1; /AD采樣使能TMR1ON=1; /CCP2 部件開始工作/-延時子程序-#pragma interrupt_level 1void DELAY1(x)char x;DELAYH=x; /延時參數設置#asmDELAY2 MOVLW 0X06MOVWF _DELAYLDELAY1 DECFSZ _DELAYLGOTO DELAY1DECFSZ _DELAY

8、HGOTO DELAY2#endasm/-狀態采集子程序-void sample()char state1,state2,state3,x;do x=1;state1=(PORTB&AND); /霍爾信號采集DELAY1(x);state2=(PORTB&AND);while(state1-state2); /當三次采樣結果不相同時繼續采集狀態if(state1-oldstate!=0) /看本次采樣結果是否與上次相同,不同/則執行oldstate=state1; /將本次狀態設置為舊狀態state1=(oldstate>>5);PORTC=newstate1; /

9、C 口輸出相應的信號觸發兩個MOS 管if(sp1=1)spe=1;sp1=0;else /如果轉速很低,則spe 置1spe=0;sp1=0;speedcount<<=1;state3=(TMR1H>>2); /否則,spe=0,計轉速speed=speedcount+state3; /speed 寄存器為每256 s 加1speedcount=0;/-AD 采樣子程序-void AD()char x;ADIF=0; /清AD 中斷標志位if(ts=1) /如果為手柄采樣,則采樣手柄值CHS0=1; /選擇電流采樣通道count_vol=count_vol+1; /電

10、池采樣計數寄存器spepid=1; /置轉速閉環運算標志ts=0;tsh=ADRESH; /存手柄值if(count_vol=0) /如果電池采樣時間到,則選擇AN2 通道,采集電池電壓CHS0=0;CHS1=1;volflag=1;x=1;DELAY1(x);ADGO=1;else if(volflag=1) /電池采樣完畢,進行相應的處理CHS1=0;CHS0=1;volflag=0;voltage=ADRESH;lowpower=1;else /否則,中斷為采樣電流中斷speedcount=speedcount+1; /speedcount 寄存器加1,作為測量轉速用if(speedco

11、unt>0x3d) sp1=1; /如果轉速低于1 000 000 s/(512 s*3eh*3)/ 則認為為低速狀態currenth=ADRESH;curpid=1;count_ts=count_ts-1;if(count_ts=0) /如果手柄時間到,則轉入手柄采樣通道CHS0=0;count_ts=0x08;ts=1;x=1;DELAY1(x);ADGO=1;/-剎車處理子程序-void BREAKON()char x;off=0; /off清零,如果是干擾則不復位shutdown=0;if(RB0=1) /如果剎車信號為真,則停止輸出電壓ADIE=0; /關AD 中斷INTE=0

12、; /關剎車中斷CCPR1L=FULLDUTY; /輸出電壓0TMR1ON=0; /關CCP2,不再觸發ADfor(;ADGO=1;) continue;/如正在采樣,則等待采樣結束ADIF=0; /ADIF 位清零CHS0=0; /選擇通道0 采樣手柄CHS1=0;x=1;DELAY1(x);do ADGO=1;for(;ADIF=0;)continue;ADIF=0;CCPR1L=FULLDUTY;asm("CLRWDT");tsh=(ADRESH>>1);while(tsh>TSON|RB0=1); /當手柄值大于2.2 V 或剎車仍舊繼續時,執行以

13、/上語句off=1; /置復位標志/-欠保護子程序-void POWER()char x;lowpower=0;voltage>>=1; /電壓值換為7 位,以利于單字節運算if(voltage<VOLOFF) /電池電壓小于3*k(V)時保護ADIE=0;INTE=0;TMR1ON=0;CCPR1L=FULLDUTY;for(;ADGO=1;)continue;ADIF=0;CHS0=0;CHS1=1;x=1;DELAY1(x);doADGO=1;for(;ADIF=0;)continue;ADIF=0;voltage=(ADRESH>>1);CCPR1L=FU

14、LLDUTY;asm("CLRWDT");while(voltage<VOLON); /電池電壓小于35 V 時繼續保護off=1; /置復位標志/-電流環運算子程序-void CURPI() static int curep=0x00,curek=0x00,curuk=0x00;union dataint pwm;char a2;b; /定義電流環運算寄存器curpid=0; /清電流運算標志curep=curek*CURB; /計算上一次偏差與比例系數的積if(currenth<2)currenth=2; /如果采樣電流為零,則認為有一個小電流以利于/使轉速

15、下降currenth>>=1;curek=gcur-currenth; /計算本次偏差curuk=curuk+curek*CURA-curep; /按閉環PI 運算方式得到本次輸出結果,下/面對結果進行處理if(curuk<0x00) /如果輸出小于零,則認為輸出為零curuk=0;CCPR1L=FULLDUTY;CCP1X=0;CCP1Y=0;else if(curuk-THL>=0) /如果輸出大于限幅值,則輸出最大電壓curuk=THL;CCPR1L=0;CCP1X=0;CCP1Y=0;else /否則,按比例輸出相應的高電平時間到CCPR1 寄存器b.pwm=T

16、HL-curuk;b.pwm<<=1;CCPR1L=b.a1; /CCPR1L=(b.pwm>>8)&0x0ff;將PWM 寄存器的高半字節if(b.pwm&0x80!=0) CCP1X=1;else CCP1X=0;if(b.pwm&0x40!=0) CCP1Y=1;else CCP1Y=0;/-轉速環運算子程序-void SPEPI() static int speep=0x00,speek=0x00,speuk=0x00;int tsh1,speed1; /轉速寄存器定義spepid=0; /清轉速運算標志if(spe=1) speed1=

17、0x00; /若轉速太低,則認為轉速為零else speed1=0x7f-speed; /否則計算實際轉速if(speed1<0) speed1=0;speep=speek*SPEB;tsh1=tsh-0x38; /得到計算用的手柄值speek=tsh1-speed1;if(tsh1<0) speuk=0;gcur=0; /當手柄值低于1.1 V 時,則認為手柄給定為零else /否則,計算相應的轉速環輸出if(tsh1>=GSPEH) /限制最大轉速tsh1=GSPEH;speuk=speuk+speek*SPEA-speep; /計算得轉速環輸出if(speuk<=

18、0X00) speuk=0x00;gcur=0x00;/轉速環輸出處理else if(speuk>GCURHILO) /轉速環輸出限制,即限制最大電流約12 Aspeuk=GCURHILO;gcur=GCURH;else /調速狀態時的輸出gcur=(speuk>>4)&0x0ff;/-主程序-main()for(;)INIT877(); /單片機復位后,先對其進行初始化off=0; /清復位標志for(;off=0;) /復位標志為零,則執行下面程序,否則復位if(curpid=1) CURPI(); /電流PI 運算else if(spepid=1) SPEPI(

19、); /轉速PI 運算else if(lowpower=1) POWER();else if(shutdown=1) BREAKON();asm("CLRWDT");/-中斷服務子程序-#pragma interrupt_level 1void interrupt INTS(void)if(RBIF=1) RBIF=0;sample();else if(ADIF=1) AD();else if(INTF=1) shutdown=1;INTF=0; /剎車中斷來,置剎車標志設計思路:目 的目前電動車市場各種功能無刷控制器琳瑯滿目,種類繁多。普通模擬專用芯片已是窮途末路,而利用

20、單片機控制則能做到“只有想不到,不怕做不到”地步,五花八門的單片機紛紛推向電動車這個新興的行業。我公司根據電動車市場的流行趨勢,制定了無刷控制器的設計方案。功能概述目前電動車市場上的控制器分有刷控制器和無刷控制器兩大類,由于有刷電機輸出扭距小,效率低,需要定期更換炭刷等諸多缺點而逐步被輸出扭距大、效率高、使用壽命長的無刷電機取代。根據電動車車型分簡易車和豪華車型以及電動摩托車,簡易車功率一般在250W以下,而豪華車都在350W以上,設計時必須考慮。簡易車的常用功能有1:1助力、巡航、電量及工作狀態顯示。工作模式有自動和手動切換兩種。豪華車型根據客戶的隨意性有很多功能,主要有飛車保護、軟ABS剎

21、車、反充電、雙動力(檔位切換)、電機鎖(關閉電源電機鎖定)等。為方便調試和防止非法解密,設計采用專用調試工具,外接一個帶有鍵盤和顯示器(數碼管)的工具來設定一些基本參數,如欠壓値、限流、相位選擇和工作電壓選擇等。可以利用單片機內部或外接EEPROM保存設置參數。通過該調試工具達到系列產品的通用性。主要技術參數1 基本功能1.1 工作電壓鍵盤設定,分12、24、36、48、60、72V檔,根據輸入電壓采樣值,確定欠壓保護值,單節電池保護電壓為10.5V±0.5V,低于該值關閉輸出。由于取樣電壓有相應的誤差,用鍵盤應可以微調。欠壓工作方式:當電源電壓低于設定值時,關閉輸出,當電源電壓滯回

22、到大于設定值2V時,開啟輸出。另一種方式為當電源電壓低于電池容量的50時,相應縮減輸出脈寬,以10個百分點逐減,到設定值時減為零即關閉輸出,滯回則相反。 1.2 調速電壓調速把輸出電壓范圍為14.2V,控制器起點電壓應高于1V,控制器的脈寬調制范圍應設定為1.383.8V,大于3.8V輸出為全打開。1.3 剎車斷電分高電平、低電平和ABS三種方式,高、低電平控制方式由鍵盤設定,ABS單獨引腳控制,該功能如不用時,I/O口可以指定其它功能。1.4 限流當取樣信號到達設定點時,采用對PWM進行遞減的方法,來減小電機電流,使輸出電流不超過設定值。即最大輸出電流恒定在設定點。設定值由鍵盤設定,以便調試

23、。1.5 過流保護:由于MCU單片機A/D采樣速度的因素造成輸出電流大于設定值,在這種情況下,設定一個保護值,關閉輸出,一般設定為大于限流值23A。此值應由鍵盤設定。1.6 堵轉保護限流值保持13秒后,關閉輸出。1.7 相角選擇60度/120度選擇,鍵盤設定。1.8 1:1助力輸入3:2占空比的開關信號15.5Hz對應調速把的電壓信號為23.8V,根據輸入頻率的變化,改變輸出PWM的占空比,以控制騎行速度。1.9 巡航手動/自動選擇由鍵盤設定,手動按鈕低電平有效,按鈕按下2秒進入手動巡航方式;自動巡航方式為調速把恒定在某一點8S后(信號電壓必須大于啟動電壓),控制器自動進入巡航方式。1. 10

24、限速采用減小PWM脈寬的方法,此值由鍵盤微調,初始值定義為PWM最大值的45。低電平為限速方式。1.11 故障指示閃1正常、閃2剎車、閃3 RAO、 RBO、閃4 下驅動、閃5上驅動、閃6缺相、閃7 RBO、閃8欠壓。故障狀態指示利用專用調試器的指示燈指示。1.12 飛車保護調速電壓4.5V,上電調速電壓1.5V關閉輸出保護。即當調速把地線開路和打開電門鎖前調速把已轉動時。1.13 反充電滑行充電、EBS剎車充電、滑行充電選擇,用I/O端口選擇,低電平為滑行充電。輸出一個指示信號,指示燈亮為充電狀態。2 附加功能2.1 動態顯示1、故障顯示2、電量及騎行狀態顯示3、速度顯示(發光管)2.2 雙

25、動力根據電機的轉速設定一個切換點,該切換點的值由鍵盤設定。2.3 檔位切換由一個按鈕開關設定三檔的速度,初始狀態為最低速,按鈕的工作方式為按下按鈕開關,松開后進入檔位狀態,檔位為循環方式。檔位速度可由鍵盤微調。2.4 指針儀表速度分相線輸出、霍爾信號、單片機輸出。2.5 防盜鎖輸入一個信號鎖定電機,推動越快阻力越大(此功能或做成電機鎖,電鎖關閉后實現)。2.6 參數設定顯示窗由兩部分組成第一部分為功能序號,第二部分為參數值,按鍵由三個按鈕分別代表模式、加、減,設置的參數保存在EEPROM存儲器中。設定器與單片機的通訊采用I2 C方式。熟悉單片機知識階段:由于長時間未溫習單片機的知識,有點生疏,

26、所有實習第一周主要以溫習單片機的基礎知識為主,對以前所學知識有個全面的回顧和鞏固:1. 單片機的概述2 MCS51單片機的介紹解決難題階段:第一周對單片機的基礎知識進行了鞏固溫習,發現以前學的時候有些不懂的現在都能明白了,有種豁然開朗的感覺,看來什么東西都得經常看經常回顧才能學得更牢固更透徹,第二周主要是對單片機知識更細致的理解和分析,對當時學習是的每個重點都仔細的回憶,吃透,同時把一些容易弄混記錯的知識點都進行了批注分類,這個階段主要是對課本的溫習,在圖書館借的資料只是當作一般的參考。在學習課本的過程中,我發現了很多知識點比較重要,如單片機的尋址方式、中斷系統、堆棧、串行口、系統擴展等等,其

27、中讓我感覺比較難的是中斷系統,因為中斷系統比較重要,而且內容也比較多,所以我在復習的時候著重學習了單片機的中斷系統。(4)TF1:定時器 T1 溢出中斷請求。當定時器 T1 產生溢出時,定時器MCS-51單片機的中斷系統內容比較多,4個中斷寄存器的每個位代表的意義和作用就已經夠花時間去理解和區分的了,在復習的時候為了能盡快把他們記住還把每個寄存器的各個位的定義都抄了一遍,把各個位的功能作用也都抄了一遍,這樣就有助于記憶,把中斷寄存器的知識復習了一遍后就是對中斷響應過程的溫習,中斷響應過程其實并不難,只要把課本上的中斷處理流程圖看明白,還有提到的一些注意事項記住就行了,至于定時器/計數器的知識點

28、主要在于理解熟記加練習,在練習中能更好的去理解他們的工作原理。總結階段:前兩周一直都是以單片機的基礎知識為復習重點,本人覺得只有把基礎知識學扎實了,設計系統來才不會吃力,它也是我是否能把畢業設計做好的前提。第三周我主要是把精力放在了設計過程的了解和程序的設計上,設計過程比較容易學會,很多資料里都有提到,單片機系統開發一般可分為明確任務、歸并要求、機型選擇、軟硬件任務劃分、硬件軟件的設計、聯機仿真調試、排除故障、修改程序、固化程序、應用系統脫機運行等步驟,綜合來說可分為4個步驟:1. 總體方案確定:總體設計階段包括需求分析和方案論證等。需求分析和方案論證是單片機系統設計工作的開始,也是工作的基礎

29、。只有經過深入細致的需求分析和周密而科學的方案論證,才能使系統設計工作順利完成。方案論證是根據用戶要求,設計出符合現場條件的軟硬件方案;在選擇測量結果輸出方式上,既要滿足用戶要求,又要使系統簡單、經濟、可靠,這是進行方案論證與總體設計一貫堅持的原則。2. 硬件設計:硬件設計包括兩部分內容,一是系統擴展,二是系統配置,包括器件選擇、電路設計制作等。3. 軟件設計:軟件設計是單片機開發研制中工作量最大的,也是最困難的任務。軟件設計步驟一般分為系統定義、軟件結構設計、程序設計、編寫程序。期間要做的工作量比較大,所以一定要有個提綱,不至于在中途出錯。4. 系統調試:編制好的程序或焊接好的線路,不能按預

30、計的那樣正常工作會經常發生,這就需要查錯和調試。調試時,應將硬件和軟件分成幾部分,逐個進行調試,各部分都調試通過后再進行聯調。 做單片機系統當然不能沒有程序,單片機程序用的是匯編語言(也可以用C語言),所以匯編語言的學習也必不可少。在學習匯編語言之前,首先要學會各種指令,只有對指令有了一定的掌握,才能寫出符合條件的程序,一般程序設計有幾個步驟:(1)分析題意確定算法;(2)根據算法畫出程序流程圖;(3)編寫程序。前兩個步驟看似不重要,但它對理清思路,合理排版有很大作用,試想如果不事先確定算法和程序流程圖,在寫程序的時候肯定會手忙腳亂,如果出錯的話也會不知道在哪里出的,這樣的程序肯定不會起作用的

31、,所以在給我們的系統編寫程序的時候,一定要按著步驟一步一步的來。編寫程序時還應該注重添加注釋,因為一個有商用價值的軟件,往往會被自己或團隊內的其他人員反復借用,反復修改;明晰的注釋,有利日后借用和修改。注釋關鍵有幾點:內存單元分配使用、標志定義、子程序的入口和出口、I/O的使用。這些都應該有個明晰的清單,不至于在借用和修改時發生沖突,也利于排查軟件故障。對于較長的程序,最好有段落目標的標注。以上是我在這次實習中著重學習的東西,其實還有很多,這里只是一些內容比較重要,而且比較難的東西,自己在這段時間通過系統的學習單片機,使我重新認識到了單片機的重要性,以及單片機在未來的發展前景,這更加堅定了我做

32、單片機系統的決心,我相信經過近一個月的學習,我會做出令自己滿意的單片機系統。 無刷直流電機基礎引言 無刷直流電機應用及其廣泛,它可在家電、汽車、航空、醫療、工業自動化設備和儀器等各種各樣的行業中使用。 從它的名稱我們可以看出,無刷直流電機是不用電刷進行換向,而是采用電子器件進行換向的。與有刷直流電機和異步電機相比,無刷直流電機有很多優點,具體表現如下:1、 更好的轉矩、轉速特性2、 快速的動態響應3、 高效率4、 壽命長5、 工作無噪聲6、 較高的轉速范圍本文將重點討論無刷直流電機的結構、工作原理、特性和它的主要應用。附錄B是關于無刷直流電機的常用專業術語。無刷直流電機結構和工作原理無刷直流電

33、機是同步電機的一種。也就是說定子產生的磁場與轉子產生的磁場具有相同的頻率。無刷直流電機的結構有單相、兩相和三相。無論哪種結構它的定子繞組數目和其類型相對應。三相無刷直流電機是應用最廣泛和最普遍的,本文重點討論三相無刷直流電機。定子無刷直流電機的定子是由定子沖片(鋼片疊加而成)和放置在各個槽中的繞組組成(如圖3所示)。一般無刷直流電機的定子結構和同功率的異步電機是相同的,不同只是它繞組的分布方式。大部分無刷直流電機的三相繞組是繞成星型的。每相繞組都是由若干個線圈組成的。每極下的繞組數目都是均等的。無刷直流電機根據其定子繞組驅動電流的不同分為梯形和正弦波電機。不通的連接方式會產生不同類型的反電動勢

34、,具體參考“反電動勢的定義”章節。從圖1和圖2中我們可以看出梯形波電機的反電動勢是梯形的,正弦波電機的反電動勢是正弦的。同樣,它們的相電流也是梯形和正弦的。但是正弦波電機的輸出轉矩比梯形波電機的輸出轉矩更加平滑。根據電機的額定功率,應該選擇合適的輸入電壓。汽車、機器人等產品中電機的電壓是48V甚至低于48V,而在自動化器械、家用電器等工業應用中電機的電壓為大于等于100V。 圖3 無刷直流電機的定子 圖1 梯形波反電動勢 圖2 正弦波反電動勢 轉子轉子是由永磁體組成的,磁鋼的磁極N和S是交替放置的。根據所需要的磁場密度選擇合適的永磁體。鐵氧體是很常用的永磁體,隨著的科技的不斷進步,稀土永磁體應

35、用越來越廣泛。鐵氧體永磁材料和稀土永磁體相比,它的價格比較低廉,但是磁通密度低,而稀土永磁體價格高,但是它得最大磁能積大,剩磁高,矯頑力搞。在同樣尺寸下,稀土永磁體比鐵氧體得到更高的轉矩。衫鈷永磁體和釹鐵硼永磁體是稀土永磁體中的代表。圖4是幾種不同的轉子磁極結構。 a、表面式轉子結構 b、內置式轉子結構 c、實心轉子結構霍爾傳感器與有刷直流電機不同,無刷直流電機的換向是可以電子控制的。無刷直流電機在運行時,必須按一定順序給定子繞組通電。我們如果知道轉子的位置就可以在定子繞組上加相應的的信號。轉子位置我們可以通過霍爾傳感器來確定。大部分無刷直流電機中嵌有3個霍爾傳感器。當轉子永磁體磁極經過霍爾傳

36、感器時,傳感器就會給出一個高電平或者低電平,表明N極或S極經過。根據霍爾傳感器得到的信號我們可以準確的確定電機的換向。 圖5 無刷直流電機的橫截面圖5是一個無刷直流電機的橫截面,從圖中可以看出霍爾傳感器被固定在電機上。將霍爾傳感器嵌入定子的過程很復雜,因為這些霍爾傳感器相對轉子磁極的位置稍有不對齊,都會在判斷轉子位置時造成錯誤。為了簡化在定子上安裝霍爾傳感器的過程,有些電機可能除了主轉子磁體外,還在轉子上安裝霍爾傳感器磁體,它們的體積比轉子磁體小。每當轉子轉動時,霍爾傳感器就會產生和主磁體一樣的效果。霍爾傳感器磁體通常裝在PCB電路板上,固定在非驅動裝的外殼蓋上,這使得用戶可以整體調整所有的霍

37、爾傳感器,以便與轉子磁體對齊,從而獲得最佳性能。根據霍爾傳感器的位置,由兩種輸出。霍爾傳感器輸出信號之間的相移可以是600或者1200的電角度。電機制造商據此定義控制電機是應遵循的換向順序。工作原理每次換向時,首先一相繞組接電源的正極,另一相繞組接負極,第三相繞組處于失電狀態。電機的電磁轉矩由定子的合成磁動勢和轉子永磁磁場相互作用產生的。理論上來說,當定子的合成磁動勢與轉子永磁磁場在空間上相位相差900時電磁轉矩就達到其峰值。而在兩磁場平行時最弱。為了保證電機轉動,由定子繞組產生的磁場應不斷變換位置,因為轉子會向著與定子磁場平行的方向旋轉。轉矩/轉速特性圖6 是一個電機的轉矩/轉速特性圖,無刷

38、直流電機有兩個轉矩參數需要確定:轉矩峰值(TP)和額定轉矩(Tr)。在連續運行中,負載會增加直到達到電機額定轉矩。在無刷直流電機中,轉矩在轉速達到額定值之前保持不變。電機的最大轉速可以達到150%額定轉速,但是此時轉矩將降低。對于頻繁啟東、停止和反轉的電機,所需的轉矩大于其額定轉矩。需要大轉矩的時間通常很短,尤其是在電機從靜止狀態起動以及加速時。在此期間,需要額外的轉矩來克服負載和電機本身的慣性。 圖6 轉矩/轉速特性無刷直流電機與其他電機的對比與有刷直流電機和異步電機相比,無刷直流電機有很多有點,也有一些缺點。相同機座下,無刷直流電機的輸出功率比有刷直流電機和異步電機大,它的使用壽命也較長。

39、由于其轉子上有永磁體,這樣與其他電機相比它的轉動慣量就要小點,這樣就改進了電機加速與減速的特性,縮短了工作周期。由于沒有電刷裝置,空間相對變大,這就降低了維護難度。由于去除了電磁干擾,工作噪聲明顯低于有刷直流電機。表1將無刷直流電機和有刷直流電機進行了對比,表2是無刷直流電機和異步電機之間的對比。 表1 無刷直流電機和有刷直流電機的對比特征無刷直流電機有刷直流電機換向使用霍爾傳感器電機換向電刷換向維護無電刷 維護少定期維護壽命較長較短轉速/轉矩特性額定負載在任何轉速下工作特性都很平滑在高速時,電刷摩擦增加,有效轉矩下降輸出功率輸出功率高,由于定子有繞組散熱性能好輸出功率低,工作時溫度高轉動慣量

40、由于轉子上的永磁體,動態響應快,轉動慣量低受動態響應的影響,轉動慣量大調速范圍寬窄工作噪聲噪聲低電刷產生的電磁干擾,噪聲大成本由于使用永磁體,成本高低控制復雜簡單控制設備一個驅動控制器,一個調速控制器一個調速控制器 表2無刷直流電機和異步電機的對比特征無刷直流電機異步電機轉速/轉矩特性額定負載在任何轉速下工作特性都很平滑非線性,低速時轉矩較小輸出功率輸出功率高,由于定子有繞組散熱性能好由于定、轉子都有繞組,輸出功率低于無刷直流電機轉動慣量動態響應快,轉動慣量低動態響應差,轉動慣量高起動電流額定,不需要專門的起動電路起動電流大概是額定值的7倍,一般需要星-角起動器控制設備一個驅動控制器,一個調速

41、控制器一個調速控制器轉差同步,無轉差有一定轉差 換向順序圖7表示霍爾傳感器信號相對反電動勢和相電流變化的示例。圖8展示了按照霍爾傳感器信號應遵循的切換順序。圖7中的時序與圖8是對應的。每旋轉變化60電角度,其中一個霍爾傳感器就改變一次工作狀態。每個周期變化6次。每轉過60個電角度相電流變化一次。圖9是無刷直流電機控制器的原理圖。PIC18FXX31 單片機控制功率開關管Q0到Q5。這些功率開關管可以是MOSFEFS管、IGBT或者是簡單的雙極性晶體管。表3和表4是這些功率開關管在A、B、C三相下導通的順序表。表3是電機正轉下的導通,表4是電機反轉下的導通。從圖9中可以看出,如果標有PWMx的信

42、號根據該順序在導通和關斷之間切換,則電機將以額定轉速運行。電機在運轉過程中,定子通入電流,永磁體轉子勵磁,兩個磁場在空間的作用產生合成磁勢,推動轉子向前運轉。要讓電機轉起來,必須按照一定的順序給電機三相繞組通電。連接到圖9中模數轉換器通道的電位器用于設置轉速基準電壓。根據輸入電壓,我們可以計算出PWM的占空比。閉環控制可通過測量電機的實際轉速來對轉速進行閉環控制。首先計算設定轉速和實際轉速間的誤差。可以用PID控制器放大轉速誤差,動態調整PWM的占空比。對于低成本、低分辨率的轉速要求,可用霍爾信號測量轉速反饋。可以用PIC18FXX31 單片機中定時器計算霍爾信號兩個邊沿間的時間,并用該時間計

43、算電機的實際轉速。對于高分辨率轉速測量,可在電機上安裝光電式編碼器,它能給出具有90度相位差的兩個信號。用這些信號可以判定轉速和轉向。 圖7 霍爾傳感器信號、反電動勢、輸出轉矩、相電流與時序的對應關系 圖8 繞組與所加霍爾信號的關系 圖9 控制原理圖 反電動勢的定義當一無刷直流電機旋轉時,每個繞組都會產生一個反電動勢,反電動勢的極性是電壓的方向相反,反電動勢主要依靠三個因素:1、轉子角速度;2、永磁體產生的磁場;3、定子繞組的匝數。當電機設計完成后,轉子磁場和定子繞組匝數是一個常數,則只有轉子角速度或者轉子速度影響反電動勢的大小,即當速度增加時,反電動勢隨之增加,電機技術規范給出一個參數“反電

44、動勢系數”,這個系數可以根據一個給定轉速估計反電動勢。繞組上的電勢差=激勵電壓-反電動勢的值,設計電機時,反電動勢系數是在電機以額定轉速運行時得到。電勢差足夠使得電機產生一個額定電流和額定轉矩。假如電機產生一個大于額定電流的電流,反電動勢將大大增加,因而減少了繞組上的電勢差,即減少了電流,從而導致電磁轉矩的下降,當激勵電壓等于總的反電動勢電壓和在電機中的損耗電勢,可得到轉速曲線上的理想空載點,此時電流和轉矩均等于零。無刷直流電機的無位置控制目前,電機的換向位置由霍爾傳感器得到轉子位置決定。無刷直流電機換向通過觀測反電動勢信號而不采用霍爾傳感器。霍爾傳感器與反電動勢之間的關系,通過觀測相電壓得到,如圖7.由前面內容可知,每個換向順序有一個

溫馨提示

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

評論

0/150

提交評論