緒論 1.1 步進(jìn)電機(jī)國(guó)內(nèi)外研究現(xiàn)狀 步進(jìn)電動(dòng)機(jī)是一種新型增量式電機(jī),是數(shù)字控制系統(tǒng)的一種執(zhí)行元件。它是利用電脈沖信號(hào)進(jìn)行控制,將電脈沖信號(hào)轉(zhuǎn)換成相應(yīng)的角位移或線位移的電動(dòng)機(jī)。它的位移與輸入脈沖信號(hào)相對(duì)應(yīng),步矩誤差不長(zhǎng)期積累,不需用電刷,電機(jī)本體部件少,易于啟停、正反轉(zhuǎn)及變速。用步進(jìn)電機(jī)作為驅(qū)動(dòng)裝置構(gòu)成的控制系統(tǒng),具有成本低,控制簡(jiǎn)單,容易維護(hù)等優(yōu)點(diǎn)。步進(jìn)電動(dòng)機(jī)問(wèn)世后,廣泛地應(yīng)用在等各個(gè)領(lǐng)域。做為機(jī)床控制、電子瞄準(zhǔn)、工業(yè)自動(dòng)化、辦公自動(dòng)化和機(jī)器人運(yùn)動(dòng)控制中應(yīng)用的重要執(zhí)行部件,顯示出廣闊的發(fā)展前景。 步進(jìn)電動(dòng)機(jī)有多種不同的結(jié)構(gòu)。經(jīng)過(guò)近七十多年的發(fā)展,逐漸形成以混合式和反應(yīng)式為主的產(chǎn)品格局;旌鲜讲竭M(jìn)電動(dòng)機(jī)是在同步電動(dòng)機(jī)或者說(shuō)是在永磁感應(yīng)子式同步電動(dòng)機(jī)的基礎(chǔ)上發(fā)展起來(lái)的。既有反應(yīng)式步進(jìn)電動(dòng)機(jī)基于氣隙磁導(dǎo)變化的特征,又有軸向恒定磁場(chǎng)的永磁式步進(jìn)電動(dòng)機(jī)的特征。其綜合了該兩類步進(jìn)電動(dòng)機(jī)的特點(diǎn),因而性能更好。具有分辨率高,控制功率小等優(yōu)點(diǎn),是應(yīng)用最為廣泛的步進(jìn)電動(dòng)機(jī)種類,至今沒(méi)發(fā)現(xiàn)更合適取代它的產(chǎn)品。缺點(diǎn)是帶慣性負(fù)載能力差,低頻振蕩現(xiàn)象嚴(yán)重,高頻運(yùn)行時(shí)輸出轉(zhuǎn)矩下降。 國(guó)外步進(jìn)電動(dòng)機(jī)研究較早,對(duì)步進(jìn)電機(jī)驅(qū)動(dòng)技術(shù)的研究一直很活躍,如今正在研究開(kāi)發(fā)以步進(jìn)電動(dòng)機(jī)為執(zhí)行機(jī)構(gòu)的高性能伺服系統(tǒng)。目前,這類電動(dòng)機(jī)最大的生產(chǎn)國(guó)還是日本。日本有很多公司生產(chǎn),像JAPAN SERVO,SANYO DENKI等。它們的產(chǎn)品無(wú)論是外觀質(zhì)量,內(nèi)部性能指標(biāo),還是生產(chǎn)手段,都處于世界先進(jìn)水平。而在我國(guó),步進(jìn)電動(dòng)機(jī)的研制最早始于1958年。經(jīng)過(guò)五十年的發(fā)展,目前發(fā)展趨于平緩,與國(guó)外相比,反應(yīng)式步進(jìn)電動(dòng)機(jī)還占大量比例,只是隨著近年來(lái)大批進(jìn)口設(shè)備大量涌入我國(guó),而這些設(shè)備大多數(shù)采用了混合式步進(jìn)電動(dòng)機(jī),混合式步進(jìn)電動(dòng)機(jī)才為人們所熟悉。在國(guó)外,特別是工業(yè)比較發(fā)達(dá)的國(guó)家,步進(jìn)電動(dòng)機(jī)及其驅(qū)動(dòng)技術(shù)早已規(guī)模化生產(chǎn),我國(guó)與之相比還有相當(dāng)大的差距。雖然我國(guó)在該類電機(jī)的研制和生產(chǎn)上已形成一定規(guī)模,但生產(chǎn)規(guī)模較小,未形成商品化和系列化,僅處于按用戶要求研制定制階段,與國(guó)外產(chǎn)品相比尚無(wú)競(jìng)爭(zhēng)能力。從步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)技術(shù)發(fā)展歷史來(lái)看,步進(jìn)電動(dòng)機(jī)的相數(shù)不同,有2相、3相、4相、5相、9相等。齒數(shù)也不同,使得產(chǎn)品規(guī)格品種繁多,生產(chǎn)格局復(fù)雜化,對(duì)用戶選擇不利。然而由于步進(jìn)電動(dòng)機(jī)和其它電機(jī)有著很大的差別,具有其它電機(jī)所沒(méi)有的特性。因此,它仍然能根據(jù)市場(chǎng)的需求,沿著小型化、高效、低價(jià)的方向發(fā)展. 步進(jìn)電動(dòng)機(jī)的使用性能與它的驅(qū)動(dòng)電路有密切的關(guān)系,隨著電力電子技術(shù)及微電子技術(shù)及其器件的發(fā)展,驅(qū)動(dòng)器的面貌不斷改變。最初使用的末級(jí)功放元件是可控硅?煽毓桦m然觸發(fā)簡(jiǎn)單,但關(guān)斷困難,總的來(lái)說(shuō)線路較復(fù)雜、易形成誤觸發(fā)、可靠性也差;且不便于調(diào)試和維護(hù)、抗干擾能力不好。但隨著大功率晶體管的發(fā)展目前一般不再采用末級(jí)功放元件來(lái)驅(qū)動(dòng)控制步進(jìn)電動(dòng)機(jī)。目前,功率開(kāi)關(guān)管多采用功率場(chǎng)控晶體管(MOSFET)和全控型器件(IGBT)。功率集成電路(PIC)將功率器件、前級(jí)驅(qū)動(dòng)電路、控制電路及保護(hù)電路等都集成在一起,具有較強(qiáng)的功能和較大的輸出功率。用這種器件做成步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)器,具有結(jié)構(gòu)簡(jiǎn)單、性能穩(wěn)定及運(yùn)行可靠等優(yōu)點(diǎn)。目前已應(yīng)用于中、小功率步進(jìn)電動(dòng)機(jī)的驅(qū)動(dòng)。驅(qū)動(dòng)器控制電路發(fā)展的一個(gè)重要方面是集成電路專用芯片的采用。如F/V變換器(LM2917),V/W變換器(SG3525,TL494),微步控制與功率器件集成在一起的芯片(A3955SB)等,更使步進(jìn)電機(jī)驅(qū)動(dòng)器的研制上了一個(gè)新臺(tái)階,使其性能指標(biāo)有了顯著的提高。使步進(jìn)電動(dòng)機(jī)的控制系統(tǒng)達(dá)到了一個(gè)新的水平。其它一些控制技術(shù),如矢量控制,模糊控制,神經(jīng)網(wǎng)絡(luò)控制等也獲得了飛速發(fā)展和應(yīng)用。步進(jìn)電動(dòng)機(jī)今后的發(fā)展,依賴于新材料的應(yīng)用,設(shè)計(jì)手段的完善,以及與驅(qū)動(dòng)技術(shù)的最佳配合。首先,精確的分析和設(shè)計(jì),模型的建立和完善,是一項(xiàng)重要的基礎(chǔ)研究,至今還有很多工作要做,它可以為各類問(wèn)題的深入分析提供基礎(chǔ),為優(yōu)化設(shè)計(jì)指出方向。其次,電力電子技術(shù)、微電子技術(shù)的發(fā)展,高性能永磁材料的應(yīng)用及優(yōu)化設(shè)計(jì)技術(shù)起到明顯的作用自不待說(shuō),驅(qū)動(dòng)技術(shù)改進(jìn)的作用也不容忽視,特別是微步驅(qū)動(dòng)技術(shù)的應(yīng)用和成熟,使步進(jìn)電動(dòng)機(jī)的分辨率和特性與相數(shù)的關(guān)系不大,對(duì)步進(jìn)電動(dòng)機(jī)的設(shè)計(jì),今后的發(fā)展會(huì)產(chǎn)生很大的影響,也提出了一系列新的研究課題和方向。 1.2 研究主要內(nèi)容及其意義 隨著步進(jìn)電動(dòng)機(jī)系統(tǒng)在各種數(shù)字控制系統(tǒng)中的廣泛應(yīng)用,各種數(shù)字控制系統(tǒng)隨步進(jìn)電動(dòng)機(jī)性能和使用條件的要求也越來(lái)越高。這就要求不斷研制出高性能高可靠性高集成化低價(jià)位的驅(qū)動(dòng)器和低成本的單片機(jī)控制滿足需求。眾所周知,國(guó)內(nèi)對(duì)這方面的研究一直很活躍,但是可供選用的高性能的步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)器卻很少,而且國(guó)內(nèi)的驅(qū)動(dòng)器方面基本都存在著體積大、外形尺寸不規(guī)則、性能指標(biāo)不穩(wěn)定及遠(yuǎn)沒(méi)有達(dá)到系列化等問(wèn)題,這就給驅(qū)動(dòng)器的選用和安裝帶來(lái)了極大的不便,另外,隨著國(guó)內(nèi)單片機(jī)技術(shù)的發(fā)展,更精度的步進(jìn)電動(dòng)機(jī)控制技術(shù)也得到很大的發(fā)展。國(guó)外雖然有通用的各種類型的步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)器,但大都存在價(jià)格昂貴,與我國(guó)的系統(tǒng)連接不匹配等問(wèn)題。步進(jìn)電動(dòng)機(jī)不能直接接到交直流電源上工作,而必須使用專用的步進(jìn)電動(dòng)機(jī)驅(qū)動(dòng)器;在驅(qū)動(dòng)電源的設(shè)計(jì)方面目前采用更多的是由單片機(jī)提供脈沖驅(qū)動(dòng)信號(hào)。步進(jìn)電動(dòng)機(jī)系統(tǒng)的性能,除與電動(dòng)機(jī)自身的性能有關(guān)外,也在很大程度上取決于驅(qū)動(dòng)器的性能。步進(jìn)電動(dòng)機(jī)在運(yùn)行時(shí),一般有以下問(wèn)題:各相繞組都是開(kāi)關(guān)工作,多數(shù)電動(dòng)機(jī)繞組都是連續(xù)的交流或直流,而步進(jìn)動(dòng)機(jī)各相繞組都是脈沖式供電所以繞組電流不是連續(xù)的。電動(dòng)機(jī)各相繞組都是繞在鐵心上的線圈,所以都有較大的電感。繞組通電時(shí),電流不能迅速上升至額定值,電流上升率受到限制,繞組斷電時(shí),應(yīng)該電流截止的相不能立即截止。繞組導(dǎo)通和截止都會(huì)產(chǎn)生較大的反電勢(shì),而截止時(shí)反電勢(shì)將對(duì)驅(qū)動(dòng)級(jí)器件的安全產(chǎn)生有害的影響。電動(dòng)機(jī)運(yùn)轉(zhuǎn)時(shí)在各相繞組中產(chǎn)生旋轉(zhuǎn)電勢(shì),這些電勢(shì)的大小和方向?qū)?duì)繞組電流產(chǎn)生很大的影響。由于旋轉(zhuǎn)電勢(shì)基本上與電動(dòng)機(jī)轉(zhuǎn)速成正比,轉(zhuǎn)速越高,電勢(shì)越大,繞組電流越小,從而使電機(jī)輸出轉(zhuǎn)矩也隨著轉(zhuǎn)速升高而下降。步進(jìn)電動(dòng)機(jī)的固有分辨率不高,不能精密位移。以應(yīng)用最廣的8極50齒兩相混合式步進(jìn)電動(dòng)機(jī)為例,其步距角為0.9°/1.8°,需配合機(jī)械減速機(jī)構(gòu)以達(dá)到所需要的脈沖當(dāng)量精度,但是,機(jī)械系統(tǒng)的增加也同時(shí)帶來(lái)了一個(gè)誤差源。步進(jìn)電動(dòng)機(jī)在低頻運(yùn)行時(shí)的振蕩及過(guò)沖問(wèn)題,嚴(yán)重限制了步進(jìn)電動(dòng)機(jī)的應(yīng)用范圍。對(duì)這個(gè)問(wèn)題的解決辦法,除了改善負(fù)載特性及附加機(jī)械阻尼外,還可以在驅(qū)動(dòng)電源方面加以改善,如引入電磁阻尼、采用細(xì)分驅(qū)動(dòng)等辦法來(lái)解決。 在機(jī)電一體化中,步進(jìn)電機(jī)是最常用的一種執(zhí)行電機(jī),它實(shí)現(xiàn)了機(jī)械中的角度、位移的數(shù)字化控制,從而使機(jī)械控制的精度大大提高。現(xiàn)代控制技術(shù)中普遍采用的方式為開(kāi)環(huán)控制和閉環(huán)控制,開(kāi)環(huán)控制結(jié)構(gòu)簡(jiǎn)單成本低但其精度不是太高;閉環(huán)控制可以實(shí)現(xiàn)高精度的控制,但其結(jié)構(gòu)復(fù)雜投入成本高。步進(jìn)電機(jī)的出現(xiàn)解決了這一技術(shù)難題,它使得開(kāi)環(huán)控制的精度和速度大大提高,由它組成的步進(jìn)式伺服控制系統(tǒng)實(shí)現(xiàn)了數(shù)字化機(jī)械生產(chǎn)過(guò)程。步進(jìn)電機(jī)可以直接用數(shù)字信號(hào)驅(qū)動(dòng),使用非常方便。一般電動(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)過(guò)一定的角度。步進(jìn)電動(dòng)機(jī)的角位移量和輸入脈沖的個(gè)數(shù)嚴(yán)格成正比,在時(shí)間上與輸入脈沖同步,因此只要控制輸入脈沖的數(shù)量、頻率及電動(dòng)機(jī)繞組通電的相序,便可獲得所需的轉(zhuǎn)角、轉(zhuǎn)速及轉(zhuǎn)動(dòng)方向。在沒(méi)有脈沖輸入時(shí),在繞組電源的激勵(lì)下氣隙磁場(chǎng)能使轉(zhuǎn)子保持原有位置處于定位狀態(tài)。因此非常適合于單片機(jī)控制[2] 1.3 步進(jìn)電機(jī)的單片機(jī)控制優(yōu)點(diǎn) 控制系統(tǒng)對(duì)步進(jìn)電機(jī)的控制通過(guò)步進(jìn)電機(jī)驅(qū)動(dòng)器來(lái)完成。因此它已經(jīng)被廣泛地用于自動(dòng)控制系統(tǒng)中作為執(zhí)行元件。原來(lái)的步進(jìn)電機(jī)控制系統(tǒng)采用分立元件或者集成電路組成的控制回路,不僅調(diào)試安裝復(fù)雜,要消耗大量元器件,實(shí)現(xiàn)起來(lái)成本高、費(fèi)時(shí)多,而且一旦定型后,電路就很難改動(dòng),因此不得不重新設(shè)計(jì)控制器。 單片機(jī)是一種微型計(jì)算機(jī),它在一個(gè)集成芯片中,集成有微處理器(CPU)、存儲(chǔ)器(RAM和ROM)、基本的I/O接口以及定時(shí)/計(jì)數(shù)部件,即在一個(gè)芯片上實(shí)現(xiàn)了一臺(tái)微型計(jì)算機(jī)的基本功能[3]。 步進(jìn)電機(jī)的控制部分以單片機(jī)為主的微處理器控制具有如下優(yōu)點(diǎn):1.靈活性和適應(yīng)性。微處理器的控制方式是有軟件完成時(shí),如果需要修改控制規(guī)律,一般不必改變系統(tǒng)的硬件電路,只需修改程序即可。在系統(tǒng)調(diào)試和升級(jí)時(shí),可以不斷嘗試選擇最優(yōu)參數(shù),非常方便。2.可以實(shí)現(xiàn)較復(fù)雜的控制,控制精度高。微處理器具有很強(qiáng)的邏輯功能、運(yùn)算速度快、精度高、有大量的存儲(chǔ)單元,因此有能力實(shí)現(xiàn)復(fù)雜的控制。3.可提供人機(jī)界面。在電機(jī)控制中要用到鍵盤和顯示器作為人機(jī)界面來(lái)實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的控制。單片機(jī)體積小,重量輕,抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,指令功能強(qiáng),運(yùn)行速度快,可靠性高及靈活性好開(kāi)發(fā)也較為容易,國(guó)內(nèi)近些年來(lái)已將其廣泛應(yīng)用[4]。 在該設(shè)計(jì)中我選用了MSC-51作為步進(jìn)電機(jī)的控制器, 用它來(lái)實(shí)現(xiàn)步進(jìn)電機(jī)的空載時(shí)的一些控制功能。 2.1 步進(jìn)電動(dòng)機(jī)的基本原理 步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。步進(jìn)電機(jī)可以直接用數(shù)字信號(hào)驅(qū)動(dòng),使用非常方便。一般電動(dòng)機(jī)都是連續(xù)轉(zhuǎn)動(dòng)的,而步進(jìn)電動(dòng)機(jī)則有定位和運(yùn)轉(zhuǎn)兩種基本狀態(tài),在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱為“步距角”),它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的?梢酝ㄟ^(guò)控制脈沖個(gè)數(shù)來(lái)控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)可以作為一種控制用的特種電機(jī),利用其沒(méi)有積累誤差的特點(diǎn),使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來(lái)控制變的非常的簡(jiǎn)單,廣泛應(yīng)用于各種開(kāi)環(huán)控制[5]。 2.2 步進(jìn)電動(dòng)機(jī)分類 步進(jìn)電機(jī)的品種規(guī)格很多,現(xiàn)在比較常用的步進(jìn)電機(jī)包括反應(yīng)式步進(jìn)電機(jī)(VR)、永磁式步進(jìn)電機(jī)(PM)、混合式步進(jìn)電機(jī)(HB)和單相式步進(jìn)電機(jī)等。 永磁式步進(jìn)電機(jī)一般為兩相,轉(zhuǎn)矩和體積較小,步進(jìn)角一般為7.5度或15度;反應(yīng)式步進(jìn)電機(jī)一般為三相,可實(shí)現(xiàn)大轉(zhuǎn)矩輸出,步進(jìn)角一般為1.5度,但噪聲和振動(dòng)都很大。反應(yīng)式步進(jìn)電機(jī)的轉(zhuǎn)子磁路由軟磁材料制成,定子上有多相勵(lì)磁繞組,利用磁導(dǎo)的變化產(chǎn)生轉(zhuǎn)矩。 混合式步進(jìn)電機(jī)是指混合了永磁式和反應(yīng)式的優(yōu)點(diǎn)。它又分為兩相和五相:兩相步進(jìn)角一般為1.8度而五相步進(jìn)角一般為0.72度。這種步進(jìn)電機(jī)的應(yīng)用最為廣泛,也是本方案所選用的步進(jìn)電機(jī)[6]。 2.3 步進(jìn)電機(jī)的一些基本參數(shù) 2.3.1 電機(jī)的拍數(shù) 完成一個(gè)磁場(chǎng)周期性變化所需脈沖用n表示或指電機(jī)轉(zhuǎn)過(guò)一個(gè)齒距角所需脈沖數(shù)以四相電機(jī)為例,四相四拍運(yùn)行方式即AB-BC-CD-DA-AB,四相八拍運(yùn)行方式即 A-AB-B-BC-C-CD-D-DA-A。 2.3.2 電機(jī)固有步進(jìn)角 它表示控制系統(tǒng)每發(fā)一個(gè)步進(jìn)脈沖信號(hào),電機(jī)所轉(zhuǎn)動(dòng)的角度。電機(jī)出廠時(shí)給出了一個(gè)步距角的值,如86BYG250A型電機(jī)給出的值為0.9°/1.8°(表示半步工作時(shí)為0.9°、整步工作時(shí)為1.8°),這個(gè)步距角可以稱之為‘電機(jī)固有步距角’,它不一定是電機(jī)實(shí)際工作時(shí)的真正步距角,真正的步距角和驅(qū)動(dòng)器有關(guān)[7]。 2.3.3 步進(jìn)電機(jī)的相數(shù) 產(chǎn)生不同對(duì)極N、S磁場(chǎng)的激磁線圈對(duì)數(shù),是指電機(jī)內(nèi)部的線圈組數(shù),目前常用的有二相、三相、四相、五相步進(jìn)電機(jī)。電機(jī)相數(shù)不同,其步距角也不同,一般二相電機(jī)的步距角為0.9°/1.8°、三相的為0.75°/1.5°、五相的為0.36°/0.72°。在沒(méi)有細(xì)分驅(qū)動(dòng)器時(shí),用戶主要靠選擇不同相數(shù)的步進(jìn)電機(jī)來(lái)滿足自己步距角的要求。如果使用細(xì)分驅(qū)動(dòng)器,則‘相數(shù)’將變得沒(méi)有意義,用戶只需在驅(qū)動(dòng)器上改變細(xì)分?jǐn)?shù),就可以改變步距角[8]。 2.4 步進(jìn)電機(jī)結(jié)構(gòu) 電機(jī)轉(zhuǎn)子均勻分布著 40個(gè)小齒,定子齒有三個(gè)勵(lì)磁繞阻,其幾何軸線依次分別與轉(zhuǎn)子齒軸線錯(cuò)開(kāi)0、1/3て、2/3て,(相鄰兩轉(zhuǎn)子齒軸線間的距離為齒距以て表示),即A與齒1相對(duì)齊,B與齒2向右錯(cuò)開(kāi)1/3て,C與齒3向右錯(cuò)開(kāi)2/3て,A'與齒5相對(duì)齊,(A'就是A,齒5就是齒1) 2.4.1 步進(jìn)電機(jī)的旋轉(zhuǎn) 如A相通電,B,C相不通電時(shí),由于磁場(chǎng)作用,齒1與A對(duì)齊,(轉(zhuǎn)子不受任何力以下均同)。 如B相通電,A,C相不通電時(shí),齒2應(yīng)與B對(duì)齊,此時(shí)轉(zhuǎn)子向右移過(guò)1/3て,此時(shí)齒3與C偏移為1/3て,齒4與A偏移(て-1/3て)=2/3て。 如C相通電,A,B相不通電,齒3應(yīng)與C對(duì)齊,此時(shí)轉(zhuǎn)子又向右移過(guò)1/3て,此時(shí)齒4與A偏移為1/3て對(duì)齊。 如A相通電,B,C相不通電,齒4與A對(duì)齊,轉(zhuǎn)子又向右移過(guò)1/3て ,這樣經(jīng)過(guò)A、B、C、A分別通電狀態(tài),齒4(即齒1前一齒)移到A相,電機(jī)轉(zhuǎn)子向右轉(zhuǎn)過(guò)一個(gè)齒距,如果不斷地按A,B,C,A„„通電,電機(jī)就每步(每脈沖)1/3て,向右旋轉(zhuǎn)。如按A,C,B,A„„通電,電機(jī)就反轉(zhuǎn)[9]。 由此可見(jiàn):電機(jī)的位置和速度由導(dǎo)電次數(shù)(脈沖數(shù))和頻率成一一對(duì)應(yīng)關(guān)系,而方向由導(dǎo)電順序決定。 不過(guò),出于對(duì)力矩、平穩(wěn)、噪音及減少角度等方面考慮。往往采用A-AB-B-BC-C-CA-A這種導(dǎo)電狀態(tài),這樣將原來(lái)每步1/3て改變?yōu)?/font>1/6て。甚至于通過(guò)二相電流不同的組合,使其1/3て變?yōu)?/font>1/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件[10]。 2.5 步進(jìn)電動(dòng)機(jī)的控制原理 由于步進(jìn)電機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換成直線或角位移的執(zhí)行元件,它不能直接接到交直流電源上,而必須使用專用設(shè)備—步進(jìn)電機(jī)控制驅(qū)動(dòng)器,控制器可以發(fā)出脈沖頻率從幾赫茲到幾千赫茲可以連續(xù)變化的脈沖信號(hào),它為環(huán)形分配器提供脈沖序列。環(huán)形分配器的主要功能是把來(lái)自控制環(huán)節(jié)的脈沖序列按一定的規(guī)律分配后,經(jīng)過(guò)功率放大器的放大加到步進(jìn)電機(jī)驅(qū)動(dòng)電源的各項(xiàng)輸入端,以驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)的轉(zhuǎn)動(dòng)。環(huán)形分配器主要有兩大類:一類是用計(jì)算機(jī)軟件設(shè)計(jì)的方法實(shí)現(xiàn)環(huán)形分配器要求的功能,通常稱軟環(huán)形分配器、另一類是用硬件構(gòu)成的環(huán)形分配器,通常稱為硬環(huán)形分配器。功率放大器主要對(duì)環(huán)形分配器的較小輸出信號(hào)進(jìn)行放大,以達(dá)到驅(qū)動(dòng)步進(jìn)電機(jī)的目的[11]。 2.6 步進(jìn)電動(dòng)機(jī)的特點(diǎn) 步進(jìn)電動(dòng)機(jī)有如下特點(diǎn): (1)步進(jìn)電機(jī)的角位移與輸出脈沖數(shù)成正比,因此當(dāng)它轉(zhuǎn)一轉(zhuǎn)后,沒(méi)有累計(jì)誤差,具有良好的跟隨性。 (2)由步進(jìn)電機(jī)和驅(qū)動(dòng)電路組成的開(kāi)環(huán)數(shù)控系統(tǒng),既非常方便、廉價(jià),又非?煽。同事,它也可以有角度反饋環(huán)節(jié)組成高性能的閉環(huán)數(shù)控系統(tǒng)。 (3)步進(jìn)電機(jī)的動(dòng)態(tài)響應(yīng)快,易于起停、正反轉(zhuǎn)及變速。 (4)速度可在相當(dāng)寬的范圍內(nèi)平滑調(diào)節(jié),低速情況下仍能保證獲得很大的轉(zhuǎn)矩,因此一般可以不用減速器而直接驅(qū)動(dòng)負(fù)載。 (5)步進(jìn)電機(jī)只能通過(guò)脈沖電源供電才能運(yùn)行,它不能直接用交流電源或直接電源。 (6)步進(jìn)電機(jī)自身的噪聲和震動(dòng)比較大,帶慣性負(fù)載的能力強(qiáng)[16] 3 主要芯片介紹 3.1 89S5l單片機(jī)簡(jiǎn)介 本次設(shè)計(jì)以CPU選用89S5l作為步進(jìn)電機(jī)的控制芯片.89S51的結(jié)構(gòu)簡(jiǎn)單并可以在編程器上實(shí)現(xiàn)閃爍式的電擦寫數(shù)達(dá)幾萬(wàn)次以上.使用方便等優(yōu)點(diǎn),而且完全兼容MCS5l系列單片機(jī)的所有功能。AT89S51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—Flash Programmable And erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89S51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案[17]。 3.1.1 單片機(jī)的引腳功能 (1)VCC(40):電源+5V。 (2)VSS(20):接地,也就是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)。 (4)PSEN(29):片外ROM選通信號(hào),低電平有效。 (5)ALE/PROG(30):地址鎖存信號(hào)輸出端/EPROM編程脈沖輸入端。 (6)RST/VPD(9):復(fù)位信號(hào)輸入端/備用電源輸入端。 (7)EA/VPP(31):內(nèi)/外部ROM選擇端 (8)P0口(39-32):雙向I/O口。 (9)P1口(1-8):準(zhǔn)雙向通用I/0口。 (10)P2口(21-28):準(zhǔn)雙向I/0口[18]。 3.1.2 單片機(jī)的主要特性 與MCS-51 兼容 4K字節(jié)可編程閃爍存儲(chǔ)器 壽命:1000寫/擦循環(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í)鐘電路[19]。 (1)振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。輸入至其內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度[20]。 (2)芯片擦除: 整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms 來(lái)完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。 此外,AT89S51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其他芯片功能,直到下一個(gè)硬件復(fù)位為止[21]。 3.2 L298簡(jiǎn)介 3.2.1 L298的原理 L298N是一種比較常用的芯片,具有電壓高、電流大的特性,同時(shí)他還具有兩個(gè)橋的高電壓大電流全橋式驅(qū)動(dòng)器,能夠?qū)崿F(xiàn)驅(qū)動(dòng)直流電動(dòng)機(jī)、步進(jìn)電機(jī)和電感線圈等器件,它通過(guò)邏輯電平信號(hào)控制,而且同時(shí)具有兩個(gè)使能控制端,另外外部可以增加一個(gè)電路,檢測(cè)電阻將發(fā)生的變化反饋給控制電路。L298N芯片作為驅(qū)動(dòng)電機(jī)的芯片,可以驅(qū)動(dòng)四相電機(jī),能夠調(diào)節(jié)輸出電壓,根據(jù)電源操作很方便,同時(shí)還提供信號(hào),通過(guò)單片機(jī)的I/O口進(jìn)行,并且電路較為簡(jiǎn)單,容易操作且不容易出錯(cuò),比較方便。 3.2.2 L298概述 L298是SGS公司的產(chǎn)品,比較常見(jiàn)的是15腳Multiwatt封裝的L298N,內(nèi)部同樣包含4通道邏輯驅(qū)動(dòng)電路?梢苑奖愕尿(qū)動(dòng)兩個(gè)直流電機(jī),或一個(gè)兩相步進(jìn)電機(jī)。 L298N芯片可以驅(qū)動(dòng)兩個(gè)二相電機(jī),也可以驅(qū)動(dòng)一個(gè)四相電機(jī),輸出電壓最高可達(dá)50V,可以直接通過(guò)電源來(lái)調(diào)節(jié)輸出電壓;可以直接用單片機(jī)的IO口提供信號(hào);而且電路簡(jiǎn)單,使用比較方便。 L298N可接受標(biāo)準(zhǔn)TTL邏輯電平信號(hào)VSS,VSS可接4.5~7 V電壓。4腳VS接電源電壓,VS電壓范圍VIH為+2.5~46 V。輸出電流可達(dá)2.5 A,可驅(qū)動(dòng)電感性負(fù)載。1腳和15腳下管的發(fā)射極分別單獨(dú)引出以便接入電流采樣電阻,形成電流傳感信號(hào)。L298可驅(qū)動(dòng)2個(gè)電動(dòng)機(jī),OUT1,OUT2和OUT3,OUT4之間可分別接電動(dòng)機(jī)。圖3-5是L298N功能邏輯圖,圖3-6是L298N的引腳圖[25]。 3.3 光電開(kāi)關(guān) 本系統(tǒng)中所用傳感器為FC-SPX302光電開(kāi)關(guān),該傳感器為開(kāi)關(guān)型傳感器,四個(gè)接線腳分別為“+,L,OUT,-”其輸入電壓范圍廣為直流5-24V,L為控制指示端,當(dāng)“L”與“+”相連時(shí),傳感器未檢測(cè)到物體時(shí)LED燈發(fā)光,當(dāng)“L”懸空時(shí)則相反,其特點(diǎn)為: 1. 動(dòng)作模式備有遮光時(shí)ON/入光時(shí)ON(可切換型) 2. 應(yīng)答頻率為1KHZ的高速響應(yīng) 3. 入光顯示燈明顯,容易進(jìn)行動(dòng)作確認(rèn) 4. 電源電壓為DC-24V的廣范圍 5. 備有遮光時(shí)入光顯示燈燈亮型 其連接電路如圖3-7所示: file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps228D.tmp.jpg 4 硬件設(shè)計(jì) 啟動(dòng)系統(tǒng)后,從單片機(jī)的I/O口輸出控制脈沖,經(jīng)過(guò)L298N驅(qū)動(dòng)電路對(duì)脈沖進(jìn)行處理,輸出能直接控制步進(jìn)電機(jī)的脈沖信號(hào)。在負(fù)載能力范圍允許內(nèi),就能實(shí)現(xiàn)步進(jìn)電機(jī)獨(dú)立起停、轉(zhuǎn)向、速度、位置變化的控制。 4.1 總體設(shè)計(jì)方框圖 由4-1圖中看以看出以單片機(jī)為控制核心。鍵盤做為外設(shè),進(jìn)行功能的選擇,啟動(dòng),轉(zhuǎn)速增加,轉(zhuǎn)速減少,停止等操作。1602液晶屏顯示實(shí)際轉(zhuǎn)速和設(shè)定轉(zhuǎn)速。通過(guò)L298N來(lái)驅(qū)動(dòng)步進(jìn)電機(jī)。把步進(jìn)電機(jī)的實(shí)際轉(zhuǎn)速通過(guò)單片機(jī)外部中斷反饋到單片機(jī)。調(diào)用PID程序,通過(guò)改變脈沖周期調(diào)節(jié)轉(zhuǎn)速?傮w設(shè)計(jì)方框圖如圖4-1所示 file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps22AD.tmp.jpg 4.2 系統(tǒng)仿真圖 系統(tǒng)仿真圖如圖4-2。仿真圖是根據(jù)實(shí)際電路所搭建。是以單片機(jī)為核心,L298為驅(qū)動(dòng),1602作為顯示,按鍵作為輸入所搭建的仿真模型。4-2圖所示模型處于運(yùn)行狀態(tài)。啟動(dòng)仿真模型,選擇按鍵START,模型開(kāi)始正常運(yùn)轉(zhuǎn),通過(guò)V+V-改變電機(jī)轉(zhuǎn)速,最后選擇按鍵STOP停止仿真。
file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps22CD.tmp.jpg 4.3 步進(jìn)電動(dòng)機(jī)的控制方式選擇 步進(jìn)電機(jī)控制是一個(gè)比較精確的控制,步進(jìn)電機(jī)開(kāi)環(huán)控制系統(tǒng)具有成本低、簡(jiǎn)單、控制方便等優(yōu)點(diǎn),在采用單片機(jī)的步進(jìn)電機(jī)開(kāi)環(huán)系統(tǒng)中,控制系統(tǒng)的CP脈沖的頻率或者換向周期實(shí)際上就是控制步進(jìn)電機(jī)的運(yùn)行速度。系統(tǒng)可用兩種辦法實(shí)現(xiàn)步進(jìn)電機(jī)的速度控制。一種是延時(shí),一種是定時(shí)。延時(shí)方法是在每個(gè)周期完成后調(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)行,適合較簡(jiǎn)單的控制過(guò)程。定時(shí)方法是利用單片機(jī)系統(tǒng)中的定時(shí)器定時(shí)功能產(chǎn)生任意周期的定時(shí)信號(hào),從而可方便的控制系統(tǒng)輸出CP脈沖的周期,有點(diǎn)是定時(shí)時(shí)間準(zhǔn)確。本次設(shè)計(jì)采用第二種方式改變頻率,進(jìn)而來(lái)控制速度的方法來(lái)實(shí)現(xiàn)。 步進(jìn)電機(jī)控制采用閉環(huán)控制,具有準(zhǔn)確性較高、成本低、簡(jiǎn)單等優(yōu)點(diǎn),
4.4 步進(jìn)電動(dòng)機(jī)的驅(qū)動(dòng)方式選擇 有兩種方法驅(qū)動(dòng)步進(jìn)電機(jī),都是利用CPU驅(qū)動(dòng),分為直接和間接。這里不采用直接驅(qū)動(dòng),因?yàn)樗娜秉c(diǎn)很明顯,步進(jìn)電機(jī)運(yùn)轉(zhuǎn)需要足夠的電流,而CPU直接驅(qū)動(dòng)不能夠提供足夠大的電流脈沖;CPU間接驅(qū)動(dòng),需要先將CPU輸出的信號(hào)放大,這樣就能滿足驅(qū)動(dòng)步進(jìn)電動(dòng)機(jī)的條件,再直接驅(qū)動(dòng)或者再利用控制驅(qū)動(dòng)器來(lái)實(shí)現(xiàn)要求,這種方法比較穩(wěn)妥,可以達(dá)到目的,優(yōu)更加安全可靠,這里采用CPU間接驅(qū)動(dòng)步進(jìn)電機(jī)。 步進(jìn)電機(jī)具有兩種控制驅(qū)動(dòng)器,一種利用多個(gè)功率放大器件驅(qū)動(dòng)電機(jī),放大電路的種類和器件的參數(shù)不同,達(dá)到的目的就不同,實(shí)現(xiàn)的功能也不同,但是選擇使用四相步進(jìn)電機(jī),需要每個(gè)信號(hào)都放大,電路將比較復(fù)雜而且麻煩,電路也會(huì)特別不穩(wěn)定,本次使用電機(jī)驅(qū)動(dòng)模塊芯片驅(qū)動(dòng)電機(jī)。 此次設(shè)計(jì)利用L298芯片驅(qū)動(dòng)電機(jī),L298芯片能夠很好的與單片機(jī)結(jié)合,進(jìn)行控制,對(duì)于單片機(jī)的驅(qū)動(dòng)更方便,與單片機(jī)結(jié)合能夠?qū)崿F(xiàn)性能較好的步進(jìn)電機(jī)的驅(qū)動(dòng)。這次采用固定斬波頻率的PWM恒流斬波驅(qū)動(dòng)方式,可以采用四相雙極性步進(jìn)電機(jī),電壓可達(dá)到46V,電流可與達(dá)到2A。此次步進(jìn)電機(jī)驅(qū)動(dòng)系統(tǒng)的設(shè)計(jì)比較簡(jiǎn)單,需要的元件較少,成本很低,電路也簡(jiǎn)單,可靠性很高,占用空間少。并且通過(guò)開(kāi)發(fā)軟件,使得計(jì)算機(jī)的負(fù)擔(dān)降低,準(zhǔn)確性變高。同時(shí),L298芯片是獨(dú)立的,能夠十分靈活的應(yīng)用,可以廣泛的適用在步進(jìn)電機(jī)系統(tǒng)中,使得整個(gè)電路設(shè)計(jì)方案簡(jiǎn)潔,成本低廉,準(zhǔn)確性高,使用特別方便。
4.5 鍵盤電路設(shè)計(jì) 4.5.1 鍵盤原理圖 鍵盤具有兩種接口的方法,一種是矩陣式接口,另一種是獨(dú)立式接口。矩陣接口方式接線相對(duì)較為復(fù)雜,但是資源占用得較少,一般在需要鍵盤較多的時(shí)候使用。獨(dú)立式接口方式接發(fā)結(jié)構(gòu)較為簡(jiǎn)單,但是占用的資源較多,比較適合需要按鍵較少的時(shí)候使用,本次設(shè)計(jì)就采用的是獨(dú)立性鍵盤接口,其原理圖如下 file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps22EE.tmp.jpg 4.5.2 鍵盤功能 此次設(shè)計(jì),設(shè)計(jì)了手動(dòng)控制電路,實(shí)現(xiàn)了動(dòng)控制、加速控制、減速控制、停止控制、反轉(zhuǎn)控制,分別通過(guò)s1、s2、s3、s3控制,具體電路圖如下,其中S1實(shí)現(xiàn)電機(jī)的啟動(dòng),通過(guò)內(nèi)部檢測(cè)到s1的變化引發(fā)的P1.3的狀態(tài)改變,來(lái)操作程序的運(yùn)行,最終達(dá)到啟動(dòng)電機(jī)的目的。至于步進(jìn)電機(jī)的轉(zhuǎn)速就是通過(guò)改變點(diǎn)擊的脈沖不同二實(shí)現(xiàn)的,達(dá)到控制轉(zhuǎn)速的目的。 file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps231D.tmp.jpg 按鍵功能表
4.6 顯示電路 此次設(shè)計(jì),需要通過(guò)步進(jìn)電機(jī)的控制,實(shí)現(xiàn)顯示電路來(lái)表示加速、減速。有兩種方法可以實(shí)現(xiàn)功能,但是如果采用4位段數(shù)碼管組成顯示電路,利用數(shù)碼管來(lái)顯示單片機(jī)得到的數(shù)據(jù),這種方案缺點(diǎn)很明顯,需要的元件很多,電路較為復(fù)雜,且不容易操作,可讀性差,如果設(shè)定了數(shù)值,就不容易更改,操作起來(lái)很麻煩,很難增加其他的功能,而且耗電量很大,電路供電很麻煩。所以本次設(shè)計(jì)采用了單片機(jī)和液晶顯示器的結(jié)合,實(shí)現(xiàn)電機(jī)設(shè)計(jì)和電機(jī)的工作狀態(tài)的顯示電路,以方便了解電機(jī)的運(yùn)行狀態(tài)和轉(zhuǎn)速,同時(shí)顯示數(shù)據(jù)。 通過(guò)液晶顯示數(shù)據(jù),比數(shù)碼管的電路更加簡(jiǎn)單,而且容易操作,同時(shí)液晶顯示比較穩(wěn)定、省電、美觀,對(duì)于修改數(shù)據(jù)也比較簡(jiǎn)單,容易修改功能,可操作性較高,同時(shí)讀數(shù)比較容易,同時(shí)能夠顯示實(shí)際轉(zhuǎn)速和設(shè)定轉(zhuǎn)速。
file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps233E.tmp.jpg 4.7 測(cè)速電路 對(duì)于測(cè)速電路的設(shè)計(jì),采用FA-SPX302光電開(kāi)關(guān)實(shí)現(xiàn)功能,電路比較簡(jiǎn)單,電路如下圖所示: file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps237D.tmp.jpg 5 軟件設(shè)計(jì) 步進(jìn)電機(jī)的軟件設(shè)計(jì),就是通過(guò)程序的設(shè)計(jì),實(shí)現(xiàn)完成環(huán)形分配器的要求,進(jìn)而實(shí)現(xiàn)對(duì)于轉(zhuǎn)動(dòng)角度和唯一的目標(biāo)。開(kāi)始的是時(shí)候,通過(guò)判斷旋轉(zhuǎn)方向,然后相應(yīng)的運(yùn)行對(duì)應(yīng)的程序,同時(shí)通過(guò)運(yùn)行正反轉(zhuǎn)程序的相應(yīng)模型以及脈寬時(shí)延程序來(lái)實(shí)現(xiàn)步進(jìn)電機(jī)的正反轉(zhuǎn)功能。
5.1 PID控制算法 在計(jì)算機(jī)控制過(guò)程中,整個(gè)過(guò)程采用的是數(shù)值計(jì)算方法,當(dāng)采樣周期足夠小時(shí),這種數(shù)值近似計(jì)算相當(dāng)誰(shuí)確,使離散的被控過(guò)程與連續(xù)過(guò)程相當(dāng)接近。圖5-1為單片機(jī)閉環(huán)控制系統(tǒng)框圖。PID算法是將描述連續(xù)過(guò)程的微分方程轉(zhuǎn)化為差分方程,然后,根據(jù)差分方程編制計(jì)算程序來(lái)進(jìn)行控制計(jì)算的。 file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps238E.tmp.jpg 5.1.1 位置式PID的控制算法 如前所述PID調(diào)節(jié)的微分方程見(jiàn)公式(5-1) file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps243B.tmp.jpg+ 公式(5-1) 將此微分方程寫成對(duì)應(yīng)的差分方程形式。 file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps246B.tmp.jpg-=-=+++å 公式(5-2) 公式(5-2)式中ne-第n次采樣周期內(nèi)所獲得的偏差信號(hào);1ne--第n-1次采樣 周期內(nèi)所獲得的偏差信號(hào);T-采樣周期;ny-調(diào)節(jié)器第rt次控制變量的輸出;為了編寫計(jì)算機(jī)程序的方便,現(xiàn)將公式(5-2)寫成下列形式 file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps247B.tmp.jpg 其中file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps249B.tmp.jpg因?yàn)椴蓸又芷?/font>T,積分常數(shù)iT和微 分常數(shù)dT選定后皆為常數(shù),因此ak及bk必為常。當(dāng)調(diào)整參數(shù)改善控制性能時(shí),也只須調(diào)整pk、ak和bk的大小即可。 file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps24BC.tmp.jpg file:///C:\Users\王博\AppData\Local\Temp\ksohtml\wps24CC.tmp.jpg 附錄C 程序 #include<intrins.h> #include<reg51.h> #define uint unsigned int #define uchar unsigned char
uint i,j,m,n,flag,t; signed int a,b,c,d; double tt; uchar code LEDData[]="0123456789"; uchar TX[6]={0,}; uchar run[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; 控制口定義 sbit EnA =P2^6; sbit SA1 =P2^2; sbit SA2 =P2^3; sbit EnB =P2^7;
sbit SB1 =P2^4; sbit SB2 =P2^5; sbit en =P3^3; sbit rw =P3^1; sbit rs =P3^0; sbit start=P1^4; sbit vh =P1^5; sbit vl =P1^6; sbit stop =P1^7; 延時(shí)1ms程序 void delay0(int t) {int w; for(;t>0;t--) for(w=110;w>0;w--); } 鍵盤掃描程序 void key() {if(start==0) {delay0(10); while(start==0); {j++; n=1; } } if(stop==0) {delay0(10); while(stop==0); {n--; j=0; } } if(vh==0) {delay0(10); while(vh==0); {m++; a++;} } if(vl==0) {delay0(10); while(vl==0); {m--; b--;} } } 寫指令程序 void write_com(uchar com) { rs=0; P0=com; delay0(5); en=1; delay0(5); en=0; } 寫數(shù)據(jù)程序 void write_data(uchar date) { rs=1; P0=date; delay0(5); en=1; delay0(5); en=0; } PID程序 void PID() {uint e1,e2,e3; e1=TX[5]-TX[4]; e2=TX[3]-TX[2]; e3=TX[1]-TX[0]; if(e1>e2>10) { t=10*e1-6*e2+4*e3; } if(2<e1<e2) { t=3*e1-5*e2+2*e3; } 中斷0服務(wù)程序 void interrupt0() interrupt 1 using 2 {c++; } 定時(shí)器0服務(wù)程序 void timer0() interrupt 1 { uint e; uint f; TH0=(65536-(1250-t))/256; TL0=(65536-(1250-t))%256; if(f<7) {P2=run[f]; f++; } else {P2=run[f]; f=0; } d++; if(d==m) {if(e<6) {e++; TX[e]=c; } else {e=0; PID(); } c=0; d=0; } } 內(nèi)部資源初始化 void Init(void) { TMOD=0x11; TH0=(65536-(1250-t))/256; TL0=(65536-(1250-t))%256; TH1=(65536-50000)/256; TL1=(65536-50000)%256; IT0=1; EX0=1; IP=0x03; EA=1; ET0=1; TR0=1; en=0; rw=0; write_com(0x38); write_com(0x0c); write_com(0x04); write_com(0x01); write_com(0x80); write_data('S'); write_data('S'); write_data('P'); write_data('E'); write_data('E'); write_data('D'); write_data(':'); write_com(0x80+0x0B); write_data('R'); write_data('/'); write_data('S'); write_com(0x80+0x40); write_data('R'); write_data('S'); write_data('P'); write_data('E'); write_data('E'); write_data('D'); write_data(':'); write_com(0x80+0x4B); write_data('R'); write_data('/'); write_data('S'); } 速度顯示 void speeddisplay() { write_com(0x80+0x07); write_data('0'); write_data(LEDData[m/100]); write_data(LEDData[m%100/10]); write_data(LEDData[m%10]); if((m<600)&(m>950)) {write_com(0x80+0x48); write_data(LEDData[(m+1)/100]); write_data(LEDData[(m+1)%100/10]); write_data(LEDData[(m+1)%10]);} else {write_com(0x80+0x47); write_data('0'); write_data(LEDData[m/100]); write_data(LEDData[m%100/10]); write_data(LEDData[m%10]);}; } void main(void) { a=b=c=d=i=0; j=0; m=800; n=1; flag=0; while(1) {key(); if(j==1) {init(); } while(j&&n) {key(); PID(); tt=(1.3*(a+b)); t=tt; speeddisplay(); } if(n==0) {write_com(0x38); write_com(0x0c); write_com(0x04); write_com(0x01); } } }
|