王鵬
(中海油能源發展裝備技術有限公司 加工制造分公司,天津 300400)
國內外的各個油田都存在大量油管[1]。石油油管在地下工作時承受拉伸、擠壓、壓井等物理作用以及管內注水、酸化等化學作用,導致油管內局部可能出現磨損、泄漏和脫扣等情況[2],若不及時處理,油管缺陷過于嚴重后,必須重新下管,其成本及風險將大大升高。因此,必須研究出可自動檢測油管缺陷的方法[3]。
吳秀東等[4]人提出基于Halcon的石油油套管磨損缺陷檢測系統設計方法,通過CCD相機采集油套管表面圖像并傳輸到計算機中,提取目標圖像并進行濾波去噪及缺陷邊緣檢測處理,連通缺陷區域以求解缺陷面積,進而實現油套管磨損缺陷檢測。該方法增加數據傳輸時間,降低了傳輸速率。王恒迪等[5]人提出石油油套管磨損缺陷檢測系統設計方法,在硬件的基礎上綜合油套管圖像采集、圖像預處理、圖像定位和剪裁、差影處理、形態學運算與缺陷標記識別,以此檢測出油套管中的缺陷,實現油套管磨損缺陷檢測,該方法增加了油管套磨損缺陷檢測誤差率。馬宗正等[6]人提出基于結構光表面的石油油套管磨損缺陷檢測系統設計方法,該方法能夠獲取石油油套管表面缺陷的立體數據,實現油套管磨損缺陷檢測,但該方法通過直流放大器將油套管磨損缺陷信號放大,存在檢測靈敏度低的問題。
為了解決上述方法中存在的問題,提出數控車床加工的石油油套管(以下簡稱油套管)磨損缺陷自動檢測系統設計方法。
在油管井口處安裝缺陷自動檢測裝置,當數控車床加工油套管開始作業時,檢測傳感器可接受信號,基于信號特征利用信號處理器處理信號,并輸入A/D轉換器,以此簡化缺陷信號數字化的轉換[7],最終將數字輸入計算機,若油套管缺陷超標則檢測裝置發出警報,并進行波形打印,且自動生成缺陷檢測報告。檢測流程圖如圖1所示。

圖1 油套管缺陷檢測系統
油套管缺陷檢測裝置即缺陷檢測傳感器,在油套管周圍放置4個檢測探頭,且每個探頭中含有兩組不一樣的缺陷檢測零件,此零件可檢測不同方向的漏磁場信號[8]。為確保零件之間的密閉性不影響檢測精度,在數控車床加工油套管時,將傳感器安裝在封口器上,這樣既可過濾油蠟還可防止原油卡死裝置和傳感器影響檢測效果。傳感器安裝效果圖如圖2所示。

圖2 油套管缺陷檢測裝置效果示意圖
由于油套管磨損缺陷檢測裝置中的檢測零件向外發出的信號難以捕捉,因此在輸出信號前需對信號進行預處理。經過數控車床加工后的石油油套管局部發生腐蝕后檢測出的信號是突變信號,所以可將檢測零件輸出的信號經過交流耦合及濾波處理后輸入交流放大器中將信號擴大,但其中特殊的柱狀缺陷屬于緩變信號,因此它的處理方式是采用直流疊加和濾波處理后再利用直流放大器進行擴大,其流程圖如圖3所示。

圖3 檢測零件信號處理流程圖
檢測零件的信號經過預處理后具有5種可輸出的信號,除其中一種為桿狀偏磨導致的壁厚變化信號外,其余都是腐蝕孔洞信號。
A/D轉換器是位于信號打印口的核心為MAX197的數據信號采集設備,此設備含有采樣頻率高的特性,且可以程控多量程選取。MAX197信號采集器的芯片中自身含有標準電壓、+5V單電源工作電壓、信號采樣保持器與時鐘,使得信號轉換不僅變得十分簡便,且符合油套管檢測的監測要求,并且此設備的信號傳輸率已達到ISA總線的程度,因此轉換后的信號在打印時只需將插頭插入打印口即可,不需要打開計算機插卡。
經過A/D轉換后的缺陷信號進入計算機時,信號分析處理軟件根據獲取到的信號及有關報廢要求進行分析處理,并將信號保存在計算機內,在油套管檢測時,若某些缺損情況已超過報廢條件,計算機將自動發出警告。檢測結束后,計算機將自動生成油套管磨損缺陷檢測報告。
在利用Qt creator進行用戶互換界面時,即將某些可視化的空間均勻排列在一起,且將頁面細分為五大欄,分別是底邊欄、頂邊欄、側邊欄、繪圖區和光標顯示區。其中頂邊欄就是設置繪畫區參數的區域,此區域可以調整信號樣本回波的增益大小值,還可體現出USB圖標、電池電量以及信號樣本取值范圍;底邊欄含有換能器、發射電路和全部系統的7個參數定義欄,當用戶選擇底邊欄中的某一控件時,側邊欄會立即出現不同的頁面,可根據需要選擇出對應的參數進行設置;繪圖區可以及時體現出樣本信號的波形;光標顯示區就是通過光標運用繪圖區。整體結構如圖4所示。

圖4 頁面布局結構圖
為使頁面效果一目了然且功能齊全,因此需要設置顯示控件。因為側邊欄及頂邊欄的顯示效果均不相同,所以需要提前確定頁面子控件的顯示效果,再提升顯示框的子控件的效果。在修改顯示效果的過程中,為不改變邊欄控件代碼,在設置顯示控件時需要采用C++的多重繼承特性,利用父類的接口統一接收信號,并以此使得頁面顯示出不同效果,繼承關系如圖5所示。

