版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> ****學(xué) 院</b></p><p> 課 程 設(shè) 計 說 明 書</p><p><b> 設(shè)計題目:</b></p><p> 逐點比較法第一二象限的順圓插補 </p><p> 系 部: 機 電
2、工 程 系 </p><p> 專 業(yè): 自動化(數(shù)控技術(shù)) </p><p> 班 級: </p><p> 姓 名:
3、 </p><p> 學(xué) 號: </p><p> 指導(dǎo)老師: </p><p> 起止時間: 年 月 日至 年 月 日 共 周</p><p><b>
4、 年 月 日</b></p><p><b> 目 錄</b></p><p> 一、課程設(shè)計的目的.......................................3</p><p> 二、課程設(shè)計的任務(wù).......................................3</p>&
5、lt;p> 三、逐點比較法基本原理...................................4</p><p> 四、逐點比較法插補軟件流程圖.............................8</p><p> 五、算法描述(在VB中的具體實現(xiàn))........................9</p><p> 六、編寫算法程序
6、清單.....................................9</p><p> 七、軟件運行仿真效果.....................................12</p><p> 八、參考文獻(xiàn).............................................15</p><p> 九、設(shè)計小結(jié)...
7、..........................................15</p><p> 逐點比較法第一二象限的順圓插補</p><p><b> 一、課程設(shè)計的目的</b></p><p> 1)了解連續(xù)軌跡控制數(shù)控系統(tǒng)的組成原理。</p><p> 2) 掌握逐點比較法插補的基本原理。<
8、;/p><p> 3)掌握逐點比較法插補的軟件實現(xiàn)方法。</p><p><b> 二、課程設(shè)計的任務(wù)</b></p><p> 逐點比較法插補是最簡單的脈沖增量式插補算法之一,其過程清晰,速度平穩(wěn),但一般只用于一個平面內(nèi)兩個坐標(biāo)軸的插補運算。其基本原理是在刀具按要求軌跡運動加工零件輪廓的過程中,不斷比較刀具與被加工零件輪廓之間的相對位置,并
9、根據(jù)比較結(jié)果決定下一步的進(jìn)給方向,使刀具向減小偏差的方向進(jìn)給,且只有一個方向的進(jìn)給。也就是說,逐點比較法每一步均要比較加工點瞬時坐標(biāo)與規(guī)定零件輪廓之間的距離,依此決定下一步的走向。如果加工點走到輪廓外面去了,則下一步要朝著輪廓內(nèi)部走;如果加工點處在輪廓的內(nèi)部,則下一步要向輪廓外面走,以縮小偏差,這樣周而復(fù)始,直至全部結(jié)束,從而獲得一個非常接近于數(shù)控加工程序規(guī)定輪廓的軌跡。逐點比較法插補過程中的每進(jìn)給一步都要經(jīng)過偏差判別、坐標(biāo)進(jìn)給、偏差計
10、算和終點判別四個節(jié)拍的處理,其工作流程圖如圖所示。</p><p><b> 三、基本原理</b></p><p> ?。?)逐點比較法I象限順圓插補</p><p><b> 基本原理</b></p><p> 在加工圓弧過程中,人們很容易聯(lián)想到使用動點到圓心的距離與該圓弧的名義半徑進(jìn)行比較
11、來反映加工偏差。</p><p> 假設(shè)被加工零件的輪廓為第Ⅰ象限順走向圓弧SE,,圓心在O(0,0),半徑為R,起點為S(XS,YS),終點為E(Xe,Ye),圓弧上任意加工動點為N(Xi,Yi)。當(dāng)比較該加工動點到圓心的距離與圓弧半徑R的大小時,可獲得刀具與圓弧輪廓之間的相對位置關(guān)系。</p><p> 當(dāng)動點N(Xi,Yi)正好落在圓弧上時,則有下式成立</p>&
12、lt;p> 當(dāng)動點N(Xi,Yi)落在圓弧外側(cè)時,則有下式成立</p><p> 當(dāng)動點N(Xi,Yi)落在圓弧內(nèi)側(cè)時,則有下式成立</p><p> 由此可見,取逐點比較法圓弧插補的偏差函數(shù)表達(dá)式為</p><p> 當(dāng)動點落在圓外時,為了減小加工誤差,應(yīng)向圓內(nèi)進(jìn)給,即向(-X)軸方向走一步;當(dāng)動點落在圓內(nèi)時,應(yīng)向圓外進(jìn)給,即向(+Y)軸方向走一步。
13、當(dāng)動點正好落在圓弧上且尚未到達(dá)終點時,為了使加工繼續(xù)下去,理論上向(+Y)軸或(-X)軸方向進(jìn)給均可以,但一般情況下約定向(-X)軸方向進(jìn)給。</p><p> 綜上所述,現(xiàn)將逐點比較法第Ⅰ象限順圓插補規(guī)則概括如下:</p><p> 當(dāng)F>0時,即>0,動點落在圓外,則向(-Y)軸方向進(jìn)給一步;</p><p> 當(dāng)F=0時,即=0,動點正好落在圓上,約定向
14、(-Y)軸方向進(jìn)給一步;</p><p> 當(dāng)F<0時,即<0,動點落在圓內(nèi),則向(+X)軸方向進(jìn)給一步。</p><p> 由偏差函數(shù)表達(dá)式可知,計算偏差F值,就必須進(jìn)行動點坐標(biāo)、圓弧半徑的平方運算。顯然,在用硬件或匯編語言實現(xiàn)時不太方便。為了簡化這些計算,按逐點比較法直線插補的思路,也可以推導(dǎo)出逐點比較法圓弧插補過程中偏差函數(shù)計算的遞推公式。</p><p>
15、; 假設(shè)第i次插補后,動點坐標(biāo)為N(Xi,Yi),其對應(yīng)偏差函數(shù)為</p><p> 當(dāng)Fi≥0,向(-Y)軸方向進(jìn)給一步,則新的動點坐標(biāo)值為</p><p> Xi+1=Xi, Yi+1=Yi-1</p><p> 因此,新的偏差函數(shù)為</p><p> Fi+1= Xi+1^2+ Yi+1^2-R^2 = Xi^2+(Yi-1
16、)^2 </p><p> ∴ Fi+1=Fi-2Yi+1 </p><p> 同理,當(dāng)Fi<0,則向(+Y)軸方向進(jìn)給一步,則新的動點坐標(biāo)值為</p><p> Xi+1=Xi+1, Yi+1=Yi</p><p> 因此,可求得新的偏差函數(shù)
17、為</p><p> Fi+1= Xi+1^2+ Yi+1^2-R^2 = (Xi+1)^2+Yi^2 </p><p> ∴ Fi+1=Fi+2Xi+1 </p><p> 將上式進(jìn)行比較,可以看出兩點不同:第一,遞推形式的偏差計算公式中僅有加/減法以及乘2運算,而乘2可等效成該二進(jìn)
18、制數(shù)左移一位,這顯然比平方運算來得簡單。第二,進(jìn)給后新的偏差函數(shù)值與前一點的偏差值以及動點坐標(biāo)N(Xi,Yi)均有關(guān)系。由于動點坐標(biāo)值隨著插補過程的進(jìn)行而不斷變化,因此,每插補一次,動點坐標(biāo)就必須修正一次,以便為下一步的偏差計算作好準(zhǔn)備。至此,將第Ⅰ象限順圓弧插補的規(guī)則和計算公式匯總,見表(表2-1) </p><p> 第Ⅰ象限順圓弧插補計算公式</p><p>
19、<b> 表2-1</b></p><p> 和直線插補一樣,圓弧插補過程也有終點判別問題。當(dāng)圓弧輪廓僅在一個象限區(qū)域內(nèi),其終點判別仍可借用直線終點判別的三種方法進(jìn)行,只是計算公式略不同。</p><p> Σ=|Xe-Xs|+|Ye-Ys| </p><p> Σ=max{|Xe-Xs|,|
20、Ye-Ys|} </p><p> Σ1=|Xe-Xs| ,Σ2=|Ye-Ys| </p><p> 式中 XS、Ys —— 被插補圓弧輪廓的起點坐標(biāo);</p><p> Xe、Ye —— 被插補圓弧輪廓的終點坐標(biāo)。</p><p> b、插補象限和圓弧走向&
21、lt;/p><p> 前面所討論的逐點比較法直線和圓弧插補,均是針對第一象限直線和順圓插補這種特定情況進(jìn)行的。然而,任何數(shù)控機床都應(yīng)具備處理不同象限、不同走向曲線的能力。</p><p> ?。?)四個象限中圓弧插補</p><p> 圓弧插補情況比較復(fù)雜,不僅有象限問題,而且還有圓弧走向問題?,F(xiàn)以第Ⅰ象限順圓SR1插補為例,介紹圓弧插補的特性。</p>
22、<p> 假設(shè)圓弧SE起點為S(XS,YS),終點為E(Xe,Ye),圓心在坐標(biāo)原點上。與順圓插補相似,當(dāng)某一時刻動點N(Xi,Yi)在圓弧的外側(cè)時,有F≥0成立,應(yīng)向?-Y)軸方向進(jìn)給一步,以減小誤差;若動點N(Xi,Yi)在圓弧內(nèi)側(cè),則應(yīng)?向?+X)軸方向進(jìn)給一步。由此可推導(dǎo)出第Ⅰ象限順圓插補偏差函數(shù)的遞推公式如下: </p><p> 當(dāng)Fi≥0時,向?-Y)軸方向進(jìn)給一步,則新的動點坐標(biāo)
23、為</p><p> Xi+1=Xi , Yi+1=Y(jié)i-1 </p><p><b> 新動點的偏差函數(shù)為</b></p><p> ∴ Fi+1=Fi-2Yi+1</p><p> 當(dāng)Fi<0時,向?+X)軸方向進(jìn)給一步,則新的動點坐標(biāo)為
24、 </p><p> Xi+1=Xi+1, Yi+1=Y(jié)i</p><p><b> 新動點的偏差函數(shù)為</b></p><p> ∴ Fi+1=Fi+2Xi+1 </p><p> 現(xiàn)將上式比較,可以看出
25、它們有兩點不同:</p><p> 1)當(dāng)Fi≥0或Fi<0時,對應(yīng)的進(jìn)給方向不同;</p><p> 2)插補計算公式中動點坐標(biāo)的修正也不同,以至于偏差計算公式也不相同。</p><p> 進(jìn)一步還可根據(jù)上述方法推導(dǎo)出其他象限不同走向圓弧的插補公式?,F(xiàn)將各種相應(yīng)偏差計算見表(表2-2)</p><p> 四個象限圓弧插補偏差計算與進(jìn)
26、給方向</p><p><b> 表2-2</b></p><p> 從表可以看出,當(dāng)按第Ⅰ象限順圓NR1進(jìn)行插補運算時,現(xiàn)若有意將X軸進(jìn)給反向,則可以走出第Ⅱ象限順圓SR2來;或者若將Y軸進(jìn)給反向,則可以走出SR4來;或者將X軸和Y軸的進(jìn)給均反向,則可以走出NR3來;并且這四種線型(NR1、SR2、NR3、SR4)使用的偏差計算公式都相同,無須改變。
27、 </p><p> 進(jìn)一步還可以看出,當(dāng)按第Ⅰ象限順圓NR1線型插補時,現(xiàn)若將計算公式坐標(biāo)X與Y對調(diào),即把X當(dāng)作Y,把Y當(dāng)作X,那么就可得到SR1的走向。類似地通過改變進(jìn)給方向,利用SR1的公式就可獲得其余三種線型(NR2、SR3、NR4)的走向。下面,我們對圓弧逐點比較法作一個簡要的介紹。</p><p> 四、逐點比較法插補軟件流程圖</p><
28、p> 五、算法描述(逐點比較法在VB中的具體實現(xiàn))</p><p> 根據(jù)上述基本原理,我們可以知道逐點比較法圓弧插補需要設(shè)置兩個終點計數(shù)器J∑X=|Xe – Xs|和J∑Y=|Ye - Ys|,分別對X軸和Y軸進(jìn)行終點監(jiān)控。每當(dāng)X軸或Y軸產(chǎn)生一個溢出脈沖,相應(yīng)的終點計數(shù)器就作減1修正,直到為零,表明該坐標(biāo)已到終點,并停止其坐標(biāo)的累加運算。只有當(dāng)兩個坐標(biāo)軸均到達(dá)終點時,圓弧插補才結(jié)束。</p>
29、;<p> 六、編寫算法程序清單</p><p> 第一二象限的逐點比較法順圓插補</p><p> Private Sub Command1_Click()</p><p> Dim r As Single, X As Integer, Y As Integer, a As Integer, b As Integer, c As Single
30、, d As Single, pi As Single, m As Integer, n As Integer</p><p> X = Int(Text1)</p><p> Y = Int(Text2)</p><p> a = Int(Text3)</p><p> b = Int(Text4)</p><p
31、> c = Atn(Abs(Y / X))</p><p> d = Atn(Abs(b / a))</p><p> pi = 3.14159265</p><p> m = X * X + Y * Y</p><p> n = a * a + b * b</p><p> Picture1.For
32、eColor = vbBlack</p><p> Picture1.DrawWidth = 2</p><p> If Option1.Value = True Then</p><p> If X <= 0 Or Y < 0 Or a <= 0 Or b < 0 Or m <> n or X>a Then</
33、p><p> Print MsgBox("錯誤!", 48, "提示信息")</p><p><b> Else</b></p><p> Picture1.Line (500, 500)-(500, 6500)</p><p> Picture1.Line (500, 650
34、0)-(5500, 6500)</p><p> Picture1.Line (5450, 6450)-(5500, 6500)</p><p> Picture1.Line (5450, 6550)-(5500, 6500)</p><p> Picture1.Line (550, 550)-(500, 500)</p><p>
35、Picture1.Line (450, 550)-(500, 500)</p><p> Picture1.ForeColor = vbRed</p><p> Picture1.DrawWidth = 5</p><p> r = Sqr(X * X + Y * Y) * 700</p><p> Picture1.Circle (
36、500, 6500), r, , d, c</p><p><b> End If</b></p><p> ElseIf Option2.Value = True Then</p><p> If X >= 0 Or Y < 0 Or a >= 0 Or b < 0 Or m <> n or X&g
37、t;aThen</p><p> Print MsgBox("錯誤!", 48, "提示信息")</p><p><b> Else</b></p><p> Picture1.Line (5500, 500)-(5500, 6500)</p><p> Picture1.
38、Line (500, 6500)-(5500, 6500)</p><p> Picture1.Line (560, 6530)-(500, 6500)</p><p> Picture1.Line (560, 6470)-(500, 6500)</p><p> Picture1.Line (5530, 600)-(5500, 500)</p>
39、<p> Picture1.Line (5470, 600)-(5500, 500)</p><p> Picture1.ForeColor = vbRed</p><p> Picture1.DrawWidth = 5</p><p> r = Sqr(X * X + Y * Y) * 700</p><p> Pic
40、ture1.Circle (5500, 6500), r, , pi - d, pi - c</p><p><b> End If</b></p><p><b> End If</b></p><p><b> End Sub</b></p><p> Privat
41、e Sub Command2_Click()</p><p> Dim k, m, j, l, n, F(30), X(30), Y(30) As Integer, a As Integer, b As Integer, c As Integer, d As Integer</p><p> a = Int(Text1)</p><p> b = Int(Te
42、xt2)</p><p> c = Int(Text3)</p><p> d = Int(Text4)</p><p><b> m = 0</b></p><p><b> l = 0</b></p><p><b> k = 0</b>&
43、lt;/p><p><b> F(m) = 0</b></p><p><b> X(m) = a</b></p><p><b> Y(m) = b</b></p><p> Picture1.ForeColor = vbGreen</p><p>
44、; Picture1.DrawWidth = 3</p><p> j = Abs(Abs(a) - Abs(c)) + Abs(Abs(b) - Abs(d))</p><p> Form1.CurrentX = 200</p><p> Form1.CurrentY = 200</p><p> Print "初始&q
45、uot;, "進(jìn)給方向 ", "F(0)=0", " X(0) =" & Int(Text1), " Y(0)=" & Int(Text2), " Xe = " & Int(Text4), " Ye = " & Int(Text3), " ∑ = " &am
46、p; j</p><p> If Option1.Value = True Then</p><p> For n = 1 To j</p><p> If F(m) >= 0 And j > 0 Then</p><p><b> m = m + 1</b></p><p>
47、<b> k = k + 1</b></p><p> F(m) = F(m - 1) - 2 * Abs(Y(m - 1)) + 1</p><p> X(m) = X(m - 1)</p><p> Y(m) = Y(m - 1) - 1</p><p> Picture1.Line (500 + 700
48、* (a + l), 6500 - 700 * (b - k + 1))-(500 + 700 * (a + l), 6500 - 700 * (b - k))</p><p> Form1.CurrentX = 200</p><p> Form1.CurrentY = 200 + m * 300</p><p> Print "第" &
49、amp; m & "步", " -△Y ", "F(" & m & ")=" & F(m), " X(" & m & ")=" & X(m), " Y(" & m & ")=" & Y(
50、m), " Xe = " & Int(Text4), " Ye = " & Int(Text3), " ∑ = " & j - n</p><p><b> Else</b></p><p><b> l = l + 1</b></p><
51、p><b> m = m + 1</b></p><p> F(m) = F(m - 1) + 2 * Abs(X(m - 1)) + 1</p><p> Y(m) = Y(m - 1)</p><p> X(m) = X(m - 1) + 1</p><p> Picture1.Line (500 +
52、 700 * (a + l), 6500 - 700 * (b - k))-(500 + 700 * (a + l - 1), 6500 - 700 * (b - k))</p><p> Form1.CurrentX = 200</p><p> Form1.CurrentY = 200 + m * 300</p><p> Print "第&qu
53、ot; & m & "步", " +△X ", "F(" & m & ")=" & F(m), " X(" & m & ")=" & X(m), " Y(" & m & ")=" &
54、; Y(m), " Xe = " & Int(Text4), " Ye = " & Int(Text3), " ∑ = " & j - n; ""</p><p><b> End If</b></p><p><b> Next n</b&g
55、t;</p><p> ElseIf Option2.Value = True Then</p><p> For n = 1 To j</p><p> If F(m) >= 0 And j > 0 Then</p><p><b> m = m + 1</b></p><p&g
56、t;<b> l = l + 1</b></p><p> F(m) = F(m - 1) - 2 * Abs(X(m - 1)) + 1</p><p> X(m) = X(m - 1) + 1</p><p> Y(m) = Y(m - 1)</p><p> Picture1.Line (5500 + 7
57、00 * (a + l), 6500 - 700 * (b + k))-(5500 + 700 * (a + l - 1), 6500 - 700 * (b + k))</p><p> Form1.CurrentX = 200</p><p> Form1.CurrentY = 200 + m * 300</p><p> Print "第&quo
58、t; & m & "步", " +△Y ", "F(" & m & ")=" & F(m), " X(" & m & ")=" & X(m), " Y(" & m & ")=" &
59、 Y(m), " Xe = " & Int(Text4), " Ye = " & Int(Text3), " ∑ = " & j - n</p><p><b> Else</b></p><p><b> k = k + 1</b></p>
60、<p><b> m = m + 1</b></p><p> F(m) = F(m - 1) + 2 * Abs(Y(m - 1)) + 1</p><p> Y(m) = Y(m - 1) + 1</p><p> X(m) = X(m - 1)</p><p> Picture1.Line (5
61、500 + 700 * (a + l), 6500 - 700 * (b + k))-(5500 + 700 * (a + l), 6500 - 700 * (b + k - 1))</p><p> Form1.CurrentX = 200</p><p> Form1.CurrentY = 200 + m * 300</p><p> Print &quo
62、t;第" & m & "步", " +△X ", "F(" & m & ")=" & F(m), " X(" & m & ")=" & X(m), " Y(" & m & ")="
63、; & Y(m), " Xe = " & Int(Text4), " Ye = " & Int(Text3), " ∑ = " & j - n</p><p><b> End If</b></p><p><b> Next n</b></p&
64、gt;<p><b> End If</b></p><p><b> End Sub</b></p><p> Private Sub Command3_Click()</p><p> Text1.Text = ""</p><p> Text2.Te
65、xt = ""</p><p> Text3.Text = ""</p><p> Text4.Text = ""</p><p> Picture1.Cls</p><p><b> Form1.Cls</b></p><p>
66、<b> End Sub</b></p><p> 七、軟件運行仿真效果</p><p><b> 八、 參考文獻(xiàn)</b></p><p> 《宿遷學(xué)院課程設(shè)計指導(dǎo)書》</p><p><b> 《數(shù)控原理與系統(tǒng)》</b></p><p>&l
67、t;b> 《計算機編程VB》</b></p><p><b> 九、設(shè)計小結(jié)</b></p><p> 在本次設(shè)計中,我們重點分析了逐點比較法的基本原理,這是實現(xiàn)軟件插補的基礎(chǔ),有了這個基礎(chǔ),我們可以畫出逐點比較法插補軟件的流程圖,然后根據(jù)流程圖再對逐點比較法在軟件中的插補算法進(jìn)行描述,由此找出其中的規(guī)律,最后在VB軟件中設(shè)計出一個小巧的軟件,
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 逐點比較法計算
- 2--插補象限、圓弧走向處理以及逐點比較法合成進(jìn)給速度
- 對偶比較法概念
- (土地)市場比較法
- 水平比較法18
- 分?jǐn)?shù)的大小比較倒數(shù)比較法
- 英國比較法縱論.pdf
- 市場比較法估價藍(lán)本
- 《市場比較法》ppt課件
- 出票的比較法研究
- 罪過的比較法研究.pdf
- 淺析市場比較法的改進(jìn)
- 比較法解釋方法研究.pdf
- 比較法向何處去
- 法釋義學(xué)比較法與案例研究
- 行政問責(zé)制的比較法研究.pdf
- 比較法視野下的中德侵權(quán)法(上)
- 商事登記制度的比較法研究
- 量刑程序構(gòu)造的比較法分析
- 資產(chǎn)評估市場法_并購案例比較法
評論
0/150
提交評論