基于單片機的伺服電機轉(zhuǎn)速控制系統(tǒng)_第1頁
基于單片機的伺服電機轉(zhuǎn)速控制系統(tǒng)_第2頁
基于單片機的伺服電機轉(zhuǎn)速控制系統(tǒng)_第3頁
基于單片機的伺服電機轉(zhuǎn)速控制系統(tǒng)_第4頁
基于單片機的伺服電機轉(zhuǎn)速控制系統(tǒng)_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上題 目:基于單片機的伺服電機轉(zhuǎn)速控制系統(tǒng)專心-專注-專業(yè)基于單片機的伺服電機轉(zhuǎn)速控制系統(tǒng)摘 要傳統(tǒng)的晶閘管直流調(diào)速系統(tǒng),其控制回路都是采用模擬電子線路構(gòu)成的,晶閘管觸發(fā)器多數(shù)還是采用分立元件組成的,這使得控制回路的硬件設(shè)備極其復(fù)雜,安裝調(diào)試困難,相對故障率較高。針對傳統(tǒng)的晶閘管直流調(diào)速系統(tǒng)的一些不足,提出了一種基于單片機的伺服電機轉(zhuǎn)速控制系統(tǒng)的設(shè)計方法,并介紹了PID控制算法的設(shè)計。本設(shè)計使用AT89C52作為控制芯片,以PI(比例-積分)調(diào)節(jié)控制算法為基礎(chǔ), 采用軟件編程產(chǎn)生脈寬比可控的脈寬調(diào)制信號,再通過功率放大電路H橋驅(qū)動電路來控制伺服電機電樞電壓,從而完成對伺

2、服電機轉(zhuǎn)速的調(diào)節(jié),達到了較好的控制性能。同時通過4*4小鍵盤輸入設(shè)定的伺服電機轉(zhuǎn)速,用光電編碼器來測定伺服電機轉(zhuǎn)速,顯示在4位LED上。關(guān)鍵詞:直流調(diào)速;PID控制算法;AT89C52;脈寬調(diào)制;伺服電機The Servo Motor Speed Control System Based On MCUAbstractThe conventional DC drive system of SCR, which Control loop is consisting of simulate electronic circuits, and the SCR trigger is mostly made

3、 up of the discrete component, so the hardware devices are extremely complex in the Control loop,the installation and trial run difficultly, the relative failure rate is high. To solve the s, this paper presents one kind design method of the servo motor speed control system based on MCU, and introdu

4、ces the design of the PID control algorithm. This design uses AT89C52 as the controller chip, takes PI (proportion - integral) regulation control algorithm to be the foundation, adopts software programming to get the signal for Pulse-Width-Modulation, and controls the armature voltage of servo motor

5、 through H bridge driving circuit in power amplification electric circuit, thus it completes to adjust the servo motor rotational-speed, and achieves the good control performance. Meanwhile it sets the servo motor rotational-speed through the 4*4 small keyboard, and minutes the speed of the servo mo

6、tor by the optical encoder, then shows the speed of the servo motor on the 4 LED.Key word: Direct-current speed regulation; PID control algorithm; AT89C52; Pulse-Width-Modulation; Servo motor目 錄第一章 引 言1.1 課題的研究背景及意義目前單片機滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實時控制和數(shù)據(jù)

7、處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機、攝像機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領(lǐng)域的機器人、智能儀表、醫(yī)療器械了。因此,單片機的學習、開發(fā)與應(yīng)用將造就一批計算機應(yīng)用與智能化控制的科學家、工程師。單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個范疇:1.在智能儀器儀表上的應(yīng)用單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的,可實現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬

8、度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強大。例如精密的測量設(shè)備(,各種分析儀)。2.在工業(yè)控制中的應(yīng)用用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。3.在家用電器中的應(yīng)用可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱、空調(diào)機、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。4.在計算機網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用現(xiàn)代的單片機普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和

9、通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。5.單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用單片機在醫(yī)用設(shè)備中的用途亦相當廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。6.在各種大型電器中的模塊化應(yīng)用某些專用單片機設(shè)計用于實現(xiàn)特定功能,從而在各種電路中進行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。如音樂集成單片機,看似簡單的功能,微縮在純電子芯片中(有別于磁帶機的原理),就需要復(fù)雜的類似于計算機的原理。如:音樂信號以數(shù)字的

10、形式存于存儲器中(類似于ROM),由微控制器讀出,轉(zhuǎn)化為模擬音樂電信號(類似于聲卡)。在大型電路中,這種模塊化應(yīng)用極大地縮小了體積,簡化了電路,降低了損壞、錯誤率,也方便于更換。此外,單片機在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。1.2 轉(zhuǎn)速控制系統(tǒng)設(shè)計目標及技術(shù)要求本設(shè)計的目的是實現(xiàn)伺服電機轉(zhuǎn)速的控制。本設(shè)計完成后要求可以實現(xiàn)鍵盤輸入,控制PWM波形產(chǎn)生,實現(xiàn)脈寬調(diào)制,軟件實現(xiàn)PID控制算法,驅(qū)動電路的設(shè)計,實現(xiàn)伺服電機轉(zhuǎn)速的調(diào)節(jié),顯示。第二章 伺服電機轉(zhuǎn)速控制系統(tǒng)設(shè)計2.1 系統(tǒng)硬件組成原理轉(zhuǎn)速控制系統(tǒng)的硬件原理框圖2-1如圖所示:圖2-1轉(zhuǎn)速控制系統(tǒng)硬件原理框圖

