APP下载

基于贝叶斯粒子群算法的控制权重矩阵优化

2020-07-16金莹

机械制造与自动化 2020年3期
关键词:性能指标极值贝叶斯

金莹

(咸阳职业技术学院,陕西 咸阳 712000)

0 引言

在现实工程中,线性二次型控制器是以线性系统目标函数和输入二次型函数为研究对象,调节状态反馈控制器使二次型性能指标函数达到最优,而目前许多文献提出的优化算法需多次调整才能得到较满意的结果,这极大地影响其应用的有效性。粒子群(PSO) 算法是一种进化算法,利用适应度评价解的品质,通过搜索最优值确定全局最优解,具有收敛快速,模型简单,计算量少等特点,引起了学界的广泛关注[1-3]。本文将利用贝叶斯粒子群算法求解二次型控制参数,确定加权矩阵。

1 基于贝叶斯网络的粒子群算法设计

由于传统的粒子群算法在优化过程中容易陷入局部最优解,无法直接用其进行权重矩阵优化。考虑到贝叶斯算法能够对粒子群个体进行预处理的能力,本文在传统粒子群算法中加入了贝叶斯思想。

1.1 粒子群(PSO)算法

传统的PSO算法是将要研究的对象初始化为随机粒子后,在每一次迭代中,通过跟踪个体和全局极值点更新速度和位置。设第k个粒子信息为D维向量,位置为Xk,速度为Vk,其他向量类似。传统的粒子群算法速度和位置见式(1)-式(2)。

v(t+1)=v(t)+c1×rand()×(pbestk-Xk)+c2×rand()×(gbestk-Xk)

(1)

Xk+1=Xk+Vk+1

(2)

其中:c1、c2为学习因子,调节向全局最好粒子和个体最好粒子方向飞行的最大步长。因此,在粒子群优化算法中c1、c2直接影响粒子群的搜索速度和精度。合适的c1、c2可加快算法的收敛速度,避免局部最优。根据文献,一般取c1=c2=2;rand()是[0,1]之间的随机数;pbestk和gbestk分别为粒子在第k次迭代中个体极值点和全局最优极值点的位置。

粒子的每一维速度v都会被集中在vmin、vmax之间,以防止粒子远离搜索空间。若vmax太大,粒子偏离最优解,vmin太小,将会陷入局部最优。同样假设将搜索空间中粒子位置定义为区间[vmin,vmax],每一维都用相同的设置方法[4]。由于传统粒子群算法容易陷入局部最优解,而贝叶斯网络可以对研究对象进行先验描述,它是一种不确定性推理方法,广泛用于表达和分析不确定性和概率性的领域,可以从不完全、不精确或不确定的知识或信息中做出推理,其网络结构数据学习困难的问题一直制约着贝叶斯网络理论的运用。为了提高粒子群算法的收敛速度和降低其他粒子的影响[5-8],本文利用贝叶斯网络对粒子进行了预处理,将粒子群根据相互影响强度进行初步分类,对粒子向量进行了先验概率描述,使得粒子在移动的过程中具有自我调节与判断能力。

1.2 基于贝叶斯网络的粒子群算法

假设有K为粒子总体向量,K=[G1,G2,…,Gk],粒子总体向量K对应的先验概率向量为Q,Q=[q1,q2,…,qk], 各总体的密度函数向量为F=[f1(x),f2(x),…,fk(x)],对于某个粒子x来讲,它的后验概率可以用式(3)描述:

(3)

并且当

(4)

时,则粒子x来自第h个子群体。

为了进一步提高粒子群体的所属概率,本文在将错判损失最小的概念作判决函数,把粒子x错判归第h个子群体的平均损失定义为:

(5)

其中L(h)称为损失函数。它表示本来是第g子群体的样品粒子错判为第h子群体粒子的损失。显然式(3)是对损失函数依概率加权平均的。

当h=g时,有L(h︱g)=0;当h≠g时,有L(h︱g)>0,建立判别准则为:

(6)

