基于單片機(jī)控制的步進(jìn)電機(jī)的畢業(yè)論文_第1頁(yè)
已閱讀1頁(yè),還剩88頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  第一章 前言</b></p><p>  1.1步進(jìn)電機(jī)簡(jiǎn)介 </p><p>  步進(jìn)電機(jī)最早是在1920年由英國(guó)人所開發(fā)。1950年后期晶體管的發(fā)明也逐漸應(yīng)用在步進(jìn)電機(jī)上,這對(duì)于數(shù)字化的控制變得更為容易。以后經(jīng)過不斷改良,使得今日步進(jìn)電機(jī)已廣泛運(yùn)用在需要高定位精度、高分解性能、高響應(yīng)性、信賴性等靈活控制性高的機(jī)械系統(tǒng)中。在生產(chǎn)過

2、程中要求自動(dòng)化、省人力、效率高的機(jī)器中,我們很容易發(fā)現(xiàn)步進(jìn)電機(jī)的蹤跡,尤其以重視速度、位置控制、需要精確操作各項(xiàng)指令動(dòng)作的靈活控制性場(chǎng)合步進(jìn)電機(jī)用得最多。步進(jìn)電機(jī)作為執(zhí)行元件,是機(jī)電一體化的關(guān)鍵產(chǎn)品之一, 廣泛應(yīng)用在各種自動(dòng)化控制系統(tǒng)中。隨著微電子和計(jì)算機(jī)技術(shù)的發(fā)展,步進(jìn)電機(jī)的需求量與日俱增,在各個(gè)國(guó)民經(jīng)濟(jì)領(lǐng)域都有應(yīng)用。 步進(jìn)電機(jī)是將電脈沖信號(hào)變換成角位移或直線位移的執(zhí)行部件。步進(jìn)電機(jī)可以直接用數(shù)字信號(hào)驅(qū)動(dòng),使用非常方便。一般電

3、動(dòng)機(jī)都是連續(xù)轉(zhuǎn)動(dòng)的,而步進(jìn)電動(dòng)機(jī)則有定位和運(yùn)轉(zhuǎn)兩種基本狀態(tài),當(dāng)有脈沖輸入時(shí)步進(jìn)電動(dòng)機(jī)一步一步地轉(zhuǎn)動(dòng),每給它一個(gè)脈沖信號(hào),它就轉(zhuǎn)過一定的角度。步進(jìn)電動(dòng)機(jī)的角位移量和輸入脈沖的個(gè)數(shù)嚴(yán)格成正比,在時(shí)間上與輸入脈沖同步,因此只要控制輸入脈沖的數(shù)量、頻率及電動(dòng)機(jī)繞組通電的相序,便可獲得所需的轉(zhuǎn)角、轉(zhuǎn)速及轉(zhuǎn)動(dòng)方向。在沒有</p><p>  第二章 步進(jìn)電機(jī)工作原理及系統(tǒng)方案論證</p><p>  

4、2.1步進(jìn)電機(jī)工作原理</p><p>  2.1.1步進(jìn)電機(jī)結(jié)構(gòu)  </p><p>  電機(jī)轉(zhuǎn)子均勻分布著40個(gè)小齒,定子齒有三個(gè)勵(lì)磁繞阻,其幾何軸線依次分別與轉(zhuǎn)子齒軸線錯(cuò)開0、1/3て、2/3て,(相鄰兩轉(zhuǎn)子齒軸線間的距離為齒距以て表示),即A與齒1相對(duì)齊,B與齒2向右錯(cuò)開1/3て,C與齒3向右錯(cuò)開2/3て,A'與齒5相對(duì)齊,(A'就是A,齒5就是齒1

5、)下面是定子和轉(zhuǎn)子的展開圖:  </p><p><b>  圖2.1</b></p><p>  2.1.2 步進(jìn)電機(jī)的旋轉(zhuǎn):  </p><p>  如A相通電,B,C相不通電時(shí),由于磁場(chǎng)作用,齒1與A對(duì)齊,(轉(zhuǎn)子不受任何力以下均同)。  如B相通電,A,C相不通電時(shí),齒2應(yīng)與B對(duì)齊,此時(shí)轉(zhuǎn)

6、子向右移過1/3て,此時(shí)齒3與C偏移為1/3て,齒4與A偏移(て-1/3て)=2/3て。  如C相通電,A,B相不通電,齒3應(yīng)與C對(duì)齊,此時(shí)轉(zhuǎn)子又向右移過1/3て,此時(shí)齒4與A偏移為1/3て對(duì)齊。  如A相通電,B,C相不通電,齒4與A對(duì)齊,轉(zhuǎn)子又向右移過1/3て ,這樣經(jīng)過A、B、C、A分別通電狀態(tài),齒4(即齒1前一齒)移到A相,電機(jī)轉(zhuǎn)子向右轉(zhuǎn)過一個(gè)齒距,如果不斷地按A,B,C,A……

7、通電,電機(jī)就每步(每脈沖)1/3て,向右旋轉(zhuǎn)。如按A,C,B,A……通電,電機(jī)就反轉(zhuǎn)。  由此可見:電機(jī)的位置和速度由導(dǎo)電次數(shù)(脈沖數(shù))和頻率成一一對(duì)應(yīng)關(guān)系,而方向由導(dǎo)電順序決定。  </p><p><b>  圖2.2</b></p><p>  不過,出于對(duì)力矩、平穩(wěn)、噪音及減少角度等方面考慮。往往采用A-AB-B-BC-C-CA-

8、A這種導(dǎo)電狀態(tài),這樣將原來每步1/3て改變?yōu)?/6て。甚至于通過二相電流不同的組合,使其1/3て變?yōu)?/12て,1/24て,這就是電機(jī)細(xì)分驅(qū)動(dòng)的基本理論依據(jù)。  不難推出:電機(jī)定子上有m相勵(lì)磁繞阻,其軸線分別與轉(zhuǎn)子齒軸線偏移1/m,2/m……(m-1)/m,1。并且導(dǎo)電按一定的相序電機(jī)就能正反轉(zhuǎn)被控制——這是步進(jìn)電機(jī)旋轉(zhuǎn)的物理?xiàng)l件。只要符合這一條件我們理論上可以制造任何相的步進(jìn)電機(jī),出于成本等多方面考慮,市場(chǎng)上一般以二

9、、三、四、五相為多。  2.2 課程設(shè)計(jì)目的、要求及設(shè)計(jì)方案論證</p><p>  2.2.1 設(shè)計(jì)目的</p><p> ?。?)設(shè)計(jì)并實(shí)現(xiàn)給定步進(jìn)電機(jī)的控制;</p><p> ?。?)進(jìn)一步掌握步進(jìn)電機(jī)的控制方法;</p><p>  (3)進(jìn)一步掌握單片機(jī)硬件和軟件的綜合設(shè)計(jì)方法。</

10、p><p>  2.2.2 設(shè)計(jì)要求實(shí)現(xiàn)功能</p><p> ?。?)電機(jī)工作方式為三相雙三拍,初始轉(zhuǎn)速100r/min ;</p><p>  (2)能夠?qū)崿F(xiàn)電機(jī)的啟/停功能;</p><p>  (3)能夠?qū)崿F(xiàn)電機(jī)的正/反轉(zhuǎn)功能;</p><p> ?。?)能夠?qū)崿F(xiàn)電機(jī)的加/減速功能。</p><

