程 鑫,施恢勝,同軍超,吳臻冕
(1.武漢理工大學 機電工程學院,湖北 武漢 430070;2.湖北省磁懸浮工程技術研究中心,湖北 武漢 430070)
電機驅動器是電機系統的神經中樞,其可靠性決定電機系統的靜態特性、動態特性、控制精度、抗干擾能力和魯棒性等特征。電機驅動器一旦發生錯誤,會影響到整個電機系統的工作狀態,甚至可能會導致電機系統整體癱瘓[1]。因此,要想評定電機驅動器的可靠性,就必須對電機驅動器進行測試。
早期的電機驅動器檢測工作采用儀器儀表結合人工讀取的方法。這種測試方法耗時長、錯誤率高、測試成本高、測試精度低、系統兼容性差和可擴展性差。同時人工測試會導致測試數據不能及時準確的存儲,不利于后期維修升級對電機驅動器測試過程中的測試數據進行追溯,提高了研發成本,不適應快速精準的大批量現代測試要求。
隨著自動測試技術[2]和可重構技術[3]的不斷發展,電機驅動器的測試系統也逐漸脫離人工測試,更加依賴于自動化設備測試,減少了諸多不可避免的人為因素,提升了測試效率和精度。可重構技術從實現的方法劃分,包括硬件可重構技術和軟件可重構技術。硬件可重構一般是指基于可重構邏輯,通過改變數字邏輯電路的連線來實現不同的功能,主要包括DSP(digital signal processing)、FPGA(field programmable gate array)、CPLD(complex programmable logic device)和ISP(in_system programmability/programming)等邏輯器件,比較依賴處理器芯片的邏輯功能,同時開發成本高[4];軟件可重構技術是以提高軟件質量為目的,通過應用大量優化后的算法,調節軟件結構,使軟件代碼發生變化,從而提升軟件在不同環境下的自適應性,且整體的功能保持穩定,但是對于軟件的架構有著較高的難度,開發比較困難[5-7]。
2014年,吳震海[8]針對大功率電機驅動器的測試需求,基于STM32微處理器設計出一套測試系統,能夠識別IGBT(insulated gate bipolar transistor)驅動模塊HP1/HP2及驅動器的元器件損壞和焊接錯誤等情況,有利于甄別用戶不易識別的錯誤,提高了電機驅動器的研發效率。工業應用中,泛華科技研發的電路板綜合測試系統,可對多種形狀、大小、接口各異的電路板進行功能測試。整個測試平臺在設計上兼顧硬件與軟件兩方面的優點。其中硬件設備資源在現有產品測試硬件需求的基礎上,充分考慮針對未來產品測試的可擴展性;軟件具備平臺化定制特點和基于平臺的簡單二次開發特性。適用于多品種小批量的電子產品功能測試、可擴展為流程化出廠檢測或者維修測試的平臺化測試設備。
由于DSP和FPGA等硬件可重構測試方案成本高,軟件可重構架構復雜的特點,因此,為了提高測試系統的通用性和可重構性,筆者針對電機驅動器測試系統進行研究,設計了一套基于STM32微處理器的可重構測試系統方案,將大量測試系統開發中需要重復開發的設計進行標準化設計,提高測試系統的開發效率,減少不必要的研發成本。
與傳統的測控系統相比,可重構測控系統的最大優點就是能進行資源整合、結構配置和靈活變遷,從而提升了測控系統通用性、冗余性和自適應性[9]。可重構測控系統的總體架構如圖1所示,包括上位機(人機交互界面和系統服務程序)、下位機和測試對象。

