史宏亮 張 東 劉春來
(北京自動(dòng)測(cè)試技術(shù)研究所 100088)
20世紀(jì)60年代以來,國(guó)內(nèi)外學(xué)者已對(duì)模擬電路故障診斷提出了傳統(tǒng)故障診斷方法和現(xiàn)代故障診斷方法兩大類診斷辦法。傳統(tǒng)電路故障診斷通常利用電路原理分析及相應(yīng)物理量的計(jì)算,通過電路對(duì)正弦信號(hào)、階躍信號(hào)、方波信號(hào)等典型信號(hào)的暫態(tài)響應(yīng)或穩(wěn)態(tài)響應(yīng)的情況分析診斷可能存在的故障[1]。傳統(tǒng)模擬電路故障診斷方法主要有:故障字典法,元件參數(shù)辨識(shí)法,故障驗(yàn)證法等;現(xiàn)代模擬電路故障診斷方法主要是模式識(shí)別法,不需要對(duì)電路原理進(jìn)行分析,采用的技術(shù)包括神經(jīng)網(wǎng)絡(luò)故障診斷法、專家系統(tǒng)故障診斷法、模糊故障診斷法、小波變換故障診斷法等[2]。
采用如神經(jīng)網(wǎng)絡(luò)、模糊、小波變換等故障診斷方法,在MATLAB仿真環(huán)境中對(duì)其算法進(jìn)行設(shè)計(jì)和研究是比較方便的,而從算法到實(shí)際代碼的生成還有一個(gè)中間過程,這個(gè)代碼如要開發(fā)人員自己編寫的話,其工作量是比較大的,首先要求開發(fā)者對(duì)算法自身的理解要有一定深度,那么在這一由理論到實(shí)際的過程中,近年來出現(xiàn)的一種叫做快速原型方法,是算法在仿真環(huán)境中進(jìn)行快速驗(yàn)證的很好解決方案。
快速原型(Rapid Control Prototyping,RCP),即控制系統(tǒng)的快速功能原型測(cè)試。是指在產(chǎn)品開發(fā)的初期,將工程師開發(fā)的算法下載到計(jì)算機(jī)硬件平臺(tái)中,通過實(shí)際I/O與被控對(duì)象實(shí)物連接,用實(shí)時(shí)仿真機(jī)來模擬控制器與實(shí)物相連進(jìn)行實(shí)時(shí)仿真,檢測(cè)與實(shí)物相連時(shí)控制算法的性能,并在控制算法不理想的情況下可以進(jìn)行快速反復(fù)設(shè)計(jì)以找到理想的控制方案;在確定控制方案后,通過代碼的自動(dòng)生成及下載到硬件系統(tǒng)上,形成最終的控制器產(chǎn)品,并通過對(duì)這個(gè)功能原型裝置的實(shí)物實(shí)驗(yàn)來檢驗(yàn)和修改設(shè)計(jì)。快速原型仿真與半實(shí)物仿真(HILS)這兩方面應(yīng)用的區(qū)別是:前者的仿真對(duì)象是控制器,實(shí)現(xiàn)了控制器的功能;而后者仿真對(duì)象是設(shè)備或環(huán)境,實(shí)現(xiàn)了某一設(shè)備或整個(gè)外環(huán)境的功能??焖僭拖到y(tǒng)真正使設(shè)計(jì)人員不必為研發(fā)各階段的功能檢測(cè)實(shí)驗(yàn)環(huán)境而煩惱,減少設(shè)計(jì)過程中信息交流和共享中存在的困難,可以將精力更多集中在產(chǎn)品功能和品質(zhì)的研究上,而不是枯燥的手工編碼工作上[3]。
實(shí)時(shí)混合仿真平臺(tái)是結(jié)合 MATLAB 實(shí)時(shí)仿真機(jī)制RTW(Real-Time Workshop)工具箱,并在 RTWT (Real-Time Windows Target)工具箱提供的實(shí)時(shí)內(nèi)核的支持下,實(shí)現(xiàn)的實(shí)時(shí)仿真。
RTW是MATLAB圖形建模、仿真和樣機(jī)開發(fā)環(huán)境Simulink的一個(gè)重要功能補(bǔ)充模塊,是基于Simulink的代碼自動(dòng)生成環(huán)境。它能直接從Simulink的模型中產(chǎn)生優(yōu)化的、可移植的和個(gè)性化的C代碼,并根據(jù)目標(biāo)配置自動(dòng)生成多種環(huán)境下的程序,在硬件上運(yùn)行動(dòng)態(tài)系統(tǒng)模型,同時(shí)還支持基于模型的調(diào)試。當(dāng)用戶在Simulink環(huán)境下建模,并得到較滿意的仿真結(jié)果后,可利用RTW針對(duì)某種目標(biāo)機(jī)來創(chuàng)建整個(gè)系統(tǒng)或是部分子系統(tǒng)可下載執(zhí)行的C代碼, 并結(jié)合一個(gè)快速原型化目標(biāo)(例如RTWT目標(biāo))與用戶的物理系統(tǒng)連接在一起,使用Simulink模型作為連接物理目標(biāo)的接口,利用生成的代碼在實(shí)時(shí)環(huán)境中測(cè)試與驗(yàn)證自己的設(shè)計(jì)。
RTWT是MATLAB 提供和發(fā)行的一個(gè)基于RTW體系框架的附加產(chǎn)品,它可將PC機(jī)轉(zhuǎn)變?yōu)橐粋€(gè)實(shí)時(shí)系統(tǒng),其目的是引入一種快速原型設(shè)計(jì)的方法,用于控制器的實(shí)時(shí)測(cè)試和開發(fā)[4]。在這個(gè)環(huán)境里,一臺(tái)PC機(jī)既作為宿主機(jī),又作為目標(biāo)機(jī)存在。RTWT應(yīng)用一個(gè)實(shí)時(shí)內(nèi)核來保證應(yīng)用程序的實(shí)時(shí)運(yùn)行,實(shí)時(shí)內(nèi)核運(yùn)行在CPU的最高優(yōu)先級(jí),利用PC的內(nèi)部時(shí)鐘作為自己的時(shí)間信號(hào)源。由于目標(biāo)應(yīng)用程序被編譯為具有平面存儲(chǔ)模式(flat memory model)Windows NT應(yīng)用程序,提供了完全的32位功能,無須在16位內(nèi)存段與DOS擴(kuò)展器間進(jìn)行切換,因而執(zhí)行效率高,具有相當(dāng)快的運(yùn)算速度,這樣就可以在較短的時(shí)間內(nèi)計(jì)算仿真模型,從而可以滿足實(shí)時(shí)系統(tǒng)對(duì)時(shí)間的要求。對(duì)于較小的Simulink模型,其采樣頻率可以達(dá)到10KHz。
RTWT支持多種做作的驅(qū)動(dòng)程序庫(kù),從Simulink移植到外部硬件的參數(shù)可以在系統(tǒng)運(yùn)動(dòng)過程中進(jìn)行在線調(diào)整,所以用其進(jìn)行實(shí)時(shí)控制系統(tǒng)開發(fā)時(shí),周期短、費(fèi)用低、效率高。RTW和RTWT的關(guān)系以及工作原理如圖1所示。

