單片機控制直流調(diào)速系統(tǒng)設(shè)計論文_第1頁
已閱讀1頁,還剩31頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  本文主要研究了利用MCS-51系列單片機控制PWM信號從而實現(xiàn)對直流電機轉(zhuǎn)速進行控制的方法。文章中采用了專門的芯片組成了PWM信號的發(fā)生系統(tǒng),并且對PWM信號的原理、產(chǎn)生方法以及如何通過軟件編程對PWM信號占空比進行調(diào)節(jié),從而控制其輸入信號波形等均作了詳細的闡述。此外,本文中還采用了芯片L298N作為直流電機正轉(zhuǎn)調(diào)速功率放大電

2、路的驅(qū)動模塊,并且把它與延時電路相結(jié)合完成了在主電路中對直流電機的控制。另外,本系統(tǒng)中使用了測速發(fā)電機對直流電機的轉(zhuǎn)速進行測量,經(jīng)過濾波電路后,將測量值送到A/D轉(zhuǎn)換器,并且最終作為反饋值輸入到單片機進行PI運算,從而實現(xiàn)了對直流電機速度的控制。在軟件方面,文章中詳細介紹了PI運算程序,初始化程序等的編寫思路和具體的程序?qū)崿F(xiàn)。此外,設(shè)計采用了數(shù)字速度給定和數(shù)字式測速方法,提高了速度控制的精度;加強了系統(tǒng)在電磁兼容性方面的設(shè)計工作,增強了

3、系統(tǒng)的抗干擾性能。本設(shè)計最大特色是,為了提高系統(tǒng)精度,系統(tǒng)采用了兩片單片機,其中一片做成PID控制器,專門進行PID運算和PWM控制信號輸出;另一片則系統(tǒng)主芯片,完成電機速度的鍵盤設(shè)定、測量、顯示,并向PID控制器提供設(shè)定值和測量值</p><p>  關(guān)鍵詞: PWM信號;測速發(fā)電機;PI運算</p><p><b>  Abstract</b></p>

4、<p>  This article mainly introduces the method to generate the PWM signal by using MCS-51 single-chip computer to control the speed of a D.C. motor. It also clarifies the principles of PWM and the way to adjust t

5、he duty cycle of PWM signal. In addition, L298N has been used as an actuating device of the power amplifier circuit which controls the speed of rotation of D.C. motor. What’s more, tachogenerator is used in this system t

6、o measure the speed of D.C.motor. The result of the measurement is sent t</p><p>  Key words:PWM signal;tachogenerator;PI calculation</p><p><b>  目 錄</b></p><p><b

7、>  摘 要I</b></p><p>  Abstract.......................................................................................................................Ⅱ</p><p><b>  1 緒論1</b&

8、gt;</p><p>  1.1 直流電機調(diào)速系統(tǒng)的研究意義1</p><p>  1.2 本文研究的內(nèi)容1</p><p><b>  2總體方案設(shè)計2</b></p><p>  2.1硬件方案論證2</p><p>  2.2系統(tǒng)原理框圖設(shè)計6</p><p&

9、gt;  3 系統(tǒng)硬件設(shè)計7</p><p><b>  3.1電源電路7</b></p><p>  3.2 H橋驅(qū)動電路8</p><p>  3.3 基于霍爾傳感器的測速模塊8</p><p>  3.4 LCD顯示模塊9</p><p>  4 系統(tǒng)軟件設(shè)計11</p&g

10、t;<p>  4.1 系統(tǒng)總程序框圖設(shè)計11</p><p>  4.2 電機轉(zhuǎn)速測量程序設(shè)計13</p><p>  4.3鍵盤程序設(shè)計14</p><p>  4.4 LCD顯示子程序的設(shè)計15</p><p>  4.5 PWM信號的單片機程序?qū)崿F(xiàn)17</p><p>  5 數(shù)字PID

11、及其算法的改進18</p><p>  5.1 PID控制基本原理18</p><p>  5.2數(shù)字PID控制算法18</p><p>  5.3 PID控制算法的單片機程序?qū)崿F(xiàn)19</p><p><b>  結(jié) 論21</b></p><p><b>  致

12、謝22</b></p><p><b>  參考文獻23</b></p><p><b>  附 錄24</b></p><p><b>  1 緒論</b></p><p>  1.1 直流電機調(diào)速系統(tǒng)的研究意義</p><p>

13、;  三十多年來,直流經(jīng)歷了重大的變革。首先,實現(xiàn)了整流器件的更新?lián)Q代,以晶閘管整流裝置取代了使用己久的直流發(fā)電機一電動機機組及水銀整流裝置,使直流電機拖動完成了一次大的飛躍。同時,控制電路己實現(xiàn)高集成化,小型化,高可靠性及低成本。以上技術(shù)的應(yīng)用,使直流調(diào)速系統(tǒng)的性能指標大幅度提高,應(yīng)用范圍不斷擴大。由于直流調(diào)速系統(tǒng)的調(diào)速精度高,調(diào)速范圍廣,所以,在對調(diào)速性能要求較高的場合,一般都采用直流電機拖動。直流調(diào)速技術(shù)迅速發(fā)展,走向成熟化、完善

