2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  課程設(shè)計報告</b></p><p>  題目: 基于單片機的直流調(diào)速系統(tǒng)設(shè)計</p><p>  學(xué)生姓名 學(xué)號 </p><p>  屆 班級 電三 </p><p

2、>  指導(dǎo)教師 專業(yè)電氣工程及其自動化</p><p><b>  概述</b></p><p>  本文主要研究了利用MCS-51系列單片機,通過PWM方式控制直流電機調(diào)速的方法。PWM控制技術(shù)以其控制簡單、靈活和動態(tài)響應(yīng)好的優(yōu)點而成為電力電子技術(shù)最廣泛應(yīng)用的控制方式,也是人們研究的熱點。由于當(dāng)今科學(xué)技術(shù)的發(fā)展已經(jīng)沒有了學(xué)科之間的界限,

3、結(jié)合現(xiàn)代控制理論思想或?qū)崿F(xiàn)無諧振軟開關(guān)技術(shù)將會成為PWM控制技術(shù)發(fā)展的主要方向之一。</p><p>  本文就是利用這種控制方式來改變電壓的占空比實現(xiàn)直流電機速度的控制。文章中采用了專門的芯片組成了PWM信號的發(fā)生系統(tǒng),然后通過放大來驅(qū)動電機。利用直流測速發(fā)電機測得電機速度,經(jīng)過濾波電路得到直流電壓信號,把電壓信號輸入給A/D轉(zhuǎn)換芯片最后反饋給單片機,在內(nèi)部進行PI運算,輸出控制量完成閉環(huán)控制,實現(xiàn)電機的調(diào)速控

4、制。</p><p><b>  設(shè)計內(nèi)容</b></p><p>  1 選擇電動機參數(shù):</p><p>  額定電壓:6V額定轉(zhuǎn)速:6000rpm減速比:1:46.7</p><p>  空載轉(zhuǎn)速:128rpm10ms/轉(zhuǎn)</p><p>  2 電機調(diào)速模塊采用由三極管組成

5、的H型PWM電路。用單片機控制三極管使之工作在占空比可調(diào)的開關(guān)狀態(tài),精確調(diào)整電動機轉(zhuǎn)速。這種電路由于工作在管子的飽和截止模式下,效率非常高;H型電路保證了可以簡單地實現(xiàn)轉(zhuǎn)速和方向的控制;電子開關(guān)的速度很快,穩(wěn)定性也極佳,是一種廣泛采用的PWM調(diào)速技術(shù)。</p><p>  3 PWM調(diào)速工作方式</p><p>  由于單極性工作制電壓波開中的交流成分比雙極性工作制的小,其電流的最大波動

6、也比雙極性工作制的小,所以我們采用了單極性工作制。</p><p>  調(diào)脈寬的方式有三種:定頻調(diào)寬、定寬調(diào)頻和調(diào)寬調(diào)頻。我們采用了定頻調(diào)寬方式,因為采用這種方式,電動機在運轉(zhuǎn)時比較穩(wěn)定;并且在采用單片機產(chǎn)生PWM脈沖的軟件實現(xiàn)上比較方便。</p><p>  采用定時器做為脈寬控制的定時方式,這一方式產(chǎn)生的脈沖寬度極其精確,誤差只在幾個us。</p><p>&l

7、t;b>  4 硬件電路設(shè)計</b></p><p>  框圖如下圖所示,硬件電路結(jié)構(gòu)初步設(shè)想由以下4部分組成:時鐘電路、復(fù)位電路、單片機、驅(qū)動電路。驅(qū)動電路部分采用了以GTR為可控開關(guān)元件、H橋電路為功率放大電路所構(gòu)成的電路結(jié)構(gòu)??刂撇糠植捎脜R編語言編程控制,AT89C51芯片的定時器產(chǎn)生PWM脈沖波形,通過調(diào)節(jié)波形的寬度來控制H電路中的GTR通斷時間,便能夠?qū)崿F(xiàn)對電機速度的控制。</p

8、><p>  根據(jù)硬件系統(tǒng)電路設(shè)計框圖,對各部分模塊的原理進行分析,編寫個子模塊程序,最終將其組合。</p><p>  圖3.1硬件系統(tǒng)電路設(shè)計框圖</p><p><b>  二 信號輸入電路</b></p><p>  獨立式按鍵就是各按鍵相互獨立,每個按鍵各接入一根輸入線,一根輸入線上的按鍵工作狀態(tài)不會影響其他輸入線

