matlab mat文件变成图片_怎么样才能让MATLAB和Simulink共享数据呢?

Simulink是MATLAB的一个集成工具箱,用于系统的建模与仿真,与MATLAB不同的是Simulink的图形化编程功能,但是使用Simulink的时候,有时候需要和MATLAB进行数据交互,本文就介绍Simulink和MATLAB数据交互的两种方法。

1 Simulink的输出数据给MATLAB

Simulink输出数据主要有两种方法,一种是利用to workspace模块直接将数据输出到MATLAB的工作区间中,可以直接编写MATLAB程序使用数据,这种方法简单,但是在关闭MATLAB后数据也回丢失。为了永久保存数据,需要使用Simulink中的to file模块,将数据以.mat文件的形式保存。

to workspace模块

705b2b3a9c99843fcc5f7f4b18e071c1.png

以下是其详细参数介绍:

3630c355bb6b1c805ced627ecbf727df.png

可以设置变量名称、数据点限制、数据的抽取间隔,还可以选择数据类型,支持timeseries、array或者结构体数据。下面介绍一个简单的例子,将正选函数输出到MATLAB的工作空间:

a6d145b25e71d9f09c2adbc10afa3d82.png

程序运行完成之后才会在工作空间创建变量:

2076e4ecae79433e73dc7655eafa336d.png

34d96cc840d704845e351dccbacea7df.png

默认是timeseries类型的数据,该数据有两个维度:时间和数值维度。

1.2 to file模块

3e8542ed829e273cf521702be3af815a.png

d12d4d3583537af0934e82c6346ec579.png

主要的参数有文件名称、变量名称、数据类型、抽取间隔和采样时间,下边介绍一个简单的例子,同样是把正弦信号输出:

aab6dea7eb0c906868be621d232b4964.png

会在当前文件夹生成一个mat文件

93cea91ce623169077a86fe456bb4d4f.png

用load('data.mat')命令将数据导入:

8a77c5566bb70fa75675fad163dd4e6c.png

d85082584f6f3b3f64b7800252efc527.png

Simulink读取数据

Simulink读取MATLAB数据得主要方法也有两种,from workspace和from file。接下来介绍这两种模块得具体用法。

from workspace

d6e5b4486cd1b1ebbb8ae0f754ae5b5a.png

该模块导入数据的方式有三种:timeseries, matrix, structure,下边是其主要参数介绍

Data:用于设置变量名为 simin

Output data type:用于设置输出数据类型

Interpolate date:用于使能内部插值

Enable zero-crossing detection:用于使能过零检测

Form output after final data value by:用于选择当仿真时间超过外部数据时,接下来的时间进行外部插值的算法

来介绍数据导入得例子:

1、以矩阵得形式导入

首先先建立一个矩阵:

t=[0:0.01:10]';
x=sin(t);
sim=[t,x];

需要注意得是:sim矩阵至少有两列,一列为时间数据,一列为数值。

仿真模型:

dd8e6ecf18eecfa7cb78041b15a01322.png

结果:

55e542fa9ed6a4ca425325e3c7848c8c.png

2、结构体数据

MATLAB代码:

t=[0:0.01:10]';
x=sin(t);
sim.time=t;  %赋值结构体时间序列
sim.signals.values=x; %赋值结构体参数
sim.signals.dimension=[1001,2];  %赋值结构体参数大小(行数,列数)

仿真模型和结果同上。

3、timeseries数据

MATLAB代码:

t=[0:0.01:10]';
x=sin(t);
sim=timeseries;  %定义数据类型
sim.Time=t;  %时间域赋值
sim.Data=x;  %数据域赋值

仿真模型和结果同(1)

from file模块读取数据

1b0435061f5ab3439d961181a44374a9.png

该模块主要参数有文件名称,输出数据类型,采样时间,插值以及过零检测等,下面以一个简单的例子介绍该模块的用法。

还是用MATLAB编程保存.mat文件

t=[0:0.01:10]';
x=sin(t);
y=[t,x];
sinx = timeseries(y(:,2:end),y(:,1));%ÏÈÊý¾Ý£¬ºóʱ¼ä
save('data','sinx');

调用模块:

bad1e13543805fce7c09639b46adf34f.png

仿真结果:

231cff51c705a5a1e4605b6958de7794.png

希望能对小白有所帮助,也希望大佬多多指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值