首页 > 其他分享 >实例讲解Simulink CAN通讯丢失故障判定模型搭建及仿真测试验证方法

实例讲解Simulink CAN通讯丢失故障判定模型搭建及仿真测试验证方法

时间:2024-09-10 09:22:18浏览次数:3  
标签:仿真 10 Simulink 通讯 报文 实例 判定 丢失 模块

在电动汽车VCU软件开发中,要开发故障诊断模块,故障诊断类型中CAN报文通讯丢失的判定是非常重要的一个,当检测到某个控制器CAN报文通讯丢失,即接收不到该控制器的有效CAN信号,需要根据通讯丢失的判断作出相应的故障处理,以保证整车行车安全。本文通过ABS通讯丢失Simulink模块的搭建,介绍Simulink中搭建CAN通讯丢失的方法。

目录

一、CAN通讯丢失诊断开始判定条件

二、CAN通讯丢失模块架构

1、输入信号

2、输出信号

3、通讯故障判定触发条件

4、通讯故障判定原理

三、CAN通讯丢失判定策略及模型搭建

1、CAN通讯丢失判定策略

2、报文脉冲模块

3、通讯丢失模块搭建

四、CAN通讯丢失模块仿真测试验证

1、报文脉冲模块仿真测试

2、CAN通讯丢失模块仿真测试

五、总结


一、CAN通讯丢失诊断开始判定条件

CAN通讯故障判定会根据该控制器的唤醒方式不同开始进行通讯丢失判定的时间不同,钥匙ON挡唤醒的控制器,从接收到ON挡信号开始,进行通讯丢失判断,VCU唤醒信号唤醒的控制器,VCU发出唤醒信号后开始进行通讯丢失判定。ABS为ON挡唤醒控制器,当钥匙拧到ON挡后,控制器就供电启动发送报文,一般为了防止在控制器唤醒启动过程中误判通信故障,一般对此条件进行延迟判定,比如接收到ON挡唤醒信号后3s开始进行ABS CAN通讯丢失故障判定。

二、CAN通讯丢失模块架构

1、输入信号

ABS1_Error:ABS1报文丢失错误

ABS2_Error:ABS2报文丢失错误

2、输出信号

ABS_CANTimeOut_Flt:判定为ABS通讯丢失故障

3、通讯故障判定触发条件

VDIAG_KeyONTimeoutChk_Flg:故障诊断模块钥匙触发通讯丢失判断标识位,其中使能触发标识在库浏览器中搜索Enable,并添加至通讯丢失判定条件模块内即可

4、通讯故障判定原理

ABS共有2帧报文发出,在对ABS CAN报文进行解包,并勾选output error后,会输出两个ABS错误标识,ABS1_Error、ABS2_Error(CAN解包模块相关介绍在之前发布的《实例讲解Simulink应用层开发CAN报文解包及CAN信号设置方法》有详细介绍,如要了解可以查看),当ABS1 或ABS2 CAN信号丢失超过规定阈值则报ABS通讯丢失故障

三、CAN通讯丢失判定策略及模型搭建

1、CAN通讯丢失判定策略

10个周期内丢失报文超过4帧判定为报文丢失,10个周期内报文未丢失解除通讯丢失故障

2、报文脉冲模块

为了检测连续10个周期内丢失报文帧数,首先需要根据该报文周期输出报文脉冲,即经过一个周期输出一次脉冲信号1,Cycle_Count_Flg=1

3、通讯丢失模块搭建

1)单个报文周期内通讯丢失判定模块

当脉冲信号为1时,说明经过一个报文周期,此时如果接收到的CAN_Error_Flg等于1说明该报文此周期存在丢失,输出信号为1,如果此时接收到的CAN_Error_Flg等于0,说明该报文此周期不存在丢失,输出信号为0,作为后边计数模块的输入信号。其中S-R模块为锁存器模块

2)通讯丢失次数计数模块

当Flg=1时,如果i≥10则将i赋值为0,如果i<10,则以数组形式输出数组中第i个数值,i初始值为0,输出数组值范围为Array[0]-Array[9]共10个值

3)通讯丢失个数计数及通讯丢失故障判定模块

a、对Flg进行计数,即计算当前共累计通过了多少个报文周期,当累计≥10个报文周期时,输出1

b、输出数组中的数字代表之前10个报文周期通讯丢失的状态,对数组Array求和即得到从计数开始不大于10个周期内报文丢失的帧数,当从计数开始不大于10个周期内报文丢失帧数≥4时,判定为CAN通讯丢失,输出1;当从计数开始不大于10个周期内报文丢失帧数≤0时,判定为CAN通讯丢失恢复正常

c、在累计报文周期判定≥10为真时,即通过了10个周期,且之前10个周期报文丢失帧数≥4,即判定为ABS1报文CAN通讯丢失

4)报文通讯丢失判定模块如下图所示,ABS2采用同样的判定方式,复制该模块运用至ABS2即可

5)完整的CAN通讯丢失触发及判定模型

四、CAN通讯丢失模块仿真测试验证

1、报文脉冲模块仿真测试

