王一璋, 何小妹
(中航工業北京長城計量測試技術研究所,北京100095)
對回轉體類零件的測量和評價,涉及直徑、圓度、圓跳動、平面度、垂直度和直線度等多個尺寸參數和形位參數,坐標測量機測量是應用最為廣泛的一種方法[1]。為滿足對回轉體類零件高精度、高效率的校準需求,課題組研制了一套四坐標綜合測量儀樣機。測量儀在測量中必然會產生一定的誤差,利用誤差建模補償技術,能夠在資金和技術相對有限的情況下有效地提高整體測量精度。
四坐標綜合測量儀樣機使用了RationalDMIS坐標測量軟件,但該軟件只支持直線運動21項誤差的補償,不提供四軸補償的功能。同其它商業軟件一樣,其內部算法不公開,也沒有提供對其誤差模型進行修改的可能性。因此,本文依據四坐標綜合測量儀空間誤差模型,基于VB.NET平臺,構造合適的算法,結合MATLAB、Access和坐標測量軟件二次開發接口編程,開發了誤差仿真分析應用軟件,實現對測量數據進行補償處理的功能。
編寫四坐標綜合測量儀誤差仿真分析應用軟件,涉及到多項數值計算方法。如果完全采用C++或C#等高級語言,需要開發人員具有相當高的算法和編程水平,而且費時費力。為了提高開發效率,綜合利用多種開發工具的優勢,采用接口編程技術,而RationalDMIS軟件自身也帶有供VB和VC進行二次開發的部分功能。
MATLAB擁有強大的科學運算能力、簡潔的程序設計理念、便捷的開發接口等優勢,在科學計算和模擬仿真等方面應用廣泛。基于它的這些優點,在仿真程序的算法開發中選擇了MATLAB作為開發工具。VB.NET在圖形界面開發等方面功能強大,可以對Access數據庫進行查詢、修改、添加和刪除等操作,但在數值計算和圖形繪制等方面并不易用。由于仿真程序需要進行大量的計算,并且初始誤差數據需要分別設置,通過調用Access的數據庫引擎可以方便地對數據庫里的誤差數據進行檢索、更新等各種管理。
因此,在誤差仿真分析軟件開發中,采用VB.NET進行程序界面設計和功能模塊開發,MATLAB進行核心算法的編寫,Access進行數據的保存和管理,同時利用RationalDMIS的測量功能。通過混合編程,實現軟件與用戶的外在交互,隱藏其相互之間的內在調用,從而提高了軟件的易用性。
VB.NET與MATLAB混合編程通常可以使用COM組件、DDE動態數據交換、MatrixVB插件和ActiveX技術等方法,它們的適用程度和范圍均不同[2]。其中,ActiveX技術是Microsoft公司提供的一種用于模塊集成的協議,它允許應用程序或組件控制另一個應用程序或組件的運行。VB.NET和MATLAB均支持ActiveX自動化控制端協議和服務器端協議,這樣通過ActiveX協議就可以相互調用和控制,即實現混合編程過程[3]。RationalDMIS對VB所支持的開發方式也使用了ActiveX技術,因此在編程中采用這種方法,靈活性較好,適合隨時對算法進行修改與調試。
使用ActiveX方法的步驟是:首先在VB.NET應用程序中創建MATLAB的ActiveX對象,然后通過各種方法和函數實現對MATLAB的調用。該方法的使用過程如下:
步驟1:啟動MATLAB的自動化服務。使用創建對象的方法,在程序中加入“MATLAB=CreateObject("MATLAB.Application")”。
步驟2:利用MATLAB對象的各種方法和函數,在VB.NET與MATLAB的自動化服務器端進行命令和數據的傳遞。表1給出了這些方法和函數的詳細功能。

表1 VB.NET訪問MATLAB的各種方法和功能
通過上述方法即可在VB.NET中對MATLAB進行調用和控制。在混合編程過程中,由于MATLAB和VB.NET中數據傳遞不正確引起的錯誤較多。這是因為MATLAB和VB.NET的參數傳遞形式以及數據類型不一樣,而且MATLAB中使用了大量矩陣數組運算,因此必須注意不同數據類型的轉換和調用。VB.NET接受MATLAB數據的變量,一般均為Object對象類型。

