simulink matlab独立可执行文件无法获得输出

时间:2017-01-31 18:02:17

标签: matlab executable simulink matlab-compiler

我有一个M脚本,它通过GUI从用户获取参数值,然后使用更新的参数值模拟simulink模型。我想把它转换成一个独立的exe文件,它可以在没有Matlab& amp; Simulink(即仅与Matlab运行时编译器一起使用)。我使用MATLAB 2010b 32bit。

我的方法:
由于Matlab编译器无法转换 sim 函数,我首先使用Rapid Simulation目标将我的Simulink模型转换为exe文件,然后从我的matlab脚本调用exe文件。

[Gain1, Gain2]= InputDataGUI;
load Par.mat %contains parameter structure of the model
param_struct.parameters.values(1:2) = [Gain1 Gain2]; %update
save Par.mat param_struct;

!SimulinkModelName.exe -p Par.mat
save results.mat

此脚本在Matlab中正常运行且没有错误。最后,我使用 deploytool 将M文件以及所有其他所需文件打包到exe中。这个最终的exe文件运行GUI并保存更新的Par.mat文件,但不提供模拟结果文件。我还尝试了 To File 块来保存结果。我认为该脚本无法运行模拟。

我对这个问题的处理方法是否正确? 我应该制作一个simulink mex文件吗? 提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您的一般方法是正确的。但是,您可能还有一些事情尚未完成,

  1. 在Simulink中,模型应设置为使用From File块作为其输入,To File块作为其输出
  2. 在MATLAB中,需要设置代码以生成.mat文件,不仅用于参数,还用于输入信号。
  3. 运行模拟时,使用-p指定参数,-f指定输入文件(如果要覆盖模型本身指定的文件),并指定-o您希望数据写入的输出文件的名称(如果要覆盖模型本身中指定的那个)。
  4. 在您的(已部署的)MATLAB代码中,您需要读取生成的.mat文件以存储输出,并对其进行适当的处​​理(即绘制)。