版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計--單片機直流電機調(diào)速系統(tǒng)設(shè)計
- 單片機課程設(shè)計論文--直流電機調(diào)速
- 單片機控制直流調(diào)速系統(tǒng)設(shè)計論文
- 基于單片機的直流電機測速、調(diào)速及顯示系統(tǒng)課程設(shè)計
- 小直流電機調(diào)速實驗單片機課程設(shè)計
- 課程設(shè)計---基于單片機的直流電機測速、調(diào)速及顯示系統(tǒng)設(shè)計
- 單片機課程設(shè)計---基于單片機溫度測量系統(tǒng)設(shè)計
- 基于單片機的磨片機直流調(diào)速系統(tǒng).pdf
- 基于51單片機課程設(shè)計報告--小直流電機調(diào)速控制系統(tǒng)
- 單片機課程設(shè)計--基于單片機的秒表系統(tǒng)設(shè)計
- 單片機控制直流雙閉環(huán)調(diào)速系統(tǒng)設(shè)計
- 基于單片機的直流調(diào)速系統(tǒng)的設(shè)計畢業(yè)設(shè)計
- 單片機課程設(shè)計---基于單片機的直流電機控制
- 基于單片機的直流數(shù)控電壓源課程設(shè)計
- 基于單片機的直流電壓檢測系統(tǒng)設(shè)計課程設(shè)計
- 基于單片機的直流電壓檢測系統(tǒng)設(shè)計課程設(shè)計
- 畢業(yè)設(shè)計-基于pic單片機的直流調(diào)速系統(tǒng)設(shè)計
- 單片機課程設(shè)計---基于單片機直流電機測速及其控制系統(tǒng)
- 基于單片機的秒表設(shè)計單片機課程設(shè)計
- 基于單片機的直流調(diào)速系統(tǒng)的設(shè)計畢業(yè)論文
評論
0/150
提交評論