推力电机台架测试模型库。保存从台架测试数据中提取的电机模型参数、 每台电机一组代表性 CSV 数据与一张特性图。原始测试日志与录制数据不入库。
测试日期:2026-09-28。当前收录两台双向推力电机(3D 桨);后续将补充 单向推力电机。
| 电机 + 桨 | 方向性 | F(+1) [raw_count] | F(−1) [raw_count] | 反/正推比 | τ 中位数 | 换向延迟 |
|---|---|---|---|---|---|---|
| T-Motor Velox V2207 1950KV + Gemfan 513D | 双向 (3D) | +18.1 ± 1.0 (n=14) | −21.2 ± 0.5 (n=13) | 1.17 | 87 ms | 60–154 ms |
| Hobbywing 2807 1300KV + Gemfan 8045 3D | 双向 (3D) | +22.6 ± 1.0 (n=14) | −28.0 ± 1.0 (n=11) | 1.24 | 45 ms | 84–117 ms |
力为未标定传感器的
raw_count,正值为正推方向;详见 docs/bench-protocol.md(单位警告、指标定义、 测试协议)。τ 为保持段入口一阶拟合,RAMP 工况下偏小,Velox 的 STEP 录制给出完整换向值 ~60–140 ms。 目录名约定:<电机>-<KV>-<桨>,因为推力特性取决于电机+桨组合。
motors/<电机-桨-id>/
model.json 模型参数:硬件信息、稳态推力、准静态 F(u) 曲线(升/降程
中位数)、时间常数、换向/起力延迟、各录制明细
representative.csv 代表性录制的时间序列(t_s, mode, u_command, dshot,
force_raw_count),力已做零漂校正
characteristic.png 特性图:命令/力时间历程 + F(u) 迟滞回线与稳态点
tools/
extract_model.py 从原始录制目录提取上述三件套(可复用于新电机)
docs/
bench-protocol.md 台架构成、命令协议、指标定义与数据注意事项
import json
m = json.load(open("motors/t-motor-velox-v2207-1950kv-gemfan-513d/model.json",
encoding="utf-8"))
f_plus = m["static"]["F_plus1_raw_count"]["mean"] # +18.07 raw_count
f_minus = m["static"]["F_minus1_raw_count"]["mean"] # -21.15 raw_count
curve = m["quasi_static_curve"] # [{u, force_raw_count, ...}]-
解压该电机的
g10_record_*.zip录制目录; -
运行
python tools/extract_model.py \ --motor <电机-桨-id> --label "<显示名>" \ --hw-motor "<电机型号, KV>" --hw-prop "<桨型号>" \ --recordings <录制目录...> \ --representative <其中一次> \ --out motors/<电机-桨-id> -
提交
motors/<id>/三个文件。原始 zip 与录制目录已被.gitignore排除。
单向推力电机直接适用(u ∈ [0, 1],脚本不假设对称性)。
- T-Motor Velox V2207 1950KV + Gemfan 513D:
绿色电机.zip→ 4 次录制 (2026-09-28 09:00–10:01) - Hobbywing 2807 1300KV + Gemfan 8045 3D:
g10_record_20260928_12*.zip→ 4 次录制(2026-09-28 12:07–12:15)
每台电机的单次录制明细(零漂、各保持段稳态值、τ 值)保存在对应
model.json 的 recordings 字段中。