14、化、系列化、標準化,在可逆、寬調(diào)速、高精度的電機拖動領(lǐng)域中一直居于壟斷地位。</p><p>  早期,直流傳動的控制系統(tǒng)采用模擬分立器件構(gòu)成,由于模擬器件有其固有的缺點,構(gòu)成系統(tǒng)的器件較多,使得模擬直流傳動系統(tǒng)的控制精度及可靠性較低。隨著單片機控制技術(shù)的發(fā)展,直流傳動控制系統(tǒng)己經(jīng)廣泛使用單片機,實現(xiàn)了數(shù)字化控制。由于單片機以數(shù)字信號工作,控制手段靈活方便,抗干擾能力強。所以,數(shù)字直流調(diào)速系統(tǒng)的控制精度和可靠性比

15、模擬直流調(diào)速系統(tǒng)大大提高。而且通過系統(tǒng)總線,數(shù)字控制系統(tǒng)能與管理計算機、過程計算機、遠程電控裝置進行信息交換,實現(xiàn)生產(chǎn)過程的分級自動化控制。</p><p>  1.2 本文研究的內(nèi)容</p><p>  該系統(tǒng)以89C51單片機為核心,介紹PWM的基本原理和占空比調(diào)節(jié)的方法。要求通過單片機外圍的鍵盤按鍵實現(xiàn)速度、轉(zhuǎn)向調(diào)節(jié),并在LCD上實時顯示相關(guān)參數(shù)。眾所周知運動控制系統(tǒng)最主要的控制對象

16、是電機,在不同的生產(chǎn)過程中,電機的運行狀態(tài)要滿足生產(chǎn)要求,其中電機速度的控制在占有至關(guān)重要的作用,因此本次設(shè)計是利用PID控制技術(shù)對直流電機轉(zhuǎn)速的控制。系統(tǒng)控制方案的分析為:本直流電機調(diào)速系統(tǒng)以單片機系統(tǒng)為依托,根據(jù)PWM調(diào)速的基本原理,以直流電機電樞上電壓的占空比來改變平均電壓的大小,從而控制電動機的轉(zhuǎn)速為依據(jù),實現(xiàn)對直流電動機的平滑調(diào)速。本文所研究的直流電機調(diào)速系統(tǒng)是由硬件和軟件兩大部分組成。硬件部分是前提,它主要為軟件提供程序運行

17、的平臺。而軟件部分,是對硬件端口所體現(xiàn)的信號,加以采集、分析、處理,最終實現(xiàn)控制器所要實現(xiàn)的各項功能,達到控制器自動對電機速度的有效控制。</p><p><b>  2 總體方案設(shè)計</b></p><p>  2.1 硬件方案論證</p><p>  2.1.1 單片機介紹及選型</p><p>  AT89S52為

18、 ATMEL 所生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。</p><p>  AT89S52主要功能列舉如下:</p><p>  1、擁有靈巧的8位CPU和在系統(tǒng)可編程Flash</p><p>  2、晶片內(nèi)部具時鐘振蕩器(傳統(tǒng)最高工作頻率可至 12MHz)</p><p>  3、內(nèi)部程序存儲

19、器(ROM)為 8KB</p><p>  4、內(nèi)部數(shù)據(jù)存儲器(RAM)為 256字節(jié)</p><p>  5、32 個可編程I/O 口線</p><p>  6、8 個中斷向量源</p><p>  7、三個 16 位定時器/計數(shù)器</p><p>  8、三級加密程序存儲器</p><p>

20、  9、全雙工UART串行通道</p><p>  AT89S52各引腳功能介紹如圖2-1:</p><p>  圖2-1 AT89S52</p><p>  VCC:AT89S52電源正端輸入,接+5V。</p><p><b>  VSS:電源地端。</b></p><p>  XTAL1:

21、單芯片系統(tǒng)時鐘的反相放大器輸入端。</p><p>  XTAL2:系統(tǒng)時鐘的反相放大器輸出端,一般在設(shè)計上只要在 XTAL1 和 XTAL2 上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩引腳與地之間加入一 20PF 的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機。</p><p>  RESET:AT89S52的重置引腳,高電平動作,當(dāng)要對晶片重置時,只要對此引腳電平提升至高電平

22、并保持兩個機器周期以上的時間,AT89S51便能完成系統(tǒng)重置的各項動作,使得內(nèi)部特殊功能寄存器之內(nèi)容均被設(shè)成已知狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。</p><p>  PSEN:此為"Program Store Enable"的縮寫,其意為程序儲存啟用,當(dāng)8051被設(shè)成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE

