TMS BOOK · ACADEMY 讲义

热管理标定流程与工具(INCA/CANape)

大纲的完整展开版——讲师授课蓝本 / 学员自学材料

K6-01 热管理标定流程与工具(INCA/CANape)

课程代码 K6-01 · 板块 K 控制、软件与标定 / K6 标定与匹配 时长 约 3.5 小时(6 讲 + 1 次标定工程搭建实操) 适合对象 控制 / 标定工程师,以及参与整车调试的试验工程师;K6 模块入门课,必修 前置 K3-01 整车热管理控制策略总览与模式管理;K2-02 CAN/LIN/CAN-FD 通信与整车 EEA 集成 本讲义定位 讲师授课蓝本 / 学员自学讲义,是 K6-01 大纲的完整展开版


引言:一句「这个调不出来」,问的从来不是往哪个方向调

标定台架上最常听到的一句话是「这个调不出来」,而接在它后面的动作几乎总是同一个:把阈值再往上抬一点、把滞环带再加宽一点,然后进舱复测一轮。这门课要先把这句话拆开——「调不出来」有两种含义完全不同:一种是这件事就在参数空间里,只是还没找到合适的值;另一种是这件事根本不在参数空间里,软件里压根没有为它留下一个可写的对象。两种含义指向的下一步动作方向相反,而它们从嘴里说出来时听起来一模一样。分不清的代价直接落在标定链路上最贵的那项资源上:环境舱与样车的占用是按小时结算的,每一轮无效复测都是真花出去的钱与真过去的日历时间,而缺陷仍然原封不动地留在车上。

这门课是 K6 模块的入门课,它交付的不是某一个量该取多少,而是这个模块后面十几门课要共用的同一套词与同一套判据。学完你应当能做四件事:① 搭起一套标定环境(描述文件 + 接口与驱动 + 测量标定工程)并与控制器建立在线连接,连不上时说得出卡在哪一层;② 拿到一次修改请求,判得出它动的是参数还是逻辑,说得清这件事该留在标定台架上,还是该退回控制策略或软件;③ 用试验设计(DoE)规划一版测试矩阵、把台架与环境舱占用压下来,并说清压缩之后哪些区间是实测、哪些只是模型外推;④ 读懂典型 TMS 标定量在描述文件里的定义方式——认得出它是哪一类对象、值挂在哪、轴是不是与别人共享的。

六讲讲的是同一件事的六层。第 1 讲立分工判据,并把「能改变系统行为的对象」分成四类;第 2 讲给出「能不能标」这件事的物理载体,即 A2L 描述文件的对象模型;第 3 讲讲「在线改」的通路 XCP、它要付的带宽代价,以及一次在线标定要凑齐的五件套;第 4 讲把标定流程按「这一阶段产出的值有什么法律地位」重新排一遍;第 5 讲讲在有限的舱时里怎么用 DoE 把可探索空间探到最大,以及哪一类标定量根本不能用 DoE;第 6 讲逐族说清 TMS 的标定量各自长什么样、承载在什么对象上、整定归哪门课。其后的案例把六讲的判据在一条真实决策序列上串一遍,动手做则用一张压缩机转速 MAP 把四条目标各验一次。

⚠ 还有一条贯穿全课的作业方式要先说明:本课凡是要「列一张表」的地方——标定量有哪几类、能改变行为的对象有哪几类、一次在线标定要凑齐哪几件、标定分哪几个阶段、DoE 能覆盖哪一类、TMS 标定量分哪几族——都先把全集画出来,再逐项核本课的射程,而不是顺着最熟悉的那条线索往下数。原因很实际:沿单一线索枚举时,漏掉的那一类不会以「少了一条」的形式暴露出来,它是整类不出现,清单看起来仍然是完整的。⚠ 这六个全集的分类轴都是本课归纳的组织方式,⛔ 不是 ASAM 或任何标准里既有的分类;正文每次用到都会再标一次。

第一根钉子(全课下文一律简称「钉子 A」):「可标」不是程度词,是一个二值判据。软件里为这个量预留了一个 CHARACTERISTIC,它就能被标;没有预留,标定工程师水平再高也动不了它。⇒ 现场那句「这个调不出来」,第一问永远不是「参数该往哪个方向调」,而是这件事到底在不在参数空间里。这根钉子给出全课第一条可执行动作:拿到任何一句「标定标不出来」,先去 A2L 里找那一个(或那一组)CHARACTERISTIC——找得到,就把它取到允许范围的两端各试一次(注意是两端,不是小步微调,因为要判的是这个量在不在因果链上,而不是找最优值),现象随之出现与消失 ⇒ 这是参数问题,继续标;找不到这样的量,或者两端都不改变现象 ⇒ 这是逻辑问题,退回 K3-01 整车热管理控制策略总览与模式管理(判据结构)或 K4-02 基于模型开发(MBD):Simulink 建模与代码生成(实现),⛔ 不要继续调,也不要再占舱时。⚠ 这根钉子还有一个更宽的形态:能改变系统行为的对象不止标定量一类——还有按车型配置在产线或售后写入的配置字与变体编码量、控制器自己在运行中写并存进非易失存储的学习值与自适应量、以及在软件里写死而描述文件里根本没有对象的不可标量。判错类别是现场「怎么调都没反应」的第一大成因:把学习值当标定量去标,你标的值会被下一次学习覆盖,而覆盖发生在运行中,人还以为是自己没标对。四类各自的判定、以及「谁写它、什么时候写、存在哪、标定工程师能不能改」四栏,第 1 讲给出判定树。

