如何通过写脚本判断行车电脑数据是否准确(汽车类)

不论是燃油车还是新能源车,对于测试行业的小伙伴来说,如何去判断行车电脑的数据是否正确尼,下面分享下通过脚本来计算行车电脑数据,以此与实际ECU显示的进行对比。

例如:实车的小伙伴说驾驶中观察仪表的平均电耗(或是其他)太大,感觉不正确,要求我们调查下,那么如何判断实车数据是否正确?

第一步:请求小伙伴将行车中的CANoe截取的log发过来,通过replay功能回放该数据,然后通过代码来监控并计算数据,平均电耗 = 总电耗/行驶里程
在这里插入图片描述

第二步:对于行驶中的电耗进行累加即可,该类问题具体代码如下

总电耗累计

on message 0xXXX
{

    //总线获取电压
    xxxVoltage = this.xxxVoltage.phys;
  
    //总线获取电流
    xxxCurrent = this.xxxCurrent.phys;
    //write("电流 =%f",xxxCurrent);
    
    //电耗总量
     totalkwh = totalkwh + (xxxVoltage * xxxCurrent)/(360000*1000)
}

第三步:监控脉冲,计算行驶里程。方式是通过前一次和后一次的脉冲差来累计里程,具体最大的脉冲差根据公司定义

on message 0xXXX
{
    FL当前值 = this.xxxxFLRC.phys;
    FR当前值 = this.xxxxFRRC.phys;
    RL当前值 = this.xxxxRLRC.phys;
    RR当前值= this.xxxxRRRC.phys;
    
    //左前轮脉冲差计算
    if(FL当前值> 临时信号变量 )
    { 
      脉冲差=FL当前值- 临时信号变量;
      临时信号变量 = FL当前值;
      if(判断脉冲差是否大于0 and 小于最大脉冲差)
        将脉冲差赋值给一个变量进行后面的累加
      }
    }
    else if (FL当前值 =临时信号变量)
    {  
     return;
    }
    else
    {
       临时信号变量 = FL当前值
    }
  ..........
   右前,左后,右后代码都一样 

 //脉冲差总和计算
Total = 左前轮脉冲差和 + 右前轮脉冲差和 +右前轮脉冲差和 +右前轮脉冲差和 

//判断几个车轮脉冲是否有效,正常情况都是有效的Valid_No就等于4;上面的脉冲差和的计算也要判断,无效的车轮脉冲步计算再内,小伙伴可以自己添加判断条件
Valid_No = (1 - this.xxFLSts) + (1 - this.xxFRSts) +  (1 - xxxRLSts) +(1 - xxRRSts);

//仪表里程计算
ODO = ODO+(Total *2*π*半径)/(一轮脉冲值 * 1000 * Valid_No);

第三步:最后一步就是通过平均电耗=耗电总量/行驶里程,得出来的平均电耗是否与ECU显示一致,如果一致则表明ECU开发没有问题,如果不一致就找开发确认代码。

平均电耗=( totalkwh*xx)/ODO;xx为电耗周期换为s
write("平均电耗 =%f",平均电耗); 

对于电耗油耗的值,一些公司做了一些滤波算法或是最高值限制,该算法可借鉴https://blog.csdn.net/q751197694/article/details/51798900

以上就是对实车中平均电耗是否正确做的判断,其他数据均可参考下,且做行车电脑的仿真开发也差不对可以借鉴下。不正之处欢迎指出,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值