圖1 可重構測控系統的主體架構
(1)功能模塊庫。硬件子模塊共同構成的功能庫,決定了系統的極限測試功能種類和數量,主要由硬件平臺決定。
(2)方案決策庫。開發人員會預設多種基本方案,通過基本方案的組合可以產生多種復雜的測試方案。
(3)可行性分析。對測試功能配置數據與功能模塊庫和方案決策庫進行比對,判斷系統的測試能力是否滿足需求。
(4)模塊調度。對硬件子模塊進行調度,實現硬件部分的功能配置。
(5)系統重構。確定測試路線、硬件資源和響應機制,生成測試系統架構方案。
(6)性能評價。對架構方案進行仲裁,判斷是否為使用資源少、測試效率高、測試流程簡便的最優解。
(7)系統架構。確定最終架構,并且生成相應的協議代碼。
用戶在人機交互界面對測試功能配置后,系統服務程序將根據系統預制的功能模塊庫和方案決策庫對測試功能配置進行可行性分析,選擇對應的模塊后生成模塊調度方案,進行系統重構,然后對重構后的系統進行性能評價,若評價不高則再次選擇其他方案進行系統重構,直到評價合格,生成系統架構方案。系統服務程序完成系統架構方案的生成后將轉化成下位機主控芯片能夠識別的指令,并且完成下發指令。下位機主控芯片對收到的指令進行解碼,進而通過配置硬件模塊電路完成底層硬件方案的重構工作。
系統服務程序完成系統架構任務后,需要把工作指令通過通信總線下發到下位機,以實現系統架構硬件模塊更新的工作。
可重構測控系統是一種典型的主從式通信系統,通過總線通信方式實現系統模塊控制和數據交換。如圖2所示,主機是系統的上位機,包括人機交互、系統服務程序和通信總線接口;從機是下位機,包括通信總線接口、微處理器和硬件模塊電路。對于主從式通信系統,主機是處于支配地位的,是整個系統的控制核心,只能擁有一個主機,這與可重構測控系統中主控計算機的定位是重合的,主機向從機發出指令,從機接收到指令后,完成相應的動作。而從機是系統中的分節點,處于被支配的地位,在一個系統中可以具有多個從機節點,從機只能被動接收主機的指令消息,從機與從機之間不能進行通信。主機與從機之間通過總線形式完成數據傳輸。

圖2 系統通信節點模型
主從式系統的響應機制有兩種:單指令響應機制和從機自主響應機制。在單指令響應機制中,主機處于完全主導和支配的地位,從機處于被支配的地位,采用中斷方式響應主機發起的請求,執行主機發送的請求指令。單指令響應機制流程如圖3所示,在一次工作過程中,下位機在未接受到上位機的請求響應時一直處于初始化狀態,當上位機向下位機發起請求響應,下位機則反饋接受響應,和上位機保持一致的工作狀態。接著上位機發送工作指令,其中下位機每執行完一個工作指令就會給上位機反饋完成狀態,實現“命令——執行——命令——執行”的通信邏輯。上位機依次發送工作指令,直到最后一個工作指令發出,下位機完成所有的工作任務后反饋狀態,等待上位機的結束響應指令,下位機則恢復到初始化狀態,一個工作流程完成。

圖3 單指令響應機制流程
從機自主響應機制如圖4所示,上位機將系統服務程序重構后的系統架構進行分組打包,再以上、下位機預先設定的協議標準生成新的架構協議,通過通信總線傳送到下位機。下位機通過對架構協議進行解碼分組,生成自身可以運行的硬件測試程序。在一次工作過程中,上位機不需要再發送請求響應和工作指令等,下位機會自主執行測試任務,并且實時反饋工作狀態和測試數據,直到測試任務完成,下位機則恢復初始化狀態,等待下一次工作開始。

圖4 從機自主響應機制流程
單指令響應機制具有高自由度和邏輯簡單的優點,但是會一直占用總線資源,同時測試精度也會因總線帶寬而受到影響;從機自主響應機制能夠減少總線資源占據時間,測試精度也只受微處理器和模塊化電路的固有特性影響,但受下位機服務程序影響,測試程序的自由度和邏輯會受到限制。因此,兩種響應機制可以在不用的場景下使用,以實現可重構測控系統利用率的最大化。
用戶完成功能配置工作后,上位機的系統服務程序生成配置文件需要傳輸到下位機微處理器,因此需要制定一種完善的通信協議,以防止信息交互過程中出現異常。串口通信能夠按位發送和接收抄字節的通信方式,可以將接收來自CPU的并行數據字符轉換為連續的串行數據流發送出去,通信協議有著很好的自定義性。幀協議組成如圖5所示,包括幀起始、數據幀、校驗位和幀結束,其中數據幀的類型分為兩種:測試流程配置協議和測試工作服務協議。

