Simulink开关信号滤波处理、信号解析及仿真测试验证方法

文摘   2024-10-30 22:03   湖北  

在VCU应用层开发中,会接收到很多开关信号及高低电平,代表某些开关状态的有效或无效,比如钥匙信号,档位信号,模式切换开关信号,空调启停信号,PTC启停信号等。但是由于信号可能存在瞬时的干扰,比如收到干扰默认状态低电平有效的信号电平突然被拉高,随即又恢复,如果对采集的信号不加以处理,则会导致一些功能误触发现象,对功能使用甚至用车安全造成巨大的风险,因此需要对采集的开关信号进行滤波处理。本文通过档位信号的滤波处理、信号解析、故障判断及仿真测试验证,系统说明开关信号的滤波处理、信号解析及仿真测试验证方法。

一、开关信号采集及处理原理

通过物理按键或其他执行机构或者继电器控制将低电平信号或高电平信号发送至VCU,VCU根据低压电压平台,如12V或24V,对接收到的电压信号进行判断,比如12V低压系统高有效电平:>7V,低有效电平:<4.5V,在对采集的电压信号进行有效性判定后将判定的结果即0或1输入给应用层,应用层根据采集到的0或1数字信号进行控制逻辑判断。

二、档位信号的介绍

档位信号一般有D挡即前进挡,N挡即空挡,R挡即倒挡,根据换挡器输出信号,可以为低电平有效信号或高电平有效信号,VCU根据采集到的电压信号,通过模数转换电路将采集的电压信号转换为电压值,然后底层程序根据设定的高有效、低有效判定条件进行判定,输出有效或无效状态即0或1给应用层,应用层根据收到的0或1信号,对档位开关信号进行滤波处理、故障判定及档位信号解析。

三、开关信号滤波处理的原理

一般情况,底层程序将采集的开关电压信号以10ms的周期转换为开关信号后发送给应用层,其中可能会有电压受干扰瞬间波动而引起的错误信号,要过滤掉这些瞬态的错误信号,一般采用计数判断的方法对错误信号进行滤波。

比如,持续10个周期采集到该信号有效才判定为该信号有效,持续10个周期采集到该信号无效才判定为该信号无效。

四、开关信号滤波处理建模

1、新建输入信号DI_GearD_St即D档档位数字信号,信号有效延时判定周期,信号无效延时判定周期,数字信号滤波处理模块ON/OFF_Delay1

2、搭建滤波处理模块判断逻辑Stateflow流程图,当接受到D挡信号后,首先进行判断,如果为1则为有效,开始进行计数处理,同时对无效状态的计数值清零,判定持续有效次数,如果超过设定的信号有效延时判定周期数,则输出该信号有效即output=1;同理,对与无效信号的判定也是如此。

3、以同样的方式对N挡、R挡信号进行滤波处理建模

五、档位信号解析及故障判断策略

1、当出现2个及以上档位信号同时有效时,判定为档位故障,输出档位信号为错误0x0

2、当出现3个档位信号同时无效时,判定为档位故障,输出档位信号为错误0x0

3、仅出现一个档位信号有效时,输出该档位信号作为当前请求档位信号,输出档位信号设定D挡为0x1,N挡为0x2,R挡为0x3

六、档位信号解析及故障判断建模

1、将滤波后的档位信号进行数据格式转换,都转换为uint8格式

2、将格式转换后的档位信号进行加法计算并判断,如果相加总数≥2,说明同时有2个及以上档位信号有效,如果相加总数为0,说明3个档位信号同时无效,此两种情况任一满足一种则判定为档位故障,输出档位信号为0x0:Fail

3、将格式转换后的档位信号分别进行乘1/2/3处理,处理后对3者进行取大处理(进入此选择表明只有一个档位信号有效,取大处理即取其中有效的那一个信号),在档位信号判定为无错误时,输出该信号作为档位信号值

七、仿真测试验证

1、在库浏览器-Source中选择Signal Editor,拖动至模型空白处

2、双击添加的Signal Editor,在弹出的窗口中点击红框图标启动信号编辑器

3、在信号编辑器页面点击红框标记信号图标,添加信号

4、总共添加3个信号,并分别命名,勾选信号后的方框,在右侧显示信号线

5、点击信号1,D挡信号输入图线,在下方表格中点击红框标记图标添加行,然后输入要测试的数据

6、同样的方式设置信号2,N挡输入测试数据

7,同样的方式设置信号3,R挡输入测试数据

8、选择信号编辑器,点击保存,保存设置的测试数据

9、选择要保存测试数据的文件夹,并给文件命名,点击保存

10、回到主界面,将Signal Editor的各个信号与对应的DI_GearD_St、DI_GearN_St、DI_GearR_St连接

11、选择菜单栏仿真-运行,运行仿真模型,报错,根据提示在Signal Editor输出信号后加数据类型转换模块convert,将数据格式转换为boolean

12、同样的方式,将信号2和信号3的数据类型进行变更

13、再次点击仿真-运行,未报错

14、添加Scope模块,观测变量

15、再次点击仿真-运行,打开Scope查看结果,发现输出的档位信号都是0x0错误,与预期不符,排查设置是否有问题

16、选择菜单栏建模-模型设置,将求解器类型变更为定步长,离散(无连续状态),固定步长为0.01s

17、再次仿真-运行,打开Scope,观测结果,可以看到在滤波器之前输入跳变信号,经滤波处理后,没有跳变,但是会存在一定延迟。在1.2s、2.2s左右出现的档位错误,是因为输入的档位信号在切换过程中存在3个档位信号都为0的情况,符合故障判定条件,在3.1s左右以后出现的档位错误,是因为输入的档位信号依次3个同时有效、2个同时有效及3个信号都无效,符合故障判定条件。最后显示的档位状态信号与输入值相符,分别为0x1 D挡、0x2 N挡、0x3R 挡。在达成滤波效果的同时会造成一定程度的信号延迟,在实际应用中可通过调节滤波器延迟周期,达到技能具备滤掉跳变信号,延迟又控制在合理时间内。

八、总结

本文通过档位开关信号的采集、转化、滤波处理、档位解析与故障判断、Simulink建模、仿真测试验证,系统的介绍了开关信号采集、转换、滤波处理、解析、建模及仿真测试验证的全过程。希望能给相关技术人员带来一些参考和帮助。

汽车电控研习室
新能源汽车电控领域深耕者,电控知识干货分享