一种燃料电池单片电压的文件解析及故障检测方法技术

技术编号:36853147 阅读:15 留言:0更新日期:2023-03-15 17:31
本发明专利技术公开了一种燃料电池单片电压的文件解析及故障检测方法,涉及燃料电池电堆测控技术领域,包括通过单片巡检仪检测系统读取任一种型号或不同厂家提供的CAN通讯的DBC文件,读出的文件转存为字符串数组;再根据DBC文件中的关键字、符号及语法结构解析DBC文件中的信号结构体和消息结构体,再将DBC信号结构和消息结构体赋值给CAN消息结构体通过CAN总线发出;一种燃料电池单片电压的故障检测方法,先将获取的各单片电压从小到大排列保存在一个数组中并通过四分位分析法设定其相应的四分位数及限制线位置,根据电压值预限制线关系判断数据是否为异常值。判断数据是否为异常值。判断数据是否为异常值。

【技术实现步骤摘要】
一种燃料电池单片电压的文件解析及故障检测方法


[0001]本专利技术涉及燃料电池电堆测控
,具体涉及一种燃料电池单片电压的文件解析及故障检测方法。

技术介绍

[0002]氢氧燃料电池电堆一般是由多片质子交换膜串联组成,每片质子交换膜的输出电压一般低于1.2V,因此需要上百片质子交换构成一个燃料电池电堆,燃料电池电堆的健康状态主要反映在每一片质子交换膜的电压上,多片电池串联组成的单片电压值相差不能过大,不及时发现并检修会导致整个电堆的损坏;所以,在燃料电池运行的过程中,需要实时监控每个燃料电池单片的电压值,如出现异常时,应及时报警或停机。
[0003]燃料电池单片电压是反应燃料电池运行状态的重要参数,在燃料电池性能评估和燃料电池系统控制方面具有极其重要的作用。燃料电池质子交换膜过干、过湿、缺气等不良条件以及物理损伤等因素都会影响质子交换膜的输出电压。检测每一片质子交换膜的单片电压数据对研究燃料电池的性能有着关键作用,而在实际应用过程中又存在电压采集的实时性、速度、精度问题,以及连接线束干扰和环境各种物理场景叠加的偶然因素波动,这些问题严重影响到燃料电池性能真实反馈和燃料电池系统控制准确性,进而降低燃料电池使用寿命。因此,现在急需要一种能对燃料电池单片采集电压信息进行文件解析及故障检测的手段。

技术实现思路

