摘要:研究了递阶遗传算法用于神经网络的参数确定问题,以期利用递阶遗传算法的二级编码结构解决以往同时优化神经网络结构、权值、阈值效率不高的难题。此外,建立了三相桥式全控整流电路的故障模型,并对几种常见故障进行了仿真分析。最后,将自适应递阶遗传算法用于三相桥式全控整流电路的故障诊断,仿真验证了该方法的准确性和实用性。
关键词:递阶遗传算法;神经网络;三相桥式全控整流电路;故障诊断
0 引言
近年来,国内外有关研究人员针对电力电子电路故障诊断的研究还比较少,其中有相当一部分是基于神经网络的分析方法,虽然神经网络具有学习、泛化和容错能力,令人欣喜,但它存在的许多缺点却不容忽视,如网络结构要求预知,最常用的BP学习算法在本质上是一个梯度下降搜索算法,这使其有可能收敛于局部最小点。
遗传算法(GA)是一个基于自然选择机制的搜索算法。它同时考虑搜索空间中的多个点,并鼓励不同搜索方向之间的信息交换,从而有效地减少了收敛到局部最小点的机率。使用GA优化神经网络已取得了一些令人鼓舞的结果,但它们大多数只考虑神经网络的连接权重,很少提及优化神经网络结构。
总的来说,针对电力电子电路的故障诊断研究依然存在或多或少的不足,有待进一步的完善和发展。递阶遗传算法作为一种新型的基于自然选择机制的搜索算法,与神经网络的结合很好地解决了这一难题。本文应用一种自适应递阶遗传算法同时优化神经网络结构和连接权重进行三相桥式全控整流电路故障诊断。利用自适应递阶遗传算法同时优化神经网络结构和连接权重,很好地解决了以往利用神经网络进行故障诊断的不足,并用三相桥式全控整流电路故障诊断仿真实例证明了该方法的正确性和有效性。
1 基于改进递阶遗传算法BP网络分类器的设计
1.1 递阶遗传算法
K.F.Man等根据染色体中的基因结构存在递阶形式,即一些基因控制另一些基因的活动,提出了递阶遗传算法(Hierarchical Genetic Algorithm,HGA)。
为了简要说明控制基因的活动,用整数“1”表示每一个正在激活的控制基因;用整数“0”表示每一个没有激活的控制基因。当控制基因用整数“1”标识时,表示其相连的下级结构的基因处于活动状态;当控制基因用整数“0”标识时,表示其相连的下级结构的基因处于不活动状态。这种递阶结构意味着染色体比普通遗传算法中的染色体包含的信息多,从而能够处理更为复杂的问题。因此,称编码为递阶结构染色体的遗传算法为递阶遗传算法。
如图1所示,两条染色体各是由5个控制基因和5个整数表示的参数基因组成。
其表示分别为:
从图1可以看出,XA,XB表示染色体的长度分别为3和2,这意味着在递阶染色体结构中,虽然两条染色体的长度相同,而其表示的长度可能不同。因此,递阶遗传算法能够搜索出所有参数中适合最终目标函数的参数的长度。而且,根据具体问题,染色体可以设计为多级递阶结构,从而形成多层的染色体结构。
本文采用二级递阶结构染色体描述BP网络结构和参数,其中,控制基因串表示隐节点,参数基因串表示网络的权重和相应的阈值。递阶遗传算法在操作过程中,不仅改变控制基因串的状况,而且改变参数基因串的取值。因此,训练过程中网络参数和拓扑结构可同时优化。
1.2 编码结构
染色体递阶结构及编码如图2所示,其中,控制基因按设定的比较大的初始隐节点数(可以根据经验公式得到,其中,d为输入神经元个数,n为输出神经元个数,a为1~10之间的常数)由遗传算法随机生成0,1编码,1的个数即为有效的隐节点个数,参数基因为隐节点对应的权值及阈值,由遗传算法随机生成实数编码。另外,在参数基因串的最后附加上不受控制基因控制的输出节点的阈值参数。当达到训练代数或停止准则时,控制基因串中1的个数即为最佳隐节点个数,1所对应的参数基因串即为该隐节点对应的最优结构参数。
1.3 适应值函数
训练神经网络的目标是使神经网络的精确度和复杂度都达到最小,这是一个双目标优化问题。BP网络的复杂度由隐层节点数决定,精度由网络输出与期望输出之间的误差决定,考虑到训练的目标,建立适值函数如下:
式中:m为隐节点数;d为网络输入节点数;a,b和c为待定系数;表示第i个输入样本对应的网络输出;yi为期望输出;N为样本数。根据大量实验结果,适值函数的系数分别如下取值效果是比较好的,即a=0.95,b=0.05,c=3。神经网络训练误差为:
1.4 无回放余数随机选择
无回放余数随机选择法结合了基于概率的选择方法和确定方式的选择方法,可确保适应度比平均适应度大的一些个体一定能被遗传到下一代群体,选择误差比较小。其具体步骤如下:
(1)计算群体中每个个体在下一代群体中的生存期望数目(N为种群规模,fiti为个体i的适应值):