2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論