第二根钉子(简称「钉子 B」):一个标定值离开它的三件套,就不再是一个值,只是一个未经验证的猜测。三件套是产生它的那一版软件 + 与之同源的 A2L + 它被验证过的工况包络。这不是行政要求,三件里每一件都堵着一个具体的失效:软件版本变了,同一个地址上放的可能已经是别的量;A2L 与软件不同源,工具要么连不上、要么读到一堆看似合理的垃圾还不报错——这种失效是安静的,它不给任何提示,所以同源检查必须主动做;工况包络没写,谁也说不出这个值在极低温、在高原、在热浸之后还成不成立,于是复测时对不上原始结果,两边都以为是对方测错了。⇒ 第二条可执行动作:拿到任何一组标定值,先问它的三件套齐不齐;缺一件,它只能当初值用,⛔ 不得直接交付。这根钉子在六讲里各兑现一次,最锋利的一处落在第 4 讲:同一个值在不同阶段有不同的法律地位——探索值(不可交付)→ 初值(可作起点,不可交付)→ 候选值(已在正确软件与同源 A2L 上标出,待验证)→ 定版值(已在声明的工况包络内验证通过,可交付)。⚠ 这四段划分同样是本课归纳的口径。这条轴一画出来,「跨平台、跨软件版本搬值为什么必须重标」就不再需要说教:搬过去的那个值退回到「初值」,而不是「定版值」。它还有一个在报告侧的硬形式:用 DoE 压缩测点之后,实测区间与模型外推区间必须按证据等级分开标注,⛔ 不得在报告里同色呈现——在角落写一句「部分点为模型预测」不算分档,读者不会去数是哪几个点,整张包络的证据等级会被最弱那一档拉平却无人知道。

最后立一条反钉子,它是本课最容易被读反的地方。这门课的开场白通常是「同一份软件,标定水平不同、效果天差地别」。这句话本身没有错,它说的是:给定一份逻辑正确的软件,标定决定它能跑多好。而读者极容易把它反过来读成「凡是跑得不好都能靠标定救回来」——因果方向就整个反了;本课又恰恰是标定模块的入门课,读者刚建立起「标定很关键」的印象,最容易顺势滑到这一步。

读者会做错的第一个具体动作:把一个控制逻辑缺陷当成「滞环没调好」,在环境舱里一轮一轮地加宽滞环带。典型的现场语言是「已经加了迟滞,还在抖,那就再加宽一点」——每加一轮就要占一次舱时、复测一轮。为什么这是读反:切换失稳有可穷举的多种机理,K3-01 整车热管理控制策略总览与模式管理 已把模式与仲裁层面的成因逐条归好,其中至少有一条拿加宽带宽治不好——A→B 与 B→A 的触发量不是同一个量,两个方向的条件可以各自成立而形成乒乓(两个方向用两个不同的量时,「迟滞带」这个概念本身就没有定义,带宽加到多大都不改变这一点)。⚠ 还有一条连那份归类都不在其中:两级控制器互相把对方当被控对象而形成的回路级极限环——K3-01 整车热管理控制策略总览与模式管理 把它显式声明在模式与仲裁那一层的成因之外,因为它是控制结构问题、根本不在阈值这一层。⇒ 加宽带宽治不好的至少有两类,⛔ 但它们不在同一层:一类在那份归类之内,另一类在它的定义域之外。⇒ 加宽带宽在这两类上不但无效,还会把响应变慢、把真正的缺陷掩盖着带上车,而代价是标定链路上最贵的那项资源。正确动作方向相反:先做「是不是参数问题」的判定,再决定要不要调——判据就是钉子 A 的可执行形式(找对象、取两端),第 1 讲给出完整的判定链。

第二个形态,同样是读反,代价更隐蔽:「在线标定所见即所得」。读者会把「在线标定」理解成「我在工具里改完、现象消失了,这件事就成立了」。它会导出两个方向都错的动作:

把在线改的值当成已经落地的值——在线写入先落在 RAM 标定页,不做导出(DCM / Hex)或写回,下电即失;第二天上电现象复现,人却以为是「标定飘了」,于是去查一个根本不存在的漂移。(⚠ 标定页切换与写保护的规格K6-10 标定量规格定义:轴点、插值/外插保护、上下限与不可标量,本课只交代这个动作必须做、以及不做的后果。)

把挂着工具时的观察当成摘掉工具后的行为——XCP 的测量流会实打实占掉总线带宽,而标定写入与测量上传共用同一条物理链路、互相挤占;同时侵入式测量本身也会改变任务时序。于是「挂着标定工具时现象消失」完全可能是被观测条件改出来的。⇒ 正确动作:定版之前必须有一轮不挂标定工具的复测,且这一轮的结论优先于挂着工具时的结论。⚠ 挂与不挂两种状态的差别有多大,是平台相关量,须在本项目同一台车上各测一轮实测对比确定,本课不给任何影响量的说法。

★ 这两个形态与主反钉子同源:都是把「我在工具里看到的」当成「系统真实的样子」

最后把边界划清——本课站在控制策略与各子系统标定之间,上下游都有属主课;不在开篇把边界写死,这门课要么与它们重叠,要么整段落空。

本课交付八件:① 标定、控制策略设计与软件开发的分工判据(判的是「这次修改动到了哪一层对象」);② 能改变系统行为的四类对象及其判定;③ A2L 的对象模型、四类标定量与三种轴形态,以及「改这张表会不会连带影响别的表」怎么查;④ XCP 的两条通路(测量上传与标定写入)与在线标定的带宽账;⑤ 一次在线标定的工具链五件套与「连不上」的排查次序;⑥ 标定阶段的四段法律地位,以及变更判据链的结构;⑦ DoE 与响应面的适用判据、以及压缩测点之后实测与外推的证据等级标注;⑧ TMS 标定量的五族分类与各族的承载对象。

本课不交付,每一项都写清去哪门课:任何一个 TMS 标定量的取值——空调侧去 K6-02 空调与制冷系统标定、电池侧去 K6-03 电池热管理标定、热泵与多模式侧去 K6-07 热泵与多模式切换标定、混动与增程侧去 K6-11 混动/增程热管理标定:热请求门限、余热接管与 PTC 交叠退出、暖机分阶段、电驱与前端回路去 K6-08 电驱与前端散热回路标定(BEV);标定量的规格怎么写(轴点取值依据、内插与超界行为、上下限、可标性等级与不可标量)去 K6-10 标定量规格定义:轴点、插值/外插保护、上下限与不可标量;量产散差与全寿命衰减怎么折进阈值去 K6-06 面向量产散差与老化的鲁棒标定:把公差、传感器误差与衰减折进阈值,误差合成方法学本体去 B1-02 需求逐级分解:整车 VTS → 系统 SSTS → 零部件;环境舱的工况矩阵、舱时预算与收敛判据去 K6-04 环境舱与整车热平衡标定;标定数据的版本、分支与权限去 K6-05 标定数据管理与版本控制;诊断与保护阈值的整定、验证与复验去 K5-07 诊断与保护阈值的整定、验证与复验(本课对它只作工具前置);产线下线与售后写入去 K6-09 产线下线与售后标定:工位项清单、配置写入与学习值管理;把标定动作前移到 MIL/SIL/HIL 的虚拟标定闭环去 K6-13 虚拟标定:把标定动作前移到 MIL/SIL/HIL、自动寻优与回归标定,在环阶梯与旁路标定本身去 K4-03 MIL/SIL/HIL 验证流程;学习值的持久化去 K4-06 控制器非易失存储设计:学习值、诊断数据与累计量的持久化、学习使能与护栏去 K7-03 数据驱动的能效自学习控制;仲裁骨架去 K3-01 整车热管理控制策略总览与模式管理、降级等级体系去 K5-02 热管理故障处理与降级策略、增益整定去 K3-05 PID/前馈/增益调度控制实战;软件架构与任务调度去 K4-01 热管理嵌入式软件架构与 AUTOSAR 基础。⚠ 还有一整类本课一个字都不写:任何标准的条款内容、等级号与限值——功能安全侧的变更评审与工具鉴定去向见 K2-03 功能安全(ISO 26262)在热管理中的应用,A2L 与 XCP 两侧的对象语义与版次须按现行 ASAM 目录核对原文。⛔ 这条边界是写给读者的导航,不是免责声明:本课不判的东西,都写明了由谁判。

