国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于VC的逐點比較空間直線插補算法改進與仿真

2015-09-13 11:44趙慶志
制造業(yè)自動化 2015年19期
關(guān)鍵詞:比較法象限機床

王 選,趙慶志

(山東理工大學(xué) 機械工程學(xué)院,淄博 255049)

0 引言

數(shù)控機床加工各種形狀的零件輪廓時,必須控制刀具相對于工件以給定的速度沿指定的路徑運動,這一功能稱為插補。絕大多數(shù)機床數(shù)控系統(tǒng)都具有平面直線和圓弧插補功能,很少具有三維空間插補功能。但在實際生產(chǎn)中,特別是在銑床、鏜床等三坐標(biāo)機床的加工中,經(jīng)常要求加工空間圖形,特別是空間直線,所以經(jīng)濟型數(shù)控機床的插補系統(tǒng)應(yīng)具有空間直線插補等功能。

1 基于基礎(chǔ)坐標(biāo)空間直線插補算法

傳統(tǒng)的逐點比較空間直線插補包括偏差判別、坐標(biāo)進給、新點偏差計算和終點判別4個步驟,該算法在坐標(biāo)進給時不考慮進給后插補誤差的大小而直接決定進給坐標(biāo),致使插補誤差比較大[1~4]。在前人研究的基礎(chǔ)上,引進基礎(chǔ)坐標(biāo)[5]的概念,提出了一種基于基礎(chǔ)坐標(biāo)的逐點比較空間直線插補算法,以實現(xiàn)機床X、Y、Z三軸聯(lián)動功能且有效地提高了空間直線插補速度與精度。

1.1 三維空間24區(qū)域劃分

在三維空間中,第一象限劃分為三個區(qū)域的方法[6]如下:利用過原點O的平面AOE,BOE,COE將第一象限空間為三個正四錐型的區(qū)域,即X≥Y、X≥Z區(qū)域1,Y>X、Y≥Z區(qū)域2,Z>X、Z>Y區(qū)域3,如圖1所示。這三個平面中AOE垂直平面XOY并且與X軸、Y軸的夾角為45°,BOE垂直平面YOZ并且與Y軸、Z軸的夾角為45°,COE垂直平面XOZ并且與X軸、Z軸的夾角為45°。其他每個象限劃分區(qū)域方法同第一象限相同,三維空間總共分割為24個區(qū)域。

圖1 第一象限劃分為三個區(qū)域

1.2 插補公式推導(dǎo)

如圖2(a)所示,設(shè)要加工區(qū)域1以O(shè)(0,0,0)為原點,以E(Xe,Ye,Ze)為終點的OE空間直線段,Xe≥Ye,Xe≥Ze,且Xe,Ye,Ze均為正值,X坐標(biāo)為基礎(chǔ)坐標(biāo)。

通過文獻[7]得知,每次單獨進給X坐標(biāo)、Y坐標(biāo)或Z坐標(biāo)叫做基礎(chǔ)坐標(biāo)進給,同時進給兩個坐標(biāo)或三個坐標(biāo)及以上叫做聯(lián)合坐標(biāo)進給。圖2(b)中的直線為OE在XOY坐標(biāo)平面內(nèi)的投影,當(dāng)基礎(chǔ)坐標(biāo)+X進給時,得出新偏差值為:

圖2 三維空間坐標(biāo)系

當(dāng)聯(lián)合坐標(biāo)+X、+Y進給時,得出新偏差值為:

空間直線OE在XOZ坐標(biāo)平面內(nèi)投影如圖2(c)所示,同樣當(dāng)基礎(chǔ)坐標(biāo)+X進給時,得出新偏差值為:

當(dāng)聯(lián)合坐標(biāo)+X、+Z進給時,得出新偏差值為:

有了上述4個平面偏差計算公式,現(xiàn)在關(guān)鍵是如何將其運用到空間直線的偏差判別和計算,以決定下一步進給的走向。下面規(guī)定:

1)若|Fy|>|Fxy|,|Fz|>|Fxz|,則沿X軸、Y軸和Z軸方向進給脈沖,令Fxy值賦給Fv,F(xiàn)xz值賦給Fz;

2)若|Fy|>|Fxy|,|Fz|≤|Fxz|,則沿X軸和Y軸方向進給脈沖,令Fxy值賦給Fy,F(xiàn)z值賦給Fxz;

3)若|Fy|≤|Fxy|,|Fz|>|Fxz,則沿X軸和Z軸方向進給脈沖,令Fy值賦給Fxy,F(xiàn)xy的值賦給Fz;

4)若|Fy|≤|Fxy|,|Fz|≤|Fxz|,則沿X軸方向進給脈沖,令Fy值賦給Fxy,F(xiàn)z值賦給Fxz。

以上規(guī)定適用于xe≥ye且xe≥ze區(qū)域,三維空間插補偏差判別與計算如表1所示。

