基于个体位置变异粒子群算法的主蒸汽压力系统参数辨识

2019-08-05 01:24邹媛青韦根原
仪器仪表用户 2019年9期
关键词:适应度变异种群

邹媛青,韦根原

(华北电力大学 自动化系,河北 保定 071003)

对于火电机组而言,主蒸汽压力作为表征机炉能量供求关系的重要参数,直接关系到机组设备的安全运行。在影响主蒸汽压力的众多因素中,燃料量是最主要的影响因素。

鉴于标准粒子群算法存在收敛速度慢、容易陷入局部最优等缺点,本文引入个体位置变异的方法对其进行了改进,并应用于火电厂主蒸汽压力系统,进行传递函数参数的辨识。算例仿真验证了改进算法在辨识精度和运行时间方面的效果。

1 基于个体位置变异的粒子群算法

1.1 标准粒子群算法

在粒子群算法(Particle Swarm Optimization,简称PSO)中,求解参数的数目决定了搜索空间的维度,优化问题的每个潜在解都可以被看成是空间中一个无质量无体积的点,称之为“粒子”,种群中的每个粒子都有自身的位置、搜索的速度以及被目标函数所衡量的适应度值[1],适应度值用来评价粒子的好坏。所有的粒子都以一定速度在解空间内搜索,搜索的速度会根据自身的经验和群体的经验动态调整。

算法中,个体最优值Pi,是每个粒子在自身运动过程中,适应度值最佳的位置;种群最优值Pg,是群体里面所有的粒子在运动过程中,适应度值最佳的位置[2]。每次迭代搜索时,粒子都追踪这两个极值来更新自己。

假设优化问题待求解的参数有D 个,则解空间就是一个D 维的搜索空间,算法开始时,首先在解空间中产生一个由n 个粒子组成的粒子种群X=(X1,X2,…,Xn),设第i个粒子的速度记为Vi=(vi1,vi2,…,viD)T,它的个体最优值记为Pi=(pi1,pi2,…,piD)T,整个种群的最优值记为Pg=(pg1,pg2,…,pgD)T,粒子在搜索空间里所处的位置为Xi=(xi1,xi2,…,xiD)T,代表着这个问题的某个解[2]。由目标函数,可以计算出每个粒子所对应的适应度值,粒子们在解空间中不停地迭代搜索,不断更新自己的位置搜索出新的解,直到满足终止条件时停止。在每次迭代时,每个粒子更新自己速度和位置的公式如下[2]:

其中,ω为惯性权重;d=1,2,…,D;i=1,2,…,n;k为当前迭代次数;vidk为粒子的速度;c1和c2是非负的常数,分别称为个体学习因子和种群学习因子;r1和r2是分布于[0,1]区间的随机数。

1.2 算法的改进

为了克服标准粒子群算法可能会陷入局部最优的这个缺点,文献[3]的作者将变异操作与标准粒子群算法相结合,提出了一种基于变异策略的粒子群算法(Mutation Particle Swarm Optimization,简称MPSO)。其核心是在原来的粒子更新个体位置方式的基础上,加入了一种新的方式,当粒子逼近历史最优粒子,聚集严重时,让满足变异条件的粒子变异[3]。

算法采用的变异操作如下[3]:

式(4)中,c 表示变异因子,(bi-ai)表示第i 个粒子的取值范围。

算法采用的变异率计算公式为[3]:

式(5)中,Pm表示粒子的变异率;Pm,max表示最大变异率,Pm,min表示最小变异率;k 表示当前迭代次数;N 表示最大迭代次数。

改进后,算法运行的步骤如下[4]:

第一步:初始化粒子种群。

第二步:计算种群中每个粒子的变异率。

第三步:计算种群中每个粒子的适应度值,更新个体最优值,更新种群最优值。

第四步:按照制定的规则更新粒子的变异率。

第五步:根据式(5)计算变异率大小,让满足变异条件的粒子变异。若变异率大于随机数,则粒子的速度不变,粒子的位置按式(4)和式(3)的方式去更新;若变异率不大于随机数,粒子的速度和位置仍按式(1)和式(2)的方式去更新。

第六步:判断是否满足迭代终止的条件,不满足则返回到第三步继续往下执行,满足则迭代终止。

由以上步骤可知,在基于个体位置变异的粒子群算法里,粒子是否按照变异条件进行变异,取决于变异率的大小。

文献[4]的作者在文献[3]中线性化变异方法的基础上,考虑粒子群算法在搜索过程中存在的非线性与复杂性,提出了一种非线性化的变异方法。其变异率计算公式为[4]:

本文参考了文献[4]中的变异方法,将式(6)进行改进,得到一种新的非线性化变异方法。改进后的变异率计算公式如下:

式(7)中,M 为正常数,可以根据非线性化程度的要求自行设置。

