4. ROV推进器配置与推力分配
ROV(遥控水下机器人)的姿态与深度控制,最终都要落到推进器上。控制器算出的“期望力/力矩”只是数字,真正让机器人俯仰、偏航、升沉的是各推进器转速与转向的组合。本节要解决的核心问题是:推进器怎么布置、推力如何分配到各推进器、各自由度与推力之间是什么映射关系。理解这套执行机构基础,后面调姿态环、深度环时才知道“指令下去之后机器会怎么动”。
一、常见推进器布局:从三推进器到矢量布置
小型观察级ROV常见三种布局。第一种是三推进器布局:两个水平推进器左右对称安装,一个垂直推进器居中。水平两推进器同向转产生前进/后退,差动产生偏航;垂直推进器负责升沉。这种布局结构简单、成本低,但无法主动控制横滚和俯仰,姿态靠浮心与重心配置被动稳定。
第二种是四推进器布局:两个水平、两个垂直。垂直推进器一左一右,同向转升沉,差动可产生横滚力矩,姿态控制能力比三推进器强,但仍不能主动俯仰。
第三种是矢量布置(全矢量/六推进器或八推进器):推进器不再沿机体轴正交安装,而是以一定角度倾斜布置。典型六推进器矢量布局中,四个水平面推进器呈“X”形或带偏角安装,两个垂直推进器也带倾角。通过组合各推进器的推力分量,可以同时产生纵荡、横荡、升沉、横滚、俯仰、偏航六个自由度的力和力矩。矢量布置的代价是推力分配更复杂、推进器之间耦合更强,需要推力分配矩阵来解算。
二、坐标系与推力分配矩阵
讨论推力分配前必须先约定坐标系,全文保持一致。采用机体坐标系:X轴指向ROV正前方(纵荡正方向),Y轴指向右侧(横荡正方向),Z轴指向下方(升沉正方向,即下潜为正)。绕X轴转为横滚,绕Y轴转为俯仰,绕Z轴转为偏航。推进器推力以产生正方向运动为正。
设ROV有n个推进器,第i个推进器推力为 T_i,其安装位置为 (x_i, y_i, z_i),推力方向单位向量为 (u_i, v_i, w_i)。则第i个推进器对六个自由度的贡献可写成一行:
行向量 = [u_i, v_i, w_i, y_i·w_i - z_i·v_i, z_i·u_i - x_i·w_i, x_i·v_i - y_i·u_i]
把所有推进器的行向量堆叠,得到 n×6 的推力分配矩阵 B。控制器的期望广义力 τ = [Fx, Fy, Fz, Mx, My, Mz]^T 与推进器推力向量 T 的关系为:
τ = B · T
实际使用中方向相反:已知期望τ,求各推进器推力T,即解 T = B⁺ · τ,其中 B⁺ 是B的伪逆。当推进器数量多于6个(如八推进器),B不是方阵,需用最小范数解或带约束的优化分配,避免某个推进器饱和后整体失效。
三、各自由度与推进器推力的映射关系
以典型六推进器矢量布局为例说明映射。假设四个水平推进器编号1~4,分别位于左前、右前、左后、右后,推力方向在水平面内与X轴成±45°;两个垂直推进器编号5、6,位于左右两侧,推力沿Z轴。简化后的分配关系如下表(示例参数,仅用于说明映射逻辑):
| 自由度 | 主要参与的推进器 | 组合方式 |
|---|---|---|
| 纵荡 Fx | 1、2、3、4 | 四者按方向分量同向叠加 |
| 横荡 Fy | 1、2、3、4 | 左右两侧推力分量相减 |
| 升沉 Fz | 5、6 | 两者同向转,推力相加 |
| 横滚 Mx | 5、6 | 两者差动,产生绕X轴力矩 |
| 俯仰 My | 1、2、3、4 | 前后推进器推力差动 |
| 偏航 Mz | 1、2、3、4 | 对角推进器同向、邻角反向组合 |
这张表揭示了矢量布置的关键:同一个推进器同时参与多个自由度。例如水平推进器1既贡献纵荡,又贡献横荡、俯仰和偏航。因此当操作手同时给“前进+左转”指令时,控制器必须解算出一组协调的推力,而不是分别独立控制。若简单地把各自由度指令直接叠加到推进器,容易出现某个推进器超限、其他推进器推力不足的情况。
四、实际分配中的约束与饱和处理
伪逆解出的推力可能超过推进器物理上限。例如某推进器额定推力为30 N,解算结果为42 N,此时必须做饱和处理。常见做法是:先按伪逆得到T,找出最大超限比例 k = max(|T_i| / T_max),若k>1,则整体缩放 T' = T / k。这样虽然牺牲了部分期望力,但保证各推进器协调工作、方向不失真。更精细的做法是带权重的二次规划,优先保证姿态稳定所需的力矩,再分配剩余能力给平移。
另一个实际问题是死区与最小转速。推进器在极低转速下推力不稳定甚至不转,分配结果中接近零的推力应直接置零,避免“嗡嗡响但不产生有效推力”的抖动。同时,正反转推力往往不对称(螺旋桨正转效率略高),分配矩阵中可对正负方向使用不同系数,或在控制层做补偿。
五、从分配到执行:一个可操作的检查流程
配置完成后,建议按以下顺序验证映射关系是否正确,这是理解执行机构基础最直接的方式:
- 单轴测试:只给纵荡正指令,观察ROV是否沿X轴前移,且不产生明显偏航和横滚。若出现偏航,说明水平推进器方向角或位置对称性有误。
- 差动测试:只给偏航正指令,观察是否原地左转(按坐标系约定),前后推进器推力应呈对角同向、邻角反向。
- 垂直通道测试:只给升沉指令,5、6号同向;只给横滚指令,5、6号差动,观察横滚方向与符号是否一致。
- 耦合检查:给“前进+升沉”组合指令,确认水平与垂直通道互不干扰,若出现俯仰,检查水平推进器安装高度是否引入额外力矩。
把以上内容串起来看:推进器布局决定了B矩阵的结构,B矩阵决定了各自由度如何映射到推力,饱和与死区处理决定了分配结果能否真正执行。姿态与深度控制的执行机构基础,本质上就是这张“期望广义力→推进器推力”的映射关系及其工程约束。后续设计姿态控制器时,输出不再是抽象力矩,而是经过分配、限幅后能直接下发给电调的推力指令,控制链路才算闭合。