乐于分享
好东西不私藏

AI杀进Simulink,MBD建模圈炸了

AI杀进Simulink,MBD建模圈炸了

朋友们,好久不见。
过去这段时间,我沉寂了。不是躺平,是在偷偷充电——当AI风暴席卷编程界的时候,我一边焦虑一边琢磨:我们搞Simulink建模的,是不是也该有点变化了?

古法建模,真的香吗?

做嵌入式控制开发的兄弟都懂,Simulink建模这活儿,说好听叫”基于模型设计”,说直白点就是个烧脑吃经验的体力活。
想想看,一个新人接手遗留模型是什么体验?打开.slx文件,满屏的模块和信号线,子系统套子系统,像俄罗斯套娃一样无穷无尽。你要挨个双击查看参数,追踪信号线找到数据来源,再跑到MATLAB工作区查变量值——一圈下来,脑袋嗡嗡的。
改参数?手动翻几十个Gain模块,一个个改。加功能?得在迷宫一样的模型里找到正确位置,小心翼翼地拖模块、连信号线,稍不留神就把哪根线接错了。
模型审查?对着上千行的模块列表,眼都快看瞎了。
这套”古法”流程,从我做学徒那天起就没怎么变过。不是说它不行,是——太慢了,太吃经验了,太靠”人肉”了。
而隔壁做纯软件的兄弟呢?GitHub Copilot一开,Tab键按冒烟,代码刷刷地生成。说不眼红是假的。

转折来得猝不及防

最近我注意到一个名字很长的东西——Simulink Agentic Toolkit。简单说,MathWorks官方出手,把Claude Code这种AI助手直接怼进了Simulink里。
不是开玩笑,是真AI看模型、改模型、跑测试。
什么意思呢?就是以后你跟Claude说”帮我看看这个模型的顶层结构”、“把这三个滤波器的窗口长度从5改成10”、“跑一下所有测试用例”——它真能听懂、真能干。
这不是概念,是已经能用的东西。我花了一下午搭好环境,体验了一把,感觉就像从骑自行车直接换成了自动驾驶——虽然还有点颠簸,但方向对了。
下面手把手教你部署,包教包会。

手把手部署教程

第一步:确认家底

先把你的工具箱清点一下,缺啥补啥:
条件
要求
MATLAB
R2023a+,推荐R2025b
Simulink
装了MATLAB一般都有
MATLAB MCP Core Server
v0.9.0,去GitHub下载
MATLABMCPCoreServerToolkit
安装到MATLAB中
Claude Code
命令行版本,装好
simulink-agentic-toolkit
从GitHub克隆下来
这些你都有了?好,接着往下走。

第二步:安装插件

打开终端,三行命令搞定:
# 添加插件市场
claude plugin marketplace    add "https://github.com/matlab/simulink-agentic-toolkit"

# 安装插件(两个都要装)
claude plugin install model-based-design-core@simulink-agentic-toolkit
claude plugin install toolkit@simulink-agentic-toolkit

第三步:注册MCP服务器

这里要注意了,两个MCP服务器不能搞混:
matlab MCP:干通用活的,跑MATLAB命令、画图、算数
simulink MCP:专门伺候Simulink模型的,咱们今天的主角
注册simulink MCP服务器:
claude mcp add-json -s user simulink '{
  "command": "C:/Users/你的用户名/.local/bin/matlab-mcp-core-server.exe",
  "args": [
    "--matlab-session-mode=existing",
    "--extension-file=D:/你的路径/simulink-agentic-toolkit/tools/tools.json",
    "--matlab-root=D:/Program Files/MATLAB/R2025b"
  ]
}'

路径改成你自己的。

第四步:准备MATLAB

这一步是个大坑,千万别踩——simulink MCP用的是existing模式,不帮你启动MATLAB,你得自己先开着:
1
打开MATLAB桌面
2
在命令窗口执行 satk_initialize(这条命令告诉MATLAB:准备好接客了)
3
可以把这个加到startup.m里,以后每次启动自动运行

第五步:启动新会话

关掉当前的Claude Code,重新开一个。这一步必须做——新加的MCP工具只有在新的Claude Code会话中才能被识别。
然后输入:
“你是Simulink专家,请对当前目录下的 PresMon.slx 模型做一个总览”
如果它开始汇报模型的子系统层级、接口、信号——恭喜,部署成功!

六大神器,逐个击破

