Vehicle Network Toolbox

通过simulink 将CAN TRACE 进行回放

或者通过采集到数据进行数据回放和按需进行逆向计算

1、首先获取得到一般的blf 报文log文件,报文的log文件的不同格式可用CANalyzer 进行格式转换和时间上的切割

那么我们即得到一段blf 报文的log文件

2、将blf读入到MATLAB

2.1使用到的是blfread 函数

cantrace=blfread("replayCANTrace.blf");

 读取进来发现是一个cell数组,主要是这个log文件同时记录了多个channel 的报文,而我们单次分析只针对一个 channel 甚至一个报文。

 

2.2所以需要进行单一channel提取,只获取cell中第一个元素的报文,注意cell数组是1 based

cantracefinal = cantrace{1};

2.3获取报文的开始 和结束时间

startTime = seconds(cantracefinal.Time(1));
stopTime = seconds(cantracefinal.Time(end));

2.4 定义 0.01 秒的仿真时间步,并根据该时间步对 startTime 和 stopTime 的值进行舍入

Ts = 0.01;
startTime = round(startTime, 2);
stopTime = round(stopTime, 2);

2.5 将报文转换为与 CAN Replay 模块兼容的格式,并将它们保存到一个单独的文件中。

canMsgs = canMessageReplayBlockStruct(cantracefinal);
save cantraceReplay.mat canMsgs

经过上面的处理,我们就可以得到了一个cantraceReplay.mat 文件,加载mat文件后

我们得到一个名叫 canMsgs的结构体,这个结构体形式可以被simulink的 vehicle network 模块接受。

3、进行simulink 模型搭建

3.1较简单直接的方法:、

仿真设置:

 拖入CAN Replay 模块

File: 游览选择上面生成的mat文件

Variable Name: 选择mat文件对应的结构体名字

Reply to: Output port

这样进行仿真,则实现具体报文的回放,当然也可以对报文数值后续的计算

或者作为模型信号输入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值