基于遗传算法对控制水下机器人运动姿态进行PID参数整定

2023-02-04 12:00邓鲁克吕东坡
制造业自动化 2023年1期
关键词:二进制遗传算法染色体

邓鲁克,吕东坡

(天津大学 海洋技术学院,天津 300072)

0 引言

水下机器人在海洋、湖泊、河流等水下作业的应用越来越广泛,其中有缆水下机器人(Remotely Operated Vehicle,ROV)由于其具有操作灵活、可实时传输数据等优点得到了广泛的应用。同时,水下机器人的稳定性也提出了更高要求,获取水下机器人的运动控制方程以及采取响应速度更快的控制策略变得至关重要[1,2]。

1 ROV的运动控制分析

1.1 ROV平面运动方程的简化

ROV在水中运动情况较为复杂,为了能够便于分析研究,根据艏向角和深度的变化将ROV的运动情况分为水平面与垂直面。ROV在水平面运动时,只改变艏向角,深度不会改变;在垂直面运动时,只会改变深度,艏向角不会改变,由于本次主要研究ROV姿态的控制,所以主要对艏向角进行研究。

在进行简化之后,水下机器人在水平面的运动方程为[3]:

其中,X、Y、N与u、v、r方向相同,推进器1、3和推进器2、4提供的推力相反,推进器产生的合力为各个推进器提供的力之和:

图1 ROV的三维模型

ROV的水动力模型为:

M是ROV的质量矩阵;是附加质量;

CRB(V)是ROV的科式力和向心力矩阵;

D(V)V为ROV水阻尼矩阵;

G(η)为由静力产生的回复力(矩)向量;

T为推力系统产生的推力(矩)。

由于本次研究主要针对ROV的运动控制方程以及控制方法,所以水动力系数以及其余相关矩阵由仿真实验得到的数据直接给出。

将式(1)和式(2)代入式(3)可得:

在理想的情况下,由于ROV的模型左右完全对称,直航情况下ROV不会有u和r。但在实际情况下,ROV直航可能会由于外界扰动,在水平面内除了会有u,还可能会有v和r,但是v和r数值较小,其乘积更可以忽略。此外,ROV以一定速度向前行驶,u保持不变,所以其导数为零。ROV左右形状几乎完全对称,可以忽略横向运动方向上产生的力以及会使ROV发生旋转运动的力矩。式(3)可化简为:

1.2 获取ROV控制模型的传递函数

对上式进行拉氏变换并进行整理,得到艏向控制方程:

系统输入:

系统输出:

由式(6)、式(7)、式(8)可得控制系统的传递函数:

在ROV实际运动中,因横向速度、加速度引起的回转力矩较小,而且因回转加速运动对横向力影响较小,所以N·v、Nv、Y·r较小,可以忽略,可将式(9)简化为:

表1 ROV模型参数

2 遗传算法PID控制

2.1 遗传算法介绍

遗传算法是用计算机来模拟外界条件在生物进化时对生物的优化选择作用[4]。

在针对有关优化的问题上,遗传算法也具有着诸多优势:

1)不仅能够解决连续优化的问题,还能解决离散优化的问题;

2)可以同时针对多个变量进行相应处理;

3)在面对较为复杂的优化问题上,可以更多的考虑全局最小值;

4)该算法是在解决优化问题的时候采用的是编码的方式,所以在分析离散数据和处理解析函数之外,还能针对有关符号数据的优化问题进行处理;

5)可以并行实现预期目标;

6)得出最优解之后,可以将此最优解有关的参数一并给出。

2.2 ROV遗传算法的关键步骤

1)变量选择与适应函数

根据问题定义染色体(chromosome),即确定被优化的变量集合。如果染色体包含Npop个变量,可表示为:

染色体通过适应函数f来确定其适应度,适应度较高的个体在遗传的时候保留下来的几率也会相应提高。

2)变量的编码与解码

本次解决的问题为离散优化问题,所以采用二进制编码的方法,用其变量以及最小化适应函数。二进制法具有简洁、利于实现遗传操作的优点。

其编码公式为:

其解码公式为:

其中,0≤pnorm≤1为规范化变量,plo为最小变量值,phi为最大变量值,gene[m]为基因,是pn在二进制的表示形式,round{}为对括号内容取整的函数,pquant为pnorm量化后的表示形式,qn为pn的量化值。

