2. 船舶运动数学模型
在DP控制算法仿真中,被控对象是船舶本身,而控制器设计、推力分配、观测器调参都建立在同一个基础之上——船舶运动数学模型。本节聚焦最常用的三自由度平面运动模型:纵荡(surge)、横荡(sway)和艏摇(yaw)。垂荡、横摇、纵摇在DP低速作业中影响相对次要,通常被忽略或作为扰动处理,因此三自由度模型是DP仿真与数据分析的起点。
坐标系与状态量定义
建模前必须先固定参照约定,否则后续的符号、阻尼矩阵和科里奥利项都会混乱。本文采用船舶领域通用的两种坐标系:
- 大地坐标系(北东地,NED):用于描述船舶的绝对位置与航向,状态量为位置 (x, y) 和艏向角 ψ。
- 船体坐标系(body-fixed):原点取在船舶重心或水线面中心,x轴指向船艏,y轴指向右舷,z轴向下。速度分量记为纵荡速度 u、横荡速度 v、艏摇角速度 r。
两套坐标系的转换关系由旋转矩阵 R(ψ) 描述。定义艏向角 ψ 为船体x轴相对大地北向的夹角,逆时针为正。则船体速度到大地速度的映射为:
ẋ = u·cosψ − v·sinψ
ẏ = u·sinψ + v·cosψ
ψ̇ = r
这一转换是DP位置控制的核心:控制器在大地系下计算位置误差,但船舶动力学在船体系下描述,两者必须通过 R(ψ) 衔接。仿真中若把 ψ 的正方向或旋转矩阵写反,会出现“船往反方向修正”的典型错误,因此建议在代码中把 R(ψ) 单独封装并做单元测试。
三自由度运动方程的结构
刚体在流体中的平面运动方程可写成矩阵形式:
M·ν̇ + C(ν)·ν + D(ν)·ν = τ + τ_env
ν = [u, v, r]ᵀ
其中 M 为系统惯性矩阵(含刚体质量与附加质量),C(ν) 为科里奥利与向心力矩阵,D(ν) 为阻尼矩阵,τ 为推进器与舵产生的控制力/力矩,τ_env 为风、浪、流等环境载荷。下面逐项说明其物理含义与参数化方式。
惯性矩阵与附加质量。船舶加速时,周围流体也被带动加速,产生与加速度反向的惯性力,等效为“附加质量”。三自由度下 M = M_RB + M_A,刚体部分为 diag(m, m, I_z),附加质量部分通常取:
M_A = −[ X_u̇ 0 0
0 Y_v̇ Y_ṙ
0 N_v̇ N_ṙ ]
由于船体左右近似对称,X_u̇、Y_v̇、N_ṙ 为主对角项,Y_ṙ 与 N_v̇ 体现横荡—艏摇耦合。附加质量一般与船体质量同量级,不可忽略;对一艘约 5000 吨的DP工程船,纵荡附加质量可达船体质量的 5%~15%,横荡方向可达 80%~100%。
科里奥利与向心力项。当船舶同时具有横荡速度和艏摇角速度时,船体坐标系本身在旋转,速度矢量在旋转系中求导会产生额外的惯性耦合项。对三自由度模型,C(ν) 可写为:
C(ν) = [ 0 0 −(m−Y_v̇)·v − (m·x_g − Y_ṙ)·r
0 0 m·u
(m−Y_v̇)·v + (m·x_g−Y_ṙ)·r −m·u 0 ]
其物理意义是:前进中的船若受到横向速度,会因向心力产生艏摇力矩;反之艏摇也会耦合出横向惯性力。DP低速作业时 u 较小,这些耦合项数值不大,但在动力定位与航迹跟踪的过渡工况、以及大角度回转仿真中,忽略 C(ν) 会导致轨迹偏差和控制器增益误整定。
阻尼项。水动力阻尼分为线性与非线性两部分。低速DP工况以线性阻尼为主,高速时二次阻尼显著。工程上常用一阶线性阻尼加二次修正:
D(ν)·ν ≈ [ X_u·u + X_|u|u·|u|·u
Y_v·v + Y_|v|v·|v|·v + Y_r·r
N_r·r + N_|r|r·|r|·r + N_v·v ]
阻尼系数通常由模型试验、CFD或经验公式(如Fossen的简化估算)获得。对教学仿真,可先取线性阻尼,再逐步加入非线性项观察响应差异。
完成一个简单船型的参数化
下面以一艘假设的5000吨DP工程船为例,把上述方程落成可运行的参数集。参数化分三步:先确定刚体参数,再估算附加质量与阻尼,最后组装成仿真可用的矩阵。
第一步:刚体参数。取船长 L = 80 m,船宽 B = 18 m,吃水 T = 6 m,排水质量 m = 5.0×10⁶ kg,绕z轴转动惯量 I_z ≈ m·(L²+B²)/12 ≈ 1.2×10⁹ kg·m²。重心纵向位置 x_g 取在船中附近,教学示例中可先设 x_g = 0 简化处理。
第二步:附加质量与阻尼估算。按经验比例取附加质量:X_u̇ = −0.08m,Y_v̇ = −0.90m,N_ṙ = −0.05I_z,耦合项 Y_ṙ、N_v̇ 先取零。线性阻尼按Fossen简化估算,纵荡 X_u ≈ −5.0×10⁴ N·s/m,横荡 Y_v ≈ −2.0×10⁵ N·s/m,艏摇 N_r ≈ −1.5×10⁸ N·m·s/rad。这些数值属于教学假设,目的是让仿真响应量级合理,而非精确复现某条实船。
第三步:组装与验证。把参数填入 M、C(ν)、D(ν) 后,先做开环阶跃测试:给纵荡力 X = 2×10⁵ N,观察 u 是否在数十秒内趋于稳态速度;给艏摇力矩 N = 5×10⁷ N·m,观察 r 的响应时间常数是否与 N_r/I_z 的量级一致。若稳态速度或角速度明显偏离物理直觉,说明阻尼或附加质量取值需要调整。这一步是后续DP控制器整定的前提,模型响应不合理,控制器参数再调也难得到可信结论。
完成参数化后,这个三自由度模型就可以作为DP仿真中的“被控对象”接入控制器。下一阶段的位置观测、推力分配与增益整定,都将以本节建立的 M、C(ν)、D(ν) 和 R(ψ) 为基础展开。