SIMULINK 工程实践
从截图、接口表到数据字典,聊聊模型文档自动化中的关键细节
很多 Simulink 项目的文档,看上去页数不少:模型截图、输入输出表、参数表、目录一应俱全。但到了评审或交付现场,问题还是会冒出来:
• 截图来自旧版本,和当前模型对不上
• 接口表只有信号名,没有类型、维度、单位和采样时间
• 子系统截得太深,文档上百页却找不到设计主线
• 模型一改,图片、表格和 PDF 又要全部手工更新
问题的根源往往不是“缺文档”,而是文档和模型之间缺少稳定、可重复的生成关系。
好的模型文档,不是模型的“截图合集”,而是能回答:模块做什么、数据从哪里来、如何处理、结果到哪里去。
01一份可交付的模型文档,至少要有四层信息
文档结构不必照搬模型树,但建议至少覆盖下面四层。
1. 模块身份
模块名称、版本、职责、所属功能域、依赖模型、数据字典与生成时间。它解决“这份文档描述的是谁、基于哪个版本”的问题。
2. 外部接口
Inport、Outport、Bus、Data Store,以及跨 Model Reference 的数据连接。接口是需求、模型、代码和测试之间最重要的连接点。
3. 内部逻辑
顶层数据流、关键子系统、状态机、模式切换、限值与故障处理。重点是帮助读者理解设计,而不是把每一层都机械展开。
4. 数据定义
参数、标定量、测量量、枚举、单位、范围和默认值。这里应尽量链接到统一数据源,而不是在文档中维护第二份副本。
02接口表不只是“信号名清单”
只导出端口名称,价值其实很有限。一个可用于设计评审和测试设计的接口条目,通常需要同步关注:
一个容易忽略的细节:端口对话框里的显示值,不一定等于模型编译后的真实属性。继承数据类型、继承维度和继承采样时间,往往要在模型更新或编译后才能解析。因此,自动提取前要明确:拿的是“设计配置值”,还是“编译解析值”。两者用途不同,不能混为一谈。
03模型截图,关键不是“多”,而是“层级正确”
自动截图最常见的做法,是从顶层开始递归遍历所有 Subsystem。它实现简单,却很容易生成大量低价值页面:空壳封装、复用库块、简单路由层,都会被当成独立章节。
更实用的截图策略是分层控制:
顶层:必须保留,用于展示模块边界和主数据流。
第一层子系统:通常保留,构成文档的主要章节。
更深层级:仅展开包含关键算法、复杂状态逻辑或独立设计语义的节点。
Stateflow:建议单独处理状态图与转移条件,不要只截一个 Chart 外壳。
此外,还要统一画布尺寸、缩放比例和字体。过长的信号名、注释位置、隐藏块、Mask 内部结构都会影响输出效果。好的截图脚本不只是调用导出命令,还应当包含层级过滤、视图整理、异常记录和命名规则。
04文档一致性的核心:只有一个事实来源
模型里一份、Excel 里一份、文档里再抄一份,是接口失配的典型起点。更稳妥的做法,是把 Simulink Data Dictionary、Bus Object、Signal Object 或项目接口表明确为“事实来源”,文档只读取和展示,不再人工维护副本。
一条相对可靠的生成链路通常是:
加载工程与字典→更新/编译模型→扫描层级与接口→导出截图→校验完整性→生成 PDF
其中“校验完整性”不能省。至少应检查:模块是否加载成功、接口字段是否为空、图片是否生成、章节引用是否有效、失败模块是否被记录。否则,自动化只会更快地生成一份不完整文档。
05批量处理大型工程,先避开这几个坑
Variant:必须记录当前激活配置。不同 Variant 选择会改变参与编译的结构和接口,文档中应能说明生成时采用了哪套配置。
Model Reference 与 Library Link:需要区分“展开阅读”和“重复生成”。同一引用模型被多个模块使用时,应避免无意义地重复输出,同时保留引用关系。
模型回调与工作区:PreLoadFcn、InitFcn、Base Workspace 变量等会影响模型能否在无人值守模式下加载。批量任务应保存 MATLAB 日志,并把环境问题和内容问题分开报告。
缓存:几百个模块全部重跑代价很高。可根据模型文件、字典、模板及配置的变更情况复用结果,但缓存键必须覆盖真实依赖,否则很容易复用到过期文档。
把方法落成工具
我们为什么做 DOCGen Lite?
上面这些事情,靠零散脚本都能做一部分;真正困难的是把工程识别、MATLAB 截图、数据提取、任务管理、结果检查和 PDF 交付连成一条稳定流程。
DOCGen Lite 就是为此开发的轻量文档生成管理系统。它面向汽车电子与控制软件团队,支持自动扫描模块,并按实际需要生成单模块文档、选定模块合订文档或整项目文档。

✓ 自动识别模块目录、数据字典与相关工具链
✓ 支持模块搜索、任意选择与整项目批量生成
✓ 显示生成进度、当前模块与失败信息,任务可取消
✓ 支持网页预览、内容编辑与 PDF 下载
✓ 兼容既有 DocBook/FOP 链路,尽量延续原有 PDF 版式

它不是要把工程师排除在文档之外,而是把机械的截图、抄表、排版和合订交给系统,让工程师把精力放在真正需要判断的内容上。
模型会持续迭代,文档也应该同步更新
如果你正在维护大型 Simulink 工程,欢迎交流文档自动化实践。
后台回复「DOCGEN」预约演示与试用
夜雨聆风