11、以AT89C52單片機為控制核心,包括鍵盤電路,測速電路,PWM功放電路,顯示電路。2.2 PID控制算法簡介在過程控制中,按偏差的比例(P)、積分(I)和微分(D)進行控制的PID控制器(亦稱PID調(diào)節(jié)器)是應(yīng)用最為廣泛的一種自動控制器。它具有原理簡單,易于實現(xiàn),適用面廣,控制參數(shù)相互獨立,參數(shù)的選定比較簡單等優(yōu)點;而且在理論上可以證明,對于過程控制的典型對象“一階滯后純滯后”與“二階滯后純滯后”的控制對象,PID控制器是一種最優(yōu)控制。PID調(diào)節(jié)規(guī)律是連續(xù)系統(tǒng)動態(tài)品質(zhì)校正的一種有效方法,它的參數(shù)整定方式簡便,結(jié)構(gòu)改變靈活(PI、PD、)。PID控制器包括比例、積分和微分三部分,其控制原理圖如

12、圖2-2所示:圖2-2 典型PID控制結(jié)構(gòu)比例(P)控制是一種最簡單的控制方式,其控制器的輸出與輸入誤差成比例的關(guān)系。系統(tǒng)一旦出現(xiàn)了偏差,比例調(diào)節(jié)立即產(chǎn)生調(diào)節(jié)作用用以減少偏差。比例作用越大,可以加快調(diào)節(jié),減少誤差,但是過大的比例,使系統(tǒng)的穩(wěn)定性下降,甚至造成系統(tǒng)的不穩(wěn)定。積分(I)控制是消除系統(tǒng)的穩(wěn)態(tài)誤差,提高無差度。如果系統(tǒng)有誤差,積分調(diào)節(jié)就進行直至無誤差,積分調(diào)節(jié)停止,積分調(diào)節(jié)輸出為常值。積分作用的強弱取決與積分時間常數(shù)Ti,若Ti越小,積分作用就越強,反之Ti越大則積分作用弱,加入積分調(diào)節(jié)可使系統(tǒng)穩(wěn)定性下降,動態(tài)響應(yīng)變慢。微分(D)控制反映系統(tǒng)偏差信號的變化率,具有預(yù)見性,能預(yù)見偏差變化

13、的趨勢,因此能產(chǎn)生超前的控制作用,在偏差還沒有形成之前,己被微分調(diào)節(jié)作用消除。因此,微分調(diào)節(jié)可以改善系統(tǒng)的動態(tài)性能。在微分時間選擇合適情況下,可以減少超調(diào),減少調(diào)節(jié)時間。另外微分作用對噪聲干擾有放大作用,因此過強的加微分調(diào)節(jié),對系統(tǒng)抗干擾不利。下面對控制點所采用的PID控制算法進行說明。 控制點目前包含兩種比較簡單的數(shù)字控制算法,分別是:位置式算法,增量式算法。 這兩種算法雖然簡單,但各有特點,基本上能滿足一般控制的大多數(shù)要求。2.2.1 位置式PID控制算法由51單片機組成的數(shù)字控制系統(tǒng)控制中,PID控制器是通過PID控制算法實現(xiàn)的。51單片機通過AD對信號進行采集,變成數(shù)字信號,再在單片機

14、中通過算法實現(xiàn)PID運算,再通過DA把控制量反饋給控制源。從而實現(xiàn)對系統(tǒng)的伺服控制。下面是位置式PID控制算法的簡化示意圖。圖2-3 位置式PID控制算法的簡化示意圖上圖的傳遞函數(shù)為: (式2.1)在時域的傳遞函數(shù)表達式: (式2.2)對上式中的微分和積分進行近似: (式2.3)式中n是離散點的個數(shù)。于是傳遞函數(shù)可以簡化為:  (式2.4)其中 是第k個采樣時刻的控制; 是比例放大系數(shù);  是積分放大系數(shù); 是微分放大系數(shù);T是采樣周期。如果采樣周期足夠小,則(式2.4)的近似計算可以獲得足夠精確的結(jié)果,離散控制過程與連續(xù)過程十分接近。(式2.4)表示的控制算法直

15、接按(式2.1)所給出的PID控制規(guī)律定義進行計算的,所以它給出了全部控制量的大小,因此被稱為全量式或位置式PID控制算法對于位置式算法,可以選擇的功能有:a、濾波:同上為一階慣性濾波 b、飽和作用抑制:1. 削弱積分法一旦控制變量進入飽和區(qū),將只執(zhí)行削弱積分項的運算而停止進行增大積分項的運算。具體地說,在計算時,將判斷上一個時刻的控制量是否已經(jīng)超出限制范圍,如果已經(jīng)超出,那么將根據(jù)偏差的符號,判斷系統(tǒng)是否在超調(diào)區(qū)域,由此決定是否將相應(yīng)偏差計入積分項。2. 積分分離法 在基本PID控制中,當有較大幅度的擾動或大幅度改變給定值時, 由于此時有較大的偏差,以及系統(tǒng)有慣性和滯后,故在積分項的作用下,

16、往往會產(chǎn)生較大的超調(diào)量和長時間的波動。特別是對于溫度、成份等變化緩慢的過程,這一現(xiàn)象將更嚴重。為此可以采用積分分離措施,即偏差較大的時,取消積分作用;當偏差較小時才將積分作用投入。另外積分分離的閾值應(yīng)視具體對象和要求而定。若閾值太大,達不到積分分離的目的,若太小又有可能因被控量無法跳出積分分離區(qū),只進行PD控制,將會出現(xiàn)殘差。3. 有效偏差法當根據(jù)PID位置算法算出的控制量超出限制范圍時,控制量實際上只能取邊際值U=或U=有效偏差法是將相應(yīng)的這一控制量的偏差值作為有效偏差值計入積分累計而不是將實際的偏差計入積分累計。因為按實際偏差計算出的控制量并沒有執(zhí)行。如果實際實現(xiàn)的控制量為U=Um上限值或

