改进PSO优化

2024-06-20

改进PSO优化(共7篇)

改进PSO优化 篇1

1 粒子群优化算法

1.1 基本粒子群优化算法

在PSO中, 每个优化问题的潜在解对应着D维空间上的一个点, 称之为“粒子”。所有的粒子都有一个被目标函数决定的适应值, 自己发现的最好位置 pbest, 当前位置和整个群体中最好位置gbest (gbest是pbest中最好值) 。每个粒子用下列信息调整自己的当前位置:①当前位置;②当前速度;③当前位置与pbest之间的距离;④当前位置与gbest之间的距离。

数学描述为:设搜索空间为D维, 总粒子数为n, 第i个粒子位置表示为向量xi = ( xi1, xi2, …, xiD) , 第i个粒子迄今为止搜索到的最优位置为pbesti = ( Pi1, Pi2, …, PiD) , 整个粒子群迄今为止搜索到的最优位置为gbest = ( Pg1, Pg2, …, PgD ) , 第i个粒子的位置变化率 (速度) 为向量vi = ( vi1, vi2, …, viD ) 。粒子的每维速度和位置按如下公式进行变化:

undefined

其中, c1, c2为非负常数, 称为加速因子, c1调节粒子飞向自身最好位置方向的步长, c2调节粒子向全局最好位置飞行的步长;r1, r2为[0, 1]之间的随机数。粒子群初始位置和速度随机产生, 然后按式 (1) , 式 (2) 进行迭代, 直至找到满意的解。

1.2 标准粒子群优化算法

1.2.1 惯性权重 (inertia weight)

Eberhart和Yuhui Shi在基本粒子群优化算法模型中引入了惯性权重系数ω, 以实现对微粒飞行速度的有效控制与调整。则式 (1) 改变为:

undefined

由 (3) 、 (2) 式组成的迭代算法就是标准PSO算法。典型取值ωint = 0.9, ωend = 0.4。

1.2.2 收缩因子 (constriction factor)

1999年Clerc对算法的数学研究证明, 采用收缩因子x能够确保算法的收敛。收缩因子模型如下所示, 通常取φ为4.1 (c1=c2=2.05) , 从而使收缩因子x等于0.729。

undefined

1.3 算法的收敛性分析

PSO算法的收敛性与参数的设置有关, 主要是参数ω, c1和c2。为简化公式的推导, 给出标准粒子群算法的简化模型, 假设搜索空间为1维空间, 即D为1。

undefined

定义φ1=c1*r1, φ2=c2*r2, φ=φ1+φ1, 并对上式进行整理可得:vi (t+1) =ω*vi (t) +φ1*Pi (t) +φ2*Pg (t) -φ*xi (t) (9)

undefined

这是二阶常系数非齐次差分方程, 故A的特征方程为式 (12) 。

undefined

其特征值为λ1和λ2, 其中△= (ω+1-φ) 2 - 4ω。

undefined

(1) 当△= (ω + 1 - φ) 2-4ω=0, 则λ=λ1=λ2, 此时式 (10) 可以写为:xi (t) = (k0+k1*t) *λt (14)

其中:

undefined

(2) 当△= (ω+1-φ) 2-4ω>0, 则λ1和λ2为实数;

(3) 当△= (ω+1-φ) 2-4ω<0, 则λ1和λ2为复数。此时式 (10) 可以写为:xi (t) =k0+k1*λundefined+k2*λundefined (15)

其中:

undefined

由式 (14) 和 (15) 得到, 当t→∞ 时, vi (t) 有极限, 趋向于极值点, v、-i (t) 迭代收敛。由此若要求上述三种情况vi (t) 收敛, 其充要条件为:||λ1||<1且||λ2||<1。根据上述收敛条件, 可以得到标准粒子群优化算法的收敛区域为:ω<1, φ1+φ1>0, 2ω-φ1-φ1+2>0。

该收敛区域即是粒子群优化算法的参数选择范围。参数的选取是影响算法性能和效率的关键, 算法收敛性的分析提供了选取参数的依据。

2 带交叉因子的改进PSO算法

粒子群优化算法在实际应用过程中, 发现粒子群优化算法也有随机搜索算法比较普遍的缺点:其一是粒子群优化算法容易陷入到局部极值点中, 导致得不到全局最优解。其二是粒子群优化算法的收敛速度比较慢。

2.1 PSO优化算法的改进

PSO优化算法易陷入早熟是由于丧失了种群多样性, 致使群体中的大部分个体聚集在一个很小的范围内, 种群这时候已经失去了大范围搜索的能力。跳出局部最优解, 避免早熟的方法就是增大或控制种群多样性, 使种群多样性不致丧失过快或始终保持一定的多样性水平, 这样就保证了种群中个体能够分布在一个较大的范围, 以利于算法的全局搜索。

针对上述问题, 本文在基本PSO算法的基础上基于遗传算法原理, 引入了带交叉因子的改进PSO优化算法。带交叉因子的改进PSO算法的基本思想是: (1) 确定粒子群中粒子的一个杂交概率, 在每次迭代中, 根据杂交概率选取一定数量的粒子放入杂交池中, 杂交池中的粒子随机地两两杂交, 产生同样数量的孩子粒子, 并用孩子粒子取代父母粒子, 以保持种群粒子数目不变。孩子粒子的位置由父母粒子的位置加权计算得出。 (2) 在迭代过程中, 根据函数适应值的大小, 粒子之间两两杂交, 在算法的运行过程中引入新的粒子, 测试所有粒子与当前最优解的距离, 当距离小于一定的阀值时, 对种群中一定比例的粒子进行随机初始化, 让这些粒子重新寻找最优值, 增大种群多样性。

带交叉因子的改进粒子群优化算法的基本流程如下:

步骤1 依照初始化过程, 对粒子群中粒子的随机位置和速度进行初始设定, 每个粒子的pbest设置为当前的位置, gbest为当前群体的最优值。

步骤2 计算每个粒子的适应值。将其适应值同粒子所经历的最好位置pbesti的适应值和全局所经历的最好位置gbesti的适应值进行比较, 若较好, 则更新pbest和gbest。

歩骤3 根据公式 (1) 、 (2) 更新种群中每个粒子的速度和位置。

步骤4 对种群中适应值较好的一部分粒子保留直接进入下一代, 另一部分粒子根据交叉变异策略进行遗传算法的交叉和变异操作, 产生同样数目的子代, 计算子代的适应值, 并与父代的适应值进行比较, 将适应值好的那部分同样数目的粒子进入下一代。

步骤5 根据是否达到最大迭代次数或达到最好的适应值, 判断迭代终止条件。如果达到, 转入步骤6;否则, 转入步骤2。

步骤6 输出全局最优解gbest, 算法结束。

2.2 算法的性能测试

为了验证带交叉因子的改进粒子群优化算法的优化效果, 下面通过4个经典的测试函数对本算法进行测试, 同时将改进粒子群优化算法 (PSOGA) 和标准的PSO进行了比较。

F1: Sphere’s function

undefined

F2: Griewank’s function

undefined

F3: Rastrigin’s function

undefined

F4: Ackley’s function

undefined

本次测试设置的主要参数如下:种群个数N为50, 空间维数D为6, ω=0.7298, c1=c2=1.4962。考虑到算法的随机因素, 本次测试对每个函数测试50次, 取测试结果的平均值进行比较, 结果如表1所示。

图1-图4分别是4中测试函数的粒子适应值曲线图。从表1中可以清楚的看出, 随这算法迭代次数的增加, 标准PSO优化算法收敛速度快, 但易陷入早熟;而带交叉因子的改进PSO优化算法不仅收敛快, 而且在PSO算法陷入早熟时, 通过交叉变异操作, PSO算法能跳出局部最优范围, 并收敛与全局最优。提高了PSO算法的全局搜索能力。

3 结束语

本文从理论上分析了粒子群优化算法的收敛性, 并针对标准PSO优化算法容易陷入早熟, 收敛于局部最优解的问题, 提出了带交叉因子的改进PSO优化算法, 通过对几个典型测试函数的测试表明, 改进的PSO优化算法在加快收敛速度和提高收敛精度方面效果明显, 能够有效地避免早熟收敛, 搜索到全局最优解, 是一种有效的改进算法。