2 改進后空間直線插程序設(shè)計

空間直線插補程序設(shè)計的基本思想是:程序開始時,根據(jù)向量的坐標(biāo)運算法[8]判斷空間直線所在的象限,然后根據(jù)基礎(chǔ)坐標(biāo)判別進入各自的區(qū)域進行插補運算,最后進行判終處理及返回到相應(yīng)的象限??臻g直線插補程序中直線所在象限判別與基礎(chǔ)坐標(biāo)判別方法比較簡單。下面對空間直線插補過程[9]進行詳細介紹,以第一象限區(qū)域1為例,X為基礎(chǔ)坐標(biāo),初始插補偏差均為0。插補流程圖如圖3所示,其他區(qū)域與此相似。

圖3 區(qū)域1插補流程

VC++6.0軟件采用面向?qū)ο蟮臋C理設(shè)計程序,適用于開發(fā)各類應(yīng)用系統(tǒng)。現(xiàn)在以VC++6.0軟件為程序開發(fā)平臺,對空間直線插補進行仿真[10]。

界面設(shè)計如圖4所示。繪圖區(qū)域尺寸為300×300,操作者可以在編輯框中設(shè)置直線坐標(biāo)和步長的任意大小,單擊繪制空間直線等按鈕可實現(xiàn)相應(yīng)功能。

圖4 界面設(shè)計

VC++6.0軟件設(shè)計程序需要大量映射函數(shù),下面介紹實現(xiàn)各功能的函數(shù)。

void CBaseLineDlg::OnBtnDrawzuobiao(),該函數(shù)實現(xiàn)繪制空間坐標(biāo)系功能。

void CBaseLineDlg::OnBtnDrawline(),該函數(shù)實現(xiàn)繪制空間直線功能。因為空間直線有X、Y、Z三個坐標(biāo)值,但是該空間直線在VC++中要以二維平面的形式繪制出來,所以設(shè)計編寫程序時運用到正等軸側(cè)變換矩陣T=[0.7071,0,-0.4082,0;-0.7071,0,-0.4082,0;0,0,0.8165,0;0,0,0,1]。插補過程程序也運用正等軸測變換矩陣,下文不再詳述。

void CBaseLineDlg::OnBtnClear(),該函數(shù)實現(xiàn)清屏功能。

void CBaseLineDlg::OnBtnClose(),該函數(shù)實現(xiàn)退出功能。

void CBaseLineDlg::OnBtnChabuline()

{ UpdateData();

if(m_originx==m_endx && m_originy==m_endy

&& m_originz==m_endz)

AfxMessageBox(“請輸入坐標(biāo)不同的兩點!”);

if(m_step==0)

AfxMessageBox(“請輸入插補步長!”);

//判斷空間直線所在象限

chax=m_endx-m_originx;

chay=m_endy-m_originy;

chaz=m_endz-m_originz;

if(chax>=0)

{ if(chay>=0)

{if(chaz>=0) Chabu1();

else Chabu5();}

else

{if(chaz>=0) Chabu2();

Else Chabu6();}}

else

{if(chay>=0)

{if(chaz>=0) Chabu4();

else Chabu8();}

else

{if(chaz>=0) Chabu3();

else Chabu7();}}}

該函數(shù)實現(xiàn)判別空間直線所在象限的功能,插補過程功能需調(diào)用Chabu1()等函數(shù)。

void CBaseLineDlg::Chabu1()