为了使贝叶斯网络粒子群中的粒子个体在优化的过程中能够快速收敛,在短时间内到达自己的最优位置,本文基于贝叶斯算法对参加优化的粒子进行预处理,并对粒子移动速度与方向的损失函数依概率加权平均,给予粒子移动方向性,使其能够快速地逼近理想位置。

本文粒子群算法的更新就是在传统粒子群算法的基础上加入了惯性因子ωi,则根据式(1),粒子的更新速度可以重写为:

Vk+1=wiVk+c1rand1×(pbestk-Xk)+c2rand2×(gbestk-Xk)

(7)

则改写以后的粒子群算法的优化过程如下:

Step 1:粒子群参数的初始化。

定义c1、c2为学习因子,ωi为惯性因子,gen为最大迭代次数,pop为种群的大小,初始粒子的位置及其速度,每个粒子的pbest值为当前位置。

Step 2:利用贝叶斯网络对粒子进行预处理。

Step 3:对粒子群中每一个粒子的进行评价。

通过式(1)、式(2)来计算群中各粒子的位置,通过速度极值来计算各粒子的适应度值。

Step 4:个体最优pbest和全局最优gbest值的求解。

粒子的适应度值优于当前个体极值时,将pbest设置为该粒子的位置,更新个体极值。个体极值最优值优于当前全局极值时,将gbest设置为该粒子的位置,记录该粒子的序号,更新全局极值。

Step 5:判断是否符合结束条件。

若满足最优化条件,则停止迭代,输出最优解。否则更新粒子。

Step 6:粒子的更新。

对每一个粒子的速度和位置进行更新时选用式(2)和式(7),然后转入Step 4进行新一轮迭代。贝叶斯粒子群优化流程如图1所示。

图1 贝叶斯网络与基本BNPSO流程示意图

2 线性二次型控制问题

设有线性定常系统的动态方程为:

(8)

式中:n维状态向量是x(t);r维控制向量为u(t);m维输出向量为y(t);A(t)、B(t)、C(t)分别为时变矩阵。那么兼顾系统响应、控制输入、末态精度三方面的要求可得到如下性能指标函数:

(9)

e(t)=yl(t)-y(t)

其中:Q(t)为状态偏差矩阵;R(t)为控制能量矩阵;F为末态偏差的加权矩阵;e为误差,e(t)是误差向量。根据系统的实际要求确定各控制加权阵。事实上,控制加权阵在很大程度上靠经验和试探,具体方法如下:

1) 控制末值项

φ[e(tf)]=eτ(tf)Fe(tf)

(10)

控制结束后,对系统末尾态≥跟踪误差的要求一般用二次型性能指标中的末值项表示。假设

F=diag{f1,f2,…,fl}≥0

(11)

表示对末态跟踪误差有不同的要求,则式(10)可以进一步表示为

(12)

若不限制末态跟踪误差,则可取F=0,此时性能指标J变为积分型。

2) 第一过程项

(13)

表示在系统控制过程中,对动态跟踪误差的要求。若取

Q(t)=diag{q1(t),q2(t),…,ql(t)}≥0

(14)

则有

(15)

于是,式(12)可以表示为

(16)

系统在运动过程中动态跟踪误差的总度量一般是指对动态跟踪误差加权平方和的积分要求。

3) 第二过程项

(17)

表示对控制所消耗能量的要求,若取

R(t)=diag{r1(t),r2(t),…,rm(t)}>0

(18)

则有

(19)

于是,式(16)可以表示为

(20)

是对系统加权后的控制能量消耗的总度量。

据此可知,二次型性能指标式(8)的物理意义是:使系统在控制过程中的动态误差与能量消耗以及控制结束时的系统稳态误差综合最优。则二次型控制问题可以表述为求一控制u(t),使系统自初态的运动,导致二次型性能指标为最小。

(21)

其中:Q(t)、R(t)分别指一致非负定对称阵和一致正定对称阵;F是非负定对称常数矩阵;末态时间tf是固定的。式(21)的最优控制的充分必要条件为:

u*(t)=-R-1(t)Bτ(t)P(t)x*(t)

(22)