参考文献

[1]J.Kennedy, R.C.Eberhart, Y.Shi, SwarmIntelligence.San Francis-co:Morgan Kaufmann, 2001.

[2] E.Bonabeau, M.Dorigo, and G.Theraulaz, “Swarm intelligence:from natural to artificial systems, ” Oxford University Press, 1999.

[3]J.Kennedy, “i mproving particle swarmperformance withcluster anal-ysis”Proceedings of theIEEE Congress on Evolutionary Computation (CEC) , San Diego, CA, 2000, 1507-1512.

[4] D.Thierens and D.Goldberg, “Mixing in genetic algorithms” in Fifth International Conference on Genetic Algorithms, 1993.

[5] Shi Y, Eberhart R C.A modified particle swarm optimizer.IEEE World Congress on Computational Intelligence.Anchorage:IEEE, 1998. 69-73.

[6] Shi Y, Eberhart R C.Fuzzy Adaptive Particle Swarm Optimization.Proceedings of the IEEE Conference on Evolutionary Computation, Soul:IEEE, 2001, 101-106.

[7]Higashi N, Iba H.Particle swarmopti mization with Gaussian muta-tion.In:Proc.of the IEEE SwarmIntelligence Symp.Indianapolis:IEEEInc, 2003.72-79.

[8]Clerc M, Kennedy J.The particle swarm-explosion, stability, and con-vergencein a multidi mensional complex space.IEEE Trans.Evolu-tionary Computation, 2002, 6 (1) :58-73.

[9]J.Kennedy, “The Particle Swarm:Social Adaption of Knowledge, ”Proc.Proceedings of theIEEEInternational Conference on Evolution-ary Computation, April1997.

[10] J.Riget and J.S.Vesterstroem, ”A Diversity Guided particle Swarm Optimiser-the ARPSO, ” Dept.of Computer Science, University of Aarhus, Tech.Rep.No.2002-02 EVALife. 2002.

改进PSO优化 篇2

但经典粒子群算法在求解无功优化问题时候, 常存在收敛精度不高、易陷入局部最优等问题, 针对这些缺点, 本文提出一种改进的小生境粒子群优化算法:借助于问题的局部极值点信息, 对原目标函数进行“拉伸”变换, 达到优化计算、缩小目标函数的极值范围和降低搜索难度的目的。最后, 针对IEEE-6节点标准测试系统进行了无功优化计算的仿真结果表明, 所提算法不仅收敛速度更快, 且具备更强的全局搜索能力。

1 无功优化的数学模型

1.1 目标函数

配电网无功优化的目标函数是多种多样的, 除最小网损外, 有最小运行费用、电压水平最好、控制量的变化量最小、多目标整体最优等, 在综合考虑目标函数和约束条件, 本文以网损最小为目标, 以节点电压质量为罚函数, 制定目标函数:

式中, λ1λ2分别为违反电压约束和发电机无功出力约束的惩罚因子;p分别为违反节点电压约束和违反发电机无功出力约束的节点集合;VtmaxVtmin分别为节点电压Vt的上限和下限;QtmaxQtmin则分别为发电机节点的无功出力的上限和下限。

1.2 约束条件

因为配电网无功优化是以数学规划作为基本模式的, 所以在约束处理能力上是很强的。大量的研究几乎涉及到可行性和安全性方面的所有约束。无功优化的约束条件有等式约束和不等式约束两类。

1) 等式约束:功率平衡方程:g (x1, x2) =0

2) 不等式约束:

2 标准粒子群 (PSO)

PSO的数学表述为:假设在一个N维的解搜索空间中, PSO初始化为一群随机粒子, 由m个粒子组成一个群, 其中第i个粒子在N维搜索空间中的位置表示为一个N维的向量, xi= (xi1, xi2, L, xi N) i=1, 2, …, m, 每个粒子的位置代表被优化问题在搜索空间中的一个潜在解。选取待优化问题的目标函数, 近而粒子i有一个由被优化的函数决定的适应度值, 将代入到目标函数就可以计算出适应度值, 根据该值的大小即可衡量的优劣。对于最小化问题, 目标函数值越小的粒子其特性越优。每个粒子还有速度决定它们飞翔的方向和距离, 其中第i个粒子的“飞翔”速度表示为, Vi= (Vi1, Vi2, L, Vi N) i=1, 2, …, m, 各速度矢量和初始解群一样是在一定范围内随机生成的。记第i个粒子迄今为止搜索到的最优位置为xpi= (xpi1, xpi2, L, xpi N) , 该位置适应度值为Pbesti, 称为个体极值, 整个粒子群迄今为止搜索到的最优位置为xgi= (xgi1, xgi2, L, xgi N) , 该位置适应度值为Gbesti, 称为全局极值。各粒子跟据如下公式进行迭代操作, 从而更新自己的速度和位置:

其中c1c2是学习因子, 通常取在每一维, 粒子都有一个最大限制速度Vmax。应将vi限制在[-Vmax, Vmax]之间。

3 小生境算法及其改进的小生境粒子群

3.1 小生境算法

小生境算法的基本概念定义如下:具有某些相同飞行特征的微粒个体集合称为种群, 种群搜索的空间是解空间的一个子空间, 称为种群小生境。体现种群集体飞行有别于其他种群的位置或速度分量称为种群飞行特征, 简称为种群特征, 它是个体微粒所属种群小生境的唯一标识。在此基础上进行种群小生境划分。设种群小生境Pj的个体微粒Xi表示为Xi={pj, xi, 1, …, xi, l}, 其中pj表示特定种群小生境的位置特征分量, xi, l表示个体在种群小生境中的自由位置分量。显然, pj对于的不同定义, 对应于一系列不相交的种群小生境, 所有这些种群小生境的并集构成了完整的解空间。

3.2 改进的小生境粒子群

3.2.1“Stre tching”技术函数

“Stretching”技术是借助于问题的局部极值点信息, 对原目标函数进行“拉伸”变换, 达到优化计算、不断缩小目标函数的极值范围和降低搜索难度的目的。这种变换是由Vrahatis在1996年提出来的。具体变化公式定义如下:

上述两种变换公式中, x'是目标函数的局部极值点, γ1γ2和μ是三个任意的正数常量, sign () 为常见的符号函数:

也可以使用人工神经中常用的线型激励函数Sigmoid函数来近似计算:

在算法探测到某一局部极值点x'之后, 对原目标函数f (x) 进行两次变换。公式定义了第一次变换, 使得比目标函数值大的区域中目标函数的形态变得平缓, 且其中所包含的部分极值也由此变为非极值, 这就意味着从搜索空间剔除掉了函数值高于f (x') 的部分极值。公式定义了第二次变换, 将局部极值点及其领域范围内的点整体向上拉伸, 可以进一步缩小后续的搜索空间。

3.2.2 子群体解散机制

在子群体中使用小生境粒子群算法, 当子群体中粒子的最好适应度值在连续N次的粒子飞翔过程中一直保持不变, 可以认为子群体已经找到了一个候选极值点。此时, 对子群体采用解散机制, 标记这个已经找到的极值点, 把该子群体中的粒子重新初始化并回归到主群体中。对子群体解散过程中标记的每一个极值点, 主群体的目标函数f (x) 需要按照。公式执行stretching变换, 从而在主群体中不断缩小搜索空间。

4 仿真试验与分析

为了检验本文给出的求解无功优化的改进粒子群算法的有效性, 本文对IEEE-6节点标准测试系统分别应用标准粒子群和改进的小生境粒子群进行优化计算, 试验结果分别列于图4.1和图4.2中。

通过试验仿真可知, 两种优化算法所得的系统前后网损比较可以看出:基于改进的小生境粒子群算法优化后, 系统电压值得到了大幅的提高, 且均在电压限值以内, 可以看出电压水平得到了很好的优化调整。改进的粒子群算法在计算精度上优于PSO, 能够获得更好的优化结果, 可见所提算法具有更强的全局搜索能力, 能更有效摆脱局部最优解, 在一定程度上避免了常规粒子群算法容易出现“早熟”现象。此外, 小生境粒子群算法提高了计算的速度。在计算迭代次数上, 小生境粒子群算法明显低于一般粒子群算法, 能以更快的收敛速度获得更优的解。因此, 应用所提算法可以很好的解决无功优化问题。

