simulink matlab独立可执行文件无法获得输出
Posted
技术标签:
【中文标题】simulink matlab独立可执行文件无法获得输出【英文标题】:simulink matlab standalone executable unable to get output 【发布时间】:2017-01-31 18:02:17 【问题描述】:我有一个 M 脚本,它通过 GUI 从用户那里获取参数值,然后使用更新的参数值模拟 simulink 模型。我想将它转换成一个独立的 exe 文件,它可以在没有 Matlab 和 Simulink 的情况下运行(即只能使用 Matlab 运行时编译器)。我正在使用 MATLAB 2010b 32 位。
我的方法: 由于 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】:您的一般方法是正确的。但是,您可能还没有做几件事,
-
在 Simulink 中,模型应设置为使用
From File
模块作为输入,To File
模块作为输出
在 MATLAB 中,需要设置代码以生成 .mat 文件,不仅用于参数,还用于输入信号。
运行仿真时,使用-p
指定参数,-f
指定输入文件(如果要覆盖模型本身中指定的文件),-o
指定输出文件的名称您希望写入数据(如果您想覆盖模型本身中指定的数据)。
在您(已部署)的 MATLAB 代码中,您需要读取生成的 .mat 文件以存储输出,并对其进行适当的处理(即绘制)。
【讨论】:
嗨菲尔。感谢您的回复。 我已经检查过了,我已经在关注所有这些要点。目前我只是用正弦输入进行测试。所以,不需要输入文件。我正在使用“到文件”来存储输出。我也只是使用默认输出文件名进行测试。经过一些测试,我认为不可能将 exe 文件打包到另一个 exe 文件中。我今天发现,当我在 Matlab 中运行最终的 exe 文件(由 deploytool 制作)时,它无法访问 Simulink Model exe。我收到错误“SimulinkModelName.exe 命令写入错误或找不到” @Phil,感谢您提供的信息。是否有任何官方 MathWorks 文档详细说明独立 exe 中可用的参数?以上是关于simulink matlab独立可执行文件无法获得输出的主要内容,如果未能解决你的问题,请参考以下文章