Imported from AigisYangyan/2026_NUEDC (
.claude/skills/diansai-skills/SKILL.md). Install upstream withnpx skills add AigisYangyan/2026_NUEDC --skill diansai-skills. Copyright stays with the author.
电赛工程思想(蒸馏自 2026 备赛全部对答轮次)
分工:本 skill 管「电赛怎么想」;电机硬件保护看
motor-safety,数据链所有权看data-chain,有界任务全流程看embedded-closed-loop,架构规则看根 AGENTS.md。 本文不重复它们的内容。
1. 数据层已冻结——不要重新推导
预测结论全部在四份文档里,引用它们,不要重读题目 PDF、不要重算权重:
docs/2026清单重合性数学模型与题型预测.md—— 数据层:归属表(一手 20 例)、 规律 L1~L7、回测模型、2026 概率分布docs/2026赛题预测与硬件差距清单.md—— 结论层:R1~R11、簇、采购 A/B 清单docs/2026题型功能层需求预测.md—— 每形态的功能层缺口(P1~P5')docs/2026题型运动过程想定.md—— 每形态的赛日逐秒时间线与易丢分点
当前权重速查:车题 P≈1(送货 0.45 / 视觉行驶 0.25 / 空地协同 0.15 / 双车 0.10 / 无线充电 0.05);装置槽 球管 0.50 / 纯视觉 0.30。gimbal 出清封存,零备赛动作。
2. 验收倒推法(一切工作深度由评分条款决定)
评分结构:基础 50 + 发挥 50 + 报告 20;基础部分通常只有一条主线;TI 杯=国赛的 减法。备赛与验收按基础线优先——机构类动作(自动装卸、双车)默认是发挥分。
验收工具直译(清单仪器组=评分条款倒影):秒表=计时分;5米卷尺=米级场地/距离; 1米直尺=厘米形位;量角器=角度指标;电子秤=载荷质量指标。
写代码前的电赛四问(任何面向赛题的 Driver/Service/Task 立项时先答):
- 这个模块对应赛场上的哪个验收动作?(说不出→大概率不该建)
- 它压在哪条评分条款/哪个形态权重上?(<0.3 且形态未定→登记速建路径,不预建)
- 它在基础线还是发挥分?(发挥分的机构/协同不为其预建编排)
- 现场标定入口在哪?(一切现场可调参数走 TUNE 参数组+param_store; 失效安全遵循 motor-safety)
调参深度也按验收倒推:过关线=该形态想定文档里的验收数(如送货车:满载单程达标、 停线 ±2cm、识别画面稳、连跑不衰减)。全过就收手,不追求指标好看。
3. 预测纪律速查(引用时的硬规则)
- 只用当年清单内道具做想定;已建成资产不得反向抬高题型权重(沉没成本教训);
- 只对簇下注,不对孤立单件下注(成簇归题回测 97%,孤立单件 ≤2/7);
- 车规定律:清单车条目=当年题面车规原文(10/10)——车题不问出不出,只问形态;
- 机电执行器必上清单,视觉识别对象从不上清单——执行器缺席=形态出清, 摄像头缺道具≠视觉题反证;
- 清单是多组别超集,约 10% 低频件是烟雾弹——未归属件如实记录,禁止事后强行归题。
4. 测量纪律(先测量,后结论,拒绝拍系数)
- 时间轴先标定:VOFA 的 X 轴是它猜的不是测的。固件发 100ms 方波通道一次,
游标量出真实每点时长,此前一切"毫秒"读数按此折算。已知案例:速度环 10ms 周期
每拍一帧,屏上"1
2ms"实为 1020ms; - 量级 sanity check:任何测量结论先过一遍物理量级(例:0.5 m/s 变化 2ms 完成 =25g 加速度→必为假象)。不合量级的数据先查测量链再查对象;
- PWM 顶限平台=真响应时间:阶跃期间占空比顶限幅保持的时长,不受任何显示假设 影响,是悬空/落地对比的标准指标;
- 悬空=定性体检,落地=定量标定,配重=满载档:悬空调参继续当日常粗调与回归 检查(有效基线);落地+配重是一次性裕量验证,搭必然要做的全流程演练顺风车 (绑 500g 水瓶多跑一趟),不单独立项;
- 两端点法:只测空载和满载上限两趟(中间单调不必测)。四个验收数:单程用时、 停线过冲、PWM 余量(巡航留 ~30%)、跑完后电压。
5. 调参决策树(速度环范式,其他环类比)
悬空粗调(现状有效) → 落地空载跑 → 绑500g跑
├─ 两趟都过 → 参数冻结,收工(大概率走这支)
└─ 满载不过 → 按杠杆顺序动,一次只动一个:
① 剖面加速度上限降档(最便宜,通常就够)
② Kp 适度上调(确认抗饱和在位;Ki 不动)
③ 仍罩不住 → 立第二组参数档:
切换信号=载荷在位开关(装载→满载档,卸载→空载档,自动、零手动模式)
- 速度环 PI 不加 D:低速测速逐格量化,D 放大毛刺成抖动;瞬态由剖面斜坡管 (给定不跳变则 D 无事可做)。增量式/位置式是写法差异不是稳定性差异;
- 载重的物理账:稳态几乎不变(反电动势定速)、时间常数∝质量、摩擦/死区变大、 刹距变长、电流大→压降狠。持续阻力归 Ki,冲过头归剖面;
- 外环循迹对载重不敏感(质量被内环吸收)——分层的红利,别去动外环。
6. 施工轮次压缩守则(30~60 分钟/轮 → 目标减半)
复用而非新建(先查这张表再写代码;现状 2026-07-23:12 条目 / 6 参数组):
| 需求 | 现成路径 |
|---|---|
| 新赛题/新动作序列 | route 段表+编排(「新题=换段表」是设计目标),不新写运动逻辑 |
| 新硬件测试/标定 | World-2 debug 条目:app_compose.c s_entries[] 补一项,不建独立工程 |
| 现场调参数 | TUNE/DRIVE/CHAS/HEAD/SERVO 五参数组 + param_tune blob v3 + K3 SAVE,不窝法不飞线 |
| 声光提示 | Alert_Play(pattern)(7 语义模式现成,alert 服务),不手搓 GPIO 时序 |
| 舵机摆位/装卸机构 | driver/servo + SERVO 组暂存角标定环,不新写 PWM |
| 双车/空地通信 | link 服务(Send/TakeLatest/IsAlive),协议归 uart_wireless,不裸写串口 |
| 视觉对接联调 | VisionLink 条目 + PC 串口工具代打(帧速查在杜邦清单§8),不等视觉硬件 |
| 无线/串口链路验收 | 自环回(TX-RX 短接)→ alive/计数即字节层证明,不用两台设备起步 |
| 速度环落地测试 | 标准形态「来回踏步」:±v 对称往返+odometry 电子围栏(离起点 ±80cm 安全停)+motor 超时三层保险——不用跑道、不用搬车 |
| 满载验证 | 全流程演练时绑 500g 顺跑一趟,VOFA 记四个验收数 |
轮次流程压缩:
- 立项即引用:形态→功能层缺口→验收数,三跳全在 §1 四文档里,开工前一次引用完, 轮中不再翻;
- 契约冻结后一次施工到验收(embedded-closed-loop),不在轮中扩需求;
- 构建/测试命令固定:
rtk make -C Debug all(PowerShell 工具,勿走 Bash)、rtk make -C tests/host all;新增 .c 记得补 subdir_vars.mk 六列表(假绿陷阱)。
对答风格(用户已确认偏好):
- 结论先行:第一句给判定/动作,论证在后;
- 每个技术回答收尾一句人话版:无术语、无缩写,一句话说清"你要做的事";
- 决策树优先于论述:能画分支就不写长段;"先测后调、不烂不调"式规则一句话定案;
- 概念纠偏时先算一笔量级账(如 25g 检查)再讲原理——数字比论述有说服力;
- 用户的既有方法先肯定其有效包络(如悬空调参),再指出新场景边界,不推翻重来。
7. 无整车替身验证纪律(2026-07-23 蒸馏:硬件被抽走≠停工)
没硬件不是不写码的理由——本仓路线「主机测试先行、上板只剩标定」在零整车条件下 一天落地了 6 个模块(声光/舵机/无线/视觉/IMU 诊断/调参持久化)。替身层级从便宜到贵:
- 主机 fake 端口:逻辑全部测绿(594 用例基线),fake 只伪装硬件边界不伪装被测体;
- 自环回:TX-RX 杜邦短接,自发自收=字节层验收,一根线顶一台对端设备;
- PC 代打:串口工具按协议打流顶替对端整机(视觉/无线均适用);
- 单外设杜邦 + debug 条目:每个外设 10 分钟级验收(合格线写死在清单里);
- 整车:只做标定与满载裕量——前四层没绿不上车。
引脚未定案的模块照样写完:端口层做「如实占位」(Init false/Read 0,遥测明示 port_absent=1 不伪装),协议逻辑主机全覆盖,定案后 syscfg 填两行即通。
标定环范式(菜单 RUN_ACTIVE 锁死条目期按键的框架事实):运行期不可调参 → 操作员值上移 Service 暂存(默认安全位)→「空转改值 → 进条目施加 → 观察 → BACK 安全停 → 再改再进」。ServoTest/TurnTest 同款;新调参条目直接照抄这个环。
8. 他板对接三查(拿到别人的引脚表/协议文档先过一遍)
对照本仓 2026-07 硬件组引脚表实测:5 处冲突全部命中这三类——
- TX/RX 视角:对方表的 RX 是「模块的 RX」还是「主控的 RX」?(视觉 PA8/PA9、 BSL 两处命中)联调收不到先对调线,一次定案,不预改固件;
- SDA/SCL 与差分对:I2C/编码器 AB 这类成对线,表与固件相反时必有一错 (OLED PA29/30 命中)——用「点亮实验」定案,谁亮信谁;
- 通道反序:多路器件的编号方向(灰度 G1..G12 = 固件 IN12..IN1 恰好倒排)—— 不改线不改表,在唯一映射点吸收,实测(GrayTest 黑纸法)定 bit0。
口诀:先怀疑标注视角,再怀疑线,最后才怀疑固件。
配套底层坑(syscfg 两处声明、CCP0/CCP1 候选集、TIMG 40MHz 域分频差一倍、
只改 .h 的 .d_raw 假绿)已入 memory debug-build-stale-link-trap 与计划表 §34.5/§37.5,
立项时不必背,撞到再查。