[0004]针对现有技术中存在的缺陷,本专利技术的目的在于提供一种燃料电池单片电压的文件解析及故障检测方法。
[0005]为达到以上目的,本专利技术采取的技术方案是:与现有技术相比,本专利技术的优点在于:本专利技术中的一种燃料电池单片电压的文件解析及故障检测方法与现有技术相比,CAN信号的在线解析和离线分析保证CAN总线信号的准确性和完整性,labview的图形化编程语言使CAN信号的转化结果直观清晰,箱型图分析使错误定位更加准确。
附图说明
[0006]图1为本专利技术实施例中一种燃料电池单片电压的文件解析的流程示意图;图2为本专利技术实施例中一种燃料电池单片电压故障检测方法的流程示意图;图3为本专利技术实施例中解析后得到的信号值结果图。
具体实施方式
[0007]以下结合附图对本专利技术的实施例作进一步详细说明。
[0008]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及
附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0009]在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0010]参见图1所示本专利技术实施例中一种燃料电池单片电压的文件解析的流程示意图,包括如下步骤:S1、通过比较关键字BS_和BU_读出网络波特率及网络节点;S2、通过条件循环比较关键字BO_和SG_读出报文消息和信号混合数组BO/SG;S3、通过条件循环比较关键字CM_读出DBC报文和信号的注释数组CM;S4、将步骤S2中数组BO/SG的大小N做为条件判断循环次数,按照定义的DBC消息结构体和DBC信号结构体分离;将DBC消息簇按照信号名称、起始位、长度、格式、转换因子、偏移量、范围、单位、节点、注释填入树形中。
[0011]S6、通过条件循环比较关键字VAL_得到信号的值和描述数组VAL,根据值语法确定信号的具体位置、值及值所表示的含义;S7、将上一步得出的DBC信号结构和消息结构体赋值给CAN消息结构体再通过CAN总线发出;S8、完成单片电压的文件解析。
[0012]其中,通过字符串头三个字符的对比来进行筛选,即步骤S4中还包括将数组BO/SG每一行前三个字符与BO_比较:若一致,根据BO_消息语法结构得到报文ID、报文名称、数据长度及发送节点;若不一致,则与SG_判断,若一致,根据SG_信号语法得到名称、起始位、位长、字节顺序、符号类型、增益、偏置、最小值、最大值、单位及接收节点,同时根据报文ID与循环次数以及CM_对象注释语法搜索注释数组CM得到每一个信号的注释,赋值给DBC信号结构体;若数组BO/SG每一行前三个字符既不等于BO_,也不等于SG_,得到DBC消息结构体和消息结构体中的信号数量,同时循环次数加1,重复上面判断,直到循环次数大于数组BO/SG大小N时,退出循环。
[0013]下面将详细说明本实施例中具体步骤:定义DBC信号结构体和DBC消息结构体,其中,一个DBC消息中可能会包含多个DBC信号且最大信号数目513,DBC消息跟帧ID对应。
[0014]DBC信号结构体定义如下:struct DBCSignal{
ꢀꢀ
uint32 nStartBit;
ꢀꢀꢀ
// 起始位
ꢀꢀ
uint32 nLen;
ꢀꢀꢀꢀꢀꢀ
// 位长度
ꢀꢀ
double nFactor;
ꢀꢀꢀꢀ
// 转换因子
ꢀꢀ
double nOffset;
ꢀꢀꢀꢀ
// 转换偏移 实际值=原始值*nFactor+nOffset
ꢀꢀ
double nMin;
ꢀꢀꢀꢀꢀꢀ
// 最小值
ꢀꢀ
double nMax;
ꢀꢀꢀꢀꢀꢀ
// 最大值
ꢀꢀ
uint64 nRawValue;
ꢀꢀ
// 原始值
ꢀꢀ
bool is_signed;
ꢀꢀꢀꢀꢀ
// 是否有符号数据
ꢀꢀ
bool is_motorola;
ꢀꢀꢀꢀ
// 是否摩托罗拉格式uint8 multiplexer_type; // 复用器类型uint8 val_type;
ꢀꢀꢀꢀꢀꢀꢀ
// 0:integer, 1:float, 2:double
ꢀꢀ
uint32 multiplexer_value;
ꢀꢀꢀꢀ
// 复用器开关值为此值时信号有效
ꢀꢀ
char unit[_DBC_UNIT_MAX_LENGTH_+1];
ꢀꢀ
// 单位
ꢀꢀ
char strName[_DBC_NAME_LENGTH_+1];
ꢀꢀ
// 名称
ꢀꢀ
char strComment[_DBC_COMMENT_MAX_LENGTH_+1]; // 注释
ꢀꢀ
char strValDesc[_DBC_NAME_LENGTH_+1];
ꢀꢀ
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种燃料电池单片电压的文件解析方法,其特征在于,包括以下步骤:S1、通过比较关键字BS_和BU_读出网络波特率及网络节点;S2、通过条件循环比较关键字BO_和SG_读出报文消息和信号混合数组BO/SG;S3、通过条件循环比较关键字CM_读出DBC报文和信号的注释数组CM;S4、将步骤S2中数组BO/SG的大小N做为条件判断循环次数,按照定义的DBC消息结构体和DBC信号结构体分离;将DBC消息簇按照信号名称、起始位、长度、格式、转换因子、偏移量、范围、单位、节点、注释填入树形中;S6、通过条件循环比较关键字VAL_得到信号的值和描述数组VAL,根据值语法确定信号的具体位置、值及值所表示的含义;S7、将上一步得出的DBC信号结构和消息结构体赋值给CAN消息结构体再通过CAN总线发出;S8、完成单片电压的文件解析。2.如权利要求1所述的一种燃料电池单片电压的文件解析方法,其特征在于:步骤S4中还包括将数组BO/SG每一行前三个字符与BO_比较:若一致,根据BO_消息语法结构得到报文ID、报文名称、数据长度及发送节点;若不一致,则与SG_判断,若一致,根据SG_信号语法得到名称、起始位、位长、字节顺序、符号类型、增益、偏置、最小值、最大值、单位及接收节点,同时根据报文ID与循环次数以及CM_对象注释语法搜索注释数组CM得到每一个信号的注释,赋值给DBC信号结构体;若数组BO/SG每一行前三个字符既不等于BO_,也不等于SG_,得到DBC消息结构体和消息结构体中的信号数量,同时循环次数加1,重复上面判断,直到循环次数大于数组BO/SG大小N时,退...

【专利技术属性】
技术研发人员:彭文方全琎叶麦克全书海
申请(专利权)人:武汉海亿新能源科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1