一、逆向工程簡介
逆向工程,有的人也叫反求工程,英文是reverse engineering。大意是根據已有的東西和結果,通過分析來推導出具體的實現方法。比如你看到別人寫的某個exe程序能夠做出某種漂亮的動畫效果,你通過反匯編、反編譯和動態跟蹤等方法,分析出其動畫效果的實現過程,這種行為就是逆向工程;不僅僅是反編譯,而且還要推倒出設計,并且文檔化,逆向軟件工程的目的是使軟件得以維護。
目前,大多數有關逆向工程技術的研究和應用都集中在幾何形狀,即重構產品CAD模型和最終產品制造方面,稱為實物逆向工程。基于此,可以把逆向工程定義為:逆向工程是和將實物轉變為CAD模型相關的數字化技術、幾何模型重建技術以及產品制造技術的總稱。
逆向工程的硬件最早是運用仿制加工設備,制作出來的成品品質粗糙。后來有接觸式掃瞄設備,運用探針接觸工件取得產品外型。再來進一步開發非接觸式設備,運用照相或激光技術,計算光線反射回來的時間取得距離。
逆向工程軟件部分品牌包括Surfacer(Imageware)、ICEM、CopyCAD、Rapid Form等。逆向軟件的演進約略可區分為三個階段。十一年前在逆向工程上,只能運用CATIA等CAD/CAM高階曲面系統。市場后來發展出兩套主流產品約在七、八年前技術成熟,廣為業界引用。到最近四年來,發展出不同以往的逆向工程數學邏輯運算,速度快。
軟件的逆向工程是分析程序,力圖在比源代碼更高抽象層次上建立程序的表示過程,逆向工程是設計的恢復過程。逆向工程工具可以從已存在的程序中抽取數據結構、體系結構和程序設計信息。
就目前的逆向工程而言,可以分為兩個階段,第一個階段是產品的仿制過程,第二個是對產品的消化、吸收和創新。
二、逆向工程關鍵技術研究
在逆向工程中,有以下幾個比較關鍵的技術,也是在進行逆向研究時所必須有的幾個步驟。即實物原型的數字化技術、數據點云的預處理技術、三維重構的基本方法、曲線曲面光順技術以及逆向工程的誤差分析與品質分析。
1、實物原型數字化技術
實物樣件的數字化是通過特定的測量設備和測量方法,獲取零件表面離散點的幾何坐標數據的過程。隨著傳感技術、控制技術、制造技術等相關技術的發展,出現了各種各樣的數字化技術,如接觸式數據采集方法、非接觸式數據采集方法及層析法等。接觸式數據采集法中又可分為觸發式、連續式、磁場法等不同方法。非接觸式方法有光學法、聲波法、電磁法等等。而這其中,光學測量應用得最為廣泛。單就光學法而言,這里可列舉幾個常用的方法:
激光三角測距法
激光三角測距法是利用光源和光敏設備之間的位置和角度關系來推斷表面點的具體位置。三角測距法可高速地采集數據,其精度由光敏設備的分辨率和表面與掃描儀問的距離共同決定。
距離法
距離法是利用光束的飛行時問來測量被測點與參考平面的距離,主要有脈沖波、調幅連續波、調頻連續波等工作方式。由于激光的單向性好,多采用激光為能量源,這種方法的精度也較高。
干涉測量法
干涉測量法通過分析指定投影光的波長,與形成的干涉曲線間的特定關系來確定距離。
結構光法
結構光法是將一定模式的光照射到被測樣件的表面,然后攝得反射光的圖像,通過對比不同模式之間的差別來獲取樣件表面點的位置。典型的是“Shad—OWMoire”干涉條紋法。它的特點是不需要坐標測量機等精密設備,造價比較低,但精度較低,操作復雜。
圖像分析法
圖像分析法與結構光法中圖像確定坐標數據的做法有些類似。但這種方法分析的不是投影結構,而是一般的立體照片,它能提供足夠的信息來確定樣件的高度和坐標。
2、數據點云的預處理技術
通過上述方法測得的原始數據一般不能直接用于曲面重構,因為對于接觸式測量,受測頭半徑的影響,必須對數據點云進行半徑補償;另外,在測量的過程中,不可避免會帶進噪聲、誤差等,必須去除這些點;對于海量點云數據,對其進行精簡也是必要的。
3、三維重構方法
復雜曲面的CAD重構是逆向丁程研究的重點。而對于復雜曲面產品來說,其實體模型可由曲面模型經過一定的計算演變而來,因此曲面重構是復雜產品逆向工程的關鍵。
三邊Bezier曲面法
與前幾種方法不同,該方法是嚴格定義在三角形域上的。三邊曲面片可適應不規則與散亂數據點的幾何造型。它具有構造靈活、適應性好等特點,在散亂數據點曲面擬合中能有效應用。
BP神經網絡法
該方法是利用BP(BackPropagation)算法的訓練和學習建立一個神經網絡模型來解決曲面反求問題。BP算法是神經網絡學習中一種被廣泛采用的學習算法,具有簡單、有效和易于實現等優點,并且算法的收斂速度較快。但由于算法本身的特點,對算法參數的選擇有很大的盲目性和難度,可能會導致擬合結果達不到最優。
除了上面提到的兩種方法外,還有多項式插值法、雙三次Bspline法、NURBS法、Coons法等,這些方法各有各的特點,在實際設計過程當中,可以根據需要靈活運用。
4、曲線曲面光順技術
在基于實物數字化的逆向工程中,由于缺乏必要的特征信息,以及存在數字化誤差,光順操作在產品外形設計中尤為重要。根據每次調整的型值點的數值不同,曲線/曲面的光順方法和手段主要分為整體修改和局部修改。光順效果取決于所使用方法的原理準則。常用的光須方法有最小二乘法、能量法、回彈法以及基于小波的光順技術。
5、逆向工程的誤差分析與品質分析
誤差分析
在談逆向工程的誤差分析前,我們先來了解逆向工程中所特有的三個參數概念::重構參數、實物原型參數和原始設計參數。
重構參數是逆向工程得到的參數,是可知的;而逆向工程并不直接測量實物原型參數,故實物原型參數是未知的;原始設計參數自然也是未知的。目前的逆向工程均用已知的重構后的模型參數作為制造產品的原始參數,亦即用重構參數去制造產品。先來比較一下重構參數與原始設計參數之間的誤差,設該誤差為重構誤差△構;在重構過程中,不可避免地會產生誤差,記其為計算誤差△計;在對零件或原型測量時,會產生測量誤差△測;零件或原型本身也帶有誤差,一種是制造原型時會產生制造誤差A制;另一種是原型在使用中的磨損和破損誤差△榭。重構誤差由這四種誤差所組成,一般取各項誤差的均方根作為重構誤差,則有: 。單從仿制原型這一方面出發,反求工程制造的產品,是被置于原型的t作環境下,代替原型工作。原型是用原始設計參數制造的,產品是用重構參數制造的。由以上分析可知,這兩個參數之間存在重構誤差△構。因此,用重構參數作為原始參數去制造產品并將其置于原型的環境下工作,在某些情況下會達不到要求,這就是說,由于重構誤差的存在,產品會出現廢品。為了提高精度,目前的反求丁程技術采取了許多措施,如提高測量精度,提高擬合計算精度,但這些措施只是使重構參數盡可能接近原型參數,仍無法得到原始設計參數。提高逆向精度仍然是一個待完善的課題。
品質分析
品質分析主要是分析曲面的光順性。盡管可以通過曲面的曲率變化來評價光順效果,但并無具體的曲率值作依據,多數場合還是以人的眼光來進行判斷,沒有量化的指標,因此品質分析屬于非量化評價。目前,商品化的CAD/CAM集成系統都具有曲面品質分析功能和多種分析方法,常用的如高斯曲率、截面曲率、切矢、雙向曲率和法矢量等。利用這些分析方法,通過著色渲染來觀察曲面/曲率的變化、來評估曲面的質量。除上述常用方法外,還有如反射線法、高光線法、等照度法和焦點曲面法等,這些作為品質評價常用方法的補充,已經在實際中得到了應用。
三、逆向工程的應用
汽車工業是全球制造業的支柱產業之一,隨著巿場需求的改變,汽車的更新換代速度日趨加快,其設計、制造速度的快慢直接制約著汽車業的發展。現代化設計理念的形成將給汽車發展帶來巨大的變革,由此而提出的逆向工程在汽車制造領域的應用將大大的改進汽車制造業的現狀。下面以汽車車身造型設計為例,來具體介紹一下逆向工程的應用。
車身結構的特點在于組成車身外形的各個零件多為尺寸大而形狀復雜的空間曲面,這些大型覆蓋件不能用一般的機械制圖方法將它們完整、清晰地表達出來,不得不依靠三維立體模型作為設計的依據。傳統的車身設計方法在其每個設計階段都要反復進行平面圖形和立體模型的制作過程,以致新產品的開發設計周期長、工作量大。
此次設計開發的基于逆向工程的車身流程如圖1所示。車身逆向工程中的關鍵技術在于兩個方面:一方面是實物模型表面數據獲取技術以及處理技術,即數字化掃描測量技術和測量數據的處理技術;另一方面是車身零部件的曲面重建技術。
車身三維數據的獲取及處理
在產品的逆向開發中,樣件的三維數據主要通過三坐標測量機獲取,獲取的點云中不可避免地會帶人噪聲點等影響因素,因而必須對其進行數據處理。將測得的IGES數據格式的文件,輸人到Imageware系統中,再利用系統中提供的曲面構建命令進行處理。下圖是通過“輔助面”的方法處理前后的前翼子板效果圖。
NURBS曲面重構
自由曲面一般用參數曲面表示,常用的方法有Bezier, B-Spline和NURBS等表示方式。NURBS曲面是標準解析形狀和自由曲面,非有理B樣條、Bezier曲面都是NURBS的特例表示。其由下式定義,
式中Vij為控制頂點;Wij為權因子;Bik(u)和Bjl(w)分別為沿u向的k次和沿w向的l次B樣條基函數。
u向和w向的節點矢量為:
NURBS曲面可通過控制點和權值方便靈活地控制曲面形狀,能有效進行插人節點、修改、分割和幾何插值等處理,并具有透視變換和放射變換的不變性等優點。NURBS曲面重構框圖如圖4所示。通過Imageware軟件中的重構曲面命令進行曲面重構,經過處理后的車身前罩、車身框架和車門部分零部件的重構曲面如圖5、圖6所示。