直流電機調速系統(tǒng)項目設計方案_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  直流電機調速系統(tǒng)項目設計方案</p><p><b>  0 前言</b></p><p>  電動機作為最主要的機電能量轉換裝置, 其應用范圍已遍及國民經(jīng)濟的各個領域和人們的日常生活。無論是在工農業(yè)生產,交通運輸,國防,航空航天,醫(yī)療衛(wèi)生,商務和辦公設備中,還是在日常生活的家用電器和消費電子產品(如電冰箱,空調,DVD等)中,都大量使用著各種

2、各樣的電動機。據(jù)資料顯示,在 所有動力資源中,百分之九十以上來自電動機。同樣,我國生產的電能中有百分之六十是用于電動機的。電動機與人的生活息息相關,密不可分。電氣時代,電動機的調速控制一般采用模擬法,對電動機的簡單控制應用比較多。簡單控制是指對電動機進行啟動,制動,正反轉控制和順序控制。然而近年來,隨著技術的發(fā)展和進步,以及市場對產品功能和性能的要求不斷提高,直流電動機的應用更加廣泛,尤其是在智能機器人中的應用。直流電動機的起動和調速性

3、能、過載能力強等特點顯得十分重要,為了能夠適應發(fā)展的要求,單閉環(huán)直流電動機的調速控制系統(tǒng)得到了很大的發(fā)展。而作為單片嵌入式系統(tǒng)的核心—單片機,正朝著多功能、多選擇、高速度、低功耗、低價格、大存儲容量和強I/O功能等方向發(fā)展。隨著計算機檔次的不斷提高,功能的不斷完善,單片機已越來越廣泛地應用在各種領域的控制、自</p><p><b>  1 總體方案設計</b></p>&l

4、t;p><b>  1.1 系統(tǒng)方案</b></p><p>  針對本課題的設計任務,進行分析得到:本次課程設計以AT89C52單片機為核心,以5個彈跳按鈕作為輸入端,達到控制直流電機的正轉、反轉、停止、加速、減速。在設計中,采用PWM技術對電機進行控制。</p><p><b>  1.2 系統(tǒng)構成</b></p><

5、;p>  該直流電機控制系統(tǒng)的設計,在總體上大致可分為以下5個部分組成:輸入模塊,AT89C52單片機,電源模塊,驅動模塊,直流電機。</p><p>  系統(tǒng)原理框圖如圖1所示。</p><p>  圖1 系統(tǒng)原理框圖</p><p>  1.3 電路工作原理</p><p>  根據(jù)勵磁方式不同,直流電機分為自勵和他勵兩種類型。不

6、同勵磁方式的直流電機機械特性曲線有所不同。對于直流電機來說,認為機械特性方程式為:</p><p>  n=UN/(KeφN)-(Rad+Ra)/(KeKtφ2N)T=n-△n (公式 1-1)</p><p>  式中UN ,φN ----------額定電樞電壓、額定磁通量;</p><p>  Ke ,Kt---與電機有關的常數(shù);</p>

7、<p>  Rad ,Ra-----電樞外加電阻、電樞內電阻;</p><p>  n ,△n—理想空載轉速、轉速降。</p><p>  分析 公式 1-1 可得,當分別改變UN 、φN 和Rad時,可以得到不同的轉速n,從而實現(xiàn)對速度的調節(jié)。由于φ=T,當改變勵磁電流If時,可以改變磁通量φ的大小,從而達到變磁通調速的目的。但由于勵磁線圈發(fā)熱和電動機磁飽和的限制,電動機的

8、勵磁電流If和磁通量φ只能在低于其額定值的范圍內調節(jié),故只能弱磁調速。而對于調節(jié)電樞外加電阻Rad時,會使機械特性變軟,導致電機帶負載能力減弱。</p><p>  PWM是通過控制固定電壓的直流電源開關頻率,從而改變負載兩端的電壓,進而達到控制要求的一種電壓調整方法。PWM可以應用在許多方面,如電機調速、溫度控制、壓力控制等。在PWM驅動控制的調整系統(tǒng)中,按一個固定的頻率來接通和斷開電源,并根據(jù)需要改變一個周期

9、內“接通”和“斷開”時間的長短。通過改變直流電機電樞上電壓的“占空比”來改變平均電壓的大小,從而控制電動機的轉速。因此,PWM又被稱為“開關驅動裝置”。在脈沖作用下,當電機通電時,速度增加;電機斷電時,速度逐漸減少。只要按一定規(guī)律,改變通、斷電的時間,即可讓電機轉速得到控制。當我們改變占空比時,可以得到不同的電機平均速度,從而達到調速的目的。</p><p><b>  1.4 方案選擇</b&g