设定最大变异率Pm,max=0.6,最小变异率Pm,min=0.3,最大迭代次数N=100,取M=1000,将上述两种变异方法的变异率曲线加以对比,结果如图1所示。其中,曲线A 表示文献[4]中作者使用的式(6)的变异率曲线,曲线B 表示本文新提出的式(7)的变异率曲线。

由图1 可知,曲线A 和曲线B,变异率都是随着迭代次数增大呈非线性减小,但曲线B 在迭代前期变异率下降得更快,在迭代的后期变异率下降得更平缓。结合粒子群算法的搜索特点,曲线B 的变异操作更能节省搜索时间,也更符合实际的搜索要求。

用上文的式(7)替换掉文献[3]中所使用的变异率计算公式(5),就得到一种新的基于个体位置变异的粒子群算法(MPSO2)。

图1 变异率曲线Fig.1 Mutation rate curve

2 基于个体位置变异的粒子群算法应用于主蒸汽压力系统传递函数辨识

2.1 主蒸汽压力系统的传递函数模型

现有某超超临界燃煤机组的燃料量——主蒸汽压力数据序列[5],记原始数据的输入输出序列分别为u、y,原始数据显示如图2 所示。

根据经验,超超临界机组的燃料量——主蒸汽压力的关系可用高阶等容带纯迟延模型表示[5]。故假设待辨识的传递函数为:

2.2 目标函数

设辨识得到的输出序列为y1,考虑到原始输出序列y的数值很小,为便于评价辨识精度,将目标函数设置为辨识误差平方的累积值乘以一个较大的常数值。

本次辨识的目标函数设置如下:

式(9)中,Tmax表示程序结束运行的时间。

2.3 参数设置

本文的辨识实验,对照算法是标准粒子群算法(PSO),验证的算法是本文新提出的基于个体位置变异的粒子群算法(MPSO2)。两种算法的参数设置如下:

粒子种群中粒子数目为100;算法运行最大迭代次数N=100;变异率计算公式(7)中,取最大变异率Pm,max=0.6,最小变异率Pm,min=0.3,常数M=1000;惯性权重ω=0.729;个体学习因子取c1=1.49445,种群学习因子取c2=1.49445;最小适应度值取MinFit=3.15×10-5;数据采样时间取Ts=10s;待辨识参数共4 个,分别是K、T、n、τ;参数K 的范围为[0.01,0.1],其速度范围为[-0.0001,0.0001];参数T 的范围为[50,150],其速度范围为[-5,5];参数n 的范围为[2,4],其速度范围为[-1,1];参数τ 的范围为[20,80],其速度范围为[-4,4]。

图2 待辨识模型的输入输出曲线图Fig.2 Input and output graph of the model to be identified

表1 标准粒子群算法的辨识结果Table1 Identification results of PSO

2.4 辨识结果

考虑到两种算法均含有随机操作,每次的结果会有差异,将两种算法各运行10 次,把辨识结果分别列于表1 和表2 中,表格中,Q 表示辨识的目标值,time 表示程序的运行时间。

对比表1 和表2 可以看出,跟标准粒子群算法相比,新提出的基于个体位置变异的粒子群算法性能突出,具有更低的辨识误差和更短的运行时间。究其原因,主要是新提出的改进算法在寻优过程中对粒子的个体位置进行了变异:初始阶段,变异率非线性下降的速度很快,随着迭代次数的增加,变异率下降的速度变得平缓;在搜索的前期,变异率较大,增加了种群的多样性,能更好地进行全局寻优;在搜索的后期,变异率逐渐减小,有利于粒子逐步收敛,搜索到全局最优。

表2 基于个体位置变异的粒子群算法的辨识结果Table2 Identification results of MPSO2

3 结论

本文提出了一种新的变异率计算方法,将其应用到个体位置变异思想中,得到了一种新的基于个体位置变异的粒子群算法,通过变异率曲线的对比和算例辨识实验,证明了该算法的有效性。结论如下:

改进后的算法在执行过程中,随着迭代搜索次数的增加,粒子的变异率呈幂函数形式下降,粒子能自动地根据变异率大小,选择合适的方式,更新其个体位置。变异率曲线显示,跟文献[4]中的变异率计算方法相比,本文的方法更具非线性,更符合实际。

改进后的算法原理简单、易于实现、程序量小。算例辨识结果表明,跟标准粒子群算法相比,改进后的算法辨识误差明显降低,运行时间明显缩短。

综上所述,本文改进的基于个体位置变异的粒子群算法是切实可行的,能有效提高搜索速度和缩短运行时间,具有较强的实用性。

猜你喜欢
适应度变异种群
改进的自适应复制、交叉和突变遗传算法
山西省发现刺五加种群分布
基于双种群CSO算法重构的含DG配网故障恢复
变异危机
变异
中华蜂种群急剧萎缩的生态人类学探讨
一种基于改进适应度的多机器人协作策略
基于空调导风板成型工艺的Kriging模型适应度研究
变异的蚊子
自适应遗传算法的改进与应用*