9、上的工作狀態(tài)。因此,通過檢測輸入線的電平狀態(tài)可以很容易判斷哪個按鍵按下了。獨立式按鍵電路配置靈活,軟件簡單。但每個按鍵需要占用一個輸入口線,在按鍵數(shù)量較多時,需要較多的輸入口線且電路結(jié)構(gòu)復(fù)雜,故此種鍵盤適用于按鍵較少或操作速度較高的場合。</p><p>  消除鍵抖動。一般按鍵在按下的時候有抖動的問題,即鍵的簧片在按下時會有輕微的彈跳,需經(jīng)過一個短暫的時間才會可靠地接觸。若在簧片抖動時進行掃描就可能得出不正確的

10、結(jié)果。因此,在程序中要考慮防抖動的問題。最簡單的辦法是在檢測到有鍵按下時,等待(延遲)一段時間再進行“行掃描”,延遲時間為10~20ms。這可通過調(diào)用子程序來解決,當(dāng)系統(tǒng)中有顯示子程序時,調(diào)用幾次顯示子程序也能同時達到消除抖動的目的。</p><p>  電機PWM電路驅(qū)動的模塊</p><p>  三 系統(tǒng)的軟件設(shè)計</p><p>  系統(tǒng)的軟件設(shè)計分析在進行

11、單片機控制系統(tǒng)設(shè)計時,除了系統(tǒng)硬件設(shè)計外,大量的工作就是如何根據(jù)每個生產(chǎn)對象的實際需要設(shè)計應(yīng)用程序。因此,軟件設(shè)計在控制系統(tǒng)設(shè)計中占重要地位。</p><p>  鍵盤向單片機輸入相應(yīng)控制指令,由單片機通過P3.7輸出與轉(zhuǎn)速相應(yīng)的PWM脈沖,另一口輸出高電平,驅(qū)動H型橋式電動機控制電路,實現(xiàn)電動機轉(zhuǎn)向與轉(zhuǎn)速的控制。電動機所處速度級以速度檔級數(shù)表示。速度分4檔,快慢與電動機所處速度級快慢一一對應(yīng)。</p>

12、;<p>  在程序中通過軟件產(chǎn)生PWM,送出預(yù)設(shè)占空比的PWM波形。PWM(脈沖寬度調(diào)制)是一系列周期固定、占空比可調(diào)的脈沖系列,由于每個脈沖的高電平時間和低電平時間之和必須等于周期數(shù),所以輸出電平的維持時間必須由定時器來控制。設(shè)PWM周期為T,高電平時間為TH,低電平時間為TL,電壓為VCC,則輸出電壓的平均值為:UAV =VCC*TH/(TH+TL)=VCC*TH/T=aVCC,當(dāng)VCC固定時,其電壓值取決于PWM波

13、形的占空比a,而PWM的占空比由單片機軟件內(nèi)部用于控制PWM輸出的寄存器值決定。</p><p>  軟件主要由3部分組成:主程序、鍵盤掃描程序、中斷處理程序。主程序流程如圖4-1所示。</p><p>  圖4.1 主程序流程圖</p><p>  1 定時中斷處理程序</p><p>  采用定時方式1,因為單片機使用12M晶振,可產(chǎn)生最

14、高約為65.5ms的延時。對定時器置初值0xFF9C可定時100us。當(dāng)100us定時時間到,定時器溢出則響應(yīng)該定時中斷處理程序,完成對定時器的再次賦值。 </p><p>  2 PWM脈寬控制 </p><p>  一個脈沖周期可以由高電平持續(xù)時間系數(shù)c16TimeH和低電平持續(xù)時間系數(shù)c16TimeL組成,本設(shè)計中采用的脈沖頻率為10000Hz,可得c16TimeH+c16TimeL

15、=65536,占空比為c16TimeH/(c16TimeH+c16TimeL),因此要實現(xiàn)定頻調(diào)寬的調(diào)速方式,只需通過程序改變?nèi)肿兞縞16TimeH,c16TimeL的值。</p><p>  產(chǎn)生PWM波程序為: 見附錄1</p><p><b>  程序流程框圖:</b></p><p>  程序內(nèi)容:(詳見附錄2)</p>

