论文部分内容阅读
摘要:支持向量机因有着比较好的分类能力,被广泛应用在电路故障诊断中,但是它的分类性能与核参数选择有关,因此对于支持向量机的参数优化问题,本文提出了基于蝙蝠算法的支持向量机参数优化方法,对支持向量机的c(惩罚参数)和g(核函数参数)进行优化。
关键词:蝙蝠算法;支持向量机;改进;诊断;研究
0 引言
电子设备广泛应用于各大行业,在人们的日常生活中普遍存在,模拟电路在电子设备中起着非常重要的作用,是电子设备的重要部分。随着AI和计算机的飞速发展,人工智能、支持向量机、神经网络等方法被不断应用于模拟电路故障诊断中,为模拟电路故障诊断提供了许多新的方法,取得了许多研究成果。
支持向量(Support Vector Machine, SVM)在模拟电路中,在模拟电路故障诊断中对于解决小样本问题和非线性问题有很大的优势。
蝙蝠算法( BA)是基于群体智能提出的启发式搜索算法,是一种搜索全局最优解的有效方法。该算法是一种基于迭代的优化技术,初始化为一组随机解,然后通过迭代搜寻最优解,且在最优解周围通过随机飞行产生局部新解,加强了局部搜索。
本文将改进的蝙蝠优化算法( Modified Bat optimization algorithm,MBOA) 与支持向量机相结合来进行模拟电路故障诊断。首先分析提取故障特征,然后用改进的蝙蝠算法对SVM的参数进行优化,建立MBOA-SVM 诊断模型,最后将该模型应用于模拟电路的故障诊断中,根据实验分析,发现该方法是可行的,有较高的正确率。
1 支持向量机
支持向量机的结构图:
常见的核函数有多项式核、高斯径向基核、Sig-moid核,在这几种核函数中,高斯核函数具有较宽的收敛域,可适用于任意分布的样本,所以其在SVM中应用最广。
公式为:
2 蝙蝠算法基本原理
BA算法是模拟自然界中蝙蝠利用一种声呐来探测猎物、避免障碍物的随机搜索算法即模拟蝙蝠利用超声波对障碍物或猎物进行最基本的探测、定位能力并将其和优化目标功能相联系。在蝙蝠搜索算法中,为了模拟蝙蝠探测猎物、避免障碍物,需假设如下三个近似的或理想化的规则:
1)所有蝙蝠利用回声定位的方法感知距离,并且它们采用一种巧妙的方式来区别猎物和背景障碍物之间的不同。
2)蝙蝠在位置xi以速度vi随机飞行,以固定的频率fmin、可变的波长λ和音量A0来搜索猎物。蝙蝠根据自身与目标的邻近程度来自动调整發射的脉冲波长(或频率)和调整脉冲发射率r属于[0,1]。
3)虽然音量的变化方式有多种但在蝙蝠算法中, 假定音量A是从一个最大值A0(整数)变化到固定最小值Amin。
3 蝙蝠算法-支持向量机
支持向量机 的分类精度?主要是受两个参数 C、g 的影响( C是惩罚因子,表示对超出误差样本的惩罚程度、g表示径向基函数的宽度) 。由于通过传统方法核函数的分类效果不佳,因此本文采用蝙蝠算法寻求最优的支持向量机参数。基于蝙蝠算法的支持向量机参数优化流程完整步骤如下:
1) 设置蝙蝠种群。
蝙蝠种群的大小为 N、维数为 D、脉冲速率为S、脉 冲频率为 F、最大迭代数为 Ng。
2) 蝙蝠个体初始化。
利用 Bmin + rand(1,D) ×(Bmax-Bmin)产生蝙蝠个体,构成初始蝙蝠种群。
3) 计算每个蝙蝠的适应度值并确定最优蝙蝠的位置。
将所有蝙蝠个体作为支持向量机的参数在训练集上进行训练和测试集上进行测试。得到的数值作为对应蝙蝠的适应度值并且输出,依据返回的适应度值的大小,找到最优的蝙蝠个体 Bbest。
4) 生成新蝙蝠个体。
根据传统蝙蝠算法基本公式分别更新脉冲频率 Fi 与飞行速度 Vi,生成新的蝙蝠个体 Bnew。
5) 更新蝙蝠个体。
①产生一个随机数 randx,如果randx>Si,则对当前群体中最优蝙蝠个体 Bbest 的邻域进行随机扰动,获得一个新的蝙蝠个体,而后用新蝙蝠个体替换当前蝙蝠个体。
②产生一个随机数 randy,如果满足 randy >Yi, 并且 f( Bnew ) <f( Bold ) ,则用新蝙蝠个体替换当前位置的旧蝙蝠个体。并根据下式更新脉冲频度R0和脉冲音强 Yi。
式中: α 为脉冲音强衰减系数; γ 为脉冲频度增加系数; t 为当前迭代次数。
6) 若达到最大的迭代次数则算法终止,输出最优参数,否则转到步骤 4) 继续执行。
7) 最终获得最佳参数,然后建立最好的分类器模型。
3 诊断实例及分析
设元件的标称值为: R1 = 1 kΩ, R2 = 3 kΩ,R3 = 2 kΩ,R4 = 4 kΩ,R5 = 4 kΩ,C1 =5 nF,C2 = 5 nF,电阻及电容的容差为 5% 。当电路出现软故障时,元件相对其标称值偏离为 ± 50% ,该元件的值在区间 [50% Y,95% Y)∪( 105% Y,150% Y]内( Y表示器件的标称值) 。该电路共有14种故障,分别记为 C1↑,C1↓,C2↑,C2↓,R1↑,R1↓, R2↑,R2↓,R3↑,R3↓,R4↑,R4↓,R5↑,R5↓。↑代表元件的故障值偏大,↓代表元件的故障值偏小,包括无故障状态在内一共有15 种状态存在,总共有9种故障类型(包括正常)。在 Matlab2019b中搭建故障诊断模型,编写代码实现BA算法,并通过所获得的 DGA 数据进行实例仿真。完成了SVM-蝙蝠算法与蝙蝠算法、果蝇算法、遗传算法(GA)、粒子群算法(PSO)结合SVM模型的对比分析如表1所示。
4结语
本文提出的基于SVM-蝙蝠算法的故障特征提取的支持向量机模拟电路故障诊断方法将本文方法和其他文献采用的方法进行了比较,通过Sallen-Key带通滤波器电路故障诊断仿真实验证明了提出的SVM-蝙蝠算法较传统的蝙蝠算法具有收敛速度快、平衡收敛的速度和精度高等优势,在模拟电路故障诊断领域,和其他传统的智能算法相比,支持向量机的分类精度提高了,模拟电路故障诊断的正确率也提高了,是一种有效的方法。
参考文献:
[1] 祖文超,李红君,苑津莎. 基于纠错能力的 SVM 在变压器故障诊断的应用 [J]. 电力科学与工程,2012,28 ( 11) : 39-43.
[2] 郑蕊蕊,赵继印,赵婷婷,等. 基于遗传支持向量机和灰色免疫算法的电力变压器故障诊断[J]. 中国电机工程学报,2011, 31( 7) : 56 - 63.
[3] 张倩,杨耀权. 基于支持向量机核函数的研究 [J].电力科学与工程,2012,25 ( 5) : 42-45.
关键词:蝙蝠算法;支持向量机;改进;诊断;研究
0 引言
电子设备广泛应用于各大行业,在人们的日常生活中普遍存在,模拟电路在电子设备中起着非常重要的作用,是电子设备的重要部分。随着AI和计算机的飞速发展,人工智能、支持向量机、神经网络等方法被不断应用于模拟电路故障诊断中,为模拟电路故障诊断提供了许多新的方法,取得了许多研究成果。
支持向量(Support Vector Machine, SVM)在模拟电路中,在模拟电路故障诊断中对于解决小样本问题和非线性问题有很大的优势。
蝙蝠算法( BA)是基于群体智能提出的启发式搜索算法,是一种搜索全局最优解的有效方法。该算法是一种基于迭代的优化技术,初始化为一组随机解,然后通过迭代搜寻最优解,且在最优解周围通过随机飞行产生局部新解,加强了局部搜索。
本文将改进的蝙蝠优化算法( Modified Bat optimization algorithm,MBOA) 与支持向量机相结合来进行模拟电路故障诊断。首先分析提取故障特征,然后用改进的蝙蝠算法对SVM的参数进行优化,建立MBOA-SVM 诊断模型,最后将该模型应用于模拟电路的故障诊断中,根据实验分析,发现该方法是可行的,有较高的正确率。
1 支持向量机
支持向量机的结构图:
常见的核函数有多项式核、高斯径向基核、Sig-moid核,在这几种核函数中,高斯核函数具有较宽的收敛域,可适用于任意分布的样本,所以其在SVM中应用最广。
公式为:
2 蝙蝠算法基本原理
BA算法是模拟自然界中蝙蝠利用一种声呐来探测猎物、避免障碍物的随机搜索算法即模拟蝙蝠利用超声波对障碍物或猎物进行最基本的探测、定位能力并将其和优化目标功能相联系。在蝙蝠搜索算法中,为了模拟蝙蝠探测猎物、避免障碍物,需假设如下三个近似的或理想化的规则:
1)所有蝙蝠利用回声定位的方法感知距离,并且它们采用一种巧妙的方式来区别猎物和背景障碍物之间的不同。
2)蝙蝠在位置xi以速度vi随机飞行,以固定的频率fmin、可变的波长λ和音量A0来搜索猎物。蝙蝠根据自身与目标的邻近程度来自动调整發射的脉冲波长(或频率)和调整脉冲发射率r属于[0,1]。
3)虽然音量的变化方式有多种但在蝙蝠算法中, 假定音量A是从一个最大值A0(整数)变化到固定最小值Amin。
3 蝙蝠算法-支持向量机
支持向量机 的分类精度?主要是受两个参数 C、g 的影响( C是惩罚因子,表示对超出误差样本的惩罚程度、g表示径向基函数的宽度) 。由于通过传统方法核函数的分类效果不佳,因此本文采用蝙蝠算法寻求最优的支持向量机参数。基于蝙蝠算法的支持向量机参数优化流程完整步骤如下:
1) 设置蝙蝠种群。
蝙蝠种群的大小为 N、维数为 D、脉冲速率为S、脉 冲频率为 F、最大迭代数为 Ng。
2) 蝙蝠个体初始化。
利用 Bmin + rand(1,D) ×(Bmax-Bmin)产生蝙蝠个体,构成初始蝙蝠种群。
3) 计算每个蝙蝠的适应度值并确定最优蝙蝠的位置。
将所有蝙蝠个体作为支持向量机的参数在训练集上进行训练和测试集上进行测试。得到的数值作为对应蝙蝠的适应度值并且输出,依据返回的适应度值的大小,找到最优的蝙蝠个体 Bbest。
4) 生成新蝙蝠个体。
根据传统蝙蝠算法基本公式分别更新脉冲频率 Fi 与飞行速度 Vi,生成新的蝙蝠个体 Bnew。
5) 更新蝙蝠个体。
①产生一个随机数 randx,如果randx>Si,则对当前群体中最优蝙蝠个体 Bbest 的邻域进行随机扰动,获得一个新的蝙蝠个体,而后用新蝙蝠个体替换当前蝙蝠个体。
②产生一个随机数 randy,如果满足 randy >Yi, 并且 f( Bnew ) <f( Bold ) ,则用新蝙蝠个体替换当前位置的旧蝙蝠个体。并根据下式更新脉冲频度R0和脉冲音强 Yi。
式中: α 为脉冲音强衰减系数; γ 为脉冲频度增加系数; t 为当前迭代次数。
6) 若达到最大的迭代次数则算法终止,输出最优参数,否则转到步骤 4) 继续执行。
7) 最终获得最佳参数,然后建立最好的分类器模型。
3 诊断实例及分析
设元件的标称值为: R1 = 1 kΩ, R2 = 3 kΩ,R3 = 2 kΩ,R4 = 4 kΩ,R5 = 4 kΩ,C1 =5 nF,C2 = 5 nF,电阻及电容的容差为 5% 。当电路出现软故障时,元件相对其标称值偏离为 ± 50% ,该元件的值在区间 [50% Y,95% Y)∪( 105% Y,150% Y]内( Y表示器件的标称值) 。该电路共有14种故障,分别记为 C1↑,C1↓,C2↑,C2↓,R1↑,R1↓, R2↑,R2↓,R3↑,R3↓,R4↑,R4↓,R5↑,R5↓。↑代表元件的故障值偏大,↓代表元件的故障值偏小,包括无故障状态在内一共有15 种状态存在,总共有9种故障类型(包括正常)。在 Matlab2019b中搭建故障诊断模型,编写代码实现BA算法,并通过所获得的 DGA 数据进行实例仿真。完成了SVM-蝙蝠算法与蝙蝠算法、果蝇算法、遗传算法(GA)、粒子群算法(PSO)结合SVM模型的对比分析如表1所示。
4结语
本文提出的基于SVM-蝙蝠算法的故障特征提取的支持向量机模拟电路故障诊断方法将本文方法和其他文献采用的方法进行了比较,通过Sallen-Key带通滤波器电路故障诊断仿真实验证明了提出的SVM-蝙蝠算法较传统的蝙蝠算法具有收敛速度快、平衡收敛的速度和精度高等优势,在模拟电路故障诊断领域,和其他传统的智能算法相比,支持向量机的分类精度提高了,模拟电路故障诊断的正确率也提高了,是一种有效的方法。
参考文献:
[1] 祖文超,李红君,苑津莎. 基于纠错能力的 SVM 在变压器故障诊断的应用 [J]. 电力科学与工程,2012,28 ( 11) : 39-43.
[2] 郑蕊蕊,赵继印,赵婷婷,等. 基于遗传支持向量机和灰色免疫算法的电力变压器故障诊断[J]. 中国电机工程学报,2011, 31( 7) : 56 - 63.
[3] 张倩,杨耀权. 基于支持向量机核函数的研究 [J].电力科学与工程,2012,25 ( 5) : 42-45.