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