版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 鄭州航空工業(yè)管理學院畢 業(yè) 論 文(設 計) 2014 屆 電氣工程及其自動化 專業(yè) 1206972 班級 題 目 無刷直流電機控制系統軟件設計 姓 名 高昌榮 學號 120697203 指導教師 崔建鋒 職稱 副教授 二一 四 年 五 月 十六 日內 容 摘 要 近年來由于電力電子技術和控制技術的飛速發(fā)展,無刷直流電機以其體積小、能效高、運轉可靠、維修方便等好處,在電動自行車等日??刂频母鱾€領域獲得了廣泛的使用。論文是用AT89C51單片機為主芯片來設計無刷直流電機控制系統,它由功率變換器、控制器、電動機、位置傳感器四部分組成,本論文主要進行軟件設計,軟件采用c語言編程,包括主程序、鍵盤控
2、制子程序、PWM子程序、運行子程序、啟動子程序、停止子程序、電動機的加減速程序、延時子程序。所編程序簡單易懂、運行可靠,能夠實現系統所要求的基本功能。關鍵詞 無刷電動機 ; c語言;AT89C51;PWM·II· AbstractIn recent years due to the rapid development of power electronics technology and control technology, brushless DC motor with its small size, high efficiency, reliable operatio
3、n, easy maintenance. Papers with AT89C51 microcontroller-based chip design brushless DC motor control system, which consists of power converters, controllers and software consists of three parts, which mainly uses the software main c language, the interrupt service routine, start the program, stop p
4、rogram, the program of the motor acceleration and deceleration, speed position control procedures, keyboard control procedures, display program, PWM wave program, delay subroutines. Using c language program with easy to understand, easy to operate, reliable, able to achieve the basic functions requi
5、red by the system. Keyword Brushless motor; c language; AT89C51; PWM目 錄第1章 概述11.1 無刷直流電機的發(fā)展概況11.2 無刷直流電動機的結構21.3 無刷直流電機的工作原理21.3.1 無刷直流電動機轉矩分析21.3.2 無刷直流電動機與輸出開關管換流信號21.4無刷直流電機系統框圖3第2章 無刷直流電動機控制器設計42.1 單片機最小系統42.2換向邏輯電路42.3位置傳感器信號整形電路52.4 單片機與鍵盤接口6第3章 無刷直流電機功率變換電路設計73.1 功率變換器主電路設計73.2 功率驅動電路設計7第4章 無
6、刷直流電動機控制系統軟件設計94.1無刷直流電機程序設計概況94.2系統主程序設計94.3鍵盤程序流程圖114.4 Pwm程序流程圖134.5 電機正反轉程序流程圖18致 謝21參考文獻22附錄23程序清單23無刷直流電機控制系統硬件電路總圖34V · ·無刷直流電機控制系統軟件設計120697203 高昌榮 指導教師 崔建鋒 副教授第1章 概述1.1 無刷直流電機的發(fā)展概況無刷直流電機以其優(yōu)良的轉矩特性在運動控制領域得到了廣泛的應用,保持了傳統直流電動機良好的動、靜態(tài)調速特性,且結構簡單、運行可靠、易于控制,但普通的直流電動機由于需要機械換相和電刷,可靠性差,需要經常維護
7、;換相時產生電磁干擾,噪聲大,影響了直流電動機在控制系統中的進一步應用。為了克服機械換相帶來的缺點,以電子換相取代機械換相的無刷電機應運而生。多年以來,隨著永磁新材料、微電子技術、自動控制技術以及電力電子技術特別是大功率開關器件的發(fā)展,無刷電動機得到了飛速的發(fā)展。無刷直流電動機已經不是專指具有電子換相的直流電機,而是泛指具有有刷直流電動機外部特性的電子換相電機。在控制方面,由于無刷直流電機的特殊結構,其運行是通過逆變器功率器件隨轉子的不同位置相應地觸發(fā)其不同的功率管來實現的,因此準確檢測轉子的位置并根據轉子位置準時切換功率器件的觸發(fā)組合狀態(tài)是控制無刷直流電機正常運行的關鍵。使用位置傳感器檢測轉
8、子位置技術已普遍應用,現在國內外在無刷直流電機控制上的研究熱點就是無位置傳感器檢測方法。1.2 無刷直流電動機的結構無刷直流電機一般由電機本體、轉子位置傳感器、功率變換器、控制器四部分組成。1.3 無刷直流電機的工作原理1.3.1 無刷直流電動機轉矩分析功率變換器開關在轉子每轉60電角度就會產生一次切換,在這周期內,轉子不停的受到順時(逆時)方向的力矩,這就是它會一直繞同一方向旋轉的原因。1.3.2 無刷直流電動機與輸出開關管換流信號一般用在空間上互差120度的三個霍爾位置元件作為無刷直流電機的位置傳感器,位置檢測和開關驅動信號關系,如圖1-1所示圖1-1 無刷電機的位置檢測和開關驅動信號表1
9、-1 無刷直流電動機的轉向與開關管導通關系轉向霍爾逆變橋開關信號ABCT1T2T3T4T5T6正轉001000011010001100011000110100110000101100001110011000反轉0010110000101000010111100001000001101010011001100000111.4無刷直流電機系統框圖在無刷直流電動機控制系統中,各個單元的作用是不同的。電機運行時首先由轉子位置傳感器檢測轉子磁極位置并向控制器輸出信號,接著控制器根據電動機旋轉方向的要求和來自位置傳感器的三個輸出信號,對它們進行PWM邏輯處理以驅動功率開關器件。功率驅動單元接到信號后,功率
10、管導通或截止,同時電樞繞組的電流按一定的順序進行換流,實現電子換向,驅動電機旋轉。圖2-1 電動機控制系統框圖第2章 無刷直流電動機控制器設計 2.1 單片機最小系統單片機最小系統也就是說能夠保證單片機能夠按照要求運行的最少硬件。包括:電源電路、復位電路、晶振電路。圖2-1 最小系統電路圖2.2換向邏輯電路本文設計用到的邏輯電路,使用的芯片是GAL16V8??梢詫Ω鱾€輸入端口的邏輯信號及其非信號按邏輯與連接實現譯碼功能。根據單片機(P1.0,P1.1,P1.2)捕獲的霍爾信號(A,B,C),單片機輸出的六個狀態(tài)信號PHASE1PHASE6(接到單片機的P0.0P0.5),單片機輸出的PWM調制
11、信號PWM1(P0.6)和 (P0.0P0.5)輸出的信號邏輯組合變換后得到控制6個功率管的觸發(fā)信號(PWM11PWM16)。圖2-2 用GAL16V8實現電子換相電路圖2.3位置傳感器信號整形電路霍爾元件產生的電動勢很低,要加上拉電阻以提高其輸出電壓。本系統整形電路先經LM324比較器進行簡單整形,再經過電容濾波,然后經施密特觸發(fā)器得到上升沿和下降沿都很陡峭的矩形脈沖信號。圖2-3 位置信號整形電路霍爾元件在空間上互差120度,脈沖輸出的每一路寬度都為180度,整形電路的輸出脈沖信號如下圖2-4所示圖2-4 整形電路輸出脈沖信號2.4 單片機與鍵盤接口本設計的系統用是最簡單的2乘3矩陣類型的
12、鍵盤(P2.3-P2.7)來實現對整個控制系統的操作,鍵盤結構如下圖所示:圖2-5 系統鍵盤接口第3章 無刷直流電機功率變換電路設計3.1 功率變換器主電路設計無刷直流電動機的功率變換器由逆變器和驅動電路組成。其中逆變部分采用三相橋式全控逆變電路,功率開關器件采用MOSFET,功率驅動電路采用以IR公司的專用驅動芯片IR2130進行控制。圖3-1 功率變換器主電路圖本設計采用MOSFET功率元,響應快、阻抗輸入高、穩(wěn)定性比較好、不需要大的驅動,所需驅動電路并不復雜。3.2 功率驅動電路設計6個功率管的導通和關斷順序可以被IR2130芯片同時控制,例如三相全橋驅動電路的上半橋Q1、Q3、Q5導通
13、、關斷被HO1HO3輸出端分別控制;而下半橋Q4、Q6、Q2導通、關斷由IR2130芯片的輸出端LO1LO3控制,以便控制無刷直流電機轉速和正反轉。IR2130的典型電路如圖3-2所示。圖3-2 無刷直流電機的功率驅動電路第4章 無刷直流電動機控制系統軟件設計4.1無刷直流電機程序設計概況系統采用AT89C51單片機為主芯片設計無刷直流電機控制系統,下面主要為系統的軟件設計,采用c語言編程,包括主程序、鍵盤控制子程序、PWM子程序、啟動子程序、停止子程序、運行子程序、電動機的加減速子程序、延時子程序。所編程序簡單易懂、運行可靠,能夠實現系統所要求的基本功能。4.2系統主程序設計圖 4-1 主程
14、序流程圖主程序設計首先要對工作方式寄存器、特殊功能寄存器、定時器、計數器與我們定義的一些變量進行初始化,然后調用鍵盤子程序獲得參數,當啟動鍵按下后,然后調用啟動子程序,判斷是否正常啟動,主程序流程圖如上圖4-1所示void main(void) TMOD=0x59; /*T1軟件啟動,T0軟件+脈沖啟動,T1計數器,T0定時器 T1工作在方式1,T0工作在方式1*/ TCON=0x20; TH1=0x00;TL1=0x00;TH0=0xD8;TL0=0xF0;IE=0x82; /*中斷允許總控制,禁止T1中斷*/ keyget();if(tag=1)start();elsestop();4.3
15、鍵盤程序流程圖鍵盤程序主要實現外部控制的啟動、停止、加減速與正反轉,主程序初始化運行會調用鍵盤程序,鍵盤程序運行后要不斷地掃描有沒有鍵按下,掃描過程中當有鍵按下時,要延時去抖并判斷是哪個功能鍵按下。流程圖如下圖4-2所示。圖4-2 鍵盤程序流程圖void keyget() /*鍵盤掃描函數*/ uchar x; /*定義變量*/P2=0XC0 ; /*鍵盤掃描,看是否有鍵按下*/if(P2&0XC0)=0) /*有鍵按下*/ P2=0X80; /*P2.7置1,掃描第一行*/if(P2&0X80)=0) /*第一行有鍵按下*/d_ms(1500); /*延時去抖*/x=P2;
16、/*讀P2口*/elseP2=0X40; /*P2.6置1,掃描第二行*/if(P2&0X40)=0) /*第二行有鍵按下*/d_ms(1500); /*延時去抖*/x=P2; /*讀P2口*/switch(x) case 0xA0: start();break; /*啟動*/ case 0x90: up();break; /*向上箭頭*/ case 0x88: fanzhuan();break; /*反轉*/ case 0x60: left();break; /*左移*/ case 0x50: down();break; /*向下箭頭*/ case 0x48: right();bre
17、ak /*右移*/4.4 Pwm程序流程圖首先我們要確定頻率和占空比,我們選用12MHZ晶振,讓PWM 輸出頻率為1KHZ, 讓定時中斷次數為C=100,即0.01MS中斷一次,則TH0=FF,TL0=F6;由于設定中斷時間為0.01ms,這樣可以設定占空比可從1-100 變化,即0.01ms*100=1ms。 TH0 和TL0 是計數器0 的高8 位和低8 位計數器,計算方法:TL0=(65536-C)%256;TH0=(65536-C)/256,其中C 為所要計數的次數;TMOD 是計數工作模式選擇,TMOD=0X01表示選用模式1,它有16 位計數器,最大計數脈沖為65536,最長時間為
18、65.536ms。程序流程圖如下圖4-3所示。圖4-3 pwm程序流程圖#include <REGX51.H>#define uchar unsigned char#define V_TH0 0XFF#define V_TL0 0XF6#define V_TMOD 0X01void init_sys(void); /*系統初始化函數*/void Delay5Ms(void);unsigned char ZKB1,ZKB2;void main (void)init_sys();ZKB1=40; /*占空比初始值設定*/ZKB2=70; /*占空比初始值設定*/while(1)if (
19、!P1_4) /*如果按了+鍵,增加占空比*/Delay5Ms();if (!P1_4)ZKB1+;ZKB2=100-ZKB1;if (!P1_5) /*如果按了-鍵,減少占空比*/Delay5Ms();if (!P1_5)ZKB1-;ZKB2=100-ZKB1;/*對占空比值限定范圍*/if (ZKB1>99) ZKB1=1;if (ZKB1<1) ZKB1=99;/*函數功能:對系統進行初始化,包括定時器初始化和變量初始化*/void init_sys(void) /*系統初始化函數*/*定時器初始化*/TMOD=V_TMOD;TH0=V_TH0;TL0=V_TL0;TR0=1
20、;ET0=1;EA=1;/*延時*/void Delay5Ms(void)unsigned int TempCyc = 1000;while(TempCyc-);/*中斷函數*/void timer0(void) interrupt 1 using 2static uchar click=0; /*中斷次數計數器變量*/TH0=V_TH0; /*恢復定時器初始值*/TL0=V_TL0;+click;if (click>=100) click=0;if (click<=ZKB1) /*當小于占空比值時輸出低電平,高于時是高電平,從而實現占空比的調整*/P1_6=0;elseP1_6=
21、1;if (click<=ZKB2)P1_7=0;elseP1_7=1; 4.5 電機正反轉程序流程圖當掃描出鍵盤正反轉按鍵有動作時,延時去抖,判斷正(反)轉,讀取p1口,然后調用相應的程序,正(反)程序中調用pwm程序, p0.6口輸出的pwm信號與p0.0-p0.5輸出的六路控制換相信號通過換相芯片GAL16V8相與,再通過IR2130驅動芯片驅動功率管有序的導通與關斷,從而控制電機轉向。正反轉流程圖如下圖圖4-4 電機正反轉程序流程圖void zhengzhuan() /*正轉函數*/ p1.0=HA; p1.1=HB; p1.2=HC;pwm();while(p1.2)dop0.
22、4=1;p0.5=1;while(p1.1)dop0.2=1;p0.3=1;while(p1.1;p1.2)dop0.3=1;p0.4=1;while(p1.0)dop0.0=1;p0.1=1;while(p1.0;p1.2)dop0.0=1;p0.5=1;while(p1.0;p1.1)dop0.1=1;p0.2=1; PWM=PHASE&&pwm(); void fanzhuan() /*反轉函數*/ p1.0=HA; p1.1=HB; p1.2=HC;pwm();while(p1.2)dop0.1=1;p0.2=1;while(p1.1)dop0.0=1;p0.5=1;w
23、hile(p1.1;p1.2)dop0.0=1;p0.1=1;while(p1.0)dop0.3=1;p0.4=1;while(p1.0;p1.2)dop0.2=1;p0.3=1;while(p1.0;p1.1)dop0.4=1;p0.5=1; PWM=PHASE&&pwm(); 致 謝在我將要畢業(yè)的這最后一段時間里,我要感謝所有給與我?guī)椭娜?,我的同學,我的老師,感謝有你們的陪伴,然后要感謝我的指導老師崔建峰,如果沒有他的教導和幫助,我是不可能這么順利就能完成了畢業(yè)設計的。崔老師細心的指導,嚴格的要求,還有他和藹可親的為人的態(tài)度,激起了我努力向上、奮發(fā)圖強的。因為激情。剛開始
24、拿到論文題目的時候,我是絞盡腦汁也弄不明白它的工作原理,這使我很困惑,不知道該怎么辦才好,我心急如焚,不知道從何下手,在這最關鍵的時刻,還是崔老師的開導讓我有了進展,這時,我終于找到了眉目,都說萬事開頭難,這話一點也不假,只要把頭開好,那么以后得工作會是一帆風順的。他指導我做出了PWM程序調速部分,通過修改程序使直流電動機可以啟動、停止、加速、減速、正轉、反轉,接著又找出了我設計中存在的不足,并指導我如何才能更好地實現設計的功能,如何高效率,穩(wěn)定的運行,這也是我的問題的生化。崔老師不僅在指導畢業(yè)設計上給了我很大的幫助,還及時解決了我心理上的問題真是雪中送炭啊,他給了我很大的支持與幫助,使我不知
25、道該怎樣去表達對他的感激之情,只能說一聲謝謝。參考文獻1 牛秀巖.電機學M.北京:冶金工業(yè)出版社,20062 王益全.電動機原理與實用技術.北京:科學出版社,20053 阮毅,陳伯時.自動控制系統M.北京:機械工業(yè)出版社,20104張琛.直流無刷電動機的原理及應用北京機械工業(yè)出版社,20045 謝運祥,歐陽森.電力電子單片機控制技術. 機械工業(yè)出版社,20076 葉金虎.現代無刷直流永磁電動機的原理和設計.辭學出版社,20077 李志民,張遇杰.同步電動機調速系統.北京機械工業(yè)出版社,19958 余永權,汪明慧,黃英.單片機在控制系統中的應用.電子工業(yè)出版社 ,20039 張立,黃兩一.電力電
26、子場控器件及其應用北京機械工業(yè)出版社,199510 盧靜,陳非凡,張高飛等.基于單片機的無刷直流電動機控制系統設計.北京機械工業(yè)學院學報,200211 顧繩古.電機及拖動基礎. 機械工業(yè)出版社,200410 周紹英.電力拖動M.北京:冶金工業(yè)出版社,2006附錄程序清單#include<reg51.h>#define uchar unsigned char#define ulong unsigned longextern uchar zs; /*定義轉速變量*/extern uchar tag=0x00,tag1=0x00; /*啟動標志位和閃爍標志位*/extern ulong
27、zssd=3000; /*轉速設定*/ ulong count; /*脈沖計數*/ulong zkbg,zkbd; /*占空比高低*/ sbit P14=P1.4;/*位定義*/sbit P15=P1.5;sbit P16=P1.6;sbit P17=P1.7;uchar code p1=0x90,0x91,0x92,0x93; /*數碼管位選*/uchar *zy=p1; /*定義指針指向數組p1*/void d_ms(uchar m) /*延時程序*/ uchar i,j; for(i=0;i<m;i+) for(j=0;j<1000;j+) /*延時100um微秒*/nop;
28、 void start() /*開始程序*/ if( tag=1 ) /*系統啟動*/ P0=0x00; P1=0x00;P0=0xFF; /*數碼管各段全亮,確認完好無損*/ P1=0xFF; /*數碼管全部選通*/ else tag=0; /*再次按下,標志位置0*/ void zhengzhuan() /*正轉函數*/ p1.0=HA; p1.1=HB; p1.2=HC;pwm();while(p1.2)dop0.4=1;p0.5=1;while(p1.1)dop0.2=1;p0.3=1;while(p1.1;p1.2)dop0.3=1;p0.4=1;while(p1.0)dop0.0=
29、1;p0.1=1;while(p1.0;p1.2)dop0.0=1;p0.5=1;while(p1.0;p1.1)dop0.1=1;p0.2=1; PWM=PHASE&&pwm(); void up() /*向上箭頭函數*/if(tag1=0) /*閃爍標志位為0*/ If(zs<=3000) /*最大轉速為3000轉*/ zs+=100; /*無閃爍,轉速設定+100轉*/ else /*有閃爍,位選與轉速*/ switch(*zy)case 0x90: zs=zs+1000;break;case 0x91: zs=zs+100;break;case 0x92: zs=
30、zs+10;break;case 0x93: zs=zs+1;break;void fanzhuan() /*反轉函數*/ p1.0=HA; p1.1=HB; p1.2=HC;pwm();while(p1.2)dop0.1=1;p0.2=1;while(p1.1)dop0.0=1;p0.5=1;while(p1.1;p1.2)dop0.0=1;p0.1=1;while(p1.0)dop0.3=1;p0.4=1;while(p1.0;p1.2)dop0.2=1;p0.3=1;while(p1.0;p1.1)dop0.4=1;p0.5=1; PWM=PHASE&&pwm(); vo
31、id left() /*左移函數*/if(tag1=0) /*閃爍標志位為0,無閃爍*/tag1=1; /*閃爍標志位置1,開始閃爍*/zy=p1; /*指針指向位選數組首地址*/ else /*已經開始閃爍*/ zy-; /*指針指向當前位選數組*/if(zy=p10) /*當指針指向第一位時*/zy=p1+3; /*自動跳轉到第四位*/d_ms(2000); /*2S內沒動作,停止閃爍*/tag1=0; /*閃爍標志位置0,停止閃爍*/void down() /*參考up()函數*/if(tag1=0) if(zssd>=2000) zssd-=100; elseswitch(*zy
32、)case 0x90: zssd=zs-1000;break;case 0x91: zssd=zs-100;break;case 0x92: zssd=zs-10;break;case 0x93: zssd=zs-1;break; void right() /*參考left()函數*/if(tag1=0)tag1=1;zy=p1+3;elsezy+;if(zy=p13)zy=p1;d_ms(2000);tag1=0;void keyget() /*鍵盤掃描函數*/ uchar x; /*定義變量*/P2=0XC0 ; /*鍵盤掃描,看是否有鍵按下*/if(P2&0XC0)=0) /*有
33、鍵按下*/ P2=0X80; /*P2.7置1,掃描第一行*/if(P2&0X80)=0) /*第一行有鍵按下*/d_ms(1500); /*延時去抖*/x=P2; /*讀P2口*/elseP2=0X40; /*P2.6置1,掃描第二行*/if(P2&0X40)=0) /*第二行有鍵按下*/d_ms(1500); /*延時去抖*/x=P2; /*讀P2口*/switch(x) case 0xA0: start();break; /*啟動*/ case 0x90: up();break; /*向上箭頭*/ case 0x88: fanzhuan();break; /*反轉*/ c
34、ase 0x60: left();break; /*左移*/ case 0x50: down();break; /*向下箭頭*/ case 0x48: right();break /*右移*/void display(uchar *z) /*顯示函數*/uchat code d_p=0XFC,0X60,0XDA,0XF2,0X66,0XB6,0XBE,0XFE,0XE6; /*定義段選數組0-9*/uchar a,b,c,d; /*轉速各位*/a=zs/1000; /*轉速千位*/b=zs%1000/100; /*轉速百位*/c=zs%100/10; /*轉速十位*/d=zs%10; /*轉速個位*/if(tag1=0) /*無閃爍時*/doz0=1; /*P10置高*/P0=d_pa; /*從數組讀數,P0口輸出*/d_ms(20); /*延遲顯示*/z0=0;z1=1;P0=d_pb;d_ms(20);z1=0;z2=1;P0=d_pc;d_ms(20);z2=0;z3=1;P0=d_pd;d_ms(20);z3=0;while(0);else
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛南師范大學科技學院《幼兒心理學》2023-2024學年第一學期期末試卷
- 贛南師范大學《服裝材料》2023-2024學年第一學期期末試卷
- 七年級生物上冊第二單元第一章第二節(jié)植物細胞教案新版新人教版
- 三年級數學比較分數的大小課件
- 三年級科學下冊第三單元固體和液體4把液體倒進水里去教案蘇教版1
- 小學生課堂提問制度
- 綜合核算培訓課件
- 三年級數學認識噸課件
- 麻醉藥品、第一類精神藥品安全管理制度
- 《水準測量和水準儀》課件
- 水吧管理方案
- 遂溪縣水資源分析報告
- 研究生高等數理統計試卷及部分答案
- 后臺管理系統技術方案
- 作文素材:《南方周末》1997-2023年新年獻詞全匯編
- 進駐商場計劃書
- 建筑施工材料供應鏈管理與控制
- 代理人培養(yǎng)計劃書
- 傳播學理論復習資料
- 鄉(xiāng)鎮(zhèn)污水處理調研報告
- 沈從文先生在西南聯大全文
評論
0/150
提交評論