2017-01-31 54 views
1

我有一个M脚本,它通过GUI从用户处获取参数值,然后用更新后的参数值模拟simulink模型。我想将它转换为一个独立的exe文件,该文件可以在没有Matlab & Simulink(即只有Matlab运行时编译器)的情况下运行。我正在使用MATLAB 2010b 32位。simulink matlab独立可执行文件无法获得输出

我的方法:
由于MATLAB编译器不能转换SIM功能,我先转换我的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文件,但不会给出仿真结果文件。我也尝试了到档案块来保存结果。我认为脚本无法运行模拟。

我的方法是否正确?
我应该创建一个simulink mex文件吗?
非常感谢您的帮助。

回答

2

您的一般方法是正确的。但是,也有可能是一对夫妇的事情,你没有做过,

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

嗨菲尔。感谢您的回复。 – Aastha

+0

我已经检查,我已经遵循所有这些要点。目前我只是用正弦输入进行测试。所以,不需要输入文件。我正在使用'To File'来存储输出。我也只是使用默认输出文件名进行测试。 经过一些测试,我认为不可能将exe文件打包到另一个exe文件中。我今天发现,当我在Matlab中运行最终的exe文件(由deploytool制作)时,它无法访问Simulink Model exe。我收到错误“命令SimulinkModelName.exe被写入不正确或无法找到” – Aastha