逐點比較插補原理的實現(xiàn)_第1頁
逐點比較插補原理的實現(xiàn)_第2頁
逐點比較插補原理的實現(xiàn)_第3頁
逐點比較插補原理的實現(xiàn)_第4頁
逐點比較插補原理的實現(xiàn)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機控制課程設(shè)計課題: 逐點比較插補原理的實現(xiàn) 系 別: 電氣與控制工程學(xué)院 專 業(yè): 電氣工程及其自動化 姓 名: 王永杰 學(xué) 號: 091413138 指導(dǎo)教師: 邢廣成 宋偉 河南城建學(xué)院2016年 6月 27日摘要根據(jù)逐點比較法插補原理,按方向完成從第一象限內(nèi)任意起點),(yxA到坐標(biāo)原點 )0,0(O直線插補的matlab仿真。程序的具體編寫要求包括:要求用input()函數(shù)讀取起點),(yxA,脈沖當(dāng)量(步長)。坐標(biāo)當(dāng)量可設(shè)為1,則步長取坐標(biāo)當(dāng)量的0.01-1倍;并用print() 函數(shù)畫出具體走步軌跡圖。然后推導(dǎo)出用逐點比較法插補繪制出下面曲線的算法,利用 matlab語言編寫

2、.m文件,實現(xiàn)第一象限直線插補的仿真。插補計算時,每走一步,都要進行以下四個步驟的計算過程,即偏差判別、坐標(biāo)進給、偏差計算、終點判斷。設(shè)計具體算法時,首先根據(jù)直線軌跡參數(shù),計算出偏差計算公式及遞推公式。由程序判斷出偏差的正負(fù)號,從而決定坐標(biāo)的進給方向,再根據(jù)遞推公式計算出坐標(biāo)進給后的偏差,若未到達(dá)終點,則返回偏差判別,如此循環(huán)??梢愿鶕?jù)起點和終點的坐標(biāo)位置,計算出總的進給步數(shù)Nxy,X或Y的坐標(biāo)每進給一步,這個值就減一,若Nxy=0,就到達(dá)了終點,這就是終點判別的方法。關(guān)鍵詞:直線插補法、圓弧插補法、偏差判別、終點判斷目錄1 設(shè)計目的32 設(shè)計要求33 系統(tǒng)方案總體設(shè)計34 硬件及及軟件設(shè)計3

3、 4.1 硬件件設(shè)計3 4.1.1 接口示意圖3 4.1.2 方案論證44.1.3 單片機與8255的接口54.1.4 硬件接線原理圖64.1.5 元件清單74.2 軟件設(shè)計74.2.1 軟件設(shè)計原理74.2.2 8255的初始化編程114.2.3 步進電機走步控制程序114.2.4 主程序135 仿真及結(jié)果分析14 5.1 系統(tǒng)安裝調(diào)試14 5.2 結(jié)果驗證146 設(shè)計總結(jié)157 參考文獻16附錄一 芯片資料17附錄二 源程序181 設(shè)計目的設(shè)計一個微型計算機控制步進電機系統(tǒng),該系統(tǒng)利用微型機的并口輸出控制信號,其信號驅(qū)動后控制X、Y兩個方向的三相步進電機轉(zhuǎn)動,利用逐點比較法插補原理繪制出如

4、下圖所示的目標(biāo)曲線。 圖1 目標(biāo)曲線2 設(shè)計要求可以實現(xiàn)直線插補和圓弧插補;每次插補運算后,只有一個坐標(biāo)軸方向有進給;插補誤差不超過一個脈沖當(dāng)量;運算簡單直觀,輸出脈沖均勻。但是不容易實現(xiàn)兩坐標(biāo)以上的聯(lián)動插補。3、系統(tǒng)方案總體設(shè)計 本設(shè)計大致包含三部分:硬件設(shè)計、軟件設(shè)計和系統(tǒng)的運行調(diào)試。硬件設(shè)計采用8255,以及51單片機。軟件設(shè)計包括初始化程序步進電機控制程序。調(diào)試采用MATLAB軟件進行仿真得出軌跡圖。4、軟硬件設(shè)計4.1 硬件設(shè)計4.1.1 接口示意圖 兩臺三相步進電機控制接口如下圖所示。圖2 系統(tǒng)接口示意圖 步進電機是一種將脈沖信號轉(zhuǎn)換成角位移或直線位移的執(zhí)行機構(gòu),其轉(zhuǎn)動距離和角度取