{//定義插補過程中變量

float drawx,drawy;

float Fx,Fy,Fz,Fxy,Fxz,Fyx,Fyz,Fzx,Fzy;

int Nx,Ny,Nz;

//運用正等軸側(cè)變換矩陣求得X、Y繪制坐標(biāo)

drawx=7.071*m_originx-7.071*m_originy;

drawy=-4.082*m_originx-4.082*m_originy

+8.165*m_originz;

pDC->MoveTo(drawx,drawy);

//第一象限X坐標(biāo)為基礎(chǔ)坐標(biāo)

if(abs(chax)>=abs(chay) &&

abs(chax)>=abs(chaz))

{ Fy=0;Fz=0;Fxy=0;Fxz=0;Nx=abs(chax);

while(Nx>=m_step)

{Fy=Fy-abs(chay)*m_step;

Fz=Fz-abs(chaz)*m_step;

Fxy=Fxy-(abs(chay)-abs(chax))*m_step;

Fxz=Fxz-(abs(chaz)-abs(chax))*m_step;

if(abs(Fxy)<=abs(Fy) && abs(Fxz)<=abs(Fz))

{ Fy=Fxy; Fz=Fxz;

m_originx=m_originx+m_step;

m_originy=m_originy+m_step;

m_originz=m_originz+m_step;}

else if(abs(Fxy)<=abs(Fy) &&abs(Fxz)>abs(Fz))

{ Fy=Fxy;Fxz=Fz;

m_originx=m_originx+m_step;

m_originy=m_originy+m_step;}

else if(abs(Fxy)>abs(Fy) &&abs(Fxz)>abs(Fz))

{ Fxy=Fy;Fxz=Fz;

m_originx=m_originx+m_step;}

else

{ Fxy=Fy;Fz=Fxz;

m_originx=m_originx+m_step;

m_originz=m_originz+m_step; }

drawx=7.071*m_originx-7.071*m_originy;

drawy=-4.082*m_originx-4.082*m_originy

+8.165*m_originz;

pDC->LineTo(drawx,drawy);

Nx=Nx-m_step;Sleep(100);}

//第一象限Y坐標(biāo)為基礎(chǔ)坐標(biāo)和第一象限Z坐標(biāo)為//基礎(chǔ)坐標(biāo)插補程序省略}

3 改進后空間直線插補實例與仿真

現(xiàn)加工區(qū)域1內(nèi)以坐標(biāo)原點O(0,0,0),E(6,5,3)為終點的空間直線段OE。利用改進后的插補算法進行插補計算如表2所示。

表2 空間直線插補過程

通過上述實例數(shù)據(jù)可以看出:優(yōu)化后的逐點比較法空間直線插補的總步長插補次數(shù)為6,大大提高了插補速度;優(yōu)化后的逐點比較法空間直線插補的最大偏差|F|=3,有效地提高了插補精度。

為了驗證上述算法的正確性,利用VC++6.0軟件編寫插補程序源代碼,模擬仿真空間直線插補過程,以實現(xiàn)空間直線插補功能如圖5所示。

圖5 插補實例仿真

4 結(jié)束語

基于基礎(chǔ)坐標(biāo)概念的逐點比較空間直線插補方法運用了新的插補公式,插補思路更加清晰,插補信息清晰明了;該方法中避免了有關(guān)文獻所述方法中涉及的導(dǎo)數(shù)計算、有可能出現(xiàn)斜率無窮大、計算麻煩等缺點;空間直線的插補步數(shù)等于其基礎(chǔ)坐標(biāo)的絕對值,終點判別一目了然且提高了插補速度;插補過程中的最大偏差大大減小了,有效地提高了逐點比較空間直線插補精度。該算法可以實現(xiàn)串聯(lián)機床三軸聯(lián)動、六軸并聯(lián)機床六軸聯(lián)動功能,進一步提高了數(shù)控系統(tǒng)的插補速度,有效地提高了逐點比較空間直線插補精度和刀具半徑補償精度。

[1] 席港港,趙慶志,王軍,田曉文.傳統(tǒng)逐點比較法直線插補方法的改進[J].山東理工大學(xué)學(xué)報,2012,(1):67-69.

[2] 李占斌,萬長慶.實現(xiàn)數(shù)控機床三軸聯(lián)動的逐點比較法[J].機床與液壓,2004,(7):64-65,22.

[3] 高有行.對逐點比較法的改進算法[J].西安電子科技大學(xué)學(xué)報,1998,25(3):299-303.

[4] 范希營,郭永環(huán).提高數(shù)控系統(tǒng)基準(zhǔn)脈沖直線插補速度及精度的研究[J].制造技術(shù)與機床,2010,(3):89-91.

[5] 王敏.差分插補方法及其在數(shù)控線切割機中的應(yīng)用(一)[J].電加工與模具,1981,(4):16-22.

[6] 趙慶志,席港港.基于基礎(chǔ)坐標(biāo)概念的逐點比較法圓弧插補原理及其應(yīng)用[J].制造業(yè)自動化,2012,34(21):69-71,84.

[7] 逄啟壽,馮羽生.基于C語言的數(shù)控直線逐點比較法的程序?qū)崿F(xiàn)[J].制造業(yè)自動化,2009,31(6):54-56.

[8] 聶建成,吳竹溪,肖潔,吳鐵軍.基于直線插補的進給方向判斷新算法[J].組合機床與自動化加工技術(shù),2009,(10):12-14.

[9] 葉秀云,朱文,田剛.一種簡捷的快速直線插補新算法[J].組合機床與自動化加工技術(shù),2005,(7):28-30.

[10] 楊代華,陳志輝.基于實時操作系統(tǒng)μC/OS—II的數(shù)控系統(tǒng)研制[J].制造技術(shù)與機床,2007,(12):20-23.

猜你喜歡
比較法象限機床
勘 誤
機床展會
復(fù)數(shù)知識核心考點綜合演練
應(yīng)用比較法 培養(yǎng)物理知識遷移能力
怎樣引導(dǎo)學(xué)生證明不等式
常數(shù)牽手象限暢游中考
2019,中國機床變中求進
基于通用機床的100%低地板有軌電車輪對旋修
機床擠刀裝置的控制及應(yīng)用
平面直角坐標(biāo)系典例分析