17、下限值),則有效偏差可以逆推出,由該值計算積分項。2.2.2 增量式PID算法當執(zhí)行機構(gòu)需要的不是控制量的絕對值,而是控制量的增量(例如去驅(qū)動步進電動機)時,需要用PID的增量算法。增量式PID控制算法可以通過(2.4)式推導出。由(2.4)可以得到控制器的第k-1個采樣時刻的輸出值為: (式2.5)將(式2.4)與(式2.5)相減并整理,就可以得到增量式PID控制算法公式為: (式2.6)其中: 由(式2.6)可以看出,如果計算機控制系統(tǒng)采用恒定的采樣周期T,一旦確定A、B、C,只要使用前后三次測量的偏差值,就可以由(式2.6)求出控制量。增量式PID控制算法與位置式PID算法(式2.4)相

18、比,計算量小得多,因此在實際中得到廣泛的應(yīng)用。位置式PID控制算法也可以通過增量式控制算法推出遞推計算公式: (式2.7)(式2-7)就是目前在計算機控制中廣泛應(yīng)用的數(shù)字遞推PID控制算法。對于增量式算法,可以選擇的功能有1.濾波的選擇可以對輸入加一個前置濾波器,使得進入控制算法的給定值不突變,而是有一定慣性延遲的緩變量。 2.系統(tǒng)的動態(tài)過程加速在增量式算法中,比例項與積分項的符號有以下關(guān)系:如果被控量繼續(xù)偏離給定值,則這兩項符號相同,而當被控量向給定值方向變化時,則這兩項的符號相反。 由于這一性質(zhì),當被控量接近給定值的時候,負號的比例作用阻礙了積分作用,因而避免了積分超調(diào)以及隨之帶來的振蕩,

19、這顯然是有利于控制的。但如果被控量遠未接近給定值,僅剛開始向給定值變化時,由于比例和積分反向,將會減慢控制過程。為了加快開始的動態(tài)過程,我們可以設(shè)定一個偏差范圍v,當偏差|e(t)|< 時,即被控量接近給定值時,就按正常規(guī)律調(diào)節(jié),而當|e(t)|>= 時,則不管比例作用為正或為負,都使它向有利于接近給定值的方向調(diào)整,即取其值為|e(t)-e(t-1)|,其符號與積分項一致。利用這樣的算法,可以加快控制的動態(tài)過程。3.PID增量算法的飽和作用及其抑制 在PID增量算法中,由于執(zhí)行元件本身是機械或物理的積分儲存單元,如果給定值發(fā)生突變時,由算法的比例部分和微分部分計算出的控制增量可能比

20、較大,如果該值超過了執(zhí)行元件所允許的最大限度,那么實際上執(zhí)行的控制增量將時受到限制時的值,多余的部分將丟失,將使系統(tǒng)的動態(tài)過程變長,因此,需要采取一定的措施改善這種情況。 糾正這種缺陷的方法是采用積累補償法,當超出執(zhí)行機構(gòu)的執(zhí)行能力時,將其多余部分積累起來,而一旦可能時,再補充執(zhí)行。PID參數(shù)整定1.比例系數(shù)對系統(tǒng)性能的影響: 比例系數(shù)加大,使系統(tǒng)的動作靈敏,速度加快,穩(wěn)態(tài)誤差減小。偏大,振蕩次數(shù)加多,調(diào)節(jié)時間加長。太大時,系統(tǒng)會趨于不穩(wěn)定。太小,又會使系統(tǒng)的動作緩慢。可以選負數(shù),這主要是由執(zhí)行機構(gòu)、傳感器以控制對象的特性決定的。2.積分控制對系統(tǒng)性能的影響:積分作用使系統(tǒng)的穩(wěn)定性下降,?。ǚe

21、分作用強)會使系統(tǒng)不穩(wěn)定,但能消除穩(wěn)態(tài)誤差,提高系統(tǒng)的控制精度。3. 微分控制對系統(tǒng)性能的影響:微分作用可以改善動態(tài)特性,偏大時,超調(diào)量較大,調(diào)節(jié)時間較短。偏小時,超調(diào)量也較大,調(diào)節(jié)時間也較長。只有合適,才能使超調(diào)量較小,減短調(diào)節(jié)時間。第三章 硬件部分的設(shè)計3.1 直流電機調(diào)速原理直流電動機調(diào)速系統(tǒng)最早采用恒定直流電壓給直流電動機供電,通過改變電樞回路中的電阻來實現(xiàn)調(diào)速。這種方法簡單易行、設(shè)備方便、價格低廉;但缺點是效率低、機械特性軟,不能得到較寬和平滑的調(diào)速性能。該方法只適用在一些小功率且調(diào)速范圍要求不大的場合。30年代末期,發(fā)電機-電動機系統(tǒng)的出現(xiàn)才使調(diào)速性能優(yōu)異的直流電動機得到廣泛應(yīng)用。

22、這種方法的主要缺點是系統(tǒng)重量大、占地多、效率低及維修困難。近年來,隨著電力電子技術(shù)的迅速發(fā)展,由晶閘管變流器供電的直流電動機調(diào)速系統(tǒng)已取代了發(fā)電機-電動機調(diào)速系統(tǒng),它的調(diào)速性能也遠遠地超過了發(fā)電機-電動機調(diào)速系統(tǒng)。特別是大規(guī)模集成電路技術(shù)以及計算機技術(shù)的飛速發(fā)展,使直流電動機調(diào)速系統(tǒng)的精度、動態(tài)性能、可靠性有了更大的提高。電力電子技術(shù)中IGBT(絕緣柵雙擊型場效應(yīng)管)等大功率器件的發(fā)展正在取代晶閘管,出現(xiàn)了性能更好的直流調(diào)速系統(tǒng)。常見直流電機原理圖如下:圖3-1直流電機原理圖圖3-1所示電樞電壓為,電樞電流為電樞回路總電阻為,電機常數(shù),勵磁磁通量是。那么根據(jù)KVL方程:電機轉(zhuǎn)速 (式3.1)其