5、決于輸入脈沖的個數(shù),轉(zhuǎn)動方向取決于輸入脈沖的相序。4.1.2 方案論證單片機的接口電路可以是鎖存器,也可以是專門的接口芯片,本設(shè)計采用可編程接口芯片8255。由于步進電機需要的驅(qū)動電流比較大,所以單片機和步進電機的連接還要有驅(qū)動電路,如何設(shè)計驅(qū)動電路成了問題的關(guān)鍵。設(shè)計方案一如圖3所示,當(dāng)某相上驅(qū)動信號變?yōu)楦唠娖綍r,達(dá)林頓管導(dǎo)通,從而使得該相通電。圖3 驅(qū)動電路方案一設(shè)計方案二如圖4所示,在單片機與驅(qū)動器之間增加一級光電隔離,當(dāng)驅(qū)動信號為高電平時,發(fā)光二極管發(fā)光,光敏三極管導(dǎo)通,從而使達(dá)林頓管截止,該相不通電;當(dāng)驅(qū)動信號為低電平時,則步進電機的該相通電。圖4 驅(qū)動電路方案二 綜合比較兩種設(shè)計方

6、案可知,方案二有抗干擾能力,且可避免一旦驅(qū)動電路發(fā)生故障,造成高電平信號進入單片機而燒毀器件。所以,本設(shè)計選擇方案二。4.1.3 單片機與8255的接口 MCS-51單片機可以和8255直接連接而不需要任何外加邏輯器件,接口示意圖如圖5所示。因為8255的B口和C口具有驅(qū)動達(dá)林頓管的能力,所以將采用B口和C口輸出驅(qū)動信號。圖5 單片機與8255的接口4.1.4 硬件接線原理圖圖6 系統(tǒng)硬件接線原理圖單片機控制步進電機的硬件接線如圖6所示。因為8255的片選信號接單片機的地址線P2.7,A1、A0通過地址鎖存器接到了8051單片機的地址線P0.1和P0.0,由硬件接線圖可以清楚地知道,8255的

7、各口地址為:A口地址:7FFCHB口地址:7FFDHC口地址:7FFEH控制口地址:7FFFH同時,B口和C口都作為輸出口,8255工作在方式0。下面以8255的B口輸出端PB0為例說明控制的工作原理。若PB0輸出0,經(jīng)反相器74LS04后變?yōu)楦唠娖?,發(fā)光二極管正向?qū)òl(fā)光。在光線的驅(qū)動下,光敏三極管導(dǎo)通,+5V 的電壓經(jīng)三極管引入地線而不驅(qū)動達(dá)林頓管。因而,達(dá)林頓管截止,X軸上步進電機的C相不通電。若PB0輸出1,反相后變?yōu)榈碗娖?,發(fā)光二極管不導(dǎo)通。從而光敏三極管截止,+5V 電壓直接驅(qū)動達(dá)林頓管導(dǎo)通,X軸上步進電機的C相有從電源流向地線的電流回路,即C相得電。4.1.5 元件清單表1 元件

8、清單表名稱位號型號數(shù)量單片機80511地址鎖存器74LS3731并行接口芯片8255A1反相器74LS046電阻R1R241K24光電三極管U1U34N253達(dá)林頓管Q1Q6NPN DAR6二極管D1D6IN400164.2 軟件設(shè)計4.2.1 軟件設(shè)計原理 直線插補原理逐點比較法的基本原理是,在刀具按要求軌跡運動加工零件輪廓的過程中,不斷比較刀具與被加工零件輪廓之間的相對位置,并根據(jù)比較結(jié)果決定下一步的進給方向,使刀具向減小偏差的方向進給。圖7第一象限直線如圖所示,設(shè)直線的起點為坐標(biāo)原點,終點坐標(biāo)為A(,),點m (,)為加工點(動點)。定義偏差公式為 。若=0,表明點m在OA

9、直線段上;若>0,表明點m在OA直線段上方,即點m 處;若<0, 表明點m在OA直線段下1方,即點m處。由此可得第一象限直線逐點比較法插補的原理是:從直線的起點出發(fā),當(dāng)0時,沿+x軸方向走一步;當(dāng)<0時,沿+y軸方向走一步;當(dāng)兩方向所走的步數(shù)與終點坐標(biāo)(,)相等時,發(fā)出終點到信號,停止插補。可以將上面所定義的偏差公式進一步簡化,推導(dǎo)出偏差的遞推公式。 當(dāng)0時,沿+x軸方向進給一步, (1)當(dāng)<0時,沿+y軸方向進給一步, (2)式(1)和式(2)是簡化后偏差的計算公式,在公式中只有一次加法或減法運算,新加工點的偏差都可由前一點偏差和終點坐標(biāo)相加或相減得到。圓弧插補原理逐