5 结论

提出的一种改进PSO优化算法, 借助于问题的局部极值点信息, 对原目标函数进行“拉伸”变换, 达到优化计算、缩小目标函数的极值范围和降低搜索难度的目的。与传统PSO优化算法相比, 具有更快的收敛速度, 且优化性能更好的特点, 可以有效地避免过早陷入局部最优, 大大提高优化算法的计算效率, 可以有效地应用于电力系统无功优化问题的求解中。

摘要:无功优化的目的在于确定系统中无功的合理配置, 针对传统粒子群算法的不足, 提出一种改进的小生境粒子群优化算法:借助于问题的局部极值点信息, 对原目标函数进行“拉伸”变换, 达到优化计算、缩小目标函数极值范围和降低搜索难度的目的。针对IEEE-6节点标准系统进行了仿真结果表明, 所提算法不仅收敛速度更快, 且具备更强的全局搜索能力。

关键词:电力系统,无功优化,粒子群优化,小生境

参考文献

[1]闻朝中, 李智.粒子群算法在配电网络无功补偿优化中的应用.武汉工业学院学报, 2004.

[2]袁晓辉, 王乘, 张勇传, 袁艳斌.粒子群优化算法在电力系统中的应用.电网技术, 2004.

[3]李丽英, 周庆捷, 杨少坤.电力系统自动化问题研究综述.电力情报, 2002.

改进PSO优化 篇3

随着我国经济健康快速发展, 对电能的需求迅速增长, 电网规模日益扩大, 变压器是电力系统中重要的电力转换设备之一, 承担着电压变换、电能分配的任务, 变压器的安全可靠运行对整个电网的安全起着至关重要的作用。但由于变压器长期运行, 故障和事故不可能完全避免, 因此变压器故障诊断以及预测具有重大意义。大型变压器一般是油浸式, 油中溶解气体分析技术 (DGA) 对油浸变压器故障诊断应用非常广泛, 并且往往能准确、可靠地发现逐步发展的潜伏性故障, 防止由此引起重大事故。氢气、甲烷、乙烷、乙炔、乙烯、一氧化碳、二氧化碳是变压器油中溶解气体色谱分析的重要组分, 故障类型通常分为热故障和电故障, 热故障又可以分为高温过热、中温过热、低温过热, 电故障分为局部放电、电弧放电、火花放电。通过气体的含量来判断故障的类型是一个模式识别的过程[1], 神经网络具有良好的非线性映射能力, 但由于神经网络的收敛速度缓慢, 容易陷入局部最小点等局限性, 有时甚至不能收敛, 因此故障诊断准确率并不高。

粒子群算法是一种新型的群智能优化算法, 具有优越的全局搜索能力, 可以发挥粒子群算法的全局搜索能力优化BP神经网络的权值和阈值, 充分发挥两种算法各自优点。采用H2、CH4、C2H4、C2H6、C2H2五种气体作为神经网络的输入, 故障的类型归并为高温过热、中低温过热、高能放电、低能放电, 用100组实际数据进行仿真调试, 并调整优化各个参数, 建立准确、高效的故障诊断模型[2]。

1 PSO算法及改进

1.1 PSO简介

PSO算法是对鸟群觅食行为的研究得出, 每只鸟就是PSO中的粒子, 也是需要求解问题的可能解, 这些鸟在觅食过程中, 通过个体之间的合作和群体信息共享不停改变自己在空中飞行的位置与速度来寻找食物。通过对鸟群觅食行为特征的抽象, PSO随机初始化为一群粒子, 假设在D维的搜索空间中, n个粒子组成的种群表示为X= (X1, X2, …, Xn) , 第i个粒子在D维空间中的位置表示成向量:Xi= (X1, X2, …, Xd) T, 也是求解问题的潜在解;第i个粒子的速度表示为向量Vi= (V1, V2, …, Vd) T, 速度决定粒子在搜索空间内每一次迭代产生的位移。PSO算法便在解空间中初始化一群粒子, 用粒子的位置、速度和适应度值来表示每个粒子的特征, 适应度值由适应度函数来确定, 适应度值的好坏反映了粒子的优劣。粒子在解空间中运动, 粒子位置的更新根据个体极值 (pbest) 和群体极值 (gbest) 来决定, pbest是粒子本身所找到的最优解, gbest是种群中所有粒子找到的最优解。粒子每更新一次都会计算一次适应度值, 比较两次适应度值的大小来确定更新pbest和gbest的位置。粒子速度和位置更新公式如下:

说明:在式 (1) 、式 (2) 中, i=1, 2, …, M,

M是种群粒子总数;

Vi是粒子运动速度;

ω为非负数, 惯性权重或惯性因子;

pbest和gbest是个体极值和群体极值;

rand () 是 (0, 1) 之间的随机数;

Xi是粒子当前位置;

C1和C2是学习因子也称为加速因子;

公式 (1) 的第一部分包含了上次速度大小和方向对下次粒子运动的影响;第二部分是从当前位置到粒子自身搜索到的最好位置向量, 蕴含粒子运动过程中自身的经验;第三部分是从当前位置到种群最佳位置的向量, 反映了粒子间信息交互, 粒子通过自身和群体中最好的经验决定下一步运动。粒子还有一个最大限制速度Vmax ( Vmax>0) , 保证了粒子运动速度不会超过某个设定的范围。Vmax是当前点与最好点之间的运动步长 (或精度) 。如果Vmax太大, 粒子可能越过极小点, 如果Vmax过小, 则粒子不能在搜索空间进行充分搜索, 甚至会陷入到局部极小值。

1.2 PSO算法改进

1.2.1 惯性权重

惯性权重ω是上一次速度对本次影响大小的描述, ω使粒子具有扩展搜索空间的能力。如果ω=0, 粒子速度只取决于个体当前位置和种群中的最好位置, 粒子本身没有继承以前搜索的良好经验, 如果这个粒子处在全局最优位置, 它将保持在这个位置不动, 其他粒子向着自身搜索到的最佳位置和全局最佳位置的加权中心运动, 这样反复迭代粒子最终聚集到当前全局最好位置;如果ω≠0, 粒子便可以扩展搜索空间, ω可以兼顾全局和局部搜索能力的平衡。ω大全局搜索能力较强, ω小局部搜索能力凸显。

为了满足搜索过程中开始搜索时希望在全局充分搜索, 防止陷入局部最小点, 随着搜索过程的进行, 全局搜索基本达到要求, 局部搜索能力便可加强, 有利于进行精确的局部搜索, 这样速度减小过程平稳, 保证全局搜索的全面性, 后期局部搜索的精确化。因此ω的变化基本上是一个由大变小的过程。

ωmax是最大惯性权重;ωmin是最小惯性权重;t是当前的迭代次数;T是最大迭代次数;ωmax一般取0.9, ωmin一般取0.4。

1.2.2 学习因子

学习因子C1、C2表征了粒子自身经验与群体经验在其运动过程中所起的作用。如果C1较小, 粒子缺乏自身经验, 只有社会经验, 收敛速度变快, 面对复杂问题容易陷入局部最优点。如果C2较小, 粒子缺少群体间的信息共享, 每个粒子只是依靠自身的经验来搜索, 因而得到最优解的机率非常小。因此, 学习因子C1和C2大小反映将每个粒子推向pbest和gbest位置的权值, 通常C1=C2=2可以取得比较好的效果, 但是动态调整参数可以优化算法性能[3]。PSO算法希望前期粒子的认知能力更强一些, 所有粒子充分发挥自身搜索能力, 避免开始时社会的群体认知过大, 使大部分粒子都向着某个方向移动, 不能充分挖掘出全局最优值。这样C1由大变小, C2由小变大的相对趋势, 能充分发挥粒子自身搜索能力, 又能兼顾所有粒子的群体认知。

C1, C2动态调整式子为:

参数设置为Cmax=2.6, Cmin=0.6, t是当前的迭代次数;T是最大迭代次数。

1.2.3 变异思想