23、中,極對數(shù)為p,匝數(shù)為N,電樞支路數(shù)為a,直流電機原理圖機來說:電機常數(shù) (式3.2)意味著電機確 不變的。而在中,由于Ra僅為繞組電阻,導致非常小,所以。改變電樞電壓時,轉(zhuǎn)速n即可改變。3.2 PWM波形發(fā)生電路3.2.1 PWM基本原理PWM基本原理PWM是通過控制固定電壓的直流電源開關(guān)頻率,從而改變負載兩端的電壓,進而達到控制要求的一種電壓調(diào)整方法。PWM可以應(yīng)用在許多方面,如電機調(diào)速、溫度控制、壓力控制等。在PWM驅(qū)動控制的調(diào)整系統(tǒng)中,按一個固定的頻率來接通和斷開電源,并根據(jù)需要改變一個周期內(nèi)“接通”和“斷開”時間的長短。通過改變直流電機電樞上電壓的“占空比”來改變平均電壓的大小,從而

24、控制電動機的轉(zhuǎn)速。因此,PWM又被稱為“開關(guān)驅(qū)動裝置”。如圖3-3所示,在脈沖作用下,當電機通電時,速度增加;電機斷電時,速度逐漸減少。改變通、斷電的時間,即可讓電機轉(zhuǎn)速得到控制。 圖3-2 PWM控制波形設(shè)電機始終接通電源時,電機轉(zhuǎn)速最大為,設(shè)占空比為,則電機的平均速度為: (式3.3)式中:表是電機的平均速度;表是電機全通電時的速度(最大);表示占空比。由此可見,當我們改變占空比D=t1/T時,就可以得到不同的電機平均速度,從而達到調(diào)速的目的。嚴格地講,平均速度與占空比并不是嚴格的線性關(guān)系,在一般的應(yīng)用中,可以將其近似地看成線性關(guān)系。PWM驅(qū)動裝置與傳統(tǒng)晶閘管驅(qū)動裝置比較,具有下列優(yōu)點:需

25、用的大功率可控器件少,線路簡單、調(diào)速范圍寬、電流波形系數(shù)好、附加損耗小。因此,在設(shè)計中,采用了脈寬調(diào)制(PWM)的方法實現(xiàn)對直流電機的控制。采用硬件電路實現(xiàn)直流電機調(diào)速系統(tǒng)已在實踐中應(yīng)用多年,其硬件組成復(fù)雜,調(diào)整困難,缺乏控制的靈活性。直流電機PWM調(diào)速系統(tǒng),使用低價位的單片微機為核心,實現(xiàn)控制,方便了使用。3.2.2 PWM信號的產(chǎn)生PWM信號的產(chǎn)生通常有兩種方法:一種是軟件的方法;另一種是硬件的方法。本文采用的是軟件方法。軟件輸出PWM一般有兩種方式:利用定時器0控制PWM頻率輸出,結(jié)合定時器1控制占空比,這是其一;第二種方式,僅使用一個定時器,工作于16bit手工裝載模式,同時控制輸出頻

26、率和占空比,這種方式不占用太多資源,而且實現(xiàn)起來也不失其靈活性。本文選用第一種軟件方法。由于PWM信號軟件實現(xiàn)的核心是單片機內(nèi)部的定時器,而不同單片機的定時器具有不同的特點,即使是同一臺單片機由于選用的晶振不同,選擇的定時器工作方式不同,其定時器的定時初值與定時時間的關(guān)系也不同。因此,首先必須明確定時器的定時初值與定時時間的關(guān)系。如果單片機的時鐘頻率為f,定時器計數(shù)器為N位,則定時器初值與定時時間的關(guān)系為: (式3.4)式子中:表示定時器定時初值;N表示一個機器周期的時鐘數(shù);表示高電平時間。N隨著機型的不同而不同。在應(yīng)用中,應(yīng)根據(jù)具體的機型給出相應(yīng)的值。這樣,我們可以通過設(shè)定不同的定時初值,從

27、而改變占空比D,進而達到控制電機轉(zhuǎn)速的目的。3.3 PWM功率放大電路由于由單片機發(fā)出的PWM的功率較小,不能帶動電機,所以需要把功率放大后再傳給電機。常用的功率放大電路有H橋驅(qū)動電路,下面就介紹了H橋驅(qū)動電路的工作原理。3.3.1 H橋驅(qū)動電路原理圖3-3中所示為一個典型的直流電機控制電路。電路得名于“H橋驅(qū)動電路”是因為它的形狀酷似字母H。4個三極管組成H的4條垂直腿,而電機就是H中的橫杠(注意:圖3-4及隨后的兩個圖都只是示意圖,而不是完整的電路圖,其中三極管的驅(qū)動電路沒有畫出來)。 如圖所示,H橋式電機驅(qū)動電路包括4個三極管和一個電機。要使電機運轉(zhuǎn),必須導通對角線上的一對三極管。根據(jù)不