10、點比較法是以階梯折線來逼近直線或圓弧等曲線,它與規(guī)定的加工直線或圓弧之間的最大誤差為一個脈沖當(dāng)量,因此只要把脈沖當(dāng)量(每走一步的距離即步長)取得足夠小,就可以達(dá)到精度的要求。以下為課程設(shè)計要求插補的第一象限逆圓弧。圖3-3為第一象限逆圓弧。M(Xm,Ym)A(Xo,Yo)B(Xe,Ye)圖8 第一象限逆圓弧以下就以第一象限為例進行分析。(1) 偏差計算公式設(shè)要加工逆圓弧AB,圓心在原點,起點坐標(biāo)A(x0,Y0),終點坐標(biāo)(xe,Ye),半徑R。瞬時加工點M(xm,Ym),它距圓心Rm,則可用R與Rm來反映偏差。由此定義偏差公式為:若Fm0,M點在圓弧上;若Fm0,M點在圓弧外;若Fm0,M點在

11、圓弧內(nèi)。第一象限逆圓弧的插補原理是:從圓弧起點出發(fā),若Fm>0,沿-X方向走一步,并計算新偏差;當(dāng)Fm<0時,沿+Y方向走一步,并計算新偏差。如此一步一步計算與進給,并在到達(dá)終點時停止計算。但以上Fm計算式比較復(fù)雜,可以考慮用遞推公式:當(dāng)Fm0時,Xm+1Xm-1 Ym+1Ym Fm+1Fm-2Xm+1當(dāng)Fm0時,Xm+1Xm Ym+1Ym+1 Fm+1Fm+2Ym+1(2)終點判斷方法 設(shè)置Nx,NY兩個計數(shù)器,初值設(shè)為|Xe-Xo|,|Ye-Yo|在不同的坐標(biāo)軸進給時對應(yīng)的計數(shù)器減一,兩個計數(shù)器均減到零時,到達(dá)終點。 用一個計數(shù)器NxY ,初值設(shè)為Nx+NY,無論在哪個坐標(biāo)軸進

12、給,Nxy 計數(shù)器減一,計數(shù)器減到零時,到達(dá)終點。(3) 插補計算過程圓弧插補計算比直線插補計算過程要多一個環(huán)節(jié),即要計算加工瞬時坐標(biāo)。故圓弧插補計算為五個步驟即偏差判斷、坐標(biāo)進給、偏差計算、坐標(biāo)計算、終點判斷。圖9 四個象限逆圓弧插補的對稱關(guān)系 步進電機工作原理步進電機有三相、四相、五相、六相等多種,本設(shè)計采用三相步進電機的三相六拍工作方式,其通電順序為各相通電的電壓波形如圖8所示。圖10 三相六拍工作的電壓波形當(dāng)步進電機的相數(shù)和控制方式確定之后,PB0PB2和PC0PC2輸出數(shù)據(jù)變化的規(guī)律就確定了,這種輸出數(shù)據(jù)變化規(guī)律可用輸出字來描述。為了便于尋找,輸出字以表的形式存放在計算

13、機指定的存儲區(qū)域。表2給出了三相六拍控制方式的輸出字表。表2 三相六拍控制方式輸出字表步序控制位工作狀態(tài)控制字表C相B相A相1001A01H2011AB03H3010B02H4110BC06H5100C04H6101CA05H4.2.2 8255的初始化編程由前面的分析知道,8255工作在方式0,控制口地址為 7FFFH,控制字為90H。所以,8255的初始化編程如下。MOV DPTR, #7FFFH ;控制口地址送DPTRMOV A, #90H ;控制字送寄存器AMOVX DPTR, A ;將控制字寫入控制口4.2.3 步進電機走步控制程序 程序流程圖圖11 步進電機走步控制程