11、p>  2.2.3 設(shè)計(jì)方案論證</p><p>  (1)控制方式的確定</p><p>  步進(jìn)電機(jī)控制是一個(gè)比較精確的控制,步進(jìn)電機(jī)開環(huán)控制系統(tǒng)具有成本低、簡(jiǎn)單、控制方便等優(yōu)點(diǎn),在采用單片機(jī)的步進(jìn)電機(jī)開環(huán)系統(tǒng)中,控制系統(tǒng)的CP</p><p><b>  圖2.3</b></p><p>  脈沖的頻率或者

12、換向周期實(shí)際上就是控制步進(jìn)電機(jī)的運(yùn)行速度。系統(tǒng)可用兩種辦法實(shí)現(xiàn)步進(jìn)電機(jī)的速度控制。一種是延時(shí),一種是定時(shí)。延時(shí)方法是在每次換向之后調(diào)用一個(gè)延時(shí)子程序,待延時(shí)結(jié)束后再次執(zhí)行換向,這樣周而復(fù)始就可發(fā)出一定頻率的CP脈沖或換向周期。延時(shí)子程序的延時(shí)時(shí)間與換向程序所用的時(shí)間和,就是CP脈沖的周期,該方法簡(jiǎn)單,占用資源少,全部由軟件實(shí)現(xiàn),調(diào)用不同的子程序可以實(shí)現(xiàn)不同速度的運(yùn)行。但占用CPU時(shí)間長(zhǎng),不能在運(yùn)行時(shí)處理其他工作。因此只適合較簡(jiǎn)單的控制過

13、程。定時(shí)方法是利用單片機(jī)系統(tǒng)中的定時(shí)器定時(shí)功能產(chǎn)生任意周期的定時(shí)信號(hào),從而可方便的控制系統(tǒng)輸出CP脈沖的周期。</p><p>  (2)驅(qū)動(dòng)方式的確定</p><p>  步進(jìn)電機(jī)的驅(qū)動(dòng)一般有兩種方法,一種是通過CPU直接來驅(qū)動(dòng),這種方法一般不宜采用,因?yàn)镃PU的輸出電流脈沖是特別小的它不能足以讓步進(jìn)電機(jī)的轉(zhuǎn)動(dòng);別一種是通過CPU來間接驅(qū)動(dòng),就是把從CPU輸出的信號(hào)進(jìn)行放大,然后直接驅(qū)動(dòng)

14、或是再通過光電隔離間接來驅(qū)動(dòng)步進(jìn)電機(jī),這種方法比較安全可靠。固本次設(shè)計(jì)應(yīng)采用CPU間接驅(qū)動(dòng)步進(jìn)電機(jī)。用編碼器的測(cè)速發(fā)電機(jī)作為轉(zhuǎn)速測(cè)量工具,因?yàn)檫x擇了閉環(huán)控制,就必須有反饋元件,反饋元件一般有兩種,一種是采用同軸的測(cè)速發(fā)電機(jī),把步進(jìn)電機(jī)的轉(zhuǎn)速反饋回來,然后通過顯示器顯示出來并對(duì)步進(jìn)電機(jī)進(jìn)行調(diào)節(jié);別一種是通過光同軸的電編碼器把步進(jìn)電機(jī)的轉(zhuǎn)速反饋回來對(duì)步進(jìn)電機(jī)進(jìn)行調(diào)節(jié);兩者相比,后者的設(shè)計(jì)比較簡(jiǎn)單,價(jià)格便宜,安全可靠,污染少。固一般采用后者,

15、用光電騙碼器作為反饋元件。</p><p> ?。?)驅(qū)動(dòng)電路的選擇</p><p>  步進(jìn)電機(jī)的驅(qū)動(dòng)電路有多種,但最為常用的就是單電壓驅(qū)動(dòng)、雙電壓驅(qū)動(dòng)、斬波驅(qū)動(dòng)、細(xì)分控制驅(qū)動(dòng)等。但因本次設(shè)計(jì)對(duì)步進(jìn)電機(jī)的精度要求比較高轉(zhuǎn)速的調(diào)節(jié)范圍比較廣,固應(yīng)選用驅(qū)動(dòng)芯片8713來驅(qū)動(dòng),并通過軟件來實(shí)現(xiàn)步進(jìn)電機(jī)的調(diào)速。</p><p>  (4) 基本方案的確定</p>

16、;<p>  因本次設(shè)計(jì)的要求,選用三相雙三拍步進(jìn)電機(jī),單片機(jī)選用89C51作為控制器。選用8279來驅(qū)動(dòng)顯示和鍵盤。選用8713作為步進(jìn)電機(jī)的驅(qū)動(dòng)芯片并通過光電耦合來驅(qū)動(dòng)步進(jìn)電機(jī)。然后用與步進(jìn)電機(jī)同軸的光電編碼器作為反饋元件,并把反饋回的信號(hào)經(jīng)CPU處理后再由顯示器顯示出來。</p><p>  第三章 系統(tǒng)硬件電路設(shè)計(jì)</p><p>  3.1  單片機(jī)的選

17、擇</p><p>  本次設(shè)計(jì)以CPU選用89C5l作為步進(jìn)電機(jī)的控制芯片.89C51的結(jié)構(gòu)簡(jiǎn)單并可以在編程器上實(shí)現(xiàn)閃爍式的電擦寫達(dá)幾萬(wàn)次以上.使用方便等優(yōu)點(diǎn),而且完全兼容MCS5l系列單片機(jī)的所有功能。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—FAlsh ProgrAmmABle And ErAsABle ReAd Only Memory)的低電壓,高性能CMOS8位微處理器,俗

18、稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案</p><p>  3.1.1單片機(jī)的引腳功能</p><p> ?。?)VCC(40):電源+5V。(2)VSS(20):接地,

19、也就是GND。(3)XTL1(19)和XTL2(18):振蕩電路。單片機(jī)是一種時(shí)序電路,必須有脈沖信號(hào)才能工作,在它的內(nèi)部有一個(gè)時(shí)鐘產(chǎn)生電路,有兩種振蕩方式,一種是內(nèi)部振蕩方式,只要接上兩個(gè)電容和一個(gè)晶振即可;另一種是外部振蕩方式,采用外部振蕩方式時(shí),需在XTL2上加外部時(shí)鐘信號(hào)。</p><p>  (4)PSEN(29):片外ROM選通信號(hào),低電平有效。(5)ALE/PROG(30):地址鎖存信號(hào)輸出端/

20、EPROM編程脈沖輸入端。(6)RST/VPD(9):復(fù)位信號(hào)輸入端/備用電源輸入端。 (7)EA/VPP(31):內(nèi)/外部ROM選擇端                         

21、      (8)P0口(39-32):雙向I/O口。</p><p> ?。?)P1口(1-8):準(zhǔn)雙向通用I/0口。(10)P2口(21-28):準(zhǔn)雙向I/0口。</p><p>  3.1.2  主要特性: </p><p>  與MCS-51 兼容 4K字節(jié)可編程閃爍存儲(chǔ)器 壽命:1000寫/擦

