摘 要:针对传统模型参数辨识方法和遗传算法用于模型参数辨识时的缺点,提出了一种基于微粒群优化(PSO)算法的模型参数辨识方法,利用PSO算法强大的优化能力,通过对算法的改进,将过程模型的每个参数作为微粒群体中的一个微粒,利用微粒群体在参数空间进行高效并行的搜索来获得过程模型的最佳参数值,可有效提高参数辨识的精度和效率。
关键词:微粒群算法;非线性系统;参数辨识
非线性模型参数估计是控制领域研究的重要问题。目前已有许多成熟的系统辨识和参数估计方法,如最小二乘法[1]、极大似然估计法[2]、神经网络用于参数辨识法[3]、遗传算法[4-5]等。但是最小二乘法和极大似然估计法都是基于过程梯度信息的辨识方法,其前提是可微的代价函数、性能指标和平滑的搜索空间。但在实际应用中,由于获得的数据含有噪声或所辨识的系统非连续,使得这一条件难以满足;利用神经网络进行系统参数辨识虽然具有以任意精度逼近非线性函数的能力,但是在实际应用中,只有选择了合适的网络结构,才能获得好的结果,但选择合适的网络结构往往是非常困难的;利用遗传算法特有的复制、交叉和变异功能以及群体寻优的方式来克服陷入局部最优解,可获得较好的模型参数估计,但是遗传算法需涉及到繁琐的编码、解码过程以及较大的计算量,而且整个种群是比较均匀地向最优解区域移动,因此其搜索效率不高。
由Kennedy等人提出的微粒群(PSO)算法[6-13]是一种有效的随机全局优化技术,已经被证明是一种很好的优化方法。PSO算法对优化目标函数形式没有特殊要求,而且没有遗传算法中的交叉、变异算子,各个算子根据自己的速度来搜索,整个搜索过程跟随当前最优解进行。目前已在许多函数优化、网络训练、参数整定等领域中得到了广泛应用。本文借助PSO算法的群体寻优能力,通过对算法的改进,将其应用到对非线性系统模型参数辨识中。
参数辨识就是在模型结构已确定的情况下, 根据已知的观测数据对(xi,yi),i=1,2,…,n求解偏差平方
此外,微粒的速度vi被一个最大速度所限制。如果当前对微粒的加速导致它在某维的速度vij超过该维的最大速度vmax,j,则该维的速度被限制为最大速度vmax,j,使得粒子不至于因为飞行速度过高而跳过可能的优化解。
2.2 PSO算法的改进
通过对式(3)、式(4)分析发现,如果粒子群的历史最优粒子位置Pgest在较长时间内没有发生变化,在粒子群体快接近Pgest时,其速度更新将由历史速度决定,于是速度将越来越小,粒子群呈现出强烈的“趋同性”,表现在式(3)中的第2项和第3项接近于0。这种“趋同性”加快了算法的搜索速度,但是却减弱了群体开拓新的搜索空间的能力。如果该最优位置为一局部最优点,则算法很容易陷入局部最优,发生早熟现象。通过粒子群优化算法的搜索机理分析发现,无论是早熟收敛还是全局收敛,微粒群中的粒子都会出现“聚集”现象。针对这个问题,本文对PSO算法作了以下改进:在微粒群从第t代向第t+1代“飞翔”时,粒子除追随个体极值Pbest和全局极值Pgest外,还追随从微粒群中随机选取的某个粒子个体极值Pn,则式(3)改写为:
2.3 算法设计