直線插補(bǔ)數(shù)字積分法第三、第四象限_第1頁
直線插補(bǔ)數(shù)字積分法第三、第四象限_第2頁
直線插補(bǔ)數(shù)字積分法第三、第四象限_第3頁
直線插補(bǔ)數(shù)字積分法第三、第四象限_第4頁
直線插補(bǔ)數(shù)字積分法第三、第四象限_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 目錄一、課程設(shè)計(jì)目的3二、課程設(shè)計(jì)使用的主要儀器及軟件設(shè)備.3三、課程設(shè)計(jì)題目描述和要求3四、課程設(shè)計(jì)報(bào)告內(nèi)容34.1數(shù)字積分法直線插補(bǔ)的基本原理44.1.1從幾何角度來看積分運(yùn)算44.1.2數(shù)字積分法在輪廓插補(bǔ)中的具體應(yīng)用(數(shù)字積分法直線插補(bǔ))54.2插補(bǔ)終點(diǎn)判別的具體實(shí)現(xiàn)74.3插補(bǔ)器的組成74.4提高插補(bǔ)精度的措施74.5減少誤差的方法74.6數(shù)字積分法直線插補(bǔ)框圖74.7 數(shù)字積分法直線(第三四象限)插補(bǔ)程序9五 結(jié)論13六 實(shí)驗(yàn)總結(jié)13七 程序運(yùn)行圖15一、課程設(shè)計(jì)目的1)了解連續(xù)軌跡控制數(shù)控系統(tǒng)的組成原理。2) 掌握數(shù)字積分法(DDA)插補(bǔ)的基本原理。3)掌握數(shù)字積分法(DDA)

2、插補(bǔ)的軟件實(shí)現(xiàn)方法。二、課程設(shè)計(jì)使用的主要儀器及軟件設(shè)備Pc計(jì)算機(jī)一臺(tái)Vb三、課程設(shè)計(jì)的任務(wù)題目描述和要求數(shù)字積分法又稱數(shù)字微分分析法DDA(Digital Differential Analyzer)。數(shù)字積分法具有運(yùn)算速度快、脈沖分配均勻、易于實(shí)現(xiàn)多坐標(biāo)聯(lián)動(dòng)及描繪平面各種函數(shù)曲線的特點(diǎn),應(yīng)用比較廣泛。其缺點(diǎn)是速度調(diào)節(jié)不便,插補(bǔ)精度需要采取一定措施才能滿足要求。由于計(jì)算機(jī)有較強(qiáng)的計(jì)算功能和靈活性,采用軟件插補(bǔ)時(shí),上述缺點(diǎn)易于克服。本次課程設(shè)計(jì)具體要求如下:(1)掌握數(shù)字積分插補(bǔ)法基本原理(2)設(shè)計(jì)出數(shù)字積分(DDA)插補(bǔ)法插補(bǔ)軟件流程圖(3)編寫出算法程序清單算法描述(數(shù)字積分法算法在VB中

3、的具體實(shí)現(xiàn)) (4)要求軟件能夠?qū)崿F(xiàn)第一第二象限直線插補(bǔ)計(jì)算(5)軟件運(yùn)行仿真效果 插補(bǔ)結(jié)果要求能夠以圖形模式進(jìn)行輸出四、課程設(shè)計(jì)報(bào)告內(nèi)容插補(bǔ)運(yùn)算就是運(yùn)用特定的算法對(duì)工件加工軌跡進(jìn)行運(yùn)算并根據(jù)運(yùn)算結(jié)果向相應(yīng)的坐標(biāo)發(fā)出運(yùn)動(dòng)指令的過程。插補(bǔ)運(yùn)算可以采用數(shù)控系統(tǒng)硬件或數(shù)控系統(tǒng)軟件來完成。硬件插補(bǔ)器:速度快,但缺乏柔性,調(diào)整和修改都困難。軟件插補(bǔ)器:速度慢,但柔性高,調(diào)整和修改都很方便。早期硬件數(shù)控系統(tǒng):采用由數(shù)字邏輯電路組成的硬件插補(bǔ)器;CNC系統(tǒng):采用軟件插補(bǔ)器,或軟件、硬件相結(jié)合的插補(bǔ)方式。 4.1數(shù)字積分法直線插補(bǔ)的基本原理數(shù)字積分法是利用數(shù)字積分的方法,計(jì)算刀具沿各坐標(biāo)軸的位移,使得刀具沿著