22、循環(huán)數(shù)據(jù)保留時(shí)間:全靜態(tài)工作:0Hz-24Hz三級(jí)程序存儲(chǔ)器鎖定、128*8位內(nèi)部RAM、32可編程I/O線、兩個(gè)16位定時(shí)器/計(jì)數(shù)器、5個(gè)中斷源、可編程串行通道、低功耗的閑置和掉電模式、片內(nèi)振蕩器和時(shí)鐘電路 </p><p> ?。?)振蕩器特性:  XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有

23、余輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。</p><p>  (2)芯片擦除:  整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件

24、下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止。</p><p>  3.2  步進(jìn)電機(jī)的選擇</p><p>  因本次設(shè)計(jì)的要求,步進(jìn)電機(jī)應(yīng)選用三相雙三拍的步進(jìn)電機(jī),具體說明如下:</p><p&

25、gt;  三相雙三拍控制模型:</p><p><b>  正轉(zhuǎn)控制模型</b></p><p><b>  反轉(zhuǎn)控制模型</b></p><p>  控制繞組的通電方式為AB-BC-CA-AB 或AB-CA-BC-AB,每拍同時(shí)有兩相繞組通電,三拍為一個(gè)循環(huán),當(dāng)A 、B 兩相控制繞組同時(shí)通電時(shí),轉(zhuǎn)子齒的位置應(yīng)同時(shí)考慮到兩

26、對(duì)定子極的作用,只有A 相極和B 相極對(duì)轉(zhuǎn)子齒所產(chǎn)生的磁拉力相平衡才是轉(zhuǎn)子的平衡位置。雙三拍運(yùn)行時(shí)的步距角是30°,但雙三拍運(yùn)行時(shí)每一拍總有一相繞組持續(xù)通電,例如由A、 B 兩相通電變?yōu)锽、 C 兩相通電時(shí),B 相保持持續(xù)通電狀態(tài),C 相磁拉力使轉(zhuǎn)子逆時(shí)針方向轉(zhuǎn)動(dòng),而B 相磁拉力卻起有阻止轉(zhuǎn)子繼續(xù)向前轉(zhuǎn)動(dòng)的作用。</p><p>  3.3 步進(jìn)電機(jī)與微型機(jī)接口電路</p><p&g

27、t;  因?yàn)椴竭M(jìn)電機(jī)工作時(shí)的驅(qū)動(dòng)電流比單片機(jī)端口所能提供的要大得多.單片機(jī)要控制電機(jī)的運(yùn)動(dòng)就不能直接將端口與電機(jī)各相相連,必須使用一定的接口電路和驅(qū)動(dòng)電路。接口電路一般為鎖存器,也有使用可編程接口芯片,如8255。驅(qū)動(dòng)器多選用大功率復(fù)合管。當(dāng)然,考慮到實(shí)際使用中的干擾和電壓安全,一般都要在單片機(jī)與驅(qū)動(dòng)器之間使用必要的光電隔離器。</p><p><b>  圖3.1</b></p>

28、;<p>  在圖3.1中,若P1.2口輸出為0時(shí),發(fā)光二極管不會(huì)發(fā)光.此時(shí)光敏管處于截止?fàn)顟B(tài),而達(dá)林頓管導(dǎo)通.所以C相通電:反之,P1.2輸出為1時(shí),由電路分析可知C相不通電。如按前面所示的表取控制數(shù),按順序執(zhí)行,就可以使步進(jìn)電機(jī)安一定的方向步進(jìn)。</p><p>  第四章 系統(tǒng)軟件程序設(shè)計(jì)</p><p>  步進(jìn)電機(jī)控制程序就是完成環(huán)形分配器的任務(wù),從而控制步進(jìn)電機(jī)

29、轉(zhuǎn)動(dòng),以達(dá)到控制轉(zhuǎn)動(dòng)角度和位移之目的。首先要進(jìn)行旋轉(zhuǎn)方向的判斷,然后轉(zhuǎn)到相應(yīng)的控制程序。正反向控制程序分別按要求的控制順序輸出相應(yīng)的控制模型,再加上脈寬延時(shí)程序即可。脈沖序列的個(gè)數(shù)可以用寄存器CL進(jìn)行計(jì)數(shù)??刂颇P涂梢砸粤⒓磾?shù)的形式一一給出??刂茦?biāo)志單元FLAG為00H時(shí),表示正轉(zhuǎn);為01H時(shí),表示反轉(zhuǎn)。其程序流程圖如下圖所示:</p><p>  圖4.1 程序流程圖</p><p>&

30、lt;b>  程序編寫:</b></p><p>  D0 EQU 0</p><p>  D2 EQU 2 </p><p><b>  ORG 0000H</b></p><p>  START: LJMP MAIN</p><p>  ORG

31、 0003H</p><p>  LJMP INT0</p><p>  ORG 0100H</p><p>  MAIN: MOV P2,#00H ;等待信號(hào)</p><p>  MOV P0,#FFH</p><p>  MOV R2,#0</p><p>

32、;  MOV R3,#0</p><p>  MOV R4,#0 </p><p>  CLR IT0</p><p><b>  SETB EA</b></p><p>  SETB EX0</p><p>  LJMP MAIN</p>&

33、lt;p>  INT0: JNB P2.0,ZHENG;正轉(zhuǎn)</p><p>  JNB P2.1,FAN ;反轉(zhuǎn)</p><p>  JNB P2.2,JIA ;加</p><p>  JNB P2.3,JIAN ;減速速</p><p>  JNB P2.4,TIN ;停</p>

34、<p><b>  RETI</b></p><p>  ZHENG: MOV R2,#1 ;正轉(zhuǎn)</p><p>  MOV DPTR,CHA</p><p>  MOV A,D0</p><p>  MOVC A,@A+DPTR</p><p>  MO

35、V P0,A </p><p>  ACALL YAN0</p><p>  CPL P0.0</p><p>  CPL P0.2</p><p>  ACALL YAN0</p><p>  CPL P0.0</p><p>  CPL P0.1

36、</p><p>  ACALL YAN0</p><p>  LJMP ZHENG</p><p>  FAN: MOV R2,#0 ;反轉(zhuǎn)</p><p>  MOV DPTR,CHA</p><p>  MOV A,D2</p><p>  MOVC

37、A,@A+DPTR</p><p>  MOV P0,A</p><p>  ACALL YAN0</p><p>  CPL P0.0</p><p>  CPL P0.1</p><p>  ACALL YAN0</p><p>  CPL P0.0</p&

38、gt;<p>  CPL P0.2</p><p>  LJMP FAN</p><p>  ZHENG1:MOV DPTR,CHA ;加減速正轉(zhuǎn)</p><p>  MOV A,D0</p><p>  MOVC A,@A+DPTR</p><p>  MOV P0,A

39、</p><p>  CJNE R3,#0,YIA1</p><p>  CJNE R4,#0,YIA2 </p><p>  CPL P0.0</p><p>  CPL P0.2</p><p>  CJNE R3,#0,YIA1</p><p>  CJ

40、NE R4,#0,YIA2 </p><p>  CPL P0.0</p><p>  CPL P0.1</p><p>  CJNE R3,#0,YIA1</p><p>  CJNE R4,#0,YIA2 </p><p>  LJMP ZHENG</p><p&

41、gt;  FAN1: MOV DPTR,CHA ;加減速反轉(zhuǎn)</p><p>  MOV A,D2</p><p>  MOVC A,@A+DPTR</p><p>  MOV P0,A</p><p>  CJNE R3,#0,YIA1</p><p>  CJNE R4,#0,

