3. 数据字典的工程定位

在基于模型的设计(Model-Based Design,MBD)流程中,数据字典常被误解为“参数存放的地方”。如果只把它当作变量仓库,团队很快会遇到典型问题:模型能跑,但生成的代码里出现同名不同义的变量;需求变更后,工程师改了模型却漏改字典;标定工程师拿到的A2L文件与需求文档中的量纲不一致。这些问题的根源,是数据字典没有被放在正确的工程位置上。

更准确地说,数据字典是MBD流程中的单一数据源(Single Source of Truth)。它位于需求、模型、代码、测试与标定之间,承担“语义锚点”的角色:需求中的物理量、模型中的信号与参数、生成代码中的变量与结构体、标定工具中的测量量,都通过数据字典中的同一条定义建立对应关系。数据字典不是流程的某个环节,而是贯穿多个环节的横向基础设施。

数据字典在MBD链路中的位置

一个典型的MBD链路可以抽象为:需求 → 模型 → 代码 → 集成/标定 → 测试验证。数据字典并不只服务于其中某一环,而是同时向多个环节提供定义。需求侧关注的是物理意义、量纲、取值范围;模型侧关注的是数据类型、维度、采样时间、存储类;代码侧关注的是变量名、作用域、内存段、是否可标定;测试与标定侧关注的是测量点、读写权限、上下限与单位。这些属性如果分散维护,必然产生漂移;集中到数据字典后,各环节引用同一份定义,追溯关系才成立。

数据字典在MBD流程中的追溯枢纽位置 需求 物理量 / 量纲 / 范围 REQ-ID 追溯标识 模型 数据类型 / 维度 采样时间 / 存储类 生成代码 变量名 / 作用域 内存段 / 结构体 测试与标定 测量点 / 读写权限 上下限 / A2L 导出 数据字典 单一数据源 名称 · 类型 · 单位 范围 · 存储类 · 追溯ID 定义来源 绑定引用 生成映射 导出接口 需求→模型追溯 模型→代码追溯 标定→验证追溯 所有环节引用同一条定义,变更时同步传播 追溯关系由字典中的 REQ-ID 与对象名共同承载

追溯关系的三种具体形态

数据字典与需求、模型、代码之间的追溯,不是一句“互相对应”就能落地的。工程上通常需要三种可检查的追溯形态。

第一种是需求到字典的追溯。需求文档中的每一条与信号或参数相关的条目,都应有一个唯一标识,例如 REQ-FUEL-012。数据字典中对应的对象需要记录这个标识。这样当需求变更时,可以通过标识反查哪些字典对象受影响。例如需求把“冷却液温度有效范围”从 -40~150℃ 改为 -40~160℃,字典中 CoolantTemp 的 Min 与 Max 属性必须同步更新,否则模型中的范围检查、代码中的限幅逻辑、标定工具中的显示范围都会不一致。

第二种是字典到模型的追溯。Simulink 模型中的信号线、参数、数据存储,都应绑定到数据字典中的对象,而不是在模型里临时定义。绑定关系体现在模型对象的属性中,例如信号对象引用 CoolantTemp,参数对象引用 Kp_Coolant。这样模型打开时,数据类型、维度、采样时间都从字典继承,避免“模型里改一个类型,代码里出现隐式转换”的问题。

第三种是字典到代码与标定文件的追溯。生成代码时,字典中的存储类决定变量被放置到哪个内存段、是否加 volatile、是否导出到 A2L。例如存储类设为 ExportedGlobal 的标定量,会生成全局变量并出现在 A2L 中;设为 Const 的查表数据,则可能被优化为常量数组。标定工程师通过 A2L 中的变量名与字典对象名一致,才能把测量点与需求语义对应起来。

一个可执行的追溯检查示例

下面给出一个简化的数据字典条目示例,用于说明追溯字段如何组织。示例中的参数为教学假设值,不代表任何实际项目标定结果。

对象名: CoolantTemp
  类型: single
  单位: degC
  范围: [-40, 160]
  采样时间: 0.01 s
  存储类: ExportedGlobal
  需求追溯: REQ-FUEL-012
  模型引用: ThermalMgmt/CoolantTemp
  代码变量: CoolantTemp
  A2L测量: CoolantTemp

有了这样一条记录,追溯检查就可以自动化:用脚本扫描模型,找出所有未绑定字典对象的信号;扫描生成代码,找出所有未在字典中登记的全局变量;扫描 A2L,找出与字典名称不一致的测量量。任何一项不匹配,都说明追溯链断裂,需要在集成前修复。

数据字典的工程定位可以概括为一句话:它不是参数仓库,而是需求、模型、代码、标定之间的语义契约。契约一旦集中维护,追溯就从“人工核对”变成“可自动检查的约束”。

常见误区与判断依据

实际项目中最常见的误区,是把数据字典当作“模型附属文件”。这种定位下,字典只在建模阶段使用,代码生成和标定阶段各自维护一套变量表,追溯关系很快失效。判断字典定位是否正确,可以看三个信号:第一,需求变更后,是否能通过字典快速列出受影响的模型对象和代码变量;第二,生成代码中的全局变量是否都能在字典中找到对应条目;第三,标定工程师拿到 A2L 后,是否能不依赖口头说明就理解每个测量量的物理意义。三个信号都满足,说明字典真正处在追溯枢纽的位置;否则,它仍然只是一个参数存放处。

因此,在MBD流程中建设数据字典,重点不是把变量录进去,而是把需求标识、模型引用、代码变量、标定测量这四个维度的对应关系同时录入并保持同步。字典的价值,正体现在这种跨环节的追溯能力上。