論文題目 基于單片機的直流電機控制系統的設計
學位類別 工學學士
學科專業 自 動 化
作者姓名
導師姓名
完成時間 2010年5月20日
中 文 摘 要
本文介紹了基于單片機的直流電機PWM調速的基本方法,直流電機調速的相關知識以及PWM調速的基本原理和實現方法。重點介紹了基于MCS一51單片機的用軟件產生PWM信號以及信號占空比調節的方法。對于直流電機速度控制系統的實現提供了一種有效的途徑。
直流電動機具有優良的調速特性,調速平滑,方便,調速范圍廣,過載能力大,能承受頻繁的沖擊負載,可實現頻繁的無級快速起動、制動和反轉;能滿足生產過程中自動化系統各種不同的特殊運行要求。電動機調速系統采用微機實現自動控制,是電氣傳動發展的主要方向之一。采用微機控制后,整個調速系統體積小、結構簡單、可靠性高、操作維護方便,電動機穩態運轉時轉速精度可達到較高水平,靜動態各項指標均能較好地滿足工業生產中高性能電氣傳動的要求。
The Design of DC Motor Speed Control System Based on The SCM
ABSTRACT
This paper introduces a kind of method of DC —motor speed modification based on PWM theory by the SCM.Showing some relative knowledge upon the DC—motor timing,the basic theory and the way to implement.And it emphasizes on the way for carrying out PW M signals based on MCS一51.This paper still provides a method for modifying the speed of DC—motor by way of taking count of data and time delay by software.It offers a sort of efficient method for the DC motor speed—controlling system.
DC Motor Speed Control has excellent characteristics, speed smooth and easy, and speed a wide range of Shock, able to withstand the impact of frequent load can be achieved without frequent fast-starting, braking and reverse; meet the production process automation systems various special operating requirements. Drives using micro-computer control, the development of electric drive is one of the major directions. Using computer control, the speed control system as a whole size, simple structure, high reliability, ease of maintenance and operation. Stable operation at the motor speed precision can be achieved at higher levels, static and dynamic indicators can better meet the industrial production of high-performance electric transmission requirements.
KEY WORD:SCM; PWM; DC —motor speed modification
目 錄
第一章 直流電機調速分析及研究意義 1
1.1 直流電機調速原理 1
1.2 PWM基本原理及其實現方法 2
1.2.1 PWM基本原理 2
1.3 實現方法 3
1.4 控制程序設計 3
1.5 研究背景 4
1.6 論文研究的目的與意義 4
1.6.1 目的 4
1.6.2 意義 4
第二章 系統硬件設計 6
2.1系統方案 6
2.2設計要求 6
2.3功能簡介 6
2.4主要內容 6
2.5電機調速控制模塊 7
2.5.1方案選擇 7
2.5.2 PWM調速工作方式 8
2.5.3 PWM調脈寬方式 8
2.5.4 PWM軟件實現方式 8
2.6系統分析與硬件設計 9
2.6.1單片機最小系統的設計 9
2.6.2電源電路設計 11
2.6.3直流電機驅動電路設計 14
2.6.4顯示模塊設計 15
2.6.5鍵盤電路設計 16
2.6.6元件選擇與參數計算 17
2.7設計所需部分器件 20
2.8技術路線 20
2.9 應用軟件的編制、調試 22
第三章 系統軟件的設計 23
3.1程序的總體設計 23
第四章 調試與仿真 24
4.1仿真圖形 24
第五章 結論和總結 26
參 考 文 獻 27
致 謝 28
附程序清單 28
第一章 直流電機調速分析及研究意義1.1 直流電機調速原理
根據勵磁方式不同,直流電機分為自勵和他勵兩種類型。不同勵磁方式的直流電機機械特性曲線有所不同。對于直流電機來說,人為機械特性方程式為:
(公式 1-1)
式中,—— 額定電樞電壓、額定磁通量;
,--與電機有關的常數;
,——電樞外加電阻、電樞內電阻;
,——理想空載轉速、轉速降。
分析(1)式可得.當分別改變、 和時,可以得到不同的轉速,從而實現對速度的調節。由于=,當改變勵磁電流時,可以改變磁通量的大小,從而達到變磁通調速的目的。但由于勵磁線圈發熱和電動機磁飽和的限制,電動機的勵磁電流,和磁通量只能在低于其額定值的范圍內調節,故只能弱磁調速。而對于調節電樞外加電阻時,會使機械特性變軟,導致電機帶負載能力減弱。對于他勵直流電機來說,當改變電樞電壓時,分析人為機械特性方程式,得到人為特性曲線[1-2]。
如圖1-1所示。理想空載轉速隨電樞電壓升降而發生相應的升降變化。不同電樞電壓的機械特性曲線相互平行,說明硬度不隨電樞電壓的變化而改變,電機帶負載能力恒定。當我們平滑調節他勵直流電機電樞兩端電壓時,可實現電機的無級調速。基于以上特性,改變電樞電壓,實現對直流電機速度調節的方法被廣泛采用。改變電樞電壓可通過多種途徑實現,如晶閘管供電速度控制系統、大功率晶體管速度控制系統、直流發電機供電速度控制系統及晶體管直流脈寬調速系統等。
圖1-1 直流電動機機械特性曲線 圖1-2 電樞電壓“占空比”與平均電壓關系
1.2 PWM基本原理及其實現方法1.2.1 PWM基本原理
PWM是通過控制固定電壓的直流電源開關頻率,從而改變負載兩端的電壓,進而達到控制要求的一種電壓調整方法。PWM可以應用在許多方面,如電機調速、溫度控制、壓力控制等。在PWM驅動控制的調整系統中,按一個固定的頻率來接通和斷開電源,并根據需要改變一個周期內“接通”和“斷開”時間的長短。通過改變直流電機電樞上電壓的“占空比”來改變平均電壓的大小,從而控制電動機的轉速。因此,PWM又被稱為“開關驅動裝置”。在脈沖作用下,當電機通電時,速度增加;電機斷電時,速度逐漸減少。只要按一定規律,改變通、斷電的時間,即可讓電機轉速得到控制。設電機始終接通電源時,電機轉速最大為,設占空比為=/,則電機的平均速度為:
=* (公式 1-2)
式中, —— 電機的平均速度;
--電機全通電時的速度(最大);
=/--占空比。
由公式1-2可見,當我們改變占空比時=/,就可以得到不同的電機平均速度 ,從而達到調速的目的。嚴格地講,平均速度與占空比=/并不是嚴格的線性關系,在一般的應用中,可以將其近似地看成線性關系[3]。
1.3 實現方法
PWM信號的產生通常有兩種方法:一種是軟件的方法;另一種是硬件的方法。硬件方法的實現已有很多文章介紹,這里不做贅述。本文主要介紹利用單片機對PWM信號的軟件實現方法。MCS一51系列典型產品AT89S52具有兩個定時器 和 。通過控制定時器初值和 ,從而可以實現從S52的任意輸出口輸出不同占空比的脈沖波形。由于PWM信號軟件實現的核心是單片機內部的定時器,而不同單片機的定時器具有不同的特點,即使是同一臺單片機由于選用的晶振不同,選擇的定時器工作方式不同,其定時器的定時初值與定時時間的關系也不同。因此,首先必須明確定時器的定時初值與定時時間的關系。如果單片機的時鐘頻率為,定時器/計數器為位,則定時器初值與定時時間的關系為:
(公式 1-3)
式中,—— 定時器定時初值;
—— 一個機器周期的時鐘數。隨著機型的不同而不同。在應用中,應根據具體的機型給出相應的值。這樣,我們可以通過設定不同的定時初值 ,從而改變占空比=/,進而達到控制電機轉速的目的[4]。
1.4 控制程序設計
控制程序的設計有兩種方法:軟件延時法和計數法。軟件延時法的基本思想是:首先求出占空比=/,再根據周期分別給電機通電個單位時間,所以=/。然后,再斷電個單位時間,所以= 。改變和的值,從而也就改變了占空比。計數法的基本思想是:當單位延時個數求出之后,將其作為給定值存放在某存儲單元中。在通電過程中,對通電單位時間的次數進行計數,并與存儲器的內容進行比較。若不相等,則繼續輸出控制脈沖,直到計數值與給定值相等,使電機斷電。
軟件采用定時中斷進行設計。如圖2-12所示,單片機上電后,系統進入準備狀態。當按動按鈕后,執行相應的程序,根據P3.0或P3.1輸出的高電平決定直流電機的正反轉。根據不同的加、減速按鈕,調整P3.0或P3.1輸出高低電平時的占空比,從而可以控制P3.0或P3.1輸出高低電平時的延時時間,進而控制電壓的大小來決定直流電機轉速。
1.5 研究背景
隨著社會的發展,各種智能化的產品日益走入尋常百姓家。為了實現產品的便攜性、低成品以及對電源的限制,小型直流電機應用相當廣泛。對直流電機的速度調節,我們可以采用多種辦法,本文在給出直流電機調整和PWM實現方法的基礎上,提供一種用單片機軟件實現PWM 調速的方法。
1.6 論文研究的目的與意義1.6.1 目的
對基于MCS-51系列單片機實現直流電機調速系統進行研究和設計,能夠在不同的按鈕作用下分別實現直流電機的停止、加速、減速、正轉、反轉控制;能夠實現基于MCS-51系列單片機的直流電機PWM的調速設計。
1.6.2 意義
(1) 直流電動機有良好的起動、制動性能, 宜于在廣范圍內平滑調速, 至今在金屬切削機床、造紙機等需要高性能可控電力拖動的領域中仍有廣泛的應用。直流調速系統在不斷發展, 尤其是近年來, 國內外各廠家競相推出全數字直流調速裝置, 使得直流調速系統在理論和實踐方面都邁上了一個新的臺階。以往的直流調速裝置是全模擬式設備。變電壓調速是直流調速的主要方法, 常用晶閘管可控整流器做可控直流電源。這些舊設備急待更新改造。另外, 目前高等院校的電力拖動自動控制系統的實驗教學, 還采用全模擬式的實驗設備, 尚無適合于教學的全數字式直流調速實驗裝置, 有待于開發。
(2) 本文研究的基于MCS-51系列單片機的直流電機PWM調速系統屬于微機控制領域,通過對單片機的學習和研究對自己以后從事硬件產品的開發有一定的實際指導意義。
(3) 將所學的知識理論和實踐想結合,為以后再此基礎上結合相關領域設計智能化產品和改進某些產品性能具有很好的實踐意義。
第二章 系統硬件設計2.1系統方案
本設計以AT89S52單片機為核心,以5個彈跳按鈕作為輸入達到控制直流電機的停止、加速、減速、正轉、反轉。在設計中,采用PWM技術對電機進行控制,通過對占空比的計算達到精確調速的目的。
2.2設計要求
(1)能實現通過調節給定的電壓對直流電機的速度及轉向控制;
(2)通過按鈕能實現直流電機的加速、減速、等變速及轉向控制;
2.3功能簡介
直流電動機具有優良的調速特性,調速平滑、方便,調速范圍廣;過載能力大,能承受頻繁的沖擊負載,可實現頻繁的無級快速起動、停止和反轉;能滿足生產過程自動化系統各種不同的特殊運行要求。電動機調速系統采用微機實現自動控制,是電氣傳動發展的主要方向之一。采用微機控制后,整個調速系統實現自動化,結構簡單,可靠性高,操作維護方便,電動機穩態運轉時轉速精度可達到較高水平,靜動態各項指標均能較好地滿足工業生產中高性能電氣傳動的要求。由于單片機性能優越,具有較佳的性能價格比,所以單片機在工業過程及設備控制中得到日益廣泛的應用。PWM 調速系統與可控整流式調速系統相比有下列優點:由于PWM 調速系統的開關頻率較高,僅靠電樞電感的濾波作用就可獲得平穩的直流電流,低速特性好:同樣,由于開關頻率高,快速響應特性好,動態抗干擾能力強,可以獲得很寬的頻帶;開關器件只工作在開關狀態,主電路損耗小,裝置效率高。本文所介紹的系統就是一個采用典型的開環調速原理組成的單片機PWM 調速系統[4-5]。
2.4主要內容
采用單片機構成的直流電動機數字PWM 調速系統,其控制核心主要由最小系統、電源模塊(12v 5v)、電機驅動電路、按鍵(加速、減速、急停、正轉、反轉)、顯示模塊(四位數碼管)、直流電機組成。系統采用L298N芯片作為PWM 驅動直流電動機的供電主回路。單片機通過軟件處理輸出PWM信號, 實現了直流電動機的速度控制,在運行中獲得了良好的動靜態性能。由于系統性價比高,結構簡單,具有實用價值和推廣價值。在介紹了基于單片機用PWM實現直流電機調整的基本方法,直流電機調速的相關知識,及PWM調整的基本原理和實現方法。重點介紹了基于AT89S52單片機的用軟件產生PWM信號的途徑,并介紹了一種獨特的通過軟件定時中斷實現PWM信號占空比調節的方法。對于直流電機速度控制系統的實現提供了一種有效的途徑。
(1)鍵盤識別:通過P1口的低電平輸入識別不同的按鍵。
(2)通過對單片機程序燒錄實現對直流電機的停止、加速、減速、正轉、反轉控制。
(3)由于單片機的驅動能力不強,驅動直流電機需要很強的電流所以必須有外圍的驅動電路,因此本設計采用L298芯片放大單片機微弱的電流。
控制原理:89S52單片機為核心的直流電機控制系統控制簡圖如圖2-1所示,由軟件轉換成PWM 信號,并由P3.0、P3.1輸出,經驅動電路輸出給電機,從而控制電機得電與失電。軟件采用定時中斷進行設計。單片機上電后,系統進入準備狀態。當按動啟動按鈕后,根據P3.0為高電平實現電機正轉,P3.1為高電平時實現電機反轉。根據不同的加減速按鈕,調整P3.0/ P3.1輸出高低電平時的預定值,從而可以控制P3.0/ P3.1輸出高低電平時的占空比,進而控制電壓的大小。控制程序應用于電機的加減速。
在電動機驅動信號方面,我們采用了占空比可調的周期矩形信號控制。脈沖頻率對電動機轉速有影響,脈沖頻率高連續性好,但帶帶負載能力差脈沖頻率低則反之。經實驗發現,脈沖頻率在40Hz以上,電動機轉動平穩,但加負載后,速度下降明顯,低速時甚至會停轉;脈沖頻率在10Hz以下,電動機轉動有明顯跳動現象。實驗證明,脈沖頻率在15Hz-30Hz時效果最佳。而具體采用的頻率可根據個別電動機性能在此范圍內調節。通過 P3.0輸入高電平信號P3.1輸入低電平與P3.0輸入低電平P3.1輸入信號分別實現電動機的正轉與反轉功能。通過對信號占空比的調整來對直流電機進行調節。
2.5電機調速控制模塊2.5.1方案選擇
方案一:采用電阻網絡或數字電位器調整電動機的分壓,從而達到調速的目的。但是電阻網絡只能實現有級調速,而數字電阻的元器件價格比較昂貴。更主要的問題在于一般電動機的電阻很小,但電流很大;分壓不僅會降低效率,而且實現很困難。
方案二:采用繼電器對電動機的開或關進行控制,通過開關的切換對小車的速度進行調整。這個方案的優點是電路較為簡單,缺點是繼電器的響應時間慢、機械結構易損壞、壽命較短、可靠性不高。
方案三:采用驅動芯片L298N驅動直流電機,L298N具有驅動能力強,外圍電路簡單等優點,因此我們采用方案三。
2.5.2 PWM調速工作方式
方案一:雙極性工作制。雙極性工作制是在一個脈沖周期內,單片機兩控制口各輸出一個控制信號,兩信號高低電平相反,兩信號的高電平時差決定電動機的轉向和轉速。
方案二:單極性工作制。單極性工作制是單片機控制口一端置低電平,另一端輸出PWM信號,兩口的輸出切換和對PWM的占空比調節決定電動機的轉向和轉速。
由于單極性工作制電壓波開中的交流成分比雙極性工作制的小,其電流的最大波動也比雙極性工作制的小,所以我們采用了單極性工作制。
2.5.3 PWM調脈寬方式
調脈寬的方式有三種:定頻調寬、定寬調頻和調寬調頻。我們采用了定頻調寬方式,因為采用這種方式,電動機在運轉時比較穩定;并且在采用單片機產生PWM脈沖的軟件實現上比較方便。
2.5.4 PWM軟件實現方式
方案一:采用軟件延時方式,在引入中斷之后,將有一定的誤差。
方案二:采用定時器作為脈寬控制的定時方式,這一方式產生的脈沖寬度極其精確,誤差只在幾個us,綜合考慮我們采用方案二[6-7]。
2.6系統分析與硬件設計
鍵盤向單片機輸入相應控制指令,由單片機通過P3.0與P3.1其中一口輸出與轉速相應的PWM脈沖,另一口輸出低電平,經過信號放大、驅動電動機控制電路,實現電動機轉向與轉速的控制,電動機正轉,反轉,加速,減速、急停。
總體設計方案的硬件部分詳細框圖如圖2-1所示:
圖2-1 系統硬件框圖
2.6.1單片機最小系統的設計
單片機最小系統:所謂最小系統就是指由單片機和一些基本的外圍電路所組成的一個可以工作的單片機系統。一般來說,它包括單片機,晶振電路和復位電路。
設計部分分析:
1、單片機AT89S52
AT89S52 8位單片機是MSC-51®系列產品的升級版,有世界著名半導體公司ATMEL在購買MSC-51®設計結構后,利用自身優勢技術——(掉電不丟數據)閃存生產技術對舊技術進行改進和擴展,同時使用新的半導體生產工藝,最終得到成型產品。與此同時,世界上其他的著名公司也通過基本的51內核,結合公司自身技術進行改進生產,推廣一批如51F020等高性能單片機。
AT89S52片內集成256字節程序運行空間、8K字節Flash存儲空間,支持最大64K外部存儲擴展。根據不同的運行速度和功耗的要求,時鐘頻率可以設置在0-33M之間。片內資源有4組I/O控制端口、3個定時器、8個中斷、軟件設置低能耗模式、看門狗和斷電保護。可以在4V到5.5V寬電壓范圍內正常工作。不斷發展的半導體工藝也讓該單片機的功耗不斷降低。同時,該單片機支持計算機并口下載,簡單的數字芯片就可以制成下載線,僅僅幾塊錢的價格讓該型號單片機暢銷10年不衰。根據不同場合的要求,這款單片機提供了多種封裝,本次設計根據最小系統有時需要更換單片機的具體情況,使用雙列直插DIP-40的封裝。
圖2-2 DIP-40封裝89S52引腳圖
2、 復位電路及時鐘電路
復位電路和時鐘電路是維持單片機最小系統運行的基本模塊。復位電路通常分為兩種:上電復位和手動復位。
上電復位 手動復位
有時系統在運行過程中出現程序跑飛的情況,在程序開發過程中,經常需要手動復位。所以本次設計選用手動復位。
高頻率的時鐘有利于程序更快的運行,也有可以實現更高的信號采樣率,從而實現更多的功能。但是告訴對系統要求較高,而且功耗大,運行環境苛刻。考慮到單片機本身用在控制,并非高速信號采樣處理,所以選取合適的頻率即可。合適頻率的晶振對于選頻信號強度準確度都有好處,本次設計選取12.000M無源晶振接入XTAL1和XTAL2引腳。并聯2個30pF陶瓷電容幫助起振。
最小系統如圖:
圖2-3 最小系統
2.6.2電源電路設計
直流穩壓電源的基本原理:直流穩壓電源一般有電源變壓器T、整流濾波電路及穩壓電路所組成,基本框圖如下。
圖2-4 直流電源原理
各部分作用:
(1)電源變壓器T的作用是將220V的交流電壓變換成整流濾波電路所需要的交流電壓Ui。變壓器副邊與原邊的功率比為P2/P1=n,式中n是變壓器的效率。
(2)整流電路:整流電路將交流電壓Ui變換成脈動的直流電壓。再經濾波電路濾除較大的波紋成分,輸出波紋較小的直流電壓U1。常用的整流濾波電路有全波整流濾波、橋式整流濾波等。
圖2-5 整流電路
(3)濾波電路:各濾波電路C滿足 RL-C=(3~5)T/2,式中T為輸入交流信號周期,RL為整流濾波電路的等效負載電阻。
圖2-6 濾波電路
(4)穩壓電路:常用的穩壓電路有兩種形式:一是穩壓管穩壓電路,二是串聯型穩壓電路。二者的工作原理有所不同。穩壓管穩壓電路其工作原理是利用穩壓管兩端的電壓稍有變化,會引起其電流有較大變化這一特點,通過調節與穩壓管串聯的限流電阻上的壓降來達到穩定輸出電壓的目的。它一般適用于負載電流變化較小的場合。串聯型穩壓電路是利用電壓串聯負反饋的原理來調節輸出電壓的。集成穩壓電源事實上是串聯穩壓電源的集成化。常用穩壓電路歸納如下表:
電路名稱
典型電路
輸出電壓及有關參數
特點與用途
穩壓管穩定電壓
電路簡單,適用于輸出電壓恒定,負載電流變化小的場合,常用作基準電源
可調穩壓電源
電路引入電壓串聯負反饋,使輸出電壓更穩定且可調, 可獲得負電源
串聯型穩
壓電路
電路較復雜,輸出電壓可調,輸出電流較大,應用范圍廣
集成穩壓
電源
系列為正電源
系列為負電源
輸出電壓固定,為5V,9V,12V,15V,18V等,可根據需要選用
電路簡單,輸出電壓固定
2.6.3直流電機驅動電路設計
由于單片機P3口輸出的電壓最高才有5V,難以直接驅動直流電機。所以我們需要使用恒壓恒流橋式2A驅動芯片L298N來驅動電機。L298N可接受標準TTL邏輯電平信號VSS,VSS可接4.5~7V電壓。4腳VS接電源電壓,VS電壓范圍VIH為+2.5~46V。輸出電流可達2.5A,可驅動電感性負載。1腳和15腳下管的發射極分別單獨引出以便接入電流采樣電阻,形成電流傳感信號。L298可驅動2個電動機,OUT1,OUT2和OUT3,OUT4之間可分別接電動機,本實驗裝置我們選用驅動一臺電動機。5,7,10,12腳接輸入控制電平,控制電機的正反轉。EnA,EnB接控制使能端,控制電機的停轉。同時需要加四個二極管在電機的兩端,防止電機反轉的時候產生強大的沖擊電流燒壞電機[8-9]。具體驅動電路如下圖2-7:
圖2-7 驅動電路
2.6.4顯示模塊設計
本次設計顯示模塊采用的是SM410564 四位共陽數碼管顯示,因為單片機的輸出端口輸出的電流小,點亮數碼管的能力不大,所以需要采用三極管放大輸出電流,此次三極管采用的是C9013,具體放大電路如圖示:
圖2-8 放大電路
2.6.5鍵盤電路設計
正轉、反轉、急停、加速、減速五個開關分別與單片機的P1.0,P1.1,P1.2,P1.3,P1.4相連,然后再與地相連。急停實現直流電機的停轉,正轉實現直流電機的正轉,反轉實現直流電機的反轉,加速實現直流電機的加速,減速實現直流電機的減速,其電路如圖:
圖2-9 按鍵電路
2.6.6元件選擇與參數計算
(1)整流電路參數
輸出電壓平均值:Uo(AV)=2
輸出電流平均值:IO(AV)=
平均整流電流:ID(AV)=
最大反向電壓:URM=
整流二極管的選擇(考慮電網):
(2)濾波電路參數
濾波電容選擇:RLC=(3~5)
一般選幾十至幾千微法的電解電容,耐壓>
(3)實際計算過程
1.要使7812正常工作,必須保證輸入與輸出之間維持大于2V的壓降,因此7812輸入端直流電壓必須保證14V以上。7812輸入端的電流是對變壓器副邊輸出電壓U(t)整流、濾波后得到的。假設整流電路內阻為0,負載電流為0,7812輸入端有最大電壓U=1.414Uef,Uef是U(t)有效值。由于濾波電容不可能無限大,所以U<1.414Uef,根據經驗可知U=1.2Uef,可知Uef=14.4V,考慮到整流橋經過兩個二極管約有1.4V的壓降,得變壓器可取15V。
2.變壓器選擇:變壓器選擇雙15V變壓,考慮到電流不需要太大,最大電流為1A,實際選擇變壓器輸出功率為10W,可以很好的滿足要求。
3.整流橋:考慮到電路中會出現沖擊電流,整流橋的額定電流是工作電流的2~3倍。選取RS301(100V,3A)即可,實際購買過程中選擇了RS307(700V,3A)也符合設計要求。
4.濾波電容:考慮到對紋波電壓要求比較高,故選擇了2200μF耐壓值為25V以及100μF耐壓值50v的電解電容。
5.去耦電容:去耦電容的選擇是7812及7805芯片要求的,查手冊可知分別為0.01μF、,用來濾除高頻分量防止產生自激。
6.為了防止負載產生沖擊電流,故在輸出端加入2200μF、耐壓值為25V的電解電容。
7.7805支路的元件參數基本相同。
至此,所有元件的參數都已經確定。
(4)12v、5v電源電路
圖2-10 12v直流電源電路圖
圖2-11 5v直流電源電路圖
系統整體硬件電路圖如圖2-12示:
圖2-12 系統硬件電路圖
2.7設計所需部分器件
AT89S52、L298N、12MHZ晶振、四位共陽數碼管、電容、電阻、彈跳開關等。
2.8技術路線
P3.0/P3.1脈沖寬度調制器(PWM) 通道,它們產生可由編程決定寬度和間隔的脈沖。脈沖的間隔周期是由一個FOR循環控制,來產生不同的占空比。單片機產生的PWM信號不能直接驅動電機,這就需要設計合適的驅動電路。我們可借助于恒壓恒流橋式2A驅動芯片L298N來完成對電動機的驅動。具體的設計方法是通過Keil C編程,Proteus聯合仿真來實現的。
Proteus是一種低投資的電子設計自動化軟件,提供Schematic Drawing,SPICE仿真與PCB設計功能,這一點proteus 與 multisim比較類似,只不過它可以仿真單片機和周邊設備,可以仿真51系列、AVR,PIC等常用的MCU,與keil和MPLAB不同的是它還提供了周邊設備的仿真,只要給出電路圖就可以仿真,例如373,led,示波器,Proteus提供了大量的元件庫有RAM,ROM,鍵盤,馬達,LED,LCD,AD/DA,部分SPI器件,部分IIC器件,⋯編譯方面支持Keil和MPLAB,里面有大量的例子參考.
(1) Proteus可提供的仿真元件資源Proteus軟件提供了可仿真數字和模擬、交流和直流等數千種元器件和多達30多個元件庫。
(2) Proteus可提供的仿真儀表資源虛擬儀器儀表的數量、類型和質量,是衡量仿真軟件實驗室是否合格的一個關鍵因素。在Proteus軟件中,理論上同一種儀器可以在一個電路中隨意的調用。除了現實存在的儀器外,Proteus還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似但功能更多。這些虛擬儀器儀表具有理想的參數指標,例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對測量結果的影響。Proteus可提供的調試手段
(3) Proteus提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數字信號。
Keil是德國開發的一個51單片機開發軟件平臺,最開始只是一個支持C語言和匯編語言的編譯器軟件。后來隨著開發人員的不斷努力以及版本的不斷升級,使它已經成為了一個重要的單片機開發平臺,不過KEIL的界面并不是非常復雜,操作也不是非常困難,很多工程師的開發的優秀程序都是在KEIL的平臺上編寫出來的。可以說它是一個比較重要的軟件,熟悉他的人很多很多,用戶群極為龐大,要遠遠超過偉福等廠家軟件用戶群,操作有不懂的地方只要找相關的書看看,到相關的單片機技術論壇問問,很快就可以掌握它的基本使用了。
(1)Keil的μVision2可以進行純粹的軟件仿真(仿真軟件程序,不接硬件電路);也可以利用硬件仿真器,搭接上單片機硬件系統,在仿真器中載入項目程序后進行實時仿真;還可以使用μVision2的內嵌模塊Keil Monitor-51,在不需要額外的硬件仿真器的條件下,搭接單片機硬件系統對項目程序進行實時仿真。
(2)uVision2調試器具備所有常規源極調試,符號調試特性以及歷史跟蹤,代碼覆蓋,復雜斷點等功能。DDE界面和shift語言支持自動程序測試。
2.9 應用軟件的編制、調試
使用Keil 軟件工具時,項目開發流程和其它軟件開發項目的流程極其相似。
(1) 創建一個項目,從器件庫中選擇目標器件,配置工具設置。
(2) 用C語言或匯編語言創建源程序。
(3) 用項目管理器生成應用。
(4) 修改源程序中的錯誤。
(5) 測試,連接應用。
第三章 系統軟件的設計3.1程序的總體設計
利用P3口,編制程序輸出一串脈沖,經放大后驅動直流電機,改變輸出脈沖的電平的持續時間,達到使電機正轉、反轉、加速、減速、停轉等目的[10-11]。由軟件編程從P3.0/P3.1管腳產生PWM 信號,經驅動電路輸出給電機,從而控制電機得電與失電。軟件采用延時法進行設計。單片機上電后,系統進入準備狀態。當按動啟動按鈕后,根據P3.0為高電平時實現電機正轉,P3.1為高電平時實現電機反轉。根據不同的加減速按鈕,調整P3.0/ P3.1輸出高低電平時的占空比,從而可以控制P3.0/ P3.1輸出高低電平時的有效值,進而控制電機的加減速。
其總體流程圖如圖3-1示:
圖3-1 總體程序流程圖
第四章 調試與仿真4.1仿真圖形
初始狀態,直流電機有如圖示4-1運行效果
圖4-1 電機半速運轉
按下急停鍵,直流電機有圖4-2的停止運行結果。
圖4-2 電機停轉
按下加速鍵,直流電機有圖4-3的正向加速運行結果。
圖4-3 電機正轉加速
按下減速鍵,直流電機有圖4-4正向減速運行結果。
圖4-4 電機正轉減速
按下反轉鍵,直流電機有圖4-5反向加速運行結果。
圖4-5 電機反轉加速
第五章 結論和總結
經過將近幾個月的努力,終于完成了畢業設計。在 Protuse和Keil c中仿真了出來,同時也做出了實物,基本上實現了直流電機的停止、加速、減速以及轉向控制。
畢業設計是每個大學生必須面臨的一項綜合素質的考驗,如果說在過去三年里,我們的學習是一個知識的積累過程,那么現在的畢業設計就是對過去所學的知識的綜合應用,是對理論進行深化和重新認識的實踐活動。在這近兩個月的畢業設計中,我們有艱辛的付出,也有了收獲。知識固然得到了鞏固和提高,但我相信在實踐中的切身體會將會使我在以后的工作和學習中終身受用。
首先,學習能力和解決問題的信心都得到了提高。在畢業設計的過程中,遇到了很多困難,但是在查閱了很多有關書籍和向同學請教后終于解決了。通過這次畢業設計,我不僅對理論有了更深一步的認識,還培養了自學能力和解決問題的能力,更重要的是,培養了克服困難的勇氣和信心。
其次,我們的畢業設計之所以能基本完成,要深深地感謝我們的指導老師的悉心指導和幫助。
參 考 文 獻
[1] 顧繩谷.電機及拖動基礎[M],北京:機械工業出版社,2007.
[2] 楊斌文,梅英,徐宇明.并勵直流電動機的機械特性分析(英文)[J],湖南文理學院學報(自然科學版),2006,Vol.18,NO.2:60-61,68.
[3] 王鑒光.電動機控制系統[M],北京:北京機械工業出版社,1994.
[4] 王小明.電動機的單片機控制[M],北京:北京航空航天大學出版社,2002.
[5] 張琛.直流無刷電動機原理及應用[M],北京:北京機械工業出版社,1996.
[6] 袁淑芬.實現直流無刷電動機調速控制的一種新型方法[J],長春理工大學學報,2009,Vol.25,NO.1:113-115.
[7] 吳寶啟,張元偉,劉陽.基于單片機的無刷直流電機控制方案設計[J],煤礦現代化,2009,Vol.16,NO.6:74.
[8] 劉小春,首珩.無刷直流電動機的單片機控制[J],自動化技術與應用,2009,Vol.21,NO.3:129-131.
[9] 周興華.用單片機控制直流電機變速[J],電子制作,2006,Vol.34,NO.6:34-35.
[10] 岳東海,顏鵬.直流電機PWM無級調速控制系統設計[J],價值工程,2010,Vol.14,NO.2:135-136.
[11]郭浩.3A驅動能力PWM直流電機控制電路的制作[J],電子制作,2007,Vol.9,NO.10:42-43.
致 謝
經過半年的忙碌和工作,本次畢業設計已經接近尾聲,作為一個本科生的畢業設計,由于經驗的匱乏,難免有許多考慮不周全的地方,如果沒有導師的督促指導,想要完成這個設計還是比較困難的。
在這里首先要感謝我的導師老師。老師平日里工作繁多,但在我做畢業設計的時期,一直關心我的論文進展,從設計草案的確定和修改,中期檢查,后期詳細設計等整個過程中都給予了我很大的關心。然后還要感謝大學四年來所有的老師,為我們打下電氣專業知識的基礎;同時還要感謝所有的同學們,正是因為有了你們的支持和鼓勵。此次畢業設計才會順利完成。
最后感謝我的母校——四年來對我的大力栽培。
附程序清單
- //畢業論文設計:基于單片機的直流電機控制系統的設計//
- #include<at89x51.h>
- #define unchar unsigned char
- #define unint unsigned int
- unsigned char code dispcode[]={0xc0,0xf9,0xa4,0xb0,
- 0x99,0x92,0x82,0xf8,
- 0x80,0x90,0x88,0x83,
- 0xc6,0xa1,0x86,0x84,0xff,0xbf}; //顯示代碼
- unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7}; //位選口
- unsigned char dispbuf[4]={0,0,0,0};
- unsigned char dispbitcnt;
- unint mstcnt;
- unint i;
- unint count=0;
- unchar tp=0;
- void ledshow();
- void keyscan();
- void delay();
- void just();
- void turn();
- void motorstop();
- void speedup();
- void speeddown();
- void main(void)
- {
- P3_0=1;
- P3_1=0;
- dispbuf[0]=16;
- TMOD=0x02;
- TH0=0x06;
- TL0=0x06;
- TR0=1;
- ET0=1;
- EA=1;
- while(1)
- {
- ledshow();//數碼管顯示
- keyscan();//鍵盤掃描
- }
- }
- //延時10ms程序
- void delay()
- {
- unsigned char i,j;
- for(i=20;i>0;i--)
- for(j=248;j>0;j--);
- }
- //鍵盤掃描程序
- void keyscan()
- {
- unchar temp=0;
- P1=0xff;
- if((P1&0x1f)!=0x1f)
- {
- delay();
- if((P1&0x1f)!=0x1f)
- {
- temp=P1&0x1f;
- switch(temp)
- {
- case 0x1e:
- just();break;
- case 0x1d:
- turn();break;
- case 0x1b:
- motorstop();break;
- case 0x17:
- speedup();break;
- case 0x0f:
- speeddown();break;
- }
- }
- }
- while((P1&0x1f)!=0x1f);
- }
- //數碼管顯示程序
- void ledshow()
- {
- /*
- P0=dispcode[dispbuf[dispbitcnt]];
- P2=dispbitcode[dispbitcnt];
- dispbitcnt++;
- if(dispbitcnt==4)
- {
- dispbitcnt=0;
- }
- */
- P2=0x01;P0=dispcode[dispbuf[0]];
- for(i=0;i<700;i++);
- P2=0x02;P0=dispcode[dispbuf[1]];
- for(i=0;i<700;i++);
- P2=0x04;P0=dispcode[dispbuf[2]];
- for(i=0;i<700;i++);
- P2=0x08;P0=dispcode[dispbuf[3]];
- for(i=0;i<700;i++);
-
- dispbuf[1]=tp/100;
- dispbuf[2]=(tp%100)/10;
- dispbuf[3]=tp%10;
- }
- //中斷服務程序
- void t0(void) interrupt 1 using 0
- {
- /*
- mstcnt++;
- if(mstcnt==8)
- {
- mstcnt=0;
- P0=dispcode[dispbuf[dispbitcnt]];
- P2=dispbitcode[dispbitcnt];
- dispbitcnt++;
- if(dispbitcnt==4)
- {
- dispbitcnt=0;
- }
- }
- */
- if(count>100)
- count=0;
- if(count>tp)
- P3_7=0;
- else P3_7=1;
- count++;
- }
- void just()
- {
- P3_0=1;
- P3_1=0;
- dispbuf[0]=16;
- }
- void turn()
- {
- P3_0=0;
- P3_1=1;
- dispbuf[0]=17;
- }
- void motorstop()
- {
- tp=0;
- }
- void speedup()
- {
- if(tp>99)
- tp=100;
- else tp++;
- }
- void speeddown()
- {
- if(tp<1)
- tp=0;
- else tp--;
- }
復制代碼
|