圖1 實(shí)時(shí)窗口目標(biāo)工作原理框圖
系統(tǒng)中虛擬控制器部分由 MATLAB 結(jié)合 Simulink 工具箱實(shí)現(xiàn),以Simulink模型作為連接物理目標(biāo)的接口。Simulink的外部模式與 RTWT 結(jié)合提供了一個(gè)圖形用戶接口。.利用RTW將搭建好的Simulink模型自動(dòng)轉(zhuǎn)換為C代碼并編譯成可Windows NT可執(zhí)行程序,在底層運(yùn)行,與RTWT通過對(duì)應(yīng)的驅(qū)動(dòng)程序連接,完成系統(tǒng)的實(shí)時(shí)采集和故障診斷工作。
PCB故障檢測(cè)系統(tǒng)主要包括主控IPC、測(cè)試儀器(硬件模塊構(gòu)成)、系統(tǒng)軟件、測(cè)試連接裝置等部分。系統(tǒng)整體框圖如圖2所示。

圖2 功能測(cè)試系統(tǒng)硬結(jié)構(gòu)框圖
PCB故障檢測(cè)系統(tǒng)的硬件平臺(tái)由主控計(jì)算機(jī)、測(cè)試儀器、通用測(cè)試接口連接裝置等部分構(gòu)成。主控計(jì)算機(jī)完成測(cè)試控制、故障診斷、控制用戶界面、和數(shù)據(jù)顯示系統(tǒng)管理等任務(wù)。測(cè)試儀器通過測(cè)試總線與主控計(jì)算機(jī)連接,在主控計(jì)算機(jī)的控制下完成測(cè)試任務(wù)。通用測(cè)試接口連接裝置由通用接口電路、接口適配電路和連接裝置構(gòu)成,通過信號(hào)轉(zhuǎn)接等將被測(cè)電路板的信號(hào)接入測(cè)試系統(tǒng),必要時(shí)還需要對(duì)信號(hào)進(jìn)行調(diào)理、變換。
在故障診斷算法設(shè)計(jì)和仿真驗(yàn)證階段,則主要利用MATLAB的快速控制原型RCP方式來實(shí)現(xiàn)算法參數(shù)的不斷優(yōu)化和調(diào)試,以達(dá)到更好的診斷效果。其中最主要用到的工具箱就是RTW和RTWT對(duì)象。
Simulink 提供了各種各樣的模塊集合,在 Simulink 提供的圖形用戶界面上,只要進(jìn)行簡(jiǎn)單拖拉操作,就可利用這些模塊集合構(gòu)造出復(fù)雜的控制器模型。此外 Simulink 還提供了諸如模糊邏輯工具箱與神經(jīng)網(wǎng)絡(luò)工具箱之類的高級(jí)算法控制工具箱,利用這些工具箱,結(jié)合其他模塊,可搭建出各種與之相關(guān)的故障診斷算法,如模糊診斷方法、神經(jīng)網(wǎng)絡(luò)診斷等。利用工具箱的圖形用戶界面編輯控制器,可方便地設(shè)計(jì)故障診斷器的框圖式系統(tǒng),這使系統(tǒng)的算法設(shè)計(jì)過程圖形化,更為簡(jiǎn)單和直接。
(1)在Windows 2000下安裝RTW 5.0需要系統(tǒng)首先安裝MATLAB 6.5.1和Simulink 5.1,還要安裝RTWT需要的首先安裝Watcom C編譯器,并在定義Watcom環(huán)境變量,定義Watcom環(huán)境變量的方法是在autoexec.bat中加入如下設(shè)置:
set WATCOM=<編譯器安裝路徑>
重啟計(jì)算機(jī)后在MATLAB命令行窗口鍵入mex–setup,根據(jù)提示設(shè)置Watcom C編譯器為默認(rèn)編譯器。
(2)在MATLAB命令行窗口鍵入rtwintgt–setup,對(duì)于“是否安裝RTWT內(nèi)核”問題,鍵入Y;
(3)再次打開MATLAB,打開Simulink,并新建一模型文件,保存為PCBtest.mdl;
(4)在模型庫(kù)中找到Real-Time Windows Target,將Analog Output、Analog Input和Scope拖到新建的模型文件中;
(5)雙擊Analog Input,在彈出的窗口中點(diǎn)“Install new board”按鈕,找到所用采集卡的驅(qū)動(dòng)程序,確認(rèn)后,出現(xiàn)采集卡輸入端口調(diào)整窗口,可以調(diào)整和確認(rèn)采集卡的地址和各通道的輸入電壓范圍;例如對(duì)于NI公司的板卡,驅(qū)動(dòng)選擇過程如圖3所示。

