工程毕设:如何创建支持.mat文件输入的Simulink独立可执行文件
Hey Rajeev, 刚好之前帮同学搞定过类似的Simulink模型编译需求,给你一步步拆解怎么让生成的独立可执行文件能读取.mat输入:
1. 调整模型结构,预留动态输入接口
首先得把模型从“编译时绑定输入”改成“运行时接收外部输入”:
- 用
Inport模块替换掉原来硬编码或绑定到编译时Workspace变量的输入部分,给每个Inport设置和你.mat文件里变量完全一致的名称、维度和数据类型。比如你.mat里有个compressor_speed变量,就把对应的Inport信号名设为compressor_speed。 - 要是需要灵活指定.mat文件路径,可以加一个
MATLAB Function模块专门负责读取文件,代码示例如下:
给这个模块加一个输入端口用来接收文件路径(可以设置默认值,运行时通过命令行修改),输出端口直接连到模型的输入链路。function model_inputs = load_mat_input(file_path) % 加载指定路径的.mat文件 input_data = load(file_path); % 把.mat里的变量打包成模型需要的输入结构体/数组 model_inputs = [input_data.compressor_speed, input_data.turbine_temp]; end
2. 配置代码生成参数
打开模型的Configuration Parameters(快捷键Ctrl+E),重点调整这些设置:
- 切换到Code Generation选项卡,选择支持独立可执行文件的目标模板,比如
ERT.tlc(Embedded Coder)或GRt.tlc(Generic Real-Time Target)。 - 进入Interface子选项卡,找到External inputs,选择
From workspace or file,同时勾选允许运行时加载MAT文件的相关选项(不同版本可能叫Enable MAT-file input或类似名称)。 - 如果你用的是ERT目标,还可以在Execution子选项卡下,启用
MAT-file input,确保生成的代码包含读取.mat文件的逻辑。
3. 生成并运行可执行文件
- 点击模型工具栏的Build按钮生成可执行文件。
- 运行的时候,通过命令行参数指定你的.mat文件路径:
要是你用了自定义的MATLAB Function读取文件,还可以把文件路径作为命令行参数直接传递,只需要在Configuration Parameters的Interface > Command line arguments里设置参数名(比如# Windows系统 gas_turbine.exe -input your_test_input.mat # Linux/macOS系统 ./gas_turbine -input your_test_input.matfile_path),然后在MATLAB Function里调用这个参数即可。
4. 验证与排坑
- 先在Simulink Normal模式下测试:把.mat文件加载到Workspace,运行模型确保输入输出正常,再编译可执行文件,避免模型本身的逻辑问题。
- 一定要保证.mat文件里的变量和模型输入的名称、维度、数据类型完全匹配,否则会出现加载失败的错误。
- 如果某个配置选项找不到,直接查看对应MATLAB版本的官方文档,里面会有更细致的版本适配说明。
内容的提问来源于stack exchange,提问作者Rajeevx5
相关产品推荐
相关产品推荐