42、YIA2 </p><p>  CPL P0.0</p><p>  CPL P0.1</p><p>  CJNE R3,#0,YIA1</p><p>  CJNE R4,#0,YIA2 </p><p>  CPL P0.0</p><p>  C

43、PL P0.2</p><p>  CJNE R3,#0,YIA1</p><p>  CJNE R4,#0,YIA2 </p><p>  LJMP FAN1</p><p>  JIA: MOV R3,#1 ;加速</p><p>  MOV R4,#0</p>

44、;<p>  CJNE R2,#0,ZHENG1</p><p>  LCALL FAN </p><p>  JIAN: MOV R4,#1 ;減速</p><p>  MOV R3,#0</p><p>  CJNE R2,#0,ZHENG</p><p><

45、;b>  LCALL FAN</b></p><p>  TIN: LCALL MAIN ;停 </p><p>  YAN0: MOV R0,#25</p><p>  LOOP00:MOV R1,#100</p><p>  LOOP01:DJNZ R1,LOOP01</p>

46、;<p>  DJNZ R0,LOOP00</p><p><b>  RET</b></p><p>  YAN1: MOV R0,# 20 </p><p>  LOOP10:MOV R1,#100</p><p>  LOOP11:DJNZ R1,LOOP11<

47、/p><p>  DJNZ R0,LOOP10</p><p><b>  RET</b></p><p>  YAN2: MOV R0,#30 </p><p>  LOOP20:MOV R1,#100</p><p>  LOOP21:DJNZ R1,LOOP2

48、1</p><p>  DJNZ R0,LOOP20 </p><p>  CHA: DB 03H,06H,05H</p><p><b>  END</b></p><p><b>  第五章 心得體會(huì)</b></p><p>  通過這次的計(jì)

49、算機(jī)控制技術(shù)的課程設(shè)計(jì),我對(duì)步進(jìn)電動(dòng)機(jī)有了深入的了解,平時(shí)我們接觸的電動(dòng)機(jī)主要是直流電動(dòng)機(jī)和交流電動(dòng)機(jī),很少見到步進(jìn)電動(dòng)機(jī),所以對(duì)于步進(jìn)電動(dòng)機(jī)比較陌生。通過老師指導(dǎo),然后自己在課后翻閱書籍和上網(wǎng),搜集到了不少有關(guān)步進(jìn)電動(dòng)機(jī)的知識(shí)。通過鉆研這些知識(shí),我總算對(duì)步進(jìn)電機(jī)有了認(rèn)識(shí),但是這離課程設(shè)計(jì)需要掌握的知識(shí)相差甚遠(yuǎn),為了縮短這種差距,我只能不斷的向老師和同學(xué)請(qǐng)教,然后仔細(xì)的揣摩。在這次課程設(shè)計(jì)中,通過用單片機(jī)控制步進(jìn)電機(jī)的正、反轉(zhuǎn),加、減速

50、,我也對(duì)單片機(jī)的知識(shí)也進(jìn)行了復(fù)習(xí)和鞏固。那時(shí)候覺得學(xué)習(xí)單片機(jī)是那么的枯燥乏味,整天只是學(xué)習(xí)這個(gè)指令做什么,那個(gè)指令做什么,覺得學(xué)了一點(diǎn)用都沒有。但是今天我才發(fā)現(xiàn),學(xué)習(xí)單片機(jī)是那么的有用處,它可以控制步進(jìn)電機(jī)的旋轉(zhuǎn)、加減速、停止,也可以控制十字路口的交通燈,還可以控制機(jī)械手工作。俗話說的好,實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),學(xué)習(xí)再多的理論也只能紙上談兵,只有把理論應(yīng)用到實(shí)踐中,才能檢驗(yàn)出理論的真?zhèn)巍倪@次的課程設(shè)計(jì),我也發(fā)現(xiàn)自己在好多地方的不足,

51、在以后的學(xué)習(xí)和工作中,我會(huì)努力去彌補(bǔ)這些不足,爭(zhēng)取讓自己不要被社會(huì)淘汰。</p><p><b>  第六章 參考文獻(xiàn)</b></p><p>  [1]溫希東,路勇. 計(jì)算機(jī)控制技術(shù). 西安電子科技大學(xué)出版社,2005 69~80</p><p>  [2]曹天漢. 單片機(jī)原理與接口技術(shù). 電子工業(yè)出版社,2006

52、 96~111</p><p>  [3]曹承志. 電機(jī)拖動(dòng)與控制. 機(jī)械工業(yè)出版社,2000 267~277</p><p>  摘要:步進(jìn)電動(dòng)機(jī)是一種將脈沖信號(hào)變換成相應(yīng)的角位移(或線位移)的電磁裝置,是一種特殊的電動(dòng)機(jī)。由于其精確性以及其良好的性能在實(shí)際當(dāng)中得到了廣泛的應(yīng)用。本文介紹了以51系列單片機(jī)AT89S52為控制核心所設(shè)計(jì)的步進(jìn)電機(jī)(型號(hào)42B

53、YG016)控制系統(tǒng),從系統(tǒng)的硬件電路以及軟件的設(shè)計(jì)方面實(shí)現(xiàn)了對(duì)步進(jìn)電機(jī)的控制。并且由傳感器EE-EX672采集轉(zhuǎn)速數(shù)據(jù)進(jìn)而進(jìn)行關(guān)于速度的閉環(huán)控制,經(jīng)過實(shí)際應(yīng)用電路證明,該仿真控制系統(tǒng)的隨動(dòng)性能好,抗干擾能力強(qiáng),穩(wěn)定性好。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī)、步進(jìn)電機(jī)、光電開關(guān)、PID算法、閉環(huán)控制</p><p><b>  一、步進(jìn)電機(jī)</b></p>

54、<p>  1.1 步進(jìn)電機(jī)的工作原理</p><p>  步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的執(zhí)行機(jī)構(gòu)。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個(gè)脈沖信號(hào),電機(jī)則轉(zhuǎn)過一個(gè)步距角。這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無累積誤差等特點(diǎn),使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變的非常的簡(jiǎn)單。</p>

55、<p>  1.2 步進(jìn)電機(jī)的特點(diǎn)</p><p>  本實(shí)驗(yàn)所用的步進(jìn)電機(jī)為感應(yīng)子式步進(jìn)電機(jī)(型號(hào)為42BYG016)。感應(yīng)子式步進(jìn)電機(jī)與傳統(tǒng)的反應(yīng)式步進(jìn)電機(jī)相比,結(jié)構(gòu)上轉(zhuǎn)子加有永磁體,以提供軟磁材料的工作點(diǎn),而定子激磁只需提供變化的磁場(chǎng)而不必提供磁材料工作點(diǎn)的耗能,因此該電機(jī)效率高,電流小,發(fā)熱低。因永磁體的存在,該電機(jī)具有較強(qiáng)的反電勢(shì),其自身阻尼作用比較好,使其在運(yùn)轉(zhuǎn)過程中比較平穩(wěn)、噪音低、低頻