1)将报文周期设置为20ms,并添加Scope观测输出的Cycle_Count_Flg

2)在菜单栏建模-模型设置进行配置参数设置,仿真时间设置为1s,求解器类型为定步长,离散(无连续状态),固定步长为0.01s

3)选择菜单栏调仿真-运行,模型运行完成后,打开Scope结果

4)仿真结果,每20ms输出的Cycle_Count_Flg值置1一次

2、CAN通讯丢失模块仿真测试

1)将CAN通讯丢失模块单独新建一个模型文件

2)设置模型配置参数

3)添加Signal Editor及Scope模块(Signal Editor模块设置方法见之前发布的《实例讲解Simulink开关信号滤波处理、信号解析及仿真测试验证方法》)

4)设置测试输入数据

5)选择仿真-运行,运行模型

6)查看仿真结果,可以看出仿真结果判定的CAN通讯丢失结果符合预期

五、总结

本文通过ABS通讯丢失故障触发、判定条件Simulink模型的搭建和仿真的讲解,介绍了一种控制器CAN通讯丢失故障判定的方法和建模方法,希望能给相关技术人员带来一定参考和帮助。

标签:仿真,10,Simulink,通讯,报文,实例,判定,丢失,模块
From: https://blog.csdn.net/qq_43011586/article/details/142080772

相关文章

  • MySQL——视图(三)应用实例——视图的应用
            本节将通过一个应用案例让读者熟练掌握在实际开发中创建并使用视图的完整过程。1.案例的目的        掌握视图的创建、查询、更新和删除操作。        假如有来自河北和山东的三个理科学生报考北京大学(PekingUniversity)和清华大学(Tsinghua......
  • STARCCM流体仿真
     ......
  • 实例:使用 gdb 查看进程内存中的数据结构
    代码示例首先,创建一个简单的链表程序linked_list.c,以演示如何使用gdb查看内存中的数据结构。#include<stdio.h>#include<stdlib.h>//定义链表节点结构体typedefstructNode{intdata;structNode*next;}Node;//添加新节点到链表的尾部voidappen......
  • Python 错误 AttributeError 解析,实际错误实例详解
    文章目录前言Python错误AttributeError:_csv.readerobjectHasNoAttributeNext修复Python中的AttributeError:'_csv.reader'objecthasnoattribute'next'错误Python错误AttributeError:‘_io.TextIOWrapper‘objectHasNoAttribute‘Sp......
  • 物联网虚拟仿真系统的使用介绍
    1.物联网仿真系统使用操作1.1介绍物联网仿真系统可以模拟各种物联网场景,如智能家居、智能农业、智能图书馆等。在这些模拟场景中,用户可以了解物联网设备如何实时地监测、感知和采集各种信息,这些模拟操作有助于用户更好地掌握物联网技术的核心原理和应用方法。物联网仿真系统......
  • 【机器学习】朴素贝叶斯网络的基本概念以及朴素贝叶斯网络在python中的实例
    引言文章目录引言一、朴素贝叶斯网络1.1基本概念1.1.1节点1.1.2边(Edges)1.1.3条件独立性1.2特点1.2.1结构简单1.2.2易于理解和实现1.2.3计算效率高1.3应用1.4数学表示1.5局限性二、朴素贝叶斯网络在python中的实例2.1实例背景2.2实现步骤2.3python代码......
  • 【机器学习】马尔可夫随机场的基本概念、和贝叶斯网络的联系与对比以及在python中的实
    引言马尔可夫随机场(MarkovRandomField,简称MRF)是一种用于描述变量之间依赖关系的概率模型,它在机器学习和图像处理等领域有着广泛的应用文章目录引言一、马尔科夫随机场1.1定义1.2特点1.3应用1.4学习算法1.5总结二、选择马尔可夫随机场的学习算法的标准2.1问......
  • [IC后仿] timing violation实例分析
    文章目录1-前言2-问题描述与分析3-解决方案与验证1-前言IC后仿中出现了一个Timingviolation问题,在此做出分析,并给出解决方案。2-问题描述与分析IC后仿中发生Timingviolation问题:后仿log:"/home/xx/xx.v",15691:Timingviolationintb_top.xx\cc_dly_reg[0......
  • JDBC创建数据库实例
    在本教程将演示如何在JDBC应用程序中创建数据库。在执行以下示例之前,请确保您已经准备好以下操作:具有数据库管理员权限,以在给定模式中创建数据库。要执行以下示例,需要用实际用户名和密码替换这里用户名(username)和密码(password)。MySQL或数据库已启动并运行。所需步骤使......
  • 【2024年Python量化分析】为股票数据量化分析最新整理的免费获取股票实时行情数据API
    ​最近一两年,股票量化分析越来越火了,想入门这行,首先得搞定股票数据。毕竟,所有量化分析都是靠数据说话的,实时交易、历史交易、财务、基本面,这些数据咱们都得有。咱们的目标就是把这些数据里的金子挖出来,指导咱们的投资策略。​为了找数据,我可是没少折腾,自己动手写过网易、......