怎么暂停matlab仿真,[原创]不要s函数,GUI控制simulink,开始、停止与实时更新

本帖最后由 开启 于 2013-8-14 18:07 编辑

近日逛论坛,发现有人写的GUI控制Simulink的教程,方法很多。思量很久,决定将之前在做某研究所项目时,所获心得写出,若有重复,权当锦上添花,无则,以飨后来人。

开此贴,详述一下功能识现:

1、GUI控制simulink仿真开始与结束;

2、GUI中配置simulink模块参数,通过set_param方式赋值的一般方法;

3、GUI中实时更新任何需要的simulink仿真数据(一招鲜,吃遍天);

4、GUI实时显示仿真时间,定时控制simulink仿真结束;

5、通过调用MATLAB 自带m文件,实时控制scope类模块;

以上功能的实现,尽量简化,不增加代码难度,避开s函数等途径。simulink模型采用一个简单的跳频通信仿真链路,通过GUI控制该链路,并实时显示仿真结果(误比特率等),可通过按钮选择显示scope类对象,如spectrum scope,scatter plot 等。具体运行截图如下:

324619ae995a043bc12bde7d078becb8.gif

1.jpg (31.99 KB, 下载次数: 62)

2013-8-14 16:29 上传

一、点击“开始”与“结束”按钮,启动s

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MatlabGUI里面启动或者暂停Simulink模型-start_and_stop_gui.fig 针对这个问题:https://www.ilovematlab.cn/thread-23233-1-1.html 现在我做一个集中解答,从mathworks那里学习了一下。 第一步:创建你自己的Simulink模型,这个不用我讲吧,我们使用以下模型做演示: start_and_stop.mdl 第二步:创建自己的GUI, 这个论坛里也有例子,我们使用以下文件。 start_and_stop_gui.fig start_and_stop_gui.m Figure12.jpg 在start simulation里面,直接用sim函数,这个大家好像都会: % --- Executes on button press in startsim. function startsim_Callback % hObject handle to startsim % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data modelname = get; stoptime = str2num); sim复制代码 在stop simulation,里面,callback这样写: % --- Executes on button press in stopsim. function stopsim_Callback % hObject handle to stopsim % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data global GUIStopFlag; GUIStopFlag = 1; 复制代码第三步:写一个s函数,不停地检测这个GUIStopFlag参数,发送命令给STOP按钮,告诉他,可以结束了,简单吧? sysstop_new.m 第四步:在simulink模型里面,加上这个S函数 Figure13.jpg 好了,大功告成了,现在你就可以在GUI里随意控制Simulink模型了。 注:文中所用的模型,GUI文件,由mathworks公司提供。
MatlabGUI里面启动或者暂停Simulink模型-start_and_stop.mdl 针对这个问题:https://www.ilovematlab.cn/thread-23233-1-1.html 现在我做一个集中解答,从mathworks那里学习了一下。 第一步:创建你自己的Simulink模型,这个不用我讲吧,我们使用以下模型做演示: start_and_stop.mdl 第二步:创建自己的GUI, 这个论坛里也有例子,我们使用以下文件。 start_and_stop_gui.fig start_and_stop_gui.m Figure12.jpg 在start simulation里面,直接用sim函数,这个大家好像都会: % --- Executes on button press in startsim. function startsim_Callback % hObject handle to startsim % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data modelname = get; stoptime = str2num); sim复制代码 在stop simulation,里面,callback这样写: % --- Executes on button press in stopsim. function stopsim_Callback % hObject handle to stopsim % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data global GUIStopFlag; GUIStopFlag = 1; 复制代码第三步:写一个s函数,不停地检测这个GUIStopFlag参数,发送命令给STOP按钮,告诉他,可以结束了,简单吧? sysstop_new.m 第四步:在simulink模型里面,加上这个S函数 Figure13.jpg 好了,大功告成了,现在你就可以在GUI里随意控制Simulink模型了。 注:文中所用的模型,GUI文件,由mathworks公司提供。
MatlabGUI里面启动或者暂停Simulink模型-sysstop_new.m 针对这个问题:https://www.ilovematlab.cn/thread-23233-1-1.html 现在我做一个集中解答,从mathworks那里学习了一下。 第一步:创建你自己的Simulink模型,这个不用我讲吧,我们使用以下模型做演示: start_and_stop.mdl 第二步:创建自己的GUI, 这个论坛里也有例子,我们使用以下文件。 start_and_stop_gui.fig start_and_stop_gui.m Figure12.jpg 在start simulation里面,直接用sim函数,这个大家好像都会: % --- Executes on button press in startsim. function startsim_Callback % hObject handle to startsim % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data modelname = get; stoptime = str2num); sim复制代码 在stop simulation,里面,callback这样写: % --- Executes on button press in stopsim. function stopsim_Callback % hObject handle to stopsim % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data global GUIStopFlag; GUIStopFlag = 1; 复制代码第三步:写一个s函数,不停地检测这个GUIStopFlag参数,发送命令给STOP按钮,告诉他,可以结束了,简单吧? sysstop_new.m 第四步:在simulink模型里面,加上这个S函数 Figure13.jpg 好了,大功告成了,现在你就可以在GUI里随意控制Simulink模型了。 注:文中所用的模型,GUI文件,由mathworks公司提供。
MATLAB 中创建 GUI 界面与 Simulink 仿真结合的基本步骤如下: 1. 创建一个 MATLAB GUI 界面,可以使用 GUIDE 工具箱来创建。 2. 在 GUI 界面中添加一个按钮或者其他交互式控件。 3. 在 MATLAB 代码中,编写与按钮或控件交互的回调函数。 4. 在回调函数中,设置 Simulink 模型的参数和输入,运行仿真并将仿真结果显示在 GUI 界面上。 下面是一个简单的示例: 1. 使用 GUIDE 工具箱创建一个 GUI 界面,添加一个按钮,命名为“Run Simulation”。 2. 在 MATLAB 代码中,编写一个回调函数,命名为“runSimulationCallback”。 3. 在 runSimulationCallback 函数中,加载 Simulink 模型,设置模型参数和输入,运行仿真,并将仿真结果显示在界面上。 ```matlab function runSimulationCallback(hObject, eventdata, handles) % hObject handle to Run Simulation button % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Load the Simulink model mdl = 'mySimulinkModel'; load_system(mdl); % Set the model parameters and inputs param1 = str2double(get(handles.param1Edit, 'String')); param2 = str2double(get(handles.param2Edit, 'String')); set_param([mdl '/Subsystem'], 'Param1', num2str(param1)); set_param([mdl '/Subsystem'], 'Param2', num2str(param2)); set_param([mdl '/Input'], 'Value', 'inputData'); % Run the simulation simOut = sim(mdl); % Get the simulation results and display them in the GUI outputData = simOut.get('outputData'); set(handles.outputText, 'String', num2str(outputData)); end ``` 在这个示例中,我们假设 Simulink 模型包括一个名为“Subsystem”的子系统和一个名为“Input”的输入端口。我们还假设 GUI 界面中有两个文本框用于输入模型参数,一个文本框用于输入仿真数据,以及一个文本框用于显示仿真结果。 在回调函数中,我们首先加载 Simulink 模型,然后从 GUI 界面中获取模型参数和输入数据。接着,我们使用 set_param 函数设置模型参数和输入,然后使用 sim 函数运行仿真。最后,我们使用 get 函数获取仿真结果并将其显示在 GUI 界面上。 这只是一个简单的示例,具体实现方式可能因模型和界面的不同而略有不同。但总的来说,通过回调函数MATLAB GUI 界面和 Simulink 仿真结合起来并不难,只需要熟悉 MATLABSimulink 的基本操作即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值