舰船科学技术  2020, Vol. 42 Issue (2): 108-114   PDF    
水下自主机器人航向控制算法应用研究
吕厚权1,2,3, 郑荣1,2, 杨斌1,2, 刘博峰1,2, 杨博1,2     
1. 中国科学院沈阳自动化研究所 机器人学国家重点实验室,辽宁 沈阳 110016;
2. 中国科学院机器人与智能制造创新研究院, 辽宁 沈阳 110016;
3. 中国科学院大学,北京 100049
摘要: 为了提高AUV航向控制系统的控制品质,研究基于模糊理论的参数自调整PID算法。该算法在AUV原控制器的基础上对控制器参数进行在线调整,使控制器具有了一定的自适应特性。分析模糊控制规则对控制效果的影响,提出一种基于非线性函数的尺度变换方法对模糊控制器输入数据进行处理,简化了模糊控制器输入数据的量化过程。通过湖上试验,验证了模糊PID控制算法的有效性。对比试验结果显示,改进后的算法在AUV航向控制中能够获得更好的控制效果。在大角度转向中,该控制算法的优越性明显,系统响应快,超调小,航向误差均方差小。
关键词: AUV     航向控制     PID     模糊控制    
Application research of heading control algorithm for AUV
LV Hou-quan1,2,3, ZHENG Rong1,2, YANG Bin1,2, LIU Bo-feng1,2, YANG Bo1,2     
1. State Key Laboratory of Robotics, Shenyang Institute of Automation Chinese Academy of Science, Shenyang 110016, China;
2. Institutes for Robotics and Intelligent Manufacturing, Chinese Academy of Science, Shenyang 110016, China;
3. University of Chinese Academy of Science, Beijing 100049, China
Abstract: In order to improve the control quality of the AUV heading control system, a parameter self-adjusting PID algorithm based on fuzzy theory is studied., the algorithm adjusts the controller parameters online based on the original AUV controller so that the controller has some adaptive characteristics. The influence of fuzzy control rules for the control effect is analyzed., a scale transformation method based on nonlinear function is proposed to process the fuzzy controller input data, which simplifies the quantization process of the fuzzy controller input data. Finally, the effectiveness of the fuzzy PID control algorithm is verified by experiments on the lake., In the comparative experiment, the improved algorithm can obtain better control result in the AUV heading control. In the large angle steering, the superiority of the control algorithm is obvious: the system response is fast, overshoot is small, and the heading error is small.
Key words: AUV     heading control     PID     fuzzy control    
0 引 言

