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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

11、后,可以提前溢出脈沖。4.6數(shù)字積分法直線插補框圖 DDA直線插補軟件的實現(xiàn)思路也是硬件邏輯關系來完成的。DDA直線插補軟件流程圖如圖4-2 所示DDA直線插補過程中使用的累加表達式為 累加值 = 被積函數(shù)寄存器 + 余數(shù)寄存器一旦累加結果超過了寄存器的容量時,就會產(chǎn)生溢出,發(fā)出一個脈沖信號,并控制相應的坐標軸進給一步。在軟件實現(xiàn)過程中,也可以直觀的認為余數(shù)寄存器為小數(shù)部分寄存器,與進位位Cy之間存在一個小數(shù)點。具體表示為進位位Cy位(1位)余數(shù)寄存器(N位).小數(shù)點圖4-24.7數(shù)字積分法直線(第三四象限)插補程序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)出錯!請檢查!", 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)出錯!請檢查", 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 積分器 " & " 終點判別 "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)出錯!請檢查", 48, "提示信息")End IfElseIf xe >= 0 And ye <= 0 ThenIf Option2 = True ThenPrint "累加次數(shù) &q

24、uot; & " X 積分器 " & " Y 積分器 " & " 終點判別 "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)出錯!請檢查", 48, "提示信息")End IfEnd IfIf Text3.Text = "" Thenans = MsgBox("出現(xiàn)出錯!請檢查", 48, "提示信息")ElseIf xe = "" Thenans = MsgBox("出現(xiàn)出錯!請檢查", 48, "提示信息")ElseI

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

溫馨提示

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

評論

0/150

提交評論