PSO算法收敛速度快, 通用性强, 但粒子在搜索过程中不断地向自身搜索的最优位置或者群体的最优位置不断移动聚集, 容易陷入局部极值、早熟收敛、后期迭代效率不高等缺点。为了在一定程度上缓解这个不足之处, 借鉴遗传算法中的变异思想, 每次迭代都以一定的概率重新初始化某些变量, 保证一定的变异率, 使粒子跳出先前搜索到的最优位置区域, 扩展不断缩小的搜索空间, 保证种群的多样性, 提高算法寻找到最优值的能力。

MATLAB代码如下:

2 BP神经网络及改进

2.1 BP神经网络算法

神经网络通常由输入层、隐含层、输出层构成, BP网络是多层前馈神经网络, 能存贮大量的输入-输出之间的映射关系, 可以实现从输入到输出的任意非线性映射, 它采用最速下降学习规则, 通过误差反向传播来不断调整网络的权值和阈值, 最终使网络的误差平方和最小。因此, 其主要特点就是信号的正向传播和误差的反向传播, 前向传递是样本从输入层输入, 经过隐含层传至输出层, 若网络训练的实际输出与期望输出误差值太大, 就进行误差反向传播。误差反向传播是把预测的误差通过隐含层向输入层逐层反向传播, 每一层根据误差信号修正权值和阈值, 从而使BP神经网络的预测输出与期望输出步步逼近。通过信号正向传播和误差反向传播, 权值和阈值周而复始、不断调整, 一直持续到网络的输出误差减小到设定的误差范围或学习次数为止。拓扑结构如图1所示。

2.2 BP神经网络改进

神经网络的训练对学习速率大小变化非常敏感, 学习速率决定着循环训练过程中网络权值的变化量, 标准的BP神经网络学习速率是固定不变的, 网络学习过程中容易产生震荡, 在训练后期收敛缓慢, 为了改善固定学习速率的不足, 能在训练过程中迅速跳出局部最小点并达到全局最小点, 采取学习速率由大变小的方法, 开始使网络权值以较大的变化跳过局部最小点, 然后以比较平稳的学习速率达到全局最优点, 而且整个训练过程能够平稳的进行, 后期保持网络的稳定[4]。改进的BP神经网络算法避免由于固定学习速率在开始收敛缓慢, 后期相对过大的学习速率产生震荡的弊端, 得到更加准确的输出值, 在一定程度上也缩短网络学习时间。BP算法经过反复迭代可以使权值收敛到某个值, 但并不能保证误差为全局最小值, 因为采用梯度下降法可能产生局部最小值, 可以采用附加动量法来解决这个问题。

3 改进PSO优化BP神经网络

标准BP神经网络初始权值和阈值都是随机产生的, PSO算法是通过不断地更新粒子的位置和速度, 使得粒子的适应度值越来越小 (或大) , 收敛速度快、全局搜索能力强, 用来优化BP神经网络可以弥补BP神经网络的不足。将BP网络的权值和阈值用PSO中粒子的位置来代替, BP网络输出的误差均方值用粒子的适应度值来表示, 可以得出比随机方法产生权值和阈值更好的初始值, 实现BP网络的优化。

根据国际电工委员会 (IEC) 的推荐, 选用H2、CH4、C2H6、C2H4、C2H2作为输入, 高能放电、低能放电、高温过热、中低温过热作为输出, 因此BP神经网络输入层节点个数L=5, 输出层神经元个数N=4。隐含层神经元个数为M, 隐含层神经元个数的确定没有确定的理论计算, 只有经验公式 (L为输入层神经元个数, N输出层神经元个数, a是[0, 10]之间的常数) 估计神经元的大体范围, 经过经验公式计算隐含层个数大体在4-14之间, 如果隐含层节点数过少, 神经网络难以建立合适的映射关系, 网络不能做出较好的预测;如果隐含层节点数太多, 网络学习时间变长, 甚至出现“过学习”现象[5]。具体个数的确定通过实验的方法来确定, 程序中可以从4~14个神经元做循环训练测试, 经过多次比较平均误差大小, 确定隐含层神经元个数。

训练样本中蕴含着网络要提取的规律, 因此样本要有代表性, 不仅使每个类别的样本数大体相等, 同一类样本也要保持多样性, 使网络训练时“见多识广”, 增强泛化能力。样本的输入要将不同类别的样本交叉输入, 或是从样本中随机输入, 同类的样本大量集中输入会使网络只建立与其匹配的映射关系, 当输入另一类样本时, 权值又根据新样本进行大幅调整而否定前面的训练结果, 容易引起网络震荡, 延长训练时间[6]。输入的数据如果差别比较大, 或是单位不一致等要进行归一化处理, 由于不同故障气体含量在数值上差别比较大, 因此对输入数据进行归一化处理。

PSO优化BP神经网络, 要建立二者之间的关系, 建立粒子维度和网络权值和阈值的对应关系, 粒子的维数等于神经网络权值和阈值数。对于结构为L-M-N的3层网络, 网络权值个数为L×M+M×N个, 阈值个数为M+N个, 因此粒子维数L×M+M×N+M+N。粒子群的适应度函数fitness是神经网络的误差均方值。通过粒子群的全局搜索, 使全局误差达到最小值。评价粒子的好坏主要看粒子的适应度值, 在粒子群优化神经网络中, 粒子的适应度值就是网络输出的误差均方值, 因此粒子的适应度值越小越好。

PSO-BP适应度函数为:

其中, 分别为样本的理想输出值和实际输出, n为网络输出层个数, l为输入样本个数。

将优化后的全局最优位置向量赋值给BP神经网络权值和阈值, 对于结构为L-M-N的三层网络, 一般将前L×M个值映射到输入层到隐含层之间的权值, 将第L×M+1到L×M+M个值作为隐含层的阈值, 第L×M+M+1到L×M+M+M×N个值映射到隐含层到输出层之间的权值, 剩下的作为输出层的阈值。

4 网络训练和故障诊断

4.1 参数设置与调试

故障种类编码, 如[1 0 0 0]代表高温过热, 其他故障类型依次编码;神经网络的传递函数个数有限, 可以分别组合不同的传递函数, 通过实验比较得出误差最小的组合;学习算法采traingdx, 实现学习速率可变;构建5-M-4的神经网络结构, 通过循环测试求出从4~14个隐含层神经元个数时的均方误差, 比较得出误差最小时的隐含层数目, 经实验分析当隐含层神经元为10时误差最小, 所以M=10。

粒子群大小N表示每一代粒子群中所含粒子的数目, 最佳粒子群规模要根据具体问题确定。N较小, PSO的运算速度较快, 种群的多样性变差, 容易引起过早收敛;N取值过大, 运行时间过长寻优效率降低, 粒子群对种群规模N不是很敏感, N设为60;

粒子维数由上述方法得D=104;迭代次数的确定要综合考虑种群个体的长度、寻找最优解的速度和运行时间等因素, 根据实验 (如图3所示) 确定最大迭代次数为120时适应度值基本不再减小;最大速度设置为Vmax=0.8, 如果Vmax较小, 则搜索速度较慢, 粒子较容易陷入局部最优值, 若Vmax较大, 则粒子每次移动的距离就较大, 容易跳过全局最优解;惯性权重ω和学习因子C按上述公式 (3) 、式 (4) 、式 (5) 分别调整[7]。

4.2 部分主要MATLAB代码

%样本的随机输入

4.3 结果分析

用100组实际数据对网络进行训练, 另外20组数据作为测试样本, 根据确定好的神经网络结构, 分别用单一BP神经网络、未改进的PSO-BP和改进的PSO-BP在MATLAB上进行仿真实验, 对预测结果进行比较。三种方法的网络训练误差如图2所示, PSO-BP和改进PSO-BP适应度值和迭代次数关系如图3所示。

标准BP神经网络 (如图2 (a) 所示) 开始误差下降很快, 训练到接近20次已基本达到稳定, 但是训练终止始终要到最大训练次数才停止, 在后期的训练当中误差基本不再减小, 梯度下降的方法不能很好的达到要求, 故障识别准确率也并不高。优化之后的两种方法 (如图2 (b) 、 (c) 所示) 分别在93和59次收敛, 并且误差比单一BP神经网络小很多, 后两种方法随着训练次数增加误差一直趋于减小的过程中, 表明经过优化的BP神经网络改变了标准BP神经网络只能在开始阶段随梯度下降的缺点。PSO-BP和改进PSO-BP相比, 改进后的方法误差更小, 误差下降曲线较平滑, 没有剧烈震荡产生, 迭代次数也变少, 训练时间更短, 网络性能有所提高。

