基于改进飞蛾火焰算法的单相逆变器参数辨识

2020-12-18 08:05吴忠强申丹丹尚梦瑶戚松崎
计量学报 2020年11期
关键词:飞蛾适应度火焰

吴忠强,申丹丹,尚梦瑶,戚松崎

(燕山大学工业计算机控制工程河北省重点实验室,河北秦皇岛066004)

1 引 言

由于日益严重的环境问题和能源危机,污染小、可再生的清洁能源越来越受到人类的重视,因此太阳能等新能源发电得到了快速发展。逆变器是新能源发电系统的重要部件,也是易发生故障的薄弱环节。电力电子设备故障主要分为结构性故障和参数性故障。参数性故障会引起输出特性的改变,降低系统的工作性能和可靠性,严重时会导致整个系统瘫痪[1,2]。因此研究逆变器参数性故障诊断对于保证新能源发电系统的安全稳定运行,具有重要意义。

近年来,为了有效诊断电力电子设备的参数型故障,出现了基于参数辨识的电路故障诊断方法。通过参数辨识能够准确获知电路中故障元器件的参数,从而实现参数型故障诊断。这类方法一般需要先建立电路数学模型,且参数估计方法直接决定了参数辨识的准确性[3~7]。

文献[8]构建了混杂系统模型的基础,用最小二乘法获取电力电子电路的参数,但该方法需要大量复杂的数学计算,辨识过程十分困难。文献[9]基于电路频域模型和频域响应,利用遗传算法实现电路参数辨识。但遗传算法的实现比较复杂,首先要对问题进行编码,找到最优解之后还要对问题解码;另外算法的实现也有许多参数,如交叉率和变异率,且这些参数的选择严重影响解的品质。粒子群算法(partial swarm optimization,PSO)比遗传算法规则简单,它没有遗传算法的“交叉”和“变异”操作,只追随当前搜索到的最优值来寻找全局最优;但算法进化后期存在局部极值、收敛速度慢、收敛精度低的缺点[10~12]。文献[13]对粒子群算法进行了改进,在粒子位置更新公式中,利用Levy飞行改变粒子位置运动的方向,防止粒子进入局部最优值;然后用贪婪策略更新评价和选择最佳的解决方案来获得全局最优,改进算法能够有效地提高算法的收敛速度和准确率。文献[14]用蚁狮优化算法估计太阳能电池电路模型参数,蚁狮优化算法(antlion optimizer,ALO)是受自然界中蚁狮猎捕蚂蚁的狩猎机制启发而提出的一种新的群体智能优化算法。蚁狮通过猎捕适应度高的蚂蚁实现对近似最优解的更新和保存,但蚁狮算法存在收敛速度慢、受初始值影响大且易早熟等缺点。文献[15]采用灰狼优化算法(grey wolf optimizer,GWO)来识别电池电路模型参数。灰狼优化算法是一种模拟灰狼捕食行为的群智能优化算法,根据灰狼的社会等级将包围、追捕、攻击等捕食任务分配给不同等级的灰狼群来完成捕食行为,从而实现全局优化的过程。GWO算法具有操作简单、调节参数少、编程易实现等优点;但同时也存在易陷入局部最优、求解精度不高、收敛速度慢等缺点。

飞蛾火焰优化算法(moth-flame optimization,MFO)[16]是2015年提出的新型仿生群体智能算法,灵感来源于自然界飞蛾横向定位机制。同其它优化算法一样,MFO算法也存在收敛速度慢和早熟收敛的问题。因此,本文提出了一种改进的飞蛾火焰优化算法(improved moth flame optimization,IMFO),并应用于逆变器模型参数辨识。改进飞蛾火焰优化算法在个体更新部分使飞蛾向最优位置直线移动,加快MFO收敛速度;引入Levy飞行,增强种群多样性,提高MFO全局搜索能力。

2 模型的建立及FFT

2.1 单相逆变器模型

逆变电路是实现直流与交流转换的电路,是电力电子电路中最基本的电路。对图1所示的单相全桥PWM逆变器[17],建立其频域传递函数模型。

图1 单相逆变器电路图Fig.1 Circuit diagram of single-phase inverter