16、<p><b>  仿真結(jié)果與分析</b></p><p>  未啟動仿真時,初始狀態(tài): </p><p><b>  啟動仿真后:</b></p><p>  示波器顯示PWM方波:</p><p><b>  高速擋(正轉(zhuǎn)):</b></p>

17、<p><b>  低速擋(正轉(zhuǎn)):</b></p><p><b>  反轉(zhuǎn)狀態(tài):</b></p><p><b>  課程設(shè)計參考資料</b></p><p>  [1]趙影.電機與電力拖動[M] .北京:國防工業(yè)出版社,2011.</p><p>  [2]何立

18、民.單片機與嵌入式系統(tǒng)應(yīng)用[J]. 基于HCS12的小車智能控制系統(tǒng)設(shè)計.2007,(3) :51-53,57.</p><p>  [3]方建軍.何廣平.智能機器人[M].北京:化學(xué)工業(yè)出版社.2004 :5-9.</p><p>  [4]張立.電子世界[J].電動小車的循跡. 2004,(6):45. </p><p>  [5] http://club.ch

19、ina.alibaba.com/forum/thread/view/99_22334448_1.html.</p><p>  [6]滕志軍.今日電子[J].基于超聲波檢測的倒車?yán)走_設(shè)計.2006,(9):15-17.</p><p>  [7]徐科軍.傳感器與檢測技術(shù)[M].北京:電子工業(yè)出版社,2007:110-113,160-161.</p><p>  [8

20、]潘新民.王燕芳.微型計算機控制技術(shù)實用教程[M].北京:電子工業(yè)出版社,2007:75-76,118-119.</p><p><b>  附錄一</b></p><p><b>  //PWM控制程序</b></p><p>  //===========================================

21、=====</p><p>  //使用T2作為PWM的定時器</p><p>  //+-----+-----+------+|</p><p>  //| 電機 ||</p><p>  //+-----+-----+------+|</p><p>  //|ML_D1|ML_D2| 控制||&

22、lt;/p><p>  //+-----+-----+------+|</p><p>  //| 0 | 0 | 停止||</p><p>  //| 0 | 1 | 正 ||</p><p>  //| 1 | 0 | 反 ||</p><p>  //| 1 | 1 | 禁用||&

23、lt;/p><p>  //+-----+-----+------+|</p><p>  //================================================</p><p>  #include <REG52.H></p><p>  #include "PubDefine.h"

24、</p><p>  #include "MotorCtrl.h"</p><p>  //================================================</p><p>  sbit P17=P3^7;</p><p>  //==============================

25、==================</p><p>  codeintKP=Kp; //比例常數(shù)</p><p>  codeintKD=Kd; //微分常數(shù)</p><p>  code intKI=Ki; //積分常數(shù)</p><p>  //================================

26、================</p><p>  //======== 初始化CPU===============================</p><p>  void Ini_T0(void)//T0:位計數(shù)器</p><p><b>  {</b></p><p>  TMOD &= 0xF0

27、;</p><p>  TMOD |= 0x05;//計數(shù)方式</p><p><b>  TL0 = 0;</b></p><p><b>  TH0 = 0;</b></p><p>  PT0=0;//低優(yōu)先級</p><p>  ET0=0;

28、//T0中斷禁止</p><p><b>  TR0=1;</b></p><p>  T0=1;//P3^4=1</p><p><b>  }</b></p><p>  //===================================================

29、</p><p>  void Ini_T1(void)//T1:位計數(shù)器</p><p><b>  {</b></p><p>  TMOD &= 0x0F;</p><p>  TMOD |= 0x50;//計數(shù)方式</p><p><b>  TL1 = 0;<

30、;/b></p><p><b>  TH1 = 0;</b></p><p>  PT1=0;//低優(yōu)先級</p><p>  ET1=0;//T0中斷禁止</p><p><b>  TR1=1;</b></p><p>  T1=1;

31、//P3^5=1</p><p><b>  }</b></p><p>  //=======================================</p><p>  void Ini_T2(void)//T2:定時器16重裝時間初值方式</p><p><b>  {</b>