由图3可以看出两种方法的适应度曲线下降情况, 虽然PSO-BP的适应度值迅速减小, 但是在后期基本趋于平缓状态, 减小甚微;改进的PSO-BP基本一直处于减小状态, 说明粒子一直在搜索, 且适应度值比未改进的PSO-BP的更小, 即误差更小, 表明经过几个参数的动态变化有效的提高了PSO-BP方法的整体性能。

3种方法的诊断结果如表1所示, 可以看出PSO-BP算法比单一的BP神经网络误差更小、正确率更高, 相比之下改进后的PSO-BP又比PSO-BP正确率有所提高, 性能更佳。

综合图表中的数据, 改进PSO-BP算法在迭代次数、平均误差、诊断准确率等方面表现更优异, 在变压器故障诊断中有重要应用价值。

5 结束语

PSO-BP神经网络通过对惯性权重、学习因子、学习速率等参数的优化, 避免了传统的PSO和BP算法的不足之处, 结合两种算法的优点, 更快更准确的找到最优值, 实现可靠的分类功能, 用于变压器的故障诊断, 相比单一的BP神经网络算法在性能和准确率上都有了很大提高, 但是运用智能算法进行实际的故障划分对一些处于临界值具有模糊性情况下的数据并不能起到很好的划分作用, 但是能起到故障预警的作用, 故此方法在实际工程中仍有很大的研究意义和应用价值。

摘要:变压器故障诊断是非线性模式识别过程, 单一的BP (Back Propagation) 神经网络收敛速度慢、容易陷入局部最小值, 提出用改进粒子群算法 (Particle Swarm Optimization, 缩写为PSO) 进行优化。使神经网络的学习速率动态减小, 保证前期充分搜索, 后期网络稳定;动态调整PSO的惯性权重和学习因子适应不同阶段的搜索要求, 同时引入变异思想, 重新初始化某些变量跳出局部最小值。绝缘油中5种特征气体为判断依据, 划分高能放电、低能放电、高温过热、中低温过热四种故障, 运用新改进的算法建立故障诊断模型, 100多个样本进行实际故障诊断, 准确率达到83%以上。结果表明, 改进PSO-BP更加准确、可靠。

关键词:变压器,故障诊断,BP神经网络,粒子群算法

参考文献

[1]操敦奎.变压器油中气体分析诊断与故障检查[M].北京:中国电力出版社, 2005.

[2]回敬, 律方成.将具有可信度的BP神经网络应用于变压器故障诊断[J].电力科学与工程, 2010, 26 (2) :9-13.

[3]梁昔明, 董淑华, 等.动态惯性权重和维变异的粒子群优化算法[J].计算机工程与应用, 2011, 47 (5) :29-31.

[4]史峰, 王小川, 郁磊, 等.MATLAB神经网络30个案例分析[M].北京:北京航空航天大学出版社2010.

[5]项文强, 张华, 等.基于L-M算法的BP网络在变压器故障诊断中的应用[J].电力系统保护与控制, 2011, 39 (8) :100-103

[6]Du wenxia, Ju xiyuan, Lu feng.Transformer fault diagnosis based on fuzzy clustering algorithm[J].Transformer, 2009, 46, 8:65-69. (in Chinese) .

改进PSO优化 篇4

很多研究者对作动器的位置优化进行了研究[1,2,3,4],目前已有研究采用了模拟退火算法[5,6]、遗传算法[7,8]和蚁群算法[9,10],采用粒子群(particle swarm optimization,PSO)方法的研究报道还属少数.PSO是一类基于群的随机智能优化算法,它具有简单易行、计算效率高、收敛速度快、并行性强、通用性高等特点,多个学科的研究结果表明,PSO的计算效率优于其它随机类算法[11,12,13,14].

本文对基本PSO算法进行了改进,以系统总能量为优化性能指标,进行了结构作动器的位置优化计算;并应用此改进方法和模拟退火等优化方法对一算例结构进行了仿真对比;结果表明:几种优化方法计算结果相符;且改进后的PSO优化算法能更有效地快速解决复杂优化问题,从而有效地进行结构的振动控制.

1 传感器/作动器配置问题建模

某空间结构由n根刚度较大的径向骨架、反射面和牵引面索网,及调节绳索组成.结构共由三种单元组成,其中刚性骨架及主动部件均采用线性梁单元模拟,主动部件结构为在调节绳索中局部采用压电主动杆的形式,传感器与作动器采取对位配置.反射面和牵引面采用三维薄膜单元,索网和调节绳索均采用索单元模拟,则系统的动力学方程最终可写为

其中,F为作用于结构的节点力向量,B为控制器作用矩阵,U为控制输入矩阵,M,K和C分别为结构质量矩阵、刚度矩阵和阻尼矩阵.

若控制输入矩阵U采用线性负速度反馈,由于传感器/作动器采用对位配置,所以系统的观测速度v和控制输入为

其中,G为非负定常增益矩阵.将式(3)代入式(1)中,可得闭环的系统方程为

通过以上方程可以看出,作动器的位置优化问题,最终可以归结为:求取满足某一性能指标时,最优的控制器作用矩阵B的问题.

2 优化性能指标

将系统的闭环方程(4)变换到状态空间[15],得

其中状态变量

系统的总体能量可以写为

其中Q为权矩阵,t0为初始时刻.

与控制器作用矩阵B直接相关的系统总体能量为结构阻尼和主动控制所产生的主动阻尼所吸收,若作动器的作用位置使主动阻尼所消耗的能量最大,则系统总体能量最小,所以优化性能指标可以选取为系统的总体能量,即

具体进行优化时,将所有待配置作动器的位置一一进行编号,这些编号的所有组合就组成一个解的集合J,则约束条件为:作用矩阵B中的非零元素所在的列号均包含在集合J内.

3 改进的粒子群优化(PSO)算法

PSO算法是一种新兴的、基于群体的搜索优化算法,起源于对鸟群飞行的仿真研究.PSO问题中的每个可行解都是搜索空间中的一个点,称为粒子.根据每个粒子对环境的适应度,可评价对应可行解的优劣,并逐渐将群体中的个体移动到最优区域.粒子具有位置和速度两种属性.在搜索空间中,粒子以一定的速度飞行,并根据它自身的飞行经验和同伴的飞行经验来动态调整速度.

3.1 基本PSO算法描述

PSO算法初始时,首先确定粒子种群的规模,初始化一群随机粒子,并随机初始化每个粒子的位置和速度,然后通过迭代找寻最优解.在每次迭代中,粒子通过跟踪两个“极值”来更新自己:第一个就是粒子本身所找到的最优解,叫做个体极值;另一个极值是整个粒子群中所有粒子在历代搜索过程中所达到的最优解,称为全局极值点.然后粒子种群进行演变,演变进行到一定次数就会得到搜索空间中的全局最优解.

假定搜索空间的维数为D,粒子种群的规模为S,则基本PSO算法中第i个粒子的位置矢量,即问题的一个潜在解xi,和速度vi分别表示为

式中,i=1,2,…,S;d=1,2,…,D;c1和c2是加速因子,r1和r2是服从[0,1]上均匀分布的随机数;pid为第i个粒子迄今为止搜索到的个体极值;gd则为整个粒子群迄今为止搜索到的全局最优解;a为约束因子;ω为惯性因子,既可以取为常数,也可以取为下列动态的表达方式

其中,ωmax,ωmin分别为ω的最大值和最小值;I,Imax分别为当前迭代步数和最大迭代步数.

迭代时将xi代入优化性能指标就可算出其适应值,根据适应值f(xi)的大小来衡量xi的优劣.当达到设定的最大迭代步数或最小适应值时,则整个迭代过程终止.

3.2 改进的PSO算法描述