23、腳。</p><p>  PORT0(P0.0~P0.7):端口0是一個8位寬的開路汲極(Open Drain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當(dāng)做I/O用時可以推動8個LS的TTL負載。如果當(dāng)EA引腳為低電平時(即取用外部程序代碼或數(shù)據(jù)存儲器),P0就以多工方式提供地址總線(A0~A7

24、)及數(shù)據(jù)總線(D0~D7)。設(shè)計者必須外加一鎖存器將端口0送出的地址栓鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址總線,而定址到64K的外部存儲器空間。</p><p>  PORT2(P2.0~P2.7):端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負載,若將端口2的輸出設(shè)為高電平時,此端口便能當(dāng)成輸入端口來使用。P2除了當(dāng)做一般I/O端口使用外,若

25、是在AT89S52擴充外接程序存儲器或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié)A8~A15,這個時候P2便不能當(dāng)做I/O來使用了。</p><p>  PORT1(P1.0~P1.7):端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LS TTL負載,同樣地若將端口1的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052或是8032的話,P1.0又當(dāng)做定時器2的外部脈沖輸入腳,而P1.1可以

26、有T2EX功能,可以做外部中斷輸入的觸發(fā)腳位。</p><p>  PORT3(P3.0~P3.7):端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數(shù)控制及外部數(shù)據(jù)存儲器內(nèi)容的讀取或?qū)懭肟刂频裙δ堋?lt;/p><p><b>  其引腳分配如下:</b></p>

27、;<p>  P3.0:RXD,串行通信輸入。</p><p>  P3.1:TXD,串行通信輸出。</p><p>  P3.2:INT0,外部中斷0輸入。</p><p>  P3.3:INT1,外部中斷1輸入。</p><p>  P3.4:T0,計時計數(shù)器0輸入。</p><p>  P3.5:T

28、1,計時計數(shù)器1輸入。</p><p>  P3.6:WR:外部數(shù)據(jù)存儲器的寫入信號。</p><p>  P3.7:RD,外部數(shù)據(jù)存儲器的讀取信號。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p>  ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址

29、的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。</p><p>  /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。</p><p>  /EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1

30、時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。</p><p>  XTAL2:來自反向振蕩器的輸出。</p><p>  采用一片單片機(AT89S52)完成系統(tǒng)所有測量、控制運算,并輸出P

31、WM控制信號。</p><p>  2.1.2 測速傳感器的選擇</p><p>  方案一:使用測速發(fā)電機,輸出電動勢E和轉(zhuǎn)速n成線性關(guān)系,即E=kn,其中k是常數(shù)。改變旋轉(zhuǎn)方向時,輸出電動勢的極性即相應(yīng)改變。</p><p>  方案二:采用霍爾傳感器,霍爾元件是磁敏元件,在被測的旋轉(zhuǎn)體上裝一磁體,旋轉(zhuǎn)時,每當(dāng)磁體經(jīng)過霍爾元件,霍爾元件就發(fā)出一個信號,經(jīng)放大整形

32、得到脈沖信號送運算。</p><p>  方案三:在電機的轉(zhuǎn)軸端開一小洞,利用紅外光電耦合器,每轉(zhuǎn)半圈OUT端輸出一個上脈沖。</p><p>  經(jīng)比較,方案一中的測速放電機安裝不如方案二中霍爾元件安裝方便,并且準確率也沒方案二的高,并且方案二不需A/D轉(zhuǎn)傳感器的采購不是很方便,故采用方案三,它具有方案二的幾乎所有的優(yōu)點。方案三中可以采用記數(shù)的方法:具體是通過單片機記單位時間S(秒)內(nèi)的

33、脈沖數(shù)N,每分鐘的轉(zhuǎn)速:M=N/S×60。也可以采用定時的方法:是通過定時器記錄脈沖的周期T,這樣每分鐘的轉(zhuǎn)速:M=60/T。故選方案三。</p><p>  2.1.3 鍵盤顯示方案論證</p><p>  方案一:采用4×4鍵盤,可直接輸入設(shè)定值。顯示部分使用4位數(shù)碼管,優(yōu)點是顯示亮度大,缺點是功耗大,不符合智能化趨勢而且不美觀。</p><p&

34、gt;  方案二:使用4個按鍵,進行逐位設(shè)置。顯示部分是使用支持中文顯示的LCD,優(yōu)點是美觀大方,有利于人與系統(tǒng)的交互,及顯示內(nèi)容的擴展;缺點是成本高,抗干擾能力較差。</p><p>  為了系統(tǒng)容易擴展、操作以及美觀,本設(shè)計完全采用方案二。</p><p>  2.1.4 電機驅(qū)動方案論證</p><p>  方案一:采用專用小型直流電機驅(qū)動芯片。這個方案的優(yōu)點

35、是驅(qū)動電路簡單,幾乎不添加其它外圍元件就可以實現(xiàn)穩(wěn)定的控制,使得驅(qū)動電路功耗相對較小,而且目前市場上此類芯片種類齊全,價格也比較便宜。</p><p>  方案二:采用繼電器對電動機的開或關(guān)進行控制,通過開關(guān)的切換對電機的速度進行調(diào)整。這個方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應(yīng)時間慢、機械結(jié)構(gòu)易損壞、壽命較短、可靠性不高。</p><p>  通過比較和對市場因素的考慮,本設(shè)計采用方

