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的回调函数下写入即可,

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.定义仿真时间,以及仿真步长。
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

  • 7
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
From Workspace 模块是 Simulink 中的一个数据源模块,可以用来读取来自 MATLAB 工作区中的数据并将其输入到模型中。使用 From Workspace 模块可以方便地将 MATLAB 中的变量传递到 Simulink 模型中进行仿真和分析。 以下是使用 From Workspace 模块的步骤: 1. 在 Simulink 模型中添加一个 From Workspace 模块。 2. 在 From Workspace 模块的参数设置窗口中,设置数据源参数。 3. 在 MATLAB 中定义变量,并将其赋值为要传递到模型中的数据。 4. 在 From Workspace 模块的参数设置窗口中,将数据源参数设置为刚刚定义的变量。 5. 在模型中连接 From Workspace 模块的输出端口到需要使用数据的模块的输入端口。 6. 运行模型,查看仿真结果。 注意:在使用 From Workspace 模块时,变量的定义和赋值需要在模型运行前完成。如果要动态地改变数据源,可以使用 MATLAB 函数动态地更改变量值。 示例: 1. 在 Simulink 模型中添加一个 From Workspace 模块。 2. 在 From Workspace 模块的参数设置窗口中,设置数据源参数。例如,设置数据源参数为变量名为“data”的变量,数据维度为 1x100,采样时间为 0.1s。 3. 在 MATLAB 中定义变量 data,并将其赋值为要传递到模型中的数据。例如,定义变量为一个正弦波,采样频率为 10Hz。 t = 0:0.1:9.9; data = sin(2*pi*10*t); 4. 在 From Workspace 模块的参数设置窗口中,将数据源参数设置为刚刚定义的变量“data”。 5. 在模型中连接 From Workspace 模块的输出端口到需要使用数据的模块的输入端口。例如,连接到一个 Scope 模块。 6. 运行模型,查看仿真结果。可以看到,Scope 模块显示了一个正弦波。 注意:在此示例中,变量 data 的定义和赋值需要在模型运行前完成。如果要动态地改变数据源,可以使用 MATLAB 函数动态地更改变量值。例如,可以在仿真过程中更改 data 的值,从而改变输出结果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值