28、同三極管對的導通情況,電流可能會從左至右或從右至左流過電機,從而控制電機的轉(zhuǎn)向。圖3-3 H橋驅(qū)動電路    要使電機運轉(zhuǎn),必須使對角線上的一對三極管導通。例如,如圖3-4所示,當Q1管和Q4管導通時,電流就從電源正極經(jīng)Q1從左至右穿過電機,然后再經(jīng) Q4回到電源負極。按圖中電流箭頭所示,該流向的電流將驅(qū)動電機順時針轉(zhuǎn)動。當三極管Q1和Q4導通時,電流將從左至右流過電機,從而驅(qū)動電機按特定方向轉(zhuǎn)動(圖電機周圍的箭頭表示為順時針方向)。圖3-4 H橋電路驅(qū)動電機順時針轉(zhuǎn)動 圖3-5所示為另一對三極管Q2和Q3導通的情況,電流將從右至左流過電機。當三極管Q2和Q3導通

29、時,電流將從右至左流過電機,從而驅(qū)動電機沿另一方向轉(zhuǎn)動(電機周圍的箭頭表示為逆時針方向)。圖3-5 H橋驅(qū)動電機逆時針轉(zhuǎn)動3.3.2 PWM驅(qū)動電路原理圖功率放大電路有一個外接電源,一個反相器,四個二極管,四個三極管,六個保護電阻組成,如圖:圖3-6 PWM功率放大電路圖3.4 測速電路旋轉(zhuǎn)編碼器是用來測量轉(zhuǎn)速的裝置。它分為單路輸出和雙路輸出兩種。技術(shù)參數(shù)主要有每轉(zhuǎn)脈沖數(shù)(幾十個到幾千個都有),和供電電壓等。單路輸出是指旋轉(zhuǎn)編碼器的輸出是一組脈沖,而雙路輸出的旋轉(zhuǎn)編碼器輸出兩組相位差90度的脈沖,通過這兩組脈沖不僅可以測量轉(zhuǎn)速,還可以判斷旋轉(zhuǎn)的方向.本文采用的是單路輸出。采用光敏元件時以透光區(qū)

30、和不透光區(qū)來表示代碼的狀態(tài)是“”還是“”,通過“”和“”的二進制編碼來將采集來的物理信號轉(zhuǎn)換為機器碼可讀取的電信號用以通訊、傳輸和儲存。信號輸出有正弦波(電流或電壓),方波(TTL、HTL),集電極開路(PNP、NPN),推拉式多種形式,其中TTL為長線差分驅(qū)動(對稱A,A-;B,B-;Z,Z-),HTL也稱推拉式、推挽式輸出,編碼器的信號接收設(shè)備接口應(yīng)與編碼器對應(yīng)。信號連接編碼器的脈沖信號一般連接計數(shù)器、PLC、計算機,PLC和計算機連接的模塊有低速模塊與高速模塊之分,開關(guān)頻率有低有高。測速電路由附在電機轉(zhuǎn)子上的光電編碼盤及施密特整形電路組成。電脈沖的頻率與電機的轉(zhuǎn)速成固定的比例關(guān)系,光電碼

31、盤輸出的電脈沖信號經(jīng)放大整形為標TTL電平,輸入到單片機的兩個外部中斷:INT0和INT1,利用單片機內(nèi)部定時器/計數(shù)器T0和T1,以及內(nèi)部一個寄存器作軟計數(shù)器,循環(huán)地捕捉相鄰兩次速度脈沖,并由這兩次觸發(fā)所記錄的時間差算出其轉(zhuǎn)速,再將這個轉(zhuǎn)速與預(yù)置轉(zhuǎn)速進行比較,得出差值,單片機通過對這個差值進行PID運算,得出控制增量,在P0.0P0.3引腳送出控制信號改變PWM波形發(fā)生電路的占空比,最終達到控制電機轉(zhuǎn)速的目的。3.5 鍵盤電路鍵盤的工作方式有3種,即程序控制掃描、定時掃描和中斷掃描方式:1.程序控制掃描方式程序控制掃描方式是指單片機在空閑時,才調(diào)用鍵盤掃描子程序,并反復(fù)地掃描鍵盤,直到用戶從

32、鍵盤上輸入命令或數(shù)據(jù),而在執(zhí)行鍵入命令或處理鍵入數(shù)據(jù)過程中,CPU將不再響應(yīng)鍵入要求,直到CPU重新掃描鍵盤為止。過程如下:判斷有無鍵按下;延時后判斷是否確實有鍵按下。如果有,確認有鍵按下,如果沒有,那么確認為鍵抖動;判斷是哪個鍵被按下(鍵掃描獲得閉合鍵的行、列值);等待按鍵被釋放。如果沒有釋放,繼續(xù)等待;如果釋放,轉(zhuǎn)到相應(yīng)的處理程序進行處理。2.定時掃描方式定時掃描方式就是每隔一定時間對鍵盤掃描一次,它利用單片機內(nèi)部的定時器產(chǎn)生一定的時間的定時,當定時時間到就產(chǎn)生定時器溢出中斷,CPU響應(yīng)中斷后對鍵盤進行掃描,并在有鍵按下時識別出該鍵執(zhí)行響應(yīng)的鍵功能程序。3.中斷掃描方式鍵盤工作在程序控制掃

33、描方式時,當無鍵按下時CPU要不間斷的掃描鍵盤,直到有鍵按下為止。如果CPU要處理很多事情,這種方式將不能適應(yīng)。定時掃描方式只要時間一到,CPU就去掃描鍵盤,工作效率有了進一步的提高。但這兩種方式常使CPU處于空掃狀態(tài),而中斷方式下,CPU可以一直處理自己的工作,知道有鍵閉合時發(fā)出中斷申請,CPU響應(yīng)中斷,執(zhí)行相應(yīng)的中斷服務(wù)程序,才對鍵盤進行掃描,從而提高了CPU的工作效率。所以本設(shè)計采用中斷掃描方式。掃描的工作方式,就是 P1.7P1.5 輪流輸出低電平,然后讀入P1.3P1.0,判斷,如果有按下,就是低電平,沒按下的都是高電平,當然要延時20ms,去抖動。表1鍵盤功能表下面是4*4鍵盤電路

