趙 熙,崔廣新,鄭喜艷
(河南省計量科學研究院,鄭州 450047)
功率傳感器是測量微波功率的標準設備,其測量準確度通常用校準因子表征。常規校準功率傳感器的手動操作過程十分繁瑣且耗時長。為提高校準功率傳感器的工作效率,基于Visual C++開發平臺,設計開發通用功率傳感器自動校準軟件,實現對功率傳感器的自動校準。自動校準軟件通過GPIB (General-Purpose Interface Bus)、USB (Universal Serial Bus)等總線和可編程儀器標準命令(Standard Commands for Programmable Instruments,SCPI)控制儀器的運行,對作為標準器的各型號信號發生器、功率計和功率傳遞標準和被校功率傳感器都有很好的支持。
自動校準軟件可通過GPIB、USB等多種數據總線和儀器通信,可根據儀器配置選擇傳遞標準法和交替比較法,具有實時數據顯示,不確定度計算,自定義校準參數,自動校準控制,多次校準,單點控制,圖像識別等功能。軟件運行過程中可實時顯示已完成的測量數據,并計算測量結果的不確定度。軟件自定義的校準參數有校準頻率、平均次數、校準功率值和結果類型等,校準頻率可按開始頻率,結束頻率,頻率步進值的方式進行設置,校準頻率步進值可選擇為1、2、5、0.1、0.2和0.5,滿足不同頻段頻率分布的要求;也可按各頻率點單獨添加的方式設置校準頻率,兩種設置方式可單獨使用,也能夠結合在一起使用;校準功率值可選擇為1 mW、0.1 mW或5 mW等,適用不同被校功率傳感器的測量范圍;當平均次數大于1時,可選擇結果類型為平均值、中位數,軟件根據結果類型的設置自動完成計算,并可計算顯示測量結果的標準差;根據儀器信息軟件生成默認校準參數,在后續的操作中可對默認校準參數按自定義設置進行修改。自動校準過程中根據需要可暫停/繼續當前自動校準操作,或結束當前自動校準。校準操作完成后,可重新設置校準參數或按當前設置的校準參數,繼續進行校準。軟件的單點控制功能可手動設置頻率點、信號源的輸出功率,自動讀取功率標準值和測量值,用于數據核驗。對于無數據總線接口的被校設備,通過圖像采集設備,使用圖像識別技術完成讀數,實現自動校準。自動校準軟件后臺有儀器信息和校準數據兩個數據庫,儀器信息數據庫存儲有各儀器的型號、測量范圍數據,對于信號源、功率傳遞標準等標準器還存儲溯源信息,通過軟件對數據庫中的信息進行維護更新;校準數據數據庫存儲已完成的校準數據,可進行數據查詢、查看和導出等操作。
軟件通過設置的數據總線類型和總線地址連接各儀器,如果某臺儀器連接失敗,將提示錯誤信息,所有儀器連接成功后讀取儀器的信息并顯示。完成校準信息輸入和校準參數設置后,開始自動校準。所有校準完成后,根據模版生成證書和記錄文件,并將校準數據保存至校準數據數據庫中。

圖1 軟件工作流程圖
自動校準軟件通過VISA庫向儀器發送SCPI指令,讀取儀器信息和數據,實現對儀器的控制;通過MFC類庫完成操作界面的設計和多線程運行控制;通過OpenCV庫完成圖像識別算法的設計。第三方類庫的應用降低了軟件開發的復雜性,提高了軟件的可靠性。
軟件中的數據分為兩類,一類是信息數據,如校準日期、儀器編號等,使用CString數據類型存儲,另一類是數值數據,如儀器的測量范圍、測量結果等,使用double數據類型存儲。根據軟件運行過程中的數據對象和操作,聲明儀器類、校準信息類、校準數據類等自定義類。

