钱蔚鑫
(中船第九设计研究院工程有限公司,上海 200063)
目前动力定位(Dynamic Positioning, DP)系统已在海洋工程领域得到广泛应用[1]。通过使用DP系统,海洋平台或勘探钻井可快速适应外部环境的变化。这种自动控制系统可通过调节推进器的转速和角度来产生使海上装备朝指定方向移动的力[2]。
传统的DP控制系统通常采用控制器算法和推力分配(Thrust Allocation, TA)算法设计[3]。控制器计算所需的广义力包括纵荡力、横荡力和艏摇力矩。TA算法以广义力为输入,将其分配给每个推进器。由于控制器算法没有考虑螺旋桨的推力饱和、艏推进器的不对称效应和能量消耗等因素,采用该算法设计的DP控制系统可能是次优的。模型预测控制(Model Predictive Control, MPC)可将观察到的船舶状态作为输入,计算出每个螺旋桨应产生的推力,从而产生理论上最佳的推进器输出。然而,MPC算法是一种耗时的方法[4],在快速动态系统中难以做到实时实现。
本文对MPC算法[5]进行改进,大大提高MPC中每个步骤的计算速度。首先,研究MPC中二次规划(Quadratic-Programming, QP)的特殊结构,然后,采用近似内点法求解QP;最后,通过算例对该方法的有效性进行验证。
船舶的离散状态动力学模型[6]为
式(1)中:t为时间为状态为控制输入为环境干扰;矩阵和为已知矩阵,与质量、阻尼和其他流体动力效应有关。对于船舶而言,式(1)包括随体坐标系与大地坐标系之间的速度转换,有
式(2)中:φ为航向角。
MPC是一种基于有限时域的滚动优化,会根据现在的和以前的状态x(0),…,x(t)确定当前的控制输入u(t)。定义一个凸二次惩罚函数有
此外,考虑状态约束和控制约束,定义一组线性不等式,即
在MPC中,考虑惩罚函数将限制在T步骤的范围[7]。通过求解QP问题[8],在每个步骤中找到控制输入u(t),有
通过定义一个整体决策变量对式(7)进行改写,有
罚函数法是通过在目标函数中增加罚函数来代替不等式约束,进而求解上述QP问题的。
式(9)中:φ(z)为罚函数。
式(11)中:d为平行元素为P的第i行。在迭代过程中,保证隐式约束并计算得到主步长和对偶步长Δz,Δν,直到z+Δz和ν+Δν给出的残差(rd,rp)足够小。
式(12)应在MPC中迭代计算,若使用密集的LDLT因式分解来求解,运算浮点数是次。若利用对角矩阵的稀疏结构,运算浮点数可降次。Φ的逆矩阵可写为
通过分块消除,可通过以下步骤求解式(12):
该Schur补Y是一个分块对角阵,即
在标准牛顿法中,只有当残差的范数足够小时迭代才会停止。在近似方法中,会限制迭代步数,即选择Kmax作为牛顿步骤的迭代极限。通常将Kmax的值设定为3~10。
提出一个机械控制系统,由经弹簧连接的6个物体组成(见图1)。船舶运动可简化为该系统模型。假设驱动力向量的大小在-0.5~+0.5,每个物体的位置在-4~+4。连续时间状态空间模型为
图1 弹簧连接振动质量模型
在一阶离散连续时间状态空间模型中应用公式
式(16)中:Tc为采样时间,用来离散化该连续时间系统。在快速MPC中,选择一个时间范围T=30,二次目标函数的权值为
采用近似牛顿法进行数值模拟,并将模拟结果与采用标准牛顿法所得结果相对比,各算例的仿真数据见表1,仿真结果见图2~图4。由图2~图4可知,快速MPC中每个物体的位移与标准MPC中物体的位移相同。从功耗和变化率方面看,快速MPC的控制效果不会比标准MPC的控制效果差。这表示快速MPC可获得令人满意的控制性能。同时,从计算时间方面看,使用标准 MPC求解器计算每一步控制输入需500~1000ms,而对于该算例,执行一个快速MPC步骤需7~8ms,可达到100Hz的控制率。
表1 各算例的仿真数据
图2 x1和u1随时间的变化曲线
图3 x3和u2随时间的变化曲线
图4 x5和u3随时间的变化曲线
本文利用MPC中的稀疏结构提高了MPC的计算速度,可实现实时应用。快速MPC的控制性能令人满意。运用快速MPC算法将使船舶的最优控制输入计算成为可能。该算法具有普适性,可解决环境干扰情况下的快速控制问题,在无人机和车辆运动控制等领域均可应用。