表2 VB.NET中訪問RationalDMIS對象的常用方法及功能
與前文所述的調用MATLAB方法類似,在程序中需要首先創建被調用的對象,加入“NeptunePublic=CreateObject("Neptune.KNeptunePublic")”語句之后,就可以使用該對象的各種方法與RationalDMIS軟件之間進行命令和數據的傳遞。表2列出了一些常用方法的功能。
數據庫的構建是整個系統軟件的基礎,應具有較高的可靠性、條理性和較低的冗余性。選用Microsoft Access 2007作為數據庫管理系統。通過操作ADO.NET連接數據庫,并完成數據整理、編輯和分析等功能。
VB.NET提供了數據向導用于連接數據庫,其數據庫應用的主要方法是ADO.NET,提供了訪問、搜索、更新、管理數據庫的類庫。ADO.NET的兩個主要組件是數據提供程序和DataSet,數據提供程序用于連接、讀取和管理數據庫,將所需數據保存在DataSet中,之后斷開與數據庫的連接進行脫機處理,以供其他客戶端訪問數據庫[4]。
利用上述技術,進行了四坐標綜合測量儀誤差仿真分析應用軟件的開發。該軟件目前主要具備三項功能:(1)實現了對單軸誤差的仿真計算和分析,(2)對空間綜合誤差的仿真分析和處理,(3)加入四軸補償功能,從而完善了RationalDMIS的幾何誤差補償功能,并提供了綜合精度測試分析。
軟件開發過程大致分為5個步驟。首先是進行功能分析,然后根據功能進行VB界面設計,編寫誤差模型的MATLAB算法和調用RationalDMIS的控制命令,最后上機進行調試。流程如圖1所示。

圖1 軟件開發流程
混合編程中各部件的相互關系結構如圖 2所示,VB.NET平臺是其中的核心,直接面向用戶。
軟件中誤差補償的計算流程為:首先在數據庫中錄入四坐標綜合測量儀的各項系統誤差,對單項誤差數據進行插值計算,最后基于已知的理論基礎進行補償。

圖2 軟件結構
(1)單軸誤差仿真計算
圖3所示為單軸誤差仿真計算界面,其主要包括誤差數據導入、曲線擬合、插值點計算、仿真數據生成和數據圖形顯示區域六部分。通過輸入坐標點數據,可以進行單軸測量補償的仿真計算。

圖3 單軸誤差仿真計算

圖4 四坐標綜合測量儀回轉工作臺試驗驗證程序
(2)空間綜合試驗驗證程序
圖4為根據ISO10360標準和JJF1064-2010規范中相關內容編寫的四坐標綜合測量儀空間綜合試驗驗證程序界面[5]。試驗驗證程序實現了機器坐標系與回轉工作臺坐標系在進行誤差補償時的換算,能夠充分利用原有測量軟件來完成試驗。
軟件首先從RationalDMIS中獲取測量得到的兩個標準球的球心坐標值,根據該坐標值和回轉角度進行四軸空間誤差補償計算。之后,根據回轉中心坐標、標準球回轉半徑和轉角,將原始坐標換算到回轉工作臺坐標系下。與軟件計算出的該次轉動的理論坐標值差分后,再將得到的X、Y值沿徑向和軸向分解、合成,最終得到規范中要求的徑向和軸向坐標數據,并顯示在右側的文本框中。
為了驗證所建空間誤差模型的可行性,運用所開發的誤差仿真分析應用軟件平臺,對空間測量誤差補償過程進行仿真驗證。仿真所研制的四坐標綜合測量儀進行測量,工作空間范圍600mm×300mm×600mm。
首先在Access數據庫中錄入四坐標綜合測量儀的29項系統誤差,仿真測量測量空間內的四條空間體對角線,然后對測量數據進行分析、誤差分離,最后生成補償文件并補償誤差。
仿真測量完成后,對裝置空間體對角線的仿真數據進行分析。從圖5和圖6中可以看到,對角線方向的最大絕對誤差從86.2μm減小到8.8μm,補償后誤差相對減少了89.8%。根據補償前后數據分析,可以基本驗證誤差模型和計算方法的正確性。

圖5 補償前的空間體對角線誤差

圖6 補償后的空間體對角線誤差
本文充分利用不同軟件的優勢所在,采用VB.NET、MATLAB、Access等多種軟件混合編程的模式,開發了四坐標綜合測量儀誤差仿真分析應用軟件。通過對軟件模塊及功能進行系統分析,合理設計軟件流程及軟件界面,然后編寫和調試代碼,完成了整個軟件的開發。最后,對空間測量過程進行了仿真分析。利用所開發的軟件平臺進行仿真分析,減少了時間成本和經濟成本,為進行試驗驗證分析奠定了基礎。
[1] 楊仁平,張國雄,劉書桂,等.回轉曲面測量技術[J].天津大學學報,2005,38(5):385-390.
[2] 歐金成,林德杰,彭備戰.通過VB調用MATLAB實現圖形和界面的結合[J].計算機工程與設計,2002,23(12):64-66.
[3] 陳振強.基于混合編程的大壩安全監測評價系統研究[D].鄭州:鄭州大學,2009.
[4] WILLIS T.VB.NET數據庫入門經典[M].北京:清華大學出版社,2006.
[5] JJG1064-2010,坐標測量機校準規范[S].