4、所加工的輪廓曲線運(yùn)動(dòng)利用數(shù)字積分原理構(gòu)成的插補(bǔ)裝置稱為數(shù)字積分器,又稱數(shù)字微分分析器(Digital Differential Analyzer),簡稱DDA。數(shù)字積分器插補(bǔ)的最大優(yōu)點(diǎn)在于容易實(shí)現(xiàn)多坐標(biāo)軸的聯(lián)動(dòng)插補(bǔ)、能夠描述空間直線及平面各種函數(shù)曲線等。因此,數(shù)字積分法插補(bǔ)在輪廓數(shù)控系統(tǒng)中得到廣泛的應(yīng)用。 4.1.1從幾何角度來看積分運(yùn)算積分運(yùn)算就是求出函數(shù)Y = f(t)曲線與橫軸所圍成的面積,從tt0到tn時(shí)刻,函數(shù)Y= f(t)的積分值可表述為 如果進(jìn)一步將tt0,tn的時(shí)間區(qū)劃分為若干個(gè)等間隔 t的小區(qū)間,當(dāng)t足夠小時(shí),函數(shù)Y的積分可用下式近似表示 在幾何上就是用一系列的小矩形面積之和

5、來近似表示函數(shù)f(t)以下的積分面積。進(jìn)一步如果在式中,取t為基本單位“1”,則上式可演化成數(shù)字積分器算式: 由此可見,通過假設(shè)t“1”,就可將積分運(yùn)算轉(zhuǎn)化為式所示的求縱坐標(biāo)值的累加運(yùn)算。若再假設(shè)累加器容量為一個(gè)單位面積值,則在累加過程中超過一個(gè)單位面積時(shí)立即產(chǎn)生一個(gè)溢出脈沖。這樣,累加過程所產(chǎn)生的溢出脈沖總數(shù)就等于所求的總面積,即所求的積分值。下面就以直線和圓弧軌跡為例詳細(xì)介紹4.1.2數(shù)字積分法在輪廓插補(bǔ)中的具體應(yīng)用(數(shù)字積分法直線插補(bǔ)) 設(shè)將要加工的直線XOY平面內(nèi)第一象限直線OE,如圖.一所示,直線起點(diǎn)在坐標(biāo)原點(diǎn),終點(diǎn)為E(Xe,Ye)。同樣,假設(shè)坐標(biāo)值均為以脈沖當(dāng)量為單位的整數(shù)。OY

6、XVyVxE(Xe,Ye)V 圖4.1若此時(shí)刀具在兩坐標(biāo)軸上的進(jìn)給速度分量分別是Vx,Vy,則刀具在X軸,Y軸方向上位移增量分別是X = Vxt 式1-1 Y = Vyt 式1-2由圖4.1 所示的幾何關(guān)系可得V/OE=Vx/Xe=Vy/Ye=K(常數(shù)) 式2將式2中的Vx,Vy分別代入式一 可得:X = KXet 式3-1 Y = KYet 式3-2可見刀具由原點(diǎn)O走向E的過程,可以看作式每經(jīng)過一個(gè)單位時(shí)間間隔t,就分別以增量KXe, KYe同時(shí)在兩個(gè)坐標(biāo)軸累加的結(jié)果。也可以這樣認(rèn)為,數(shù)字積分法插補(bǔ)實(shí)際上就是利用速度分量,進(jìn)行數(shù)字積分來確定刀具在各坐標(biāo)軸上位置的過程,即ni=1X=Xi =n

7、i=1Yi =Y=nni=1i=1KXeti 式4-1KYeti 式4-2當(dāng)取ti=“1”(一個(gè)單位時(shí)間間隔)則 X = nKXe 式5-1 Y = nKYe 式5-2設(shè)經(jīng)過n次累加后,刀具正好到達(dá)終點(diǎn)E(Xe,Ye),則要求式五中常量滿足下式nK=1 式6n是累加次數(shù)必須取整數(shù),所有K取小數(shù)。為了保證每次分配給坐標(biāo)軸的進(jìn)給脈沖不超過一個(gè)單位,則 X=KXe<1 式7-1 Y=KYe<1 式7-2上式中Xe,Ye的最大允許值受系統(tǒng)中相應(yīng)寄存器容量的限制。現(xiàn)假設(shè)寄存器 為N位則容量為2N ,對(duì)應(yīng)存儲(chǔ)的最大允許數(shù)字量為(2N - 1)將其帶入式七得 K<=1/(2N - 1) 式