14、序流程圖 匯編程序代碼以下為X軸上電機的步進控制算法,Y軸上步進電機算法類似。XCOTROL: MOV DPTR, #ADX ;將控制字表地址賦給DPTH MOV A, R2 ;表首偏移量送A MOVC A, A+DPTR ;讀取當(dāng)前步進電機的控制字 MOV DPTR, #7FFDH ;PB口地址送DPTR MOVX DPTR, A ;將步進電機的控制字傳送到PB口 CJNE A, #05H, LOOP3 ;若到表尾,轉(zhuǎn)LOOP3 INC R2 ;未到表尾,表首偏移量加1 SJMP DELAY1 LOOP3: MOV R2, #00H ;表首偏移量清零 SJMP DELAY1DE

15、LAY1: MOV R0, #FFH ;延時 DJNZ DELAY1RET ;返回4.2.4 主程序 主程序流程圖圖12 主程序流程圖 源程序代碼 首先分配各變量的地址為,NXY: 4FH, 50H; XE: 4DH, 4EH; YE: 4BH, 4CH; FM: 49H,4AH,高位存高地址,地位存進低地址。源程序代碼見附錄二。5、仿真及結(jié)果分析5.1 系統(tǒng)安裝調(diào)試 按照硬件接線圖將系統(tǒng)安裝好后,裝入程序,執(zhí)行后查看步進電機的走步軌跡。5.2 結(jié)果驗證若終點坐標(biāo)(,)為(4,3),插補計算過程如表所示。表3 直線插補計算過程步數(shù)偏差判別坐標(biāo)進給偏差計算終點判別起點

16、=0=71+X=0-3=-3=62+Y=-3+4=1=53+X=1-3=-2=44+Y=-2+4=2=35+X=2-3=-1=26+Y=-1+4=3=17+X=3-3=0=0 根據(jù)上表,可作出步進電機的走步軌跡如圖所示。若輸入的參數(shù)為XE=4,YE=3,系統(tǒng)走步軌跡與下圖比較,可判斷出設(shè)計的正確性。圖13 步進電機走步軌跡6 、設(shè)計總結(jié)課程設(shè)計中,主要是我更加了解直線插補和圓弧插補的相關(guān)知識,計算機控制設(shè)計的相關(guān)知識更加專業(yè)化,能在考試周期間,火急火燎的完成這次課程設(shè)計離不開小組成員的努力和團結(jié),不懂得網(wǎng)上和圖書館積極查閱資料,雖然我部分內(nèi)容不是很明白,但是還是組員幫助下,慢慢的深入,自己也慢

17、慢的掌握的相關(guān)知識,讓我在直線插補,圓弧插補應(yīng)用到步進電機的設(shè)計中,收獲不少,更加熟練的應(yīng)用課本知識。在老師的耐心指導(dǎo)下,有意識的培養(yǎng)和建立了我的思維能力,使我真正建立數(shù)據(jù)及信息流的概念,以便在控制應(yīng)用中,能夠使軟件和硬件有機地結(jié)合。通過單片機對步進電機的控制系統(tǒng)設(shè)計,讓我真正的掌握了微型計算機軟件和硬件相結(jié)合的設(shè)計方法。通過一個星期的課程設(shè)計,我對這門課有了進一步的了解。工業(yè)控制是計算機的一個重要應(yīng)用領(lǐng)域,計算機控制正是為了適應(yīng)這一領(lǐng)域的需要而發(fā)展起來的一門專門技術(shù),它主要研究如何將計算機技術(shù)和自動控制理論應(yīng)用于工業(yè)生產(chǎn)過程,并設(shè)計出所需要的計算機控制系統(tǒng)。參考文獻1賀亞茹.匯編語言程序設(shè)計

18、.北京:科學(xué)出版社,20052卜艷萍、周偉.匯編語言程序設(shè)計教程.北京:清華大學(xué)出版社,20043溫玉杰.Intel匯編語言程序設(shè)計(第四版).北京:電子工業(yè)出版社,20044鄭學(xué)堅、周斌.微型計算機原理與應(yīng)用.北京:清華大學(xué)出版社,20005于海生.微型計算機控制技術(shù).北京:清華大學(xué)出版社,19986沈美明、溫冬嬋.IBM-PC匯編語言程序設(shè)計.北京:清華大學(xué)出版社,2002 7何立民.單片機應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社,2003附錄一 芯片資料圖 8051單片機引腳圖 圖 可編程芯片8255A引腳圖附錄二 源程序 (一) ORG 0100HMOV DPTR, #7FFFH ;