第 1 讲 先把三条线划清:这次改的是哪一层对象、值从哪来、什么才算「改得动」

标定工作真正卡住人的地方,几乎都不在「参数往哪个方向调」,而在开始调之前的三条线没划清。第一条是分工线——手上这件事到底是标定、是控制策略设计,还是软件开发;线画错,人会在标定台架上花掉几周去做一件在这里根本做不成的事。第二条是输入线——你手上的软件、描述文件与参数值是不是同一版;这条线断了不会当场报错,它会安静地产生一份看起来完全合理、实际上完全错的标定数据。第三条是产出线——一次标定交出去的到底是一个参数表,还是一组「值 + 它被验证过的条件」;这条线定不下来,下一个项目接手的人无法判断这些值能不能用。本讲把这三条线逐一画出来,并交出四个可当场执行的判定动作:改的是哪一层对象(1.1)、这个量到底能不能被标(1.2)、你手上这个「能改的东西」属于四类里的哪一类(1.4)、以及现象改不动时先判它是不是参数问题(1.6)。⚠ 本讲一个数都不给——不是省略,而是本讲交付的全部是射程、口径与判据结构;凡是带数的结论都在后面几讲,且各自带自己的来源与适用条件。最后两节把全课的符号一次钉死(1.7)、把本课的边界一次声明清楚(1.8),后面五讲不再重复这两件事。

1.1 一次修改到底动了哪一层——判据是「动到哪一层对象」,⛔ 不是「谁来做」

是什么。现场拿到一句「这个要改一下」,本课给三问判定树,且必须按顺序问

  • 问① 这次要改的,是不是一个已有对象的取值?——把一个阈值从 A 改成 B、把一张二维表里某个格子的数改掉、把优先级向量里两项对调。是 ⇒ 这是标定,在本课射程内,你可以留在标定台架上把它做完。
  • 问② 要改的是判据的结构吗?——这个模式的进入条件要从「单阈值」改成「阈值加最小驻留」;仲裁要从优先级序改成加权求和。是 ⇒ 这是控制策略设计,归 K3-01 整车热管理控制策略总览与模式管理,本课不做。
  • 问③ 要改的是代码、任务调度或数据流吗?——这个量根本没被算出来;这个判断跑在错误的任务周期上;两个模块之间少了一条信号。是 ⇒ 这是软件开发,归 K4-02 基于模型开发(MBD):Simulink 建模与代码生成(模型与代码生成)与 K4-01 热管理嵌入式软件架构与 AUTOSAR 基础(软件架构与任务调度),本课不做。

★ 这棵三问树是本课归纳的组织方式,⛔ 不是任何标准或工具手册里既有的分类,引用时请照本课的措辞写。

为什么判据必须落在「对象层」而不是「谁来做」。按「谁来做」分工在组织上往往是成立的——很多公司里标定与策略本来就是同一拨人,甚至同一个人。但它不可判真假:同一个人做的这两件事,代价、审批路径与验证范围完全不同。改一个值,只要它落在已验证的工况包络内,复测范围就是包络内的确认;改一个判据结构,要重新走一遍策略层的验证,因为系统的行为空间变了;改代码则要重新编译、刷写并跑回归,还要重新确认这一版软件与它的描述文件是否同源(1.3)。⇒ 分工判据错位的直接后果,就是本课最贵的那个误区:把一个控制逻辑缺陷当成「参数没调好」,在台架和环境舱里一轮一轮地调下去(1.6 给出正面的判定动作)。

工程量级。本条不涉及任何数值。⛔ 三类改动各自的工期、审批周期与成本是平台与组织相关量,随流程、供应关系与安全等级而定,须按本项目的变更流程确定,本课不给任何量级说法。

易错点。两个。①把「改起来麻不麻烦」当判据——在标定工具里点一下就能改的,不一定就是标定量:它可能是一个本不该被暴露出来的量,也可能是一个改了会被运行中的自适应逻辑盖回去的量(1.4)。反过来,一件改起来很麻烦的事也不一定就是软件开发,它可能只是权限没开(1.2 易错点①)。②把三问当成并列的三个选项——它们必须按顺序:只有问①的肯定答案能让你留在标定台架上,先问后两问的人会不断地把本可以当场改完的事推给别人,也会把真正的结构问题留在自己手上磨。

一条竖直的三问判断链,节点与出口各带独立文字标签。左侧列三条现场原话作为入口:这个阈值再往上抬一点、这个模式的进入条件要加一个最小驻留、这个量根本没被算出来。中间自上而下三问:问一,要改的是不是一个已有对象的取值;问二,要改的是不是判据的结构;问三,要改的是不是代码、任务调度或数据流。每一问右侧各挂一个出口框,依次写标定,本课射程;控制策略设计,去 K3-01;软件开发,去 K4-02 与 K4-01。三条入口原话各用一条虚线连到它落进的那个出口,第一句连到标定,第二句连到控制策略设计,第三句连到软件开发。三问之间用实心箭头串联,箭头旁标注必须按顺序问。链的右侧另有一个灰底提示框,写判据是这次修改动到了哪一层对象,不是谁来做,也不是改起来麻不麻烦。图例中标明三问判定树是本课归纳的组织方式,不是任何标准既有的分类。图上不出现任何物理量、坐标轴与数值。本图为结构示意,不含任何数值,不得据图读取任何量。
图1 一次修改动了哪一层:三问判定树(本课归纳)。该读出两件事:一,三类改动的分界线是动到哪一层对象,⛔ 不是组织分工,也不是操作难易;二,三问必须按顺序——只有第一问的肯定答案能让你留在标定台架上。三个出口的名称、三条入口原话各自的落点、以及「必须按顺序」这条标注,图上各有独立文字标签。本图为结构示意,不含任何数值,⛔ 不得据图读取任何量。