36、案一,使系統(tǒng)的設(shè)計核心在PID控制上。</p><p>  2.2 系統(tǒng)原理框圖設(shè)計</p><p>  系統(tǒng)原理框圖如圖2-2所示,是一個帶鍵盤輸入和顯示的閉環(huán)測量控制系統(tǒng)。主體思想是通過系統(tǒng)設(shè)定信息和測量反饋信息計算輸出控制信息。</p><p>  圖2-2 系統(tǒng)原理框圖</p><p><b>  3 系統(tǒng)硬件設(shè)計<

37、/b></p><p><b>  3.1 電源電路</b></p><p>  3.1.1 芯片介紹</p><p>  78XX,XX就代表它所輸出的電壓值,能降低電壓4-5V。</p><p>  電子產(chǎn)品中常見到的三端穩(wěn)壓集成電路有正電壓輸出的78××系列和負電壓輸出的79×&

38、#215;系列。故名思義,三端IC是指這種穩(wěn)壓用的集成電路只有三條引腳輸出,分別是輸入端、接地端和輸出端。</p><p>  用78/79系列三端穩(wěn)壓IC來組成穩(wěn)壓電源所需的外圍元件極少,電路內(nèi)部還有過流、過熱及調(diào)整管的保護電路。在實際應(yīng)用中,應(yīng)在三端集成穩(wěn)壓電路上安裝足夠大的散熱器(當(dāng)然小功率的條件下不用)。當(dāng)穩(wěn)壓管溫度過高時,穩(wěn)壓性能將變差,甚至損壞。</p><p>  3.1.2

39、 電路原理圖</p><p>  電源電路采用78系列芯片產(chǎn)生+5V、+15V。電路圖如圖3-1: IC采用集成穩(wěn)壓器7805和7815,C2、C3、C5、C6分別為輸入端和輸出端濾波電容,穩(wěn)壓二極管D1串接在7805穩(wěn)壓器2腳與地之間,可使輸出電壓U得到一定的提高,輸出電壓U為7805穩(wěn)壓器輸出電壓與穩(wěn)壓二極管D1穩(wěn)壓值之和。D2是輸出保護二極管,一旦輸出電壓低于D1穩(wěn)壓值時,D2導(dǎo)通,將輸出電流旁路。<

40、/p><p>  圖3-1 78系列的電源電路</p><p>  3.2 H橋驅(qū)動電路</p><p>  基于三極管的使用機理和特性,在驅(qū)動電機中采用H橋功率驅(qū)動電路,H橋功率驅(qū)動電路可應(yīng)用于步進電機、交流電機及直流電機等的驅(qū)動.永磁步進電機或混合式步進電機的勵磁繞組都必須用雙極性電源供電,也就是說繞組有時需正向電流,有時需反向電流,這樣繞組電源需用H橋驅(qū)動。直

41、流電機控制使用H橋驅(qū)動電路(圖3-2),當(dāng)PWM1為低電平,通過對PWM2輸出占空比不同的矩形波使三極管Q1、Q6同時導(dǎo)通Q5截止,從而實現(xiàn)電機正向轉(zhuǎn)動以及轉(zhuǎn)速的控制;同理,當(dāng)PWM2為高電平,通過對PWM1輸出占空比不同的矩形波使三極管Q1、Q6同時導(dǎo)通,Q6截止,從而實現(xiàn)電機反向轉(zhuǎn)動以及轉(zhuǎn)速的控制。</p><p>  圖3-2 H橋的電機驅(qū)動電路</p><p>  3.3 基于

42、霍爾傳感器的測速模塊</p><p>  3.3.1 霍爾傳感器的工作原理</p><p>  工作原理:霍爾開關(guān)集成電路中的信號放大器將霍爾元件產(chǎn)生的幅值隨磁場強度變化的霍爾電壓UH放大后再經(jīng)信號變換器、驅(qū)動器進行整形、放大后輸出幅值相等、頻率變化的方波信號。信號輸出端每輸出一個周期的方波,代表轉(zhuǎn)過了一個齒。單位時間內(nèi)輸出的脈沖數(shù)N,因此可求出單位時間內(nèi)的速度V=NT。</p>

43、;<p>  3.3.2 霍爾傳感器的電路原理圖</p><p>  當(dāng)電流流過霍爾傳感器時,產(chǎn)生的磁場聚集在磁環(huán)內(nèi),通過磁環(huán)氣隙中霍爾元件進行測量并放大輸出,其輸出電壓V精確的反映原邊電流。其電路原理圖如圖3-3所示:</p><p>  圖3-3 霍爾傳感器的測速電路</p><p>  3.4 LCD顯示模塊</p><p

44、>  3.4.1 1602芯片介紹</p><p>  1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”。因為1602識別的是ASCII碼