圖5 通信協議幀組成結構
1.3.1 測試流程配置協議
由于系統上電后,下位機處理器處于一個初始化狀態,無法直接進行工作進程,將會一直等待上位機的測試流程配置協議,完成系統測試流程配置工作。測試流程配置協議包括了測試循環模式(單次或多次)、系統響應機制(單指令響應或從機自主響應)和測試項目及標準(模塊選擇和仲裁標準確定)。因此,下位機接受測試流程配置協議后便可執行對應的任務,實現硬件平臺的初始化配置工作,等待測試進行。
1.3.2 測試工作服務協議
測試進行中,下位機會不斷采集信號并且由微處理器分析,生成一系列的數字信號,且通過串口通信發送給上位機,供上位機進行信息處理以及人機交互。測試工作服務協議定義了測試ID、信號電氣特性、測試狀態和測試結果等,能夠實時精準地描述測試過程,實現測試進程的數字化,方便系統的數據分析。
目前所用的電機驅動器是通過發送控制電機的命令,同時接受反饋信號確定電機的運行狀態,形成閉環控制,根據測試需求,結合實際的可能性,將整個硬件系統分為3個部分進行設計,總體框架如圖6所示。

圖6 硬件平臺整體框架
(1)主控板。主控板控制整個測試的流程,發送測試信號,接受并處理IO板反饋的測試信號值,同時完成與上位機的信息交互工作。
(2)電源板。電源板將市電輸入電壓轉換成測試系統需要使用的電壓。包括電源轉換模塊和繼電器開關模塊,能夠控制電源輸出種類和模式。
(3)IO板。IO板實現底層測試內容,完成信號調理并傳輸到主控芯片處理。包含著PWM(pulse width modulation)輸入輸出電路、雙向IO隔離電路、AD采集電路、DAC(digital to analog converter)輸出電路、BSD(bit serial data)通信電路和LIN(local interconned network)通信電路等。IO板規格一致,接口標準一致,可按需增刪信號調理模塊。
通過IO板與模塊電路的排列組合,就可以拼接底層硬件測試平臺,為測試系統提供硬件基礎。其次,下位機加入軟件編程控制的測試流程以及測試方式,軟件設計采用STM32封裝庫組合,代碼的編寫和和維護效率比較高,可讀性強,易于閱讀和修改。
由于許多電機驅動器裝配成產品后,便不容易拆卸下來,給后期的電機驅動器故障定位增加了難度,如汽車電子水泵,其成品的電機驅動器被密封膠包裹,不利于電機驅動器拆卸分析。因此電機驅動器測試的目的不僅僅是要篩選出不合格件,還需要使產品參數可以進行追溯,有利于產品后期的故障定位。
電機驅動器性能測試流程如圖7所示,下位機配置測試方案后便調用對應的測試模塊,待被測電機驅動器裝夾到位,用戶可通過開關按鈕(如腳踏開關、雙手按鍵開關和上位機軟件開關均可,可按實際需求設計)開始測試,當下位機系統檢測到測試開始的信號后,系統掃碼電機驅動器PCB(printed circuit board)的ID號,進行身份識別后展開相應的測試進程,最后將測試的數據統一發送給上位機處理,完成一次測試。

