【matlab編程代做】步進(jìn)電機(jī)控制器設(shè)計(jì)_第1頁(yè)
【matlab編程代做】步進(jìn)電機(jī)控制器設(shè)計(jì)_第2頁(yè)
【matlab編程代做】步進(jìn)電機(jī)控制器設(shè)計(jì)_第3頁(yè)
【matlab編程代做】步進(jìn)電機(jī)控制器設(shè)計(jì)_第4頁(yè)
【matlab編程代做】步進(jìn)電機(jī)控制器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、步進(jìn)電機(jī)控制器設(shè)計(jì)報(bào)告1.緒言在本次EDA課程設(shè)計(jì)中,我們組選擇了做一個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)程序的課題。對(duì)于步進(jìn)電機(jī)我們以前并未接觸過(guò),它的工作原理是什么,它是如何工作的,我們應(yīng)該如何控制它的轉(zhuǎn)停,這都是我們迫切需要了解的。步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即給電機(jī)加一個(gè)脈沖信號(hào),電機(jī)則轉(zhuǎn)過(guò)一個(gè)步距角。這一線性關(guān)系的存在,加上步進(jìn)電機(jī)只有周期性的誤差而無(wú)累積誤差等特點(diǎn)。使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來(lái)控制變的非常的簡(jiǎn)單。步進(jìn)電機(jī)及驅(qū)動(dòng)電源是互相聯(lián)系的整體。步進(jìn)電機(jī)驅(qū)動(dòng)電源框圖如圖

2、1所示。變頻信號(hào)源產(chǎn)生頻率可調(diào)的脈沖信號(hào),調(diào)節(jié)步進(jìn)電機(jī)的速度。脈沖分配器則根據(jù)要求把脈沖信號(hào)按一定的邏輯關(guān)系加到脈沖放大器上,使步進(jìn)電機(jī)按確定的運(yùn)行方式工作。感應(yīng)子式步進(jìn)電機(jī)以相數(shù)可分為:二相電機(jī)、三相電機(jī)、四相電機(jī)、五相電機(jī)等。以機(jī)座號(hào)(電機(jī)外徑)可分為:42BYG(BYG 為感應(yīng)子式步進(jìn)電機(jī)代號(hào))、57BYG、86BYG 、110BYG 、(國(guó)際標(biāo)準(zhǔn)), 而像70BYG 、90BYG 、130BYG 等均為國(guó)內(nèi)標(biāo)準(zhǔn)。1.1 驅(qū)動(dòng)控制系統(tǒng)組成使用、控制步進(jìn)電機(jī)必須由環(huán)形脈沖,功率放大等組成的控制系統(tǒng)。1.1.1 脈沖信號(hào)的產(chǎn)生脈沖信號(hào)一般由單片機(jī)或CPU 產(chǎn)生,一般脈沖信號(hào)的占空比為0.3-

3、0.4 左右,電機(jī)轉(zhuǎn)速越高,占空比則越大。 1.1.2 信號(hào)分配感應(yīng)子式步進(jìn)電機(jī)以二、四相電機(jī)為主,二相電機(jī)工作方式有二相四拍和二相八拍二種,具體分配如下:二相四拍為,步距角為1.8 度;二相八拍為,步距角為0.9 度。四相電機(jī)工作方式也有二種,四相四拍為AB-BC-CD-DA-AB,步距角為1.8 度;四相八拍為AB-B-BC-C-CD-D-AB,(步距角為0.9 度)。 2.課題要求2.1 步進(jìn)電機(jī)控制器設(shè)計(jì) 要求: (1) start為”1”時(shí),步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。 start為”0”時(shí),步進(jìn)電機(jī)停轉(zhuǎn)。 (2) 預(yù)設(shè)step_in為常數(shù),當(dāng)clk為上升沿,load和start為”1加載時(shí),電機(jī)