部署好了,来看看Claude现在能用哪些神通:

1. model_overview — 模型概览

干啥用:第一次接触模型,让AI给你画张”地图”。
怎么用
"对这个PresMon模型做一次overview,用root范围、full详细度。"
AI会告诉你:这个模型有几个顶层子系统、输入输出是什么、信号怎么走的。
适合场景:接手遗留模型,5分钟摸清全局。

2. model_read — 模型读取

干啥用:深入某个子系统,看算法实现细节。
怎么用
"读取PressSensor的信号处理流程,深度展开所有层级。"
它会返回每个模块的参数、连接关系、数学表达式。模块里有变量名用@Param(value)表示,比如一个Gain模块显示@Gain(Kp),意思就是增益是变量Kp。
适合场景:审查算法逻辑、准备代码生成。

3. model_edit — 模型编辑(王炸)

干啥用:直接让AI帮你改模型,不用手动拖模块。
支持的操作
操作
说明
修改参数
改Gain值、Constant值
添加模块
加Inport、Gain、Scope
删除模块
移除废弃的调试模块
连接信号
自动连线
断开信号
移除指定连线
替换模块
SubSystem换Model Reference
怎么用
"把三个MovAvgFilter的窗口长度从5改成10。"
"在PresMon中新增一个Output端口outputTemp,在PressSensor里加一个Constant模块输出25.0并连到此端口。"
说实话,第一次看到AI帮我连线的时候,我愣了几秒。
适合场景:参数批量调优、快速原型开发。

4. model_query_params — 参数查询

干啥用:批量查参数,替代手动翻阅几十个模块。
怎么用
"查询模型中所有Gain模块的参数,列出Gain值。"
"查询ErrorJudge子系统中所有Constant模块的输出值和数据类型。"
适合场景:参数审计、标定参数提取。

5. model_resolve_params — 参数解析

干啥用:模型里用变量名(Kp、Ki、Ts)而不是具体数值?这个工具帮你查工作区,算出实际值。
怎么用
"这三个Gain模块的增益值是变量Kp、Ki、Kd,请解析它们的实际数值。"
适合场景:标定文件验证、参数溯源。

6. model_test — 模型测试

干啥用:说一千道一万,改了东西得跑测试验证。
怎么用
"我刚修改了滤波器参数,运行所有测试用例检查是否通过。"
适合场景:回归测试、CI流水线。

一条龙实战:从头到尾撸一遍

光说不练假把式,来个完整的6步走:
Step1: model_overview → 摸清模型全局结构
"给我看看PresMon的整体架构"

Step2: model_read → 钻到具体子系统
"展开PressSensor的逻辑细节"

Step3: model_query_params → 审查参数
"列出所有Gain模块的增益值"

Step4: model_resolve_params → 解析变量
"这几个参数是符号变量,解析实际数值"

Step5: model_edit → 动手优化
"把滤波器窗口长度统一改成10"

Step6: model_test → 收尾验证
"跑所有测试,确保没改坏"
原来这6步走下来少说半天,现在——你们自己感受一下。

一些必须说的真心话

这玩意儿不是魔法,是个好用的工具。 它不会帮你自动设计控制算法,不会替你思考架构设计。但它能把那些重复性的、耗时的、靠人肉的操作,直接提效一个量级。
这玩意是官方出品,非野路子闹眼子辣眼睛的开源作品!!!
坑还是有的,提前打预防针:
新开的会话才能用这个工具,别傻等
MATLAB得先开着,satk_initialize得先跑着
模型名字别带路径,它在MATLAB路径上找
编辑模型时别同时在MATLAB UI里锁着同一个模型
最后说点感受。
技术圈总在说”AI替代程序员”,我之前的理解都停留在代码生成上。但这次Simulink+AI的实践让我意识到,在复杂工程领域,AI更大的价值可能是当你的”副驾驶”——它不是要替代你,而是帮你把那些琐碎、重复、吃经验的活儿干了,让你能专注在真正需要思考的事情上。
模型还得你来设计,但那些翻模块、查参数、跑测试的烦心事——交给AI吧。

本文工具版本:Simulink Agentic Toolkit v0.2.3 / MATLAB MCP Core Server v0.9.0
部署环境:MATLAB R2025b + Claude Code
如果觉得有用,点个「在看」,转发给同样在Simulink水深火热中的兄弟。有什么问题评论区留言。
如“点赞+在看”过100,我会玩命更新的,下期见!