19、控制口地址送DPTRMOV A, #90H ;控制字送寄存器AMOVX DPTR, A ;將控制字寫入控制口,初始化8255MOV 4EH, ? ;XE的低8位存入4EHMOV 4DH, ? ;XE的高8位存入4DHMOV 4CH, ? ;YE的低8位存入4CHMOV 4BH, ? ;YE的高8位存入4BHMOV A, 4EHADD A, 4CH ;XE與YE低8位相加MOV 50H, A ;低位之和存入NXY低8位MOV A, 4DHADDC A, 4BH ;XE與YE的高8位帶進位相加MOV 4FH, A ;和存入NXY高8位MOV 4AH, #00H ;將FM置零MOV 49H, #00

20、H CLR R2 ;表ADX偏移量清零CLR R3 ;表ADY偏移量清零LOOP1: MOV A, 49H ;取偏差的高8位 JB ACC.7, YCONTROL ;若FM<0,轉(zhuǎn)到Y(jié)CONTROL ACALL XCONTROL ;否則,調(diào)XCONTROL CLR C ;進位寄存器清零MOV A, 4AHSUBB A, 4CH ;FM與YE的低8位相減MOV 4AH, A ;結(jié)果存入FM低8位MOV A, 49HSUBB A, 4BH ;FM與YE的高8位相減MOV 49H, A ;結(jié)果存入FM高8位LOOP2: CLR C MOV A, 50H SUBB A, #01H ;NXY低位值

21、減1 MOV 50H, A ;結(jié)果存入NXY的低位 MOV A, 4FH SUBB A, #00H ;考慮低位字節(jié)借位 MOV 4FH, A ;減去借位后存入NXY的高位 ORL A, 50H ;判斷NXY是否為零 JNZ LOOP1 ;不為零則轉(zhuǎn)到LOOP1 LJMP 8000HXCOTROL: MOV DPTR, #ADX ;將控制字表地址賦給DPTH MOV A, R2 ;表首偏移量送A MOVC A, A+DPTR ;讀取當(dāng)前步進電機的控制字 MOV DPTR, #7FFDH ;PB口地址送DPTR MOVX DPTR, A ;將步進電機的控制字傳送到PB口 CJNE A, #05H,

22、 LOOP3 ;若到表尾,轉(zhuǎn)LOOP3 INC R2 ;未到表尾,表首偏移量加1 SJMP DELAY1 LOOP3: MOV R2, #00H ;表首偏移量清零 SJMP DELAY1DELAY1: MOV R0, #FFH ;延時 DJNZ DELAY1RET ;返回YCOTROL: MOV DPTR, #ADY ;將控制字表地址賦給DPTH MOV A, R3 ;ADY表首偏移量送A MOVC A, A+DPTR ;讀取當(dāng)前步進電機的控制字 MOV DPTR, #7FFEH ;PC口地址送DPTR MOVX DPTR, A ;將步進電機的控制字傳送到PC口 CJNE A, #05H, L

23、OOP4 ;若到表尾,轉(zhuǎn)LOOP4 INC R3 ;未到表尾,表首偏移量加1 SJMP DELAY2 LOOP4: MOV R3, #00H ;表首偏移量清零 SJMP DELAY2DELAY2: MOV R0, #FFH ;延時 DJNZ DELAY2CLR C ;進位寄存器清零MOV A, 4AHADD A, 4EH ;FM與XE低8位相加MOV 4AH, A ;結(jié)果存入FM低位MOV A, 49HADDC A, 4DH ;FM與XE高8位帶進位相加MOV 49H, A ;結(jié)果存入FM高8位SJMP LOOP2 ;無條件轉(zhuǎn)到LOOP2ORG 8000HEND ;程序結(jié)束ADX: DB 01

24、H ;X軸步進電機控制字表 DB 03H DB 02H DB 06H DB 04H DB 05HADY: DB 01H ;Y軸步進電機控制字表 DB 03H DB 02H DB 06H DB 04H DB 05H(二)程序清單Option ExplicitPublic q As DoublePublic flag As IntegerPublic xa As IntegerPublic ya As IntegerPublic xb As IntegerPublic yb As IntegerPublic fm As IntegerPublic n As IntegerPublic x As DoublePublic y As DoublePublic sx As DoublePublic sy As DoubleDim c As IntegerPublic Function max(a, b)If a > b Thenmax = aElsemax = bEnd IfEnd

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論