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。)

Simulink与MATLAB、GUI之间的数据传输、读取( To Workspace和From Workspace数据交换)_第1张图片

Simulink与MATLAB、GUI之间的数据传输、读取( To Workspace和From Workspace数据交换)_第2张图片
Simulink与MATLAB、GUI之间的数据传输、读取( To Workspace和From Workspace数据交换)_第3张图片
代码:
在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数据维数自行决定,但需要时间戳从小到大

Simulink与MATLAB、GUI之间的数据传输、读取( To Workspace和From Workspace数据交换)_第4张图片
Simulink与MATLAB、GUI之间的数据传输、读取( To Workspace和From Workspace数据交换)_第5张图片
Simulink与MATLAB、GUI之间的数据传输、读取( To Workspace和From Workspace数据交换)_第6张图片
记录自用!!!
参考来自: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

你可能感兴趣的:(matlab,simulink,gui)