- 人工智能
- AI 技能
- AI 插件
- MCP 服务
【免费下载链接】simulink-agentic-toolkit
The Simulink Agentic Toolkit gives your AI agent both the tools and the expertise to work effectively with Simulink and Model-Based Design.
Simulink Agentic Toolkit(简称 SATK)是 MathWorks 推出的开源工具包,它为 AI 编程智能体(Claude Code、Copilot、Codex 等)同时提供「工具」和「知识」,让 AI 能像资深工程师一样构建、仿真、测试并生成 Simulink 嵌入式代码。本文聚焦其中面向量产部署的核心能力——code-generation代码生成技能组的 4 个技能,帮你把 Simulink 模型真正推向 ECU 生产环境。
为什么"代码生成"值得单独成一个技能组?
模型搭建好只是第一步。要上真车、上设备,模型还要经历一连串专业动作:
- 配置嵌入式代码生成(目标、硬件、合规)
- 优化生成代码(执行时间、RAM/ROM、栈占用)
- 降低内存占用(单精度转换)
- 定制 A2L 标定文件(对接 INCA、CANape 等标定工具)
这些步骤每一步都藏着实战经验和"踩坑点"。SATK 把它们沉淀成 4 个技能,放在 skills-catalog/code-generation/ 目录下,每个技能由一份 SKILL.md(行为规范)加一份 manifest.yaml(版本与产品依赖声明)组成。AI 智能体读取技能后,就会按标准流程操作,而不是"凭感觉乱试"。
技能一:simulink-generate-embedded-code —— 一条命令完成嵌入式代码生成配置
这是整个技能组的"入口"。你只需对 AI 说一句"把这个模型配置到 ECU 上部署,目标 ARM Cortex-M,优化内存",技能就会调用封装函数 configure_for_codegen.p,自动完成原本需要手工逐项修改配置集(ConfigSet)的工作。
4 个必填输入,一次问清
| 输入项 | 可选值 | 说明 |
|---|---|---|
| 目标框架 Target | ERT 可执行文件 / ERT 共享库 / AUTOSAR Classic / AUTOSAR Adaptive | 决定生成代码的组织形式 |
| 源语言 Language | C 或 C++ | AUTOSAR Adaptive 强制 C++ |
| 硬件 Hardware | ARM Cortex-A / M、x86-64 等设备字符串 | 决定字长与字节序 |
| 优化目标 Objective | Speed(速度)/ RAM(内存)/ Debug(可调试性) | 真实工程权衡,必须由你拍板 |
AI 会替你推断能从语句中读出的参数,并把"替你做的假设"明确复述给你(例如"默认使用 AUTOSAR Classic,如果你指的是 Adaptive 请告诉我");而硬件和优化目标这两个真实权衡点,它会一次性打包提问,绝不静默猜测。
三种构建模式,互不混淆
| 你的说法 | 执行模式 | 产出 |
|---|---|---|
| "只做配置,别生成代码" | 仅配置 | 应用配置集,不产生任何代码 |
| "生成代码,但不用编译" | 仅生成源码 | .c/.h 源文件,不编译可执行文件 |
| "构建它" | 完整构建 | 源码 + 编译出可执行文件 |
两个贴心的安全机制值得一提:级联传播——引用的子模型会被自动同步配置;失败回滚——任何一步出错,整个模型自动还原到配置前状态,不会留下"半配置"的半成品。若缺少依赖(如 AUTOSAR Blockset 未安装),技能会如实转述错误并停止,而不是偷偷绕过。
技能二:simulink-optimizing-embedded-code —— 像工程师一样迭代优化生成代码
"帮我优化一下生成的代码"这种需求最容易翻车:改一处参数,可能性能升了、正确性却悄悄崩了。simulink-optimizing-embedded-code 技能为此设计了一套严格的5 阶段迭代工作流:
收集需求 → 基线测量 → 提出优化建议 → 应用并复测 → 生成最终报告- 阶段 1 需求收集(不可跳过):即使你说"直接搞定",技能也会先确认三件事——优化目标(速度/内存/均衡)、硬件平台、验证模式(代码生成静态分析 / SIL / PIL)。
- 阶段 2 基线测量:先跑出"改之前"的运行时、RAM、ROM、栈等指标,作为黄金参考。
- 阶段 3 提出建议:按 A→B→C→D 四个阶段由浅入深给出优化批次(配置级、建模级、架构级),你确认后才动手。
- 阶段 4 应用并复测:每次改动后先过数值正确性闸门(输出与基线逐点对比,失败自动拒绝),再过目标轴闸门(你指定的核心指标不允许回退,回退即回滚)。只有双闸门通过,才打一个检查点快照。
- 阶段 5 收尾:输出前后对比的客户报告。
配套脚本(基线采集、数值比对、快照回滚等 18 个.p文件)都放在该技能的scripts/目录下,工作流细节参考 references/suggesting-optimizations.md。
技能三:simulink-single-precision-conversion —— 单精度转换省下一半内存
双精度(double)在嵌入式平台上又贵又不必要。该技能基于 Fixed-Point Designer 的DataTypeWorkflow.Single.convertToSingle函数,把模型中所有用户指定的 double 数据类型批量转为 single,布尔、整型和定点类型原样保留。
它的核心是一个check → convert → verify三步流程,全程生成可读报告:
- 兼容性检查:找出支持不了单精度的块、被锁定的 double 数据类型、隐藏的 double 运算,并自动处理 Target Language Standard、求解器等配套设置;
- 执行转换:记录每一处 double → single 的变更;
- 验证:重点检查
StowawayDblBlks("夹带的 double")——转换后仍在产生双精度运算的块,必须从源头修正而不是用类型转换块"掩盖"。
报告还会给出转换前后的RuntimeMemory内存对比表,让你直观看到省了多少字节。
⚠️ 一个刻意的安全设计:技能永远不自动保存模型。保存会摧毁双精度基线,后续无法复查或回退,所以改完后模型保持"未保存"状态,由你确认后自行保存。边界情况详见 references/edge-cases.md。
技能四:simulink-customize-a2l —— 让 A2L 标定文件符合工具链要求
A2L(ASAP2)文件是 ECU 标定界的"通用语言"。Simulink 默认导出的 A2L 往往不能直接被 ETAS INCA、Vector CANape 等工具接受,需要手工改写。该技能基于coder.asap2与coder.mappingAPI,覆盖:
- COMPU_METHOD计算方式(LINEAR、RAT_FUNC、TAB_VERB 等物理量↔存储值换算)
- GROUP标定参数分组、BIT_OPERATION位操作
- VARIANT_CODING变体编码(不同硬件配置切换不同参数)
- 排除不需要的输入/输出端口与结构体元素
技能最有价值的部分是**"常见错误清单":这些坑大多表现为"不报错、但结果是错的"。例如——导出时忘记回传定制对象descObj,所有定制会被静默丢弃**;RAT_FUNC 系数方向是"物理值→存储值",写反了会得到反向换算;ForceShared=true一个参数即可完成 STD_AXIS 到 COM_AXIS 的共享断点转换,而手搓 AXIS_PTS 结构体则是易错重灾区。五份参考文档(object-properties.md、compu-method-guidance.md 等)逐项列出了各对象的必填字段与版本要求(如 VARIANT_CODING 需要 R2025a 及以上)。
环境要求与快速上手
四个技能的产品依赖各不相同,manifest.yaml 中均有声明:
| 技能 | 最低 MATLAB 版本 | 必备产品 |
|---|---|---|
| simulink-generate-embedded-code | R2023b | Simulink、Embedded Coder、Simulink Coder、MATLAB Coder |
| simulink-optimizing-embedded-code | R2023a | Simulink、Embedded Coder(Simulink Test 可选) |
| simulink-single-precision-conversion | R2023a | Simulink、Fixed-Point Designer |
| simulink-customize-a2l | R2023a | Simulink、Embedded Coder、Simulink Coder |
推荐安装方式(自动设置):下载官方安装器 add-on 后,在 MATLAB 中一行搞定:
setupAgenticToolkit("install")它会自动安装 MATLAB MCP Server、注册工具并注册全部技能(包括 code-generation 组)。安装后每个 MATLAB 会话运行satk_initialize初始化,再用validate_installation做六项体检确认就绪。配置选项、平台差异与排错细节见 Configuration_and_Troubleshooting.md 与 docs/faq.md。
总结:四个技能,一条量产流水线
- 配置(generate):目标、硬件、MISRA 合规一次配齐,失败自动回滚
- 优化(optimizing):双闸门 + 检查点,让每次改动都可度量、可回退
- 瘦身(single-precision):check → convert → verify,内存占用立竿见影
- 标定(customize-a2l):把 A2L 文件做到标定工具"开箱即导"
这套技能组的设计理念很清晰:把嵌入式代码生成中专家才知道的流程与陷阱变成 AI 可执行的标准动作。模型在 Simulink 里搭好之后,交给你的 AI 智能体,从配置到上板,剩下的交给技能组。更多技能全貌可浏览 skills-catalog/README.md。
- 人工智能
- AI 技能
- AI 插件
- MCP 服务
【免费下载链接】simulink-agentic-toolkit
The Simulink Agentic Toolkit gives your AI agent both the tools and the expertise to work effectively with Simulink and Model-Based Design.
相关推荐
Prisma TypeScript 客户端代码生成器:嵌入式类型(@embedded)的生成代码全解析
Prisma TypeScript 客户端代码生成器:嵌入式类型(@embedded)的生成代码全解析 导读 本文以 Prisma 1.x 客户端代码生成器的快
后端数据库GraphQLPVZ Toolkit阵型代码生成技术解析
PVZ Toolkit阵型代码生成技术解析 前言 植物大战僵尸 PVZ 作为一款经典塔防游戏,其丰富的玩法吸引了大量玩家。PVZ Toolkit作为一款功能强大
桌面应用洛雪音乐音源配置终极指南:3步打造完美音乐体验
洛雪音乐音源配置终极指南:3步打造完美音乐体验 还在为洛雪音乐搜索不到歌曲、播放卡顿、音质差而烦恼吗?作为开源音乐播放器,洛雪音乐的核心体验完全取决于音源配置。
音视频
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考