图1中,L为输出滤波电感,C为滤波电容,R为负载电阻。电压型全桥逆变电路可看成由两个半桥电路组合而成,共4个桥臂,T1和T4为一对,T2和T3为另一对。VD1~VD4为反并联二极管,成对桥臂同时导通,两对交替导通,逆变桥的输出电压Ui为:+E、0和-E,Uo为逆变器输出电压。该逆变电路采用单极性PWM控制方式。

假设功率开关为理想器件,且逆变电路输出的基波频率、LC滤波器的谐振频率与开关频率相比足够低,则逆变桥可以被简化为一个恒定增益的放大器。

图1所示电路的传递函数为:

(1)

将s=jω代入式(1),可得:

(2)

2.2 频域特性求解

通过监测有关电路状态信号时域波形,再对其进行傅里叶变换获得频域传递函数值。

设x(nTs)是状态信号x(t)的采样,Ts为采样间隔,采样数据长度为N。则离散傅里叶变换(discrete Fourier transform,DFT)算法如下:

(3)

利用基2时析型快速傅里叶变换(fastFouriertransform,FFT)来实现DFT。设N=2M,M为正整数,如果序列长度不满足2的整数次幂,可在序列后补零。基2时析型FFT将输入时间序列x(n)按奇偶对分的原则分割序列得到奇、偶数号序列,即令n=2r和n=2r+1,r=0,1,…,N/2-1,于是:

(4)

A(k),B(k)为N/2点DFT,它们各自又可分为N/4点DFT,如此继续分下去,直至两点DFT。FFT降低了运算要求,提高了运算速度。

3 改进飞蛾火焰优化算法

3.1 飞蛾火焰优化算法

飞蛾火焰优化算法(mothflameoptimization,MFO)是一种新型群体智能优化算法。它模拟飞蛾的定位机制,飞蛾环绕火焰螺旋飞行并最终收敛于火焰[16,17]。在MFO算法中,候选解是飞蛾,问题的变量是飞蛾在空间中的位置。用式(5)矩阵表示飞蛾种群规模为n、优化问题维度为d的飞蛾所处空间位置;并利用式(6)矩阵存储飞蛾个体相应的适应度值。

(5)

OM=[OM1OM2…OMn]T

(6)

算法中的另一个关键部分是火焰。其矩阵类似于飞蛾矩阵,用式(7)表示,并利用式(8)矩阵存储火焰的适应度值。

(7)

OF=[OF1OF2…OFn]T

(8)

MFO中,飞蛾和火焰都是候选解。它们之间的不同就是每一次迭代过程中更新的方式不同。飞蛾是在搜索空间里移动的实际搜索主体,而火焰是飞蛾到当前迭代所获取的最佳位置。

飞蛾相对于火焰更新位置的公式如下:

Mi=S(Mi,Fj)

(9)

式中:Mi为第i只飞蛾位置;Fj为第j个火焰位置;S为螺旋形函数如式(10)所示。

S(Mi,Fj)=Di·eb·t·cos(2π·t)+Fj

(10)

式中:Di为第i个飞蛾与第j个火焰之间的距离,表示为Di=|Fi-Mj|;b为螺旋线形状常数;t为[-1,1]之间的一个随机数。

为了避免飞蛾只朝一个火焰移动而导致算法陷入局部最优,每一次更新火焰列表后,火焰根据适应度值来排序,然后飞蛾相对于对应火焰更新位置,即第一只飞蛾相对于最优火焰更新位置,最后那些飞蛾则利用最差火焰更新位置。

为保证MFO算法获得较快的收敛速度,可以用式(11)在迭代过程中自适应地减少火焰的数量:

(11)

式中:l为当前迭代次数;N为最大火焰数量;T为最大迭代次数;{}表示四舍五入。

3.2 飞蛾火焰优化算法的改进

改进飞蛾火焰优化算法(improvedmoth-flameoptimization,IMFO)的细节如下:针对飞蛾火焰优化算法存在收敛速度慢的缺点,在飞蛾个体位置更新部分引入公式(12),使飞蛾向目前最优位置(即火焰位置)直线移动,加快了算法收敛速度,缩短了寻优时间。

(12)

(13)