在式(8)和(9)所描述的基本PSO算法中,粒子i的飞行速度只取决于当前位置xi(t),粒子i的历史最好位置pi和粒子群的历史最好位置g.一些文献中提出,基本PSO算法收敛很快,只在其参数在某些范围内时才可保证全局收敛,容易陷入局部最优解,所以很多研究针对上述基本PSO算法进行了各种改进.本文提出的改进PSO算法将式(8)改写为

其中,Rid为当前步的粒子随机任意位置,其不与该粒子的任何历史位置重合;c3是用来衡量当前速度与Rid相关性的相关因子,若c3取的较大,则粒子将在较大的范围内搜索,反之亦然;r3亦是服从[0,1]上均匀分布的随机数.若粒子i与历史最优解gd重合,则其在下一步时放慢搜索速度,即

其中常数0

其中常数a2>0,即令其反向搜索.

改进后的PSO算法式(11),由于附加了第4项,引入了随机速度.随机速度项的引入,使粒子除了向个体极值和全局极值飞行外,还能向其他飞行盲区移动,其飞行盲区的范围取决于c3的大小.这就使得粒子在搜索时不会过早收敛,而陷入局部最优.其次当粒子i与历史最优解gd重合时,采用了速度式(12),这样使得总有一个粒子在当前全局极值附近放慢速度搜索,不会由于整体飞行速度过快而飞过最优解.采用速度式(13)可以使得飞出边界的粒子重新调整速度,反向飞行.

4 算例

考虑某空间结构,其有限元模型见图1.分别对各可配置作动器节点位置进行编号,并建立编号与节点号的联系,则作动器可布置在所有已编号的位置.分别采用改进的PSO算法、基本PSO算法、模拟退火法(SA)和枚举法,应用之前介绍的优化性能指标,对该模型的振动控制问题中的作动器配置进行了优化计算.各优化算法均为在54个编号中选出3个编号配置作动器,并使得优化性能指标极小.

经过计算,4种算法得到了一致的优化位置编号:16,18,52.由于枚举法将问题的所有可能解一一列举,得到的结果肯定是正确的,所以4种算法的优化结果均正确,但是枚举法做了很多的无用功,效率极为低下,且随着问题的复杂性增加,其将不再适用.如针对本例中的问题,枚举法需进行次计算;当问题增加至配置6个作动器时,则需计算次,此时的计算耗费资源之大是非常惊人的,而PSO算法则只需要增加很小的计算代价,就能得到理想的计算结果.图2和图3分别给出了SA算法和两种PSO算法在寻优过程中优化性能指标的变化曲线.

从中可以看出:在达到相同正确优化结果时,SA算法的迭代步数为150步左右,基本PSO则算法为60步,是SA算法的一半;而改进的PSO算法不到30步就达到了最优结果,效率提高了50%.图4为配置6个作动器时,基本PSO和改进PSO算法优化指标变化趋势的对比,可以看出当问题更加复杂时,改进PSO算法的更具优势,比基本PSO算法提前200步即达到收敛值.

利用上述优化后3个作动器的情况,对图1给出的结构进行了振动控制,并与未优化时,任意位置配置3个作动器情况进行对比,16号点的结果见图5,其他两点效果与图5近似,由于篇幅限制,没有给出.可以看出位置优化后的控制效果要明显优于未优化的控制效果.

(6个作动器情况)

5 结论

本文针对空间结构振动控制中的作动器位置优化问题,以系统能量为目标,应用改进的PSO算法进行了研究,得出以下结论:

(1)文中提出的改进的PSO方法引入了随机位置对速度的影响,拓宽了粒子的搜索范围,可以有效地避免搜索过早收敛而陷入局部最优;且保证了每次迭代都至少有一个粒子放慢速度,在当前全局最优解附近搜索,避免了因粒子速度过快等原因导致搜索跳过全局最优解;

(2)针对算例结构应用改进的PSO算法得到了与基本PSO算法、枚举法和模拟退火法相同的优化结果;且改进的PSO算法可以更快速准确的给出问题的全局最优解;

(3)当解的维数D较大时,即作动器数目较多时,改进的PSO算法在计算量和计算结果上,都明显优于其他优化算法.

摘要:针对空间结构振动主动控制中的作动器位置优化问题,提出了一种改进的粒子群(PSO)优化方法,以系统总能量为性能指标进行优化;应用改进PSO方法对算例结构进行了计算,并与其他算法的优化结果进行了对比;结果表明:几种优化方法计算结果相符;且PSO优化算法能更有效快速地解决复杂优化问题,从而有效地进行结构的振动控制.

改进PSO优化 篇5

在过程控制领域中, 自适应控制技术得到了飞速发展, 一种新的预测控制算法———广义预测控制 (GPC) 应运而生。该算法将自适应控制与预测控制相结合, 具有适用于随机系统、在线辨识以及滚动优化策略、对模型要求低等优点, 在自校正控制方法中已被公认为最接近具有鲁棒性的算法。但广义预测控制的被控对象常常会受到时变、非线性的干扰, 同时还会受到外部复杂环境因素的影响, 因此在实际运用中, 导致参数的精确度不高, 同时大量的在线计算影响了系统的收敛速度, 这些问题在很大程度上限制了GPC在工业中的应用与发展。粒子群优化算法 (PSO) 是由Kennedy和Eberhart共同提出的一种原理简单、便于操作, 对目标函数以及约束条件不要求可微的新型群体智能优化算法, 同时在求解全局最优解时能以较大概率迅速求得, 目前已得到工业过程控制领域的高度重视, 并被广泛应用于多种优化问题中。

本文在广义预测控制 (GPC) 的滚动寻优部分加入了改进的PSO算法, 有效地改善了被控对象在约束广义预测控制中求解方法复杂、计算量大以及很难获得最优预测控制输入等问题。最后, 通过Matlab仿真证明将GPC与改进PSO算法的优点相融合, 提高了整个系统的求解精度和收敛速度。

1 GPC基本算法

1.1 预测模型

通常GPC采用受控自回归积分滑动平均模型 (CARIMA) [1,2]作为预测模型:

式中:

差分因子Δ=1-z-1;y (k) 、u (k) 、ε (k) 分别表示输出、输入和均值为零的白噪声序列, 如果系统时滞大于零, B (z-1) 多项式开头的一项或几项系数等于零。为了方便分析, 取C (z-1) =1。

1.2 滚动优化

为了提高系统的鲁棒性, 在目标函数中考虑了当前时刻的控制u (k) 对系统未来时刻的影响, 将下式作为目标函数:

式中, n表示最大预测长度, 通常应大于B (z-1) 的阶数;m表示控制长度 (m≤n) ;λ (j) 是大于零的控制加权系数。为方便起见, 取λ (j) =λ (常数) 。

进行柔化控制是为了跟踪参考轨线, 而不是为了使输出直接跟踪给定值。

参考轨线由式 (3) 产生, 其中yr、y (k) 和w (k) 分别为设定值、输出和参考轨线;α为柔化系数, 0<α<1。

1.3 输出预测

为了能预测出超前j步输出, 引入丢番图方程:

可知Gj (z-1) 的前j项正是系统单位阶跃响应g0, g1, …的前j项。

故有:

因此广义预测模型为;

式中:

根据式 (6) , 可得系统最优输出的预测值为:

式中:

1.4 最优控制律

若令:

则式 (2) 可表示为:

用Y的最优预测值代替Y, 即将式 (7) 代入式 (8) 。并令, 可得ΔU= (GTG+λI) -1GT (W-f) 。

在实际操作中, 每次只是把第一个分量加入系统, 即:

式中, GT为 (GTG+λI) -1GT的第一行。

2 粒子群算法的概述

粒子群优化算法 (PSO) [4,5]来自于对鸟类捕食原理的研究。与同类进化算法不同, PSO算法具有原理简单、便于操作、收敛速度快、通用性强等优点。PSO算法是将每个个体都定义成无质量、无体积的粒子, 并以一定的速度在D维搜索空间中飞行, 并由单个粒子飞行经验和种群飞行经验动态调节飞行速度。

设第i个粒子的位置为Xi= (xi1, xi2, …, xiD) , 即第i个粒子在D维搜索空间中的位置是Xi。粒子i的速度记为Vi= (vi1, vi2, …, viD) 。粒子个体经历过的最好位置记为Pi= (pi1, pi2, …, piD) , 整个群体中所有粒子经历过的最好位置记为Pg= (pg1, pg2, …, pgD) 。

