基于Anti-windup-PID算法的智能船航向控制研究
2018-08-07中船航海科技有限责任公司胡春洋李松霖
中船航海科技有限责任公司 胡春洋 李松霖 李 虎
0 引言
船舶远洋航行中,很多情况要求在航向保持模式下航行,这时需要船舶尽可能的保持在设定的航向上,以达到最大的航行经济性[1]。控制船舶平稳、快速、无超调的达到设定航向就需要对船舶航向控制算法进行改进提升[2]。
传统的船舶航向PID控制器已不能满足船舶控制的准确性及实时性的驾驶要求,并且船舶在航行过程中会受到外界风浪、海流和船舶本身参数摄动的影响,传统PID控制器会出现打舵幅度大,打舵次数频繁等缺点。但PID控制器的实现与操作相对简单,成本低,所以对PID控制器进行改进提升既经济实用,又能满足控制要求[3]。
针对传统PID控制器的不足,本文给出了一种基于抗饱和(Anti-windup)的PID控制算法,解决了航向改变时控制舵角出现饱和现象影响船舶航向跟踪的实时性、快速性与稳定性的问题。
1 智能船船舶数学模型
智能船在海上航行时存在六个自由度的运动,为了便于对船舶操纵控制的研究,可以将6自由度运动简化为3自由度[4],如图1所示。
图1 船舶平面运动变量分析
图中ψ为航向角,δ为舵角,V为船舶运动速度。根据图1,可以导出船舶的运动数学模型。本文直接给出船舶航行中舵角δ到航向ψ的传递函数形式,如式(1)所示。
日本学者野本对上述三阶模型做了进一步简化,在S = 0处对三阶模型进行泰勒级数展开,降阶为二阶模型,如式(2)所示。
因此,式(2)也被称为Nomoto(野本)模型。式中,K为旋回性指数,T为追随性指数。
2 Anti-windup基本原理
控制器的windup问题一般被认为是当控制器输出和输入之间存在非线性特性时,在PID控制器的积分部分会产生不良现象[5]。由于饱和特性的存在,导致控制输出产生饱和现象,进而当输入信号幅值较大时会对系统的稳定性产生影响。因此,引入适当的补偿环节,使控制系统在出现饱和现象时仍能达到比较满意的性能指标,Anti-windup设计方法已经成为对具有饱和特性的控制系统进行控制研究的基本思路[6]。
3 基于Anti-windup的PID控制
3.1 传统的PID控制算法
PID控制是一种工业中常用的反馈控制方法,它将给定值y(d)与实际输出值y的偏差e进行比例(P)、积分(I)、微分(D)计算,再通过线性组合形成控制量u,作为被控对象的控制率,如图2所示。
图2 PID控制原理图
其公式可表示为:
式中,Kp为比例增益,Ki为积分增益,Kd为微分增益,e为控制误差。
PID的控制机理独立于被控对象模型,利用输入输出误差设计控制策略,控制简单,参数调整方便,控制效果良好。
但是这种传统的控制方法也存在固有的缺陷:(1)误差积分反馈的引入,使闭环变得迟钝,易产生由积分饱和引起的控制量饱和;(2)控制目标在过程中可以“跳变”,但是被控对象输出的变化都有惯性,不可能跳变,易引起超调[7]。
3.2 基于Anti-windup的PID控制算法研究
针对积分环节的饱和现象,A.S.Hodel等提出了抗饱和的变结构PID控制算法,其结构如图3所示。当Switch=1时,为基于Antiwindup的PID控制;当Switch=2时,为传统PID控制[8]。
图3 基于Anti-windup的PID控制器结构
图3中,Kf为抗饱和反馈增益,un为限幅前控制输入,us为限幅后控制输入。
基于Anti-windup-PID算法的控制原理为:对控制输入的饱和误差es = un— us进行积分,并通过自适应系数Kf调整将其加到PID控制中的积分项中。
抗饱和变结构PID控制算法如下:采用系数η实现积分项的自适应调整,其自适应变化率为如式(4)所示。
限幅后控制输入为:
当un值超出饱和限幅时,控制器过饱和量反馈到积分器中,从而使输出舵角返回到控制限幅之内。在偏差出现大变化时,负反馈将削弱积分作用的影响,这时比例和微分的控制作用明显,提高舵角的响应速度。偏差较小时,控制量饱和差es = 0,此时相当于传统的PID控制。
3 基于Anti-windup-PID控制算法的仿真研究
本文采用DH-01型水面舰艇为控制对象,舰长110cm,舰宽36cm,质量为6.5kg,航速为1.5m/s;控制模型为Nomoto模型,旋回性指数K=0.366,追随性指数T=0.2,舵角限幅±35°。PID控制器参数为:。抗饱和反馈增益。Simulink控制模型如图4所示。
图4 基于Anti-windup的PID控制主程序
仿真结果如图5和图6所示。
图5 航向跟踪曲线
图6 控制器输出
从图5和图6可以看出,虽然基于传统PID控制算法的航向控制方式和基于Anti-windup的PID控制方式最终都能使航向跟踪上给定航向,并稳定运行。但基于Anti-windup的PID算法控制效果更好,超调量更小,跟踪速度更快,跟踪精度更高,打舵幅度和打舵次数明显小于基于传统PID算法的航向控制。
4 结论
本文介绍了一种基于Anti-windup-PID的船舶航向控制算法,通过MATLAB仿真试验,与传统PID控制算法的控制效果进行对比分析,仿真结果表明在船舶航向控制中所设计的Anti-windup-PID算法相比于传统PID控制算法控制精度更高,响应速度更快,稳定性更好,证明了该算法在船舶航向控制中的可行性。