4. 深度控制回路开环测试
在完成传感器标定与执行机构检查之后,不要急着闭合深度环。开环测试是整定前最关键的一步:它把控制器“摘出去”,由人直接给执行机构下指令,观察深度如何变化。这样做的目的不是让机器人稳定在某个深度,而是把被控对象本身的静态与动态特性摸清楚——死区有多大、饱和在哪里、增益是多少、延迟有多长。这些量直接决定后面 PID 参数的量级,也决定你该不该先做前馈或死区补偿。
先统一约定,再动手
本节统一采用以下约定,全文与图示保持一致:深度 z 以水面为 0,向下为正,单位米(m);垂向推力指令 u 归一化为 −100%~+100%,正值表示向下推(下潜),负值表示向上推(上浮);压载指令 b 同样归一化,正值表示注水增重。若你的推进器布置或坐标系与此相反,请在测试记录表里显式注明,切勿中途切换符号。
测试前需要满足几个条件:机器人处于静水或弱流环境,缆线留有足够余量不产生额外拉力,深度传感器零漂已在近水面复核,推进器死区与转向已在台架上确认。建议在 1~3 m 的浅水安全深度区间内做,下方留出至少 2 m 余量,并设置一名操作员随时可切回手动上浮。
测试方法:阶梯指令而非连续摇杆
开环测试的核心手法是“阶梯给定 + 保持 + 回零”。以垂向推力为例,从 u=0 开始,依次给出 +10%、+20%、+30%……直到接近饱和,每一档保持足够长时间(建议 20~40 s,视机器人垂向阻尼而定),记录深度时间序列,然后回零并等待深度稳定,再给下一档。上浮方向用负值重复一遍。压载测试同理,但压载是慢过程,每档保持时间要拉长到 1~3 min。
为什么必须回零再给下一档?因为深度是积分型被控量:只要净垂向力不为零,深度就会持续变化,不存在“稳态深度”。开环下你能观察到的是深度变化率,而不是深度本身。因此记录时真正要提取的是每一档指令下稳定段的 dz/dt(垂向速度),它才是开环增益的载体。
死区:指令给了,为什么不动
死区表现为:小指令下深度几乎不变。来源通常有三类——推进器本身的启动死区、传动/密封摩擦、以及净浮力偏差造成的“偏置”。测试时从 0 开始以 2%~5% 步进增加指令,记录深度开始持续单向变化的那一档,即为死区上边界 u_d+;反向重复得到 u_d−。若两者不对称,说明存在常值偏置(例如净浮力未配平),这个偏置量在后面做前馈补偿时非常有用。
示例(合理假设,非实测):某小型 ROV 下潜方向在 u=+6% 时深度开始稳定增加,上浮方向在 u=−9% 时才见效,则死区约为 +6%/−9%,中点偏置约 −1.5%,提示存在轻微正浮力。此时若直接上 PID,积分项会长期在死区里“爬”,表现为响应迟钝或小幅振荡。
饱和:指令再大,速度不再涨
继续加大指令,垂向速度会先近似线性增长,随后增长变缓并趋于平台,这就是饱和。记录每个指令档对应的稳定垂向速度,画出 u–v_z 关系,线性段的斜率就是开环速度增益 K_v(单位 m/s per 100%)。饱和点取速度达到平台值 90% 对应的指令。饱和意味着:控制器输出超过该值不会带来更多 authority,反而在退出饱和时产生明显超调,因此后续整定必须做输出限幅与抗积分饱和。
延迟:从下指令到深度“有反应”
延迟由通信周期、推进器响应、机体惯性与传感器滤波共同造成。测量方法:在深度平稳时给一个明确的阶跃(如从 0 跳到 +30%),用时间戳记录指令发出时刻 t0,以及深度序列首次超出噪声带(如 ±2 cm)并持续变化的时刻 t1,t1−t0 即纯延迟的初步估计。再把深度响应达到总变化量 63% 的时间记为 t63,可粗估一阶时间常数 τ≈t63−t1。这两个数决定了 PID 的采样周期与微分项是否可用:若延迟接近或超过 τ,微分项会放大噪声,应谨慎使用。
把数据整理成可用的初步估计
测试结束后,建议按下表整理,形成一页“开环特性卡”,贴在调试记录里。表中数值为示例,用于说明字段与量级,不代表任何具体机型的实测结果。
| 项目 | 下潜方向 | 上浮方向 | 用途 |
|---|---|---|---|
| 死区边界 | +6% | −9% | 死区补偿 / 前馈偏置 |
| 线性段增益 K_v | 0.045 m/s per 100% | 0.040 m/s per 100% | 比例增益量级估算 |
| 饱和指令 | +70% | −75% | 输出限幅 |
| 纯延迟 t1−t0 | 0.8 s | 0.9 s | 采样周期、微分取舍 |
| 时间常数 τ | 2.5 s | 2.8 s | 积分时间初值参考 |
有了这些量,PID 初值就有了依据而非盲猜。例如比例增益可先按“期望速度误差对应多少指令”反推:若希望 0.1 m/s 的速度偏差产生约 30% 的指令修正,则 K_p ≈ 30 / (0.1/0.045) ≈ 13.5(以速度误差为输入的写法,具体取决于你的控制器输入是深度误差还是速度误差,务必换算一致)。积分时间可取 3τ~5τ 量级起步,微分在延迟接近 τ 时先关闭。
常见误判与处理
第一类误判是把“深度没变”直接当成死区。若机器人净浮力较大,小指令可能只是抵消了浮力而尚未产生净运动,此时深度不变但并非执行机构死区。区分方法:观察指令回零后深度是否缓慢反向漂移,若有,说明存在浮力偏置,应先在配平上处理。第二类误判是把传感器滤波延迟算进执行延迟。若深度信号经过强低通,t1 会被推后,导致延迟高估。建议在开环测试时临时降低滤波强度或同时记录原始深度,两者对比后再定延迟。第三类是把饱和点取得过早,仅凭一两档就判断平台,容易低估 authority,应至少覆盖到速度不再明显增长的连续两档。