4. 將記錄的數(shù)值輸入系統(tǒng)之內(nèi),系統(tǒng)會(huì)自動(dòng)生成X軸Z向的直線度誤差(圖2)
0 _& {5 m) q$ l( W4 a @[attach]380275[/attach]
! H' o5 } c& p4 b+ g4 s8 c圖1 X軸Z向直線度檢測示意圖
) m+ ]) O7 U! E5 c. Z8 f6 E3 i3 I
% D7 \/ l, e: u+ x+ E. [+ p+ W/ x6 J9 U0 M
[attach]380277[/attach]
0 q6 W- B% o4 u1 ]2 y2 c. F: u% P圖2 檢驗(yàn)結(jié)果樣例
* N5 a$ t. ]" g7 x9 L$ B. h
. I4 [) }: S" J A% n3 e2 b$ ]: ]問題的提出:9 r s0 R, M* m( r' m
公司規(guī)定的該處直線度誤差應(yīng)為11μm之內(nèi),據(jù)車間及工藝反映:,自從該機(jī)型量產(chǎn)后的幾十臺(tái)檢驗(yàn)結(jié)果,該處直線度誤差一直在超差邊緣,機(jī)械調(diào)整非常困難,公司內(nèi)部不允許在工廠階段進(jìn)行軟件優(yōu)化補(bǔ)償,因?yàn)楝F(xiàn)在我主管該產(chǎn)品了,恰好之前按照總部的要求將導(dǎo)軌及絲杠都做了優(yōu)化改進(jìn),鑄件也都做了更改,超差的兩臺(tái)機(jī)器正好是前兩臺(tái)樣機(jī),于是質(zhì)量部門召開了一次會(huì)議,要求從機(jī)械上想辦法對(duì)該問題做出一些分析,并提出改進(jìn)的辦法。
- f3 g( h/ H3 ~: H y
解決問題的思路: 5 ?( ~9 ^" a T7 u6 l
聯(lián)想到該機(jī)床的基本結(jié)構(gòu),立柱中間為了放置轉(zhuǎn)臺(tái)開了一個(gè)很大的口子,這必然影響到整個(gè)機(jī)床在此處的剛性,反映到上面提到的x軸z方向直線度便是兩側(cè)高而中間低的情況,這在軟件上也非常清楚的顯示了出來(圖3),解決的辦法就是在立柱的導(dǎo)軌上加工出一個(gè)中凸的曲線來抵消重力對(duì)直線度的影響。
) `! |' V! i$ c* A. u3 K- y0 |[attach]380278[/attach] V' I5 b- U, Q3 B
圖3 直線度誤差曲線圖
0 q- p# I5 l/ Q9 Y) V' A+ [% S6 B問題的一般化:
4 q( F7 q9 @0 Z0 X0 t我的雄心絕不僅僅是隨便給出一個(gè)結(jié)果這么簡單,我想把這個(gè)問題更加一般化:
, X4 X: M2 m a- W" z: f
1.如何根據(jù)輸入的幾個(gè)點(diǎn)求整條軸的直線度?
/ F5 ^5 i1 s4 v8 L6 Z8 z2.如果該直線度的走向有規(guī)律可循,如何找到該規(guī)律?換言之,該直線度的走向能否被一條曲線擬合,如果能,那曲線的方程應(yīng)該是什么?
7 ]" P8 I2 v4 z# ^9 `
3.如果我手上有幾十臺(tái)該直線度的檢測數(shù)據(jù),我如何來求得最適合的一條擬合曲線?
5 f$ V; F/ L* i- y& f4.如何求得3中提出來的擬合曲線的補(bǔ)償曲線?
6 l2 ]& T' y2 N- s2 k% L" |( H
5.補(bǔ)償曲線求好后,如何反推其正確性(通過已有的機(jī)床直線度數(shù)據(jù)反求)
3 I) h$ b& h* C9 ?- N9 d具體的解決思路:# w0 g) d( U: W8 T2 }
為了便于理解,我對(duì)機(jī)床軸和坐標(biāo)軸的對(duì)應(yīng)關(guān)系做一個(gè)描述:令機(jī)床軸X軸的中點(diǎn)作為坐標(biāo)的原點(diǎn),坐標(biāo)軸X軸的正向?yàn)闄C(jī)床軸X軸行程的正向,這樣,這個(gè)問題中700mm的行程可以在坐標(biāo)軸上對(duì)應(yīng)為為X軸的-350,-320,…,0,…,320,350,單位為毫米,坐標(biāo)軸Y軸和機(jī)床Z軸重合,方向一直,單位為微米。
, p/ ]( J# p0 d' }; v; w! Z+ ~9 Q$ j
1.如何根據(jù)輸入的幾個(gè)點(diǎn)求整條軸的直線度?
`9 Y! p; y8 f' O0 q4 o3 K
這個(gè)問題比較簡單,只要在坐標(biāo)軸上畫出每個(gè)點(diǎn)對(duì)應(yīng)的X軸Z方向的直線度測量數(shù)據(jù),然后通過最小二乘法擬合出一條直線,每個(gè)點(diǎn)與該直線的豎直距離(注意是Z方向差值的絕對(duì)值,而不是點(diǎn)到直線的垂直距離,這個(gè)具體可以參考最小二乘法的定義及求法)的差值即為該點(diǎn)的偏差值,這個(gè)行程上點(diǎn)與點(diǎn)之間偏差值的差的最大值就是X軸在Z方向的直線度。下面就以圖2的檢測數(shù)據(jù)為例編程求出該機(jī)床的X軸Z方向直線度(圖4)。
2 z6 L6 B9 e9 H7 T% a1 H# o
[attach]380279[/attach]
圖4 X軸Z方向的直線度求法模擬
9 }& G* H7 v" S3 P
由圖中可以看出,用該方法求出的偏差值及直線度誤差與系統(tǒng)給出的完全一致,這里給出的精度甚至更高。(具體的編程代碼我就不給出了,熟悉編程的朋友可以自己去編個(gè)看看)
2.如果該直線度的走向有規(guī)律可循,如何找到該規(guī)律?換言之,該直線度的走向能否被一條曲線擬合,如果能,那曲線的方程應(yīng)該是什么?
2 z) \) c& l, b8 _; @
上面既然求出了每個(gè)點(diǎn)的實(shí)際偏差值,問題就簡單了:把實(shí)際偏差值輸入到坐標(biāo)軸中,用合適的曲線模擬出偏差的趨勢或走向,用的當(dāng)然還是最小二乘法。至于擬合曲線的選取,我這里選擇了二次曲線,當(dāng)然讀者也可以選更高次的曲線模擬。(圖5)
! |) n7 v/ o- [2 f6 ~0 {9 b
[attach]380280[/attach]
" O/ n1 {/ x! q; E7 q, ?( ?5 z2 i0 s圖5 用二次曲線擬合直線度偏差點(diǎn)
5 t1 s; O2 h/ a* n8 ]' y5 o& ?8 \# [) _7 X6 M3 a
從圖中可見,模擬的效果還是不錯(cuò)的,點(diǎn)的位置基本上符合了二次曲線的規(guī)律。
" W, f9 i7 a( w( D" w
# w, ^) N$ ?- {2 D# P1 p3.如果我手上有幾十臺(tái)該直線度的檢測數(shù)據(jù),我如何來求得最適合的一條擬合曲線?
: D! o2 G5 J/ @9 g5 S4 D! S
從問題2中我們可以求得每臺(tái)機(jī)床的直線度情況,但是供應(yīng)商加工鑄件的精度在一定范圍內(nèi)是隨機(jī)的,這就需要我們從大數(shù)據(jù)中求得最適合的一條曲線,通過該條曲線的加工補(bǔ)償,可以使得每臺(tái)機(jī)床直線度都不至于偏離太遠(yuǎn)。這個(gè)最適合應(yīng)該怎么定義呢?我還是使用最小二乘法的原理,在軸的每個(gè)特定位置求出剛剛擬合出的幾十條曲線的直線度偏差值,然后找到該位置上的一個(gè)偏差值使得該值到其他機(jī)床在該位置偏差的距離的平方和最小,如此再做最小二乘擬合,所得的二次曲線便是幾十臺(tái)機(jī)床直線度誤差的平均值了。(圖6)
* K' L' ~$ {& T G7 ~[attach]380281[/attach]0 p0 o5 L- G4 O0 S2 M# @
圖6 多臺(tái)機(jī)床直線度數(shù)據(jù)擬合
8 B5 | p. C! ]* N/ _$ V* I3 I4 O5 p- H1 {- j& p! u8 S
本次我一共擬合了10臺(tái)的數(shù)據(jù),得到了上述的表達(dá)式和函數(shù)圖像
# n* K9 Y) h* F6 \) R
4.如何求得3中提出來的擬合曲線的補(bǔ)償曲線?
% _8 o( n! D0 s% ^% v* R
上面的曲線方程出來以后,這一步也就可以順利解答了,只要把上面的方程按X軸對(duì)稱即可得到補(bǔ)償函數(shù),當(dāng)然這個(gè)函數(shù)還不是我們要的,為了方便加工,給出的函數(shù)需要假設(shè)兩頭為0,中間高,從而讓加工廠不必費(fèi)力再去計(jì)算各點(diǎn)的差值,直接從函數(shù)中就可以計(jì)算出每個(gè)點(diǎn)的補(bǔ)償值。(圖7)當(dāng)然考慮的實(shí)際的精度,中間一項(xiàng)可以刪除。從而得到更加簡潔的函數(shù)表達(dá)式。
[attach]380282[/attach]
* h$ G: _( G. U/ \圖7 最終得到的可用于加工的補(bǔ)償函數(shù)及圖像
4 d! R( O3 }% q8 G% |6 k
+ P* ]9 L+ g! m/ R- G5.補(bǔ)償曲線求好后,如何反推其正確性(通過已有的機(jī)床直線度數(shù)據(jù)反求)
把上面求出的補(bǔ)償曲線與每臺(tái)機(jī)床的直線度誤差曲線合并后,再使用步驟1的方法可以得到補(bǔ)償后的結(jié)果。(圖8)
; _( w, _3 H9 x[attach]380283[/attach]
* _; `9 g. o. g) o4 x$ I圖8 補(bǔ)償前后直線度誤差對(duì)比
6 W4 T. h! ^) l, N0 J ~
" r7 |, `$ n3 A0 S, y 由上圖可以看出,補(bǔ)償后的直線度誤差沒有超過6微米的,除了第5臺(tái)機(jī)床,其他的都要明顯好于補(bǔ)償前的結(jié)果。
) L5 A, o+ l7 ~
結(jié)論:/ n% D8 x U' j" W6 R( E, S
通過機(jī)械的補(bǔ)償可以達(dá)到預(yù)期的效果,但是值得注意的是,補(bǔ)償后的誤差仍然可以通過系統(tǒng)插值法來進(jìn)一步補(bǔ)償。而軟件補(bǔ)償是針對(duì)單臺(tái)機(jī)床來說的,從下圖可以看到,如果需要,二次補(bǔ)償后直線度在1微米之內(nèi)甚至更高精度要求內(nèi)完全沒有問題。
O' |& ] I- G( ^5 z ]* V1 P
[attach]380284[/attach]
3 O6 x0 J2 o( F* V. e1 j
圖9 補(bǔ)償后的偏差仍然可以通過二次曲線在軟件中補(bǔ)償
7 |; g$ `' `# M/ |# r/ J
, s+ `5 e1 M* {6 S
8 F: p5 I- [/ H. S0 s+ K2 i' a1 O* L* e; ?7 c# b$ p- J; z9 g
" K$ ~1 d7 @: n8 M$ ^