程 鑫,施恢勝,同軍超,吳臻冕
(1.武漢理工大學 機電工程學院,湖北 武漢 430070;2.湖北省磁懸浮工程技術研究中心,湖北 武漢 430070)
電機驅(qū)動器是電機系統(tǒng)的神經(jīng)中樞,其可靠性決定電機系統(tǒng)的靜態(tài)特性、動態(tài)特性、控制精度、抗干擾能力和魯棒性等特征。電機驅(qū)動器一旦發(fā)生錯誤,會影響到整個電機系統(tǒng)的工作狀態(tài),甚至可能會導致電機系統(tǒng)整體癱瘓[1]。因此,要想評定電機驅(qū)動器的可靠性,就必須對電機驅(qū)動器進行測試。
早期的電機驅(qū)動器檢測工作采用儀器儀表結合人工讀取的方法。這種測試方法耗時長、錯誤率高、測試成本高、測試精度低、系統(tǒng)兼容性差和可擴展性差。同時人工測試會導致測試數(shù)據(jù)不能及時準確的存儲,不利于后期維修升級對電機驅(qū)動器測試過程中的測試數(shù)據(jù)進行追溯,提高了研發(fā)成本,不適應快速精準的大批量現(xiàn)代測試要求。
隨著自動測試技術[2]和可重構技術[3]的不斷發(fā)展,電機驅(qū)動器的測試系統(tǒng)也逐漸脫離人工測試,更加依賴于自動化設備測試,減少了諸多不可避免的人為因素,提升了測試效率和精度。可重構技術從實現(xiàn)的方法劃分,包括硬件可重構技術和軟件可重構技術。硬件可重構一般是指基于可重構邏輯,通過改變數(shù)字邏輯電路的連線來實現(xiàn)不同的功能,主要包括DSP(digital signal processing)、FPGA(field programmable gate array)、CPLD(complex programmable logic device)和ISP(in_system programmability/programming)等邏輯器件,比較依賴處理器芯片的邏輯功能,同時開發(fā)成本高[4];軟件可重構技術是以提高軟件質(zhì)量為目的,通過應用大量優(yōu)化后的算法,調(diào)節(jié)軟件結構,使軟件代碼發(fā)生變化,從而提升軟件在不同環(huán)境下的自適應性,且整體的功能保持穩(wěn)定,但是對于軟件的架構有著較高的難度,開發(fā)比較困難[5-7]。
2014年,吳震海[8]針對大功率電機驅(qū)動器的測試需求,基于STM32微處理器設計出一套測試系統(tǒng),能夠識別IGBT(insulated gate bipolar transistor)驅(qū)動模塊HP1/HP2及驅(qū)動器的元器件損壞和焊接錯誤等情況,有利于甄別用戶不易識別的錯誤,提高了電機驅(qū)動器的研發(fā)效率。工業(yè)應用中,泛華科技研發(fā)的電路板綜合測試系統(tǒng),可對多種形狀、大小、接口各異的電路板進行功能測試。整個測試平臺在設計上兼顧硬件與軟件兩方面的優(yōu)點。其中硬件設備資源在現(xiàn)有產(chǎn)品測試硬件需求的基礎上,充分考慮針對未來產(chǎn)品測試的可擴展性;軟件具備平臺化定制特點和基于平臺的簡單二次開發(fā)特性。適用于多品種小批量的電子產(chǎn)品功能測試、可擴展為流程化出廠檢測或者維修測試的平臺化測試設備。
由于DSP和FPGA等硬件可重構測試方案成本高,軟件可重構架構復雜的特點,因此,為了提高測試系統(tǒng)的通用性和可重構性,筆者針對電機驅(qū)動器測試系統(tǒng)進行研究,設計了一套基于STM32微處理器的可重構測試系統(tǒng)方案,將大量測試系統(tǒng)開發(fā)中需要重復開發(fā)的設計進行標準化設計,提高測試系統(tǒng)的開發(fā)效率,減少不必要的研發(fā)成本。
與傳統(tǒng)的測控系統(tǒng)相比,可重構測控系統(tǒng)的最大優(yōu)點就是能進行資源整合、結構配置和靈活變遷,從而提升了測控系統(tǒng)通用性、冗余性和自適應性[9]??芍貥嫓y控系統(tǒng)的總體架構如圖1所示,包括上位機(人機交互界面和系統(tǒng)服務程序)、下位機和測試對象。
圖1 可重構測控系統(tǒng)的主體架構
(1)功能模塊庫。硬件子模塊共同構成的功能庫,決定了系統(tǒng)的極限測試功能種類和數(shù)量,主要由硬件平臺決定。
(2)方案決策庫。開發(fā)人員會預設多種基本方案,通過基本方案的組合可以產(chǎn)生多種復雜的測試方案。
(3)可行性分析。對測試功能配置數(shù)據(jù)與功能模塊庫和方案決策庫進行比對,判斷系統(tǒng)的測試能力是否滿足需求。
(4)模塊調(diào)度。對硬件子模塊進行調(diào)度,實現(xiàn)硬件部分的功能配置。
(5)系統(tǒng)重構。確定測試路線、硬件資源和響應機制,生成測試系統(tǒng)架構方案。
(6)性能評價。對架構方案進行仲裁,判斷是否為使用資源少、測試效率高、測試流程簡便的最優(yōu)解。
(7)系統(tǒng)架構。確定最終架構,并且生成相應的協(xié)議代碼。
用戶在人機交互界面對測試功能配置后,系統(tǒng)服務程序?qū)⒏鶕?jù)系統(tǒng)預制的功能模塊庫和方案決策庫對測試功能配置進行可行性分析,選擇對應的模塊后生成模塊調(diào)度方案,進行系統(tǒng)重構,然后對重構后的系統(tǒng)進行性能評價,若評價不高則再次選擇其他方案進行系統(tǒng)重構,直到評價合格,生成系統(tǒng)架構方案。系統(tǒng)服務程序完成系統(tǒng)架構方案的生成后將轉化成下位機主控芯片能夠識別的指令,并且完成下發(fā)指令。下位機主控芯片對收到的指令進行解碼,進而通過配置硬件模塊電路完成底層硬件方案的重構工作。
系統(tǒng)服務程序完成系統(tǒng)架構任務后,需要把工作指令通過通信總線下發(fā)到下位機,以實現(xiàn)系統(tǒng)架構硬件模塊更新的工作。
可重構測控系統(tǒng)是一種典型的主從式通信系統(tǒng),通過總線通信方式實現(xiàn)系統(tǒng)模塊控制和數(shù)據(jù)交換。如圖2所示,主機是系統(tǒng)的上位機,包括人機交互、系統(tǒng)服務程序和通信總線接口;從機是下位機,包括通信總線接口、微處理器和硬件模塊電路。對于主從式通信系統(tǒng),主機是處于支配地位的,是整個系統(tǒng)的控制核心,只能擁有一個主機,這與可重構測控系統(tǒng)中主控計算機的定位是重合的,主機向從機發(fā)出指令,從機接收到指令后,完成相應的動作。而從機是系統(tǒng)中的分節(jié)點,處于被支配的地位,在一個系統(tǒng)中可以具有多個從機節(jié)點,從機只能被動接收主機的指令消息,從機與從機之間不能進行通信。主機與從機之間通過總線形式完成數(shù)據(jù)傳輸。
圖2 系統(tǒng)通信節(jié)點模型
主從式系統(tǒng)的響應機制有兩種:單指令響應機制和從機自主響應機制。在單指令響應機制中,主機處于完全主導和支配的地位,從機處于被支配的地位,采用中斷方式響應主機發(fā)起的請求,執(zhí)行主機發(fā)送的請求指令。單指令響應機制流程如圖3所示,在一次工作過程中,下位機在未接受到上位機的請求響應時一直處于初始化狀態(tài),當上位機向下位機發(fā)起請求響應,下位機則反饋接受響應,和上位機保持一致的工作狀態(tài)。接著上位機發(fā)送工作指令,其中下位機每執(zhí)行完一個工作指令就會給上位機反饋完成狀態(tài),實現(xiàn)“命令——執(zhí)行——命令——執(zhí)行”的通信邏輯。上位機依次發(fā)送工作指令,直到最后一個工作指令發(fā)出,下位機完成所有的工作任務后反饋狀態(tài),等待上位機的結束響應指令,下位機則恢復到初始化狀態(tài),一個工作流程完成。
圖3 單指令響應機制流程
從機自主響應機制如圖4所示,上位機將系統(tǒng)服務程序重構后的系統(tǒng)架構進行分組打包,再以上、下位機預先設定的協(xié)議標準生成新的架構協(xié)議,通過通信總線傳送到下位機。下位機通過對架構協(xié)議進行解碼分組,生成自身可以運行的硬件測試程序。在一次工作過程中,上位機不需要再發(fā)送請求響應和工作指令等,下位機會自主執(zhí)行測試任務,并且實時反饋工作狀態(tài)和測試數(shù)據(jù),直到測試任務完成,下位機則恢復初始化狀態(tài),等待下一次工作開始。
圖4 從機自主響應機制流程
單指令響應機制具有高自由度和邏輯簡單的優(yōu)點,但是會一直占用總線資源,同時測試精度也會因總線帶寬而受到影響;從機自主響應機制能夠減少總線資源占據(jù)時間,測試精度也只受微處理器和模塊化電路的固有特性影響,但受下位機服務程序影響,測試程序的自由度和邏輯會受到限制。因此,兩種響應機制可以在不用的場景下使用,以實現(xiàn)可重構測控系統(tǒng)利用率的最大化。
用戶完成功能配置工作后,上位機的系統(tǒng)服務程序生成配置文件需要傳輸?shù)较挛粰C微處理器,因此需要制定一種完善的通信協(xié)議,以防止信息交互過程中出現(xiàn)異常。串口通信能夠按位發(fā)送和接收抄字節(jié)的通信方式,可以將接收來自CPU的并行數(shù)據(jù)字符轉換為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,通信協(xié)議有著很好的自定義性。幀協(xié)議組成如圖5所示,包括幀起始、數(shù)據(jù)幀、校驗位和幀結束,其中數(shù)據(jù)幀的類型分為兩種:測試流程配置協(xié)議和測試工作服務協(xié)議。
圖5 通信協(xié)議幀組成結構
1.3.1 測試流程配置協(xié)議
由于系統(tǒng)上電后,下位機處理器處于一個初始化狀態(tài),無法直接進行工作進程,將會一直等待上位機的測試流程配置協(xié)議,完成系統(tǒng)測試流程配置工作。測試流程配置協(xié)議包括了測試循環(huán)模式(單次或多次)、系統(tǒng)響應機制(單指令響應或從機自主響應)和測試項目及標準(模塊選擇和仲裁標準確定)。因此,下位機接受測試流程配置協(xié)議后便可執(zhí)行對應的任務,實現(xiàn)硬件平臺的初始化配置工作,等待測試進行。
1.3.2 測試工作服務協(xié)議
測試進行中,下位機會不斷采集信號并且由微處理器分析,生成一系列的數(shù)字信號,且通過串口通信發(fā)送給上位機,供上位機進行信息處理以及人機交互。測試工作服務協(xié)議定義了測試ID、信號電氣特性、測試狀態(tài)和測試結果等,能夠?qū)崟r精準地描述測試過程,實現(xiàn)測試進程的數(shù)字化,方便系統(tǒng)的數(shù)據(jù)分析。
目前所用的電機驅(qū)動器是通過發(fā)送控制電機的命令,同時接受反饋信號確定電機的運行狀態(tài),形成閉環(huán)控制,根據(jù)測試需求,結合實際的可能性,將整個硬件系統(tǒng)分為3個部分進行設計,總體框架如圖6所示。
圖6 硬件平臺整體框架
(1)主控板。主控板控制整個測試的流程,發(fā)送測試信號,接受并處理IO板反饋的測試信號值,同時完成與上位機的信息交互工作。
(2)電源板。電源板將市電輸入電壓轉換成測試系統(tǒng)需要使用的電壓。包括電源轉換模塊和繼電器開關模塊,能夠控制電源輸出種類和模式。
(3)IO板。IO板實現(xiàn)底層測試內(nèi)容,完成信號調(diào)理并傳輸?shù)街骺匦酒幚?。包含著PWM(pulse width modulation)輸入輸出電路、雙向IO隔離電路、AD采集電路、DAC(digital to analog converter)輸出電路、BSD(bit serial data)通信電路和LIN(local interconned network)通信電路等。IO板規(guī)格一致,接口標準一致,可按需增刪信號調(diào)理模塊。
通過IO板與模塊電路的排列組合,就可以拼接底層硬件測試平臺,為測試系統(tǒng)提供硬件基礎。其次,下位機加入軟件編程控制的測試流程以及測試方式,軟件設計采用STM32封裝庫組合,代碼的編寫和和維護效率比較高,可讀性強,易于閱讀和修改。
由于許多電機驅(qū)動器裝配成產(chǎn)品后,便不容易拆卸下來,給后期的電機驅(qū)動器故障定位增加了難度,如汽車電子水泵,其成品的電機驅(qū)動器被密封膠包裹,不利于電機驅(qū)動器拆卸分析。因此電機驅(qū)動器測試的目的不僅僅是要篩選出不合格件,還需要使產(chǎn)品參數(shù)可以進行追溯,有利于產(chǎn)品后期的故障定位。
電機驅(qū)動器性能測試流程如圖7所示,下位機配置測試方案后便調(diào)用對應的測試模塊,待被測電機驅(qū)動器裝夾到位,用戶可通過開關按鈕(如腳踏開關、雙手按鍵開關和上位機軟件開關均可,可按實際需求設計)開始測試,當下位機系統(tǒng)檢測到測試開始的信號后,系統(tǒng)掃碼電機驅(qū)動器PCB(printed circuit board)的ID號,進行身份識別后展開相應的測試進程,最后將測試的數(shù)據(jù)統(tǒng)一發(fā)送給上位機處理,完成一次測試。
圖7 電機驅(qū)動器的測試流程
電機驅(qū)動器測試系統(tǒng)的可靠性決定著電機驅(qū)動器的測試數(shù)據(jù)是否精確、測試速度是否高效、測試結果是否準確,測試系統(tǒng)的自檢功能則可以監(jiān)視自身設備狀態(tài)以及自身故障定位。根據(jù)測試系統(tǒng)結構特征,設計一款設備自檢器來完成自檢工作。因為測試系統(tǒng)本身就有激勵信號輸出和信號采集的功能,設備自檢器可以把激勵信號接入到信號采集接口中,讓測試系統(tǒng)處于一個閉環(huán)狀態(tài)。主控芯片根據(jù)輸出的信號特征,并分析采集回來的信號特征,與預期值進行比對,根據(jù)比對結果分析出測試系統(tǒng)的可靠性,完成自檢工作。
LabVIEW與傳統(tǒng)的計算機語言不同,程序在運行過程中采用自動多線程機制,即如果兩個模塊之間沒有數(shù)據(jù)交互,可以同時運行,則系統(tǒng)會將這兩個模塊分配到不同的線程執(zhí)行,采用自動多線程的方法,軟件的執(zhí)行速度得到大幅提高,節(jié)省了程序的運行時間[10-11]。目前多數(shù)基于 LabVIEW的軟件執(zhí)行過程中是由數(shù)據(jù)流驅(qū)動的,其定義為一個函數(shù)或模塊只有當它所有的輸入都獲得數(shù)據(jù)且滿足條件時,這個函數(shù)或模塊才能執(zhí)行,即在LabVIEW中,程序的運行受計算機性能等條件的影響較小。
筆者以STM32為主控芯片,附加外圍電路設計主控板,功能板主要以信號調(diào)理電路為主建立下位機系統(tǒng),上位機以LabVIEW生成軟件平臺,最終形成一個完整的測試系統(tǒng),再以電機驅(qū)動器為研究對象,進行多組合格測試實驗。上位機主界面如圖8所示,整個系統(tǒng)包括軟件配置、軟件狀態(tài)、測試結果、故障類型以及數(shù)據(jù)存儲等功能,用戶進行相應的配置后即可進行測試工作。
圖8 上位機主界面
測試系統(tǒng)的自檢功能通過“系統(tǒng)自檢”按鍵觸發(fā)。系統(tǒng)自檢正常時“硬件現(xiàn)況”的“正?!敝甘緹魹轱@示狀態(tài),而“故障”指示燈則是熄滅狀態(tài);若系統(tǒng)的硬件部分出現(xiàn)問題時,系統(tǒng)自檢報錯界面如圖9所示?!爱斍盃顟B(tài)”為“系統(tǒng)自檢完成”,“故障”指示燈為顯示狀態(tài),同時“測試結果說明”會將故障類型顯示出來,圖9顯示為“AD模塊通道2無反饋”,用戶即可優(yōu)先排除對應錯誤并改正,以保證測試系統(tǒng)的可靠性。
圖9 系統(tǒng)自檢報錯界面
測試系統(tǒng)自檢無問題即可進行電機驅(qū)動器測試,根據(jù)電機驅(qū)動器的型號選擇“測試項目”、“測試標準”和“測試流程”,生成測試方案,即可完成電機驅(qū)動器的測試準備工作。測試不合格主界面如圖10所示,系統(tǒng)能夠?qū)y試結果和原因顯示出來,以便測試人員記錄和分析。
圖10 測試不合格主界面
對于電機類產(chǎn)品的生產(chǎn)企業(yè)來說,電機驅(qū)動器的測試工作往往是批量進行的,對于測試設備的要求不僅僅要測試效率高,更需要對測試數(shù)據(jù)進行分析和處理。本測試系統(tǒng)預裝“轉速統(tǒng)計”(圖11)、“故障統(tǒng)計”(圖12)、“測試報表”(圖13)和“ID查詢”(圖14)功能,以方便用戶及時獲取測試數(shù)據(jù),用戶也可以根據(jù)自身需求,增加或者改動軟件功能,提高測試系統(tǒng)的可拓展性。
圖11 轉速統(tǒng)計折線圖
圖12 故障類型分布圖
圖13 測試數(shù)據(jù)報表
圖14 ID數(shù)據(jù)查詢界面
“轉速統(tǒng)計”將測試合格的電機驅(qū)動器在帶載模式下的轉速信息進行整合,根據(jù)轉速的波動情況,能夠反映出控制算法的優(yōu)缺性;“故障統(tǒng)計”則將不合格的電機驅(qū)動器進行分類,能夠直觀發(fā)現(xiàn)問題所在,方便研發(fā)人員分析;“測試報表”則統(tǒng)計每一個電機驅(qū)動器在測試過程中的重要參數(shù),形成一個報表后發(fā)送給企業(yè)數(shù)據(jù)庫,用戶再通過“ID查詢”找到被測電機驅(qū)動器的詳細數(shù)據(jù),在售后過程中能夠?qū)Τ鰪S參數(shù)的分析,從而提高故障定位的效率。
通過對傳統(tǒng)測控系統(tǒng)的優(yōu)化,以主從式通信和模塊化硬件平臺的方式,基于STM32微處理器和LabVIEW,對不同型號電機驅(qū)動器進行測試實驗。系統(tǒng)能夠迅速轉變測試流程和測試標準,生成對應的測試方案,得到正確的測試結果,驗證了可重構測控系統(tǒng)的可行性。該測試系統(tǒng)的研制能滿足多種電機驅(qū)動器測試需求,對加快測試的效率以及減少測試所耗費的人力有重要意義。