32、</p><p>  RCLK=0;//接收時鐘禁止</p><p>  TCLK=0;//發(fā)送時鐘禁止</p><p>  EXEN2=0;//T2EN端外部信號無效</p><p>  C_T2=0;//定時器</p><p>  CP_RL2=0;//重裝時

33、間初值</p><p>  RCAP2H=c16TimeH;</p><p>  RCAP2L=c16TimeL;</p><p><b>  PT2=1;</b></p><p>  ET2=1;//T2中斷開</p><p><b>  TR2=1;</b>&

34、lt;/p><p><b>  }</b></p><p>  //=======================================</p><p>  void Ini_ExInt(void)//INT0,INT1 下降沿觸發(fā)</p><p><b>  {</b></p>

35、<p>  IT0=1;//下降沿觸發(fā)</p><p>  EX0=1;//外中斷開啟</p><p>  PX0=0;//低優(yōu)先級</p><p>  IT1=1;//下降沿觸發(fā)</p><p>  EX1=1;//外中斷開啟</p><p>

36、  PX1=0; //低優(yōu)先級</p><p><b>  }</b></p><p>  //================================================</p><p><b>  //用于L電機測速</b></p><p>  void ExIn

37、t0 (void) interrupt 0 </p><p><b>  {</b></p><p>  sLrpm=sLrpm+20;</p><p>  if (sLrpm>MaxRPM)</p><p>  {sLrpm=MinRPM;}</p><p><b>  }&l

38、t;/b></p><p>  //================================================</p><p>  void timer2 (void) interrupt 5 using 3</p><p><b>  {</b></p><p><b>  TR2

39、=0;</b></p><p>  if ((PwmCyc++)==cPwmCyc)</p><p>  {PwmCyc=0;}</p><p>  PWML=!(PwmCyc>=PwmValL);</p><p>  PWMR=!(PwmCyc>=PwmValR);</p><p>  E

40、xTimer++;</p><p>  if (ExTimer>=c250ms)</p><p><b>  {</b></p><p>  GetCountVal(cLMotor,Lrpm);</p><p>  mLrpm=filter(Lrpm);</p><p>  ExTimer

41、=0;</p><p><b>  }</b></p><p><b>  ExSec++;</b></p><p>  if(ExSec>=c250ms)</p><p><b>  {</b></p><p><b>  P17=!

42、P17;</b></p><p><b>  ExSec=0;</b></p><p><b>  }</b></p><p><b>  TR2=1;</b></p><p><b>  TF2=0;</b></p><p

43、><b>  }</b></p><p><b>  附錄2</b></p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  if (PwmValL==0) </p><

44、;p><b>  {</b></p><p>  DispDigit(PwmValL,0);</p><p><b>  }</b></p><p><b>  else</b></p><p>  {DispDigit(PwmValL+10,0);}</p>

45、<p><b>  stop=1;</b></p><p>  fanxiang=1;</p><p>  acc=1 ; </p><p><b>  subb=1 ; </b></p>&