10、t;</p><p>  方案一:采用電阻網(wǎng)絡或數(shù)字電位器調整電動機的分壓,從而達到調速的目的。但是電阻網(wǎng)絡智能實現(xiàn)有級調速,而數(shù)字電阻的元器件價格比較昂貴。更主要的問題在于一般電動機的電阻很小,但電流很大,分壓不僅會降低效率,而且實現(xiàn)起來很困難。</p><p>  方案二:采用繼電器對電動機的開或關進行控制,通過開關的切換對電機的速度進行調整。這個方案的優(yōu)點是電路較為簡單,缺點是繼電器

11、的響應時間慢、機械結構容易損壞、壽命較短、可靠性不高。</p><p>  方案三:采用驅動芯片L298驅動直流電機,L298具有驅動能力強,外圍電路簡單等優(yōu)點。</p><p>  綜合各方面的因素,采用了方案三。</p><p><b>  2 硬件電路設計</b></p><p>  2.1 系統(tǒng)分析與硬件設計

12、</p><p>  鍵盤向單片機數(shù)日相應控制指令,由單片機通過P3.0與P3.1其中一口輸出與轉速相應的PWM脈沖,另一口輸出低電平,經(jīng)過信號放大,驅動電動機來控制電路,實現(xiàn)電動機轉向和轉速的控制。</p><p>  2.2 單片機AT89C52</p><p>  采用AT89C52是MSC-51系列單片機的升級版,由世界著名半導體公司ATMEL在購買MSC-

13、51設計結構后,利用自身優(yōu)勢技術———閃存生產技術對舊技術進行改進和擴展,同時使用新的半導體生產工藝,最終得到成型產品。與此同時,世界上其他的著名公司也通過基本的51內核,結合公司自身技術進行改進生產,推廣了一批如51F020等高性能單片機。</p><p>  AT89C52片內集成256字節(jié)程序運行空間,8K字節(jié)Flash存儲空間,支持最大64k外部存儲擴展。根據(jù)不同的運行速度和功耗的要求,時鐘頻率可以設置在

14、0-33M之間。片內資源有4組I/O控制端口、3個定時器、8個中斷、軟件設置低耗能模式、看門狗和斷電保護??梢栽?V到5.5V寬電壓范圍內正常工作。不斷發(fā)展的半導體工藝也讓該單片機的功耗不斷降低。同時,該單片機支持計算機并口下載,簡單的數(shù)字芯片就可以制成下載線,僅僅幾塊錢的價格讓該型號單片機暢銷10年不衰。根據(jù)不同場合的要求,這款單片機提供了多種封裝,本次設計根據(jù)最小系統(tǒng)有時需要更換單片機的具體情況,使用雙列直插PID-40的封裝。&l

15、t;/p><p>  2.3 復位電路和時鐘電路</p><p>  復位電路和時鐘電路是維持單片機最小系統(tǒng)運行的基本模塊,復位電路通常分為兩種:上電復位和手動復位。</p><p>  有時系統(tǒng)在運行過程中出現(xiàn)程序跑飛的情況,在程序開發(fā)過程中,經(jīng)常需要手動復位,所以本次設計選用手動復位。</p><p>  2.4 直流電機驅動電路設計<

16、/p><p>  由于單片機P3口輸出的電壓最高才有5V,難以直接驅動直流電機。所以我們需要使用恒壓恒流橋式2A驅動芯片L298來驅動電機。L298可接受標準TTL邏輯電平信號,可接4.5~7V電壓。4腳接電源電壓,電壓范圍+2.5~46V。輸出電流可達2.5A,可驅動電感性負載。1腳和15腳下管的發(fā)射極分別單獨引出以便接入電流采樣電阻,形成電流傳感信號。L298可驅動2個電動機,OUT1,OUT2和OUT3,OUT

17、4之間可分別接電動機。本設計我們選用驅動一臺電動機。5,7,10,12腳接輸入控制電平,控制電機的正反轉。同時需要加四個二極管在電機的兩端,防止電機反轉的時候產生強大的沖擊電流燒壞電機。具體驅動電路如下:</p><p><b>  圖2 驅動電路</b></p><p>  2.5 鍵盤電路設計</p><p>  正轉、反轉、停止、加速、

