周鵬 張鎮(zhèn)
摘要:支持向量機(jī)因有著比較好的分類能力,被廣泛應(yīng)用在電路故障診斷中,但是它的分類性能與核參數(shù)選擇有關(guān),因此對于支持向量機(jī)的參數(shù)優(yōu)化問題,本文提出了基于蝙蝠算法的支持向量機(jī)參數(shù)優(yōu)化方法,對支持向量機(jī)的c(懲罰參數(shù))和g(核函數(shù)參數(shù))進(jìn)行優(yōu)化。
關(guān)鍵詞:蝙蝠算法;支持向量機(jī);改進(jìn);診斷;研究
0 引言
電子設(shè)備廣泛應(yīng)用于各大行業(yè),在人們的日常生活中普遍存在,模擬電路在電子設(shè)備中起著非常重要的作用,是電子設(shè)備的重要部分。隨著AI和計(jì)算機(jī)的飛速發(fā)展,人工智能、支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)等方法被不斷應(yīng)用于模擬電路故障診斷中,為模擬電路故障診斷提供了許多新的方法,取得了許多研究成果。
支持向量(Support Vector Machine, SVM)在模擬電路中,在模擬電路故障診斷中對于解決小樣本問題和非線性問題有很大的優(yōu)勢。
蝙蝠算法( BA)是基于群體智能提出的啟發(fā)式搜索算法,是一種搜索全局最優(yōu)解的有效方法。該算法是一種基于迭代的優(yōu)化技術(shù),初始化為一組隨機(jī)解,然后通過迭代搜尋最優(yōu)解,且在最優(yōu)解周圍通過隨機(jī)飛行產(chǎn)生局部新解,加強(qiáng)了局部搜索。
本文將改進(jìn)的蝙蝠優(yōu)化算法( Modified Bat optimization algorithm,MBOA) 與支持向量機(jī)相結(jié)合來進(jìn)行模擬電路故障診斷。首先分析提取故障特征,然后用改進(jìn)的蝙蝠算法對SVM的參數(shù)進(jìn)行優(yōu)化,建立MBOA-SVM 診斷模型,最后將該模型應(yīng)用于模擬電路的故障診斷中,根據(jù)實(shí)驗(yàn)分析,發(fā)現(xiàn)該方法是可行的,有較高的正確率。
1 支持向量機(jī)
支持向量機(jī)的結(jié)構(gòu)圖:
常見的核函數(shù)有多項(xiàng)式核、高斯徑向基核、Sig-moid核,在這幾種核函數(shù)中,高斯核函數(shù)具有較寬的收斂域,可適用于任意分布的樣本,所以其在SVM中應(yīng)用最廣。
公式為:
2 蝙蝠算法基本原理
BA算法是模擬自然界中蝙蝠利用一種聲吶來探測獵物、避免障礙物的隨機(jī)搜索算法即模擬蝙蝠利用超聲波對障礙物或獵物進(jìn)行最基本的探測、定位能力并將其和優(yōu)化目標(biāo)功能相聯(lián)系。在蝙蝠搜索算法中,為了模擬蝙蝠探測獵物、避免障礙物,需假設(shè)如下三個近似的或理想化的規(guī)則:
1)所有蝙蝠利用回聲定位的方法感知距離,并且它們采用一種巧妙的方式來區(qū)別獵物和背景障礙物之間的不同。
2)蝙蝠在位置xi以速度vi隨機(jī)飛行,以固定的頻率fmin、可變的波長λ和音量A0來搜索獵物。蝙蝠根據(jù)自身與目標(biāo)的鄰近程度來自動調(diào)整發(fā)射的脈沖波長(或頻率)和調(diào)整脈沖發(fā)射率r屬于[0,1]。
3)雖然音量的變化方式有多種但在蝙蝠算法中, 假定音量A是從一個最大值A(chǔ)0(整數(shù))變化到固定最小值A(chǔ)min。
3 蝙蝠算法-支持向量機(jī)
支持向量機(jī) 的分類精度?主要是受兩個參數(shù) C、g 的影響( C是懲罰因子,表示對超出誤差樣本的懲罰程度、g表示徑向基函數(shù)的寬度) 。由于通過傳統(tǒng)方法核函數(shù)的分類效果不佳,因此本文采用蝙蝠算法尋求最優(yōu)的支持向量機(jī)參數(shù)。基于蝙蝠算法的支持向量機(jī)參數(shù)優(yōu)化流程完整步驟如下:
1) 設(shè)置蝙蝠種群。
蝙蝠種群的大小為 N、維數(shù)為 D、脈沖速率為S、脈 沖頻率為 F、最大迭代數(shù)為 Ng。
2) 蝙蝠個體初始化。
利用 Bmin + rand(1,D) ×(Bmax-Bmin)產(chǎn)生蝙蝠個體,構(gòu)成初始蝙蝠種群。
3) 計(jì)算每個蝙蝠的適應(yīng)度值并確定最優(yōu)蝙蝠的位置。
將所有蝙蝠個體作為支持向量機(jī)的參數(shù)在訓(xùn)練集上進(jìn)行訓(xùn)練和測試集上進(jìn)行測試。得到的數(shù)值作為對應(yīng)蝙蝠的適應(yīng)度值并且輸出,依據(jù)返回的適應(yīng)度值的大小,找到最優(yōu)的蝙蝠個體 Bbest。
4) 生成新蝙蝠個體。
根據(jù)傳統(tǒng)蝙蝠算法基本公式分別更新脈沖頻率 Fi 與飛行速度 Vi,生成新的蝙蝠個體 Bnew。
5) 更新蝙蝠個體。
①產(chǎn)生一個隨機(jī)數(shù) randx,如果randx>Si,則對當(dāng)前群體中最優(yōu)蝙蝠個體 Bbest 的鄰域進(jìn)行隨機(jī)擾動,獲得一個新的蝙蝠個體,而后用新蝙蝠個體替換當(dāng)前蝙蝠個體。
②產(chǎn)生一個隨機(jī)數(shù) randy,如果滿足 randy >Yi, 并且 f( Bnew ) 式中: α 為脈沖音強(qiáng)衰減系數(shù); γ 為脈沖頻度增加系數(shù); t 為當(dāng)前迭代次數(shù)。 6) 若達(dá)到最大的迭代次數(shù)則算法終止,輸出最優(yōu)參數(shù),否則轉(zhuǎn)到步驟 4) 繼續(xù)執(zhí)行。 7) 最終獲得最佳參數(shù),然后建立最好的分類器模型。 3 診斷實(shí)例及分析 設(shè)元件的標(biāo)稱值為: R1 = 1 kΩ, R2 = 3 kΩ,R3 = 2 kΩ,R4 = 4 kΩ,R5 = 4 kΩ,C1 =5 nF,C2 = 5 nF,電阻及電容的容差為 5% 。當(dāng)電路出現(xiàn)軟故障時,元件相對其標(biāo)稱值偏離為 ± 50% ,該元件的值在區(qū)間 [50% Y,95% Y)∪( 105% Y,150% Y]內(nèi)( Y表示器件的標(biāo)稱值) 。該電路共有14種故障,分別記為 C1↑,C1↓,C2↑,C2↓,R1↑,R1↓, R2↑,R2↓,R3↑,R3↓,R4↑,R4↓,R5↑,R5↓?!碓墓收现灯?,↓代表元件的故障值偏小,包括無故障狀態(tài)在內(nèi)一共有15 種狀態(tài)存在,總共有9種故障類型(包括正常)。在 Matlab2019b中搭建故障診斷模型,編寫代碼實(shí)現(xiàn)BA算法,并通過所獲得的 DGA 數(shù)據(jù)進(jìn)行實(shí)例仿真。完成了SVM-蝙蝠算法與蝙蝠算法、果蠅算法、遺傳算法(GA)、粒子群算法(PSO)結(jié)合SVM模型的對比分析如表1所示。 4結(jié)語 本文提出的基于SVM-蝙蝠算法的故障特征提取的支持向量機(jī)模擬電路故障診斷方法將本文方法和其他文獻(xiàn)采用的方法進(jìn)行了比較,通過Sallen-Key帶通濾波器電路故障診斷仿真實(shí)驗(yàn)證明了提出的SVM-蝙蝠算法較傳統(tǒng)的蝙蝠算法具有收斂速度快、平衡收斂的速度和精度高等優(yōu)勢,在模擬電路故障診斷領(lǐng)域,和其他傳統(tǒng)的智能算法相比,支持向量機(jī)的分類精度提高了,模擬電路故障診斷的正確率也提高了,是一種有效的方法。 參考文獻(xiàn): [1] 祖文超,李紅君,苑津莎. 基于糾錯能力的 SVM 在變壓器故障診斷的應(yīng)用 [J]. 電力科學(xué)與工程,2012,28 ( 11) : 39-43. [2] 鄭蕊蕊,趙繼印,趙婷婷,等. 基于遺傳支持向量機(jī)和灰色免疫算法的電力變壓器故障診斷[J]. 中國電機(jī)工程學(xué)報(bào),2011, 31( 7) : 56 - 63. [3] 張倩,楊耀權(quán). 基于支持向量機(jī)核函數(shù)的研究 [J].電力科學(xué)與工程,2012,25 ( 5) : 42-45.