34、圖:圖3-7 4*4鍵盤電路圖3.6 LED顯示電路7段LED數(shù)碼管是利用7個LED(發(fā)光二極管)外加一個小數(shù)點的LED組合而成的顯示設(shè)備,可以顯示09等10個數(shù)字和小數(shù)點,使用非常廣泛,它的外觀如下:圖3-8 LED數(shù)碼管的外觀這類數(shù)碼管可以分為共陽極與共陰極兩種,共陽極就是把所有LED的陽極連接到共同接點com,而每個LED的陰極分別為a、b、c、d、e、f、g及 (小數(shù)點);共陰極則是把所有LED的陰極連接到共同接點com,而每個LED的陽極分別為a、b、c、d、e、f、g及(小數(shù)點),如下圖所 示。圖中的8個LED分別與上面那個圖中的ADP各段相對應(yīng),通過控制各個LED的亮滅來顯示數(shù)字

35、。圖3-9 共陽極LED數(shù)碼管圖3-10 共陰極LED數(shù)碼管那么,實際的數(shù)碼管的引腳是排列:對于單個數(shù)碼管來說,從它的正面看進去,左下角那個腳為1腳,以逆時針方向依次為110腳,左上角那個腳便是 10腳了,上面兩個圖中的數(shù)字分別與這10個管腳一一對應(yīng)。3腳和8腳是連通的,這兩個都是公共腳。LED顯示電路如圖3-11所示:圖3-11 LED顯示電路圖顯示電路由二塊7407同向驅(qū)動器,四個中功率PNP管,四個共陽極 LED,十二個保護電阻組成?;鶚O限流電阻取2千歐,基極電流在1.82.2mA之間。筆端限流電阻為100200歐,當LED壓降取2.0V時,LED工作電流約為2024mA之間,

36、沒有超過集電極最大電流320mA。3.7 AT89C52的時鐘電路時鐘電路由外接諧振器的時鐘振蕩器、時鐘發(fā)生器及關(guān)斷控制信號等組成。XTAL1和 XTAL2分別為振蕩電路的輸入端和輸出端,CPU的時鐘振蕩信號有兩個來源:一是采用內(nèi)部振蕩器, 此時需在XTAL1和XTAL2腳接一只頻率范圍為0-33MHZ的晶體振蕩器或陶瓷振蕩器及兩只30PF/40PF的微調(diào)電容, 電容的大小可起頻率微調(diào)作用,電路如圖3-12所示;二是采用外部振蕩器, 此時應(yīng)將外部振蕩器的輸出信號接至XTAL1腳, 將XTAL2腳浮空,電路如圖3-13所示。外部方式的時鐘很少用,一般都選用內(nèi)部時鐘振蕩電路為CPU提供時鐘信號。

37、圖3-12 內(nèi)部時鐘電路 圖3-13 外部時鐘電路3.8 AT89C52的復(fù)位電路復(fù)位(Reset)是指在規(guī)定的條件下,單片機自動將CPU及與程序運行相關(guān)的主要功能部件、I/O口等設(shè)置為確定的初始狀態(tài)的過程。如果電路參數(shù)不符合規(guī)定的條件或干擾導致單片機不能正確復(fù)位,系統(tǒng)將無法正常工作。因此,復(fù)位電路除了要符合設(shè)計所規(guī)定的參數(shù)外, 還要濾除可能的干擾。AT89C2單片機內(nèi)部有一個由施密特觸發(fā)器等組成的復(fù)位電路。復(fù)位信號是從其腳,即RST腳輸入的。AT89C2單片機規(guī)定, 當其處于正常工作狀態(tài), 且振蕩器工作穩(wěn)定后, 在RST端有從低電平到高電平,且高電平保持時間大于兩個機器周期的復(fù)位信號時, C

38、PU將響應(yīng)并完成對系統(tǒng)的復(fù)位。這里有兩點需要注意:一是復(fù)位信號是高電平有效, 二是高電平的保持時間必須大于兩個機器周期, 可見高電平的保持時間與振蕩頻率有關(guān)。AT89S52單片機常用的復(fù)位方式有上電復(fù)位、手動復(fù)位和看門狗定時器復(fù)位三種。1.上電復(fù)位上電復(fù)位是指在系統(tǒng)上電時,RST端自動產(chǎn)生復(fù)位所需的信號將單片機復(fù)位。根據(jù)手冊, AT89S5X單片機的簡單的上電復(fù)位電路及參數(shù)如圖3-14所示。上電時, RST端高電平的維持時間取決于R和C的值。要使單片機可靠復(fù)位, 必須保證該維持時間足夠長。2.按鍵復(fù)位圖3-15是單片機的按鍵復(fù)位電路。在實際應(yīng)用中, 常將圖3-14和圖3-15相結(jié)合, 組成上電

39、和手動復(fù)位電路, 如圖3-16所示。 圖3-14 上電復(fù)位電路 圖3-15 按鍵復(fù)位電路圖 圖3-16 上電和手動復(fù)位電路3.看門狗定時器復(fù)位看門狗定時器用于在程序運行的過程中,監(jiān)視程序運行狀況,并在單片機受到干擾進入非正常運行狀態(tài)時, 自動復(fù)位單片機, 使其回到初始狀態(tài)。在AT89C2單片機內(nèi)部有一個看門狗定時器??梢愿鶕?jù)用戶程序的正常運行周期設(shè)置該定時器的定時時間,允許其溢出信號復(fù)位單片機, 啟動看門狗定時器,并在程序的適當位置清空看門狗定時器。一旦單片機進入非正常運行狀態(tài),看門狗定時器將因不能執(zhí)行清空指令而溢出(即超過了設(shè)置的定時時間),并自動復(fù)位單片機, 使之回到初始狀態(tài)。綜上所述,基

