• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于憶阻器神經(jīng)網(wǎng)絡(luò)的輻射效應(yīng)診斷系統(tǒng)設(shè)計

      2021-06-10 07:29:52王新勝李宗霖王夕悅
      關(guān)鍵詞:阻器故障診斷運算

      王新勝,李宗霖,王夕悅

      (哈爾濱工業(yè)大學(xué)(威海),山東 威海 264209)

      航天事業(yè)是我國群策群力發(fā)展的重要事業(yè),航天事業(yè)的穩(wěn)步向前離不開航天器的可靠性,電子元器件是航天技術(shù)快速提升的關(guān)鍵[1]。航天器正常工作時一般位于太空中,太空中存在大量高能粒子,如果集成電路暴露在太空環(huán)境中,那么集成電路將迅速出錯甚至失效,有許多航天器受到空間環(huán)境影響而出現(xiàn)故障,其中45%左右的故障是由各類輻射失效所導(dǎo)致的[2]。隨著集成電路工藝技術(shù)的發(fā)展,納米級的MOSFET會產(chǎn)生一些新的輻射效應(yīng)[3]。實時判斷集成電路所處的工作狀態(tài),診斷集成電路的輻射失效狀態(tài),及時采取處理措施可以很大程度地降低航天器出現(xiàn)故障的概率。

      憶阻器是具有一定“記憶”特性的4種電學(xué)基本元件之一,目前主要的應(yīng)用方向有數(shù)據(jù)存儲、邏輯運算、神經(jīng)網(wǎng)絡(luò)運算等[4],且憶阻器可以與CMOS電路集成。憶阻器電路在數(shù)值運算方面比CMOS電路更具優(yōu)勢,在實現(xiàn)2×2乘法器時,使用純CMOS搭建需要62個器件,而使用憶阻器與MOSFET混合搭建時僅需要36個器件就可以實現(xiàn)相同功能[5],憶阻器也可以實現(xiàn)模擬信號的乘法。使用憶阻器交叉陣列[6]搭建CNN的硬件電路是一種完美選擇,通過憶阻器搭建的智能集成電路輻射效應(yīng)診斷系統(tǒng),可以將診斷電路與待診斷電路集成,可以有效掌控電路的狀態(tài),保障系統(tǒng)的可靠性。

      1 SRAM的輻射故障的模型

      1.1 SRAM單粒子效應(yīng)模型

      對于SRAM單粒子效應(yīng)的模型最早使用的是矩形注入脈沖模型,其波形形狀與真實高能粒子入射器件所產(chǎn)生的波形相差較大。

      雙指數(shù)注入脈沖模型是優(yōu)于矩形模型的一種單粒子效應(yīng)模型,該模型的公式為:

      式中包含雙指數(shù)函數(shù),通過模型對參數(shù)a1、a2、p1、p2進(jìn)行參數(shù)提取,將提取的值代入就可以獲得一個相對貼合的單粒子效應(yīng)模型。

      目前,最適合最常用的單粒子效應(yīng)模型是瞬態(tài)注入脈沖模型,其模型中的參數(shù)不僅擁有實際物理意義,且其仿真波形與實際情況十分接近,瞬態(tài)注入脈沖模型的表達(dá)式為:

      式中:I為瞬態(tài)注入脈沖模型的電流;Q0為高能粒子向器件中注入的電荷量;τ為與電荷重組相關(guān)的時間常數(shù);t為當(dāng)前時間。

      瞬態(tài)注入脈沖模型中的參數(shù)Q0主要影響瞬態(tài)電流源的電流幅值,而時間參數(shù)τ主要影響的是瞬態(tài)電流的寬度,也就是電荷被吸收掉的時間。該模型重復(fù)考慮了不同能量的高能粒子入射時電流波形的不同,與入射高能粒子的LET值具有相關(guān)性,十分貼合器件受到高能粒子輻射時的電流波形。

      通過建立好的NMOS模型,研究了器件受到單粒子輻射時的漏極電流,圖1為器件在受到不同能量高能粒子入射時漏極電流的波形圖,由圖1可知,隨著高能粒子的LET的增加,器件中注入的電荷量隨之升高,電荷被吸收掉的時間也會隨之增加。

      圖1 不同LET的高能粒子輻射下的器件漏極電流變化

      通過Python編寫腳本,對TCAD中仿真的單粒子效應(yīng)數(shù)據(jù)中的Q0和τ進(jìn)行提取,程序的主要功能是:按文件順序讀取所有仿真得到的csv格式的文件,通過文件名來判斷LET的數(shù)值,之后通過對csv中數(shù)值的讀取及處理之后計算出2個重要參數(shù)。對單粒子效應(yīng)數(shù)據(jù),本文在不同條件下采集了多組數(shù)據(jù),其中數(shù)據(jù)的變量包括:高能粒子入射位置和角度、高能粒子的LET、高能粒子的入射距離、高能粒子的半徑。

      之后,在仿真軟件Virtuoso中,通過Verilog-A語言編寫了單粒子效應(yīng)的模型,該模型是一種單端口的電流源,并可以與其他電路直接仿真,該模型的仿真結(jié)果如圖2所示。

      圖2 Virtuoso中單粒子效應(yīng)瞬態(tài)電流源仿真結(jié)果

      1.2 總劑量效應(yīng)的仿真模型

      對于SRAM總劑量效應(yīng)的仿真,根據(jù)NMOS總劑量輻射效應(yīng)機理,主要針對NMOS閾值電壓的改變和MOS漏極電流的變化,仿真時對器件受到總劑量效應(yīng)時的情況進(jìn)行模擬。對于輻射劑量對NMOS閾值電壓的關(guān)系,描述為:

      式中:ΔVit為NMOS閾值電壓的變化量(V);D為器件受到的輻射總劑量(krad)。

      圖3為器件受到0~150 krad輻射時NMOS閾值電壓的變化與輻射劑量的關(guān)系曲線,在器件受到的輻射總劑量較低時,器件的閾值電壓漂移量與輻射劑量基本是線性關(guān)系。

      通過對漏極電流和電場強度的仿真提取就可以間接計算出器件中的載流子數(shù)目,進(jìn)而求得器件1/f噪聲的噪聲幅值。器件中的總載流子數(shù)計算公式為:

      式中:W為器件結(jié)構(gòu)的寬;Ex為器件溝道內(nèi)的電場強度。

      圖3 總劑量效應(yīng)的NMOS閾值電壓漂移與輻射劑量的關(guān)系

      1/f噪聲的得名是由于其噪聲功率與頻率成反比,即在低頻時噪聲功率比較大,用于描述器件1/f噪聲的頻率與噪聲功率關(guān)系的參數(shù)稱為1/f噪聲的頻率指數(shù),一般來說,NMOS的1/f噪聲的頻率指數(shù)一般為1.0~2.0。另外,對于器件內(nèi)部1/f噪聲產(chǎn)生的機理來說,描述噪聲產(chǎn)生時間的公式為:

      式中,z為陷阱的相對距離。

      總劑量下器件漏極電流變化值的表達(dá)式如式(6)所示,通過器件模型提取出不同輻射劑量下的ΔNt,就可以計算出器件的漏極電流。

      NMOS電路級閾值電壓漂移的仿真模型如圖4所示,通過在NMOS柵極外加電壓源的方法來仿真NMOS的閾值電壓漂移。

      圖4 NMOS閾值電壓的漂移模型

      根據(jù)總劑量輻射的相關(guān)原理,在Virtuoso中使用Verilog-A對器件總劑量輻射時的電流1/f噪聲模型進(jìn)行編寫,該模型具有2個端口,使用時類似電阻連接在NMOS的源極或漏極。

      2 輻射故障診斷神經(jīng)網(wǎng)絡(luò)的設(shè)計與訓(xùn)練

      2.1 輻射故障診斷神經(jīng)網(wǎng)絡(luò)

      應(yīng)用神經(jīng)網(wǎng)絡(luò)進(jìn)行故障診斷的目的是將神經(jīng)網(wǎng)絡(luò)分類的思路應(yīng)用于電路故障診斷領(lǐng)域,即對電路不同工作狀態(tài)下的電源電流數(shù)據(jù)進(jìn)行識別。卷積神經(jīng)網(wǎng)絡(luò)不僅在圖像分類識別取得成功,并且在各種類型的故障診斷領(lǐng)域也有廣泛的應(yīng)用。但是用于集成電路電學(xué)數(shù)據(jù)這種一維連續(xù)的數(shù)據(jù)時,需要對神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)進(jìn)行仔細(xì)設(shè)計。卷積神經(jīng)網(wǎng)絡(luò)中的卷積操作可以看作是部分點積的過程,一般來說卷積都是由卷積核與輸入的矩陣或向量的其中一部分進(jìn)行點積運算。

      1)一維卷積運算。一維卷積運算和向量的點積運算比較相似,可以說一維卷積是向量的局部點積運算,對于沒有張量填充的卷積運算時,用于計算輸出張量大小與輸入張量關(guān)系的表達(dá)式為:

      式中:N為輸出張量的大??;M為輸入張量的大?。籏為一維卷積核的大小。

      一維卷積的數(shù)學(xué)形式化的公式為:

      2)最大池化。最大池化是在指定的數(shù)據(jù)區(qū)域內(nèi),取該區(qū)域內(nèi)的最大值進(jìn)行保留,這個數(shù)據(jù)區(qū)域是由最大池化的大小決定。最大池化同樣也分一維最大池化和二維最大池化。圖5為最大池化運算的示意圖。其中,圖5(a)是一維最大池化的運算過程,圖5(b)是二維最大池化的運算過程,經(jīng)過最大池化運算之后的特征大小變化與經(jīng)過平均池化運算的特征大小變化相同。

      全連接層一般位于卷積神經(jīng)網(wǎng)絡(luò)的最終輸出之前,主要作用是對經(jīng)過卷積池化等運算得到的特征進(jìn)行展開分類,把分布式特征映射到樣本標(biāo)記空間,同樣也是卷積神經(jīng)網(wǎng)絡(luò)的重要組成部分。一般來說全連接層的輸入一般是多組特征展開的一維特征向量,經(jīng)過一次或多次全連接運算,最終輸出指定分類數(shù)的張量,輸出一般經(jīng)過Softmax分類器進(jìn)行分類。

      圖5 最大池化運算的示意圖

      圖6 為全連接運算的示意圖,神經(jīng)網(wǎng)絡(luò)前半部分運算的結(jié)果展開之后是一個寬度為20的特征,卷積神經(jīng)網(wǎng)絡(luò)是將數(shù)據(jù)分類成5類。其中,圖6(a)僅有1層全連接層直接輸出5分類的結(jié)果,圖6(b)增加了一層全連接層,經(jīng)過2層全連接層之后同樣輸出5分類的結(jié)果。

      圖6 全連接運算的示意圖

      本文設(shè)計的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示,卷積神經(jīng)網(wǎng)絡(luò)的輸入為14個連續(xù)的數(shù)據(jù),經(jīng)過6個通道3×1大小的卷積核進(jìn)行一維卷積后的數(shù)據(jù)為6個通道12×1共72個數(shù)據(jù),之后會經(jīng)過2×1最大一維池化層對一維卷積層的輸出數(shù)據(jù)進(jìn)行下采樣,第一層一維最大池化層的輸出數(shù)據(jù)為6通道6×1共36個數(shù)據(jù),下一層是3×1共12個通道的第二層一維卷積層,其運輸結(jié)果是12通道4×1的數(shù)據(jù)共48個,之后會經(jīng)過第二層2×1最大池化層的運算輸出數(shù)據(jù)為12通道2×1共24個數(shù)據(jù),在特征提取之后,對數(shù)據(jù)展開成一維數(shù)據(jù),通過全連接層進(jìn)行分類,這里由于數(shù)據(jù)分類的種類較少,因此全連接只用了一層運算后直接輸出3×1的張量。

      由于一般的卷積神經(jīng)網(wǎng)絡(luò)激活函數(shù)為ReLU激活函數(shù),但由于ReLU激活函數(shù)的正數(shù)部分沒有上限,如果通過憶阻器硬件電路實現(xiàn),憶阻器卷積神經(jīng)網(wǎng)絡(luò)計算出的電流或電壓值也沒有上限,這不符合憶阻器電路對電壓的要求。為下一步神經(jīng)網(wǎng)絡(luò)的硬件實現(xiàn)做準(zhǔn)備,該輻射故障診斷的一維神經(jīng)網(wǎng)絡(luò)用到的激活函數(shù)是Sigmoid激活函數(shù),Sigmoid激活函數(shù)可以將輸出值限定在(0,1)的范圍內(nèi),該范圍內(nèi)的電壓值是滿足神經(jīng)網(wǎng)絡(luò)硬件電路的運算范圍的。

      圖7 輻射故障診斷的一維神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖

      數(shù)據(jù)在輸入神經(jīng)網(wǎng)絡(luò)之前經(jīng)過數(shù)據(jù)的預(yù)處理,數(shù)據(jù)預(yù)處理實現(xiàn)的功能是將輸出的原始數(shù)據(jù)等比例放縮到區(qū)間(-1,1),數(shù)據(jù)預(yù)處理標(biāo)準(zhǔn)化的公式為:

      式中:Ds為經(jīng)過預(yù)處理標(biāo)準(zhǔn)化后的數(shù)據(jù);Di為原始未經(jīng)處理的數(shù)據(jù);Darg為輸入數(shù)據(jù)的算術(shù)平均值;Dmax為輸入數(shù)據(jù)中的最大值;Dmin為輸入數(shù)據(jù)中的最小值。

      由于故障診斷神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)相對較小,在進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練時可能出現(xiàn)訓(xùn)練速度慢的情況。使用數(shù)據(jù)預(yù)處理對輸入數(shù)據(jù)標(biāo)準(zhǔn)化,一方面對數(shù)據(jù)按照一定比例進(jìn)行放大,另一方面加快神經(jīng)網(wǎng)絡(luò)訓(xùn)練時的收斂速度。不同數(shù)據(jù)放大比例對數(shù)據(jù)處理存在一定影響,合理的數(shù)據(jù)處理可以提升神經(jīng)網(wǎng)絡(luò)訓(xùn)練效率,與數(shù)據(jù)直接放大相比,可以放大相對差距,在限定數(shù)據(jù)范圍的同時使數(shù)據(jù)差異化。

      并不是所有神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)都具有學(xué)習(xí)能力,本文對搭建神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)能力的驗證,用于驗證的相關(guān)輸入數(shù)據(jù)集如表1所示。為了使數(shù)據(jù)能夠輸入到卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,需要調(diào)整數(shù)據(jù)大小,與神經(jīng)網(wǎng)絡(luò)輸入同樣的數(shù)據(jù)大小,因此數(shù)據(jù)寬度同樣也為14。

      表1 于驗證輻射故障診斷神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)能力的數(shù)據(jù)表

      表1中,x是區(qū)間[0,19]中所有整數(shù),r是區(qū)間(-1,1)中的隨機數(shù)。將運算得到的結(jié)果轉(zhuǎn)換為張量輸入到輻射故障診斷神經(jīng)網(wǎng)絡(luò),進(jìn)行學(xué)習(xí)能力的驗證。將神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)率設(shè)置為0.05,動量設(shè)置為0.9,迭代次數(shù)設(shè)置為17 k,將數(shù)據(jù)依次輸入神經(jīng)網(wǎng)絡(luò),最后驗證了該卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,圖8為驗證神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)能力時訓(xùn)練迭代次數(shù)與訓(xùn)練損失的關(guān)系圖。由圖8可以看出,在訓(xùn)練次9k左右的時候,該卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練損失已經(jīng)收斂,且訓(xùn)練的損失低于0.005,證明了神經(jīng)網(wǎng)絡(luò)具有學(xué)習(xí)能力,且對3種數(shù)據(jù)類型的分類效果比較好。

      圖8 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)能力時迭代次數(shù)與訓(xùn)練損失

      2.2 輻射故障診斷神經(jīng)網(wǎng)絡(luò)的訓(xùn)練

      在對輻射故障診斷神經(jīng)網(wǎng)絡(luò)訓(xùn)練之前,本文通過對輻射故障診斷神經(jīng)網(wǎng)絡(luò)的權(quán)值初始化,以加快輻射故障診斷神經(jīng)網(wǎng)絡(luò)參數(shù)的收斂速度。圖9為神經(jīng)網(wǎng)絡(luò)的權(quán)重偏置初始化策略,采用Xavier[8]正態(tài)分布進(jìn)行初始化,一維卷積層和全連接層的偏置全部初始化為0.0。

      圖9 神經(jīng)網(wǎng)絡(luò)的權(quán)重偏置初始化策略

      由于本文采集的仿真數(shù)據(jù)是csv格式,通過Python編寫數(shù)據(jù)處理腳本,將所有csv文件自動加入標(biāo)簽(label)號后寫入訓(xùn)練集和測試集2個txt文件中。神經(jīng)網(wǎng)絡(luò)的輸出為3類,具體分類如表2所示。

      表2 輻射故障診斷神經(jīng)網(wǎng)絡(luò)的輸出類別

      通過Pytorch編寫神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)及其訓(xùn)練程序,神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)程序包括網(wǎng)絡(luò)結(jié)構(gòu)的描述和初始化策略的實現(xiàn)。由于數(shù)據(jù)并非卷積神經(jīng)網(wǎng)絡(luò)的常用圖片數(shù)據(jù),訓(xùn)練時并未采用數(shù)據(jù)加載器(loader),而是通過程序代碼將數(shù)據(jù)轉(zhuǎn)換為張量(Tensor)格式。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練程序為:首先對訓(xùn)練集的txt文件進(jìn)行讀取,通過式(8)對數(shù)據(jù)預(yù)處理,之后通過設(shè)定訓(xùn)練的迭代次數(shù)(iteration)對單組數(shù)據(jù)輸入網(wǎng)絡(luò)的訓(xùn)練次數(shù),輻射故障診斷神經(jīng)網(wǎng)絡(luò)訓(xùn)練時使用的是隨機梯度下降(stochastic gradient descent,SGD)方法。只有當(dāng)學(xué)習(xí)率處于合適范圍時,訓(xùn)練誤差才會既快速又穩(wěn)定的下降。對于神經(jīng)網(wǎng)絡(luò)訓(xùn)練時的學(xué)習(xí)率來說,目前較佳的方法是先采用一個相對較高的學(xué)習(xí)率,使訓(xùn)練誤差迅速下降,之后逐漸減小神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)率,使訓(xùn)練誤差相對穩(wěn)定的下降至一個趨于穩(wěn)定的值,本文中輻射故障診斷神經(jīng)網(wǎng)絡(luò)訓(xùn)練時的學(xué)習(xí)率在0.000 1~0.001,在選擇學(xué)習(xí)率時進(jìn)行了多次試驗,著重于訓(xùn)練損失與迭代次數(shù)之間的關(guān)系。學(xué)習(xí)率對神經(jīng)網(wǎng)絡(luò)訓(xùn)練的影響如圖10所示。

      圖10 學(xué)習(xí)率對神經(jīng)網(wǎng)絡(luò)訓(xùn)練的影響

      通過SGD方法訓(xùn)練時,神經(jīng)網(wǎng)絡(luò)動量主要影響參數(shù)修正梯度的下降速度,圖11為SGD中動量的作用示意圖,從圖11中可以看出,在使用動量相關(guān)算法后,神經(jīng)網(wǎng)絡(luò)的梯度下降時波動范圍上升了,且波動方向不是向著最終的中心方向,但如果動量的比例值設(shè)置在合適范圍,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練將事半功倍,會加快收斂速度、減少訓(xùn)練時間,本文中輻射故障診斷神經(jīng)網(wǎng)絡(luò)訓(xùn)練時動量設(shè)置為0.8。訓(xùn)練完成后,保存訓(xùn)練后的網(wǎng)絡(luò)結(jié)構(gòu)及網(wǎng)絡(luò)參數(shù)。

      圖11 動量對神經(jīng)網(wǎng)絡(luò)梯度下降的影響

      2.3 輻射故障診斷神經(jīng)網(wǎng)絡(luò)的訓(xùn)練結(jié)果

      基于2.2小節(jié)研究的訓(xùn)練方法及關(guān)鍵參數(shù),對輻射故障診斷神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,由于卷積運算需要進(jìn)行多次的乘法和加法,理論上可以通過CPU和GPU進(jìn)行訓(xùn)練,CPU注重于單任務(wù)快速處理,而GPU重點關(guān)注于多任務(wù)并行處理,圖12為CPU和GPU架構(gòu)的對比。從CPU和GPU架構(gòu)上的區(qū)別可以看出,對于卷積神經(jīng)網(wǎng)絡(luò)的卷積運算,使用GPU的運算速度會優(yōu)于CPU的運算速度。因此,對輻射故障診斷神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,本文使用的是基于英偉達(dá)統(tǒng)一計算設(shè)備架構(gòu)(compute unified device Architecture,CUDA)的GPU。訓(xùn)練時使用的具體軟硬件配置如表3所示,訓(xùn)練過程中的關(guān)鍵參數(shù)設(shè)置如表4所示。

      圖12 CPU和GPU架構(gòu)的對比圖

      表3 訓(xùn)練輻射故障診斷神經(jīng)網(wǎng)絡(luò)的軟硬件配置

      表4 訓(xùn)練的關(guān)鍵參數(shù)設(shè)置

      訓(xùn)練過程中的損失函數(shù)變化如圖13所示,輻射故障診斷神經(jīng)網(wǎng)絡(luò)在訓(xùn)練數(shù)據(jù)量到達(dá)1 000 k時已經(jīng)接近于收斂,經(jīng)測試集對訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)進(jìn)行測試,測試準(zhǔn)確度達(dá)到99%。

      圖13 訓(xùn)練過程中訓(xùn)練損失函數(shù)變化圖

      對測試集數(shù)據(jù)進(jìn)行測試,由于輻射故障診斷神經(jīng)網(wǎng)絡(luò)是三分類輸出的,輸出的3個張量值作為3個坐標(biāo)軸,繪制輸出散點分類圖,如圖14所示。

      至此,基于軟件平臺對輻射故障診斷神經(jīng)網(wǎng)絡(luò)的訓(xùn)練工作已經(jīng)基本完成,訓(xùn)練后的網(wǎng)絡(luò)已經(jīng)成功對,3種不同工作狀態(tài)采集的電源電流數(shù)據(jù)進(jìn)行分類識別,且識別的準(zhǔn)確度較高。

      圖14 輻射故障診斷神經(jīng)網(wǎng)絡(luò)測試分類散點圖

      3 輻射故障診斷神經(jīng)網(wǎng)絡(luò)的硬件模型基礎(chǔ)

      完成對輻射故障診斷神經(jīng)網(wǎng)絡(luò)的訓(xùn)練之后,通過憶阻器搭建神經(jīng)網(wǎng)絡(luò)的硬件電路,1971年,Leon Chua發(fā)現(xiàn)了缺少描述電荷量與磁通之間關(guān)系的電路元件,對其進(jìn)行論證并命名為憶阻器[9],圖15為電路參量之間的關(guān)系。2008年,惠普實驗室的Stan Williams的團(tuán)隊通過實例證明了納米級電路系統(tǒng)中產(chǎn)生了憶阻現(xiàn)象[10],第一次獲得了現(xiàn)實中的憶阻器模型。

      圖15 憶阻器與常見電學(xué)量之間的關(guān)系

      惠普實驗室提出的憶阻器模型如圖16所示,憶阻器主要由2片鉑片以及2層二氧化鈦薄膜構(gòu)成。其中一層二氧化鈦薄膜摻入了氧空位,其厚度為w;另一層未摻入氧空位厚度為D-w。摻入氧空位的二氧化鈦薄膜具有良好的導(dǎo)電性,而未摻入氧空位的薄膜導(dǎo)電性較差。在憶阻器2個電極外加電壓時,2種二氧化鈦的薄膜邊界會移動。正向電壓時,邊界將朝向未摻雜層進(jìn)行移動,使憶阻器的電阻降低;負(fù)向電壓時,邊界將朝向摻雜層進(jìn)行移動使憶阻器的電阻升高,即憶阻器的電阻會隨著電壓的變化而變化。

      圖16 憶阻器的模型示意圖

      當(dāng)二氧化鈦邊界移動到2個金屬鉑片時,出現(xiàn)2個極限情況,即w=0和w=D,這2種狀態(tài)下憶阻器的電阻值定義為關(guān)斷電阻Roff和導(dǎo)通電阻Ron。研究人員定義憶阻器的電阻為摻雜層的電阻和非摻雜層電阻的和,任意時刻憶阻器的電阻計算公式為:

      式中:Rm為憶阻器的電阻值;Ron為憶阻器完全導(dǎo)通時的電阻值;Roff為憶阻器完全關(guān)斷時的電阻值;x為二氧化鈦邊界所在位置的比例;w為二氧化鈦邊界所在位置;D為二氧化鈦薄膜的總厚度。

      一般來說,二氧化鈦邊界的移動速度與器件內(nèi)離子的移動速度有關(guān),即:

      式中:μv為離子平均的漂移率;k為邊界的移動速度與流經(jīng)憶阻器電流的比例因子。

      對于實際中的憶阻器來說,其二氧化鈦邊界不能完全到達(dá)器件的邊界,對其進(jìn)行描述的上述公式是不夠精確的,還需要通過窗口函數(shù)的限制,在式(12)右端右乘窗口函數(shù),常用的窗口函數(shù)有多種,本文模型中使用的是較為常用的Joglekar窗函數(shù)[11],其表達(dá)式為:

      式中,p為任意正整數(shù)。

      Joglekar窗函數(shù)的圖像如圖17所示,不同p值參數(shù)下Joglekar窗函數(shù)曲線具有不同程度的邊界效果,當(dāng)p≥5時,窗函數(shù)的函數(shù)值約等于1。窗函數(shù)的加入,使器件模型在位于二氧化鈦邊界位置時體現(xiàn)出較強的抵抗性,邊界位于中心附近時器件模型會呈現(xiàn)一定的非線性。

      圖17 不同參數(shù)下的Joglekar窗函數(shù)

      基于上述對憶阻器模型研究,在Virtuoso中通過VerilogA語言對憶阻器的模型進(jìn)行設(shè)計,使用的窗口函數(shù)是p=2時的Joglekar窗口函數(shù)。憶阻器模型的仿真結(jié)果如圖18所示。圖18(a)是憶阻器兩端輸入頻率100 Hz正弦波電壓時,憶阻器電壓和電流隨時間的變化圖,在憶阻器電壓曲線的前半周期內(nèi),憶阻器電流曲線達(dá)到極值點的時間晚于電壓曲線,在憶阻器電壓曲線的后半周期內(nèi),憶阻器電流曲線達(dá)到極值點的時間早于電壓曲線,在電壓為0時,電流也為0,這體現(xiàn)了憶阻器電阻的可變性;圖18(b)為不同輸入正弦電壓頻率下的伏安特性曲線,類似于電磁中的磁滯回線,隨著正弦電壓頻率的增加,憶阻器的伏安特性曲線越來越窄甚至變?yōu)橐粭l直線,此時憶阻器的特性將類似于普通電阻的特性。模型的仿真測試結(jié)果與惠普實驗室制作的二氧化鈦憶阻器的特性完全吻合。

      圖18 憶阻器特性的仿真結(jié)果

      4 輻射故障診斷神經(jīng)網(wǎng)絡(luò)的硬件電路

      基于訓(xùn)練完成的輻射故障診斷神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和參數(shù),通過憶阻器等元器件對輻射故障診斷神經(jīng)網(wǎng)絡(luò)的硬件電路進(jìn)行搭建,搭建時采用參數(shù)移植方法,將通過軟件平臺訓(xùn)練之后的神經(jīng)網(wǎng)絡(luò)參數(shù),移植到憶阻器交叉陣列[12-14]神經(jīng)網(wǎng)絡(luò)電路中,將神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏置映射到憶阻器的電導(dǎo)值中。由于憶阻器的電導(dǎo)只能表示正值,在計算卷積時,如果存在負(fù)數(shù)值,則不能直接計算,而且憶阻器的電導(dǎo)存在一定范圍,所以需要正負(fù)2個運算部分來計算正值和負(fù)值,將卷積核矩陣的值轉(zhuǎn)化到憶阻器電導(dǎo)可以表示的范圍內(nèi)[15]。式(15)是卷積核中正矩陣的轉(zhuǎn)換公式,式(16)是卷積核中負(fù)矩陣的轉(zhuǎn)換公式,即:

      式中:σ+為正矩陣轉(zhuǎn)換后的憶阻器電導(dǎo)值;σ-為負(fù)矩陣轉(zhuǎn)換后的憶阻器電導(dǎo)值;σmax為憶阻器的最大電導(dǎo);σmin為憶阻器的最小電導(dǎo);W+為卷積核正矩陣中的值;W-為卷積核負(fù)矩陣中的值。

      圖19為一個矩陣進(jìn)行憶阻器電導(dǎo)轉(zhuǎn)換時的示意圖,首先將矩陣拆分成正矩陣和負(fù)矩陣,之后通過式(17)和式(18)進(jìn)行轉(zhuǎn)換。

      圖19 權(quán)重矩陣進(jìn)行憶阻器電導(dǎo)轉(zhuǎn)換的過程

      由于運算的權(quán)重矩陣經(jīng)過轉(zhuǎn)換,還需要對運算結(jié)果進(jìn)行還原,一般通過差分放大器組成的模擬乘法器進(jìn)行數(shù)據(jù)還原,具體的還原倍數(shù)與該層是否使用激活函數(shù)相關(guān),使用激活函數(shù)的還原倍數(shù)和不使用激活函數(shù)的還原倍數(shù)的計算公式為:

      式中,k為Sigmoid激活函數(shù)的線性擬合函數(shù)的斜率。

      Sigmoid激活函數(shù)圖像類似于集成電路中放大器的輸入電壓與輸出電壓的關(guān)系曲線,可以通過差分放大器的結(jié)構(gòu)來實現(xiàn)激活函數(shù)和數(shù)值的還原,差分放大器放大時一般是線性放大的,這與Sigmoid函數(shù)的圖像存在一定區(qū)別,因此在利用差分放大器實現(xiàn)Sigmoid函數(shù)的功能時,需要對Sigmoid函數(shù)進(jìn)行擬合。通過Python腳本,本文對斜率在區(qū)間(0.04,2)、與y軸交點在區(qū)間(0,0.95)內(nèi)的部分一次線性函數(shù)進(jìn)行枚舉,計算該函數(shù)與Sigmoid函數(shù)之間的相對差距,以獲得對Sigmoid的最佳擬合函數(shù)表達(dá)式,相對差距較小的幾個函數(shù)如表5所示。

      表5 部分用于擬合Sigmoid函數(shù)的表達(dá)式

      Sigmoid函數(shù)的擬合結(jié)果顯示,式(19)的函數(shù)對Sigmoid函數(shù)的擬合效果較好。

      線性擬合的函數(shù)與Sigmoid激活函數(shù)曲線如圖20所示,圖20中只繪制了x值在(-5,5)間的函數(shù)圖像,在x值超過區(qū)間(-5,5)時,2種函數(shù)的值基本上相等,可以在誤差允許的情況下使用式(19)中的函數(shù)代替Sigmoid激活函數(shù)。

      圖20 線性擬合的函數(shù)與Sigmoid激活函數(shù)曲線

      在完成對憶阻器神經(jīng)網(wǎng)絡(luò)的相關(guān)基礎(chǔ)研究后,下面將基于憶阻器對輻射診斷神經(jīng)網(wǎng)絡(luò)的各個結(jié)構(gòu)層在Virtuoso中進(jìn)行搭建如下。

      1)一維卷積層。

      搭建的第一層一維卷積層conv1中的一個卷積核電路如圖21所示,conv1的輸入為14個數(shù)據(jù),需要拆分成正半部分和負(fù)半部分,每一個憶阻器的電導(dǎo)值都需要通過轉(zhuǎn)換公式進(jìn)行轉(zhuǎn)換,本文通過Python腳本將訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)參數(shù)轉(zhuǎn)換為憶阻器二氧化鈦邊界的相對位置,并將相對位置的值移植到憶阻器電路中。inp是輸入的正半部分?jǐn)?shù)據(jù)值,inn是輸入的負(fù)半部分?jǐn)?shù)據(jù)值,輸入1 V電壓的一行憶阻器用于對擬合的激活函數(shù)偏置、一維卷積層偏置進(jìn)行計算。

      圖21 conv1中的一個卷積核電路圖

      根據(jù)電流節(jié)點定律,模擬乘法器輸入的值等于各個輸入值與各憶阻器電導(dǎo)乘積的和,模擬乘法器用于對該數(shù)值進(jìn)行還原,模擬乘法器的結(jié)構(gòu)圖如圖22所示,其中憶阻器Mg的電阻值與式(16)和式(17)的還原倍數(shù)相同。本文以VerilogA模型替代模擬乘法器的功能,設(shè)計的輻射故障診斷神經(jīng)網(wǎng)絡(luò)的conv1有6個卷積核,圖21中只是其中一個卷積核的電路圖,其他的卷積核結(jié)構(gòu)與圖21相同,區(qū)別在于憶阻器的電導(dǎo)值和還原倍數(shù)不同。

      搭建的第二層一維卷積層中的卷積核電路圖與圖21類似,只是結(jié)構(gòu)上輸入節(jié)點和輸出節(jié)點數(shù)目不同,電路方面憶阻器的電導(dǎo)和乘法器還原倍數(shù)不同。憶阻器神經(jīng)網(wǎng)絡(luò)用于還原數(shù)值的模擬乘法電路如圖22所示。

      圖22 憶阻器神經(jīng)網(wǎng)絡(luò)用于還原數(shù)值的模擬乘法電路圖

      2)矩陣正負(fù)值運算電路。

      由于矩陣卷積時需要獲得矩陣的正值矩陣和負(fù)值矩陣,這需要特殊的電路來實現(xiàn),圖23為正負(fù)值運算產(chǎn)生電路的電路圖,電路將輸入Vin的值輸出為Vn和Vp,由于Sigmoid激活函數(shù)的輸出均為正值或0,因此Vn的值是Vin的值絕對值的相反數(shù),Vp的值是Vin的絕對值,差分放大器的增益均為1。

      圖23 正負(fù)值運算產(chǎn)生電路的電路圖

      3)最大池化電路。

      最大池化電路的主要功能是判斷2個輸入的較大值,并輸出較大值的數(shù)值。實現(xiàn)上述功能的電路如圖24所示,左邊是CMOS比較器,其功能是比較2個輸入的大小,如果正極輸入大于負(fù)極輸入,則輸出上限電壓1 V,相反如果正極輸入小于負(fù)極電壓,則輸出下限電壓0 V。

      圖24中右邊的器件是可用CMOS傳輸門實現(xiàn)的單刀雙擲開關(guān),Sel是數(shù)據(jù)輸出選擇信號,Sel為高電平時,將輸出Vin1的值,Sel為低電平時,則輸出Vin2的值。最大池化電路以這種電路為單元組成,輻射故障診斷神經(jīng)網(wǎng)絡(luò)的第一層最大池化層有72個輸入和36個輸出,共需要36個這樣的單元組成,第二層最大池化層有48個輸入和24個輸出,共需要24個這樣的單元組成。

      圖24 最大池化電路的電路圖

      4)全連接層的電路結(jié)構(gòu)。

      全連接運算的本質(zhì)也是矩陣的乘法,同樣可以通過憶阻器來實現(xiàn),只不過電路結(jié)構(gòu)不同于一維卷積層的電路,圖25為輻射故障診斷神經(jīng)網(wǎng)絡(luò)全連接層的電路圖,全連接層有24個輸入和3個分類輸出,且全連接層的輸出沒有使用Sigmoid函數(shù)進(jìn)行激活,但同樣需要單獨的憶阻器來計算全連接層的偏置值。

      5)電路總體結(jié)構(gòu)。

      根據(jù)上述設(shè)計的電路結(jié)構(gòu),本文在Virtuoso中對神經(jīng)網(wǎng)絡(luò)的總體電路進(jìn)行搭建,總體電路結(jié)構(gòu)如圖26所示,矩形方框內(nèi)代表上文中介紹的電路結(jié)構(gòu),箭頭方向代表數(shù)據(jù)流的方向,箭頭上的數(shù)據(jù)代表各個電路之間的數(shù)據(jù)數(shù)量及正負(fù),未標(biāo)明正負(fù)代表數(shù)據(jù)可能為正值或負(fù)值。

      圖25 進(jìn)行分類的全連接層電路圖

      圖26 輻射故障診斷神經(jīng)網(wǎng)絡(luò)電路結(jié)構(gòu)框圖

      輻射故障診斷神經(jīng)網(wǎng)絡(luò)電路的內(nèi)部運算通過電學(xué)參量的關(guān)系進(jìn)行運算,在滿足數(shù)據(jù)輸入格式前提下,運算速度與模擬芯片相接近,可以較好地滿足實時性需求。但硬件電路與軟件平臺存在一定區(qū)別,導(dǎo)致神經(jīng)網(wǎng)絡(luò)電路的運算結(jié)果和軟件平臺計算的結(jié)果會存在一定誤差,誤差主要來源于激活函數(shù)的差別、憶阻器電導(dǎo)值的存儲方式與軟件權(quán)重的差別和電路的噪聲等因素,對硬件神經(jīng)網(wǎng)絡(luò)的運算結(jié)果產(chǎn)生了一定影響。圖27給出了在軟硬輸入相同條件時,硬件電路仿真的相對誤差平均值,由于卷積層第二層的運算量較大,硬件電路的相對誤差較大。

      本文在搭建硬件電路后,在Virtuoso中仿真200組3種狀態(tài)的數(shù)據(jù),硬件實際測試時的平均誤差如圖28所示,誤差結(jié)果均為整體神經(jīng)網(wǎng)絡(luò)電路與軟件之間的仿真相對誤差。

      圖27 硬件實際測試時的相對誤差平均值

      圖28 硬件實際測試時的平均誤差

      5 結(jié)論

      本文統(tǒng)計了200組實驗數(shù)據(jù)在神經(jīng)網(wǎng)絡(luò)硬件上運行的準(zhǔn)確度,達(dá)到98%以上,相較于軟件的準(zhǔn)確度略低,本文結(jié)果對精度要求稍低而對運算速度要求高的場景更為適用。

      猜你喜歡
      阻器故障診斷運算
      重視運算與推理,解決數(shù)列求和題
      有趣的運算
      “整式的乘法與因式分解”知識歸納
      真實憶阻器數(shù)學(xué)建模以及電學(xué)仿真
      電子制作(2017年24期)2017-02-02 07:14:25
      撥云去“誤”學(xué)乘除運算
      因果圖定性分析法及其在故障診斷中的應(yīng)用
      具有脈沖的憶阻器神經(jīng)網(wǎng)絡(luò)周期解的穩(wěn)定性
      基于LCD和排列熵的滾動軸承故障診斷
      基于WPD-HHT的滾動軸承故障診斷
      機械與電子(2014年1期)2014-02-28 02:07:31
      高速泵的故障診斷
      河南科技(2014年3期)2014-02-27 14:05:48
      万山特区| 都兰县| 潢川县| 衡山县| 工布江达县| 汝州市| 大荔县| 嘉兴市| 宁明县| 修武县| 宁远县| 富民县| 昆山市| 中江县| 武乡县| 阜平县| 西丰县| 郎溪县| 论坛| 徐闻县| 杭锦旗| 萝北县| 绥中县| 海口市| 应城市| 天等县| 清流县| 乐陵市| 阳东县| 荣成市| 浦江县| 泸西县| 左权县| 商丘市| 富蕴县| 承德县| 承德市| 泰和县| 鄂伦春自治旗| 巴彦淖尔市| 青浦区|