1.2 「可标」是二值判据,不是程度词——它在不在参数空间里,是一件可以当场查证的事

是什么。「这个能不能调」在现场是一句含糊的话,它可以被理解成「难不难调」「有没有人调过」「调了有没有用」。本课把它换成一个可查的动作:拿这个量的名字,去这一版软件配套的描述文件(A2L)里搜,看它是不是一个 CHARACTERISTIC。三个出口,互不重叠:

  • 它是一个 CHARACTERISTIC可标。接下来看它是哪一类、轴是不是共享的(第 2 讲)。
  • 它只是一个 MEASUREMENT可读不可写。你能在工具里看到它的值随工况变化,但你改不了它——它是被算出来的,不是被设定的。
  • 描述文件里根本没有这个名字 ⇒ 它在软件里被写死了,属不可标量;这一类恰恰是现场「怎么调都没反应」的真正原因(1.4 第四类)。

⚠ CHARACTERISTIC 与 MEASUREMENT 是 ASAM MCD-2 MC(ASAP2)描述文件里的对象名称。本课只使用这些名称与结构口径,⛔ 不引任何条款号、⛔ 不写版次、⛔ 不给任何数值型限值;具体对象语义与版次须按现行 ASAM 目录核

为什么这一条值得单独立一节。两个理由。一是它能结束一类争论:现场关于「这个到底能不能调」的讨论,相当一部分实际上在争一件可以当场查证的事,把它变成「去描述文件里搜一次」这一个动作,讨论就结束了。二是更要紧的一层——它把「标定能力」的边界从人身上挪到了软件设计上。一个量该不该做成可标的,是软件设计阶段的决定;到了标定阶段,标定工程师水平再高,也动不了一个软件里没有为它预留对象的量。⇒ 所以「标定能不能标出来」这个问题,一部分答案其实写在上游:哪些量需要被暴露成标定量,是需求与软件设计时就要定的事(规格怎么写、不可标量怎么判定,归 K6-10 标定量规格定义:轴点、插值/外插保护、上下限与不可标量)。

工程量级。不给数。一个 TMS 域控里有多少个 CHARACTERISTIC、描述文件有多少行、多大体量,是平台相关量,随功能范围与软件设计而定,须在本项目自己的描述文件上实际统计。⛔ 本课不给「一般有几千个」这类量级说法——那类数最容易被下一个平台原样抄走,而它本来就不该被跨平台复用。⚠ 这里唯一能给的结构事实是:描述文件的体量决定了逐行读它不现实,所以要按对象地图定向搜(第 2 讲给这张地图)。

易错点。两个,方向相反。①把「描述文件里有」当成「现在就能改」——它是可标的必要条件,不是充分条件:还要看你的账户有没有写权限、看它在不在受保护的安全相关量清单之内(权限分级与数据管理归 K6-05 标定数据管理与版本控制,跨企业交付时的权限与责任划分归 K4-09 热管理控制软件的跨企业交付边界:交付物形态、DIA/SEooC、权限分级与联合验证签署)。②反过来,把「我这里暂时改不了」当成「不可标」——那是权限问题,不是可标性问题。两者的解决路径完全不同:权限问题去找数据管理与授权流程,可标性问题要回到软件设计,走需求变更。判错这一步,会让人去做一件方向完全不对的事。

1.3 标定的输入与产出各是三件,不是一件——三件套不同源时,工具不一定报错

是什么(输入侧)。一次标定要开工,手上必须齐三件,且三件同源

  • 量产软件——烧进控制器的镜像(Hex)里的代码段,它决定了系统的逻辑;
  • 与之同源的描述文件(A2L)——它描述这一版软件里每个对象叫什么、是什么类型、放在哪个地址、内存里的整数怎么换算成物理值;
  • 参数集——Hex 里的标定段,或者以 DCM 这类只含标定量取值的可读文本形式单独给出。

三者的同源关系由一条机制决定:描述文件里的地址表是从这一版软件的链接结果生成的 ⇒ 软件只要重新编译过,地址就可能变,描述文件必须跟着换。⛔ 「版本差不多」在这里不是一个可用的判断。

是什么(产出侧)。一次标定交出去的同样是三件,各自回答一个不同的问题:

产出物 它回答的问题
定版 Hex / DCM 这些值是多少
与之配对的 A2L 这些值分别是谁、怎么解释(类型、地址、换算)
标定报告 这些值在什么条件下被验证过

⇒ 报告的核心不是那张参数值表(值已经在 Hex/DCM 里了),而是每个参数的适用工况包络。包络至少写清四项:环温范围、负荷或工况范围、件状态(名义件,还是某个特定的偏差组合)、该参数被复测过几轮

为什么。输入侧这条线堵的是标定链路上最隐蔽的一类事故:用旧描述文件去连新软件,地址还在——内存那个位置确实有数据——工具照样显示出一个数,量纲看着也对,只是那个数已经不是你以为的那个量。⚠ 它不像「连不上」那样会当场暴露,它会安静地产生一份错的标定数据,而这份数据可能一路走到定版。产出侧这条线堵的是另一类损失:没有包络的参数表,在下一个项目里是不可用的——接手的人无法判断这个值能不能搬、搬过去要不要重标(第 4 讲会把这一点变成一条硬判据:搬过去的值退回「初值」的地位)。⇒ 两侧合起来是同一句话:一个值离开它的三件套,就不再是一个结论,只是一个未经验证的猜测。

用词必须在这里对齐一次,否则后面几讲会读串:全课的「三件套只有一个所指,即引言钉子 B 立的那一组——产生它的那一版软件 + 与之同源的 A2L + 它被验证过的工况包络;第 4 讲判一个值的法律地位、第 5 讲判包络能不能被搬,用的都是这一组。本节的输入三件(软件 / A2L / 参数集)与产出三件(定版 Hex 或 DCM / 配对 A2L / 标定报告)是它在操作侧的展开,⛔ 不是第二套「三件套」,也⛔ 不得与它互相代入。两者的接缝只有一处,记住它就不会串:参数集是「值」这一件的载体,标定报告是「工况包络」这一件的载体——所以报告缺了包络,这个值在第 4 讲那条轴上就连候选值都不是。