式(13)表明只有个体更新后的位置有更好的适应度时,才能接受飞蛾位置的更新。

使飞蛾火焰优化算法与Levy飞行策略相结合,可以扩大算法的搜索范围,并且增加种群的多样性,使算法能够比较容易地跳出局部最优点。

Levy飞行是一种非高斯随机化过程,其随机步长来自Levy稳定分布,它的简化形式为:

L(s)~|s|-1-β

(14)

式中:β为[0,2]间的常数;s为随机步长。

引入Levy飞行的粒子位置更新公式为:

x(t+1)=x(t)+random(size(d)⊕Levy(β))

(15)

式中⊕代表内积运算。随机步长为:

s=random(size(d)⊕Levy(β))~

0.01μ(xi(t)-gbest(t))/|ν|1/β

(16)

式中:gbest(t)为当前最优解;u,v来自正态分布:

(17)

式中δμ,δν定义为:

(18)

其中Γ是标准Gamma函数。

改进飞蛾火焰优化算法主要步骤如下:

步骤1.初始化种群(飞蛾种群规模为n、维度为d),初始化参数(最大迭代次数T以及最大火焰数量N),令当前迭代次数l=0。

步骤2.确定适应度函数。

步骤3.计算飞蛾个体适应度值,找到并保存当前最好的飞蛾个体位置。判断是否满足终止条件,若满足则转至步骤7,否则执行步骤4。

步骤4.迭代循环开始。利用式(11)更新火焰数量;计算火焰与飞蛾间的距离,并利用式(10)更新飞蛾-火焰位置。

步骤5.利用式(12)改进飞蛾个体位置,若改进后的位置优于前次保留位置,则保留改进后的位置为飞蛾个体位置。

步骤6.计算飞蛾个体适应度值,利用式(5)与式(7)分别保存飞蛾与火焰空间位置。

步骤7.利用Levy飞行方法进行全局搜索,使用式(15)更新飞蛾位置。

步骤8.找到当前飞蛾个体最好空间位置,若当前位置优于前次保留位置,则保留当前火焰位置为最佳位置。判断是否满足迭代终止条件,若满足则转至步骤9,否则令l=l+1并转到步骤4。

步骤9.输出最终火焰所处的空间位置及所对应的适应度值,算法结束。

3.3 IMFO算法性能校验

为了验证IMFO算法的性能,将其应用到6个经典的标准优化问题上,测试函数如表1所示。

表1中,Schwefel 1.2和Rosenbrock是单峰函数。Rosenbrock函数的全局最优点位于一个光滑狭窄的抛物形山谷中,由于函数为优化算法提供的信息有限,很难确定搜索方向并找到最优解;Rastrigin函数是多峰值的函数,是一种典型的非线性多模态函数,峰形呈高低起伏不定跳跃性的出现,所以很难优化查找到全局最优值;Griewangk是典型的非线性多模态函数,具有广泛的搜索空间,通常被认为是优化算法很难处理的复杂多模态问题;Penalized是具有强烈震荡的非线性多值函数,有很多局部极值;Ackley函数具有多个峰值,且对应的横坐标均处于彼此的小范围邻域内。

表1 标准测试函数Tab.1 The condition of algorithms

为了验证IMFO的优化性能,将IMFO运行结果与PSO、GA、GWO和MFO算法优化结果进行比较。为了比较的公平,各种优化算法的相关参数设置相同:个体数目n=30,维数d=10,最大迭代次数T=200。PSO算法的参数设置为:局部学习因子c1=2.0,全局学习因子c2=2.0,权值w=1,粒子最大速度vmax=0.9,粒子最小速度vmin=0.4;GA算法的参数设置为:交叉概率pc=0.6,变异概率pm=0.2;MFO算法的参数设置为:最大火焰数量N=30,螺旋形状常数b=1;IMFO算法参数设置为:改进因子im=1.5,Levy飞行常数β=1.5。

仿真实验在Windows7系统上使用Matlab2012a进行。记录各优化算法对6个测试函数10次实验的测试结果,包括10次实验结果达到的最优值Tb,实验结果的平均值Tm和均方差Tsd,如表2所示。