45、,試驗可以用ASCII碼直接賦值,在單片機編程中還可以用字符型常量或變量賦值,如“A”。1602采用標準的16腳接口,其中:</p><p>  第1腳:VSS為電源地。</p><p>  第2腳:VDD接5V電源正極。</p><p>  第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過

46、一個10K的電位器調(diào)整對比度)。</p><p>  第4腳:RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。</p><p>  第5腳:RW為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。</p><p>  第6腳:E(或EN)端為使能(enable)端。</p><p>  第7~14腳:D0~

47、D7為8位雙向數(shù)據(jù)端。</p><p>  第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負極。</p><p>  電路原理如圖3-4所示:</p><p>  圖3-4 LCD顯示電路</p><p><b>  4 系統(tǒng)軟件設(shè)計</b></p><p>  4.1 系統(tǒng)總程序框

48、圖設(shè)計</p><p>  系統(tǒng)程序程序框圖如圖4-1和4-2所示。</p><p>  圖4-1 系統(tǒng)主單片機總程序框圖</p><p>  圖4-2 系統(tǒng)從單片機(PID控制器)程序框圖</p><p>  當(dāng)系統(tǒng)被啟動后,主從單片機初始化。主單片機檢測是否有鍵按下,再執(zhí)行鍵子程序,將輸入的值傳送到PID控制器,PID控制器經(jīng)PID計

49、算處理,再計算出PWM的定時值,PID再送出相應(yīng)的PWM信號,驅(qū)動電機轉(zhuǎn)動,主單片機將傳感器輸入的信號進行計算,再將得出的值輸出到PID控制器,PID控制器經(jīng)計算輸出相應(yīng)的PWM信號控制電機轉(zhuǎn)速趨于設(shè)定的轉(zhuǎn)速。依次循環(huán)使電機趨于穩(wěn)定值。</p><p>  4.2 電機轉(zhuǎn)速測量程序設(shè)計</p><p>  設(shè)計中考慮到電機的工作環(huán)境一般比較惡劣,因此除了硬件外,從程序上除了要更高的精確度也

50、需要進行更多的抗干擾設(shè)計,從而實現(xiàn)軟件的大范圍檢錯、糾錯或丟棄錯誤等。在程序的設(shè)計過程中,對嚴重不符合要求的測量數(shù)據(jù)(如大于6000轉(zhuǎn)對應(yīng)的數(shù)據(jù))進行了丟棄處理,而對于正常范圍內(nèi)的數(shù)據(jù)錯誤采用了采5取3求平均的算法。實驗表明,此方法降低了系統(tǒng)采集轉(zhuǎn)速中出現(xiàn)的錯誤。對于轉(zhuǎn)速的測量方法,是通過速度脈沖信號下降沿觸發(fā)單片機的外中斷,中斷服務(wù)子程序在某一個脈沖的下降沿開啟定時器記時,然后在下一個下降沿關(guān)閉定時器,通過對定時器數(shù)據(jù)進行運算處理可以

51、得到信號周期進而得到速度值。其程序框圖如圖4-3:</p><p>  圖4-3 外中斷程序框圖</p><p>  4.3 鍵盤程序設(shè)計 </p><p>  鍵盤程序設(shè)計的任務(wù)是賦予各按鍵相應(yīng)的功能,完成速度設(shè)定值的輸入和向PID控制器的發(fā)送。4只按鍵一只用來位循環(huán)選擇,告訴單片機要調(diào)整的是設(shè)定值的個位、十位、百位還是千位。第二、三只按鍵分別是減1、加1減。在

52、沒有位選擇的情況下對設(shè)定值整體進行減1、加1;在有位選擇的情況下僅對相應(yīng)位進行減1、加1,并且當(dāng)按著不釋放按鍵時可以實現(xiàn)快速連續(xù)減1、加1,同時允許循環(huán)減、加(既當(dāng)某位為0時,在減1則為9,某位為9時,加1則為0)。最后一只按鍵是確認發(fā)送鍵,按下它后,單片機將設(shè)定值送給PID控制器,從而實現(xiàn)設(shè)定控制。程序框圖如圖4-4:</p><p>  圖4-4 鍵盤程序框圖</p><p>  4

53、.4 LCD顯示子程序的設(shè)計 </p><p>  LCD的詳細使用過程可參閱對應(yīng)型號的使用手冊。僅在本小節(jié)強調(diào)以下內(nèi)容:LCD 使用的關(guān)鍵是根據(jù)顯示需要正確地對其進行初始化設(shè)置,而一般情況下不用考慮如何向它讀寫指令或數(shù)據(jù),因為制造廠商所給的使用資料里就附有驅(qū)動程序,如果沒有也可以從網(wǎng)上搜索下載得到。然而我們必須清楚那些初始化設(shè)置之間的關(guān)系,以及它是如何利用設(shè)置讀取、顯示數(shù)據(jù)字符的,不然就會發(fā)生一些不可預(yù)料的錯誤