工程量级。不给数。描述文件的对象数与体量、包络的边界(环温上下限、负荷点的位置)全是平台相关量,由本项目的工况定义与目标市场确定,须按项目文件核。⚠ 本条唯一能给的是结构事实A2L 给结构与地址,Hex/DCM 给值——这句话是第 2 讲展开对象模型的起点,也是标定数据管理(K6-05 标定数据管理与版本控制)里那条对应关系的出处。

易错点。六个,输入侧三个、产出侧三个。输入侧:①把描述文件当成「参数清单」——它不含值,它含的是描述;②拿上游给的一份「差不多版本」的描述文件凑合用;③认为只要工具连上了就说明版本对——连上只证明协议层通了(第 3 讲),⛔ 它不证明描述与镜像同源。产出侧:④报告只给一张参数表加一句「验证通过」,包络一个字没写;⑤包络写成「全工况」——那是一句无法被证伪的话,因而也无法被复用;⑥把描述文件漏在交付物之外,下一次拿到 Hex 却解释不了它。

一张三栏构成与约束关系图,各元素带独立文字标签。左栏为标定的输入三件:第一件是量产软件,画成一个镜像方框,框内分上下两块,上块标代码段,下块标标定段;第二件是与之同源的描述文件 A2L,画成描述文件方框,框内两行,一行写地址表,一行写换算规则;第三件是参数集,标注为 Hex 标定段或 DCM。中栏为一个标定活动方框。右栏为产出三件:第一件是定版 Hex 或 DCM,第二件是与之配对的 A2L,第三件是标定报告,报告框内列出包络四项,依次为环温范围、负荷范围、件状态、复测轮次。左栏的量产软件与描述文件之间画一条粗的双向约束线,线上标注同源,软件重新编译则地址可能变。右栏三件产出之间同样画一条约束线,标注三件一起交付。图下方另有一条警示带,写描述文件与软件不同源时工具不一定报错,它会读到看似合理的错值。图例中标明输入与产出各三件的划分以及包络四项是本课归纳的交付口径,图上不引任何标准条款号。图上不出现任何数值与比例。本图为结构示意,不含任何数值与比例,不得据图读取任何量。
图2 标定的输入三件与产出三件(本课归纳的交付口径)。该读出两件事:一,输入与产出各是三件而不是一件,缺任一件,后续都无法解释这些值;二,不同源导致的失效是安静的——它不报错,只出错值,所以同源检查必须主动做,⛔ 不能等工具替你报。三件输入、三件产出、两条约束线的含义、以及包络四项,图上各有独立文字标签。本图为结构示意,不含任何数值与比例,⛔ 不得据图读取任何量。

1.4 能改变系统行为的对象有四类,不是一类——判错类别是「调不出来」的第一大成因

是什么。沿「标定量」这一个词往下数,只会数出一类。而在一台控制器上,能改变系统行为的对象至少有四类,它们在工具窗口里看起来可能很像(都是一个名字加一个数),但谁写它、什么时候写、存在哪、你能不能改四栏全不同:

类别 谁写 什么时候写 存在哪 标定工程师能不能改 本体去向
标定量 标定工程师 标定阶段、变更评审通过后 Flash 标定段或 RAM 标定页 ,在权限内 本课
配置字与变体编码量 产线工位或售后工具 下线时、换件后 非易失存储的配置区 通常没有这个通道 K6-09 产线下线与售后标定:工位项清单、配置写入与学习值管理
学习值与自适应量 控制器自己 运行中,按使能条件 非易失存储 一般只能清零或触发重学 持久化 K4-06 控制器非易失存储设计:学习值、诊断数据与累计量的持久化;学习使能与护栏 K7-03 数据驱动的能效自学习控制
不可标量 软件工程师,在源码里 编译期 代码段 不能,只能改代码 判定与规格 K6-10 标定量规格定义:轴点、插值/外插保护、上下限与不可标量

★ 这四类的划分与四栏属性是本课归纳的组织方式,⛔ 不是任何标准既有的分类。本课在这里只做「遇到一个量,先判它属哪一类」这一层判定,各类的本体一律按上表给去向,本课不重讲。

为什么必须先分类再排查。因为「改了没生效」这一个表象,在四类下有四种完全不同的根因:标定量没生效,通常是值没写回或没导出(第 3 讲的 RAM 标定页);配置字没生效,是它压根不该由你在台架上写,而要在对应工位写;学习值没生效,是你标的值被运行中的自适应逻辑盖回去了——而且覆盖发生在运行中,台架上未必立刻看得见;不可标量没生效,是根本没有这个通道。⇒ 不先分类就排查,等于拿一种根因的排查手段去对付另外三种,每一种都会得到「查不出问题」的结果,然后人就开始怀疑工具、怀疑硬件、怀疑自己。

工程量级。不给数。四类各自的数量与占比是平台相关量,随功能范围与软件设计而定,须在本项目自己的软件与描述文件上统计。

易错点。三个,按代价从高到低排。①最常见也最贵:把学习值当标定量去标——你标进去的值会被下一次学习覆盖;更麻烦的是覆盖发生在运行中,台架上短时间内看不出来,等到跑长工况或跑用户场景时才浮出来,那时你已经在这个值上做完了一整轮验证。②把配置字当标定量——在标定台架上改了、看起来生效了,但产线上没有写这一项,于是量产车的行为与样车不一致,而样车的记录里一切正常。③认为四类之外没有别的——⚠ 这张表是本课当前铺到的四类,⛔ 不是封闭全称;遇到一个说不清属哪一类的量,正确动作是先去问它的写者是谁、在什么时机写,⛔ 不要默认它是标定量。未列入表的东西不等于不存在,把它默认成「就是标定量」,等于把一个未知对象直接拉进了你的验证范围。

