基于hmm的模擬集成電路早期軟故障診斷方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及模擬集成電路早期軟故障診斷技術(shù)領(lǐng)域,特別涉及一種基于 HMM(Hidden Markov Mode,隱馬爾科夫模型)的模擬集成電路早期軟故障診斷方法及系統(tǒng)。
【背景技術(shù)】
[0002] 基于模式分類的模擬電路軟故障(電路元件的參數(shù)的變化量超出其容差范圍) 診斷方法常常,假定發(fā)生軟故障的元件的參數(shù)變化量為一固定值(典型值為元件標稱值的 ±50% )。當(dāng)故障元件變化其標稱值正好在±50%左右時,此類診斷方法通常具有良好的 診斷精度。但是,實際診斷中,故障元件的參數(shù)變化值常常是未知的,變化值正好為±50% 的概率非常小,限制了以上診斷方法的使用范圍。同時,對于一些高精度的模擬電路,如濾 波器電路(Filtered Analog Circuits,F(xiàn)AC),當(dāng)電路的某些關(guān)鍵元件的參數(shù)值變化達到其 名義參數(shù)的20%時(電路處于早期軟故障狀態(tài)),電路很可能就已經(jīng)無法正常工作了。
[0003] 模擬電路工作現(xiàn)場環(huán)境應(yīng)力和電氣應(yīng)力在一定時期內(nèi)相對穩(wěn)定,模擬電路故障元 件參數(shù)的變化過程也相對穩(wěn)定,同時,非故障元件參數(shù)在其容差范圍內(nèi)的隨機變化,使得 ⑶T(Circuit Under Test,待測電路)的元件參數(shù)變化在一定時期內(nèi)表現(xiàn)為動態(tài)的不可直 接測量的隨機過程,同時,元件參數(shù)的變化帶來CUT節(jié)點電壓等信息的同步變化,節(jié)點電壓 信息表現(xiàn)為可直接測量得到的隨機過程,包含了 CUT的元件參數(shù)信息。隱馬爾科夫模型是 一種雙重的隨機過程,其中一個隨機過程是不能直接觀測的隱藏隨機過程(通常稱為狀態(tài) 過程),而另一個隨機過程是可觀測可測量的隨機過程(通常稱為觀測過程),可用來描述 CUT故障的動態(tài)變化過程。借鑒隱馬爾科夫模型在語音識別領(lǐng)域和機械設(shè)備狀態(tài)監(jiān)測領(lǐng) 域的成功應(yīng)用,文獻1 (鄧勇.非線性模擬電路故障診斷的Volterra模型及特征提取研究 [D].成都:電子科技大學(xué),2012)采用隱馬爾科夫模型對模擬電路的軟故障狀態(tài)進行動態(tài) 建模,從一定程度上實現(xiàn)對模擬電路早期單軟故障的診斷。本發(fā)明針對文獻1中診斷方法 的不足,提出一種模擬電路早期單軟故障的改進隱馬爾科夫診斷模型,從而實現(xiàn)了模擬電 路早期單軟故障的盡早診斷。
【發(fā)明內(nèi)容】
[0004] 【要解決的技術(shù)問題】
[0005] 本發(fā)明的目的是提供一種基于HMM的模擬集成電路早期軟故障診斷方法及系統(tǒng), 以解決現(xiàn)有技術(shù)中的診斷模型診斷精度不高的問題。
[0006] 【技術(shù)方案】
[0007] 本發(fā)明是通過以下技術(shù)方案實現(xiàn)的。
[0008] 本發(fā)明首先涉及一種基于HMM的模擬集成電路早期軟故障診斷方法,包括步驟:
[0009] A、將待測電路的故障元件參數(shù)的變化范圍劃分為多個連續(xù)的變化范圍,在相同的 激勵信號下,對故障元件參數(shù)的每個變化范圍進行電路仿真,選擇不同的故障模式完成待 測電路的電路仿真,得到各個故障模式下的待測電路的輸出信號;
[0010] B、初始化隱馬爾科夫模型的隱藏狀態(tài)集S、狀態(tài)初始概率JT、狀態(tài)轉(zhuǎn)移矩陣A,所 述隱藏狀態(tài)集S中的各個元素與故障元件參數(shù)的各個連續(xù)的變化范圍一一對應(yīng);
[0011] C、根據(jù)隱藏狀態(tài)集S的仿真輸出信號生成觀測序列0 ;
[0012] D、訓(xùn)練隱馬爾科夫模型得到與待測電路故障模式對應(yīng)的隱馬爾科夫估計模型,計 算各個隱馬爾科夫估計模型在觀測序列〇下的后驗概率,選擇后驗概率最大的隱馬爾科夫 估計模型;T;
[0013] E、對觀測序列0進行解碼,得到,對應(yīng)的故障模式下的最優(yōu)狀態(tài)序列X,從最優(yōu) 狀態(tài)序列X提取診斷結(jié)果。
[0014] 作為一種優(yōu)選的實施方式,所述步驟A具體將待測電路的故障元件參數(shù)的變 化范圍[σ b 6 σ d劃分為五個連續(xù)的變化范圍:[σ 6 σ J、[2 σ 3 σ d、[3 σ 4 0 d、 [4 σ ;,5 σ J、[5 σ i, 6 σ J,其中σ ;為故障元件的容差。
[0015] 作為另一種優(yōu)選的實施方式,所述觀測序列的生成方法為:從隱藏狀態(tài)集S的 狀態(tài)Sj的仿真輸出信號中隨機取出R/i個向量,組成子觀測序列O i,其中i < 5, j = 1,2,…,i,組合各個狀態(tài)下的子觀測序列得到觀測序列0 = {01,02,…,01},其中R為觀測 序列的長度。
[0016] 作為另一種優(yōu)選的實施方式,所述步驟A具體采用蒙特卡洛方法對故障元件參數(shù) 的每個變化范圍進行電路仿真。
[0017] 作為另一種優(yōu)選的實施方式,所述隱馬爾科夫模型為連續(xù)高斯密度混合隱馬爾科 夫模型。
[0018] 作為另一種優(yōu)選的實施方式,所述步驟D采用Forward算法計算各個隱馬爾科夫 估計模型在觀測序列〇下的后驗概率。
[0019] 作為另一種優(yōu)選的實施方式,所述步驟E采用Viterbi算法對觀測序列0進行解 碼。
[0020] 本發(fā)明還涉及一種基于HMM的模擬集成電路早期軟故障診斷系統(tǒng),該系統(tǒng)包括:
[0021] 待測電路仿真模塊,其被配置成:將待測電路的故障元件參數(shù)的變化范圍劃分為 多個連續(xù)的變化范圍,在相同的激勵信號下,對故障元件參數(shù)的每個變化范圍進行電路仿 真,選擇不同的故障模式完成待測電路的電路仿真,得到各個故障模式下的待測電路的輸 出信號;
[0022] 隱馬爾科夫模型初始化模塊,其被配置成:初始化隱馬爾科夫模型的隱藏狀態(tài)集 S、狀態(tài)初始概率π、狀態(tài)轉(zhuǎn)移矩陣A,所述隱藏狀態(tài)集S中的各個元素與故障元件參數(shù)的各 個連續(xù)的變化范圍一一對應(yīng);
[0023] 觀測序列生成模塊,其被配置成:根據(jù)隱藏狀態(tài)集S的仿真輸出信號生成觀測序 列〇 ;
[0024] 隱馬爾科夫估計模型訓(xùn)練模塊,其被配置成:訓(xùn)練隱馬爾科夫模型得到與待測電 路故障模式對應(yīng)的隱馬爾科夫估計模型,計算各個隱馬爾科夫估計模型在觀測序列〇下的 后驗概率,選擇后驗概率最大的隱馬爾科夫估計模型立%
[0025] 診斷結(jié)果生成模塊,其被配置成:對觀測序列0進行解碼,得到f對應(yīng)的故障模式 下的最優(yōu)狀態(tài)序列X,從最優(yōu)狀態(tài)序列X提取診斷結(jié)果。
[0026] 下面對本發(fā)明進行詳細說明。
[0027] 隱馬爾科夫模型的典型結(jié)構(gòu)如圖1所示。
[0028] 如圖1所示,典型的HMM包括2個狀態(tài)集和3個概率集。
[0029] 1)狀態(tài)集S = {Sl,s2,…,sN}(圖1中的part 2),N為隱藏的狀態(tài)數(shù);
[0030] 2)觀測集V = {Vl,V2,…,vM},M為各隱藏狀態(tài)下不同的觀測值的數(shù)量;
[0031] 3)觀測序列0 = Io1, 〇2,…,οτ}(圖1中的part I),ote V為t時刻的觀測值, T為觀測序列長度。通常情況下,對于一個給定的觀測序列0,必有一個最優(yōu)狀態(tài)序列X = Ix1, X2,…,χτ}(圖1中的part 3)與之對應(yīng),xte S是t時刻的最優(yōu)狀態(tài),T為狀態(tài)序列長 度;
[0032] 4)隱藏狀態(tài)轉(zhuǎn)移概率矩陣A = {aj Aij= P(x t+1= s |xt= s J表示由狀態(tài)SiK 移到狀態(tài)Sj的轉(zhuǎn)移概率,其中i,j e [1,N];
[0033] 5)觀測值轉(zhuǎn)移概率矩陣B = {bjk},bjk= P(o t= v k|xt= s J表示在狀態(tài)Sj觀測 到vk的概率,其中j e [1,N],k e [1,Μ],t e [1,T]。對于連續(xù)的觀測序列,可用概率密 度函數(shù)來描述觀測概率。
[0034] 6)初始狀態(tài)概率 π = { π J,π ; = P(x := s J,i e [1,Ν]。
[0035] 當(dāng)一個實際問題的隱馬爾科夫模型參數(shù)Ν,Μ,π,A,B確定以后,該問題即可表示 為 λ = {Ν,Μ,π,Α,Β},或簡寫為λ = {>,A,B}。采用隱馬爾科夫模型可以完成以下3類 問題的求解。
[0036] 1)學(xué)習(xí)問題:對于給定的觀測序列0 = {〇1,〇2,…,〇τ},可求解隱馬爾科夫模型的 參數(shù),即可估計已知觀測序列對應(yīng)的參數(shù)
,使得;
Μ最大。此類問題可 由Baum-Welch算法通過式(1)迭代求解。
[0037]
[0038] 其中ξ t(i,j)為給定模型λ和觀測序列〇條件下從i到j(luò)的轉(zhuǎn)移概率,可由式 (2)計算得到。
[0039]
式(2)
[0040] 其中Yt⑴為t時刻處于狀態(tài)S1的概率,可由式(3)計算得到。
[0041]
式(3)
[0042]
為整個過程中從狀態(tài)S1轉(zhuǎn)出的次數(shù)的預(yù)期,
為從S1轉(zhuǎn)到s j 的次數(shù)的預(yù)期。式(2)中的參數(shù)α和β為算法的前向變量和后向變量,可由式(4)計算 得到。
[0043]
[0044] 通過式(1)的迭代學(xué)習(xí)過程,可得到一系列的隱馬爾科夫模型的估計(稱為隱馬 爾科夫估計模型)4,Λ,…。
[0045] 2)評估問題:對于以上學(xué)習(xí)得到的一系列隱馬爾科夫估計模型計算各 估計模型在某一觀測序列〇 = {〇1,O2,…,〇τ}下的后驗概率,并選出后驗概率最大的隱馬爾 科夫估計模型。此類問題可由forward算法由以下步驟求解:
[0046] St印1)通過式(5)初始化前向變量α ;
[0047] O1(I) = Ji^1(O1) I ^ t ^ T 式(5)
[0048] Step 2)通過式(6)迭代求解前向變量α ;
[0049]
[0050] St印3)迭代結(jié)束后,通過式(7)計算得到觀測序列0在模型.i/下的后驗概率。
[0051]
[0052] 3)解碼問題:對于給定的隱馬爾科夫模型,可求解某一觀測序列0 = {〇1,〇2,… ,〇τ}對應(yīng)的最優(yōu)狀態(tài)序列X = U1, X2,…,χτ}。此類問題可由Viterbi算法由以下步驟求 解:
[0053] St印1)通過式(8)初始化已經(jīng)訓(xùn)練好的隱馬爾科夫模型進行;
[0054]
[0055] Step 2)通過式(9)進行迭代求解; CN 105137328 A 兄明書 5/13 頁
[0056]