4、開(kāi)始轉(zhuǎn)動(dòng),轉(zhuǎn)動(dòng)step_in次后,停止轉(zhuǎn)動(dòng)。當(dāng)下次符合此要求時(shí)將再次轉(zhuǎn)動(dòng)。 (3) 通過(guò)load,,step_in同步或異步載入steps值。示意圖如下: 圖2如圖2所示,為步進(jìn)電機(jī)控制器的輸入輸出示意圖。其中:load為加載信號(hào) start為步進(jìn)電機(jī)啟動(dòng)信號(hào)en為使能信號(hào)reset為置位清零信號(hào)clk為時(shí)鐘信號(hào)step_in15.0表示輸入的十六位二進(jìn)制數(shù),其數(shù)值范圍用十進(jìn)制數(shù)表示為0-65535。 Coil_out3.0表示輸出,共有A,B,A,B四種狀態(tài)。 A,B,A,B四種轉(zhuǎn)動(dòng)狀態(tài)可用圖3表示,電機(jī)按下圖A- B- A- B- A循環(huán)轉(zhuǎn)動(dòng),每轉(zhuǎn)過(guò)一次變換90度。當(dāng)Coil_out3.0

5、=“1000”,指針指向A;當(dāng)Coil_out3.0=“0100”,指針指向B;當(dāng)Coil_out3.0=“0010”,指針指向A;當(dāng)Coil_out3.0=“0001”,指針指向B;當(dāng)Coil_out3.0=“0000”,電機(jī)不工作。 圖32.2 通過(guò)網(wǎng)絡(luò)上收集資料,圖書館查閱書本,我們逐步了解了步進(jìn)電機(jī),了解它的基本工作原理后我們我們逐漸形成了一些驅(qū)動(dòng)程序的基本構(gòu)思,我們決定利用狀態(tài)機(jī)的工作方式去編寫步進(jìn)電機(jī)的驅(qū)動(dòng)。3.方案設(shè)計(jì)與論證3.1 狀態(tài)機(jī)關(guān)于狀態(tài)機(jī)的一個(gè)極度確切的描述是它是一個(gè)有向圖形,由一組節(jié)點(diǎn)和一組相應(yīng)的轉(zhuǎn)移函數(shù)組成。狀態(tài)機(jī)通過(guò)響應(yīng)一系列事件而“運(yùn)行”。每個(gè)事件都在屬于“當(dāng)前

6、” 節(jié)點(diǎn)的轉(zhuǎn)移函數(shù)的控制范圍內(nèi),其中函數(shù)的范圍是節(jié)點(diǎn)的一個(gè)子集。函數(shù)返回“下一個(gè)”(也許是同一個(gè))節(jié)點(diǎn)。這些節(jié)點(diǎn)中至少有一個(gè)必須是終態(tài)。當(dāng)?shù)竭_(dá)終態(tài),狀態(tài)機(jī)停止。包含一組狀態(tài)集(states)、一個(gè)起始狀態(tài)(start state)、一組輸入符號(hào)集(alphabet)、一個(gè)映射輸入符號(hào)和當(dāng)前狀態(tài)到下一狀態(tài)的轉(zhuǎn)換函數(shù)(transition function)的計(jì)算模型。當(dāng)輸入符號(hào)串,模型隨即進(jìn)入起始狀態(tài)。它要改變到新的狀態(tài),依賴于轉(zhuǎn)換函數(shù)。在有限狀態(tài)機(jī)中,會(huì)有有許多變量,例如,狀態(tài) 機(jī)有很多與動(dòng)作(actions)轉(zhuǎn)換(Mealy機(jī))或狀態(tài)(摩爾機(jī))關(guān)聯(lián)的動(dòng)作,多重起始狀態(tài),基于沒(méi)有輸入符號(hào)的轉(zhuǎn)換

