Matlab读取MDF文档

作者: 少年小马 | 来源:发表于2020-03-24 18:46 被阅读0次

背景:汽车上的功能软件依靠各种信号完成设计功能,信号通过CAN网络进行传输。Vector公司提供了强大的信号测量工具CANape,可以将这些信号的测量结果保存成MDF格式的文件。Matlab中Vehicle Network Toolbox工具专门提供了测量数据格式 (MDF)、ASAM 标定数据格式 (CDF) 和二进制记录格式 (BLF) 等标准文件格式的读取方法。

1、 读取MDF文件(matlab2016b)

不同的matlab版本的函数有不一样的用法,仅细节不同。这里以matlab2016b为例(因为作者用的这个版本)。读取MDF文件matlab提供了如下的函数。

从MDF文件中读取数据流程可见下图:

(1)打开MDF文件

              在从 MDF 文件读取通道数据之前,使用 mdf 命令开启对该文件的访问权限。以 MDF 文件对象形式返回。可以通过该对象访问包含在以下属性中的 MDF 文件信息,如下图。

代码:m = mdf(DocumentName.MF4')

% 为给定文件创建一个 MDF 对象,并查看对象显示。

% 输入参数是 MDF 文件名(包括必要的完整或相对路径),指定为字符向量或字符串。

(2)指定要读取得数据

使用read 命令用于从 MDF 文件中检索数据,它有几种不同的使用方式。需要两个主要参数。一个是要从中读取数据的通道组的数值索引。另一个是要读取的通道组中通道的名称。有关这些项的信息可从 MDF 文件中获得。

代码:m.ChannelGroup(1)      % 读取数据的通道组的数值索引的信息。

m.ChannelNames{1}       % 读取通道组中通道的名称。

data = read(m, 1, m.ChannelNames{1}, 1, 10) %读取的是第一条信号的第一个数值。什么是通道组?可见下图,使用ape回放(load)MDF文件。可以发现每一个报文信号被封装记录成为一个通道组,图中列出了15条信号,每条信号中有两个数据。

接下来就能够看到需要的数据。以上仅是对这几个函数的解读,帮助大家理解。更多的信息可以参考Matlab帮助文档,一定要选择对应版本。

欢迎讨论!

相关文章

网友评论

    本文标题:Matlab读取MDF文档

    本文链接:https://www.haomeiwen.com/subject/fyjayhtx.html