2015-04-22

真圓度計算方法

這東西搞了兩個多禮拜,終於讓我找到合理的計算方式。

真圓度的計算方法,若使用半徑法,目前有4種方式(參考Wikipedia(en)資料)去取假想圓中心。
1. 最小區域圓法 Minimum Zone circle (MZC)
這是ISO及JIS B0621有規定的正式計算方法。此方法所取中心點畫同心圓,兩同心圓之間包含所有點,且同心圓所夾之面積區域為最小。
此方法之好處為,所取資料點只要落在原先所取的同心圓區域內,中心位置並不會變動。

2. 最小二乘圓法 Least Squares Circles (LSC)
以高斯方程式,計算各點到假想中心之距離總合為最小之假想圓中心。
當取得資料點到假想圓中心距離呈正常分布時,取得之假想圓最接近理想值。但若距離有偏頗時,容易取得不良中心值。

3. 最大內接圓中心 Maximum Inscribed Circle (MIC)
先取得最大內接圓,再取與內接圓同中心之外接圓。

4. 最小外接圓中心 Minimum Circumscribed Circle (MCC)
先取得最小外接圓,再取與外接圓同中心之內接圓。

--

最小二乘圓的計算方法在網路上有介紹。可以藉由Excel進行陣列計算而自動算出。
但是其他的計算法都沒有人寫出來。讓我找了半天快吐血= =。
在此筆記一下各個計算方法之計算手續。

1. 最小區域圓法
先取假想中心O。這比較簡單,可以由其他各種算法計算出的中心做一開始的假想圓,或是可以藉由多邊形幾何中心計算式(參考Wikipedia(zh)資料)先求出假想中心。
i) 取得假想中心O後,計算各點Pi到中心O之距離Ri。
ii) 將各點依距離Ri排序,取得距離最大兩點A,B,以及距離最小兩點C,D
iii) 以AB及CD取中線交點M。
iv) 將M設為新假想中心O,重新計算新中點O到各點之距離Ri。
v) 重複步驟ii到iv,直到A,B及C,D停止變動(亦即,距離最大點與距離最小點不變)。此假想中心O即為所求之最小區域圓中心。OA(OB)為最大圓半徑,OC(OD)為最小圓半徑。真圓度t=(OA-OC)

在最佳的狀況下,重複計算2次ABCD就會安定。

2. 最小二乘圓法
可以參照下面連結,使用Excel之行列計算功能(MINVERSE與MMULT),快速自動計算行列式得出中心
一般式による最小2乗法近似
此法算出之圓周到各點距離之幾何平均為最小。

3. 最大內接圓中心
i) 依照最小2乘法計算式算出假想中心Og
ii) 計算各點Pi到假想中心Og之距離Ri
iii) 根據上記Ri排序,取得距離最小之三點Pa, Pb, Pc
iv) 依據距離最小三點重新做三點取圓,取得最小內接圓中心O。
v) 重新計算中心O到各點距離。真圓度 t =最大距離Rmax-最小距離Rmin

4. 最小外接圓中心
計算順序與最大內接圓中心類似,唯所取基準三點為距離最大之三點。

以上

GoogleCode-Prettify

SyntaxHighlighter

人気の投稿