54、。</p><p>  因此,熟讀LCD驅(qū)動芯片使用手冊也是一個關(guān)鍵環(huán)節(jié)。LCD中文字型的編碼寫入地址對照如表4.1。</p><p>  表4.1 編碼寫入地址對照表</p><p>  在RT12232F中,CGRAM字型與中文字型的編碼只可出現(xiàn)在每一Address Counter的開始位置,圖表中最后一行為錯誤的填入中文碼位置,其結(jié)果會產(chǎn)生亂碼象。</

55、p><p>  通常LCD的初始化包括復(fù)位設(shè)置、清除顯示、地址歸位、顯示開關(guān)、游標設(shè)置、讀寫地址設(shè)置、反白選擇以及睡眠模式等等。實際中根據(jù)需要,正確、靈活地修改這些設(shè)置可以達到較為滿意的顯示效果。</p><p>  LCD 中所有漢字、數(shù)字和字符都可以通過它的ASCII碼來訪問顯示;圖象的顯示是通過將相關(guān)軟件(提取漢字、圖象點陣數(shù)據(jù)程序)產(chǎn)生的數(shù)據(jù)按照LCD手冊的要求完成響應(yīng)設(shè)置后寫入即可。

56、</p><p>  由于本設(shè)計中沒有使用到圖形顯示,所以沒有詳述。對于系統(tǒng)使用的漢字、字符和數(shù)據(jù)的LCD顯示初始化程序和寫數(shù)據(jù)程序框圖見圖4-5。</p><p>  圖4-5 LCD顯示初始化程序和寫數(shù)據(jù)程序框圖</p><p>  4.5 PWM信號的單片機程序?qū)崿F(xiàn)</p><p>  理論上,只要PWM脈沖的周期正比于PID控制算法

57、的輸出結(jié)果結(jié)果。具體實現(xiàn)過程中,取u(k)的整數(shù)部分(記為:UT)保存,然后用PWM信號的周期值減去UT所得值即為定時器1的初值(記為:INIT)。其程序框圖見圖4-6。</p><p>  圖4-6 產(chǎn)生PWM控制信號程序框圖</p><p>  5 數(shù)字PID及其算法的改進</p><p>  5.1 PID控制基本原理</p><p>

58、;  PID控制即比例(Proportional)、積分(Integrating)、微分(Differentiation)控制。在PID控制系統(tǒng)中,完成PID控制規(guī)律的部分稱為PID控制器。它是一種線形控制器,用輸出y(t)和給定量r(t)之間的誤差的時間函數(shù)e(t)=r(t)-y(t). PID控制器框圖如圖5-1。實際應(yīng)用中,可以根據(jù)受控對象的特性和控制的性能要求,靈活地采用不同的控制組合,如:</p><p&g

59、t;  圖5-1 PID控制算法框圖</p><p>  比例(P)控制器: </p><p>  比例+積分(PI)控制器:</p><p>  比例+積分+微分(PID)控制器:</p><p>  式中,Kp為比例運算放大系數(shù),Ti為積分時間,Td為微分時間。</p><p>  5.2 數(shù)字PID控制算法&l

60、t;/p><p>  在單片機數(shù)字控制系統(tǒng)中,PID控制算法是通過單片機程序來實現(xiàn)的。對于數(shù)字信號處理其算法變換如下。</p><p><b>  控制量:</b></p><p><b>  比例→比例:</b></p><p><b>  積分→求和:</b></p>

61、;<p><b>  微分→差商:</b></p><p>  式中,為比例系數(shù),為積分系數(shù),為微分系數(shù)。T為采樣周期。</p><p>  上式PID算法為非遞推形式,稱為全量算法。為了求和,必須將系統(tǒng)偏差的全部過去值e(j)(j=0,1,2……)值都存儲起來。這種算法得出了控制量的全量輸出u(k),是控制量的絕對數(shù)值。在控制系統(tǒng)中,這種控制量決定了執(zhí)

62、行機構(gòu)的的位置,比如,在本設(shè)計電機控制系統(tǒng)中,這種算法的輸出對應(yīng)了相應(yīng)的速度值。因此,人們將這種算法稱為“位置PID算法”。</p><p>  除了“位置PID算法”以外,常見的還有增量式PID控制算法。當(dāng)執(zhí)行機構(gòu)需要的不是控制量的絕對值,而是控制量的增量(例如去驅(qū)動步進電動機)時,需要用PID“增量算法”。此算法可由“位置PID算法”求出。</p><p>  綜合兩種算法,本設(shè)計是產(chǎn)

63、生一個PWM信號去控制直流電機,PWM信號的高電平持續(xù)時間對應(yīng)的控制量是一個絕對值,而不是一個控制量的增量。但是如果采用“位置PID算法”則需要考慮控制量的基值u0,即Kp=0時的控制量,而直接用增量式PID算法只能計算出控制量的增量。所以,設(shè)計中,先采用增量式控制控制算法計算出控制量的增量,然后加上上一次的控制量即可以得到本次的控制量,本系統(tǒng)的PID算法是以增量式算法實現(xiàn)“位置PID算法”的結(jié)果,使控制得到簡化、容易實現(xiàn)。</p