8、8現(xiàn)不妨取 K =1/2N 式9顯然它滿足式七,式八的約束條件,再將K 值代入式六可得累加次數(shù)為 n =2N 式10如果將n,K,值代入式五則動(dòng)點(diǎn)坐標(biāo)為X = nKXe =Xe 式11-1Y = nKYe =Ye 式11-2根據(jù)以上分析,在進(jìn)行直線插補(bǔ)時(shí),先開辟兩個(gè)被積函數(shù)寄存器Jvx,Jvy分別存放終點(diǎn)坐標(biāo)值Xe,Ye,還有兩個(gè)余數(shù)寄存器Jrx,Jry。然后,當(dāng)脈沖源每發(fā)送一個(gè)控制脈沖信號(hào)t,X軸積分器和Y軸積分器各累加一次。當(dāng)累加結(jié)果超過余數(shù)寄存器容量(2N - 1)時(shí),就產(chǎn)生一個(gè)溢出脈沖x(或y)。這樣,經(jīng)過2N 次累加后,每個(gè)坐標(biāo)軸溢出脈沖總數(shù)就等于該軸被積函數(shù)值(Xe和Ye),從而控

9、制刀具到達(dá)終點(diǎn)E。4.2插補(bǔ)終點(diǎn)判別的具體實(shí)現(xiàn)直線插補(bǔ)時(shí)不論被積函數(shù)有多大,對(duì)于N位寄存器。必須累加2N次才能到達(dá)終點(diǎn)。因此可以用一容量為2N的寄存器當(dāng)計(jì)數(shù)器,來統(tǒng)計(jì)累加的次數(shù)??梢杂眉?計(jì)數(shù)器,也可以用減1計(jì)數(shù)器。 采用加1計(jì)數(shù)器時(shí),首先將計(jì)數(shù)器清零,運(yùn)算過程中每來一個(gè)累加脈沖t就加1。當(dāng)計(jì)數(shù)器滿2N時(shí)表明運(yùn)算完成。 采用減1計(jì)數(shù)器時(shí),運(yùn)算前把總運(yùn)算次數(shù)2N送入計(jì)數(shù)器,每運(yùn)算一次,就減去1。當(dāng)計(jì)數(shù)器減為0時(shí),表明運(yùn)算完成。4.3插補(bǔ)器的組成 二坐標(biāo)DDA直線插補(bǔ)器包括X積分器和Y積分器,每個(gè)積分器都由被積函數(shù)寄存器Jvx(速度存寄器)和累加器Jrx(余數(shù)寄存器)組成。初始時(shí),X被積函數(shù)寄存器

10、存Xe(或Xe/2N ),Y被積函數(shù)寄存器存Ye(或Ye/2N)。4.4提高插補(bǔ)精度的措施 對(duì)于DDA圓弧插補(bǔ),徑向誤差可能大于一個(gè)脈沖當(dāng)量,因數(shù)字積分器溢出脈沖的頻率與被積函數(shù)寄存器中的數(shù)值成正比,在坐標(biāo)軸附近進(jìn)行累加時(shí),一個(gè)積分器的被積函數(shù)值接近零,而另一個(gè)積分器的被積函數(shù)接近于最大值,累加時(shí)后者連續(xù)溢出,前者幾乎沒有,兩個(gè)積分器的溢出脈沖頻率相差很大,致使插補(bǔ)軌跡偏離給定圓弧距離較大,使圓弧誤差增大。4.5減少誤差的方法1、減小脈沖當(dāng)量,誤差減少,但寄存器容量增大,累加次數(shù)增加。而且要獲得同樣的進(jìn)給速度,需要提高插補(bǔ)速度。2、累加器預(yù)置數(shù) 累加器中預(yù)置0.5,即被積函數(shù)寄存器中的初值增大