圖5 顯示控件繼承關系示意圖
由于設計控件時將數據分成數字和字符兩種類型,這兩種數據類型都可秉承抽象接口類型的FDAbstractView。此類型的FDAbstractView具有兩種顯示數據的特征,當得到目前控件的數值時,則定義出目前控件的數值、名稱和焦點,側邊欄可直接繼承接口類的數值型FDValueView。側邊欄接口可以臨時借用接口定義出自己的控件,若取得目前的控件數值,可以直接定義控件的數值,側邊欄直接具有屬于自己的顯示效果,頂邊欄雖可以直接繼承接口,但可定義的效果不一樣。
通過總結所有軟件內容,將軟件程序分成用戶交換圖像層、邏輯運算及油套管缺陷數據管理層兩部分。為保證兩者之間既能獨立運行又能關聯,可通過用戶交換界面及數據分離的數據結構進行數據處理,即Model/View結構,如圖6所示。

圖6 數據分離數據結構圖
在此數據結構中,需要構建底層數據之間的關聯Model類,它可以處理和訪問底層數據,同時為頁面顯示提供信號接口;還需構建與之相關的View類,此類在Model類中取得數據,在Delegate類的基礎上將變化后的數據傳送到底層數據進行交換。其中,Model類不負責界面顯示,只考慮底層數據的互相交換;View類只關注數據如何顯示,不考慮數據的保存和改寫;Delegate類既不負責數據處理也不負責數據顯示,它只是在數據顯示的元件發生變化時進行改寫并啟用Delegate類,并利用View類向Delegate類傳送變化后的信號,同時生成View類可利用的程序編輯器,最后將設置好的信號傳送給Model類,實現底層數據的預處理。此數據結構的優點是抓住每層之間的數據變化即可大幅度降低軟件程序間的耦合度,從而更加合理且便利地處理各層之間的程序,使得程序層次更加可靠。
程序設計模式中的單例模式屬于主動創建型,其確保一個類只建立一個實例,以此保證此類有且只有一個信號訪問點,通常情況下各個類都阻止不了用戶變換出多個實例,因此只能在程序中自行設置出一個實例。
因為FDsideBarViewV類在頁面的邊欄中被多次借用,在油套管缺損檢測系統中大部分模塊都會經過此類并訪問,因此會出現某些模塊同時借用此類的情況,從而產生資源沖突,導致程序冗余過多。因此可總結出單例模式的優點為減少資源浪費且保證全局有且僅有一個信號訪問點,其余類在借用FDsideBarViewV類時也只需訪問此點即可,其單例模式如圖7所示。

圖7 單例模式示意圖
利用此軟件程序并綜合上述硬件系統即可實現油套管磨損缺陷的自動檢測。
為了驗證所提方法的整體有效性,需要在Windows7 32位操作平臺中對油套管分別用本文設計的自動檢測方法、文獻[4]方法和文獻[5]方法對系統進行傳輸數據速率、缺陷檢測誤差率和檢測靈敏度的測試。
為驗證系統的有效性,采用不同系統下對油套管產品合格率進行檢測,得到結果如圖8所示。

圖8 油套管產品合格率
分析圖8可知,當實驗次數為10次時,文獻[4]系統的油套管產品合格率為64%,文獻[5]系統的油套管產品合格率為71%,設計系統的油套管產品合格率為97%。當實驗次數為50次時,文獻[4]系統的油套管產品合格率為83%,文獻[5]系統的油套管產品合格率為69%,設計系統的油套管產品合格率為98%。本文所設計系統的油套管產品合格率明顯高于其他方法。這是因為在自動檢測油套管缺陷過程中,系統自動對采集到的信號進行耦合處理,因此電路元件之間可以互相傳輸信息,信號之間可以獲取其重復信息并排除,提升油套管產品加工合格率。
為驗證系統的有效性,采用不同系統下對油套管產品缺陷面積檢測誤差率進行檢測,得到結果如圖9所示。

圖9 三種系統的檢測面積誤差率
選取不同油套管深度,利用三種系統得出缺陷面積誤差率。從圖9中的數據可看出,油套管深度會影響系統檢測結果,導致檢測出的缺陷面積與實際缺陷面積產生誤差,而設計系統的誤差率始終不超過20%。文獻[5]系統的誤差率始終居高不下,最高誤差超過50%,文獻[4]系統次之,而本文所設計系統保證誤差不超20%。這是因為在實現油套管缺陷檢測前采用直流疊加和濾波處理,能去除所有影響信號誤差的因素,更加清晰地檢測出信號缺陷,從而檢測出的油套管缺陷更加完整,以此降低了檢測誤差。
為驗證系統的有效性,采用不同系統下對油套管產品缺陷檢測靈敏度進行檢測,得到結果如圖10所示。

圖10 不同系統的檢測靈敏度
系統的檢測靈敏度可說明系統的優劣,經過多次迭代得出圖10數據,設計系統可檢測的缺陷大小精確到0.01mm,從而得出設計系統的檢測靈敏度趨近于100%,其他兩種系統由于各種原因靈敏度皆低于設計系統,這是因為所提方法利用直流放大器將信號放大,使得檢測出的缺陷信號更加精確,進而在簡便操作的基礎上也能精確檢測出缺陷信號,以此提高檢測靈敏度。
為解決目前所用方法的不足,提出數控車床加工油套管磨損缺陷自動檢測系統設計方法。該方法首先設計出含有多個模塊的硬件系統,在此基礎上綜合單獨運行的多模塊單例模式軟件程序,實現油套管磨損缺陷自動檢測。經試驗表明,該方法能夠有效提升油套管加工的產品合格率、降低缺陷檢測誤差率,提高檢測靈敏度,降低了油套管加工成本,提高了效率。