圖2 軟件內部數據結構
儀器類實現對各儀器的運行控制和信息存儲,成員變量有儀器的控制句柄,儀器信息等,成員函數有讀取信息函數、設置頻率函數和讀取測量值函數等,對于每一臺儀器聲明一個儀器類的實例用于對該儀器的操作。校準信息類存儲本次校準工作的基本信息,成員變量有記錄/證書編號、證書單位名稱、校準日期、地點、環境條件等,對于每個校準任務,只需有一個校準信息類實例。校準數據類保存校準過程中的各項測量數據,成員變量主要有校準頻率數組、功率標準值數組、功率測量值數組、測量不確定度數組等,成員函數有測量不確定度計算函數、平均值計算函數、中位數計算函數等。軟件中頻率數據基本單位為MHz,如100 kHz在軟件中的以數值0.1表示。校準數據類中的所有數組均為使用C++標準模板庫中的vector容器類存儲,其大小為動態的,自動校準過程中,只有當新數據產生并需要存儲時,軟件向操作系統申請新的內存空間,完成數據存儲;每次校準操作的數據使用一個校準數據類的實例存儲,多次校準時,每次校準完成將所有校準數據存入校準數據類的vector容器中。動態數據存儲方式極大提高了軟件的空間效率。
2.2.1 自動校準控制算法
為提高運行效率和操作體驗,自動校準軟件采用多線程工作模式實現并行處理,在控制儀器進行自動校準的同時,軟件顯示界面中實時顯示已完成的校準數據,不同工作線程之間通過Windows操作系統的消息傳遞機制實現數據傳遞。
自動校準開始后,軟件主線程開啟自動顯示線程和自動校準工作線程。自動校準工作線程采用雙層循環方式控制自動校準的運行。外層循環以校準頻率的數量作為循環的控制變量,在外層循環中讀取校準頻率數組中的頻率值,完成信號發生器的頻率和輸出功率、功率計的頻率的設置,讀取功率傳遞標準/標準功率計的讀數,即功率標準值,并調節信號發生器的輸出功率在設置的校準功率處。然后自動校準工作線程開始內層循環,按設置的平均次數依次讀取功率傳遞標準/標準功率計的讀數、被校功率傳感器的讀數,計算校準因子的實際值和不確定度,完成一次測量后,自動校準工作線程向顯示工作線程發送WM_USER+100消息,顯示線程接收到該消息后顯示當前完成的測量數據;如果設置的平均次數大于1,在完成內層循環后,自動校準工作線程計算該頻率點測量結果的平均值等數據,并向顯示工作線程發送WM_USER+101消息,顯示工作線程接收到該消息后在主界面顯示平均值等數據。顯示工作線程按照測量完成的順序依次逐行顯示測量結果,對該頻率點多次平均的測量數據,按“測量值1”、“測量值2”……“測量值n”標識,對平均值、中位數等測量結果以“平均值”、“中位數”標識,如果設置的平均次數為1,自動校準工作線程不再發送WM_USER+101消息,測量結果的標識為“測量值”。自動校準工作線程完成所有測量和數據計算后,向顯示工作線程發生WM_USER+115消息、向主線程發送WM_USER+108消息,然后自動校準工作線程終止;顯示工作線程接收到WM_USER+115消息后終止,主線程接收到WM_USER+108消息后,將本次自動校準的測量數據存入校準數據容器中,本次自動校準工作完成。
為確保各儀器操作同步、數據讀取準確,軟件向儀器發出操作指令后,讀取儀器的狀態數據,當儀器的狀態為指令完成時,再進行下一步的操作。
交替比較法自動校準程序算法功率傳遞標準法自動校準算法基本相同。在完成一次設置頻率點的自動校準后,自動校準軟件會提示交換標準功率傳感器和被校功率傳感器在功分器的連接端口后繼續進行測量,再按照設置的頻率點進行一次自動校準,并完成最終的數據計算。