则粒子群优化算法如下式:

其中, i=1, 2, …, m;d=1, 2, …, D;ω是非负数, 称为惯性权重;C1和C2是正常数的加速常数;r1和r2是[0, 1]之间变换的随机数;α称为约束因子, 用来控制速度的权重。

3 基于改进PSO算法的广义预测控制

通常的广义预测控制是假定被控过程为线性无约束的, 但在实际应用中存在着复杂多样的约束条件, 只有当目标函数以及约束条件可微时, 才能求解有约束的二次规划, 而且只能获得局部最优解。而PSO算法不要求目标函数以及约束条件可微, 便能快速地求得全局最优解, 所以将PSO算法与广义预测控制相结合, 能够很好地解决在约束条件下被控对象很难获得准确参数以及收敛速度慢的问题。如图1所示。

为了使PSO算法能够准确快速地获得最优值, 针对PSO算法局部搜索能力较差、精度不高、且易早熟的问题, 做如下改进:

(1) 调整惯性权重

惯性权重ω的取值较大, 则全局寻优能力较强, 局部寻优能力较弱, 反之, 则全局寻优能力较弱, 局部寻优能力较强。为了使算法的全局搜索能力与局部搜索能力得到平衡, Shi.Y进一步提出了线性递减惯性权重 (LDIW) 的策略[6,7], 即:

其中, ω0为初始惯性权重;ω1为迭代至最大次数时的惯性权重;k为当前迭代代数;Tmax为最大迭代代数。通常惯性权值ω0=0.9, ω1=0.4。

(2) 适应度函数的选取

在广义预测控制中为了尽可能地使系统的输出值接近系统的设定值, 避免控制量变化值Δu发生过大变化, 现将控制量变化值Δu引入到PSO算法的适应度函数中, 以此来限制Δu的变化。采用下式作为PSO算法的适应度函数:

采用上式作为适应度函数, 可以使输出值更加接近设定值, 使Δu变化最小, 提高系统的精度。

(3) 引入邻域算子

随着迭代次数的增多, PSO算法的局部搜索精度随之下降, 以至于无法获得优质的解。为了使PSO算法选择局部模型, 引入邻域算子[8], 同时不断增加局部模型的邻域。为了定义粒子的邻域, 需要计算候选粒子与其他所有粒子的距离, 其中第i个粒子的距离为dist[i], 而最大距离为max_dist, 并定义一个与当前进化代数t有关的分数frac=0.6+3.0t/T。如果frac<0.9, 且frac>dist[i]/max_dist, 则采用局部模型lbest进行搜索;否则使用全局模型gbest。邻域算子的引入实现了算法局部模型与全局模型之间的切换, 有效地增强了系统的探测能力[9]。

4 仿真研究

假设汽油机在不同环境下的模型分别为:

(1) y (k) -0.496585y (k-1) =0.5u (k-2) +ξ (k) /Δ

(2) y (k) -0.496585y (k-1) =0.5u (k-3) +ξ (k) /Δ

(3) y (k) -0.496585y (k-1) =0.5u (k-1) +ξ (k) /Δ

仿真实验中, 从第100步开始, 每进行50步变换一次模型。即取参数:p=N=6, M=2, λ=0.8, a=0.3。学习因子C1=C2=2, 稳定精度j=0.001, 优质种子比例θ%=20%, ξ (k) 为[-0.2, 0.2]均匀分布的白噪声。

通过图2与图3的比较可以很容易的看出, 引入改进PSO算法的广义预测控制系统收敛速度快且输出平稳, 控制效果良好。

5 结语

广义预测控制目前已得到工业过程控制领域的广泛重视, 但在实际应用中, 各种约束条件以及复杂的计算方法, 影响了参数的精确度和收敛速度, 限制了GPC在工业中的应用与发展。本文基于改进PSO算法的广义预测控制在约束条件下具有较强的适应能力, 全局搜索能力得到很大提升, 输出参数更加精确, 收敛速度也得到了很大的提升。仿真实验证明该算法具有很好的适应能力和实用价值。

摘要:广义预测控制的被控对象常常会受到时变、非线性的干扰, 同时还会受到外部复杂环境因素的影响, 因此在实际运用中, 导致参数的精确值不高, 同时需要在线进行大量计算。针对这一问题, 将改进的PSO算法与广义预测控制算法相结合, 综合两者的优点, 提高了控制系统的收敛速度和求解精度, 增强了鲁棒性。该方法的可行性经仿真得以证明。

关键词:广义预测控制,改进PSO,鲁棒性

参考文献

[1]李国勇.智能预测控制及其MATLAB实现[M].2版.北京:电子工业出版社, 2010:255-261.

[2]Clarke D W.Generalized predictive control (PartⅠ&Ⅱ) [J].Automatic, 1987, 23 (2) :137-160.

[3]卓金武.MATLAB在数学建模中的应用[M].北京:电子工业出版社, 2010:60-65.

[4]陈志旺.直接广义预测控制算法研究[D].河北:燕山大学, 2007:16-20.

[5]史峰, 王辉, 郁磊, 等.MATLAB智能算法30个案例分析[M].北京:北京航空航天大学出版社, 2011:130-136.

[6]朱志国.基于粒子群算法混合优化的广义预测控制器及其应用研究[D].安徽:合肥工业大学, 2007:28-29.

[7]刘晓华, 刘芳.无穷时域的连续时间广义预测控制[J].控制与决策, 2008, 23 (3) :337-340.

[8]唐贤伦.混沌粒子群优化算法理论及应用研究[D].重庆:重庆大学:2007:27-28.

改进PSO优化 篇6

物流配送领域的车辆路径问题(Vehicle Routing Problem,VRP)[1],其研究目的是针对一系列的发货点和收货点,组织适当的行车路线,使车辆有序的通过它们,在满足一定的约束条件下达到一定的目标,其对提高物流配送效率有着重要的意义。

由于VRP问题属于NP-hard组合优化问题,且约束条件复杂,即便是在问题规模较小的情况下也难以找到最优解。近年国内外学者在对VRP问题的求解算法上主要采用各种启发式算法,且研究大多集中在单配送中心的车辆路径问题。本文将结合粒子群优化算法和一种简化的2-opt算法,提出一种改进粒子群优化算法,以求解一类单中心、非满载型的VRP问题,仿真实验验证了算法的良好求解效果。

1 问题描述与数学模型

单中心、非满载VRP问题描述如下:有一个配送中心、一批客户和若干载重给定的配送车辆,配送中心和各个客户的位置已知,各客户的货物需求已知且均小于配送车的载重量,每辆车都从配送中心出发,完成若干客户的运送任务后再返回配送中心。规定每个客户的货物需求只能由一辆配送车一次运送完成,且所有客户的货物需求必须满足。现要求以最短的车辆总行程来完成各客户的配送任务。

将车场编号为0,客户编号为1,…,n,设第i个客户的货物需求量为gi(i=1,2,…,n);完成所有配送任务需要的车辆数为m,设第k辆配送车的载重量为qk(k=1,2,…,m);点i和点j之间的距离为dij(i=0,1,…,n;j=0,1,…,n)。

定义两布尔变量如下:

则本文VRP问题的数学模型如下:

以行驶路程最短作为目标函数:

约束条件:

约束条件(2)表示每辆车装载的货物总量不会超过本车的最大载重量;约束条件(3)表示每个客户点仅能由一辆车完成,而所有运输任务则由k辆车协同完成;约束条件(4)和(5)表示限制到达和离开某一节点的车辆有且仅有一辆。粒子群优化(PSO,Particle Swarn Optimization)算法[2]源于对自然界鸟类群体觅食过程的仿真研究,是一种基于种群的随机全局优化算法,其具有理论简单、易编程实现等优点。后文中将构造一种改进PSO算法以求解上述建立VRP数学模型。

2 VRP问题的PSO算法设计

2.1 解的表示

