基于PSO 的非静止流场中机器鱼转向控制参数优化
2022-09-07文家燕温林荣谢广明罗文广
文家燕 ,温林荣 ,谢广明,3 ,罗文广
(1.广西科技大学 电气电子与计算机科学学院,广西 柳州,545006;2.广西科技大学 广西汽车零部件与整车技术重点实验室,广西 柳州,545006;3.北京大学 工学院,北京,100871)
0 引言
仿生机器鱼参考了自然界鱼类的外形和运动模式,其具备自然鱼类运动性能的部分优点,如静音、节能、灵活等[1],是水下机器人研究的一个热门研究领域。
机器鱼在向目标行进的过程中会受到附近流场(即水流速度大小和方向)的影响,使其航向偏离目标方向。如果机器鱼不能正确修正自己的航向,它就会不断偏离设定航向,最后丢失对目标的跟踪。对航向的修正可以通过转向来进行。自然界鱼类以身体/尾鳍(body and/or caudal fin propulsion,BCF)模式推进时,转向是通过使尾部做不对称摆动来实现的。受此启发,机器鱼也可以通过做不对称摆动来抵消当前水流干扰的影响[2]。实际上,这是一个机器鱼的姿态控制问题。如何实现航向角快速收敛至目标方位角是这个姿态控制问题的关键。
姿态控制主要涉及3 个自由度的控制,即滚转、俯仰和偏航。大多数已有研究成果都考虑了仿生机器鱼的单自由度控制问题[3-4]。喻俊志等[5]提出了一种在背腹运动中进行俯仰转弯的控制方法,首先在机器海豚原型上实现了翻筋斗。Su等[6]研究了多关节机器鱼的快速转弯方法,通过模拟鱼类常见的C 形启动动作,峰值转动角速度约为11.7 rad/s,转动精度小于10°。Gong 等[7]建立了一种基于中枢模式发生器(center pattern generator,CPG)的模糊方法来实现由胸鳍推进的机器鱼的精确横摇控制。Cao 等[8]开发了一种用于多链路机器海豚航向控制的自校正模糊方法。Yuan 等[9]提出了一种将控制器和反推控制器相结合的框架,用于滑游机器海豚的偏航控制。纵观以上研究,都没有涉及机器鱼受到非静止流场作用时,如何自适应地调整姿态以保持航向稳定。
文中首先对机器鱼的摆动以及与水流的相互作用建立模型,其次根据动力学模型设计控制器,主要用于自身运动状态的感知,实现航向角信息的反馈。但是并不包含能够感知流场信息的传感器,因此机器鱼在航向调节时必须具有平动速度,即边游边转向。控制器使机器鱼做相应的转向来消除水流的干扰,并使航向角尽快收敛至目标方位角。更进一步,采用粒子群优化(particle swarm optimization,PSO)算法对CPG 控制器的参数进行优化,最终提升机器鱼的快速转向能力和灵活性。
1 机器鱼动力学建模
为了获得机器鱼各个关节的控制力矩,先对机器鱼进行动力学建模。将机器鱼简化为一个六自由度的平面串联连杆系,如图1 所示,机器鱼的三关节刚体模型的每节连杆被各自的质心分成前后2 段。
图1 三关节连杆系刚体机器鱼模型Fig.1 Robotic fish model of three joint-linkage system rigid body
图中:(xi,yi)为第i根连杆的质心;li1为连杆左端与质心间的长度;li2为连杆与质心间的长度;θi为关节转角,即连杆与水平方向的夹角[10]。
1.1 机器鱼关节动力学模型
根据拉格朗日力学建立连杆系的拉格朗日方程。其广义坐标为各关节转角θ和连杆质心位置的横纵坐标x、y。此处的坐标系固定在静止的环境中,称为静止坐标系。关节转角θi的确定如图1 所示,每个关节的中心都落在波动曲线上。
拉格朗日函数
式中:T为机器鱼相对静止坐标系的动能;mi为每根连杆的质量;V为机器鱼势能,文中只研究机器鱼在一个水平面内的运动情况,因此不考虑竖直方向的受力情况,势能不包含重力势能,只有关节处的转动弹性势能;ki为相邻2 根连杆之间的相对运动阻力系数。
系统的总机械能通过非保守力的做功来增加和消耗。非保守力包括关节的主动力、摩擦力和鱼体与流体间的粘滞阻力。其运动方式由鱼体波动方程(4)描述。方程中h(x,t)指在xoy平面内鱼体垂直于推进方向即y方向的位移。需要指出的是,方程右边的第1 个因子表示鱼体以零幅值开始摆动,逐渐增加幅值。根据鱼体波动方程与连杆质心位置与关节角的关系表达如方程(5)和(6)所示,其中Li为第i根连杆的总长度。
从而求出每个关节转角θi随时间变化的函数
将关节转角代入拉格朗日方程(8),其中Bi是关节之间的阻尼系数。解得关节力矩M1、M2和M3,绘制出3 个关节力矩的曲线如图2 所示。
图2 关节驱动力矩变化曲线Fig.2 Curves of joint driving torque
以上的建模是正向动力学建模,即已知运动状态求驱动力。要准确地对控制系统进行仿真还需要建立它的逆向模型,此模型要描述的就是已知关节动力求关节运动,即关节电机转矩,输出为各关节的转角。
由于各连杆之间由关节相连,它们之间存在几何约束关系为
根据刚体的质心运动定理,4 根连杆构成的机器鱼质心的运动与其所受合力关系为
式中:Fx为机器鱼所受x方向的合力;Fy为机器鱼所受y方向的合力。
根据刚体转动的欧拉方程,构成机器鱼的4 根连杆的转角、质心位置与关节电机输出力矩
其中各等式左边的第1 项是每根连杆的惯性力,等号左边后面几项是所受相邻连杆提供的力矩。式中:Fx32为第3 根连杆对第2 根连杆x方向的作用力;Fy32为第3 根连杆对第2 根连杆y方向的作用力;Fx23与Fy23则为上述两力的反作用力。
其中,Fx32、Fy32与Fx23、Fy23可以由第2、3 根连杆的质心平动表示为
1.2 机器鱼水动力学建模
机器鱼关节转动使鱼体做波状摆动,周围流场则对机器鱼产生反作用力。为了获取机器鱼的推进力和转向力矩,需要建立机器鱼的水动力学模型。文中采用目前在BCF 模式下[11-13]应用最为广泛的鱼类推进理论——细长体理论为机器鱼的水动力学建模。
1.2.1 机器鱼受水流推进力及转向力矩
图3 为机器鱼的俯视图。图中,W为机器鱼质心速度,φ为实际航向角,T为目标矢量,ϕ为目标航向角,V为水流速度。
图3 机器鱼及流场环境状态示意图Fig.3 Diagram of robotic fish and flow field environment state
将作用在鱼体上的力L(x,t)分解为平行于前进方向的推进力和垂直于前进方向的偏航力。垂直于前进方向的力产生使鱼体转向的力矩。根据细长体理论,鱼体受到流场的反作用力可以由鱼体周围附加质量的动量变化率求得。所谓附加质量就是鱼体做波状摆动时环绕鱼体的流速被显著改变的流体质量。
附加质量沿中脊线的分布由下式确定
式中:ρ为水流密度;a为鱼体横截面的近似椭圆半长轴。
鱼体相对附加质量的速度为v,鱼体相对流场的平均速度为U,则
鱼体受到流场的反作用力就是附加质量的动量变化率,即式(18)与(19)乘积对时间的1 阶导数
根据附加质量力计算公式,分别对机器鱼鱼体的x和y方向积分,即可得到鱼体的推进力FxL和侧方向受力FyL,即
以质心为旋转中心,由附加质量力产生的偏航力矩为
式中,h是机器鱼y方向的形变。从上述力与力矩的表达式可知h须是在鱼体长度范围内的连续函数。根据上一节机器鱼的刚体力学模型,在每一时刻对其关节点进行拟合,得到鱼体中脊线的波动曲线,即h在每一时刻的函数值。机器鱼的实际运动由自身游动和环境流场的相互作用决定。由于流场速度的不确定性,通常将环境流场对鱼运动的作用视为一种干扰。
1.2.2 水流速度变化对机器鱼航向角的影响
流场速度与方向会影响机器鱼的姿态,即俯仰角、偏航角和滚转角。其中滚转角主要受鱼体轴向外力矩影响,自然流场通常不会产生这种力矩,故不予考虑。俯仰角受到流场竖直方向分量影响而产生的偏移量可以通过机器鱼的胸鳍来调节,并且少量的俯仰偏移并不会使机器鱼的航向受到影响,故流场的偏航力矩是文中的研究重点。
为了研究水流速度对机器鱼航向角的影响,需要对机器鱼的航向角进行定义。如图3 所示,为描述水流和机器鱼运动,建立一个以大地或海床为参考系的坐标系,称为静止坐标系。机器鱼质心的速度方向W与坐标系x轴的夹角即实际航向角φ。而目标矢量T与坐标系x轴的夹角即目标航向角ϕ。用矢量V来表示机器鱼外部小范围流场的速度,则机器鱼的绝对速度、相对水流的速度和小范围流场的速度之间存在
水流提供机器鱼前进的推力,也产生阻碍其运动的阻力。影响机器鱼阻力的因素有流场的密度、朝向来流方向的机器鱼的面积和机器鱼相对水流的速度。因此,机器鱼所受x方向和y方向的阻力公式为
以及其所受水流产生的阻碍转向的力矩
式中:Cd为阻力系数;CL为阻力矩系数;Sx和Sy为朝向来流方向的面积分量。
由于在实际控制机器鱼的过程中,传感器所采集的力学和运动学参数一般都是相对机器鱼本身,因此有必要建立描述机器鱼在运动坐标系中的动力学方程。将运动坐标系固连在刚体模型中的第1 根连杆上,根据运动参考系中的牛顿-欧拉动力学方程,且仅考虑二维运动的情况下,有以下描述机器鱼线运动和角运动的动力学方程
式中:M是机器鱼质量;I是机器鱼相对运动坐标系z轴的转动惯量;ux和uy是机器鱼整体质心相对运动坐标系的速度。
机器鱼相对水流的速度在运动坐标系与静止坐标系之间的变换式为
将式(29)代入(24)得到机器鱼质心在静止坐标系中的速度,根据航向角的定义,得到其表达式为
2 机器鱼姿态控制系统
2.1 CPG 运动控制简介
CPG 是一类模仿生物控制节律性运动的神经信号发生器的数学模型[14]。一个CPG 单元能够产生周期性信号,由CPG 单元通过一定的拓扑结构连接而成的网络能够产生一系列相位互锁的周期信号。可通过改变网络连接参数来实现对周期信号的幅值、频率和相位的改变。
CPG 控制器输出的周期信号具有稳定性强、适应性强和多模态等特性,因此被广泛应用于仿生机器人的控制中。稳定性:无论输出信号的初始状态如何,CPG 振荡器的输出信号在平面相图中呈现自持振荡的孤立闭合轨迹,这在控制系统中体现为对扰动的抑制。适应性:引入反馈后,CPG 的输出能够随着环境的变化而做出响应来使受控对象重新稳定。多模态:CPG 网络里的各单元之间相互联系、耦合,调整连接参数即可产生不同的周期信号,进而控制被控对象做出不同的运动形态。
2.2 CPG 控制机器鱼关节运动
鱼类波动状摆动的运动方式可以用一个以二次函数为包络线的波动方程来描述。鱼体关节的基本运动是周期性的,只要调节好各关节之间的相位差就可以生成鱼体波。如果采用一系列无相互耦合的周期信号控制各关节的摆动,就无法自动形成相位互锁,即稳定的相位差。需要定期动态矫正偏差带来的轴向不对称,增加算法负担。而CPG 则克服了以上问题,适合用来控制机器鱼的基本运动[15-16]。
针对鱼类波状运动形式,采用具有明显描述波参数 (振幅和频率) 的Hopf 振荡器的CPG 单元。Hopf 振荡器各参数的物理意义清晰,其数学表达形式为
式中:zi为第i个CPG 单元的输出信号(以下类推),CPG 输出信号控制对应关节电机输出扭矩;连接系数wi和常数ri主要影响的是所在CPG 单元的振荡频率和振幅,反映到机器鱼上就是关节输出力矩的大小和频率;ri的值可以根据1.1 节中关节动力学模型的计算结果确定;φi表示各个CPG输出信号之间的相位差,该值表征了鱼体波的形状;hi1和hi2是耦合系数,表示各个振荡器单元之间的耦合强度[17-18],关系到相位差的收敛速度;偏置bi表征输出信号在时间轴上下的偏移,这个值决定了机器鱼拐弯动作的幅度大小。
2.3 机器鱼姿态控制系统设计
机器鱼本身不能直接检测所在流场的速度方向及大小,但是可以通过搭载的运动传感器和定位模块获取自身的运动信息。因此机器鱼的实际航行方向已知。由于鱼体的运动始终是摆动着,正常行进时比较环节输出的偏差是个小幅度波动信号,因此需要一个阈值非线性环节来过滤这个偏差信号。CPG 控制器的输入是阈值非线性环节过滤后的偏差。
式中:ki为偏置系数;a为 非线性环节的阈值[19];α为机器鱼头部与实际航向间夹角;λi为此夹角对偏置bi的修正系数。
确定了被控对象和控制器后即可设计出完整的控制系统。图4 为机器鱼姿态控制系统框图。系统的输入为目标航向角,输出为实际航向角。实际航向角的反馈,使系统控制形成闭环。
图4 机器鱼控制系统框图Fig.4 Block diagram of robotic fish control system
根据2.1 节CPG 控制器特性,CPG 控制器能使闭环系统稳定,最终使机器鱼航向偏差收敛。
3 控制器参数优化
3.1 优化指标与优化对象
机器鱼在非静止流场中要有快速调整姿态跟踪目标航向的能力,即优化指标作系统的响应时长,优化方向是缩短响应时间。而CPG 控制器各振荡单元的偏置系数ki决定了机器鱼姿态的调整,进而影响航向角偏差的收敛速度。因此,各振荡器单元的偏置系数ki就是优化的对象。
3.2 PSO 算法简介
PSO算法是一种被广泛应用的高效全局寻优算法[20]。PSO 算法的基本原理是将优化对象的一组解看做是一群(群体容量用m标记)体积和质量为零的质点,那么解空间(解的维数标记为n)就是粒子飞行的空间。所有粒子的运动规律都遵循方程
式中:vij为第i个粒子的j分量速度;xij为其相应的位置;pij为第i个粒子所寻得的j分量的最优解,pgj为粒子群整体的j分量的全局最优解;c1和c2为加速常数;r1和r2为[0,1]范围内的随机数。式中,第1 项代表粒子的惯性,惯性权重因子w越大表示粒子的惯性越大。而惯性越大,搜索全局最优解的速度越快,但是收敛速度越慢。第2 项代表粒子受到本身目前搜寻到的最优解的影响,趋于靠近此局部最优解。第3 项代表粒子受到目前搜寻到的全局最优解的影响,趋于靠近全局最优解。c1和c2分别表示目前的局部最优解和全局最优解对粒子吸引力的放大作用。而随机数r1和r2则是避免搜索陷入局部最优解的关键。
3.3 参数优化算法设计
机器鱼的刚体模型有3 个关节,即包含3 个振荡器单元CPG 控制器,因此由3 个偏差系数组成解空间。根据关节动力学模型的计算结果,3 个偏置的范围应小于各自对应的关节摆动幅值。
算法流程如下。
1) 初始化粒子群,设置群体容量m,每个粒子的初始位置[x1,x2,x3]=[k10,k20,k30]和速度[v1,v2,v3]=[0,0,0]。
2) 计算每个粒子的适应度值fit[i]。文中fit[i]的取值是机器鱼目标航向角与实际航向角之差收敛至小于百分之二并持续2 个求解周期 (求解周期指的是仿真程序中求解一次微分方程组设置的时间跨度) 时所用时间。
3) 对每个粒子,用其当前的适应度值fit[i]和自身目前寻得的最大适应度值p[i]比较。若fit[i]
4) 对每个粒子,用其当前的适应度值fit[i]和全局极值g[i]比较。若fit[i] 5) 按照式(33)更新粒子的速度和位置。 6) 处理边界条件。 7) 判断算法终止条件是否满足:若是,则结束算法并输出优化结果;否则返回步骤2) 。 按照机器鱼控制系统设计,使用MATLABSimulink 搭建仿真控制系统模型,如图5 所示。 图5 Simulink 控制系统仿真模型Fig.5 The control system simulation model in Simulink 机器鱼的基本参数见表1。文中将展示2 组仿真结果,形成参数优化的前后对照。每组仿真根据机器鱼的初始姿态不同分为(a)和(b)2 个仿真。按照图1 所示结构分配各个连杆的参数。其中转动惯量以各自质心为转动中心。 表1 机器鱼参数列表Table 1 List of robotic fish parameters 如图3 所示,设置机器鱼航向角目标角 φ为26.6°,水流V方向与固定坐标系横坐标轴夹角为45°,流速为2 m/s,初始状态下机器鱼随水流运动,因此实际航向角φ也为45°,速度大小也与水流一致。机器鱼初始姿态鱼头指向与固定坐标系横坐标夹角为分别为−90°和90°。控制目标是使机器鱼的实际航向跟踪目标航向。控制器参数经过手动调试,能够使机器鱼的航向角跟踪到目标航向角。将其设置为初始参数,见表2。 表2 控制器参数初始值列表Table 2 List of initial values for controller parameters 仿真得出的机器鱼运动轨迹和实际航向变化曲线分别如图6(其中直线仅表示方向,而不是目标与出发点的连线)和图7 所示。 图6 机器鱼航向调整过程运动轨迹Fig.6 The robotic fish movement track during the course adjustment process 图7 机器鱼航向角偏差变化曲线Fig.7 Curves of course angle deviation of robotic fish 设置稳态跟踪标志为:机器鱼目标航向角与实际航向角之差收敛至小于2%,并持续2 个求解周期。根据此要求得出未优化控制器参数时稳态时间为分别为30 s 和25 s。 根据文中所提方法对控制器参数进行优化,将适应度函数设置为机器鱼目标航向角与实际航向角之差收敛至2%所用时间 (以图6(a)所示初始条件进行优化)。迭代过程适应度函数变化曲线如图8 所示。 图8 适应度函数变化曲线Fig.8 Fitness function changing curve 迭代计算至结果稳定后输出优化参数见表3。 表3 优化后控制器参数列表Table 3 Controller parameter list after optimization 使用优化参数后的控制器再次仿真,结果见图9 和图10。 图9 优化后机器鱼航向调整过程运动轨迹Fig.9 The trajectory of robotic fish in course adjustment process after optimization 图10 优化后机器鱼航向角偏差变化曲线Fig.10 Curves of course angle deviation of robotic fish after optimization 优化后航向角调节的稳态时间分别为20 s 和16 s,较优化前调节时间减少了33%和36%,超调量下降了12%和10%,振荡频率明显变缓。可见控制器的各项性能指标都有所提升。 从图6 中可以看出,机器鱼在水流方向与目标航向不一致的情况下,以不同的初始姿态出发,最终的航向能够与目标航向同向平行。验证了机器鱼控制系统航向稳定的有效性。对比图8 和图10,经过PSO 算法优化后机器鱼航向跟踪到目标航向的时间缩短,超调量变小。 通过建立机器鱼的动力学模型,结合CPG 控制器,利用航向角反馈,能够设计出解决机器鱼在非静止流场中的航向稳定问题的控制系统。而CPG 控制器的偏置系数经优化后可以在一定程度改善机器鱼航向调整的快速性和平稳性,提升了机器鱼的转向灵活性。仿真结果验证了文中所建模型与优化方案的有效性。 此外,由于文中所做仿真的假设条件是忽略流场短时间内的变化,测试机器鱼航向控制系统的环境流场设置的是确定的水流速度。此仿真无法模拟现实中有可能出现的水流剧烈变化的情形。要完全解决变流场航向稳定,还需对机器鱼附近流场的变化率范围与机器鱼所需响应速度极限之间的关系进行进一步研究。4 仿真与结果分析
5 结束语