圖3 使用傳遞標準法自動校準算法流程圖
2.2.2 圖像識別算法
軟件使用KNN(k-NearestNeighbor)算法完成圖像識別,軟件中存儲有0~9各數字的樣本圖片,通過比較識別圖片與樣本圖片,找到與識別圖片最相似的樣本圖片,確定識別圖片中的數字,完成圖像識別。OpenCV庫中提供了專門的類和函數用于圖像處理和KNN算法實現。自動校準軟件通過圖像采集設備獲得被校功率傳感器示值顯示的圖像后,調用圖像識別參數對圖像進行處理,包括灰度化、二值化、腐蝕/膨脹、輪廓提取、排序和數字分割等操作,處理完成后圖像背景為黑色,數字為白色。調用OpenCV庫中的knn算法函數predict()將獲取的圖像和樣本圖片進行對比,完成最后的圖像識別。KNN算法相對于其它圖像識別算法,雖然占用內存較大,但實際操作簡單,并具有很好的擴展性,當識別目標的字體改變時,只需更新樣本圖片,即可實現對新字體圖像的有效識別。
使用圖像識別方式進行自動校準之前,需完成圖像識別參數設置,圖像識別參數包括數字顯示區域、圖像處理過程中使用的閾值、元素尺寸、腐蝕次數、膨脹次數和噪聲尺寸以及識別所用的K值、小數點尺寸等。不同型號功率傳感器的顯示方式不同,每次校準時環境光照條件也會存在差異,因此自動校準軟件未采用顏色分離的方式自動識別圖像中的數字,而采用手動方式設置識別區域和識別參數,設置過程中可對設置參數的運行效果進行驗證,確保識別結果的準確性,在自動標準過程中如果識別出現錯誤,可以暫停自動校準,重新設置識別參數后繼續自動校準。
使用圖像識別方式進行自動校準時,除自動校準工作線程和顯示工作線程外,還有圖像實時顯示工作線程。該工作線程在專用窗口實時顯示圖像采集設備的視頻圖像,并將識別的數字保存為圖片,以“校準次數_頻率值_測量次數”的方式命名,存儲在以該次校準的證書編號命名的文件夾中,文件夾的存儲位置可通過軟件設置,方便數據核驗。

圖4 圖像識別方式讀數時保存的識別圖片
軟件采用MFC的文檔視圖界面,所有操作通過菜單執行,每個菜單命令對應有工具欄按鈕方便操作。信息輸入、參數設置等操作通過專用對話框實現,對話框通過菜單命令打開。軟件運行過程中,為避免操作沖突,在不同工作狀態下設置對當前操作有影響的菜單項為灰色,不可使用,當前操作完成后,再將其設置為可正常使用的狀態。
程序主窗口為校準結果顯示窗口,實時顯示已完成的測量數據。主窗口采用表格的形式顯示數據,分為頻率、功率標準值、功率測量值、校準因子實際值、不確定度等列,每行顯示一次校準操作的測量數據或平均值、中位數的計算數據,根據使用的校準方法,主窗口的表格形式會發生相應的改變。
軟件另設置5個工作窗口,分別為儀器信息窗口、基本信息窗口、工作狀態窗口、圖像識別監測窗口和單點控制窗口。儀器信息窗口顯示當前系統所用的標準器和被校儀器的信息;基本信息窗口顯示記錄/證書編號、委托單位和校準地點等信息;工作狀態窗口顯示當前的工作狀態、操作結果等信息;圖像識別監測窗口實時顯示圖像采集設備的視頻圖像和圖像識別過程中所保存的識別圖片,可實時看到圖像識別的結果;單點控制窗口實現單點控制功能,輸入頻率和信號源輸出功率,自動讀取并顯示功率標準值和功率測量值等數據。工作窗口采用浮動設計,通過菜單命令分別打開或關閉,工作窗口打開顯示時,可以嵌入到主窗口中(圖5 A)或懸浮在主窗口上(圖5 B),工作窗口顯示時不影響主窗口的使用操作和顯示。圖像識別監測窗口僅能在使用圖像識別方式進行自動校準時打開顯示;單點控制窗口僅能在軟件不處于自動校準狀態時才能打開顯示。