7、,或者指定符號(hào)和狀態(tài)(非定有 限狀態(tài)機(jī))的多個(gè)轉(zhuǎn)換,指派給接收狀態(tài)(識(shí)別者)的一個(gè)或多個(gè)狀態(tài)等等。傳統(tǒng)應(yīng)用程序的控制流程基本是順序的:遵循事先設(shè)定的邏輯,從頭到尾地執(zhí)行。很少有事件能改變標(biāo)準(zhǔn)執(zhí)行流程;而且這些事件主要涉及異常情況?!懊钚袑?shí)用程序”是這種傳統(tǒng)應(yīng)用程序的典型例子。另一類應(yīng)用程序由外部發(fā)生的事件來(lái)驅(qū)動(dòng)換言之,事件在應(yīng)用程序之外生成,無(wú)法由應(yīng)用程序或程序員來(lái)控制。具體需要執(zhí)行的代碼取決于接收到的事件,或者它相對(duì)于其他事件的抵達(dá)時(shí)間。所以,控制流程既不能是順序的,也不能是事先設(shè)定好的,因?yàn)樗蕾囉谕獠渴录?。事件?qū)動(dòng)的GUI應(yīng)用程序是這種應(yīng)用程序的典型例子,它們由命令和選擇(也就是用戶

8、造成的事件)來(lái)驅(qū)動(dòng)。3.2 設(shè)計(jì)論證利用狀態(tài)機(jī)的工作原理來(lái)設(shè)計(jì)步進(jìn)電機(jī)的控制程序。本課題要求需要輸出五種狀態(tài),其中有四種轉(zhuǎn)動(dòng)狀態(tài),電機(jī)即按照此四種狀態(tài)旋轉(zhuǎn),還有一種狀態(tài)是用于保護(hù)電機(jī),避免電機(jī)因通電過(guò)長(zhǎng)而燒壞。3.3 最初設(shè)計(jì):按照由易及難的原則,即將steps值固定,使電機(jī)轉(zhuǎn)動(dòng)步數(shù)恒定,每次觸發(fā)旋轉(zhuǎn)則按照固定steps值轉(zhuǎn),轉(zhuǎn)動(dòng)steps值后停轉(zhuǎn)。二次修改:在設(shè)計(jì)好最初的目標(biāo)程序后,我們有對(duì)程序進(jìn)行改進(jìn),即增加了steps預(yù)設(shè)功能,在進(jìn)行波形仿真的時(shí)候,可修改輸入信號(hào)step_in的值(16位二進(jìn)制數(shù)),從而改變步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)步數(shù)。更高要求:(1)在電機(jī)停轉(zhuǎn)之后,應(yīng)使輸出為零,即保持電機(jī)的電

9、路電流為零,從而達(dá)到保護(hù)電機(jī)不被燒毀的目的。(2)在電機(jī)停轉(zhuǎn)之后,若再次啟動(dòng)旋轉(zhuǎn),則從上次停止的位置繼續(xù)旋轉(zhuǎn),這是符合實(shí)際情況的仿真。(3)在電機(jī)停轉(zhuǎn)之后,利用PWM技術(shù)對(duì)電路進(jìn)行控制。 3.4鑒于以上要求,我們組經(jīng)過(guò)一周左右時(shí)間利用VHDL語(yǔ)言設(shè)計(jì)出了符合課題要求的步進(jìn)電機(jī)控制器程序(見(jiàn)附錄)。如下圖4所示,為步進(jìn)電機(jī)控制仿真波形圖:圖4圖4中顯示的是step_in值分別為10,8,12三種情況(16進(jìn)制表示)時(shí),Coil_out的輸出情況,結(jié)果表明波形仿真與設(shè)計(jì)要求相符。4. 總結(jié)與體會(huì)在編寫程序的過(guò)程中我們出現(xiàn)了很多這樣那樣的困難,但我們并沒(méi)有氣餒,而是認(rèn)真的探討研究,終于將其一一解決。

10、在編程的開(kāi)始我們就遇到了麻煩,輸入端口step_in是輸入了一個(gè)16位的二進(jìn)制數(shù),為了下面計(jì)數(shù)簡(jiǎn)單一點(diǎn)需要將其轉(zhuǎn)換為十進(jìn)制數(shù)。開(kāi)始我們打算用數(shù)據(jù)類型轉(zhuǎn)換函數(shù)TO_INTEGER將STD_LOGIC_VECTOR轉(zhuǎn)換成INTEGER,這需要調(diào)用DATAIO庫(kù),可在編譯的時(shí)候提示找不到DATAIO庫(kù),我們只有放棄這一思路,另謀出入。在一次翻閱圖書館資料的時(shí)候我無(wú)意中發(fā)現(xiàn)了一個(gè)新思路,就是在實(shí)體的說(shuō)明語(yǔ)句中直接將step_in定義為step_in:IN INTEGER RANGE 65535 TO 0,這樣電腦可以將輸入的二進(jìn)制自動(dòng)轉(zhuǎn)換為十進(jìn)制的。步進(jìn)值輸入了,那就要開(kāi)始計(jì)數(shù),本來(lái)我們想用加法從0開(kāi)