从表2可以看出,对于Schwefel函数,IMFO每次都能找到全局最优解,优化精度达到10-15,优化精度比GA高10个数量级,比其它3种算法高14~15个数量级。对于Rosenbrock函数,虽然IMFO算法的优化精度没有达到理论上的最优,但与其它算法相比,其优化质量比GWO和PSO高1个数量级,比GA高约5个数量级。对于函数Rastrigin,IMFO每次都能找到全局最优解,优化精度达到10-14,其它算法陷入局部最优值。对于函数Ackley,IMFO 10次实验都可以收敛到理论最优,方差也为0,并且优化精度比其它算法高。对于Greiwangk函数,IMFO寻优结果和GWO均能找到理论最优解,且优化精度优于其它3种算法。对于Penalized函数,IMFO每次都能找到全局最优解,优化精度达到10-5,优化精度远高于其它算法。因此,对于6个测试函数,与其它算法相比,IMFO算法在寻找最优解方面具有较高的精度。

图2给出了5种算法对各基准函数的适应度收敛曲线。

图2 适应度收敛曲线Fig.2 The convergence curve of fitness

从图2可以看出,对于Schwefel,Rastrigin,Ackley,Greiwangk,其它4种算法陷入局部收敛,导致寻优精度不高,而IMFO不仅能够跳出局部最优,进行全局搜索,而且收敛速度也明显快于其它算法。对于Rosenbrock和Penalized,虽然IMFO的收敛速度与其他算法相差不多,但寻优精度还是优于其它算法。

综合以上分析可知,总体来说本文改进的飞蛾火焰算法显著改善了MFO算法容易过早收敛和收敛速度慢的缺陷。相比于MFO,PSO,GA,GWO算法,IMFO具有更好的局部开发和全局探索能力,更快的收敛速度和更高的寻优精度。

4 辨识实验及结果分析

逆变器参数辨识实验思路为:首先建立逆变器的频域传递函数模型;其次,监测实验电路输入输出电压信号,利用FFT分析得到传递函数值;在此基础上,把电路参数估计问题转化成优化问题,建立目标函数,利用改进飞蛾火焰优化算法求解。目标函数越小则表明个体越好,直到搜索到最优个体,获得元器件参数,从而实现逆变器参数的准确辨识。

4.1 实验平台

实验采用的单相逆变器样机如图3所示,主控芯片为STM32F103单片机。基波频率为50 Hz,开关频率为20 kHz。

表2 标准测试函数结果比较Tab.2 simulation results of four algorithm for benchmark function

图3 单相逆变电路实验平台Fig.3 The experimental platform

样机参数如表3所示。

表3 逆变器样机参数Tab.3 The Parameters of Prototype

通过RS485通讯模块将电路电压信号采集到电脑;再利用FFT方法获取输入电压Ui和输出电压Uo的幅频图,从而获得传递函数幅值。电路正常时,Ui,Uo的频域特性分别如图4与图5所示。

图4 输入端电压FFT频谱图Fig.4 FFT spectrum of the input voltage

图5 输出端电压FFT频谱Fig.5 FFT spectrum of the output voltage

可以看出,频谱分量主要集中在基波频率50 Hz及其整数倍处,且在50 Hz时最大。

4.2 适应度函数

选择50~500 Hz之间50 Hz的整数倍频作为适应度评估的频率点。将待辨识的参数带入式(2)中计算出传递函数幅值Hcal如式(19)所示:

(19)

将Hcal与实际测量的传递函数值Hmea(由FFT得到)之间的误差作为适应度函数,适应度函数如式(20)所示:

(20)

式(20)中每个个体的位置向量x代表逆变器模型的3个待辨识参数。个体适应度值越小,辨识的参数值越接近实际值,辨识越精确。

4.3 不同算法的辨识结果比较

为了体现IMFO对电路参数的辨识效果,同时利用PSO,MFO对逆变器模型进行参数辨识。

IMFO优化算法参数辨识步骤:

步骤1.初始化算法参数及飞蛾种群位置;

步骤2.根据式(20)计算所有飞蛾初始适应度;

步骤3.用式(11)更新火焰数量;

步骤4.对每个飞蛾个体,找出当前迭代所获取的最佳位置,保存为火焰位置;

步骤5.并用式(10)更新飞蛾位置与适应度;