56、振動(dòng)小。</p><p>  感應(yīng)子式步進(jìn)電機(jī)某種程度上可以看作是低速同步電機(jī)。一個(gè)四相電機(jī)可以作四相運(yùn)行,也可以作二相運(yùn)行。(必須采用雙極電壓驅(qū)動(dòng)),而反應(yīng)式電機(jī)則不能如此。例如:四相八拍運(yùn)行(A-AB-B-BC-C-CD-D-DA-A)完全可以采用二相八拍運(yùn)行方式.不難發(fā)現(xiàn)其條件為C=,D=. 一個(gè)二相電機(jī)的內(nèi)部繞組與四相電機(jī)完全一致,小功率電機(jī)一般直接接為二相,而功率大一點(diǎn)的電機(jī),為了方便使用,靈活改變電機(jī)

57、的動(dòng)態(tài)特點(diǎn),往往將其外部接線為八根引線(四相),這樣使用時(shí),既可以作四相電機(jī)使用,可以作二相電機(jī)繞組串聯(lián)或并聯(lián)使用。(本實(shí)驗(yàn)采用兩相四拍)</p><p>  1.3 步進(jìn)電機(jī)的靜態(tài)指標(biāo)</p><p>  相數(shù):產(chǎn)生不同對(duì)極N、S磁場(chǎng)的激磁線圈對(duì)數(shù)。常用m表示。</p><p>  拍數(shù):完成一個(gè)磁場(chǎng)周期性變化所需脈沖數(shù)或?qū)щ姞顟B(tài)用n表示,或指電機(jī)轉(zhuǎn)過一個(gè)齒距角所

58、需脈沖數(shù),以四相電機(jī)為例,有四相四拍運(yùn)行方式即AB-BC-CD-DA-AB,四相八拍運(yùn)行方式即 A-AB-B-BC-C-CD-D-DA-A.</p><p>  步距角:對(duì)應(yīng)一個(gè)脈沖信號(hào),電機(jī)轉(zhuǎn)子轉(zhuǎn)過的角位移用θ表示。θ=360度(轉(zhuǎn)子齒數(shù)J*運(yùn)行拍數(shù)),以常規(guī)二、四相,轉(zhuǎn)子齒為50齒電機(jī)為例。四拍運(yùn)行時(shí)步距角為θ=360度/(50*4)=1.8度(俗稱整步),八拍運(yùn)行時(shí)步距角為θ=360度/(50*8)=0.9

59、度(俗稱半步)。</p><p>  1.4 步進(jìn)電機(jī)的動(dòng)態(tài)指標(biāo)</p><p>  1)步距角精度: 步進(jìn)電機(jī)每轉(zhuǎn)過一個(gè)步距角的實(shí)際值與理論值的誤差。用百分比表示:誤差步距角*100%。不同運(yùn)行拍數(shù)其值不同,四拍運(yùn)行時(shí)應(yīng)在5%之內(nèi),八拍運(yùn)行時(shí)應(yīng)在15%以內(nèi)。 2)失步: 電機(jī)運(yùn)轉(zhuǎn)時(shí)運(yùn)轉(zhuǎn)的步數(shù),不等于理論上的步數(shù)。稱之為失步。 3)失調(diào)角: 轉(zhuǎn)子齒軸線偏移定

60、子齒軸線的角度,電機(jī)運(yùn)轉(zhuǎn)必存在失調(diào)角,由失調(diào)角產(chǎn)生的誤差,采用細(xì)分驅(qū)動(dòng)是不能解決的。 4)最大空載起動(dòng)頻率: 電機(jī)在某種驅(qū)動(dòng)形式、電壓及額定電流下,在不加負(fù)載的情況下,能夠直接起動(dòng)的最大頻率。 5)最大空載的運(yùn)行頻率: 電機(jī)在某種驅(qū)動(dòng)形式,電壓及額定電流下,電機(jī)不帶負(fù)載的最高轉(zhuǎn)速頻率。 6)運(yùn)行矩頻特性:</p><p>  電機(jī)在某種測(cè)試條件下測(cè)得運(yùn)行中輸出力矩與頻率關(guān)系的曲線稱為運(yùn)行

61、矩頻特性,這是電機(jī)諸多動(dòng)態(tài)曲線中最重要的,也是電機(jī)選擇的根本依據(jù)。</p><p>  1.5 步進(jìn)電機(jī)的驅(qū)動(dòng)控制系統(tǒng)</p><p>  控制系統(tǒng)的組成方框圖如下:</p><p><b>  1)脈沖信號(hào)的產(chǎn)生</b></p><p>  脈沖信號(hào)由單片機(jī)AT89S52的I/O口產(chǎn)生,一般的脈沖信號(hào)的占空比為0.3-

62、0.4左右,電機(jī)轉(zhuǎn)速越高,占空比則越大。本實(shí)驗(yàn)采用的占空比為0.5。</p><p><b>  2)信號(hào)分配</b></p><p>  感應(yīng)子式不僅以二、四相電機(jī)為主,二相電機(jī)工作方式有二相四拍和二相八拍兩種, 具體分配如下:二相四拍為,步距角為1.8度;二相八拍為,步距角為0.9度。本設(shè)計(jì)采用步距角為1.8度。</p><p><b

63、>  3)功率放大</b></p><p>  功率放大是驅(qū)動(dòng)系統(tǒng)最為重要的部分。步進(jìn)電機(jī)在一定轉(zhuǎn)速下的轉(zhuǎn)矩取決于它的動(dòng)態(tài)平均電流而非靜態(tài)電流(而樣本上的電流均為靜態(tài)電流)。平均電流越大電機(jī)力矩越大,要達(dá)到平均電流大這就需要驅(qū)動(dòng)系統(tǒng)盡量克服電機(jī)的反電勢(shì)。因而不同的場(chǎng)合采取不同的的驅(qū)動(dòng)方式,到目前為止,驅(qū)動(dòng)方式一般有以下幾種:恒壓、恒壓串電阻、高低壓驅(qū)動(dòng)、恒流、細(xì)分?jǐn)?shù)等。</p>&

64、lt;p>  步進(jìn)電機(jī)一經(jīng)定型,其性能取決于電機(jī)的驅(qū)動(dòng)電源。步進(jìn)電機(jī)轉(zhuǎn)速越高,力距越大則要求電機(jī)的電流越大,驅(qū)動(dòng)電源的電壓越高。電壓對(duì)力矩影響如下:</p><p>  4)功率放大細(xì)分驅(qū)動(dòng)器      </p><p>  在步進(jìn)電機(jī)步距角不能滿足使用的條件下,可采用細(xì)分驅(qū)動(dòng)器來驅(qū)動(dòng)步進(jìn)電機(jī),細(xì)分驅(qū)動(dòng)器的原理是通過改變相鄰(A,B)

65、電流的大小,以改變合成磁場(chǎng)的夾角來控制步進(jìn)電機(jī)運(yùn)轉(zhuǎn)的。</p><p><b>  二、驅(qū)動(dòng)器</b></p><p>  由于單片機(jī)的I/O不具有直接驅(qū)動(dòng)步進(jìn)電機(jī)的能力,故在本系統(tǒng)中需要步進(jìn)電機(jī)驅(qū)動(dòng)器,我們選擇驅(qū)動(dòng)器為KD-221,該驅(qū)動(dòng)器具有輸入電壓范圍廣,控制信號(hào)輸入方式多樣等特點(diǎn)。其具體接法如下:</p><p><b>  

