K6-10 · 控制、软件与标定 / 标定与匹配
待认领listed
→
众筹中recruiting
→
已开课open · Course 售卖
一课题可并存多讲师版本
课程大纲
学完能做什么
- 能读出一个标定量在 A2L 里的结构与地址描述(RECORD_LAYOUT)和 raw↔物理值换算口径(COMPU_METHOD),并说清改一个量时「A2L 动了什么、Hex/DCM 动了什么」
- 能由被控量对某输入的灵敏度反推轴点疏密与分档数(陡区加密、平区放稀),并用 ROM 占用式核算加密一个轴的代价量级,给出取点依据而不是「均匀取够点」
- 能判定一张 MAP 该用独立轴还是共享轴,并列出改这条轴会连带影响哪些表——平台复用时先比轴形态与轴点、再比值
- 能为一张 MAP 写出插值实现约定与边界外行为三项(钳位值 / 超界降级值 / 边界外标志),做到没有未定义分支,并说明为什么默认禁止外插
- 能定出 min/max/default 三元组,说明 min/max 必须在代码里真钳、default 必须是安全值且可与「从未写过」区分的理由
- 能按四档可标性等级(只读 / 可标 / 需授权可标 / 不可标写保护)给一组标定量定级,并判出哪些量必须写死为常量、根本不做成 CHARACTERISTIC
- 能为一组相关标定量补齐调整方向与量间相互约束两列,并把序关系、滞环宽度与噪声带的关系写成可机检的表达式
- 能交付一份字段完整、格式与 K6-01 实操对齐的标定量规格表,作为技术协议/SOW 附件随功能规格一并交付
内容大纲
- 接口约定层:RECORD_LAYOUT 与 COMPU_METHOD(半讲)
- 本课的起点就是 K6-01「标定量类型」那条子弹的终点:VALUE / CURVE / MAP / VAL_BLK 四类对象、AXIS_PTS 轴点对象与表内 AXIS_DESCR 引用、以及 STD_AXIS / FIX_AXIS / COM_AXIS 三种轴形态,K6-01 已讲到位,本讲只作复核性引用,⛔ 不重讲类型枚举
- RECORD_LAYOUT 决定同一张 MAP 在 Hex 里怎么排(值的存储顺序、轴与值是否连排、数据宽度与对齐),它正是 K6-05「A2L 给结构与地址、Hex/DCM 给值」那句话的落点;布局描述与实际内存不符的现场表现不是报错,而是值读出来整体错位——判据是「换一版编译或改一次数据宽度后,规格表里的布局字段有没有跟着变」
- COMPU_METHOD 是 raw 值与物理值之间的唯一契约:换算口径一旦写进 A2L 并发出去,上位机显示的物理量、标定报告里的数、代码里参与运算的值就绑在同一条式子上;口径两边不一致的典型表现是双方各自都「没错」而值差一个固定系数,只有拿同一个 raw 回算才查得出
- 定点标度、Q 格式、量化误差与 ROM/RAM 预算本身归 K4-02(该课已有 y_q=round(x/LSB)·LSB、e_q∈[−LSB/2,+LSB/2]、ROM_used/ROM_budget<1),本讲只在「换算口径写进接口后不能单方面改」这一点上引用,⛔ 不重讲定点化
- 本讲要立住的口径:类型只是分类,每个量真正要交付的是一张规格表——轴点取值与依据、内插与超界行为、min/max/default、存储区、可标性等级、调整方向、参数间相互约束。K6-01 的「读懂止于本课」,本课的任务是「怎么给一个新标定量写规格」,后四讲逐字段展开
- 轴点设计:疏密由被控量灵敏度反推,不是均匀取够点
- 轴点疏密的判据是被控量对该输入的灵敏度而不是美观:灵敏度陡的区间加密、平缓区放稀;定量做法是在若干工况角点做同一组阶跃/扫点、算归一化灵敏度,按其变化倍数的量级定分档数——这份采集与 K3-05 增益调度的分段判定共用同一批数据,K3-05 只管调度变量选取与整定,增益表的轴点疏密、插值实现与端点外插保护归本课
- 轴点数与 ROM 占用是乘法关系而非加法:加密二维 MAP 的一个轴,代价按另一个轴的点数放大(第 2 条公式),所以「先想清楚这一维值不值得加密」比事后压缩便宜;预算核算口径与 map 文件为准的规矩引 K4-02
- 非均匀分档要写出依据并随值一起冻结:轴点取值与取点依据是规格表的必填字段,不是标定过程中的临时选择——这一条正是 K6-05 pitfalls 点名「值一一对上、插出来对不上」那个规格层坑的正解
- 轴点复用(共享轴 COM_AXIS)省 ROM 且强制多张表对齐,代价是改轴会连带影响所有引用它的表:因此规格表要有「轴形态 + 共享者清单」一列,「这张 MAP 的轴能不能改」的答案取决于这一列;轴形态本身的定义见 K6-01
- 轴点边界就是 map 可信区间在标定侧的写法:分析岗判出的「这个点不敢外插」要落成轴的首末点位置,超出即进入第 3 讲定义的边界外行为——换热 map 外插为什么不可信的机理原句在 A3-01,关联式严禁外插的纪律在 A3-02,本讲只接「怎么把它写成轴点边界」这一段,⛔ 不重讲机理
- 标定量爆炸的降维(先定骨架 MAP、再叠工况修正)归 C6-01,本讲不讲降维;本讲只回答「维度已定之后,这几条轴各取几个点、点取在哪、依据是什么」
- 内插与外插保护:端点钳位、边界外行为与超界降级值
- 插值实现必须写进规格而不是留给实现:一维线性 / 二维双线性是默认约定,但要显式写明轴点之间是插值还是取最近点(阶梯查表)、查的是哪一版轴、以及轴必须单调递增——轴非单调或有重复点时插值式分母为零,属规格错误而非实现缺陷
- 端点钳位是默认行为、外插默认禁止:超出轴范围时取端点表值,⛔ 不得把最后一段直线继续延长。这正是 A3-01「map 之外不可信」与 A3-02「通用关联式严禁外插」两条分析侧纪律在控制器里的等价护栏——分析岗判出了不敢外插、软件里却没有这条护栏,链就断在交接处
- 边界外行为逐 MAP 写死三项、不许留空:钳位值 / 超界降级值 / 是否置边界外标志。留空的后果是这三项由代码生成器或手写实现的默认值决定,而标定工程师在上位机上根本看不见这个默认值
- 超界降级值的取法不是「取最近端点」而是「取保守侧」:判断依据是该量往哪个方向走更危险,与第 4 讲的调整方向字段是同一份信息;安全相关量在超界时应偏向保护侧,性能类量才可以简单钳位
- 本课只交付到规格层,边界外标志之后的链条不在本课:invalid 语义与信号置信度分级归 K1-01,DTC 置位、消抖与冻结帧归 K5-01,边界外触发的降级动作与仲裁归 K5-02。A3-01 那句「外插区标 invalid 并触发边界外报警」的后半句由这三门承接,本讲负责的是「超界时输出什么、置哪个标志」
- 本讲的插值不是仿真/网格意义上的插值:全库「插值」多数命中在 CFD 网格与试验建 MAP 语境,标定侧只有 K3-05 一条取舍句(分段增益表 vs 连续插值增益),那条的取舍归 K3-05,其规格约定归本讲
- min/max/default、可标性四档与量间关系字段
- min/max 是运行期安全钳位而不是「建议范围」:上下限必须在代码里真钳,标定工具侧的输入校验只是第一道门——只在工具侧限、代码不钳,一次离线改 Hex 或一次工具版本差异就足以把越界值送上车
- default 与首上电/复位行为要一起定:default 是校验失败或从未写过时真正会被执行的那组值,因此必须是安全值(不是零),且要能与「从未写过」区分开;这条口径与 K4-06 的出厂默认值同源,NVM 侧的载体、校验链与回退分支归 K4-06,本讲只定规格表里 default 填什么
- 「必须写死为常量」的判据是「改了会突破安全边界或使已验证结论失效」;不可标的落法是在 A2L 里根本不做成 CHARACTERISTIC 并配写保护,而不是做成标定量再靠纪律约束——纪律不是机制
- 可标性四档阶梯(口径承 K4-07 §⑤ 原文):只读 / 可标 / 需授权可标 / 不可标写保护。等级逐量写进规格表,并与对外 A2L 的裁剪范围、SecurityAccess 权限等级逐条对齐;裁剪与授权分级的本体归 K6-05 与 K4-09,交接谈判的组织归 K4-07,本讲只定字段口径与定级判据
- 安全相关量的「不可在线标定」是参数属性,与流程分工划清:属性定在本讲(哪个量、哪一档、写保护怎么标),改动要不要走功能安全评审的流程判据归 K6-03,变更记录与追溯归 K6-05
- ★补料字段一 · 调整方向:写明该量增大时被控量往哪个方向走,并注明单调性是否全程成立、在哪个区间反号。缺这一列,接手的人只能靠试;有这一列,一次现场微调的方向判断才可复核
- ★补料字段二 · 参数间相互约束:序关系(开阈值 > 关阈值、进入阈值与退出阈值的排列)、滞环宽度与传感器噪声带的关系(下界口径 ΔT_hys ≥ 2·δ_sensor 已由 K6-01 给出,本讲只把它落成规格表里一条可校验的约束)、上下限与相邻量的一致性。约束要写成可机检的表达式,而不是评审时靠人记——写成自然语言就等于没写
- 量间依赖在 A2L 里的表达载体须按标准原文核对:判定书点名 DEPENDENT_CHARACTERISTIC / VIRTUAL_CHARACTERISTIC 两个关键字,写讲义前必须逐个核实关键字真名与语义(K6-01 早期就因写了标准里不存在的关键字被审计纠过),核不实则只写「A2L 提供表达标定量间依赖的机制,关键字按现行版本确认」
- 裕量本身怎么算不在本讲:把公差、传感器误差与全寿命衰减折进阈值归 K6-06,本讲与它以「规格 vs 裕量」划界——本讲只管规格表里有没有这一格、格式对不对,K6-06 管那一格里的数怎么算出来
- 存储区规格:Flash/RAM 标定页切换与安全相关量的写保护(半讲)
- 存储区是规格表的必填字段(K4-02 点名的四项之一:轴点、上下限、插值/外插保护、存储区):逐量写明放标定页还是常量区、在线标定期间从哪一份读、冻结后写回哪里
- Flash/RAM 标定页切换是在线标定能改得动参数的前提:ECU 运行时从 RAM 页取值以便实时修改,标定冻结后回写 Flash;两页不一致正是「台架上调好了、下电就没了」的直接原因,判据是下电再上电后读回的值与调定值是否一致(回写主线与版本追溯归 K6-05,临时调试与正式回写的边界该课已写死)
- 写保护是第 4 讲参数属性在存储侧的落法:不可标量在线不可写、需授权可标量绑权限等级;判据是「一支临时接上的标定工具能不能改到它」,改得到就说明属性没落地
- ⛔ 本讲不讲 NVM:学习值与标定量的区分、掉电写一致性(A/B 双块与写序不变量)、上电有效性校验与触发重学、NVM 布局版本迁移全部归 K4-06——**本课立项时** K4-06 尚未落盘,这条边界是本次结构化时补上的,照原文写必与 K4-06 第 1/3/4/5 讲重讲
- 售后与产线侧同样不在本讲:换件后的复位路径(0x2E 还是 0x31)、售后重学清单与工位权限归 K6-09;标定量数量治理、命名规则与责任矩阵归 K6-05;自学习值的输出 clip 护栏与写入频次判定归 K7-03,本讲只接它对存储区规格的需求
- 本讲的一条对外声明(用于消除两门课口径不一致):值与版本归 K6-05/K4-04,车端自产数据归 K4-06,参数对象的规格层归本课——K4-06 第 1 讲现把「离线标定参数集」只判归 K4-04 与 K6-05、未指向本课,这条断链须一并回改
关键公式
轴内:x_i ≤ x < x_{i+1} 时 y = y_i + (y_{i+1} − y_i)·(x − x_i)/(x_{i+1} − x_i);轴外:x < x₁ 取 y = y₁,x > x_n 取 y = y_n(端点钳位)
把「查表在轴点之间怎么算、轴点之外怎么办」写成可评审、可测试的显式规则。它是标定量规格表里「内插/超界行为」那一格的定义式;这一格留空,边界外行为就由代码生成器或手写实现的默认值决定,而标定工程师在上位机上看不到那个默认值。
N_ROM ≈ (n_x·n_y)·w_v + n_x·w_x + n_y·w_y
回答「这条轴再加几个点值多少钱」,把轴点疏密从主观争论变成可比的量;同时讲清两件事:加密一维 MAP 的一条轴,代价按另一条轴的点数倍增(乘法关系);共享轴省下的只是轴点那一项,不省值项。
关键概念
标定量规格表(参数对象的交付物本体)RECORD_LAYOUT 内存布局COMPU_METHOD raw↔物理值换算口径AXIS_PTS 轴点对象与 AXIS_DESCR 轴引用独立轴 STD_AXIS / 固定轴 FIX_AXIS / 共享轴 COM_AXIS轴点疏密与灵敏度反推(陡区加密、平区放稀)轴点数—ROM 占用折中端点钳位(clamping)与外插禁止边界外行为的显式定义(钳位值 / 超界降级值 / 边界外标志)min/max 作为运行期安全钳位default 即安全值,且可与「从未写过」区分不可标量(写死为常量,不做成 CHARACTERISTIC)可标性四档:只读 / 可标 / 需授权可标 / 不可标写保护调整方向(该量增大使被控量往哪走)参数间相互约束(序关系、滞环宽度与噪声带、相邻量一致性)可机检的约束表达式存储区字段与 Flash/RAM 标定页切换标定量写保护
推荐工具与标准
INCA(ETAS)、CANape(Vector)——在线观察标定量、验证钳位与边界外行为是否按规格生效 A2L 编辑与校验工具(各家 ASAP2 工具集)——CHARACTERISTIC/AXIS_PTS/RECORD_LAYOUT/COMPU_METHOD 的定义与一致性检查 Simulink / Embedded Coder 的数据对象与标定量导出(承接 K4-02)——模型侧参数对象到 A2L 描述的映射 标定数据管理系统 CDM(AVL CRETA / Vector vCDM 类,承接 K6-05)——标定量级 diff,用于「先比轴、再比值」的复用比对 脚本化 A2L 解析 + 规格表一致性机检(自建)——把量间约束表达式做成发版前的自动检查
ASAM MCD-2 MC / ASAP2(A2L 描述文件标准)——本课涉及的 CHARACTERISTIC、AXIS_PTS、AXIS_DESCR、RECORD_LAYOUT、COMPU_METHOD 与轴形态关键字一律以该标准现行版本原文为准,按现行版本确认;表达标定量间依赖的关键字真名与语义须在写讲义前逐个核对,核不实即不写具体关键字 ASAM MCD-1 XCP(标定与测量协议)——本课只用到「标定写入走哪条通路、RAM 页与 Flash 页怎么切」这一点,协议本体归 K6-01,按现行版本确认 ISO 26262(安全相关标定量的可标性约束与写保护)——本课只落到参数属性一侧(哪些量不可标、写保护怎么标),评审流程归 K6-03、变更追溯归 K6-05,具体部号与版本按现行版本确认
工程案例
(合成示例,用于讲清失效链,非某一具体项目实测数据)某平台衍生车型直接套用基线车的压缩机转速 MAP,合版前逐格值比对完全一致,台架复现却在高环温段转速明显偏低、过热度收不住。查下来是两条根因叠加:① 两车用的不是同一条环温轴——基线车该 MAP 引的是共享轴(COM_AXIS),而衍生车工程里另一张表改过这条共享轴的末端点,于是同样的值挂在了不同的轴上,值一一对上而插值结果对不上;② 该 MAP 的边界外行为在规格里留空,超过轴末端时实现按外插处理,把高温段的趋势线继续延长,恰好掩盖了第一条造成的偏差,使问题在常温段完全不显形。整改四条:规格表补「轴点取值与依据」「轴形态与共享者清单」两列,并随值一起冻结;边界外行为逐 MAP 写死为端点钳位 + 置边界外标志(标志的下游处置见 K5-01/K5-02);平台复用的比对流程由「比值」改为「先比轴形态与轴点、再比值」,合版冲突检测落到标定量级(归 K6-05);把「轴点严格单调递增」「开阈值 > 关阈值」这类约束写成可机检表达式,进规格评审 checklist。
动手做
交付物 · 给一个压缩机转速 MAP(二维:环温 × 目标蒸发温度,与 K6-01 实操同题,格式必须与本课规格表对齐)交付一份完整的标定量规格表,逐列填齐:① 名称与 ID、A2L 对象类型;② 轴——两条轴各自的轴点取值、取点依据(写明哪一段因灵敏度陡而加密)、轴形态(独立/固定/共享)与共享者清单;③ 数据类型与 COMPU_METHOD 换算口径、RECORD_LAYOUT 要点;④ 存储区(标定页 / 常量区)与在线标定时从哪一份读;⑤ 插值实现约定 + 边界外行为三项(钳位值 / 超界降级值 / 边界外标志),不许留空;⑥ min/max/default 三元组,并注明 min/max 在代码里哪一处钳、default 为何是安全值;⑦ 可标性等级(只读 / 可标 / 需授权可标 / 不可标写保护)及定级理由;⑧ 调整方向(该量增大时转速与过热度各往哪走、单调性在哪个区间不成立);⑨ 参数间相互约束——至少两条写成可机检的表达式(如轴单调性、与相邻阈值量的序关系)。另用第 2 条公式核算「把环温轴从当前点数加密一档」的 ROM 增量量级,并给出是否值得加密的结论。评分只看两点:边界外行为三项有没有留空;量间约束是不是写成了可校验表达式而非自然语言描述。
常见误区
- 以为把 VALUE/CURVE/MAP/VAL_BLK 四种类型列完就等于标定量定义完了,其实类型只是分类;真正要交付的是一张规格表(轴点取值与依据、内插与超界行为、min/max/default、存储区、可标性等级、调整方向、参数间相互约束),K6-01 的类型枚举是本课的起点不是终点。
- 以为两个车型的 MAP「逐格值一一对上就等于复用成功」,其实轴点取值或轴形态(是否共享 COM_AXIS)不同的话,值全对而插出来的结果对不上;平台复用的比对顺序必须是先比轴形态与轴点、再比值(K6-05 已把这条列为规格层的坑)。
- 以为超出轴范围时「把趋势线延长一下更连续」,其实那正是外插——分析岗刚判定不可信的区间被软件默默续了出去;默认行为必须是端点钳位,要外插必须逐量书面例外并附误差论证。
- 以为 min/max 是给标定工程师看的建议范围,其实它必须在代码里真钳;只在上位机做输入校验,一次离线改 Hex 或一次工具版本差异就能把越界值送上车。
- 以为 default 填零最省事,其实 default 是校验失败或首上电时真正会被执行的那组值,必须是安全值、且要能与「从未写过」区分开,否则不是新车全报码就是失效后动作到危险位(同源口径见 K4-06)。
- 以为安全相关量「约定好不许在线改」就够了,其实纪律不是机制——不可标量应当在 A2L 里根本不做成 CHARACTERISTIC 并配写保护,否则一支临时接上的标定工具就能改到它。
- 以为规格表写到 min/max/default 就齐了,其实还缺调整方向与参数间相互约束两列:前者缺了接手的人只能靠试,后者缺了「开阈值被调到低于关阈值」「滞环宽度小于噪声带」这类错误要拖到台架甚至整车才暴露。
- 以为量间约束写在评审纪要里就算有了,其实写成自然语言等于没写;只有落成可机检的表达式(如 T_on > T_off、ΔT_hys ≥ 2·δ_sensor),合版与发版时才拦得住。
- 以为存储区只是实现细节,其实 RAM 标定页与 Flash 页不一致正是「台架上调好了、下电就没了」的直接原因;存储区必须是规格表的必填字段,判据是下电再上电后读回值与调定值是否一致。
- 以为边界外行为「代码里总会有个默认处理」,其实那个默认值由代码生成器或实现者决定、不出现在 A2L 里,标定工程师在上位机上完全看不见——规格里留空就是把这条护栏交给了运气。
相关课题