我是靠谱客的博主 超级茉莉,这篇文章主要介绍Simulink与MATLAB、GUI之间的数据传输、读取( To Workspace和From Workspace数据交换),现在分享给大家,希望可以做个参考。

一、MATLAB GUI与Simulink之间的数据交换

如下图所示,在GUI中输入:213,启动按键(Action)后数据传输到simulink的a;再将计算后得到的b传出显示在GUI中。(注意:将Constant 的value改为:a; Ctrl+E 在图3选项中取消Single simulation output选项,将To Workspace模块Variable name改为:b。)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
代码:
在GUI的Action的回调函数下写入即可,

复制代码
1
2
3
4
5
6
7
8
global b; a = str2num(get(handles.edit1,'String')); options = simset('SrcWorkspace','current'); sim('si1',[],options); %“si1”是保存的simulink模型的名称 disp(b); set(handles.edit2,'String',num2str(b));

可参考连接:https://www.ilovematlab.cn/thread-434153-1-1.html

二、Simulink读取工作空间中的数据进行仿真
在MATLAB中利用如下程序,生成theta数据。将From Workspace模块的Data:改为theta。theta数据的多维可用Demux.

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
%%%% 1.定义仿真时间,以及仿真步长。 sim_time = 10; % 仿真时间:10s sim_step = 50; % 仿真步长:50 步。由于我的数据有连续50个角度值,因而这里设为50%%%% 2.构建可供FromWorkspace模块使用的参数 theta %%% ①生成时间戳 for i=1:sim_step time_stamp(i,1) = i * sim_time / sim_step; end theta2 = 2; theta3 = 3; theta = [0,0,0]; %%% ②利用二维数组,将时间戳time_stamp和50个数据theta2构建可供FromWorkspace模块使用的参数 theta for i = 1:50 theta= [theta;time_stamp(i,1),theta2,theta3]; %% 生成二维矩阵数据 end %%%% 到此,便生成了可直接供FromWorkspace模块使用的参数 %%%% theta,可在simulink中直接使用,theta数据维数自行决定,但需要时间戳从小到大

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
记录自用!!!
参考来自:https://blog.csdn.net/BinHeon/article/details/90295138?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163106827616780366542151%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163106827616780366542151&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v29_ecpm-2-90295138.pc_search_result_cache&utm_term=simulink%E8%AF%BB%E5%8F%96%E6%95%B0%E6%8D%AEFrom+Workspace%E6%A8%A1%E5%9D%97&spm=1018.2226.3001.4187

最后

以上就是超级茉莉最近收集整理的关于Simulink与MATLAB、GUI之间的数据传输、读取( To Workspace和From Workspace数据交换)的全部内容,更多相关Simulink与MATLAB、GUI之间的数据传输、读取(内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部