Files
ParkingRobot/电机记录.txt
T

119 lines
4.0 KiB
Plaintext
Raw Normal View History

我检查了这组日志。结论是:上层目标速度和M层计算基本正常,CAN通信也比较稳定;真正明显的波动发生在驱动器返回的实际电机速度,尤其是右前轮组。
数据文件:
- [CAN原始反馈](</D:/Users/Desktop/入职培训/停车机器人/MyParking/logs/wheel-speed/20260730_112709_961_Car1_can.csv>)
- [周期快照](</D:/Users/Desktop/入职培训/停车机器人/MyParking/logs/wheel-speed/20260730_112709_961_Car1_snapshot.csv>)
主要结果:
| 项目 | 结果 |
|---|---:|
| 测试总时长 | 27.5s |
| 有效运动时间 | 约23.1s |
| 稳态目标速度 | 0.30045m/s |
| CAN反馈频率 | 每个电机约20Hz |
| CAN记录帧数 | 4413帧 |
| 记录器丢帧 | 未发现 |
| 整车平均实际速度 | 0.29988m/s |
| 整车平均速度标准差 | 0.01538m/s,约5.1% |
软件下发没有跳变
8个原始目标速度在稳态完全一致:
```text
CmdLFLCmdRRR = 0.30045m/s
标准差 = 0
```
启动阶段也不是突然给到0.3,而是大约1秒内平滑上升:
```text
0 → 0.03 → 0.06 → …… → 0.30045m/s
```
因此不是遥控器、`SendMotion`或者速度加减速逻辑产生的目标跳变。
舵轮PID修正也很小
`PidLFLPidRRR` 的范围大约是:
```text
0.29910.3018m/s
```
修正量只有约 `±0.001m/s`。所以不是 [MotorRoutine.cs](</D:/Users/Desktop/入职培训/停车机器人/MyParking/MedullaAdapter/MotorRoutine.cs:168>) 中的舵角差速PID把轮速改成了0.2~0.4。
实际CAN反馈波动明显
稳态阶段8个电机反馈范围如下:
| 电机 | 均值 m/s | 标准差 | 最小~最大 m/s |
|---|---:|---:|---:|
| LFL | 0.3010 | 0.0332 | 0.2290.377 |
| LFR | 0.2990 | 0.0340 | 0.2170.369 |
| LRL | 0.2996 | 0.0261 | 0.2360.387 |
| LRR | 0.3001 | 0.0304 | 0.2260.374 |
| RFL | 0.2992 | 0.0380 | 0.2110.387 |
| RFR | 0.3021 | 0.0480 | 0.2120.397 |
| RRL | 0.3013 | 0.0274 | 0.2310.383 |
| RRR | 0.2982 | 0.0321 | 0.2220.388 |
均值都接近0.3,说明:
- RPM解码和单位换算没有明显错误。
- 减速比10.5、轮径85mm至少在平均值上是匹配的。
- 正负号处理正确,没有运行中正负翻转。
但瞬时波动确实比较大,右前右电机 `RFR` 最明显。
舵角不是主要原因
直线阶段:
```text
四个目标舵角始终为 0°
实际舵角基本在 ±0.4°以内
```
没有出现舵角从正角度跳到负等价角,也没有发生接近180°的方向重选。因此这次轮速波动不是舵轮方向正负切换造成的。
CAN通信整体正常
8个驱动器基本都是:
```text
反馈频率 ≈ 20Hz
通常最大间隔 ≈ 63ms
```
只有 `LFR` 出现过一次约105ms的间隔,像是偶发少一帧,但不足以解释整个测试期间持续的轮速波动。
需要注意的问题
同一舵轮内部两个电机的实际速度差,瞬时可达到约:
```text
0.0750.10m/s
```
但软件下发给两个电机的差值只有约 `0.001m/s`。这说明较大的左右电机速度差不是M层主动要求的。
可能来源依次是:
1. 驱动器自身速度闭环参数或速度反馈滤波不足。
2. 编码器瞬时速度估计噪声。
3. 同一舵轮两个驱动电机负载不均。
4. 机械间隙、轮胎形变或地面摩擦变化。
5. 驱动器内部电流限幅或母线电压波动。
另外,`snapshot.csv` 实际只有约12.8Hz,而不是期望的50Hz。原始CAN仍有20Hz,所以本次诊断结论有效;但说明 `MCURoutine.Operation()` 中的同步串口、IO和多次CAN调用占用了较长时间。以后做快速轨迹控制时需要单独处理这个周期问题。
下一步最有价值的测试是:
- 把驱动轮架空,同样下发0.3m/s并记录一次。
- 落地空载,再记录一次。
- 分别测试0.1、0.2、0.3m/s,每档保持10秒。
如果架空后仍然在0.2~0.4之间波动,重点检查驱动器速度环和编码器速度反馈;如果架空稳定、落地波动,则重点检查机械负载、轮胎和同一舵轮双电机同步。