Simulink 模型与外部 App 的实时通信,第一个要解决的问题不是画图控件,而是数据链路。很多工程师在 Simulink 中完成算法仿真后,都希望把实时波形输出到自建的 MATLAB App 界面,或者让 App 反过来控制模型参数。常见需求包括实时曲线显示、参数传递、运行/暂停控制和仿真状态监控。这篇博客以 Simulink 与 App 实时通信为主线,使用 UDP 协议,完整走通一条数据链路:Simulink 每 0.1 秒发送一次数据,App Designer 负责监听、解析并在 UIAxes 上动态绘图。读者会掌握一种可以复用的实时通信模式,不只是学会调用一个模块。
将从环境准备、Simulink 发送端、App Designer 接收端、联调验证、问题排查和工程化建议六个部分展开。代码示例可以直接复制到自己的工程中,只要把端口号、模型名和参数替换成实际项目即可。
1. 实时通信的主线:模型数据如何到达 App 界面
1.1 为什么 Simulink 模型数据不能直接显示在 App 中
Simulink 模型运行时的数据保存在求解器内部,App Designer 里的控件无法直接访问这些内部信号。即使把变量写到 MATLAB 工作区,也需要考虑仿真是否结束、数据