对接电机 2 / 3:积分差是谁造成的?

数据:ECAT 无源采集 lab/ecat_passive_latest.csv · 周期 0.25ms · 理论:刚性镜像对接时 v2+v3≡0,∫(v2+v3)dt≡0,a2+a3=常数
方法:对齐 cycles 后做梯形积分;先加后积与先积后加一致。

关键数字

巡航 |v| N2 / N3
199.38 / 199.38
巡航段 ∫(v2+v3) 平均
0.11°
停车段 ∫(v2+v3) |均值|
6.43°
干净起动 Δt 中位/均值
0.00 / 0.38 ms

通俗结论:到底是谁慢?

先说人话:两台电机并不是“有一台全程都慢”。 你看到的积分差,主要不是巡航时谁转得慢,而是快停下 / 刚要走的那几十一到几百毫秒里,两台对不齐, 把理论应为 0 的 ∫(v2+v3)dt 顶出 5~20° 左右的偏差。

一句话:积分差的大头在 停车阶段。 对接约束要求 v2 = −v3;只要刹停瞬间一台还带着速度、另一台已经接近 0, v2+v3 就会冒尖峰,积分就会被拉离理论 0。这属于动态不同步, 不等于某台电机“标定转速低、一直慢”。
正常:同时启动 / 巡航一致 / 中段积分≈0
注意:停车沿残速、行程衔接重叠、积分被顶开
偏大:该行程 ∫(v2+v3) 或编码器 Δ(a2+a3) 明显偏离 0

曲线(带标注)

#0#1#2#3#4#5#6#7 速度 deg/s — 蓝 N2 / 橙 N3 合速度 v2+v3(理论 0)— 停车尖峰在这里 积分 ∫(v2+v3)dt(理论 0)— 每段末的偏离就是耦合误差 t_rel 0.1..60.1s · ECAT 0.25ms · 竖线为行程起点 ↑ 巡航:两线贴合,都不慢 ↓ 停车沿:v_sum 尖峰 → 积分爬升

图上怎么看(对照上方曲线)

↑ 巡航段(两条速度曲线几乎贴合)

N2 蓝线、N3 橙线在 |v|≈200°/s 附近重合 → 都不慢。 下方红线 v2+v3 贴 0,积分曲线几乎水平 → 对接约束在稳态是成立的。

↓ 停车沿 / 换向点(红线尖峰)

接近终点时,一台速度先掉下来、另一台还在走 → v2+v3 出现 ±100~200°/s 尖峰。 积分曲线在这里爬上或爬下,行程结束就停在理论 0 以外几度到二十度。 这里是积分差的主要来源。

↓ 行程刚衔接时(起动窗)

若上一段没完全停稳就反向,会看到“N3 早就动了”的假象(表格里 onΔ 为 −800ms 量级)。 这不是启动指令不同步,而是速度还在反向爬坡 / 残速, 也会把起动窗积分抬高一点。

↓ 紫色角度和 a2+a3

理论应为常数(理想为 0)。行程终点若偏到 ±10~25°,与该行程 ∫(v2+v3) 同量级 → 说明偏差是真实位移耦合误差,不只是速度噪声。

标定建议(若要压积分差): ① 先统一两台的减速段(同样斜率刹停),而不是去改巡航速度; ② 检查 N2/N3 负载与制动是否对称; ③ 控制器上对对接轴做 v2+v3 → 0 的纠偏,比单轴调 PID 更对症; ④ 序列 hold 不要短于“两台都确认停稳”的时间,避免重叠行程把积分搅浑。

各行程明细(积分从行程起点重算)

#方向起动Δ(N3-N2)巡航|v| N2/N3 ∫起动∫巡航∫停车 停时仅N2在动停时仅N3在动停车归因Δ(a2+a3)
#0down +0.00 ms 199.30 / 199.23 +0.00 -0.28 +7.34 +0.00 +1.29 N3 残速 -21.32°
#1up -827.50 ms 199.42 / 199.42 +28.52 +0.11 -7.58 +0.00 -0.84 N3 残速 +25.81°
#2down -840.50 ms 199.28 / 199.30 -2.08 +0.09 -3.39 +0.00 +0.00 两台接近同步刹停 -1.12°
#3up +2.25 ms 199.47 / 199.43 +0.12 +0.26 +5.99 +0.58 +0.00 N2 残速 -0.14°
#4down -1.50 ms 199.34 / 199.40 +0.74 +0.22 -7.46 -1.24 +0.00 N2 残速 +0.19°
#5up +1.50 ms 199.47 / 199.43 +0.26 +0.20 +6.13 +0.92 +0.00 N2 残速 -0.19°
#6down +0.00 ms 199.25 / 199.35 +0.64 +0.35 -11.65 -4.49 +0.00 N2 残速 +0.21°
#7up +0.00 ms 199.51 / 199.49 +0.15 -0.04 +1.92 +0.00 +0.00 两台接近同步刹停 -13.38°

单位:角度 deg(积分)· 速度 deg/s · 时间 ms。 「停时仅N2/N3在动」为该窗口内单边残速对 ∫(v2+v3) 的贡献。

原始结论脚本输出(备查)

{
  "main_source_of_integral_error": "起动段",
  "phase_Isum_mean": {
    "on": 3.5436874809462364,
    "cruise": 0.11441910352287721,
    "stop": 1.0892628954283632
  },
  "who_lags_at_stop": "N2",
  "stop_lag_ms_n3_minus_n2_mean": 0,
  "cruise_speed": "巡航速度接近",
  "cruise_bias_deg_s": 0.0004292367234076469,
  "plain": [
    "启动:两台几乎同时动(差约 0.x ms),启动不是积分变大的主因。",
    "巡航:两台平均速度几乎一样,积分在中段也很小(贴合理论 0)。",
    "停车:积分差主要在这里积出来;N3 相对 N2 平均晚停约 0 ms。",
    "停止窗里「只剩一台在动」时:主要是 N2 还在走,把 ∫(v2+v3) 推离 0。",
    "所以:不是谁「全程都慢」,而是 N3 停车更拖、在停机瞬间继续走,积分被顶起来。",
    "N2 也有停车滞后,但幅度和样本都更小;巡航略快一点点时对积分贡献有限。"
  ]
}