圖7 電機驅動器的測試流程
電機驅動器測試系統的可靠性決定著電機驅動器的測試數據是否精確、測試速度是否高效、測試結果是否準確,測試系統的自檢功能則可以監視自身設備狀態以及自身故障定位。根據測試系統結構特征,設計一款設備自檢器來完成自檢工作。因為測試系統本身就有激勵信號輸出和信號采集的功能,設備自檢器可以把激勵信號接入到信號采集接口中,讓測試系統處于一個閉環狀態。主控芯片根據輸出的信號特征,并分析采集回來的信號特征,與預期值進行比對,根據比對結果分析出測試系統的可靠性,完成自檢工作。
LabVIEW與傳統的計算機語言不同,程序在運行過程中采用自動多線程機制,即如果兩個模塊之間沒有數據交互,可以同時運行,則系統會將這兩個模塊分配到不同的線程執行,采用自動多線程的方法,軟件的執行速度得到大幅提高,節省了程序的運行時間[10-11]。目前多數基于 LabVIEW的軟件執行過程中是由數據流驅動的,其定義為一個函數或模塊只有當它所有的輸入都獲得數據且滿足條件時,這個函數或模塊才能執行,即在LabVIEW中,程序的運行受計算機性能等條件的影響較小。
筆者以STM32為主控芯片,附加外圍電路設計主控板,功能板主要以信號調理電路為主建立下位機系統,上位機以LabVIEW生成軟件平臺,最終形成一個完整的測試系統,再以電機驅動器為研究對象,進行多組合格測試實驗。上位機主界面如圖8所示,整個系統包括軟件配置、軟件狀態、測試結果、故障類型以及數據存儲等功能,用戶進行相應的配置后即可進行測試工作。

圖8 上位機主界面
測試系統的自檢功能通過“系統自檢”按鍵觸發。系統自檢正常時“硬件現況”的“正常”指示燈為顯示狀態,而“故障”指示燈則是熄滅狀態;若系統的硬件部分出現問題時,系統自檢報錯界面如圖9所示。“當前狀態”為“系統自檢完成”,“故障”指示燈為顯示狀態,同時“測試結果說明”會將故障類型顯示出來,圖9顯示為“AD模塊通道2無反饋”,用戶即可優先排除對應錯誤并改正,以保證測試系統的可靠性。

圖9 系統自檢報錯界面
測試系統自檢無問題即可進行電機驅動器測試,根據電機驅動器的型號選擇“測試項目”、“測試標準”和“測試流程”,生成測試方案,即可完成電機驅動器的測試準備工作。測試不合格主界面如圖10所示,系統能夠將測試結果和原因顯示出來,以便測試人員記錄和分析。

圖10 測試不合格主界面
對于電機類產品的生產企業來說,電機驅動器的測試工作往往是批量進行的,對于測試設備的要求不僅僅要測試效率高,更需要對測試數據進行分析和處理。本測試系統預裝“轉速統計”(圖11)、“故障統計”(圖12)、“測試報表”(圖13)和“ID查詢”(圖14)功能,以方便用戶及時獲取測試數據,用戶也可以根據自身需求,增加或者改動軟件功能,提高測試系統的可拓展性。

圖11 轉速統計折線圖

圖12 故障類型分布圖

圖13 測試數據報表

圖14 ID數據查詢界面
“轉速統計”將測試合格的電機驅動器在帶載模式下的轉速信息進行整合,根據轉速的波動情況,能夠反映出控制算法的優缺性;“故障統計”則將不合格的電機驅動器進行分類,能夠直觀發現問題所在,方便研發人員分析;“測試報表”則統計每一個電機驅動器在測試過程中的重要參數,形成一個報表后發送給企業數據庫,用戶再通過“ID查詢”找到被測電機驅動器的詳細數據,在售后過程中能夠對出廠參數的分析,從而提高故障定位的效率。
通過對傳統測控系統的優化,以主從式通信和模塊化硬件平臺的方式,基于STM32微處理器和LabVIEW,對不同型號電機驅動器進行測試實驗。系統能夠迅速轉變測試流程和測試標準,生成對應的測試方案,得到正確的測試結果,驗證了可重構測控系統的可行性。該測試系統的研制能滿足多種電機驅動器測試需求,對加快測試的效率以及減少測試所耗費的人力有重要意義。