上下两部分。上部为一条四问判断链,节点与出口各带独立文字标签:问一,它在描述文件里是不是一个可写对象;问二,它是不是按车型配置在产线或售后写入的;问三,它是不是控制器自己在运行中写的;问四,以上皆否。四个出口依次为标定量、配置字与变体编码、学习值与自适应量、不可标量。下部为一张四行四列对照表,行为上述四类,列依次为谁写、什么时候写、存在哪、标定工程师能不能改。第一行标定量填标定工程师、标定阶段与变更评审后、Flash 标定段或 RAM 标定页、能且在权限内。第二行配置字填产线工位或售后工具、下线与换件后、非易失存储的配置区、通常没有这个通道。第三行学习值填控制器自己、运行中按使能条件、非易失存储、一般只能清零或触发重学。第四行不可标量填软件工程师在源码里、编译期、代码段、不能只能改代码。每一行最右侧再挂一个去向标签,依次为本课、K6-09、K4-06 与 K7-03、K6-10。表下另有一条警示带,写归不进四类的量,先去问它的写者是谁,不要默认它是标定量。图例中标明四类划分与四列属性是本课归纳的组织方式,不是任何标准既有的分类。图上不出现任何数值。本图为结构示意,不含任何数值,不得据图读取任何量。
图3 能改变系统行为的对象有四类(本课归纳):谁写、什么时候写、存在哪、你能不能改。该读出两件事:一,「改了没生效」这同一个表象在四类下有四种完全不同的根因,所以必须先分类再排查;二,最贵的一种误判是把学习值当标定量去标——你标的值会被下一次学习覆盖,而覆盖发生在运行中,台架上未必立刻看得见。四个类名、四列属性、四个去向、以及「先分类再排查」这条判断,图上各有独立文字标签。本图为结构示意,不含任何数值,⛔ 不得据图读取任何量。

1.5 标定报告里,实测区间与模型外推区间必须按证据等级分开标注——⛔ 不得同色呈现

是什么。1.3 说报告的核心是包络。这一节给包络加一条硬规则:包络里至少要分三档证据等级,三档用不同的图元区分,并各自写明依据是什么

  • 实测点——这一点真跑过,有原始测量数据可回溯;
  • 实测点之间的内插区——模型在数据支撑范围之内的插值;
  • 外推区——超出实测点包络之外的模型预测,没有实测支撑

为什么这条规则要在第 1 讲就立。因为它是第 5 讲欠下的账,必须在这里先把还账的方式定好。用试验设计(DoE)与响应面把测点压缩掉,是标定里正确且必要的做法——台架与环境舱的时间是标定链路上最贵的资源之一。但压缩的机制是「用假设换测点」:你假设响应在某个区域内是光滑的、交互项可忽略,于是不必逐点去跑。⇒ 这个假设省下来的那一部分,必须以「外推」的身份出现在结论里,否则读报告的人会把整张包络当成实测结果去用。★ 这也是本课两条主线在第 1 讲的第一次合流:压缩测点是对的,隐藏「压缩过」这件事是错的

工程量级。不给数。三档各自覆盖多大范围,由本项目的测点矩阵决定;包络两轴(环温、负荷)的刻度同样是平台相关的工况定义,本课与本课的图都不给刻度值

易错点。三个。①用同一种图元画满整张包络,只在图注里写一句「部分点为模型预测」——读者不会去数是哪几个点,于是整张包络的证据等级被最弱的那一档拉平,却没有人知道。②把外推区当成可承诺的能力对外报——⚠ 外推区的端点尤其危险:它落在模型的边缘,是最乐观的一侧,⛔ 不得被写成「能做到」的承诺值。③反过来矫枉过正,把内插也一律标成外推——三档标注一旦失去区分力,读者就会退回到「反正都不可信」的读法,这条规则也就白立了。

一张二维平面加一个反例小图,各元素带独立文字标签。主图横轴标注为环温,纵轴标注为负荷,两轴均不标任何刻度数值,只在轴端标注方向由低到高。平面上画三档区域:若干实心圆点标注为实测点,旁注这一点真跑过;实测点之间的浅色底纹区标注为内插区,旁注模型在数据支撑范围内;包络之外的斜纹区标注为外推区,旁注模型预测,无实测支撑。右侧配一个三行图例,逐行写清三档各自的依据。主图下方并列一个反例小图,整张平面用同一种底纹画满,只在角落写一行小字部分点为模型预测,这个反例上盖一个禁止符号,旁注读者不会去数是哪几个点。图例中标明三档证据等级的划分是本课归纳的报告口径,反例为本课构造的教学对照。图上不出现任何刻度数值。本图为定性示意,不代表任何平台的实际值,不得据图读取任何数值。
图4 包络里的三档证据等级(本课归纳的报告口径)。该读出两件事:一,一张包络里至少有三档证据等级,可信度不同,必须用不同图元区分并各写依据;二,下方反例说明「在角落写一句话」不算分档——读者不会去数是哪几个点,于是整张包络的证据等级被最弱那一档拉平却无人知道。三档区域、三档依据、两轴含义、以及反例为什么被否,图上各有独立文字标签。⚠ 两轴刻意不给刻度值:环温与负荷的边界都是平台相关的工况定义。本图为定性示意,不代表任何平台的实际值,⛔ 不得据图读取任何数值。

1.6 「效果不好」不等于「标定没标好」——先判是不是参数问题,再决定要不要继续调

是什么。「同一份软件,标定水平不同,效果天差地别」这句话是对的,但它非常容易被反过来读成「凡是效果不好,都能靠标定救回来」。原句说的是:给定一份逻辑正确的软件,标定决定它能跑多好;反过来读,因果方向就整个倒了。⇒ 本课在这里给出正面的判定动作,三步

  1. 在描述文件里找出与这个现象相关的那一个(或一组) CHARACTERISTIC;
  2. 把它在允许范围的两端各取一次——⛔ 不是小步微调
  3. 看现象是否在两端之间出现与消失

三步走完,现象随两端切换而出现与消失 ⇒ 这是参数问题,继续标。若第 1 步就找不到这样的量,或者两端都不改变现象 ⇒ 这不是参数问题,退回 K3-01 整车热管理控制策略总览与模式管理(判据结构这一层)或 K4-02 基于模型开发(MBD):Simulink 建模与代码生成(实现这一层),⛔ 不要再占用台架与环境舱。★ 这个「取两端」的判定动作是本课归纳的,⛔ 不是任何标准或工具手册里的既定流程。