认识、开发和利用海洋是建设海洋强国的基础,在各种海洋技术中,水下自主机器人(Autonomous Underwater Vehicle,AUV)能在一般潜器不能达到的水域自主进行工作,被广泛应用在科研考察[1]、水下作业[2]和军事活动中。AUV发展的关键技术包括提高续航能力技术、水下高速通信技术、精确导航定位技术、高级自主决策技术和运动控制技术等。在诸多关键技术中,运动控制技术尤为重要,只有具备了精准度高,鲁棒性强的运动控制方法AUV才能在远洋、深海、恶劣的海况环境下自主地完成任务。水下自主机器人难以控制的主要原因有:机器人高度的非线性、时变的动态特性,水动力系数的不确定性,各自由度运动间的耦合性,存在未知水流的扰动等。从国内外公开发表的相关论文来看,经典控制理论、现代控制理论和智能控制中的很多控制方法都在AUV的运动控制中有所应用,相关研究也取得了一定的成果,主要研究包括PID控制方法,滑模变结构控制,模糊控制、鲁棒控制、神经网络控制、反步法等[3]。反步法又称为反演控制技术,其核心思想是把复杂的非线性系统分解为不超过系统阶数的子系统,然后分别为子系统设计李雅普诺夫函数和中间虚拟控制量,一直反演到整个系统的控制器设计,该方法在设计不确定系统的鲁棒控制器方面具有一定的优越性,国内外很多学者在AUV动力学模型的基础上对该方法在AUV运动控制中的运用进行了研究,但由于动力学模型难以获得、控制量求解过程存在“微分爆炸”现象,使得反步法较难在实际控制中得到应用[4-6]。鲁棒控制基于状态空间模型的频率设计方法提出了从根本上解决控制对象模型不确定性和外界扰动不确定性问题的有效方法,R. Yang基于该方法设计了AUV航向控制器,并通过试验验证了方法的有效性[7]。文献[8]利用线性化后的AUV模型设计了H∞鲁棒控制器并仿真验证了方法的有效性。神经网络控制方法以神经元理论为基础,模拟人类大脑神经元间相互连接的结构,通过网络节点间的权值建立关联,模仿人脑存储和信息处理方式对数据实现分布式存储和并行处理,该方法可以处理水下机器人强非线性问题,但系统输入输出间的映射关系无法直观表达,通常需要与其他控制方法结合使用[9]。滑模变结构控制(SMC)具有快速响应、对参数变化及扰动不灵敏的特性,因此近年来在水下机器人运动控制中受到较多的关注,Anthony J等针对AUV的速度、航向和升沉运动分别设计了SMC控制器,仿真结果显示该方法具有较强的鲁棒性[10];David Bryan Marco等将SMC方法成功应用在了ARIES AUV中,在实际航行试验中获得了较好的控制效果[11],但该方法需要基于系统模型进行设计。PID控制算法在各种控制方法中发展最为成熟,控制器设计可以不基于系统模型,被广泛应用在工业界各种控制系统中,目前水下航行器普遍采用该算法进行航行控制,但该控制器参数一旦确定将不会跟随系统状态进行改变,不具有自调整特性,因而很多时候不能满足控制需求。模糊控制器同样可以不基于系统模型进行设计,且容易对非线性系统和时变系统实现鲁棒控制,因此在很多领域已得到应用。本文在不基于系统模型进行控制器设计的背景下,研究了一种参数自调整模糊PID控制算法,并通过仿真和航行试验对算法进行了验证。

1 问题描述

AUV水下运动是十分复杂的空间六自由度运动,工程应用中通常简化水平面和纵垂面运动间的耦合特性,针对两平面的运动分别设计控制器。通过泰勒级数展开法对水动力系数线性化处理,忽略质量系数矩阵中的耦合项后,可以得到平面内AUV的动力学模型如下:

$ { A}\left[ {\begin{array}{*{20}{c}} {{{\dot v}_r}} \\ {\dot r} \\ {\dot \psi } \end{array}} \right] = {{B}}\left[ {\begin{array}{*{20}{c}} {{v_r}} \\ r \\ \psi \end{array}} \right] + \left[ {\begin{array}{*{20}{c}} {{Y_\delta }} \\ {{N_\delta }} \\ 0 \end{array}} \right]{\delta _r}\left( t \right){\text{。}} $ (1)
$ { A} = \left[\!\! {\begin{array}{*{20}{c}} {{{m}} - {Y_{{{\dot v}_r}}}} \!\!&\!\! 0 \!\!&\!\! 0 \\ 0 \!\!&\!\! {{I_{zz}} - {N_{\dot r}}} \!\!&\!\! 0 \\ 0 \!\!&\!\! 0 \!\!&\!\! 1 \end{array}} \!\!\right],{ B} = \left[\!\! {\begin{array}{*{20}{c}} {{Y_{{v_r}}}} \!\!&\!\! {{Y_r} - m{U_0}} \!\!&\!\! 0 \\ {{N_{{v_r}}}} \!\!&\!\! {{N_r}} \!\!&\!\! 0 \\ 0 \!\!&\!\! 1 \!\!&\!\! 0 \end{array}} \!\!\right]{\text{。}} $