66、2.1、電源接線:</b></p><p> ?、?、E高:當(dāng)驅(qū)動(dòng)電壓大于10V時(shí),正極接此座,使用時(shí)最大不能大于40V,以防損壞模塊。 </p><p> ?、?、E低:當(dāng)驅(qū)動(dòng)電壓小于10V時(shí),正極接此座。</p><p> ?、?、地:驅(qū)動(dòng)電壓E高、E低的的負(fù)極接此座。</p><p> ?、?、A ,:接電機(jī)A相線圈的二根引線。&l

67、t;/p><p> ?、?、B, :接電機(jī)B相線圈的二根引線。</p><p>  2.2、控制信號(hào)接線:</p><p>  ①、CP:接控制器發(fā)給步進(jìn)電機(jī)的走步脈沖信號(hào)線。</p><p> ?、?、CW:接控制器發(fā)給步進(jìn)電機(jī)的走步方向信號(hào)線。</p><p> ?、?、VP:接CP和CW信號(hào)的負(fù)極,即邏輯電路電源的負(fù)極。&

68、lt;/p><p>  ④、本驅(qū)動(dòng)器內(nèi)部設(shè)計(jì)接收信號(hào)為RTTL電平,即5V電平,如其它邏輯電平信號(hào)需要接限流電阻,否則可能損壞光耦元件。</p><p><b>  三、光電開關(guān)</b></p><p>  本系統(tǒng)中所用傳感器為EE-EX672關(guān)電開關(guān),該傳感器為開關(guān)型傳感器,四個(gè)接線腳分別為“+,L,OUT,-”其輸入電壓范圍廣為直流5-24V,

69、L為控制指示端,當(dāng)“L”與“+”相連時(shí),傳感器未檢測(cè)到物體時(shí)LED燈發(fā)光,當(dāng)“L”懸空時(shí)則相反,其特點(diǎn)為:</p><p>  動(dòng)作模式備有遮光時(shí)ON/入光時(shí)ON(可切換型)</p><p>  應(yīng)答頻率為1KHZ的高速響應(yīng)</p><p>  入光顯示燈明顯,容易進(jìn)行動(dòng)作確認(rèn).</p><p>  電源電壓為DC-24V的廣范圍</p

70、><p>  備有遮光時(shí)入光顯示燈燈亮型</p><p>  其連接電路如下圖所示:</p><p>  “L”與“+”相連時(shí),傳感器未檢測(cè)到物體時(shí)LED燈發(fā)光。</p><p>  “L”懸空傳感器檢測(cè)到物體時(shí)LED燈發(fā)光。</p><p>  四、硬件設(shè)計(jì)電路圖 </p><p&g

71、t;  下圖中為單片機(jī)的最小系統(tǒng),其P0.0-P0.7口分別連接到LCD1602的D0-D7引腳,與P2.5,P2.6,P2.7相連的按鍵開關(guān)分別控制步進(jìn)電機(jī)的正反轉(zhuǎn),加速,減速,P2.0,P2.1,P2.2分別接LCD1602的RS,RW,E引腳。</p><p>  下圖中為電機(jī)驅(qū)動(dòng)部分。驅(qū)動(dòng)電壓為+12V,用單片機(jī)的P1.0與電機(jī)驅(qū)動(dòng)器的CW相連控制單片機(jī)的轉(zhuǎn)向,P1.1與電機(jī)驅(qū)動(dòng)器的CP相連,給驅(qū)動(dòng)器輸

72、入脈沖。a,b,c,d分別接入步進(jìn)電機(jī)。SX-672為檢測(cè)轉(zhuǎn)速的傳感器外接+5V驅(qū)動(dòng)電壓,輸出接入單片機(jī)的T1腳。</p><p><b>  五、軟件設(shè)計(jì)</b></p><p>  5.1 控制算法比較:</p><p>  PID控制原理PID調(diào)節(jié)器由比例調(diào)節(jié)器(P),積分調(diào)節(jié)器(I)和微分調(diào)節(jié)器(D) 構(gòu)成,它通過對(duì)偏差值的比例積分和微

73、分運(yùn)算后,用計(jì)算所得的控制量來控制被控對(duì)象.圖1所示為PID控制系統(tǒng)框圖。</p><p>  圖1 PID控制系統(tǒng)框圖</p><p>  5.1.1 比例調(diào)節(jié)(P)</p><p>  比例調(diào)節(jié)是數(shù)字控制中最簡(jiǎn)單的一種調(diào)節(jié)方法。其特點(diǎn)是調(diào)節(jié)器的輸出與控制偏差e成線性比例關(guān)系,控制規(guī)律為:</p><p><b>  (1)<

74、;/b></p><p>  式中:-比例系數(shù),-偏差e為零時(shí)調(diào)節(jié)器的輸出值. </p><p>  當(dāng)輸出值S與設(shè)定的期望值R間產(chǎn)生偏差時(shí),比例調(diào)節(jié)器會(huì)自動(dòng)調(diào)節(jié)控制變量y(如為控制閥門的開度)的大小??刂谱兞縴的大小會(huì)朝著減小偏差e的方向變化.比例系數(shù)的大小決定了比例調(diào)節(jié)器調(diào)節(jié)的快慢程度,大調(diào)節(jié)器調(diào)節(jié)的速度快,但過大會(huì)使控制系統(tǒng)出現(xiàn)超調(diào)或振蕩現(xiàn)象。小調(diào)節(jié)器調(diào)節(jié)的速度慢,但過小又起不

75、到調(diào)節(jié)作用。另外,雖然比例調(diào)節(jié)器控制規(guī)律簡(jiǎn)單,控制參數(shù)易于整定,但缺點(diǎn)是它只能在一種負(fù)載情況下實(shí)現(xiàn)無靜差值的調(diào)節(jié),當(dāng)負(fù)載變化時(shí),除非重新調(diào)整相應(yīng)的),值的大小,否則控制系統(tǒng)將會(huì)產(chǎn)生無法消除的靜差值。</p><p>  5.1.2 比例微分調(diào)節(jié)(PI)</p><p>  比例調(diào)節(jié)器的主要缺點(diǎn)是存在無法消除的靜差值,影響了調(diào)節(jié)精度.為了消除靜差值,在比例調(diào)節(jié)器的基礎(chǔ)上并人一個(gè)積分調(diào)節(jié)器構(gòu)成

76、比例積分調(diào)節(jié)器,其調(diào)節(jié)規(guī)律可用下列(2)式表示.</p><p><b>  (2)</b></p><p>  式中:為積分常數(shù),它的物理意義是當(dāng)調(diào)節(jié)器積分調(diào)節(jié)作用與比例調(diào)節(jié)作用的輸出相等時(shí)所需的調(diào)節(jié)時(shí)間稱為積分常數(shù)。積分常數(shù)的大小決定了積分作用強(qiáng)弱程度,選擇的越小,積分的調(diào)節(jié)作用越強(qiáng),但系統(tǒng)振蕩的衰減速度越慢。當(dāng) 過小時(shí),甚至?xí)斐上到y(tǒng)的持續(xù)振蕩,使調(diào)節(jié)器的輸出波