圖5 軟件操作界面
軟件操作過程中輸入信息、設置參數、維護儀器信息數據庫、查詢校準數據等操作均通過專用的對話框完成,對話框通過菜單命令和對應的工具欄按鈕打開。部分重要的操作完成后,軟件會彈出消息對話框提示操作的結果。
連接儀器對話框用于設置連接儀器所用的總線類型、GPIB地址和使用的校準方法。信息錄入對話框輸入記錄/證書編號、委托單位、校準地點等信息。校準信息輸入完成后,再次打開該對話框時,會顯示已經輸入的信息,可對這些信息進行修改,軟件對信息修改情況進行記錄。頻率設置對話框用于設置校準頻率,校準功率值、平均次數和結果類型等校準參數,對話框打開時將顯示軟件生成的默認校準參數,可對默認校準參數進行確認或修改,校準參數可以多次更新設置,軟件按照最新設置的校準參數進行自動校準。校準數據查詢對話框用于查詢數據庫中保存的校準數據,可按型號、出廠編號、校準日期等信息進行檢索,支持模糊查詢,查詢結果在對話框中顯示,并可將查詢到的數據導出保存至文件中。儀器信息對話框維護后臺儀器信息數據庫,可進行查詢、修改、刪除和新增等操作。圖像識別參數設置對話框對圖像識別設備的曝光參數和識別參數進行設置,驗證設置圖像識別參數的識別效果,確保圖像識別結果的準確率。對話框中如頻率單位、GPIB地址等確定的有限項數據通過下拉列表的方式選擇確認,避免輸入錯誤數據影響軟件運行。
消息對話框用于顯示各種提示消息和軟件運行結果。軟件運行中某項操作成功完成后,彈出自動關閉對話框提示操作成功的信息,該對話框彈出后自動開始2 s倒計時,倒計時完成后對話框會自動關閉,倒計時未完成時可手動關閉對話框;如果操作過程中出現錯誤,或操作完成結果為不成功時,彈出錯誤信息提示對話框,錯誤信息提示對話框不會自動關閉,只能手動關閉。連接儀器和生成證書記錄文件等操作所需時間較長,且不能進行其他操作,軟件彈出進度條對話框位于軟件的前端提示等待信息,同時對話框中的進度條會顯示當前操作的進度,操作完成時,對話框自動關閉。
軟件測試試驗標準器信號源為Rohde&Schwarz公司的SMF100A和Keysight公司的E8257D,功率傳遞標準為Rohde&Schwarz公司的NRPC18,標準功率傳感器為Rohde&Schwarz公司的NRP-Z51。被測功率傳感器分別為Rohde&Schwarz公司的NRP-Z21、Keysight公司的N1921A和亞美公司的YM8171。功率傳遞標準、標準功率計和NRP-Z21功率傳感器使用NRP2功率計作為讀數裝置,N1921A功率傳感器使用N1911A功率計作為讀數裝置,YM8171功率傳感器使用的YM2422功率計作為讀數裝置。軟件安裝計算機操作系統為Windows8.1 專業版64位操作系統,CPU為Corei3-4020Y,主頻1.5 GHz,計算機內存4 GB。
校準NRP-Z21功率傳感器時設置校準頻率為10 MHz ~ 18 GHz,頻率步進值為1,校準頻率點36個,平均次數3,校準功率值5 mW,使用傳遞標準法校準,自動校準軟件實際測量和計算的144個頻率點的數據,自動校準的實際運行時間為2 min 51 s。
校準N1921A功率傳感器時設置校準頻率為50 MHz ~ 18 GHz,頻率步進值為1,校準頻率點32個,平均次數3,校準功率值1 mW,使用交替比較法校準,自動校準軟件實際測量和計算的256個頻率點的數據,不計更換功分器連接端口的操作時間,自動校準的實際運行時間為4 min 19 s。
校準YM2422功率傳感器時設置校準頻率為10 MHz ~ 18 GHz,頻率步進值為1,校準頻率點36個,平均次數3,校準功率值1 mW,使用傳遞標準法校準,自動校準軟件實際測量和計算的144個頻率點的數據,使用圖像識別方式進行讀數,自動校準的實際運行時間為5 min 37 s,所有數字圖像均正確識別。
軟件測試時,通過VS開發平臺的診斷工具觀察,不使用圖像識別方式讀數時,軟件運行時內存使用為20 MB~40 MB,CPU使用率不超過25%,使用圖像識別方式讀數時,內存使用為40 MB~260 MB,CPU使用率不超過35%,一般配置的計算機均可滿足軟件運行要求,使用圖像識別方式讀數要求計算機操作系統為64 bit,且安裝有DirectX9.0C或以上版本。
自動校準控制軟件的應用極大提高校準功率傳感器的工作效率,軟件的設計具有很強的通用性,支持主流廠商的信號源、功率計等儀器,可根據現有的儀器,配置軟件的運行參數,完成自動校準。軟件使用C++語言編寫,具有很高的執行效率,采用面對對象的開發方法,方便對軟件進行升級,實現對更多儀器的支持和擴展功能。