18、減速五個開關分別與單片機的P1.0,P1.1,P1.2,P1.3,P1.4相連,然后再與地相連。正轉實現(xiàn)直流電機的正轉,反轉實現(xiàn)直流電機的反轉,停止實現(xiàn)直流電機的停轉,加速實現(xiàn)直流電機的加速,減速實現(xiàn)直流電機的減速,具體鍵盤電路如下:</p><p><b>  圖3 鍵盤電路</b></p><p><b>  軟件設計</b></p&

19、gt;<p>  3.1 應用軟件的編制和調試</p><p>  使用Keil軟件編程時,項目開發(fā)流程和其它軟件開發(fā)項目的流程較為相似。</p><p>  (1)創(chuàng)建一個項目,從器件庫中選擇目標器件,配置工具設置;</p><p>  (2)用C語言或會變語言創(chuàng)建源程序;</p><p>  (3)用項目管理器生成應用;&l

20、t;/p><p>  (4)修改源程序中的錯誤;</p><p>  (5)測試,連接應用。</p><p>  3.2 程序總體設計</p><p>  利用P3口,編制程序輸出一串脈沖,經(jīng)放大后驅動直流電機,改變輸出脈沖的電平的持續(xù)時間,達到使電機正轉、反轉、停止、加速、減速等目的。由軟件編程從P3.0/P3.1管腳產生PWM信號,經(jīng)驅動電路

21、輸出給電機,從而控制電機得電與失電。軟件采用延時法進行設計。單片機上電后,系統(tǒng)進入準備狀態(tài)。按動正轉按鈕后,根據(jù)P3.0為高電平時實現(xiàn)電機正轉,P3.1為高電平時實現(xiàn)電機反轉。根據(jù)不同的加減速按鈕,調整P3.0/P3.1輸出高低電平時的有效值,進而控制電機的加減速。其主程序流程如圖2所示:</p><p>  圖4 主程序流程圖</p><p><b>  3.3 仿真圖形&l

22、t;/b></p><p>  按下“正轉”按鈕,直流電機運行效果如圖所示:</p><p><b>  圖5 電機正轉</b></p><p>  按下“加速”按鈕,直流電機正向加速,運行效果如圖所示:</p><p>  圖6 電機正轉加速</p><p>  按下“減速”按鈕,直流

23、電機正向減速,運行效果如圖所示:</p><p>  圖7 電機正轉減速</p><p>  按下“停止”按鈕,直流電機停止運轉,運行效果如圖所示:</p><p><b>  圖8 電機停轉</b></p><p>  按下“反轉”按鈕,直流電機開始反轉,運行效果如圖所示: </p><p>

24、;<b>  圖9 電機反轉</b></p><p><b>  4 調試分析</b></p><p>  在調試時,由于子程序有很多,有時沒法將每一個子模塊都運行到,自然也無法及時發(fā)現(xiàn)其中的疏漏。為了解決這個問題,更好地查找錯誤,我解決的方法是將各個模塊分別進行調試。例如在調試某一模塊時,先將其他模塊用“//”暫時屏蔽掉,直到各個子模塊都健

25、康運行后,再整體調試,這樣我們更加容易找出錯誤,增加效率。軟件調試需要不斷的在單片機上執(zhí)行看輸出的結果,如果每次都在硬件上操作比較麻煩,因此我使用了“Proteus”仿真軟件,將我們的電路硬件搭建出來,在這個平臺上調試軟件,并且達到了比較好的效果。</p><p>  5 結論及進一步設想</p><p>  根據(jù)實驗結果,本設計基本完成了設計要求,系統(tǒng)能夠實現(xiàn)正轉、反轉、加速、減速、停

26、止能功能。但是由于我對數(shù)碼管等顯示模塊掌握度不夠,系統(tǒng)還不能顯示出電機轉速,如果可以再多給我一些時間,我一定能設法用LCD或數(shù)碼管顯示出電機的轉速。。</p><p><b>  參考文獻</b></p><p>  [1] 王鑒光.電動機控制系統(tǒng).北京:北京機械工業(yè)出版社,1994</p><p>  [2] 劉小春,首桁.無刷直流電動機的單

27、片機控制.自動化技術與應用,2009</p><p>  [3] 王小明.電動機的單片機控制.北京:北京航空航天大學出版社,2002</p><p>  [4] 張堔.直流無刷電動機原理及應用.北京:北京機械工業(yè)出版社,1996</p><p>  [5] 孫涵芳,徐愛卿.MCS-51/96系列單片機原理及應用.北京:北京航空航天大學出版社,1977</p&g