步骤6.用式(13)和(15)改进飞蛾位置与适应度,若改进后的飞蛾位置优于未改进的,则保留改进后的位置为飞蛾个体位置;

步骤7.判断是否满足迭代终止条件,若满足则结束算法,输出最优值,否则,转到步骤2。

具体参数设置如下:电容C,电感L,电阻R的变化范围分别为8.8~9.4 μF,4.4~5.2 mH,3~7 Ω。算法中共用的参数设置为:个体数目n=30,最大迭代次数T=200。PSO算法的参数设置为:局部学习因子c1=2.0,全局学习因子c2=2.0,权值w=1,粒子最大速度vmax=0.9,粒子最小速度vmin=0.4;MFO算法的参数设置为:最大火焰数量N=30,螺旋形状常数b=1;IMFO算法参数设置为:改进因子im=1.5,Levy飞行常数β=1.5。将以上3种算法分别应用于逆变器参数辨识,得到的参数辨识结果如图6。

由图6中的各参数辨识曲线可知:IMFO算法的收敛结果为C=9.4 μF,L=4.817 mH,L=5.017 Ω;MFO算法的收敛结果为C=9.4 μF,L=4.678 mH,R=4.877 Ω;PSO算法收敛结果为C=9.268 μF,L=4.887 mH,R=5.090 Ω。比较各算法的辨识值可知,IMFO辨识曲线能快速收敛到稳态值,辨识精度最高,接近给定值;同时,收敛速度也快于MFO和PSO算法。改进飞蛾火焰算法在飞蛾位置更新中引入Levy飞行,增加了算法的随机性和模糊性,进而增加了种群之间的多样性,既改善了局部搜索,又改善了全局搜索,算法具有快速收敛和高精度辨识特性。

表4给出了运行10次参数辨识实验得到的辨识最优值的平均值Tm,与实际值的相对误差Tre,均方差Tsd和平均收敛时间trun。

由表4可看出:3种算法中,采用IMFO算法辨识得到的每个参数的相对误差Tre都是最小的,所以其辨识精度最高;均方差Tsd也都最小,表明数据平稳性也最好,没有大的波动;平均收敛时间trun也是最小的,表明搜索的速度最快。

图6 单相逆变器多参数辨识结果Fig.6 Multi parameter identification results of single-phase inverter

表4 单相逆变器的参数辨识结果Tab.4 The parameter identification result of Singer-phase inverter

4.4 器件参数变化下的逆变器参数辨识

对电解电容器、电感、负载电阻,及所有器件参数发生变化这4种典型情况分别进行实验。利用改进飞蛾火焰优化算法进行电路参数辨识,结果见表5。

表5 电路器件参数辨识结果Tab.5 The parameter identification results of circuit component

由表5可知,利用本文方法对电路元器件参数进行辨识,在不同元器件参数变化情况下,电容,电感和电阻辨识结果的误差都较小,且辨识结果均方差都在5%之内。可认为本文方法能很好地辨识出单相逆变器参数的变化,可用于监测逆变器的运行状态,进而可应用于逆变器的参数型故障诊断。

5 结 论

针对飞蛾火焰算法存在的收敛速度慢、易早熟等不足,提出一种改进飞蛾火焰算法。改进飞蛾火焰优化算法在个体更新部分引入Levy飞行和直线寻优。通过对标准测试函数的寻优可以看出,改进的飞蛾火焰算法显著改善了MFO算法容易过早收敛和收敛速度慢的缺陷。相比于MFO,PSO,GA,GWO算法,IMFO具有更好的局部开发和全局探索能力,更快的收敛速度和更高的收敛精度。通过逆变器模型参数辨识实验可以看出,改进飞蛾火焰算法能有效快速地识别出电感、电容及负载电阻参数,进而可应用到电力电子电路参数型故障诊断中。

猜你喜欢
飞蛾适应度火焰
改进的自适应复制、交叉和突变遗传算法
最亮的火焰
可爱的你
Trolls World Tour魔发精灵2
缤纷的火焰
飞蛾说
漂在水上的火焰
一种基于改进适应度的多机器人协作策略
吹不灭的火焰
勇敢的小飞蛾