Matlab处理CANape/INCA汽车测试软件记录的mdf或dat格式log文件

2023-10-20 08:20

本文主要是介绍Matlab处理CANape/INCA汽车测试软件记录的mdf或dat格式log文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

做汽车软件标定测试的小伙伴都知道,常用的测试log格式有.dat\.mdf\.blf\.asc\.csv等,一般写试验报告或者PPT时,需要对数据进行稍复杂的统计分析处理,CANoe一般通过CAPL编程方式实现,MDA也有编辑简单公式的给功能,但借助matlab强大的计算功能,可以发挥的空间比较大,创作性高,同时可以结合simulink进行模型仿真。本文介绍通过M脚本的方式导入log到matlab工作空间,进行编辑公式、简单计算、绘制曲线等。

1、打开log文件

m=mdf('油耗测试55KW2000rpm01.dat'); %把.dat文件放到当前matlab工作路径下,mdf函数返回文件对象,对象属性如下图所示:

2、获取通道组信息

ChannelGroup=m.ChannelGroup(7) %获取通道信息,其中数字代表第几个group;用CANape打开dat文件可以看到相关的信息,需要知道要处理的信号在哪个group,本文的数据处在cnannel gruop 7中;

3、获取通道信号名称

ChannelName=m.ChannelNames{7} %获取7通道中信号名称;就是我们熟悉的信号。

4、获取log中关注的数据

SignalTimetable=read(m, 7, m.ChannelNames{7});  %获取通道7中所有timatable数据;此数据就是用CANape或者MDA数据分析软件打开看到的数据,其中第一列是采样时间,其余是对应的变量;

5、获取采样时间序列

t=SignalTimetable.Time; %把timetable数据转化成了非timetable格式的数据矩阵,如果不转化成矩阵不方便进行矩阵运算;

6、获取log中电流信号数据

CANRx_CurrentISG=SignalTimetable.CANRx_CurrentISG_XCP_1; %同上,处理其它信号

7、获取log中电压信号数据

CANRx_VoltageISG=SignalTimetable.CANRx_VoltageISG_XCP_1;%同上,处理其它信号

8、根据需求处理数据

Power=CANRx_CurrentISG.*CANRx_VoltageISG/1000; %对数据进行运算处理,根据需要可以编制复杂函数,此处用简单的乘除法说明;

9、组建新的timetable数据

newdata=timetable(t,CANRx_VoltageISG,CANRx_CurrentISG,Power); %组建新的timetable数据;

10、绘制曲线图以及调整图格式

s=stackedplot(newdata);%作图,堆叠图stackedplot函数,在堆叠图中绘制表或时间表的变量。该函数在垂直层叠的单独 y 轴中绘制变量。这些变量共享一个公共 x 轴。
如果 tbl 是表,则该函数绘制变量对行号的图。
如果 tbl 是时间表,则该函数绘制变量对行时间的图。

比figure函数作图有优势;例如光标数据点可以实时显示数据点,不同的数据可以分开绘制曲线,调整曲线格式、坐标轴等非常方便,绘制的曲线如下:

以下给出调整图片属性的部分方法

% s.LineProperties(3).LineWidth = 1;%修改线宽
% s.LineProperties(2).LineStyle = 'none';%线形设置成无
% s.LineProperties(2).Marker = 's';%数据点标定为方框
s.LineProperties(3).Color='r';%线的颜色设置为红色
% vars = {{'CANRx_VoltageISG','Power'},'CANRx_CurrentISG'};%共Y轴的设置方法
% stackedplot(newdata,vars);%画共Y轴的图


本博文参考matlab help文档。

这篇关于Matlab处理CANape/INCA汽车测试软件记录的mdf或dat格式log文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/songdm_2012/article/details/131415200
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/245892

相关文章

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

Java中使用注解校验手机号格式的详细指南

《Java中使用注解校验手机号格式的详细指南》在现代的Web应用开发中,数据校验是一个非常重要的环节,本文将详细介绍如何在Java中使用注解对手机号格式进行校验,感兴趣的小伙伴可以了解下... 目录1. 引言2. 数据校验的重要性3. Java中的数据校验框架4. 使用注解校验手机号格式4.1 @NotBl

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

Gin框架中的GET和POST表单处理的实现

《Gin框架中的GET和POST表单处理的实现》Gin框架提供了简单而强大的机制来处理GET和POST表单提交的数据,通过c.Query、c.PostForm、c.Bind和c.Request.For... 目录一、GET表单处理二、POST表单处理1. 使用c.PostForm获取表单字段:2. 绑定到结

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分