28、t;<p>  [6] 何立民.單片機應用技術選編.北京: 北京航空航天大學出版社,2003</p><p>  [7] 史國生.交直流調速系統(tǒng).北京:化學工業(yè)出版社,2002</p><p>  [8] 楊興姚.電動機調速的原理及系統(tǒng).北京:北京水利電力出版社,2003</p><p><b>  課設體會</b></p&

29、gt;<p>  通過本次課程設計,我從直流電機調速系統(tǒng)的設計與搭建中深深的體會到軟件對于一個系統(tǒng)來說是多么重要。軟件可以說是一個系統(tǒng)的靈魂,在工作中指導硬件按照指定的方案運行。對于剛學匯編不久的我來說,編制一個完整的系統(tǒng)軟件可謂無任何經(jīng)驗可言。在設計過程中,我們主要學習體會了單個模塊的搭建與編程,例如鍵盤子程序, 中斷子程序等等。在這個系統(tǒng)搭建過程中,不但要將這些子模塊有機的結合在一起,還要讓它們較好的協(xié)調起來,按照我們

30、思路運行,可以說是比較困難的。</p><p>  由于我缺乏經(jīng)驗,所以經(jīng)常犯下許多低級錯誤。單片機編程是不能想當然的,我最容易犯的錯誤就是不經(jīng)論證就去按照自己覺得可行的思路去進行,往往導致系統(tǒng)不能正常工作。例如我原來在編制顯示子程序時,只記得將相應段碼與位碼相對照,卻忘記了實際硬件是共陰極還是共陽極;還有顯示間隔時間的問題,我本以為長短無所謂,但結果是如果間隔大于10ms就會產生閃爍感,導致沒有靜態(tài)的效果,而間

31、隔太短的話必須在顯示下一個之前,將前一個位選清除,否則就容易產生“串位”,導致顯示的不正常;在鍵盤掃描子程序中,當有鍵按下做相應操作,必須當按鍵釋放時才能繼續(xù)掃描,否則將導致一次按下執(zhí)行多次的錯誤情況… …雖然遇到了許多困難,但是在老師的幫助下,我還是完成了這次的課程設計。通過本次課程設計,我進一步了解了系統(tǒng)搭建的過程和系統(tǒng)軟件編程的步驟,為今后的學習打下良好的基礎。</p><p>  在這里我要感謝我的指導老

32、師XX老師。X老師工作很忙,但還是在我做課程設計的時間里一直關心我的進展,從設計方案的確定和修改,仿真的檢查,及后來的詳細設計等過程中都給了我很大的支持和關注。本次課程設計讓我把理論應用到了實踐,同時通過課程設計,也加深了我對專業(yè)理論知識的理解和掌握。在解決問題的過程中,我查閱了大量專業(yè)書籍,獲得了許多專業(yè)知識,拓展了視野,提高了我的理論水平和實際的動手能力,并讓我學會了解決問題的方法,激發(fā)了我的探索精神。這樣的課程設計是很好的鍛煉機會

33、,課程設計使我深入的了解到了實踐能力對于工科學生的重要性,增強了我們的實踐動手能力,也為我接下來大四的畢業(yè)設計提供了寶貴的經(jīng)驗。</p><p>  [2012年7月 19日完成]</p><p>  附錄1 電路原理圖</p><p><b>  附錄2 程序清單</b></p><p>  #include<

34、;at89x51.h></p><p>  #define unchar unsigned char</p><p>  #define unint unsigned int</p><p>  unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x

35、88,0x83,0xc6,0xa1,0x86,0x84,0xff,0xbf};//顯示代碼</p><p>  unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7};//位選口</p><p>  unsigned char dispbuf[4]={0,0,0,0};</p><p>  unsigned char di

36、spbitcnt;</p><p>  unint mstcnt;</p><p><b>  unint i;</b></p><p>  unint count=0;</p><p>  unchar tp=0;</p><p>  void ledshow();</p><

37、;p>  void keyscan();</p><p>  void delay();</p><p>  void just();</p><p>  void turn();</p><p>  void motorstop();</p><p>  void speedup();</p>&

