2. 推力分配问题的数学描述

在上一节中我们已经明确:DP控制系统由控制器给出三自由度广义力指令 τ = [Fx, Fy, Mz]ᵀ,而推力分配的任务是把这一组“合力与合力矩”分解到各台推进器上。要让计算机真正求解这个问题,必须先把工程语言翻译成数学语言——也就是建立推力分配的一般优化模型。本节围绕三个问题展开:目标函数怎么写、约束条件怎么列、问题规模与实时性如何权衡。

一、决策变量与推力映射关系

设船上有 n 台推进器,第 i 台推进器的推力(或推力指令)记为 uᵢ。对于全回转推进器,uᵢ 是沿其推力方向的标量;对于定距桨加舵的配置,则需同时考虑推力与舵角。为统一表达,工程上常把每台推进器的输出写成二维分量 (Tᵢx, Tᵢy),再通过推力分配矩阵 B(α) 映射到船体三自由度:

τ = B(α) · u
B(α) = [ b₁(α₁)  b₂(α₂)  …  bₙ(αₙ) ]
bᵢ(αᵢ) = [ cosαᵢ , sinαᵢ , -lᵢy·cosαᵢ + lᵢx·sinαᵢ ]ᵀ

其中 αᵢ 为第 i 台推进器的推力方位角,(lᵢx, lᵢy) 为其作用点相对船体旋转中心的坐标。这里必须约定坐标系:本文取船艏为 x 正方向、左舷为 y 正方向、逆时针力矩为正,全文与图示保持一致。矩阵 B 的每一列就是该推进器单位推力对三自由度的“贡献向量”,它把物理布置信息编码进了数学模型。

二、目标函数:误差、能耗与磨损的加权

推力分配本质是一个带约束的优化问题。最基础的目标是让实际合力尽量逼近指令,即最小化推力误差:

J₁ = ‖ B(α)·u − τ_cmd ‖²_W

但仅追求误差最小会导致“能耗最优解”被忽略:多台推进器可能以互相抵消的方式产生同一合力,虽然误差为零,却白白消耗功率。因此引入能耗项。推进器功率近似与其推力的平方成正比,常用形式为:

J₂ = Σᵢ (uᵢ² / uᵢ,max²)  或  Σᵢ cᵢ·|uᵢ|³

前者是归一化二次型,计算简单、凸性好;后者更贴近螺旋桨功率特性,但非线性更强。此外,频繁调整推力方位角会加剧回转机构磨损,可加入方位角变化惩罚项 J₃ = Σᵢ wᵢ·(αᵢ − αᵢ,prev)²。最终目标函数为加权和:

min J = w₁·J₁ + w₂·J₂ + w₃·J₃

权重的选取直接决定分配“性格”:w₁ 大则精度优先,适合动力定位精度要求高的作业;w₂ 大则节能优先,适合长时间待机保持;w₃ 大则减少方位角摆动,适合对机械寿命敏感的老旧设备。实际工程中这些权重常按作业模式分组预设,而非在线随意调整。

三、约束条件:物理极限与安全边界

优化解必须落在物理可行的范围内,主要约束包括:

  • 推力上下限:uᵢ,min ≤ uᵢ ≤ uᵢ,max,其中下限可能为负(表示可反向推力),也可能为零(如某些定距桨不可反转)。
  • 推力变化率:|uᵢ(k) − uᵢ(k−1)| ≤ Δuᵢ,max·Δt,防止指令突变导致机械冲击或功率过载。
  • 禁止角:全回转推进器在某些方位角下推力会冲刷船体或相互干扰,需将 αᵢ 排除在禁止区间 [αᵢ,forbid1, αᵢ,forbid2] 之外。
  • 推力禁区/互斥区:部分推进器布置过近,同时大推力会产生干扰,需附加耦合约束。

禁止角约束是非凸的,这是推力分配问题求解难度的重要来源。工程上常把方位角离散为若干候选方向(如每 5° 一个格点),把连续非凸问题转化为组合优化,再用混合整数规划或启发式搜索求解。

推力分配优化模型结构 控制器指令 τ = [Fx,Fy,Mz]ᵀ 优化求解器 min J = w₁J₁+w₂J₂+w₃J₃ s.t. 推力/变化率/禁止角 推力指令 u 各推进器 Tᵢ, αᵢ 目标函数项 J₁ 推力误差 ‖B·u−τ‖² J₂ 能耗 Σ(uᵢ/uᵢ,max)² J₃ 磨损 Σ(Δαᵢ)² 约束条件 推力上下限 uᵢ,min ≤ uᵢ ≤ uᵢ,max 变化率 |Δuᵢ| ≤ Δuᵢ,max·Δt 禁止角 αᵢ ∉ [α₁,α₂] 实时性要求 控制周期 100~200 ms 求解时间 < 周期 50% 规模 n=4~8 台推进器 求解策略:方位角离散化 → 混合整数规划 / 序列二次规划; 工程折中:先解能耗最优,再校验禁止角与变化率,必要时降级为伪逆分配。 权重 w₁/w₂/w₃ 按作业模式预设,避免在线频繁切换导致分配抖动。

四、问题规模与实时性

推力分配问题的规模由推进器数量 n 和方位角离散粒度共同决定。若 n=6、每台推进器方位角离散为 72 个候选方向(5° 一格),则组合空间约为 72⁶ ≈ 1.4×10¹¹,直接穷举不可行。因此实际系统普遍采用“分层求解”:先固定方位角求推力幅值(线性或二次规划),再在候选角中搜索使目标最小的组合,或采用序列二次规划(SQP)在连续空间迭代。

实时性方面,DP 控制周期通常在 100~200 ms 量级,推力分配求解必须留出足够余量给控制律计算与通信。工程经验是:单次分配求解时间控制在控制周期的 30%~50% 以内。对于 4~8 台推进器的典型船舶,采用离散化加二次规划的方案,单次求解可在 10~30 ms 内完成;若推进器更多或约束更复杂,则需引入热启动、上一周期解作为初值等加速手段。

教学示例(合理假设,非实测):某 6 推进器 DP 船,控制周期 150 ms,分配求解耗时约 22 ms,占周期 15%,满足实时性要求。若将方位角离散粒度从 5° 细化到 2°,组合空间扩大约 15 倍,求解耗时可能升至 80 ms 以上,此时应评估是否值得用精度换时间。

五、建模时的常见取舍

建立模型时有三组典型取舍需要提前想清楚。第一,线性还是非线性:若把方位角固定、只优化推力幅值,模型是线性的,求解快但灵活性差;若方位角也作为变量,模型非线性,精度高但求解慢。第二,硬约束还是软约束:推力上下限通常设为硬约束,而推力误差在极端工况下可设为软约束(允许短时超差),避免优化无解。第三,集中式还是分布式:集中式把全部推进器放在一个优化问题里求解,全局最优但计算量大;分布式按推进器分组求解,实时性好但可能牺牲最优性。