77、動(dòng)不定,給生產(chǎn)過程帶來嚴(yán)重的危害。相反地當(dāng)選擇的越大,積分的調(diào)節(jié)作用越弱,雖然過渡過程中不容易出現(xiàn)振蕩現(xiàn)象,但消除偏差e的時(shí)間卻很長(zhǎng)。積分調(diào)節(jié)對(duì)偏差有累積作</p><p>  用,所以,只要有偏差e存在積分的調(diào)節(jié)作用就會(huì)不斷地增強(qiáng),直至消除比例調(diào)節(jié)器無法消除的靜差值。</p><p>  5.1.3 比例積分微分調(diào)節(jié)(PID)</p><p>  加入積分調(diào)節(jié)后,

78、雖可消除靜差,使控制系統(tǒng)靜態(tài)特性得以改善,但由于積分調(diào)節(jié)器輸出值的大小是與偏差值e的持續(xù)時(shí)間成正比的,這樣就會(huì)使系統(tǒng)消除靜差的調(diào)節(jié)過程變慢,由此帶來的是系統(tǒng)的動(dòng)態(tài)性能變差.尤其是當(dāng)積分常數(shù)很大時(shí),情況更為嚴(yán)重。另外,當(dāng)系統(tǒng)受到?jīng)_激式偏差沖擊時(shí),由于偏差的變化率很大,而PI調(diào)節(jié)器的調(diào)節(jié)速度又很慢,這樣勢(shì)必會(huì)造成系統(tǒng)的振蕩,給生產(chǎn)過程帶來很大的危害.改善的方法是在比例積分調(diào)節(jié)的基礎(chǔ)上再加人微分調(diào)節(jié),構(gòu)成比例積分微分調(diào)節(jié)器(PID)。其調(diào)節(jié)規(guī)

79、律可用(3)式表示。</p><p><b> ?。?)</b></p><p>  式中: 為微分常數(shù),它的物理意義是當(dāng)調(diào)節(jié)器微分調(diào)節(jié)作用與比例調(diào)節(jié)作用的輸出相等時(shí)所需的調(diào)節(jié)時(shí)間稱為微分常數(shù).</p><p>  5.2 PID控制算法</p><p>  單片機(jī)控制系統(tǒng)通過A/D電路檢測(cè)輸出值s,并計(jì)算偏差e和控制變

80、量y,再經(jīng)D/A轉(zhuǎn)換后輸出給執(zhí)行機(jī)構(gòu),從而實(shí)現(xiàn)縮小或消除輸出偏差的目的,使系統(tǒng)輸出值s穩(wěn)定在給定值區(qū)域內(nèi)。在計(jì)算機(jī)控制過程中,整個(gè)計(jì)算過程采用的是數(shù)值計(jì)算方法,當(dāng)采樣周期足夠小時(shí),這種數(shù)值近似計(jì)算相當(dāng)誰(shuí)確,使離散的被控過程與連續(xù)過程相當(dāng)接近。圖2為單片機(jī)閉環(huán)控制系統(tǒng)框圖 J。PID算法是將描述連續(xù)過程的微分方程轉(zhuǎn)化為差分方程,然后,根據(jù)差分方程編制計(jì)算程序來進(jìn)行控制計(jì)算的。另外在PID控制中,由于PID算式選擇的不同,最終所得到的控制效

81、果是不同的。下面進(jìn)行PID控制算法的研究。</p><p>  圖5 單片機(jī)閉環(huán)控制系統(tǒng)框圖</p><p>  5.2.1 位置式PID的控制算法</p><p>  如前所述PID調(diào)節(jié)的微分方程為:</p><p>  將此微分方程寫成對(duì)應(yīng)的差分方程形式.</p><p><b> ?。?)</b

82、></p><p><b>  式中:</b></p><p>  -第n次采樣周期內(nèi)所獲得的偏差信號(hào);-第n-1次采樣周期內(nèi)所獲得的偏差信號(hào);T-采樣周期;-調(diào)節(jié)器第rt次控制變量的輸出;</p><p>  為了編寫計(jì)算機(jī)程序的方便,現(xiàn)將算式(4)寫成下列形式</p><p><b>  (5)<

83、;/b></p><p><b>  式中:,</b></p><p>  因?yàn)椴蓸又芷赥,積分常數(shù)和微分常數(shù)選定后皆為常數(shù),因此及必為常。當(dāng)調(diào)整參數(shù)改善控制性能時(shí),也只須調(diào)整、和的大小即可。</p><p>  5.2.2 增量式PID的控制算法</p><p>  在位置式PID控制算法中,每次的輸出與控制偏差

84、e過去整個(gè)變化過程相關(guān),這樣由于偏差的累加作用很容易產(chǎn)生較大的累積偏差,使控制系統(tǒng)出現(xiàn)不良的超調(diào)現(xiàn)象。</p><p><b>  由算式(4)可得:</b></p><p><b> ?。?)</b></p><p>  用(4)式減去(6)式,可得增量式PID的算式:</p><p><b

85、> ?。?)</b></p><p><b>  其中,</b></p><p>  為了編寫程序方便,將(7)式改寫成下列形式:</p><p><b>  (8)</b></p><p><b>  式中:,,</b></p><p&g

86、t;  從增量式PID的算式中可知,只要知道了現(xiàn)時(shí)以前的三次采樣周期內(nèi)的偏差信號(hào),,即可計(jì)算出本次采樣周期內(nèi)的控制變量y的增量。</p><p>  綜合以上分析,我們采用增量式PID算法,</p><p>  本系統(tǒng)的軟件控制算法主要采用了增量式PID 控制算法。其控制算法的流程圖為:</p><p>  5.3 步進(jìn)電機(jī)控制流程圖如下:</p>&

87、lt;p><b>  六、數(shù)據(jù)處理和分析</b></p><p><b>  1、PWM的設(shè)定</b></p><p>  我們通過設(shè)定PWM來控制步進(jìn)電機(jī)的轉(zhuǎn)速。當(dāng)T=6S時(shí),我們通過試湊的方法了解到,當(dāng)PWM=1/300時(shí),所給步進(jìn)電機(jī)剛好啟動(dòng),當(dāng)PWM=1/17時(shí),步進(jìn)電機(jī)速度達(dá)到最大。</p><p><

88、;b>  2、步進(jìn)電機(jī)的測(cè)速</b></p><p>  我們通過用軟件設(shè)定一個(gè)轉(zhuǎn)速,然后與用光電開關(guān)采集回來的速度相比較,采用閉環(huán)的PID控制來達(dá)到步進(jìn)電機(jī)穩(wěn)定調(diào)速的目的。我們?cè)诔绦蛑性O(shè)定轉(zhuǎn)速為72 rpm,通過與P3.2采集回來的數(shù)據(jù)相比較,當(dāng)采集回來的數(shù)據(jù)小于72rpm時(shí),我們通過改變PID的相應(yīng)的參數(shù)(=1.2,=1.1 ,=0.9)來調(diào)節(jié)電機(jī)的轉(zhuǎn)速,讓步進(jìn)電機(jī)的轉(zhuǎn)速加起來,使之與72

89、rpm相吻合。同樣,當(dāng)采集回來的數(shù)據(jù)大于72rpm時(shí),也改變PID的相應(yīng)的參數(shù)來調(diào)節(jié)電機(jī)的轉(zhuǎn)速,讓步進(jìn)電機(jī)的轉(zhuǎn)速加起來,使之與72 rpm相吻合。</p><p><b>  七、實(shí)驗(yàn)心得及體會(huì)</b></p><p>  通過本次課程設(shè)計(jì)我們學(xué)習(xí)到了許多書本上沒有的知識(shí),通過自己查資料和互相討論,對(duì)系統(tǒng)進(jìn)行整體設(shè)計(jì)后基本達(dá)到了要求,實(shí)現(xiàn)步進(jìn)電機(jī)速度閉環(huán)控制</