46、lt;p>  if (stop==0)</p><p><b>  {</b></p><p>  delay_1ms(10);</p><p>  if (stop==0)</p><p><b>  {</b></p><p>  if((PwmValL<1)

47、&&(PwmValL>-1))</p><p><b>  {</b></p><p><b>  ML_D1=1;</b></p><p><b>  ML_D2=0;</b></p><p>  PwmValL=30;</p><p

48、>  DispDigit(PwmValL+10,0);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  PwmValL=0;</p><p>  D

49、ispDigit(PwmValL+10,0);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (fanxiang==0)</p><p><b&g

50、t;  {</b></p><p>  delay_1ms(10);</p><p>  if (fanxiang==0)</p><p><b>  {</b></p><p>  ML_D1=!ML_D1;</p><p>  ML_D2=!ML_D2;</p>&l

51、t;p>  DispDigit(PwmValL+10,0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if ( acc==0)</p><p><b>  {</b></p><p>

52、  delay_1ms(10);</p><p>  if ( acc==0)</p><p><b>  {</b></p><p>  PwmValL=PwmValL+5;</p><p>  DispDigit(PwmValL+10,0);</p><p><b>  }<

53、;/b></p><p><b>  }</b></p><p>  if (subb==0)</p><p><b>  {</b></p><p>  delay_1ms(10);</p><p>  if (subb==0)</p><

54、p><b>  {</b></p><p>  PwmValL=PwmValL-5; </p><p>  DispDigit(PwmValL+10,0);</p><p><b>  }</b></p><p><b>  }</b></p><p

55、><b>  } </b></p><p><b>  }</b></p><p>  主程序(main.c)</p><p>  void main (void)</p><p><b>  {</b></p><p>  Ini_ExInt

56、();</p><p><b>  Ini_T0();</b></p><p><b>  Ini_T1();</b></p><p><b>  Ini_T2();</b></p><p>  delay_1ms(10); //延時100ms</p><

57、p>  EA=1; //全局中斷開</p><p>  PwmCyc=cPwmCyc;</p><p>  PwmValL=0;</p><p>  PwmValR=0;</p><p><b>  P2=0xFF;</b></p><p><b>  P2&

58、amp;=0xFE;</b></p><p><b>  RXD=0;</b></p><p><b>  TXD=1;</b></p><p>  Lrpm[0]=1;</p><p>  Rrpm[0]=1;</p><p><b>  P2=0

59、xFF;</b></p><p><b>  P2&=0xFE;</b></p><p><b>  RXD=0;</b></p><p>  TXD=1; </p><p><b>  sLrpm=0;</b></p>

60、<p><b>  sRrpm=0;</b></p><p><b>  ExSec=0;</b></p><p>  ExTimer=0;</p><p>  //===================================================</p><p>&

61、lt;b>  while(1)</b></p><p><b>  {</b></p><p>  if((ML_D1==0)&&(ML_D2==1))</p><p><b>  {</b></p><p>  if (PwmValL==0) </p>

62、;<p><b>  {</b></p><p>  DispDigit(16,PwmValL);</p><p><b>  }</b></p><p><b>  else</b></p><p>  {DispDigit(16,PwmValL+10);}&l

63、t;/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  if (PwmValL==0) </p><p><b>  {</b></p&g

64、t;<p>  DispDigit(0,PwmValL);</p><p><b>  }</b></p><p><b>  else</b></p><p>  {DispDigit(0,PwmValL+10);}</p><p><b>  }</b><

65、;/p><p><b>  stop=1;</b></p><p>  fanxiang=1;</p><p>  acc=1 ; </p><p><b>  subb=1 ; </b></p

66、><p>  if (stop==0)</p><p><b>  {</b></p><p>  delay_1ms(10);</p><p>  if (stop==0)</p><p><b>  {</b></p><p>  if((PwmVal

67、L<1)&&(PwmValL>-1))</p><p><b>  {</b></p><p><b>  ML_D1=1;</b></p><p><b>  ML_D2=0;</b></p><p>  PwmValL=30;</p>

68、<p>  DispDigit(0,PwmValL+10);</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  PwmValL=0;</p><p

69、>  DispDigit(0,PwmValL+10);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if (fanxiang==0)</p><p>

70、<b>  {</b></p><p>  delay_1ms(10);</p><p>  if (fanxiang==0)</p><p><b>  {</b></p><p>  ML_D1=!ML_D1;</p><p>  ML_D2=!ML_D2;</p&

71、gt;<p>  if((ML_D1==0)&&(ML_D2==1))</p><p>  DispDigit(0,PwmValL+10);</p><p><b>  else</b></p><p>  DispDigit(16,PwmValL+10);</p><p><b>

72、;  }</b></p><p><b>  }</b></p><p>  if ( acc==0)</p><p><b>  {</b></p><p>  delay_1ms(10);</p><p>  if ( acc==0)</p>

73、<p><b>  {</b></p><p>  PwmValL=PwmValL+1;</p><p>  DispDigit(0,PwmValL+10);</p><p><b>  }</b></p><p><b>  }</b></p>

74、<p>  if (subb==0)</p><p><b>  {</b></p><p>  delay_1ms(10);</p><p>  if (subb==0)</p><p><b>  {</b></p><p>  PwmValL=PwmV

75、alL-1; </p><p>  DispDigit(0,PwmValL+10);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  } </b></p><p><b>  }

溫馨提示

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

最新文檔

評論

0/150

提交評論