自适应粒子群算法在AUV水动力参数辨识中的应用
2021-12-12王俊雄
周 怡,王俊雄
(上海交通大学 船舶海洋工程国家重点实验室,上海 200240)
引 言
自主式水下航行器(AUV)水动力参数的辨识成为对其运动研究和运动控制器设计的关键所在[1]。在工程应用中,对水动力系数求取的主要方法有:经验公式估算方法、数值模拟方法、模型试验方法以及基于实航数据的参数辨识方法。经验公式估算方法具有较好的经济性和可行性,但其精确性难以保证。数值模拟方法大多采用流体计算(CFD)软件,但计算量较大,且计算结果容易受到模型网格划分质量和边界条件的影响[2];模型试验方法虽然对水动力参数的求取精确度较高,但其成本较高,花费时间较长,会不可避免的受到传感器及操作误差的影响[3];基于实航数据的参数系统辨识方法成本较低,能更好地反映航行器在真实环境中的水动力参数,适用性和精确性较好。
现阶段的AUV水动力参数系统辨识方法有很多,但大多数辨识所用到的数据来源或辨识方程为AUV的水平面运动或竖直平面运动甚至单自由度运动等,未考虑完整的六自由度运动方程。一些辨识方法在遇到数据掺杂噪声时辨识结果较差,往往需要对数据预先进行滤波消噪处理,加大了参数辨识的工作量。例如参数辨识中的牛顿—拉夫逊算法对数据初值极为敏感[4],也会导致辨识工作变得复杂。为完善或避免上述问题,本文采用自适应粒子群优化算法和最小二乘[5-6]准则相结合的方式对AUV水动力参数进行辨识。建立所需辨识的AUV六自由度动力学方程。系统介绍自适应粒子群优化算法和最小二乘准则。基于自适应粒子群优化算法和最小二乘准则建立AUV水动力参数的辨识方法。进行AUV水动力参数辨识的仿真计算。
1 AUV数学模型
对于AUV的水动力参数辨识,需要先建立AUV运动的数学模型。为描述AUV的运动,采用如图1所示的固定坐标系E-ξηζ和运动坐标系O-xyz[7]。
图1 固定和运动坐标系Fig.1 Fixed and moving coordinates
根据本文所辨识的AUV[8]具有外形左右、上下、前后对称的结构特征,此时运动坐标系原点选为AUV重心,对AUV动力学方程进行系统辨识,得到AUV六自由度运动动力学方程如下式:
式中,各参数的意义如表1和表2所示。
表1 固定坐标系主要运动参数定义Tab.1 Definition of main motion parameters in fixed coordinate system
表2 运动坐标系主要运动参数定义Tab.2 Definition of main motion parameters in motion coordinate system
2 最小二乘准则和自适应粒子群算法的研究
对于所给定的AUV来说,以式(1)为例,可变换形式如下式:
式(7)左侧不包含辨识参数,右侧各组成部分均含有辨识参数。式(T)可写成式(8),T满足关系式(9)。
由式(8)可知,当测量数据采样点数大于等于所需辨识水动力参数个数时,即可利用方程关系解出水动力参数。但式(8)涉及到测量参数的微分项,高次项等,当其存在噪声引起误差时,即使该误差很小,也会导致水动力参数的求解出现病态结果,并且由式(1)~式(6)可知,水动力参数之间存在耦合作用,很难直接用理论或实验的方法较为准确的获得全部参数。因此本文将AUV的水动力参数辨识转化为最优化问题,基于粒子群算法对复杂的非线性模型方程是否连续、可微等不做要求及其自身特点,利用最小二乘法准则和自适应粒子群算法实现对该问题的求解。
2.1 最小二乘法准则
式(1)~式(6)一般形式如下:
由式(10)可知,当输入u(t)不变,时间t确定时,x可看作关于水动力系数θ 的函数。
因此,要想实现对水动力参数的辨识,可采用最小二乘准则,其具体形式如下:
因此,AUV水动力参数的辨识问题可转化为改变参数 θ的数值,使式(11)的值达到最小的最优化问题。
2.2 自适应粒子群算法
粒子群优化(PSO)算法是一种进化计算方法,具有随机性和继承性的特点。它起源于对鸟类捕食行为的研究,最早由Eberhart博士和Kennedy博士发明[9-10]。粒子群算法的原理如下:
首先初始化一定量的随机粒子,作为随机解。假设搜索空间为d维,种群规模为M,第i个粒子的位置和速度分别为在每一次迭代中,利用适应度函数,得到粒子本身的最优解,也就是个体极值,以及整个种群实时的最优解,也就是全局最优解。找到2个最优值后,利用式(12)和式(13)实现对各个粒子速度和位置的更新。
其中,i=1,2,3···M,j表示粒子的第j维,pi,j代表粒子的个体极值,pg,j代表整个群体的最优解。k为惯性权重,c1和c2为正的学习因子,r1和r2为粒子速度更新系数和位置更新系数[11],为0~1之间的随机数。
粒子群算法[12-13]的计算性能很大程度上取决于算法的控制参数,例如惯性权重、学习因子、粒子数、最大速度、适应度计算公式等。
1)惯性权重
对于惯性权重而言,当其数值较大时,利于跳出局部极小点,便于全局搜索[14],当其数值较小时,便于对当前区域进行精确局部搜索,利于算法收敛。充分考虑粒子群算法存在的早期容易陷于局部最优解以及后期容易在全局最优解附近产生振荡的问题,为平衡其全局搜索能力和局部改良能力,采用动态惯性权重更新公式(14),实现惯性权重的自适应变化。
式中:kmax,kmin分别表示k的最大值和最小值;f为粒子当前位置的适应度函数值,favg和fmin分别表示当前所有粒子对应适应度函数值的平均值和最小值。
2)学习因子
学习因子c1和c2使粒子具有自我总结和向群体最优位置学习的能力,从而向邻域或是全局最优位置靠近。
3)种群规模
种群规模的大小根据问题的复杂程度进行选择,一般种群规模越大,粒子群算法的寻优结果越好。
4)粒子范围
在条件允许的情况下,可对粒子范围进行预估,以促进粒子群算法的寻优进程。
5)最大速度
为了减少搜索空间的可能性,可根据粒子范围设定粒子的速度范围。
6)适应度值
粒子群优化算法的迭代过程中,粒子的位置和速度不断更新,而适应度值是确定粒子群优化是否符合要求的判断依据。
图2为自适应粒子群算法的流程图。
3 AUV水动力参数辨识算法设计
本文设计的参数辨识算法思想是将粒子的位置意义定为待辨识的水动力参数。首先,利用给定的水动力参数求得理论运动参数值后叠加噪声,选取其中的N个作为式(11)中的实际观测数据通过前期对AUV水动力参数的预估,为不失一般性,设定粒子范围较大,各维度范围为预估值的80%-120%,粒子速度更新的上限和下限为对应粒子位置区间长度的±20%。为加速水动力参数的辨识和提高准确性,惯性参数采用式(14)进行更新,kmax和kmin分别取为0.9,0.3。在适应度函数选取上,根据粒子的位置意义和最小二乘准则中对AUV水动力参数最优化问题的分析,可将式(11)作为适应度函数,以此来判断粒子位置是否达到最优。
根据图2所显示的流程,最小二乘准则和自适应粒子群算法在AUV水动力参数辨识中的计算流程具体如下:
图2 自适应粒子群算法流程Fig.2 Flow of adaptive particle swarm optimization algorithm
1)随机初始化各粒子,确定初始个体最优和全局最优
根据AUV水动力参数为负的特点,可设定初始化粒子位置为负数,初始速度采用1以内随机数。然后利用随机得到的粒子位置作为水动力参数代入所建立的AUV模型中进行仿真,仿真的其他条件设置同实际观测数据获取时的一致。选取仿真得到的AUV运动参数中对应实际观测参数时间点的参数作为xi(θ)i=1:N代入式(11)计算对应粒子的适应度值,将此时的适应度值和粒子位置作为初始个体最优值,并取所有适应度值中的最小值和对应粒子位置作为初始全局最优值。
2)进入迭代,更新惯性权重,更新个体最优和全局最优位置
每次迭代采用上一次迭代所获取的各个粒子适应度值(初次迭代采用步骤1中得到的数据),对式(12)中所需要用到的惯性权重依据式(14)进行更新,然后根据式(12)和式(13)更新粒子的速度和位置,并用所设定的粒子范围和速度范围对更新后的数据进行约束。每次迭代中,当得到第n个粒子更新后的速度和位置,将粒子位置代入AUV水动力模型中进行仿真计算,然后选取仿真得到的AUV运动参数中对应实际观测参数时间点的参数作为xi(θ)i=1:N代入式(11)计算其对应的适应度值,并将其同上一步迭代的粒子个体最优适应度、全局最优适应度大小进行比较,其中的较小值及其对应粒子位置作为粒子个体最优值、全局最优值,并将此时的全局最优值代入第n+1个粒子的计算当中,并以此循环,直到将该步迭代中所有粒子计算完毕。
3)迭代指定步数,输出全局最优位置
算法收敛准则定为达到指定迭代次数,然后输出此时的全局最优粒子位置,也就是所需辨识的AUV水动力参数。
4 模拟仿真
为检验自适应粒子群算法的可行性,采用模拟仿真进行验证。
已知本文所研究的AUV的几何参数及其水动力参数,为贴近AUV实际运动特性和确定所需辨识的水动力参数,采用系统辨识出的六自由度运动方程(1)~方程(6)作为其运动方程,在确定的初始状态x0和已知的推进输入下,通过仿真的手段以 Δt=0.1s的时间间隔,测取观测矢量,并叠加上高斯白噪声 ε,以此作为实际观测值。
根据辨识算法设计,分别运用粒子群算法和自适应粒子群算法对水动力系数进行辨识。考虑AUV运动具有的强耦合、非线性、参数时变性等特点,将采样数据个数N定为100,粒子数取为50,c1=c2=2,设置迭代次数为200,基于该算法存在的随机性特点,2种方法分别独立计算50次。自适应粒子群算法惯性权重按照式(14)进行实时更新,惯性权重最大最小分别取0.9、0.3,粒子群算法惯性权重采用定值0.5,其他计算参数设置相同。以方程(1)中的水动力参数辨识为例,二者的辨识结果如表3所示。其中相对误差的计算是|(辨识值-标准值)/标准值|×100%,辨识曲线如图3所示。
表3 PSO和自适应PSO辨识结果Tab.3 The identification results of PSO and Adaptive PSO
图3 PSO与自适应PSO辨识收敛曲线Fig.3 Identification convergence curves of PSO and adaptive PSO
由辨识结果对比以及图3辨识收敛曲线可知,在其他参数设置相同的条件下,自适应粒子群算法对AUV水动力系数的辨识速度和精度均优于粒子群算法。究其原因,自适应粒子群算法中,惯性权重的自适应设置使得各微粒的适应度值趋于一致或者趋于局部最优时,惯性权重增加,而各微粒的适应度值比较分散时,惯性权重减小。同时对于适应度值优于平均适应度值的微粒,其对应的惯性权重因子较小,从而保护了该微粒。反之对于目标适应度值差于平均适应度值的微粒,其对应的惯性权重因子较大,使得该微粒向较好的搜索区域靠拢。相比于惯性权重为定值的粒子群算法,自适应粒子群算法更好的平衡了全局搜索能力和局部改良能力,在保护适应度值较小粒子的同时,实现适应度较大粒子向较好区域的搜索,提升收敛速度和精度。
此外,为检验该方法对噪声的敏感性,在不同数据观测高斯白噪声的标准差值和相同的算法参数设置下,依据设计的辨识算法实现对AUV水动力参数的辨识,采用辨识50次取平均值的方法对结果进行修正。并将最终结果同仿真过程中的实际水动力参数进行比较。以式(1)中的水动力参数辨识为例,其结果如表4所示。
表4 AUV水动力参数辨识结果Tab.4 Identification results of hydrodynamic parameters
由计算流程以及表4结果可得到以下结论:
1)辨识过程自始至终采用的为AUV六自由度方程,充分保留了其运动方程非线性、参数时变性、强耦合等特点,贴近实际,整体辨识结果较好,说明自适应粒子群算法的适用性较好。表4虽然只辨识了式(1)中所涉及到的AUV水动力参数,但该方法对于辨识参数的维度不敏感,因而对于其他水动力参数的辨识可类似进行。
2)当实际观测数据引入的噪声标准差从1%~7%变化时,AUV的水动力参数辨识的相对误差不超过3.27%,辨识结果较好,充分体现了自适应粒子群算法在AUV水动力参数辨识中对数据所掺杂噪声敏感性较低的特点;
3)辨识中并未对数据初值做特殊要求,可看出该方法对初值的敏感度较低,适应性较好;
4)表4中不同噪声水平下的AUV水动力参数辨识中,所运用的自适应粒子群算法参数设置均相同,意在控制变量,突出考察该方法对不同噪声的鲁棒性。在实际情况下,可对自适应粒子群算法中的参数进行调整,以获得更好的结果。
5 结 语
本文针对AUV水动力参数辨识中所存在的一些问题,提出自适应粒子群算法和最小二乘准则相结合的辨识方法,用该方法实现了对AUV水动力参数的辨识,并将其同粒子群算法的辨识结果进行了比较,检验了该方法对噪声的敏感性。最终结果表明,该方法在AUV水动力参数辨识中具有可行性、可靠性以及鲁棒性,并且在辨识精度、收敛速度上均优于粒子群算法。