11、后,可以提前溢出脈沖。4.6數(shù)字積分法直線插補(bǔ)框圖 DDA直線插補(bǔ)軟件的實(shí)現(xiàn)思路也是硬件邏輯關(guān)系來完成的。DDA直線插補(bǔ)軟件流程圖如圖4-2 所示DDA直線插補(bǔ)過程中使用的累加表達(dá)式為 累加值 = 被積函數(shù)寄存器 + 余數(shù)寄存器一旦累加結(jié)果超過了寄存器的容量時(shí),就會(huì)產(chǎn)生溢出,發(fā)出一個(gè)脈沖信號(hào),并控制相應(yīng)的坐標(biāo)軸進(jìn)給一步。在軟件實(shí)現(xiàn)過程中,也可以直觀的認(rèn)為余數(shù)寄存器為小數(shù)部分寄存器,與進(jìn)位位Cy之間存在一個(gè)小數(shù)點(diǎn)。具體表示為進(jìn)位位Cy位(1位)余數(shù)寄存器(N位).小數(shù)點(diǎn)圖4-24.7數(shù)字積分法直線(第三四象限)插補(bǔ)程序Private Sub Command1_Click()xe = CInt(T

12、ext1)ye = CInt(Text2)Picture1.ForeColor = vbBlackPicture1.DrawWidth = 2 If Option1.Value = True And Option2 = False Then If xe <= 0 And ye <= 0 ThenPicture1.Line (5500, 50)-(5500, 5500)Picture1.Line (5500, 5500)-(5530, 5400)Picture1.Line (5500, 5500)-(5470, 5400)Picture1.Line (5500, 50)-(50, 5

13、0)Picture1.Line (50, 50)-(150, 20)Picture1.Line (50, 50)-(150, 80)Picture1.CurrentX = 5600Picture1.CurrentY = 40Picture1.Print "(0,0)"Picture1.CurrentX = 100Picture1.CurrentY = 100Picture1.Print "-x"Picture1.CurrentX = 5600Picture1.CurrentY = 5400Picture1.Print "-Y"For