式中:m为航行器质量, ${Y_{\dot v}}$ 为横向附加质量系数, ${I_{zz}}$ 为转动惯量, ${N_{\dot r}}$ 为首摇系数的附加惯性矩, ${Y_{{v_r}}}$ 为由侧滑产生的侧滑力系数, ${Y_r}$ 为摇首产生的横向力系数, ${N_r}$ 为摇首产生的横向横向力矩系数, ${N_{{v_r}}}$ 为侧滑产生的横向力矩系数, ${Y_\delta }{\delta _r}\left( t \right)$ ${N_\delta }{\delta _r}\left( t \right)$ 为由舵板产生的力和力矩,U0为AUV的前向速度,vr为横向滑动速度,ψ为航向角,r为航向角速率。通过该方程可以对航向控制算法进行初步的验证。

2 算法设计

PID控制本身的算法设计并不依赖于系统的模型,但算法的参数需要根据实际系统进行整定,是一种经典的基于反馈的线性控制器。该算法应用在非线性系统时,通常采用分段线性化的方法,在不同的工作点上分别设计控制器参数,从而实现对系统不同工作状态的控制,但工作点附近系统状态并非始终稳定,造成所获得的控制器参数难以始终保持较好的控制效果,为此有必要对传统PID算法进行改进,提高控制算法的适用性和鲁棒性。

2.1 数字PID算法

在模拟系统中,PID控制器的算法表达式为:

$ {{u(t)}} = {k_p} \cdot e\left( t \right) + {k_i} \cdot \mathop \int \nolimits_0^t e\left( t \right) \cdot {\rm d}t + {k_d} \cdot \frac{{{\rm d}e\left( t \right)}}{{{\rm d}t}} {\text{。}} $ (2)

式中:ut)为控制器输出信号;et)为被控系统的偏差信号;kpkikd为控制器参数,计算机控制系统需要对式(2)进行离散化处理,用数字形式的差分方程代替连续系统的微分方程。AUV的航向控制中,et)为AUV航向偏差,该数值根据目标航向和惯性组合导航单元中获得的当前航向信息计算获得。控制器参数需要根据AUV的载荷状态,航行速度进行调整,调整过程较为困难,所获得的参数往往不能总是令人满意。为了使控制器参数具有一定的自调整能力,将控制器参数引入一个调整量,使原始参数改变为:

$ \left\{ {\begin{array}{*{20}{c}} {{k_{p1}} = {k_p} + \Delta {k_p}} {\text{,}}\\ {{k_{i1}} = {k_i} + \Delta {k_i}} {\text{,}}\\ {{k_{d1}} = {k_d} + \Delta {k_d}} {\text{。}} \end{array}} \right. $ (3)
2.2 模糊控制算法

模糊控制自1974年首次被应用在加热器控制后,在世界各地、各行各业得到了广泛的应用,比较典型的应用包括飞船飞行控制、机器人控制、汽车速度控制、核反应堆控制等[12]。模糊控制是模糊集合理论的重要应用,基于Mamdani模糊模型表示的模糊系统设计包括以下几个过程:

1)确定模糊控制器的输入变量。输出变量和论域:

通常把输入变量的个数称作模糊控制的维数,控制器的维数越高则相应的控制效果会越好,但相对实现起来也更加困难,计算复杂度也越高,通常选用误差和误差的微分作为控制输入构成二维模糊控制器。论域范围的选取对控制品质有重要的影响。论域太大,系统会对某些输入数值响应迟钝,同时解模糊处理时空闲区域较大;论域过小,实际数据分布特征又可能没有被反映出来。因此需要根据实际系统反复推敲确定以上信息。

2)模糊化和解模糊

模糊化是将精确量转化为模糊量的过程,是一种主观评价,可以将测量值转化成主观量值的评价。模糊控制的输入和输出空间就是分别由控制规则中的前提语言变量和结论语言变量构成的,语言变量又称为模糊标记,一般包括{负大、负中、负小、零、正小、正中、正大},对应的英文书写形式为{NB、NM、NS、Z、PS、PM、PB}。解模糊是从输出论域所定义的模糊控制作用空间到精确控制作用空间的映射,比较常用的方法有质心法、最大隶属度法、和系数加权平均法。最大隶属度法忽略了过多的参数,不能反映真实情况,常用于简单系统,质心法比较合理,但在系统复杂度高时,为了提高实时性可以用系数加权平均法代替该方法[13]。质心法计算公式如下:

$\frac{{\mathop \sum \nolimits^ {x_i} \cdot {\mu _n}\left( x \right){\rm d}x}}{{{\mu _n}\left( x \right)}} {\text{。}}$ (4)

3)确定模糊规则和推理方法

模糊控制规则是模糊控制器设计的核心,整套的规则是基于长期的实践经验,并通过不断的修正完善所形成的一套有效的控制策略。一般来说,模糊控制规则先通过专家经验和控制工程知识来确定,随后根据实际操作人员控制过程来完善。模糊推理同样是控制器中的关键部分,具有模拟人基于模糊概念的推理能力。存在如下多输入多规则:

如果A1B1,那么C1

否则如果A2B2,那么C2

$ \vdots $

否则如果AnBn,那么Cn

已知A'且B''则C''的计算过程如下:

$ \begin{split} & C' = (A'{\rm and}B')^\circ \left( {\left[ {({A_1}{\rm{and}}{B_1}} \right) \to {C_1}} \right] \cup \cdot \cdot \cdot \cup \\ & \left[ {({A_n}{\rm{and}}{B_n}} \right) \to {C_n}]) = {C_1}^{\rm{'}} \cup {C_2}^{\rm{'}} \cup \cdots \cup {C_n}^{\rm{'}} \end{split} $ (5)