为什么取两端,而不是小步微调。因为这一步要判的是「这个量在不在因果链上」,不是找最优值。小步微调既慢,又给不出结论——现象没变,你不知道是量选错了还是步长不够。取两端只花几分钟,却能给出一个二值答案。⇒ 它省下的是若干轮环境舱复测,而那是标定链路上最贵的资源之一。

那条被禁止的旁路,为什么走不通。现场最典型的语言是「已经加了迟滞,还在抖,那就再加宽一点」,每加一轮就要占一次舱时、复测一轮。切换失稳有可穷举的多种机理(K3-01 整车热管理控制策略总览与模式管理 已按模式与仲裁层面把成因归好类),至少两类拿加宽带宽治不好,而这两类不在同一层

  • 双向触发量不同造成的乒乓那份模式与仲裁层面的归类之内)——A→B 与 B→A 用的不是同一个量。两个方向的条件可以各自成立,而当两个方向用两个不同的量时,「迟滞带」这个概念本身就没有定义,带宽加到多大都不改变这一点;
  • 回路级极限环(⚠ 不在那份归类之内——K3-01 整车热管理控制策略总览与模式管理 把它显式声明在那一层的定义域之外)——两级控制器互相把对方当成被控对象,形成一个闭环。这是控制结构问题,不在阈值这一层。

⇒ 加宽带宽在这两类上不但无效,还会把响应变慢、把真正的缺陷掩盖着带上车。⚠ 本课只给这两类机理的名称与去向,它们的判据与展开归 K3-01 整车热管理控制策略总览与模式管理;⛔ 引用时不要把第二类算进「模式与仲裁层面那份成因清单」里去数——那正是 K3-01 整车热管理控制策略总览与模式管理 点名要防的混淆。

工程量级。不给数。「允许范围的两端」由该量自己的上下限规格给出(规格怎么写、上下限怎么定,归 K6-10 标定量规格定义:轴点、插值/外插保护、上下限与不可标量),是平台相关量

易错点。三个。①只朝一个方向调——单向调到底,看不出「两端都无效」这个关键结论,人会以为「再调远一点也许就有效了」。②在两端之间盲扫——那是把一次判定做成了一轮优化,成本回到原点。③⚠ 反向也要防:判出「是参数问题」之后就不再怀疑逻辑。参数能改变现象,不代表参数是最优解,也不代表逻辑没有另一处缺陷——你只证明了这个量在因果链上,没有证明因果链上只有它。

一条判断链加一条被禁止的旁路,节点与终点各带独立文字标签。入口框写现场原话:这个调不出来,再加宽一点试试。第一个判据框写在描述文件里找与该现象相关的可写对象,引出两个分支:找不到,走向一个红色终点框,框内写不是参数问题,退回 K3-01 判据结构或 K4-02 实现,停止占用台架;找得到,进入第二个判据框,写把它取到允许范围的两端各试一次,括注不是小步微调。第二个判据框引出两个分支:现象在两端之间出现与消失,走向一个青绿终点框,框内写是参数问题,继续标;两端都不改变现象,同样走向那个红色终点框。图右侧另画一条被禁止的旁路,从入口直接指向一个方框写加宽带宽并进舱复测,这条路径上盖一个禁止符号,旁注这条路在两类机理上无效,一是双向触发量不同造成的乒乓,二是两级闭环互相把对方当被控对象形成的极限环,并标注两类机理的判据在 K3-01。图例中标明取两端的判定动作是本课归纳。图上不出现任何物理量与数值。本图为结构示意,不含任何数值,不得据图读取任何量。
图5 先判是不是参数问题(本课归纳的判定动作)。该读出三件事:一,判定动作是取两端而不是小步微调——要判的是这个量在不在因果链上,不是找最优值;二,「两端都无效」与「找不到这样的对象」导向同一个结论;三,右侧那条被禁止的旁路为什么无效——它对应的两类机理(双向触发量不同的乒乓、回路级极限环)都不在阈值这一层,⚠ 图上只写名称与去向,机理本身归 [K3-01 整车热管理控制策略总览与模式管理](/academy/topic/K3-01/)。两个判据框、三个终点、旁路上的两类机理名,图上各有独立文字标签。本图为结构示意,不含任何数值,⛔ 不得据图读取任何量。

1.7 全课的符号在这里一次钉死:五条口径,其中三对是同名不同量

是什么。本课后面几讲要用到四条式子(⚠ 另有一条误差合成式 σ_stack 在第 6 讲,它的符号不与任何量撞名,故不进本表),它们分别来自试验设计、控制整定与通信带宽三个不同的领域,于是不可避免地出现同一个字母指两个不同的量。本课的处置是在这里一次立表,全课统一,⛔ 正文一律禁止裸写歧义形式:

符号 本课含义 量纲/单位 出现在 禁止写法
L 试验设计的水平数 无量纲 第 5 讲 N_full = L^k
L_frame 一帧的长度 bit 第 3 讲 ρ_XCP ⛔ 全课禁止用裸 L 指帧长
T_on / T_off 开启/关闭温度阈值 K 或 ℃ 第 6 讲 ΔT_hys
T_raster,i 第 i 条测量列表绑定的事件通道周期 s 第 3 讲 ρ_XCP ⛔ 全课禁止裸写 T 指时间
f(x₁,…,x_k) 响应面的函数记号 第 5 讲 ⛔ 不得单独出现一个 f
f_cycle 执行器启停频次 1/s 第 6 讲只作提及,本体归 C6-04 智能座舱:人员感知与按需送风(露营/休息模式)
N_full 全因子设计的点数 第 5 讲 ⛔ 全课禁止裸写 N
N_ODT,i 第 i 条测量列表的帧数 第 3 讲 ⛔ 全课禁止裸写 N
R_avail 扣除其它流量后留给标定链路的可用位速率 bit/s 第 3 讲 ⛔ 不得写成裸 R,⚠ 它不是总线的标称速率
δ_sensor 传感器本征误差 + 布置代表性误差 K 或 ℃ 第 6 讲 ΔT_hys ⚠ 它不只是噪声一项

为什么这不是洁癖问题。三对撞名各有各的危险,而且危险的方式不同:

  • T 撞得最凶——温度与周期量纲完全不同。读者一旦代错,算出来的东西量纲就不对,可是在一页公式里,一个写着 T 的符号看不出它是几度还是几秒;
  • L 撞得最隐蔽——水平数与帧长两者都是纯数或看似纯数,L^k 与 L_frame 在两条各自成立的式子里同时出现,谁也不会怀疑它们不是同一个 L;
  • f 撞得最容易被忽略——函数记号与频次同用一个字母,而频次是有单位的物理量。⇒ 所以本课要求响应面的 f 必须紧跟自变量括号写成 f(x₁,…,x_k),⛔ 不得单独出现一个 f 让读者去猜它是记号还是量。