式中是相应的最优轨线。P(t)是式(23)黎卡提矩阵微分方程的解:

P(t)B(t)R-1(t)Bτ(t)P(t)-Q(t)

P(tf)=F

(23)

对于线性定常系统,终端时刻tf大于系统过渡时间tp时,P(t)保持为常值。由黎卡提方程解的性质可知,黎卡提微分方程退化为黎卡提代数方程

PA+AτP-PBR-1BτP+Q=0

(24)

便能得到使性能指标达极小值的充分必要条件为:

u*(t)=-Kx*(t)

(25)

K=-R-1BτP

3 基于贝叶斯粒子群的控制矩阵优化仿真

3.1 方案设计

粒子群算法的关键是目标函数,依据最优控制,确定目标函数为J。对目标函数进行累加,得到在7s时间的累加值,即二次型目标函数值。输入状态偏差和控制能量可得优化函数,取信号为初值为0,终值为1,在t=1s时刻产生阶跃的阶跃信号,采样时间为0.0001s。

必须保证Q为半正定,R为正定的,并对Q矩阵和R矩阵的元素有一定的限制。通过手动粗调,确定Q、R各元的区间范围,Q(1,1)范围为[700,1700],Q(2,2)为[500,4500],Q(3,3)为[1,50],Q(4,4)为[1,5],R为[20,50]。粒子的速度一般限制在[-1,1]之间。首先要确定好种群数目大小pop,学习因子c1和c2,再更新代数gen。c1=c2=2,gen=100,pop=25的前提下对粒子群算法编程。图2为贝叶斯粒子群算法优化矩阵流程图。

图2 贝叶斯粒子群算法优化矩阵流程图

实验结果证明,w随算法迭代而线性减小,改善算法的收敛性。设Wmax为最大值,Wmin为最小值,t为当前迭代次数,gen为最大迭代次数;设Wmax=0.9,Wmin=0.35。随机产生1个种群,计算个体对应的目标函数值,得出pbest和gbest,然后对粒子更新得到新的种群,分别计算粒子目标函数值。

3.2 仿真结果

粒子群算法可简化Q阵和R阵的求解过程,得出满足性能指标的反馈增益矩阵。仿真结果如图3-图4所示。

图3 贝叶斯粒子群算法性能指标变化图

图4 贝叶斯粒子群优化权重矩阵优化跟踪曲线对比图

贝叶斯粒子群算法在优化之前对粒子进行了预处理,能够使得粒子在短时间内达到最优速度和移动方向。通过图3可以观察到,经过40次的迭代,粒子的移动速度与方向已经达到了稳定状态,这个也就预示着对控制权重矩阵的优化达到了最优状态。

由图4可以看到,通过贝叶斯粒子群方法能够对控制权重矩阵进行优化,贝叶斯粒子群方法能够逼近期望曲线的变化,而且误差均在μm量级之内。因此,贝叶斯粒子群算法能够优化控制权重矩阵和增益矩阵K,提高系统的稳定性,超调小、响应速度快,优化前后的跟踪位置及控制输入基本一致。

4 结语

本文通过在传统粒子群算法中引入了贝叶斯思想,对粒子群寻优初始阶段进行了预处理,使得粒子能够按照最优的速度与方向移动,避免了传统粒子群算法中陷入最优解的弊端,并将该方法运用到控制权重矩阵的优化中,通过实验仿真验证了贝叶斯粒子群算法的有效性。实验证明:贝叶斯粒子群算法在控制权重矩阵的优化过程中能够满足性能指标要求,响应速度快,超调量小。

猜你喜欢

性能指标极值贝叶斯
极值点带你去“漂移”
沥青胶结料基本高温性能指标相关性研究
极值点偏移拦路,三法可取
一类“极值点偏移”问题的解法与反思
贝叶斯公式及其应用
储热水箱分层性能指标的研究进展
基于贝叶斯估计的轨道占用识别方法
WebGIS关键性能指标测试技术研究
一种基于贝叶斯压缩感知的说话人识别方法
匹配数为1的极值2-均衡4-部4-图的结构