40、于單片機的伺服電機轉(zhuǎn)速控制系統(tǒng)的電路圖設(shè)計見附錄A,其中所需器件參數(shù)見附錄C。第四章 軟件部分的設(shè)計C語言是一種計算機程序設(shè)計。它既有高級語言的特點,又具有語言的特點。它可以作為系統(tǒng)設(shè)計語言,編寫工作系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計語言,編寫不依賴計算機硬件的應(yīng)用程序。因此,它的應(yīng)用范圍廣泛。主要有以下特點:C語言在很多方面都可以用,不僅僅是在軟件開發(fā)上,各類科研都是需要用到C語言的。具體應(yīng)用比如我是學硬件的,單片機以及嵌入式系統(tǒng)都可以用C來開發(fā)。C 語言發(fā)展如此迅速, 而且成為最受歡迎的語言之一, 主要因為它具有強大的功能。許多著名的系統(tǒng)軟件, 如DBASE PLUS、DBASE 都是由

41、C 語言編寫的。用C 語言加上一些匯編語言子程序, 就更能顯示C 語言的優(yōu)勢了, 像PC- DOS 、WORDSTAR等就是用這種方法編寫的。歸納起來C 語言具有下列特點:1.C是中級語言它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C 語言可以像匯編語言一樣對位、字節(jié)和地址進行操作, 而這三者是計算機最基本的工作單元。2.C是結(jié)構(gòu)式語言,結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化, 即程序的各個部分除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦? 便于使用、維護以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的, 這些函數(shù)可方便的調(diào)用, 并具有多種循環(huán)、條件語句控制程序流向,

42、從而使程序完全結(jié)構(gòu)化。3.C語言功能齊全C 語言具有各種各樣的數(shù)據(jù)類型, 并引入了指針概念, 可使程序效率更高。另外C 語言也具有強大的圖形功能, 支持多種顯示器和驅(qū)動器。而且計算功能、邏輯判斷功能也比較強大, 可以實現(xiàn)決策目的編游戲,編3D游戲,做數(shù)據(jù)庫,做聯(lián)眾世界,做聊天室,做PHOTOSHOP做FLASH,做3DMAX。4.C語言適用范圍大C 語言還有一個突出的優(yōu)點就是適合于多種操作系統(tǒng), 如DOS、UNIX,也適用于多種機型。C語言對和系統(tǒng)使用程序以及需要對硬件進行操作的場合,用C語言明顯優(yōu)于其它解釋型高級語言,有一些大型應(yīng)用軟件也是用C語言編寫的。C語言具有繪圖能力強,可移植性,并具

43、備很強的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件,圖形和動畫。它是數(shù)值計算的高級語言。常用的C語言IDE(集成開發(fā)環(huán)境)有Microsoft Visual C+,Watcom C+ ,Borland C+ ,Borland C+ Builder,Borland C+ 3.1 for DOS,Watcom C+ 11.0 for DOS,GNU DJGPP C+ ,Lccwin32 C Compiler 3.1,High C,, 等等. 4.1 主程序流程主程序是一個循環(huán)程序,其主要思路是,先設(shè)定好速度初始值,這個初始值與測速電路送來的值相比較得到一個誤差值,然后用PID算法輸出控制系數(shù)給PWM發(fā)生電

44、路改變波形的占空比,進而控制電機的轉(zhuǎn)速。其程序流程圖如圖4-1所示。圖4-1 主程序流程圖4.2 PID控制算法程序流程4.2.1 PID控制算法選擇系統(tǒng)的控制算法主要采用了增量式PID控制算法,其控制算法為: (式4.1)其中: 如果采樣周期足夠小,則(式4-1)的近似計算可以獲得足夠精確的結(jié)果,離散控制過程與連續(xù)過程十分接近。4.2.2 PID運算控制模塊子程序子程序框圖如圖4-2所示。主要完增量式PID算法的運算。圖4-2 PID控制算法模塊程序先計算積分項,再比例項,再微分項,最后PID作用累加,輸出控制參數(shù)。4.3 按鍵處理子程序該程序首關(guān)中斷,然后延時20ms去抖,輸入鍵值,再返回

45、鍵值,如圖4-3所示: 圖4-3 按鍵處理程序 圖4-4 鍵盤掃描程序4.4 鍵盤掃描程序該程序每隔30ms掃描一次,從0列開始掃描一直到完,程序流程如圖4-4所示。4.5 轉(zhuǎn)速采集子程序在外部中斷服務(wù)程序中,當T0定時時間到了以后,就進入此程序。具體流程如圖4-3所示: 圖4-3 轉(zhuǎn)速采集子程序 圖4-6 LED顯示程序4.6 LED顯示子程序在轉(zhuǎn)速顯示設(shè)計中,采用四位共陽極LED顯示,顯示時,其顯示數(shù)據(jù)以并行方式P2口輸出,以控制LED的各段碼。綜上所述編程的源程序見附錄B。結(jié)束語本系統(tǒng)用單片機作為直流電機調(diào)速系統(tǒng)的控制核心,具有結(jié)構(gòu)簡單,運行可靠,調(diào)節(jié)范圍寬,電流連續(xù)性好,響應(yīng)速度快等特