表里还有两条不是「同名不同量」,而是「同首字母」,一并钉死,凑成全课五条口径(关键公式详解沿用同一套,⛔ 不另立第二套):④ N——DoE 的点数 N_full 与 DAQ 的帧数 N_ODT,i 都以 N 打头,⛔ 全课禁止裸写 N;⑤ R——本课的 R_avail 与 K2-02 CAN/LIN/CAN-FD 通信与整车 EEA 集成 的标称位速率 R_baud 都以 R 打头且口径不同,⛔ 全课禁止裸写 R。⚠ 这两条的危险方式与前三对不同:前三对是代错量,这两条是写少一个下标就把两门课的口径混成一个数

工程量级。本条不涉及数值——符号本身不是量,表里给的是含义、单位与写法约定。

易错点。两个,都是实际会发生的手滑。①写第 6 讲的滞环时,顺手把周期也写成 T——两个量在同一门课里出现,而滞环那一节满篇都是 T_on 与 T_off,手会自己接上去。②从 K2-02 CAN/LIN/CAN-FD 通信与整车 EEA 集成 搬总线负载率的写法时,把可用速率写成裸 R——⚠ K2-02 CAN/LIN/CAN-FD 通信与整车 EEA 集成 用的是标称位速率,而本课第 3 讲用的 R_avail 是扣除其它流量之后留给标定链路的那一份,两者不是一回事,混用会把带宽账算宽。

1.8 本课交付什么、不交付什么——边界写成「去哪门课」,⛔ 不写成「本课不负责」

是什么(交付面)。本课是标定这条线的入门课,它交付的是一套共同语言。⚠ 先把两个数对齐,⛔ 别当成两份清单:引言与小结按条目数,是八件;本节按讲次归拢,是五组——同一套东西的两种切法。两者的对应是:本讲自己交付的两件(分工判据、四类可改对象的判定)在下面五组之外单列,其余六件按讲归成五组(其中「XCP 两条通路与带宽账」与「五件套与排查次序」同属第 3 讲,合成下面第 2 组)。五组是:

  1. 标定量的对象模型与类型学——描述文件里的对象怎么组织、标定量分哪几类、轴归谁(第 2 讲);
  2. 在线标定的通路与工具链——协议在做什么、测量与标定两条通路怎么互相挤占、一次在线标定要凑齐哪五件套(第 3 讲);
  3. 标定流程的四段法律地位与变更判据链——一个值在每个阶段分别算什么,什么时候它才可以被交付(第 4 讲);
  4. 试验设计与响应面的适用判据——什么时候该压缩测点、什么时候必须老实全扫、压缩之后怎么把账还回来(第 5 讲,与本讲 1.5 合流);
  5. TMS 标定量的族分类——按「它约束什么」把标定量分族,每一族的形态、承载对象与整定去向(第 6 讲)。

是什么(不交付面)。下面这些明确不在本课射程内,本课只给去向,⛔ 不给限值、不给取值方法:

不在本课的东西 去哪门课
任何一个 TMS 标定量的取值 各子系统标定课:空调与制冷 K6-02 空调与制冷系统标定、电池 K6-03 电池热管理标定、热泵与多模式切换 K6-07 热泵与多模式切换标定、混动与增程 K6-11 混动/增程热管理标定:热请求门限、余热接管与 PTC 交叠退出、暖机分阶段
标定量的规格(轴点取值依据、内插与超界行为、上下限与默认值、可标性等级、量间约束) K6-10 标定量规格定义:轴点、插值/外插保护、上下限与不可标量
量产散差、传感器误差与老化怎么折进阈值,复标台数与选样 K6-06 面向量产散差与老化的鲁棒标定:把公差、传感器误差与衰减折进阈值
环境舱测试矩阵、收敛判据与迭代轮次控制 K6-04 环境舱与整车热平衡标定
标定数据的版本、分支、权限分级与变更留痕 K6-05 标定数据管理与版本控制
诊断与保护阈值的整定、验证与复验 K5-07 诊断与保护阈值的整定、验证与复验(本课对它只作工具与协议的前置)
产线下线与售后的工位项、配置写入与学习值管理 K6-09 产线下线与售后标定:工位项清单、配置写入与学习值管理
把标定动作前移到模型/软件/硬件在环的虚拟标定闭环 K6-13 虚拟标定:把标定动作前移到 MIL/SIL/HIL、自动寻优与回归标定;在环阶梯本身见 K4-03 MIL/SIL/HIL 验证流程
功能安全相关标准的条款内容、等级号与限值 K2-03 功能安全(ISO 26262)在热管理中的应用 与现行标准原文

为什么边界要在第 1 讲就声明一次。因为越界是从第 3 讲开始发生的:读者读到工具与协议那一节,很容易顺势期待本课给出「压缩机转速该标多少」这类答案;等到小结才声明边界,读者早就越过去了。⇒ 边界要说在前面,而且要写成「去哪门课」——只写「本课不负责」等于把读者留在原地。

工程量级。不给数。本课全程不给任何一个 TMS 标定量的取值;后面几讲中凡是出现具体数字的地方,只有两类:一类是标准里的结构口径与取整规则(例如帧的载荷字节数),一类是显式标注为教学假设值的算例。⛔ 教学假设值不对应任何平台,禁止照抄取用。

易错点。两个。①把入门课读成工具操作手册——期待本课给出菜单在哪、快捷键是什么、界面怎么点。那是工具手册的内容,且它随版本变化;本课给的是结构与判据,换一个工具照样成立(第 3 讲会正面处理「两个主流工具的工程结构异同」这件事)。②顺手把讲义里的示例值当成典型取值抄走——⚠ 平台相关的门限必须由本项目的试验与统计确定,⛔ 禁止抄上一代平台,也禁止抄任何讲义里的示例;讲义里的示例值最容易被当成「上一代」来抄,因为它印得很像一个结论。

后面还有 5 讲正文 · 关键公式 · 案例拆解 · 常见误区 · 动手做

会员专属

后续为会员深水区内容——四库数据与深度拆解。

查看会员方案