基於上述算法,利用Matlab中的優化工具箱對自標定模型的求解問題進行了計算機仿真。首先給定系統參數真值,如表2所示,為了接近實際情況,表中數據並沒有都取整數。同時給出20個動點坐標,由這些數據可以計算出相對長度變動量lij,再由lij的值反過來精確標定9個系統參數和20個動點坐標[10],共69個未知量。分以下兩種情況進行仿真。
(1)假設雷射跟蹤幹涉儀的讀數沒有誤差,即長度變動量測量值lij沒有誤差。仿真中採用了20個動點數,初始值偏離真值±500mm左右(按均勻分布給出偏差),迭代精度為1e-10。仿真結果如表3所示。表中數據單位為mm,而殘差平方和單位為mm2。
表中「最大偏差」是指迭代終值與真值的最大偏差,由於實際測量時真值是不知道的,「最大偏差」也就得不到。只有「殘差平方和」在實際測量中是有意義的,只要殘差平方和足夠小,即可認為找到優化解。
仿真結果表明,在雷射幹涉儀的讀數沒有誤差時,經過多次迭代,可以得到任意精度要求的解。由表3可見,對於不同初值,都得到同一結果(偏差小到不影響後續計算處理),說明自標定算法對初值不敏感、初值範圍寬、計算結果準確,是求解自標定最小二乘解的有效算法。
(2)雷射跟蹤幹涉儀的讀數lij有誤差,設誤差大小分別為±1μm和±5μm。仿真中採用20個動點數,這20個動點在區域[0,3000]×[0,3000]×[0,3000]mm3內按均勻分布隨機產生。給定初始值偏離真值±200mm左右(按均勻分布給出偏差),而測量值lij誤差分別按正態分布N(0,1μm)和N(0,5μm)給出。仿真結果分別列於表4和表5。
仿真結果表明,雷射跟蹤幹涉儀的測量精度對系統自標定的計算結果影響很大。由表4和表5可看出,當測量誤差分別為±1μm和±5μm時,迭代終值與真值的最大偏差為約為0.05mm和0.2mm,相當於雷射跟蹤幹涉儀測量誤差的50倍和40倍左右。進一步的仿真表明,當測量值lij誤差較大時,如超過±100μm,則可能得不到符合要求的最小二乘解,按前面得到的結論估算,測量誤差超過±100μm時,迭代終值與真值的最大偏差可能超過5mm,這麼大的標定誤差,對於高精度測量已完全失去意義。因此,在自標定過程中,需要保證測量值lij的精度。