90、p><p>  并通過對(duì)系統(tǒng)控制算法的比較,綜合考慮,選用了閉環(huán)的PID控制,使我們對(duì)PID的控制有了更深刻的認(rèn)識(shí),使自己將理論與實(shí)際相結(jié)合起來同時(shí)對(duì)51系列的單片機(jī)的設(shè)計(jì)及編程有了更深的了解,學(xué)會(huì)了很多。同時(shí)衷心感謝老師的指導(dǎo)。</p><p><b>  附錄</b></p><p><b>  1.顯示及測(cè)速程序</b>

91、;</p><p>  #include < reg51.h ></p><p>  #include < intrins.h ></p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int</p><p>

92、;  float f=0;</p><p>  bit F_in=0,truer; </p><p>  sbit P10=P3^0 ;</p><p>  sbit P12=P3^2;</p><p>  //sbit P14=P1^4;</p><p>  sbit LCD_RS = P2^0;

93、 </p><p>  sbit LCD_RW = P2^1;</p><p>  sbit LCD_EN = P2^2;</p><p>  //sbit BEEP = P3^7; </p><p>  uchar code cdis1[ ] = {"motorspeed: "}; </p>

94、;<p>  uchar code cdis2[ ] = {" number: "};</p><p>  #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};</p><p>  uchar key_buf; //顯示緩存</p><p&

95、gt;  uchar temp;</p><p>  uchar key,key_num=0; </p><p>  uchar LCD0_data,LCD1_data,LCD2_data,LCD3_data; //鍵順序嗎</p><p>  uchar data testdata[] = {0x00,0x00,0x00,0x00

96、};</p><p>  uchar data in_data[] = {0x01,0x02};</p><p>  uchar shift ;</p><p><b>  uint i;</b></p><p><b>  uint q;</b></p><p><b

97、>  uint j;</b></p><p>  /********************************************************/</p><p>  void initime()</p><p><b>  {</b></p><p>  TMOD=0x51; /

98、/T1計(jì)數(shù)器,T0定時(shí)器,方式1</p><p>  TL0=(65536-10000)%256;</p><p>  TH0=(65536-10000)/256; //定時(shí)10000us0.01s</p><p><b>  TL1=0;</b></p><p><b>  TH1=0;</b&

99、gt;</p><p><b>  ET0=1;</b></p><p><b>  EA=1;</b></p><p><b>  }</b></p><p>  void delay(uint ms) </p><p><b>  {<

100、;/b></p><p><b>  uchar t;</b></p><p>  while(ms--)</p><p><b>  { </b></p><p>  for(t = 0; t < 120; t++);</p><p><b>  }&

101、lt;/b></p><p><b>  }</b></p><p>  void mydelay()</p><p><b>  {</b></p><p>  for(i=0;i<100;i++)</p><p>  for(j=0;j<1000;j+

102、+);</p><p><b>  }</b></p><p>  /*************************************************************/</p><p>  /* */&l

103、t;/p><p>  /* 延時(shí) x*0.14ms */</p><p>  /* */</p><p>  /****************************

104、*********************************/</p><p>  void delay0(uchar x) </p><p><b>  {</b></p><p>  unsigned char i;</p><p>  while(x--)</p><p><

105、;b>  {</b></p><p>  for (i = 0; i<13; i++) {}</p><p><b>  }</b></p><p><b>  }</b></p><p>  bit lcd_busy()</p><p>  {

106、 </p><p>  bit result;</p><p>  LCD_RS = 0;</p><p>  LCD_RW = 1;</p><p>  LCD_EN = 1;</p><p>  delayNOP();</p><p>  resu

107、lt = (bit)(P0&0x80);</p><p>  LCD_EN = 0;</p><p>  return(result); </p><p><b>  }</b></p><p>  void lcd_wdat(uchar dat)</p><p>  {

108、 </p><p>  while(lcd_busy());</p><p>  LCD_RS = 1;</p><p>  LCD_RW = 0;</p><p>  LCD_EN = 0;</p><p><b>  P0 = dat;</b></p>

109、;<p>  delayNOP();</p><p>  LCD_EN = 1;</p><p>  delayNOP();</p><p>  LCD_EN = 0; </p><p><b>  }</b></p><p>  void lcd_wcmd(uchar cmd)&l

110、t;/p><p>  { </p><p>  while(lcd_busy());</p><p>  LCD_RS = 0;</p><p>  LCD_RW = 0;</p><p>  LCD_EN = 0;</p><p><b>

111、;  _nop_();</b></p><p><b>  _nop_(); </b></p><p><b>  P0 = cmd;</b></p><p>  delayNOP();</p><p>  LCD_EN = 1;</p><p>  delayN

112、OP();</p><p>  LCD_EN = 0; </p><p><b>  }</b></p><p>  void lcd_pos(uchar pos)</p><p>  { </p><p>  lcd_wcmd(pos | 0x

113、80); //數(shù)據(jù)指針=80+地址變量</p><p><b>  }</b></p><p>  void dectobit(int dec)</p><p>  { </p><p>  LCD3_data=dec/1000+0x30;</p><p>  dec=dec

114、% 1000;</p><p>  LCD2_data=dec/100;</p><p>  dec=dec % 100;</p><p>  LCD1_data=dec/10+0x30;</p><p>  dec=dec % 10+0x30;</p><p>  LCD0_data=dec; &l

115、t;/p><p><b>  }</b></p><p>  void display1()</p><p><b>  {</b></p><p>  lcd_pos(0x0b);</p><p>  lcd_wdat(LCD3_data); </p><p

116、>  lcd_pos(0x0c);</p><p>  lcd_wdat(LCD2_data); </p><p>  lcd_pos(0x0d);</p><p>  lcd_wdat(LCD1_data); </p><p>  lcd_pos(0x0e);</p><p>  lcd_wdat(LCD0_d

117、ata); </p><p>  lcd_pos(0x4b);</p><p>  lcd_wdat(0x31); </p><p><b>  } </b></p><p>  void lcd_init()</p><p><b>  { </b>

118、</p><p>  delay(15); </p><p>  lcd_wcmd(0x38); //16*2顯示,5*7點(diǎn)陣,8位數(shù)據(jù)</p><p><b>  delay(5);</b></p><p>  lcd_wcmd(0x38); </p&

119、gt;<p><b>  delay(5);</b></p><p>  lcd_wcmd(0x38); </p><p><b>  delay(5);</b></p><p>  lcd_wcmd(0x0c); //顯示開,關(guān)光標(biāo)</p><p><

120、b>  delay(5);</b></p><p>  lcd_wcmd(0x06); //移動(dòng)光標(biāo)</p><p><b>  delay(5);</b></p><p>  lcd_wcmd(0x01); //清除LCD的顯示內(nèi)容</p><p><b>  delay

121、(5);</b></p><p><b>  }</b></p><p>  /*************************************************************/ </p><p>  Void main()</p><p><b>  {</b>

122、;</p><p><b>  uchar m;</b></p><p>  lcd_init(); </p><p>  initime();</p><p><b>  TR0=1;</b></p><p>  TR1=1; //初始化L

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論