竺 瓊,胡志忠,浦建開
(南京航空航天大學(xué) 電子信息工程學(xué)院,江蘇 南京 210016)
隨著電子技術(shù)的迅速發(fā)展,電子設(shè)備的性能得到了很大的提高。模擬電路是電子設(shè)備中最易發(fā)生故障的薄弱環(huán)節(jié),所以對其進行故障診斷具有重要意義。模擬電路故障診斷中最基本的是故障樣本數(shù)據(jù)的獲取。最常用的是利用Matlab和PSpice聯(lián)合仿真提取故障樣本數(shù)據(jù)。PSpice是一款電路仿真軟件,可以得到精確的仿真結(jié)果;Matlab由主開發(fā)環(huán)境、工具箱、simulink仿真環(huán)境等內(nèi)容組成,具有強大的數(shù)據(jù)處理功能。將PSpice和Matlab結(jié)合,利用各自優(yōu)勢完成模擬電路故障樣本的獲取,為故障特征提取做準(zhǔn)備。
PSpice軟件運行的數(shù)據(jù)結(jié)果以.out或.txt文本形式輸出,包括輸入文件,元件模型參數(shù)等內(nèi)容。吳昊[1]用的方法是先用Str2num函數(shù)去掉.out文件中不相干內(nèi)容,再通過textread函數(shù)讀取所需內(nèi)容。滿高華[2]先用任選項設(shè)置(options)來簡化.out文件內(nèi)容,再用feof等函數(shù)讀取有價值數(shù)據(jù)。楊博文[3]先將.txt文件中的第一行字段名刪除并保存為.dat格式,再用importdat函數(shù)提取有用數(shù)據(jù)。
上述方法都需要等PSpice仿真文件形成以后再進行數(shù)據(jù)操作,且后續(xù)操作的前提是電路文件不變。如若用故障字典法、神經(jīng)網(wǎng)絡(luò)或遺傳算法等方法來進行模擬電路故障診斷,需要一次次的手動注入故障再進行仿真獲取故障樣本數(shù)據(jù)。尤其是利用遺傳算法時需要成千上萬次的樣本提取,會消耗大量時間,所以故障注入及故障樣本數(shù)據(jù)獲取的自動化顯得尤為重要。文中采用基于SLPS的模擬電路故障樣本獲取技術(shù),實現(xiàn)了故障注入,樣本提取的自動化。
SLPS是Cadence Design Systems公司針對PSpice模擬仿真器與Mathworks公司的Matlab建模工具推出的接口軟件。該接口可用于電路系統(tǒng)的仿真。SLPS主要是鏈接PSpice至Matlab中的simulink仿真器。對于完整的機電系統(tǒng)的電子仿真,用戶可通過一個原型來實現(xiàn)一個系統(tǒng)設(shè)計。
故障樣本獲取技術(shù)流程圖如圖1所示。
1)在PSpice中建立正常電路
在PSpice內(nèi)部繪制電路圖,設(shè)置參數(shù)選項。并運行一次仿真,產(chǎn)生.cir文件。
2)建立simulink子系統(tǒng),加入SLPS模塊
在Matlab中新建model文檔,打開slpslib,加入 SLPS模塊,鏈接其輸入輸出,運行產(chǎn)生.mdl文件。并產(chǎn)生相應(yīng)的SLPS_*.cir、SLPS_*.net文件。 在 Matlab的 Command Window窗口中輸入open_system('*')即可打開系統(tǒng)查看,并手動修改設(shè)置參數(shù)。simulink中simulation-configuration parameters選項可按電路設(shè)置slover、max step size,仿真時間等參數(shù),確定仿真時間內(nèi)的采樣點數(shù)。數(shù)據(jù)結(jié)果輸出的方式可在simulink下sink中選擇,選擇simout將仿真數(shù)據(jù)輸出到workspace工作區(qū)瀏覽器進行處理[4-5]。
3)建立電路故障表
按照電路元件編號有序列出所有可能存在的故障,建立電路故障表。
4)運行程序自動讀取故障表獲取故障樣本數(shù)據(jù)
編寫.m文件,運行程序自動讀取故障表,調(diào)用子系統(tǒng)生成故障電路樣本數(shù)據(jù)。
圖1 故障樣本獲取技術(shù)流程圖Fig.1 Flow chart of fault samples acquisition technology
上述流程中1)~3)是自動獲取技術(shù)實現(xiàn)前的準(zhǔn)備工作,而4)是自動獲取技術(shù)的關(guān)鍵步驟。具體的程序設(shè)計實現(xiàn)流程如圖2所示
1)讀取故障表并進行故障注入 讀取故障表,按照故障表逐個設(shè)置故障。研究發(fā)現(xiàn).cir文件中又調(diào)用了.net文件,實驗證明,直接修改.net文件內(nèi)容即可修改元器件名稱及參數(shù)形成故障電路。編寫.m文件,用fopen語句打開.net文檔并修改其元件參數(shù),形成故障電路。
2)在Matlab中調(diào)用系統(tǒng)并運行 用load_system命令重新載入修改參數(shù)后的系統(tǒng),sim命令運行系統(tǒng)。
3)輸出故障樣本數(shù)據(jù) 將輸出的故障樣本數(shù)據(jù)存儲在一個矩陣中,每一列為一個故障樣本,行數(shù)由周期內(nèi)采樣點數(shù)和采樣時間決定。矩陣列數(shù)由故障表內(nèi)故障個數(shù)決定,為故障樣本個數(shù)。
4)恢復(fù)正常電路 將故障表中的故障作為變量,調(diào)用子程序,將故障電路參數(shù)修改回正常電路參數(shù)。為下次的故障設(shè)置做好準(zhǔn)備。
文中采用實例驗證上述方法的可行性及樣本數(shù)據(jù)的精準(zhǔn)性。實例采取元件級仿真電路,圖3電路為低通濾波電路。此電路是 International Test Conference(ITC’97)中發(fā)布的一個模擬電路基準(zhǔn)測試電路[6]。
在PSpice中畫好此電路圖,并進行瞬態(tài)仿真。建立testmodel系統(tǒng),加入SLPS模塊,雙擊SLPS模塊,打開SLPS setting,將sine wave代替PSpice中原本的輸入,選擇 simout方式輸出到Matlab中。Testmodel系統(tǒng)如圖4所示。
圖2 程序設(shè)計流程圖Fig.2 Flow chart of program design
圖3 低通濾波電路Fig.3 Low pass filter
圖4 testmodel系統(tǒng)Fig.4 System of testmodel
設(shè)置輸入 VAMPL為 1 V,F(xiàn)REQ為 1 k的信號源,max step size為1 μs,仿真時間設(shè)為2 ms,即仿真兩個周期。系統(tǒng)建立完成后根據(jù)電路圖建立故障表。文中以硬故障為例,每個元件有短路、開路、正常 3 種狀態(tài),現(xiàn)考慮 R1、R2、R3、C44個元件,一共是34=81種狀態(tài),其中80種故障,一種正常狀態(tài)。在PSpice中不得出現(xiàn)節(jié)點懸空,否則無法通過編譯,所以故障建模時開路狀態(tài)選用99 999 kΩ的電阻表示,短路則用0.005 5 μΩ的電阻表示。打開Matlab運行程序,每個狀態(tài)能在workspace中得到2002×1的樣本數(shù)據(jù)矩陣,即單個故障樣本。故障表為81種狀態(tài),則最后得到2002×81的矩陣,即電路樣本數(shù)據(jù)集[7]。
畫圖對比驗證樣本數(shù)據(jù)獲取的準(zhǔn)確性。舉例設(shè)置故障電路:R1開路,R2開路,R3短路,C4正常, 將此故障電路在PSpice中畫出,同樣設(shè)置最大步長為1 μs,仿真時長為2 ms,并進行瞬態(tài)仿真得出圖5。在matlab中運行系統(tǒng),得到的樣本數(shù)據(jù)用plot(tout,testvout)命令畫出波形圖如圖6所示。由對比圖可見,文中采用的方法可以獲得正確的樣本數(shù)據(jù)。且程序運行結(jié)果表明本文采用的方法獲得的數(shù)據(jù)精準(zhǔn)度高,且程序運行一次完成81種故障樣本數(shù)據(jù)的采集。從修改電路到完成仿真,獲取故障樣本僅需不到30 s的時間。
圖5 PSpice中故障電路波形圖Fig.5 Waveform of fault circuit in PSpice
圖6 自動獲取技術(shù)波形圖Fig.6 Waveform of automatic acquisition technology
經(jīng)實例驗證,文中采用的方法操作簡便,收集到的樣本數(shù)據(jù)精準(zhǔn),自動化程度高。此方法大大提高了模擬電路故障樣本獲取的速度,為建立故障字典及模擬電路故障診斷提供了極大的方便。
[1]吳昊,寧元中,梁穎.Matlab與Pspice的數(shù)據(jù)接口技術(shù)[J].電氣電子教學(xué)學(xué)報,2005,27(1):35-38.
WU Hao,NING Yuan-zhong,LIANG Ying.The data transfer from Pspice to Matlab[J].Journal of IEEE,2005,27(1):35-38.
[2]滿高華,胡桂明,金浙良,等.MATLAB結(jié)合PSPICE用于模擬電路故障診斷的方法[J].裝備制造技術(shù),2009(4):88-90.
MAN Gao-hua, HU Gui-ming, JIN Zhe-liang, etal.Integrating MATLAB with PSPICE for the simulation of analog circuit fault diagnosis[J].Equipment Manufacturing Technology,2009(4):88-90.
[3]楊博文,劉飛.PSpice與Matlab的數(shù)據(jù)通訊技術(shù)[J].四川兵工學(xué)報,2010,31(11):79-80.
YANG Bo-wen,LIU Fei. Statistics communications technology based on PSpice and Matlab[J].Journal of sichuan Ordnance, 2010,31(11):79-80.
[4]Moslehpour S,Kulcu E K,Alnajjar H.Model-based control design using SLPS Simulink PSpice Interface[J].Journal of Communication and Computer,2010,7(5):68-77.
[5]王永龍,張兆忠,張桂紅.MATLAB語言基礎(chǔ)與應(yīng)用[M].北京:電子工業(yè)出版社,2010.
[6]Kaminska B, Arabi K, Bell I,et al.Analog and mixed-signal benchmarkcircuits-firstrelease[C]//ProceedingsofInternational Test Conference,1997:183-190.
[7]戚新波,劉宏飛,鄭先鋒.電路的計算機輔助分析-MATLAB與PSpice應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,2006.