《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 11496|回复: 23
收起左侧

[教程] GUI调用Simulink,编译成可执行的exe文件的解决方法

    [复制链接]
发表于 2010-6-2 00:10:20 | 显示全部楼层 |阅读模式
“为什么GUI里如果使用sim, simset等函数时,就不能编译成可执行的exe文件发布呢?”

我们也解释过很多次,原因是MATLAB的compiler不支持sim等与Simulink相关的函数,同样,比如说神经网络相关的函数也不支持。

然而,GUI和Simulink混合编程,是可以编译成可执行exe文件的,使用Matlab自带的RTbuilder工具箱函数编译即可。

使用的方法是:先使用RTW把simulink编译成exe文件,然后与GUI一起编译(GUI可以和exe文件一起编译的)

当然,这个时候请特别注意:不需要在GUI里使用sim函数了,流程是这样的:

1:设计GUI回调函数的时候,把GUI传递的参数传递给Simulink时,不要直接使用simset等函数,而是把参数写到一个mat文件里,比如:
  1. x = [0.2 handles.In1 handles.In2]';
  2. save Input.mat x
复制代码
2:设计Simulink模型的时候,记得让simulink从mat文件里读取参数(就是刚刚GUI写入的参数),同样,输出参数也写到mat文件里,(如output.mat), 比如:

20091129_993eefddddbd4a6dae05Cy0GTUdLowBg.jpg

3:在GUI回调函数里,不要直接使用sim命令,而是直接调用exe文件(simulink模型编译 好的exe文件)
  1. !SL_model.exe
复制代码
4:如果要在GUI上面显示参数,直接读取output.mat文件即可:
  1. load
  2. Output.mat
  3. set(handles.FinalOutput2,'String',num2str(Out(end)))
  4. guidata(hObject,handles)
复制代码
现在大家对整个流程应该熟悉了吧? 也就是Matlab GUI与Simulink设计的程序,照样可以编译成exe文件发布...

附件里为用到的.m, ,fig和mdl文件,下载试一下如下命令:
  1. x = [0 0 0]';
  2. save Input.mat x
  3. rtwbuild('SL_model')
  4. mcc -m GUIDE_fig.m
  5. -a SL_model.exe
复制代码

simulink_to_exe.rar

9.27 KB, 下载次数: 369, 下载积分: 贝壳 -1

发表于 2010-6-13 01:37:25 | 显示全部楼层
学习中,谢谢楼主分享!
发表于 2010-6-22 21:42:26 | 显示全部楼层
楼主你好,要是想对simulink里面的参数进行设置,该使用哪个命令,如何使用?
匿名  发表于 1970-1-1 08:00:00
post_deleted
发表于 2010-9-6 15:03:45 | 显示全部楼层
回复 1# dynamic


    谢谢,楼主!很赞
发表于 2010-9-6 15:16:44 | 显示全部楼层
回复 3# wamxm


    如果不编译为exe的话,可以使用sim_set函数。
发表于 2010-9-11 16:13:53 | 显示全部楼层
终于找到症结所在了,原来老以为是自己编译环境没设对
发表于 2010-11-18 10:00:55 | 显示全部楼层
我有一个比较大型的simulink模型,我试试,非常感谢dynamic!
发表于 2011-3-22 18:26:09 | 显示全部楼层
问题终于有解决的办法了!谢谢楼主!
发表于 2011-5-19 21:20:50 | 显示全部楼层
呃。。。为什么下载的时候是php而不是rar?
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2020-10-27 03:47 , Processed in 0.051631 second(s), 14 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表