64、><p>  5.3 PID控制算法的單片機程序?qū)崿F(xiàn)</p><p>  要編寫一個已知算法的單片機程序,首先要考慮的就是數(shù)據(jù)的結(jié)構(gòu)和存儲方式了。因為它直接影響到系統(tǒng)的控制精度,以及PID算法的實現(xiàn)質(zhì)量。本系統(tǒng)之所以專門采用一片單片來實現(xiàn)PID算法,就是因為從一開始的設(shè)計思路就是盡可能高的提高系統(tǒng)的控制精度。要提高系統(tǒng)的控制精度,在計算過程中僅取整數(shù)或定點小數(shù)是不夠的,所以本設(shè)計采用三字節(jié)浮

65、點數(shù)運算。對于AT89S52單片機而言,有足夠的內(nèi)存去存儲和處理這些數(shù)據(jù)。另外,為了使程序的參數(shù)修改方便,更易于應(yīng)用到其他PID控制系統(tǒng)中去,在一開始的參數(shù)賦值程序中,參數(shù)是以十進制BCD碼浮點數(shù)存儲的,參數(shù)賦值完成后,緊接著就是對參數(shù)進行二進制浮點數(shù)的歸一化處理,以及復(fù)合參數(shù)q0,q1,q2等的計算。這些工作在系統(tǒng)啟動后迅速就完成了,之后PID控制器只進行PID核心控制算法的計算。PID算法的程序框圖如圖5-2 所示算法。由于本系統(tǒng)采

66、用的是單級單向調(diào)速, 所以當(dāng)PID控制算法的輸出結(jié)果u(k)為負數(shù)時就將其清另零了,當(dāng)大于系統(tǒng)飽和值時,賦值u(k)為飽和值。</p><p>  圖5-2 增量式積分分離PID算法流程圖</p><p><b>  結(jié) 論</b></p><p>  本文所述的直流電機閉環(huán)調(diào)速系統(tǒng)是以低價位的單片微機8051為核心的,而通過單片機來實

67、現(xiàn)電機調(diào)整又有多種途徑,相對于其他用硬件或者硬件與軟件相結(jié)合的方法實現(xiàn)對電機進行調(diào)整,采用PWM軟件方法來實現(xiàn)的調(diào)速過程具有更大的靈活性和更低的成本,它能夠充分發(fā)揮單片機的效能,對于簡易速度控制系統(tǒng)的實現(xiàn)提供了一種有效的途徑。而在軟件方面,采用PLD算法來確定閉環(huán)控制的補償量也是由數(shù)字電路組成的直流電機閉環(huán)調(diào)速系統(tǒng)所不能及的。曾經(jīng)也試過用單片機直接產(chǎn)生PWM波形,但其最終效果并不理想,在使用了少量的硬件后,單片機的壓力大大減小,程序中有

68、充足的時間進行閉環(huán)控制的測控和計算,使得軟件的運行更為合理可靠。</p><p><b>  致 謝</b></p><p>  這次畢業(yè)設(shè)計,凝結(jié)了很多人的心血,在此我表示由衷的感謝。沒有他們的幫助,我將無法順利完成這次設(shè)計。 首先,我要特別感謝老師對我的悉心指導(dǎo),在畢業(yè)設(shè)計期間老師指導(dǎo)我、幫助我收集文獻資料,理清設(shè)計思路,完善操作方法,并對我所做的設(shè)

69、計提出有效的改進方案。老師淵博的知識、嚴謹?shù)淖黠L(fēng)、誨人不倦的態(tài)度和學(xué)術(shù)上精益求精的精神讓我受益終生。作為一個??粕漠厴I(yè)設(shè)計,由于經(jīng)驗的匱乏,難免有許多考慮不周全的地方,如果沒有導(dǎo)師的督促指導(dǎo),想要完成這個設(shè)計是難以想象的。因此,特別需要感謝老師給予的耐心細致的指導(dǎo),在此,再一次向教師以及關(guān)心幫助我的教師同學(xué)表示最誠摯的謝意!</p><p>  其次,學(xué)校在這方面也給我們提供了很大的支持和幫助,學(xué)校領(lǐng)導(dǎo)比較重視

70、,每個設(shè)計小組配有專門的指導(dǎo)老師,幫助我們能順利完成整個設(shè)計。對于學(xué)校和老師為我的畢業(yè)設(shè)計所提供的極大幫助和關(guān)心,在此我致以衷心的感謝!</p><p>  最后,還要感謝同學(xué)三年來對我的關(guān)心與支持,感謝各位老師在學(xué)習(xí)期間對我的嚴格要求。同時也要感謝身邊朋友的熱心幫助,沒有你們的關(guān)心與支持,我不可能這么快完成我的畢業(yè)設(shè)計!這幾個月的歲月是我學(xué)生生涯中最有價值的一段時光,也將會成為我以后永遠的美好的回憶,在這里有治