3)种群与染色体的自然选择

在进行每一代之间的自然选择的时候,假设种群中染色体的数量为Npop,染色体的长度为Nbit,染色体的保留比例为Xrate,则每一代遗传之后保留下来的染色体数量为:

新一代染色体保留了Nkeep之后,会将余下的染色体进行舍弃,因此需要补充Npop-Nkeep个色体,保证下一次的遗传可以正常进行。新生成染色体的配对方法有三种:顺序配对、随机配对、加权随机配对、竞争配对。本论文将所有染色体按照适应度降序排名,且保留50条基因,排名靠后的基因将会被淘汰。

4)染色体交叉

染色体的交叉是为了能够将父代染色体通过配对将基因遗传到新的染色体上。本遗传算法设定交叉概率PC=0.8。

5)染色体变异

变异操作用于对二进制串中特定的位置进行变化。此操作可以引入原本不存在于种群中的基因,使得染色体在空间中能够包含更多可能的解。本遗传算法设定变异概率PM=0.1。

6)终止条件

当遗传算法满足指定条件的时候,算法计算结束。终止条件主要优化解的结果落入预定范围中,算法计算的次数达到预设次数的最大值,或者种群中每个染色体的适应值都相同等。

图2 二进制遗传算法的基本步骤组成

2.3 PID控制

PID控制在生产过程中是一种非常常见的控制策略,利用输入值r(t)与输出值的的偏差e(t),按照比例、积分、微分的函数关系进行运算,并将其结果应用于对输出的控制,从而达到一个稳定的状态[5]。

图3 PID控制原理图

其中:

kP为比例系数、TI为积分时间系数、TD为微分时间系数。

2.4 遗传算法PID控制

本系统将会对PID通过kP、kI、kD三个参数进行优化,其中0≤kP≤50,0≤kI≤1,0≤kD≤1。

为了防止限制的控制量超出预期以及考虑到相应的暂态性能,决定用输入的平方项和误差绝对值的积分作为目标函数。

w1、w2、w3、w4为权值,取值:w1=0.5、w2=0.4、w3=1.0、w4=0.5。

e(t)=cd-c为误差,σ=cmax-c(∞)为超调量,tr为上升时间,tp为峰值时间,ts为调整时间。

图4 遗传算法PID原理图

3 仿真结果

在MATLAB中,设置传递函数为G(s),迭代次数设为200次,仿真时间设置为10s,变量个数设置为3,种群上限设置为50,单个变量的编码基因长度设置为10,交叉概率设置为0.8,变异概率设置为0.1,自我复制概率设置为0.2。

图5 遗传算法目标函数值优化曲线

从图中可以看出,最优函数值1s附近开始急剧下降,后续下降相较之前变得较为平坦。可得出遗传算法对于PID三个参数的整定速度较快,且后续较稳定。

图6 阶跃信号的响应曲线

经过遗传算法计算之后,针对水下机器人姿态调节的PID三个参数分别为kP=19.8754、kI=0.0010、kD=0.0287。上升时间较PID减少了2s,调整时间减少25s,超调量增加了9.8%。

4 结语

由于水下机器人在水下遇到扰动时需要较快的响应速度,调整自身姿态,回到预定轨迹,所以对响应速度要求较高。PID算法虽然也可以完成对于扰动的抑制效果,但从实验中可以看到响应速度较慢,而遗传PID则具有更快的反应速度,利于水下机器人及时调节自身姿态。虽然遗传PID超调量较大,但由于水下机器人运动时也具有一定惯性,对系统的动态特性也会有一定的要求,超调量较大也可以使机器人更快回到直航姿态。从仿真实验来看,遗传PID相较于PID算法具有更佳的控制效果。

猜你喜欢
二进制遗传算法染色体
用二进制解一道高中数学联赛数论题
有趣的进度
二进制在竞赛题中的应用
多一条X染色体,寿命会更长
为什么男性要有一条X染色体?
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于遗传算法和LS-SVM的财务危机预测
能忍的人寿命长
软件发布规划的遗传算法实现与解释
二进制宽带毫米波合成器设计与分析