3. 标定流程与规范:标定准备阶段、标定执行阶段、标定验证与确认阶段、标定文档规范
标定这件事,说白了就是给系统「找规律」。我见过太多项目,上来就调参数,结果现场跑两天就崩了。为什么?流程乱了。
一个规范的标定流程,能帮你省下至少 30% 的返工时间。我个人习惯把标定分成四个阶段:准备、执行、验证、归档。每个阶段都有它的死穴,咱们一个一个说。
3.1 标定准备阶段
准备阶段做不好,后面全是坑。我见过最惨的一次,团队到现场才发现笔记本电脑没装驱动,白白浪费一整天。
3.1.1 需求分析与目标定义
先搞清楚一个问题:你要标定什么?精度要求是多少?环境边界在哪?
- 性能指标: 精度、响应时间、线性度、重复性。每一项都要有量化目标。
- 环境边界: 温度范围、湿度、振动等级、电磁干扰等级。别在实验室标好了,到现场一晒就飘。
- 安全约束: 哪些参数不能动?哪些操作需要双人确认?
3.1.2 工具链与环境搭建
工具链这件事,我吃过不少亏。有一次用了一个新版本的标定软件,结果和旧版 ECU 固件不兼容,数据全乱码。从那以后,我坚持用版本锁定表。
| 工具/组件 | 版本要求 | 检查项 |
|---|---|---|
| 标定软件 | v3.2.1 及以上 | 驱动兼容性、License 有效期 |
| ECU 固件 | FW-2024-08 | 校验和、烧录次数 |
| 通讯接口 | CAN/CANFD | 波特率、终端电阻、线缆长度 |
| 传感器/执行器 | 校准证书有效 | 零点漂移、满量程误差 |
3.2 标定执行阶段
执行阶段是体力活,也是技术活。你想想看,面对几百个参数,怎么下手?
3.2.1 数据采集策略
数据是标定的基础。垃圾数据进,垃圾标定出。这个道理谁都懂,但做起来容易偷懒。
- 覆盖全工况: 稳态、瞬态、极限工况、故障工况。别只采好采的数据。
- 采样频率: 至少是系统带宽的 5 倍。我一般取 10 倍,留点余量。
- 数据质量检查: 有没有丢包?有没有毛刺?时间戳对不对齐?
3.2.2 参数调优方法
我个人习惯用「分层调优法」。先调大时间尺度参数,再调小时间尺度参数。就像调 PID,先调比例,再调积分,最后调微分。
// 伪代码:分层调优流程
for each 参数层 in [宏观层, 中间层, 微观层]:
加载当前层参数集合
执行梯度扫描(步长 = 初始步长)
记录每个参数组合的性能指标
选择最优组合
缩小步长,重复扫描直到收敛
锁定该层参数,进入下一层
3.2.3 迭代记录与版本控制
迭代记录不是写日记,是写「证据」。我要求团队每次迭代必须记录:改了哪个参数、从多少改到多少、为什么改、效果如何。
- 使用版本控制工具(Git/SVN)管理标定文件。
- 每次迭代生成一个唯一的版本号。
- 保留原始数据文件和标定结果文件,一一对应。
3.3 标定验证与确认阶段
标定完了,不代表就完了。验证和确认是两道不同的门。验证是「做对了没有」,确认是「做对了该做的事没有」。
3.3.1 精度验证
用独立的测试数据(不是标定用的数据)来验证。我一般会留 20% 的数据做验证集,不参与任何调参过程。
- 误差: 每个工况点的误差是否在公差范围内。
- 统计指标: RMSE、MAE、最大误差。别只看平均值,最大值往往才是杀手。
- 重复性: 同一个工况跑三次,结果是否一致。
3.3.2 边界测试
边界是最容易出问题的地方。我遇到过标定在常温下完美,一到零下 20 度就完全失控的情况。
| 边界类型 | 测试用例 | 验收标准 |
|---|---|---|
| 温度边界 | -40°C, +85°C | 精度退化 ≤ 2 倍常温公差 |
| 供电边界 | 9V, 16V | 无异常振荡,输出稳定 |
| 负载边界 | 空载, 满载 | 响应时间 ≤ 标称值 1.5 倍 |
| 通讯负载 | 总线负载 80% | 无丢帧,无超时 |
3.3.3 鲁棒性检查
鲁棒性,说白了就是系统抗不抗造。加噪声、加干扰、加老化,看看标定结果还能不能撑住。
- 噪声注入: 在传感器信号上加白噪声,观察输出波动。
- 参数摄动: 故意把某个参数调偏 5%,看系统是否还能稳定工作。
- 长时间运行: 连续跑 72 小时,看有没有漂移。
3.4 标定文档规范
文档这件事,没人喜欢写,但没人敢不写。为什么?因为半年后你自己都看不懂自己调了啥。
3.4.1 标定报告结构
一份合格的标定报告,至少包含以下内容:
- 标定对象信息: 产品型号、硬件版本、固件版本、序列号。
- 标定环境记录: 日期、地点、温度、湿度、操作人员。
- 标定参数清单: 参数名、初始值、最终值、修改历史。
- 验证结果: 精度数据、边界测试结果、鲁棒性测试结果。
- 异常记录: 任何异常现象、处理方式、结论。
3.4.2 版本管理与可追溯性
我见过最混乱的项目,标定文件叫「final_v2_真的最终版_别改了.s19」。这种命名方式,迟早出事。
3.4.3 文档模板示例
下面是一个简化的标定记录表模板,你可以直接拿去用。
# 标定记录表
## 基本信息
- 项目名称:________
- 标定对象:________
- 操作人员:________
- 日期:________
## 参数修改记录
| 参数名 | 修改前值 | 修改后值 | 修改原因 | 修改人 | 时间 |
|--------|----------|----------|----------|--------|------|
| Kp | 1.25 | 1.50 | 响应偏慢 | 张三 | 10:30|
| Ki | 0.05 | 0.08 | 稳态误差大| 张三 | 10:35|
## 验证结果摘要
- 精度验证:通过(最大误差 0.8%,阈值 1.0%)
- 边界测试:通过(低温 -30°C 误差 1.5%,阈值 2.0%)
- 鲁棒性测试:通过(72h 漂移 0.3%)
## 备注
- 本次标定基于 FW-2024-08 版本
- 传感器 S/N: 20240801-003 已校准