38、lt;p>  void speeddown();</p><p>  void main(void)</p><p><b>  {</b></p><p><b>  P3_0=1;</b></p><p><b>  P3_1=0;</b></p>&l

39、t;p>  dispbuf[0]=16;</p><p>  TMOD=0x02;</p><p><b>  TH0=0x06;</b></p><p><b>  TL0=0x06;</b></p><p><b>  TR0=1;</b></p>&l

40、t;p><b>  ET0=1; </b></p><p><b>  EA=1;</b></p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  ledshow();//數(shù)碼管顯示</

41、p><p>  keyscan();//鍵盤掃描</p><p><b>  }</b></p><p><b>  }</b></p><p>  //延時10ms程序</p><p>  void delay()</p><p><b>  

42、{</b></p><p>  unsigned char i,j;</p><p>  for(i=20;i>0;i--)</p><p>  for(j=248;j>0;j--);</p><p><b>  }</b></p><p><b>  //鍵盤掃

43、描程序</b></p><p>  void keyscan()</p><p><b>  {</b></p><p>  unchar temp=0;</p><p><b>  P1=0xff;</b></p><p>  if((P1&0x1f)!

44、=0x1f)</p><p><b>  {</b></p><p><b>  delay();</b></p><p>  if((P1&0x1f)!=0x1f)</p><p><b>  {</b></p><p>  temp=P1&a

45、mp;0x1f;</p><p>  switch(temp)</p><p><b>  {</b></p><p>  case 0x1e:</p><p>  just();break;</p><p>  case 0x1d:</p><p>  turn();br

46、eak;</p><p>  case 0x1b:</p><p>  motorstop();break;</p><p>  case 0x17:</p><p>  speedup();break;</p><p>  case 0x0f:</p><p>  speeddown();br

47、eak;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  while((P1&0x1f)!=0x1f);</p><p><b>  }<

48、/b></p><p><b>  //數(shù)碼管顯示程序</b></p><p>  void ledshow()</p><p><b>  {</b></p><p>  //P0=dispcode[dispbuf[dispbitcnt]];</p><p>  //

49、P2=dispbitcode[dispbitcnt];</p><p>  //dispbitcnt++;</p><p>  //if(dispbitcnt==4)</p><p><b>  {</b></p><p>  //dispbitcnt=0;</p><p><b>  

50、}</b></p><p>  P2=0x01;P0=dispcode[dispbuf[0]];</p><p>  for(i=0;i<700;i++);</p><p>  P2=0x02;P0=dispcode[dispbuf[1]];</p><p>  for(i=0;i<700;i++);</p>

51、;<p>  P2=0x04;P0=dispcode[dispbuf[2]];</p><p>  for(i=0;i<700;i++);</p><p>  P2=0x08;P0=dispcode[dispbuf[3]];</p><p>  for(i=0;i<700;i++);</p><p>  dispbu

52、f[1]=tp/100;</p><p>  dispbuf[2]=(tp%100)/10;</p><p>  dispbuf[3]=tp%10;</p><p><b>  }</b></p><p><b>  //中斷服務程序</b></p><p>  void t

53、0(void) interrupt 1 using 0</p><p><b>  {</b></p><p><b>  mstcnt++;</b></p><p>  if(mstcnt==8)</p><p><b>  {</b></p><p>

54、;<b>  mstcnt=0;</b></p><p>  P0=dispcode[dispbuf[dispbitcnt]];</p><p>  P2=dispbitcode[dispbitcnt];</p><p>  dispbitcnt++;</p><p>  if(dispbitcnt==4)</p&

55、gt;<p><b>  {</b></p><p>  dispbitcnt=0;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(count>100)</p><p>&l

56、t;b>  count=0;</b></p><p>  if(count>tp)</p><p><b>  P3_7=0;</b></p><p>  else P3_7=1;</p><p><b>  count++;</b></p><p>

57、<b>  }</b></p><p>  void just()</p><p><b>  {</b></p><p><b>  P3_0=1;</b></p><p><b>  P3_1=0;</b></p><p>  

58、dispbuf[0]=16;</p><p><b>  }</b></p><p>  void turn()</p><p><b>  {</b></p><p><b>  P3_0=0;</b></p><p><b>  P3_1=

59、1;</b></p><p>  dispbuf[0]=17;</p><p><b>  }</b></p><p>  void motorstop()</p><p><b>  {</b></p><p><b>  tp=0;</b>

60、;</p><p><b>  }</b></p><p>  void speedup()</p><p><b>  {</b></p><p><b>  if(tp>99)</b></p><p><b>  tp=100;<

61、;/b></p><p>  else tp++;</p><p><b>  }</b></p><p>  void speeddown()</p><p><b>  {</b></p><p><b>  if(tp<1)</b>&l

溫馨提示

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

評論

0/150

提交評論