46、點。采用PID控制算法, 有效地抑制轉(zhuǎn)速超調(diào),效率高,具有廣泛的實用價值。同時設(shè)計過程中遇到的一些問題:由于測速中占用了兩個定時器T0和T1,如果再將PWM波形產(chǎn)生交給AT89C52則加大了軟件的任務(wù),并且影響整個系統(tǒng)的控制效果。因此可以考慮單獨設(shè)計一個PWM波形發(fā)生電路,單片機對它只提供控制參數(shù)以改變其占空比。附錄A 基于單片機的伺服電機轉(zhuǎn)速控制系統(tǒng)電路圖附錄B 源程序#include <stdio.h>#include <REGX51.H>#define ulong   unsigned long#define uint &#

47、160;  unsigned int#define uchar   unsigned charextern void delay(unsigned int x);unsigned char Tab_key=        /行列式鍵盤映射    0x00,                &

48、#160;       /無鍵按下    '7','8','9','/',    '4','5','6','*',    '1','2','3','-',    'C','0','=

49、9;,'+',    /下面為按'C'同時再按的鍵:    '7','8','9','/',    '4','5','6','*',    '1','2','3','-',       

50、 '0','=','+',;    /  P1口行列式鍵盤  /#define KEYPIN_L  P1               / 定義鍵掃描列端口為 P1低四位輸入  /#define KEYPIN_H  P1         

51、60;    / 定義鍵掃描行端口為 P1高四位掃描輸出  /    /  P1口行列式鍵盤  /    /公用函數(shù)unsigned char KeysCAN(void);    /  鍵掃描函數(shù)            /    /內(nèi)部私有函數(shù)unsigned char fnKeycode(unsi

52、gned char key);     /  根據(jù)鍵盤映射表輸出順序鍵值            /*    /  P1口行列式鍵盤  /extern unsigned char KeysCAN(void);    /  鍵掃描函數(shù)           

53、; /*/    /  P1口行列式鍵盤  /unsigned char KeysCAN(void)                      /  鍵掃描函數(shù)            /   

54、; unsigned char sccode,recode,keytemp = 0;    KEYPIN_L = KEYPIN_L|0x0f;                    /  P1低四位為列線輸入         /    KEYPIN_H = K

55、EYPIN_H&0x0f;                    /  P1高四位為行線發(fā)全零掃描碼 /    if (KEYPIN_L&0x0f) !=  0x0f)                de

56、lay(10);                                /  延時 20 MS 消抖       /        if (K

57、EYPIN_L&0x0f) !=  0x0f)                        sccode = 0xef;                    

58、    /  逐行掃描碼初值(1110 1111)  /            while(sccode !=  0xff)               /將掃描4次,keytemp為每次鍵值相的值 /       &#

59、160;                        KEYPIN_H = sccode;                 /  輸出行掃描碼     

60、60;    /                if (KEYPIN_L&0x0f) !=  0x0f)    /  本行有鍵按下          /          

61、                              recode = (KEYPIN_L&0x0f)|0xf0;    /  只要低位,高位置1  /        

62、0;           keytemp |=  (sccode)+(recode);    /特征碼(高位為列P3,低位為行KEYPIN_H)  /                          

63、;      sccode = (sccode << 1)|0x01;    /  掃描碼0向高位移動 /                            KEYPIN_H = KEYPIN_H|0xf0;    retu

64、rn(fnKeycode(keytemp);unsigned char fnKeycode(unsigned char key)     /  根據(jù)鍵盤映射表輸出順序鍵值            /        switch(key)             

65、   case    0x11:                /   1 鍵  /            key = 0x01;           

66、; break;        case    0x21:                /   2 鍵  /            key = 0x02;    

67、60;       break;        case    0x41:                /   3 鍵  /           

68、key = 0x03;            break;        case    0x81:                /   4 鍵  /     

69、;       key = 0x04;            break;        case    0x12:                /   5

70、鍵  /            key = 0x05;            break;        case    0x22:           

71、60;    /   6 鍵  /            key = 0x06;            break;        case    0x42:     &

72、#160;          /   7 鍵  /            key = 0x07;            break;        case   

73、; 0x82:                /   8 鍵  /            key = 0x08;            break;    &#

74、160;   case    0x14:                /   9 鍵  /            key = 0x09;          &

75、#160; break;        case    0x24:                /   10 鍵  /            key = 0x0A;   

76、0;        break;        case    0x44:                /   11 鍵  /          &

77、#160; key = 0x0B;            break;        case    0x84:                /   12 鍵  /   

78、0;        key = 0x0C;            break;        case    0x18:                / &#

79、160; 13 鍵  /            key = 0x0D;            break;        case    0x28:          &

80、#160;     /   14 鍵  /            key = 0x0E;            break;        case    0x48:   

81、0;            /   15 鍵  /            key = 0x0F;            break;        case &

82、#160;  0x88:                /   16 鍵  /            key = 0x10;            break;  

83、60;                 /以下為功能鍵/        case    0x19:                /   'C' +1 鍵

84、  /            key = 0x11;            break;        case    0x29:           

85、0;    /   'C' +2 鍵  /            key = 0x12;            break;        case    0x49:   &

86、#160;            /   'C' +3 鍵  /            key = 0x13;            break;      

87、60; case    0x89:                /   'C' +4 鍵  /            key = 0x14;          &

88、#160; break;        case    0x1A:                /   'C' +5 鍵  /            key = 0x15; 

89、0;          break;        case    0x2A:                /   'C' +6 鍵  /      &

90、#160;     key = 0x16;            break;        case    0x4A:                /   'C'

91、; +7 鍵  /            key = 0x17;            break;        case    0x8A:                /   'C' +8 鍵  /            key = 0x18;        

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論