11、始計(jì)數(shù),但在編程實(shí)現(xiàn)這一想法的時(shí)候我們發(fā)現(xiàn)這樣做需要考慮的因素太多了,實(shí)現(xiàn)起來(lái)也比較困難。所以有人提議我們?cè)囍脺p法計(jì)數(shù),我們照著做了,結(jié)果發(fā)現(xiàn)這樣編確實(shí)很簡(jiǎn)單,而且程序也簡(jiǎn)潔明了。在老師檢查我們的程序的時(shí)候,老師發(fā)現(xiàn)了一個(gè)嚴(yán)重的漏洞,就是在轉(zhuǎn)動(dòng)steps停轉(zhuǎn)后電機(jī)仍保持著當(dāng)前狀態(tài),這樣長(zhǎng)時(shí)間通電會(huì)導(dǎo)致電機(jī)燒壞。我們思考了一會(huì)決定給狀態(tài)機(jī)增加一個(gè)狀態(tài),就是停轉(zhuǎn)的時(shí)候不給電機(jī)通電,在停轉(zhuǎn)的時(shí)候給電機(jī)這樣一個(gè)狀態(tài)可以起到保護(hù)的作用。在第二次給檢查的時(shí)候,老師又發(fā)現(xiàn)了要改進(jìn)的地方,那就是在轉(zhuǎn)了一個(gè)步進(jìn)值之后又給電機(jī)一個(gè)加載信號(hào),使電機(jī)進(jìn)行二次工作,此時(shí)應(yīng)緊接著上一次的狀態(tài)繼續(xù)工作,而我們的卻從“10

12、00”狀態(tài)重新開(kāi)始的。經(jīng)過(guò)反復(fù)思考,我們決定增加一個(gè)變量before_state,使之保留當(dāng)前狀態(tài),即當(dāng)current_state處于s0狀態(tài)時(shí), next_state=s1,before_state=s0。這樣我們就解決了這一問(wèn)題。在這次編程中還有一個(gè)最令人頭痛的問(wèn)題,我們這個(gè)課題有很多的輸入,要使電機(jī)轉(zhuǎn)動(dòng)有很多的條件,這就用到很多的if語(yǔ)句,可是在嵌套使用的過(guò)程中總是有問(wèn)題,電腦顯示太復(fù)雜,經(jīng)過(guò)無(wú)數(shù)次的調(diào)整,最后也被我們克服了。在這次課程設(shè)計(jì)中,我們學(xué)到了關(guān)于EDA的很多其他知識(shí)點(diǎn),對(duì)EDA有了更深的認(rèn)識(shí),擴(kuò)展了知識(shí)面。同時(shí)我們也有很多的體會(huì),課程設(shè)計(jì)是四人一組的,這就需要我們有著良好的團(tuán)

13、隊(duì)合作意識(shí),正是我們四個(gè)人的通力合作才順利完成了本次課程設(shè)計(jì),每個(gè)人在這次課程設(shè)計(jì)中都扮演著重要的角色,每段程序都凝結(jié)著我們智慧的結(jié)晶,正所謂“三個(gè)臭皮匠頂上一個(gè)諸葛亮”。我們遇到困難時(shí),并沒(méi)有退卻,而是勇敢的面對(duì),正是這種不怕困難的精神克服了一個(gè)又一個(gè)難點(diǎn)。老師在選題時(shí)曾說(shuō)過(guò),步進(jìn)電機(jī)是比較有難度的,但這并未成為我們的阻力,反而成了我們不斷超越的動(dòng)力!總而言之,本次課程設(shè)計(jì)讓我們受益匪淺!5.參考文獻(xiàn)5.1 VHDL電路設(shè)計(jì)技術(shù) 王道憲主編。5.2 電子技術(shù)基礎(chǔ)實(shí)驗(yàn) 陳大欽等著。5.3 EDA技術(shù)及應(yīng)用(第二版) 譚會(huì)生、張昌凡編著。附錄:VHDL源程序代碼LIBRARY IEEE;USE

14、IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY stepmotor ISPORT(reset,clk,load,en,start:IN STD_LOGIC; step_in:IN INTEGER RANGE 65535 TO 0; coil_out:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END stepmotor;ARCHITECTURE ART OF stepmotor ISTYPE FWM1 IS(s0,s1,s2,s3,s4);SIGNAL current_state,next_state,before_state:FWM1;BEGINPROCESS(load,clk,en,start)ISVARIABLE count:INTEGER RANGE 65535 TO 0;BEGINIF(load=1)THENcount:=step_in+1;ELSIF(reset=1)THENcurrent_state0 AND start=1)THEN count:=count-1; IF(en=1)THEN current_state=next_state; END IF; IF(count=0)THEN current_

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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)論