4. 將記錄的數(shù)值輸入系統(tǒng)之內(nèi),,系統(tǒng)會自動生成X軸Z向的直線度誤差(圖2)
( `& U5 d, t4 D2 Z1 G$ D! L
3 U8 G w U& a! L, i! r% {
圖1 X軸Z向直線度檢測示意圖
; [$ x z2 l8 k4 I4 [2 _
+ h+ J& A( \3 P: p4 n* S
. E8 d* m* k- @% j7 t. G& c7 E6 s
5 b1 l/ t/ J6 V: r3 D圖2 檢驗結(jié)果樣例
+ n8 K% M$ ~5 s3 h3 x
, f0 y. K+ ^- @4 d: \6 N6 f問題的提出:7 u) j! M! s: z- |7 C: w7 N2 p
公司規(guī)定的該處直線度誤差應(yīng)為11μm之內(nèi),,據(jù)車間及工藝反映:,,自從該機(jī)型量產(chǎn)后的幾十臺檢驗結(jié)果,該處直線度誤差一直在超差邊緣,,機(jī)械調(diào)整非常困難,,公司內(nèi)部不允許在工廠階段進(jìn)行軟件優(yōu)化補(bǔ)償,因為現(xiàn)在我主管該產(chǎn)品了,,恰好之前按照總部的要求將導(dǎo)軌及絲杠都做了優(yōu)化改進(jìn),,鑄件也都做了更改,超差的兩臺機(jī)器正好是前兩臺樣機(jī),,于是質(zhì)量部門召開了一次會議,,要求從機(jī)械上想辦法對該問題做出一些分析,并提出改進(jìn)的辦法,。
) G4 U* s) X; c [
解決問題的思路:
$ P" f+ J% a! w6 c2 K聯(lián)想到該機(jī)床的基本結(jié)構(gòu),,立柱中間為了放置轉(zhuǎn)臺開了一個很大的口子,這必然影響到整個機(jī)床在此處的剛性,,反映到上面提到的x軸z方向直線度便是兩側(cè)高而中間低的情況,,這在軟件上也非常清楚的顯示了出來(圖3),解決的辦法就是在立柱的導(dǎo)軌上加工出一個中凸的曲線來抵消重力對直線度的影響,。
2 y/ N# c' c2 c% h! ^8 x9 l ]: A- Q8 {7 n
圖3 直線度誤差曲線圖
4 ~0 Z' v) X! J! ?
問題的一般化:
! ^+ x) L1 Y1 _, L4 L" Y9 |8 X5 a我的雄心絕不僅僅是隨便給出一個結(jié)果這么簡單,,我想把這個問題更加一般化:
# T) [# ^* x& T3 c
1.如何根據(jù)輸入的幾個點(diǎn)求整條軸的直線度?
A; {, g* u: U" M: d2.如果該直線度的走向有規(guī)律可循,如何找到該規(guī)律,?換言之,,該直線度的走向能否被一條曲線擬合,如果能,,那曲線的方程應(yīng)該是什么,?
, X+ B3 Z3 E( @2 x3.如果我手上有幾十臺該直線度的檢測數(shù)據(jù),我如何來求得最適合的一條擬合曲線,?
s, A9 X; H! n# z7 x! U4.如何求得3中提出來的擬合曲線的補(bǔ)償曲線,?
, H& H) Z+ Y) L% T. B; o: y6 z
5.補(bǔ)償曲線求好后,如何反推其正確性(通過已有的機(jī)床直線度數(shù)據(jù)反求)
$ ~" F! t& M- z7 P* ^) z2 J具體的解決思路:
; n) \5 u. l; S& |( H# g0 Z為了便于理解,,我對機(jī)床軸和坐標(biāo)軸的對應(yīng)關(guān)系做一個描述:令機(jī)床軸X軸的中點(diǎn)作為坐標(biāo)的原點(diǎn),,坐標(biāo)軸X軸的正向為機(jī)床軸X軸行程的正向,這樣,,這個問題中700mm的行程可以在坐標(biāo)軸上對應(yīng)為為X軸的-350,,-320,…,,0,,…,320,,350,,單位為毫米,,坐標(biāo)軸Y軸和機(jī)床Z軸重合,方向一直,,單位為微米,。
8 Z0 F5 H) C0 E j. y
1.如何根據(jù)輸入的幾個點(diǎn)求整條軸的直線度?
0 s9 ~- ~# }5 P& o: f這個問題比較簡單,只要在坐標(biāo)軸上畫出每個點(diǎn)對應(yīng)的X軸Z方向的直線度測量數(shù)據(jù),,然后通過最小二乘法擬合出一條直線,,每個點(diǎn)與該直線的豎直距離(注意是Z方向差值的絕對值,而不是點(diǎn)到直線的垂直距離,,這個具體可以參考最小二乘法的定義及求法)的差值即為該點(diǎn)的偏差值,,這個行程上點(diǎn)與點(diǎn)之間偏差值的差的最大值就是X軸在Z方向的直線度。下面就以圖2的檢測數(shù)據(jù)為例編程求出該機(jī)床的X軸Z方向直線度(圖4),。
* @0 _9 e" c6 Y" K* z
圖4 X軸Z方向的直線度求法模擬
& C7 g4 R& O% G8 V' Q O! ?' V, i; E由圖中可以看出,,用該方法求出的偏差值及直線度誤差與系統(tǒng)給出的完全一致,這里給出的精度甚至更高,。(具體的編程代碼我就不給出了,,熟悉編程的朋友可以自己去編個看看)
2.如果該直線度的走向有規(guī)律可循,如何找到該規(guī)律,?換言之,,該直線度的走向能否被一條曲線擬合,如果能,,那曲線的方程應(yīng)該是什么,?
3 [/ [/ z5 o5 Y/ ]
上面既然求出了每個點(diǎn)的實際偏差值,問題就簡單了:把實際偏差值輸入到坐標(biāo)軸中,,用合適的曲線模擬出偏差的趨勢或走向,,用的當(dāng)然還是最小二乘法。至于擬合曲線的選取,,我這里選擇了二次曲線,,當(dāng)然讀者也可以選更高次的曲線模擬。(圖5)
5 J8 G1 \2 M! y& R9 ]/ P
* m3 m! g$ F# i, c2 }: ]+ _
圖5 用二次曲線擬合直線度偏差點(diǎn)
4 Y L1 t* @) O& y. t O1 W- A. C3 X/ e6 E% I& @
從圖中可見,,模擬的效果還是不錯的,,點(diǎn)的位置基本上符合了二次曲線的規(guī)律。
% W/ h0 z9 R2 F, V0 z$ b! ?
4 }5 i* e" }7 v+ w- G) ~/ }3.如果我手上有幾十臺該直線度的檢測數(shù)據(jù),,我如何來求得最適合的一條擬合曲線,?
$ s; S) t- i5 V0 |. V- _4 v# z
從問題2中我們可以求得每臺機(jī)床的直線度情況,但是供應(yīng)商加工鑄件的精度在一定范圍內(nèi)是隨機(jī)的,,這就需要我們從大數(shù)據(jù)中求得最適合的一條曲線,,通過該條曲線的加工補(bǔ)償,可以使得每臺機(jī)床直線度都不至于偏離太遠(yuǎn)。這個最適合應(yīng)該怎么定義呢,?我還是使用最小二乘法的原理,,在軸的每個特定位置求出剛剛擬合出的幾十條曲線的直線度偏差值,然后找到該位置上的一個偏差值使得該值到其他機(jī)床在該位置偏差的距離的平方和最小,,如此再做最小二乘擬合,所得的二次曲線便是幾十臺機(jī)床直線度誤差的平均值了,。(圖6)
. N. Z" j* F8 E8 i7 ^
: c% p3 n3 b1 N7 T
圖6 多臺機(jī)床直線度數(shù)據(jù)擬合
- W4 W3 o$ f" Q/ r. K, p, q# ?% P
3 D' `* J, j0 t% @3 y1 Q
本次我一共擬合了10臺的數(shù)據(jù),,得到了上述的表達(dá)式和函數(shù)圖像
$ y+ B$ y( h# H% q! H
4.如何求得3中提出來的擬合曲線的補(bǔ)償曲線?
! V, k9 U. O4 |4 g- a* s( p! K上面的曲線方程出來以后,,這一步也就可以順利解答了,,只要把上面的方程按X軸對稱即可得到補(bǔ)償函數(shù),當(dāng)然這個函數(shù)還不是我們要的,,為了方便加工,,給出的函數(shù)需要假設(shè)兩頭為0,中間高,,從而讓加工廠不必費(fèi)力再去計算各點(diǎn)的差值,,直接從函數(shù)中就可以計算出每個點(diǎn)的補(bǔ)償值。(圖7)當(dāng)然考慮的實際的精度,,中間一項可以刪除,。從而得到更加簡潔的函數(shù)表達(dá)式。
4 I* X5 O. y% c, g圖7 最終得到的可用于加工的補(bǔ)償函數(shù)及圖像
# _9 }- P$ l' f& e+ @6 d1 V6 m4 F1 z + j$ z4 n, [) D$ J. }3 s% W6 Q3 r
5.補(bǔ)償曲線求好后,,如何反推其正確性(通過已有的機(jī)床直線度數(shù)據(jù)反求)
把上面求出的補(bǔ)償曲線與每臺機(jī)床的直線度誤差曲線合并后,,再使用步驟1的方法可以得到補(bǔ)償后的結(jié)果。(圖8)
9 h" X! ]- H$ ?% d$ ?8 `" q+ n2 J
圖8 補(bǔ)償前后直線度誤差對比
0 n+ O- Q) w0 u, v
: z7 N: x. Z; b- f' w5 n6 O @0 z 由上圖可以看出,,補(bǔ)償后的直線度誤差沒有超過6微米的,,除了第5臺機(jī)床,其他的都要明顯好于補(bǔ)償前的結(jié)果,。
' U/ ^9 h7 K! ^8 @- O結(jié)論:
% T, b8 ?' ?, R! t, S6 G通過機(jī)械的補(bǔ)償可以達(dá)到預(yù)期的效果,,但是值得注意的是,補(bǔ)償后的誤差仍然可以通過系統(tǒng)插值法來進(jìn)一步補(bǔ)償,。而軟件補(bǔ)償是針對單臺機(jī)床來說的,,從下圖可以看到,如果需要,,二次補(bǔ)償后直線度在1微米之內(nèi)甚至更高精度要求內(nèi)完全沒有問題,。
2 c, z! b, O6 j% j/ M9 l# |
D4 R% _8 u, Y/ F/ x圖9 補(bǔ)償后的偏差仍然可以通過二次曲線在軟件中補(bǔ)償
8 w* |: H" ?2 g
. p* t: R1 |$ E! p
" h, Q" u8 D- D1 n0 O
/ W8 ~- n q. A+ t" K6 m& v4 ^) ~
: _3 X1 h" _* }2 R7 H