14、i = 1 To -xePicture1.Line (5500 - i * 500, 50)-(5500 - i * 500, 100)Next iFor J = 1 To -yePicture1.Line (5500, 50 + J * 500)-(5400, 50 + J * 500)Next JPicture1.Line (5500, 50)-(5500 + 500 * Int(Text1), 50 - 500 * Int(Text2)Elseans = MsgBox("出現(xiàn)出錯(cuò)!請(qǐng)檢查!", 48, "提示信息")Picture1.ClsText

15、1.Text = ""Text2.Text = ""Text3.Text = ""End IfElseIf Option2.Value = True And Option1 = False ThenIf xe >= 0 And ye <= 0 ThenPicture1.ForeColor = vbBlackPicture1.DrawWidth = 2Picture1.Line (50, 50)-(5500, 50)Picture1.Line (5500, 50)-(5400, 80)Picture1.Line (5500,

16、 50)-(5400, 20)Picture1.Line (50, 50)-(50, 5500)Picture1.Line (50, 5500)-(20, 5400)Picture1.Line (50, 5500)-(80, 5400)Picture1.CurrentX = 60Picture1.CurrentY = 40Picture1.Print "(0,0)"Picture1.CurrentX = 5700Picture1.CurrentY = 100Picture1.Print "x"Picture1.CurrentX = 80Picture1.

17、CurrentY = 5400Picture1.Print "-Y"For i = 1 To xePicture1.Line (50 + i * 500, 50)-(50 + i * 500, 100)Next iPicture1.PrintFor J = 1 To -yePicture1.Line (50, 50 + J * 500)-(100, 50 + J * 500)Next JPicture1.ForeColor = vbBlackPicture1.DrawWidth = 2Picture1.Line (50, 50)-(50 + 500 * Int(Text1)

18、, 50 - 500 * Int(Text2)Elseans = MsgBox("出現(xiàn)出錯(cuò)!請(qǐng)檢查", 48, "提示信息")End IfEnd IfEnd SubPrivate Sub Command2_Click()n = Int(Text3)k = 0m = 0xi = 0yi = 0xe = CInt(Text1)ye = CInt(Text2)Jvx = xeJvy = yeJrx = 0Jry = 0H = 2 n - 1Picture1.ForeColor = vbRedPicture1.DrawWidth = 2If xe <= 0

19、 And ye <= 0 ThenIf Option1 = True ThenPrint "累加次數(shù) " & " X 積分器 " & " Y 積分器 " & " 終點(diǎn)判別 "Print " n " & " Jvx " & " Jrx " & "- X " & " Jvy " & " Jry " & "- Y &

20、quot; & " J"For i = 1 To 2 nJrx = Jrx + Abs(Jvx)If Abs(Jrx) >= 2 n ThenJrx = Abs(Jrx) - 2 nk = 1xi = xi + 1End IfJry = Jry + Abs(Jvy)If Abs(Jry) >= 2 n ThenJry = Abs(Jry) - 2 nm = 1yi = yi + 1End IfIf k = 1 And m = 1 ThenPicture1.Line (5500 - 500 * (xi - 1), 50 + (yi - 1) * 500)-

21、(5500 - 500 * (xi), 50 + (yi) * 500)ElseIf k = 1 And m = 0 ThenPicture1.Line (5500 - 500 * (xi - 1), 50 + (yi) * 500)-(5500 - 500 * (xi), 50 + (yi) * 500)ElseIf k = 0 And m = 1 ThenPicture1.Line (5500 - 500 * xi, 50 + (yi - 1) * 500)-(5500 - 500 * xi, 50 + (yi) * 500)End IfForm1.FontSize = 12Print &

22、quot; " & Left(CStr(i) & " ", 3) & " " & Left(CStr(Jvx) & " ", 3) & " " & Left(CStr(Jrx) & " ", 3) & " " & k & " " & Left(CStr(Jvy) & " ", 3) & " " &

23、amp; Left(CStr(Jry) & " ", 3) & " " & m; " " & Left(CStr(H) & " ", 3)k = 0m = 0H = H - 1Next iElse: ans = MsgBox("出現(xiàn)出錯(cuò)!請(qǐng)檢查", 48, "提示信息")End IfElseIf xe >= 0 And ye <= 0 ThenIf Option2 = True ThenPrint "累加次數(shù) &q

24、uot; & " X 積分器 " & " Y 積分器 " & " 終點(diǎn)判別 "Print " n " & " Jvx " & " Jrx " & "+ X " & " Jvy " & " Jry " & "- Y " & " J"For i = 1 To 2 nJrx = Jrx + JvxIf J

25、rx >= 2 n ThenJrx = Jrx - 2 nk = 1xi = xi + 1End IfJry = Jry + Abs(Jvy)If Abs(Jry) >= 2 n ThenJry = Abs(Jry) - 2 nm = 1yi = yi + 1End IfIf k = 1 And m = 1 ThenPicture1.Line (50 + 500 * (xi - 1), 50 + (yi - 1) * 500)-(50 + 500 * (xi), 50 + (yi) * 500)ElseIf k = 1 And m = 0 ThenPicture1.Line (50

26、 + 500 * (xi - 1), 50 + (yi) * 500)-(50 + 500 * (xi), 50 + (yi) * 500)ElseIf k = 0 And m = 1 ThenPicture1.Line (50 + 500 * xi, 50 + (yi - 1) * 500)-(50 + 500 * xi, 50 + (yi) * 500)End IfPrint " " & Left(CStr(i) & " ", 3) & " " & Left(CStr(Jvx) & &quo

27、t; ", 3) & " " & Left(CStr(Jrx) & " ", 3) & " " & k & " " & Left(CStr(Jvy) & " ", 3) & " " & Left(CStr(Jry) & " ", 3) & " " & m; " " & Left(CStr(H) &

28、amp; " ", 3)k = 0m = 0H = H - 1Next iElse: ans = MsgBox("出現(xiàn)出錯(cuò)!請(qǐng)檢查", 48, "提示信息")End IfEnd IfIf Text3.Text = "" Thenans = MsgBox("出現(xiàn)出錯(cuò)!請(qǐng)檢查", 48, "提示信息")ElseIf xe = "" Thenans = MsgBox("出現(xiàn)出錯(cuò)!請(qǐng)檢查", 48, "提示信息")ElseI

29、f ye = "" Thenans = MsgBox("出現(xiàn)出錯(cuò)!請(qǐng)檢查", 48, "提示信息")End IfEnd SubPrivate Sub Command3_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Picture1.ClsOption1 = FalseOption2 = FalseForm1.ClsEnd SubPrivate Sub Command4_Click()EndEnd Sub五 結(jié)論本次設(shè)計(jì)運(yùn)用軟件插補(bǔ)程序進(jìn)行插補(bǔ)控制,調(diào)整和修改都很方便,而且數(shù)字積分法插補(bǔ)運(yùn)算速度快,脈沖分配均勻,易于實(shí)現(xiàn)多坐標(biāo)聯(lián)動(dòng)及描繪平面各種函數(shù)曲線的特點(diǎn)。只是軟件開發(fā)復(fù)雜,需對(duì)編程具有熟練的運(yùn)用??傊?,通過課程設(shè)計(jì),進(jìn)一步學(xué)習(xí)了各方面的知識(shí)及其運(yùn)用,最終完成要求,實(shí)現(xiàn)軟件的運(yùn)行,運(yùn)行程序后按提示輸入直線的起點(diǎn)、終點(diǎn)坐標(biāo)后即可自動(dòng)進(jìn)行插補(bǔ)計(jì)算并輸出各個(gè)插補(bǔ)點(diǎn)的坐標(biāo)值。六 實(shí)驗(yàn)總結(jié)一周的課程設(shè)計(jì)就要結(jié)束了,雖然這并不是我第一次做課程設(shè)計(jì),但我從中依然學(xué)到了很多東西,同時(shí)也發(fā)現(xiàn)了自己在各個(gè)方面的不足之處,獲益匪淺。在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論