圖3 RTWT下NI板卡驅(qū)動(dòng)安裝示例
(6)在PCBtest.mdl模型文件的菜單中選擇Simulation→Simulation Parameters→Solver→Solver options中Type對(duì)應(yīng)的下拉框中選擇定步長(zhǎng)(Fixed-step),定步長(zhǎng)大小設(shè)置為0.001,模式選擇為單任務(wù)(Single Tasking);
(7)Tools→RTW Options中系統(tǒng)目標(biāo)文件,利用瀏覽(Browse)按鈕選擇實(shí)時(shí)視窗目標(biāo)所對(duì)應(yīng)的rtwin.tlc;
(8)按下Tools→RTW Build按鈕,進(jìn)行代碼生成和目標(biāo)文件的創(chuàng)建;
(9)在Simulation菜單選擇External;
(10)在Simulation菜單下,確認(rèn)Connect to target選項(xiàng);
(11)在Simulation菜單下,單擊Start real-time code。即開始快速控制原型法對(duì)系統(tǒng)進(jìn)行測(cè)試。
本文提出一種將快速控制原型應(yīng)用到PCB故障診斷系統(tǒng)中的方法,利用實(shí)時(shí)視窗目標(biāo)(RTWT)可方便完成診斷算法的驗(yàn)證。確定好相應(yīng)的診斷策略后,還可利用RTW自動(dòng)生成代碼,將控制器對(duì)應(yīng)的代碼嵌入到用C/C++編寫的故障診斷軟件中,進(jìn)而完成快速原形化控制和設(shè)計(jì)到代碼的自動(dòng)化。
[1]萬喜新.基于信息融合技術(shù)的模擬電路故障診斷方法研究[D].湖南大學(xué),2006.
[2]王啟寧,李永紅.基于人工智能算法的印刷電路板測(cè)試與診斷系統(tǒng)研究[J].山西電子技術(shù),2011,(1):85-87.
[3]許志,唐碩.基于RTX實(shí)時(shí)環(huán)境的快速原型系統(tǒng)設(shè)計(jì)[J].西北工業(yè)大學(xué)學(xué)報(bào),2010,28(2):176-181.
[4]李永富,楊鵬,張燕等.基于MATLAB的高級(jí)過程控制實(shí)時(shí)混合仿真平臺(tái)[J].系統(tǒng)仿真學(xué)報(bào),2007,19(18):4150-4153.