如何找到一个合适解的表示方法,以在粒子位置矢量中反映出配送方案,是实现算法的关键。本文采用顺序表示的方法来表示解,对于m辆车、n个客户的单中心VRP,将解表示为一个n+m-1维的矢量,每一维对应一个服务点(不计起始的0号和最终的0号服务点),其中元素值的次序为m辆车的整体服务路线。例如对一个2辆车、8个客户构成的单中心VRP,若一个解矢量为(3,4,1,0,7,2,5,8,6),则其对应的配送方案为1号车辆:0→3→4→1→0;2号车辆:0→7→2→5→8→6→0。这种解表示方法能够完备的表现出所有的可行配送方案。

2.2 粒子的更新

本文的PSO算法仍然采用基本粒子群算法的速度-位置更新公式:

(6)式中Pbest为个体极值,Gbest为全局极值;参数w为惯性加权因子,c1称为认知因子,c2称为社会因子;X,V分别为粒子的位置和速度矢量;下角标t表示第t次迭代。通过速度-位置更新公式(6),粒子不断飞至解空间中最优解所在的位置。当迭代过程达到最大迭代次数,整个搜索过程结束,最后的Gbest就是整个算法所搜索到的全局最优解。

2.3 粒子的编码

经过更新公式(6)更新后的粒子,其位置矢量是连续的,因此需要在每次更新之后对更新矢量进行编码以映射到离散空间上。结合上文解的表示结构,设计以下基于排序的编码:任给一个n+m-1维的连续矢量,将其最小的m-1位编码为0,将其他n位按照从小到大的顺序依次编码为1到n的整数。经过这种编码后,原本连续的位置矢量被离散化,其编码结果代表一个有意义的配送方案,接下来粒子仍按照公式(6)进行更新,又将得到一个连续型的新矢量,对其编码就能继续迭代求解下去。

2.4 适应度值计算

对于对应可行问题解的粒子,可以直接根据目标函数(1)计算粒子适应度值。对于对应不可行问题解的粒子,由于目标函数是求最小值,可采用惩罚的方式,直接将其适应度值赋予一个足够大的整数M。

2.5 简化的2-opt算法———邻域交换

PSO算法具有良好的全局搜索能力,但其局部搜索能力较差。若把PSO算法和局部搜索算法相结合,则能够有效提高算法的寻优效果和效率,本文将引入TSP问题中常用的2-opt算法[3]并对其简化以改进PSO算法。2-opt算法是通过路径的每条边和反转子路径来实现较优解的搜索,其缺点是算法计算量较大,本文基于邻域交换对其作如下简化:(1)对任一个n+m-1维的配送方案,从第i维开始(i=1,2,…,n+m-2),交换第i维与第i+1维生成一个新的配送方案;(2)计算新配送方案的适应度值,若其优于原始方案,则用其替换原始方案,否则不变;(3)i=i+1,重复步骤(1)。使用上述的邻域搜索局部算法优化每个更新并编码后的粒子,可以有效提高解的质量,并加快收敛速度。

2.6 算法流程

综合以上描述,本文提出的改进PSO算法具体步骤描述如下:

Step1:初始化w、c1、c2、种群规模popsize、最大迭代次数itermax等参数;

Step2:初始化粒子群,所有粒子的位置矢量与速度矢量随机产生,矢量维度为n+m-1;

Step3:根据排序编码对所有粒子位置矢量进行离散化,根据公式(1)计算相应的适应度值;

Step4:对每个粒子执行一次邻域交换局部搜索;

Step5:粒子的Pbest更新为个体最优位置;种群Gbest更新为所有粒子搜索到得最优粒子位置;

Step6:根据更新公式(6)更新粒子速度、位置矢量;

Step7:判断算法停止准则是否满足,即是否达到规定的最大迭代次数itermax,如果满足转入Step8,否则转入Step3;

Step8:输出种群Gbest的位置矢量和适应度值,算法停止。

3 算法仿真

本文采用matlab7.1编程进行算法仿真。实验的算例为8个客户点、1个配送中心、2辆车的物流配送系统的VRP问题,各客户点和车辆的具体数据见参考文献[4]。要求合理分配车辆的行驶路线,使总运输里程最少。

采用本文PSO算法求解此算例,设定参数w=0.7,c1=c2=2。程序最终求得的最优分配线路为:0→4→7→6→0;0→1→3→5→8→2→0,其对应的最小运输距离为67.5,与文献[4]相符合。将本文算法与文献[4]提出的改进混合PSO算法进行比较,设定相同的种群数目和迭代次数popsize=20,itermax=50,对于上述相同实例,重复运行20次,两算法求解对比结果如表1所示。由对比结果可知,本文算法所得平均值小于文献[4]的平均值,从而证明了本文改进PSO算法求解VRP问题有着更加优秀的性能。

4 结论

针对单中心、非满载型的VRP问题,本文提出了一种改进PSO算法予以求解。考虑到VRP问题与TSP问题的相似性,采用顺序表示方法在粒子位置矢量中表征解方案,并通过排序编码实现更新后解的可行化。最后引入一种邻域交换局部搜索,提高了解质量。仿真实例表明了本文算法在VRP问题上的优越性。对于更加复杂的(如多中心、带时间约束等)VRP问题的求解,有待于更进一步的研究。

摘要:VRP问题是物流领域的热点研究问题。在对一类典型的VRP问题建立了数学模型,提出了一种改进粒子群优化算法以求解该模型。算法针对问题设计了顺序编码方案,并引入了局部搜索以提高算法的局部搜索能力。仿真结果表明了所提离散粒子群优化算法求解此类VRP问题的有效性。

关键词:车辆路径问题,组合优化,粒子群优化算法,局部搜索

参考文献

[1]郎茂祥.物流配送车辆调度模型与算法研究[D].北京:北方交通大学,2002.

[2]Kennedy J,Eberhart R.Particle Swarm Optimization[C].IEEE International Conference on Neural Networks,December1995:1942-1948.

[3]魏平,李利杰,熊伟清.求解TSP问题的一种遗传算法[J].计算机工程与应用,2005,12:70-73.

基于PSO算法的优化问题 篇7

1 PSO算法基本原理的由来

受到鸟类觅食行为的启发, 国内外一些学者提出了一种新的智能优化算法, 就是粒子群优化算法。PSO算法是一种随机性寻优算法, 将需要求解的实际问题所需要的空间类比于鸟类觅食飞行的空间, 将优化问题所要求的最优解比作鸟类觅食要找的食物, 将每只鸟比作质点一样的微粒, 使其在一定的空间、法则来求得最优值。

2 粒子群算法步骤PP[1]

Step1:对加速常数进行设置并且随机的开始设置种群中各粒子的位置和速度若所需搜索空间为d维;

Step2:把种群中的各个粒子当前所处的位置及各个微粒目标值储存于pbest中;

Step3:根据相关公式不断地重新更新种群中微粒当前的速度和所处的位置;

Step4:对种群中所有的微粒的位置作出评估和分析;

Step5:对种群中每个微粒的当前的目标解与其pbest的目标值进行比较;

Step6:比较种群中微粒的当前所有pbest和gbes的目标值。

3 优化问题数学模型的建立

解决优化问题首先需要建立数学模型, 主要包括:目标函数、约束条件和可行域。目标函数一般用表示, 两者并没有本质区别。

约束条件分为等式约束和不等式约束两种:

4 基于PSO算法的优化问题

为验证粒子群算法能否解决优化问题, 编写粒子群算法程序来求解函数优化问题。利用软件进行编程。

本文先选取一个简单的三维函数为例:

运行结果如图所示:

随着维度的不同, 微粒的初始位置和微粒的初始速度, 都存在一个不同的范围。本文再选取一个三维函数, 以高斯函数为例[3]。运行结果为:

由实验结果可知:运行刚开始的时候, 微粒以低速频繁运动, 见图中蓝色区域;随后微粒通过共享信息资源, 逐渐集中, 最后聚集在一小片区域, 其变化过程如图中颜色变化所示, 由最开始的深蓝、天蓝、嫩绿、橘黄、浅红逐渐变化到深红。图中红色越深的点表示微粒最佳的位置。由此可知, 该算法可以解决这一类问题, 但仍有需要改进的地方, 可进一步研究。

参考文献

上一篇:精神分裂症兴奋症状下一篇:提取开发论文