其中 ${C_i}^{\rm{'}} = A' {\rm and}B'^\circ \left[ {({A_i}{\rm{and}}{B_i}} \right) \to {C_i}] =A'^\circ \left( {{A_i} \to {C_i}} \right) \cap $ $ [{B^{\rm{'}}}^\circ \left( {{B_i} \to {C_i}} \right)]\left( {{\rm{i}} = 1,2 \cdots ,{{n}}} \right)$

→”是命题联结词符号。“ $^\circ $ ”是模糊关系合成算子。

4)模糊输入量和输出量变换

将精确量向模糊论域转化的时需要进行尺度变换,而将输出论域内的数值转化到实际控制值的过程同样需要进行尺度变换,变换的方法可以是线性的,也可以是非线性的,不同的方法对控制效果影响较大。

2.3 模糊PID控制算法

使用误差和误差的微分作为控制输入的模糊控制器具有类似于PD控制器的特性,该控制器能够获得良好的系统动态特性,但无法消除静态误差。此外,控制器模糊控制规则整定困难,需要基于大量的经验和试验,工作量巨大,很难实现。水下机器人控制凝结了前人大量的工作和智慧,对于不同的航行工况往往总结了一套较为理想的PID控制参数。为了能够在继续发挥原有控制器的作用的同时对控制效果进行改善,可以使用模糊控制器对原始PID的参数进行调整,使之具有一定的自适应特性,此时模糊控制器的控制规则可以根据PID控制器参数的整定原理进行设计,并根据实际需求进行调整,相对比较容易。在AUV的航向控制中,选定航向误差ψe及其导数作为模糊控制器的输入量,设计模糊控制规则如表1表3所示。

表 1 比例系数Δkp控制规则表 Tab.1 Scale factor control rules of Δkp

表 2 积分系数Δki控制规则表 Tab.2 Integration coefficient control rules of Δki

表 3 微分系数Δkd控制规则表 Tab.3 Differential coefficient control rules of Δkd

确定了模糊控制规则后,另外一个需要解决的关键问题是模糊控制输入量和输出量的变换问题,在AUV的航向控制中,目标航向的变化范围在0~360°范围内,因此不同控制命令下,航向偏差变化范围不同且差别较大,这样使用固定的线性变换方法不在适用,因此采用公式(6)对误差数据进行非线性量化处理。该尺度变换函数两端疏松中间密集的特点与偏差大时控制较粗,偏差小时控制较细的思想相一致。

$ {{y(x)}} = \frac{2}{{1 + {e^{ - kx}}}} - 1 {\text{。}} $ (6)

式中k>0,用于调节函数曲线形状的参数。图1为参数对曲线形状的影响。可以看出,在k取不同的值的时候,函数映射关系会随之改变,这样,可以根据需求,通过对参数k的调整实现对精确控制范围的调整。模糊输出部分采用典型的线性变换方法,根据控制需求设定比例系数即可。

图 1 尺度函数曲线 Fig. 1 Scaling function curve
3 仿真验证

模糊PID控制器中,模糊控制规则和输入输出量的尺度变换方法对控制效果有重要的影响,其中PID控制器参数的模糊控制规则可以使用一般的模型进行调整,但尺度变换函数的参数调整通常需要结合实际航行条件进行调整,下面分别基于Matlab仿真软件和某型AUV数字仿真平台对控制器特性进行仿真验证。

3.1 Matlab仿真

该部分主要对2.3部分模糊控制规则的性能进行验证,控制规则表中“A/B”表示规则调整前使用A控制规则,该规则对应图2中的系统响应曲线“响应1”,规则调整后使用B规则,相对应的系统响应曲线为“响应2”。对方程(1)进行变换处理,代入某径航行器参数获得航向开环传递函数如下[14]

图 2 系统输入与响应 Fig. 2 System input and response
$ {\rm{G}}\left( {\rm{s}} \right) = \frac{{4.718 s + 13.48}}{{0.158\;3{s^3} + 1.587{s^2} + s}} {\text{。}} $ (7)

PID控制器参数设定为:kp=1.107,ki=0,kd=0.12,得到如图2所示的系统输入和响应曲线。图中响应1曲线超调量较大,超调量3.5%,稳态时间3.21 s。为了降低系统超调并提高系统稳态时间,对响应1相对应系统控制输入、控制误差、误差的微分进行分析,各曲线如图2所示。瞬态响应阶段,为了尽快跟踪设定值,控制输入应较大,而为了减小超调,在响应没有跟上设定值时就应该降低输入,图中输入曲线满足这一规律。但注意到,在0.5~1 s过程中,误差已经趋于零时,误差的微分仍然较大,因此,在原控制规律的基础上,需要适当降低控制输入数值的大小,在比例系数规则表和微分系数规则表中对相应模糊输出进行适当的调小处理。调整后仿真得到响应2曲线。相比响应1、响应2超调量减少到1.6%,稳态时间为2.3 s,相比降低了0.91 s,但响应时间却有所增加。以上可知,在不同的使用需求下,可以通过适当调整模糊控制规则来得到不同的控制品质。

3.2 AUV数字仿真平台仿真

AUV数字仿真平台使用AUV控制程序全真模拟实际航行条件对控制算法进行仿真验证,该部分主要对公式(6)尺度变换函数中的参数k进行调整。设定航向PID参数调整量最大取值maxΔkp=20%kp,maxΔki=100%ki,maxΔkd=20%kd。AUV前向速度2节,航行深度5 m,航行规划如图3所示。AUV从A点出发,航向使命依次为:235°,225°,135°和315°,各使命航行时间均为5 min,转向角度依次增大。在相同的航行任务下,分别设定误差尺度变换函数参数ke=0.2,0.4,0.6,误差变化率尺度变换函数参数kec=0.2,0.4,0.6进行仿真测试。对不同条件下的系统动态性能进行统计,结果如表4所示。

图 3 航行规划图 Fig. 3 Navigation plan

表 4 尺度变换函数参数取不同数值情况下的仿真结果 Tab.4 Simulation results of scale conversion function parameters taking different values

表中,PID表示航行器中原始算法,FPID表示改进后的模糊PID算法,σ代表超调的度数,t代表调节时间。从结果可以看出,相同航行任务下,ke=kec=0.4时,系统响应的动态性能较好。此时为了进一步提高控制效果,在ke=kec=0.4的条件下,改变maxΔkp数值大小继续仿真,将maxΔkp=20%kp改为maxΔkp=30%kp,航行速度和深度不变,航行使命变为航向220°航行转到240°,随后再转到60°,各使命航行时间5 min,仿真结果如表5所示。