71、學(xué)嚴謹而不失親切的老師,也有互相幫助情同骨肉的同學(xué),更有和諧、融洽的學(xué)習(xí)生活氛圍,這里將是我永遠向往的地方。借此論文之際,我想向所有人表達我的最誠摯的謝意,愿我們將來都越來越好。</p><p><b>  參考文獻</b></p><p>  [1] 張友德.單片機原理應(yīng)用與實驗【M】.復(fù)旦大學(xué)出版社,1992</p><p>  [2] 張

72、毅剛,彭喜源,譚曉鈞,曲春波.MCS-51單片機應(yīng)用設(shè)計【M】.哈爾濱工業(yè)大學(xué)出版社,2001.1</p><p>  [3] 宋慶環(huán),才衛(wèi)國,高志.89C51單片機在直流電動機調(diào)速系統(tǒng)中的應(yīng)用【M】.唐山學(xué)院,2008.4</p><p>  [4] 陳錕,危立輝.基于單片機的直流電機調(diào)速器控制電路【J】.中南民族大學(xué)學(xué)報(自然科學(xué)版),2003.9</p><p&g

73、t;  [5] 李維軍,韓小剛,李晉.基于單片機用軟件實現(xiàn)直流電機PWM調(diào)速系統(tǒng)【J】.維普資訊,2007.9</p><p>  [6] 曹巧媛.單片機原理及應(yīng)用【M】.北京:電子工業(yè)出版社,1997</p><p>  [7] 劉大茂,嚴飛.單片機應(yīng)用系統(tǒng)監(jiān)控主程序的設(shè)計方法【J】.福州大學(xué)學(xué)報(自然科學(xué)福建農(nóng)林大學(xué)碩士論文版),1998.2</p><p>&

74、lt;b>  附 錄</b></p><p>  /************************速度顯示的數(shù)據(jù)處理*********************/</p><p>  void datamade()</p><p><b>  { </b></p><p>  uint data

75、 MM,NN;</p><p>  wc51r(0xc2);</p><p>  wc51ddr('S');</p><p>  wc51ddr('p');</p><p>  wc51ddr('e');</p><p>  wc51ddr('e');&l

76、t;/p><p>  wc51ddr('d');</p><p>  wc51ddr(0x3a);</p><p>  NN = num_display%100;</p><p>  MM = num_display/100;</p><p>  wc51ddr(wword[MM]);</p>

77、<p>  MM = NN/10;</p><p>  NN = NN%10;</p><p>  wc51ddr(wword[MM]);</p><p>  wc51ddr(wword[NN]);</p><p><b>  }</b></p><p>  /************

78、*****************************************************/</p><p>  /**********通過按鍵實現(xiàn)對電機開關(guān)、調(diào)速、轉(zhuǎn)向的控制***************/</p><p>  void motor_control()</p><p><b>  {</b></p>

79、<p>  if(open == 1)</p><p><b>  EA = 1;</b></p><p>  if(close == 1)</p><p><b>  EA = 0;</b></p><p>  if(swap == 1)</p><p>&l

80、t;b>  {</b></p><p>  change = ~change;</p><p>  while(swap != 0)</p><p><b>  {}</b></p><p><b>  }</b></p><p>  if(sub_spee

81、d == 1)</p><p><b>  { </b></p><p><b>  high++;</b></p><p>  if(high == 30)</p><p><b>  EA=0;</b></p><p>  while(sub_spe

82、ed != 0)</p><p><b>  {}</b></p><p><b>  }</b></p><p>  if(add_speed == 1)</p><p><b>  { </b></p><p><b>  high--;&

83、lt;/b></p><p>  if(high == 5)</p><p><b>  high = 5;</b></p><p>  while(add_speed != 0)</p><p><b>  {}</b></p><p><b>  }<

84、;/b></p><p><b>  }</b></p><p>  /******************************************************************/</p><p>  /***************************主函數(shù)*************************

85、********/</p><p>  void main()</p><p><b>  {</b></p><p>  P2 = 0x00;</p><p><b>  ET0 = 1;</b></p><p><b>  ET1 = 1;</b>&

86、lt;/p><p>  TMOD = 0x11;</p><p>  TH0 = 0xec; //定時器T0設(shè)置參數(shù)</p><p>  TL0 = 0x78;</p><p>  TH1 = 0x3c; //定時器T1設(shè)置參數(shù)</p><p>  TL1 = 0xb0;<

87、;/p><p><b>  TR0 = 1;</b></p><p><b>  TR1 = 1;</b></p><p>  init(); //液晶顯示初始化程序</p><p><b>  while(1)</b></p><p

88、>  wc51r(0x84);</p><p>  wc51ddr('H');</p><p>  wc51ddr('e');</p><p>  wc51ddr('l');</p><p>  wc51ddr('l');</p><p>  wc5

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論