一种用于脉宽测量的滤波方法及脉宽测量方法与流程

文档序号:34460071发布日期:2023-06-15 01:53阅读:118来源:国知局
一种用于脉宽测量的滤波方法及脉宽测量方法与流程

本发明涉及脉冲宽度捕获技术,特别涉及一种用于脉宽测量的滤波方法及脉宽测量方法。


背景技术:

1、在电机控制中,常采用pwm进行调速,例如可以应用于冰箱、空调、风扇等需要进行速度控制的场景。pwm调速的原理在于通过脉冲宽度捕获(pulse width capture,pwc)技术捕获调速脉冲的宽度,然后将捕获得到的调速脉冲的宽度(简称为脉宽)转换成转速命令,以控制电机按转速命令运行。其中,脉冲宽度捕获技术是一种用于测量外部输入的脉冲宽度和周期的方式。其通过单片机捕获得到输入的脉冲信号的宽度信息。在pwm调速过程中,当输入的脉冲信号的宽度发生改变时,单片机捕获得到的脉冲宽度随之改变,将不同的脉冲宽度转为对应的速度信息,便实现了pwm调速。因此,对于pwm调速而言,pwc的精度尤为重要。然而,受限于单片机的性能以及噪声的影响,当调速脉冲具有高频率、高占空比或低占空比的特点时,通常在不替换性能更优的单片机的情况下难以准确地确定脉冲的宽度,进而影响系统的速度控制。

2、针对这一问题,目前多采用滤波的方式对测量得到的脉冲宽度的数据进行处理,削弱噪声的影响。目前,最常用的滤波方式为平均滤波方式。平均滤波方式是对一段时间内测量得到的脉冲宽度进行算术平均,其具有快速、高效、运算量小的特点,能够在一定程度上削弱噪声的影响。但是当某个测量数据受噪声严重影响时,经过算术平均得出的脉宽值也会受到影响而产生较大误差,进而产生错误的调速信号。此外,采用算术平均的方式是对一段时间内的数据进行滤波,存在时效性问题。


技术实现思路

1、针对现有技术中的全部或部分问题,为了消除噪声对脉宽测量的影响,本发明一方面提供了一种用于脉宽测量的滤波方法,包括:

2、确定第一指定时间段内的脉冲信号的频率是否稳定:

3、若稳定,则根据所述脉冲信号的实时测量得到的实时周期宽度、实时高电平宽度以及实时低电平宽度对脉冲宽度值进行修正,并根据修正后的脉冲宽度值确定所述脉冲信号的信号状态,其中,所述信号状态包括全高、全低以及正常三种,然后统计第二指定时间段内三种信号状态的数量,将数量最多的状态确定为实时信号状态;以及

4、若不稳定,则根据第三指定时间段内用于捕获输入引脚的电平确定实时信号状态;以及

5、根据所述实时信号状态,确定输出脉冲宽度值。

6、进一步地,所述滤波方式还包括,设置两个长度相同的数组:

7、第一数组,用于存储实时信号状态;以及

8、第二数组,用于存储于所述实时信号状态相对应的修正后的脉冲宽度值。

9、进一步地,确定第一指定时间段内的脉冲信号的频率是否稳定包括:

10、每次测量时,计算前一次测量得到实时周期宽度与本次测量得到的实时周期宽度差值;

11、比较所述差值与预设误差阈值的大小:

12、若所述差值小于所述预设误差阈值,则信号频率稳定计数值加一;以及

13、若所述差值大于或等于所述预设误差阈值,则信号频率稳定计数值减一;

14、若第一指定时间段内,所述信号频率稳定计数值大于指定值,则脉冲信号的频率稳定,否则,脉冲信号的频率不稳定。

15、进一步地,所述预设误差阈值根据本次测量得到的实时周期宽度以及预设频率稳定误差系数确定。

16、进一步地,修正脉冲宽度值包括:

17、若低电平宽度平均值小于周期宽度平均值减去测量误差值,且高电平宽度平均值大于周期宽度平均值加上测量误差值,则修正后的脉冲宽度值等于实时周期宽度减去实时低电平宽度;

18、若低电平宽度平均值大于周期宽度平均值加上测量误差值,且高电平宽度平均值小于周期宽度平均值减去测量误差值,则修正后的脉冲宽度值等于实时高电平宽度;

19、若低电平宽度平均值大于或等于周期宽度平均值减去测量误差值,且小于或等于周期宽度平均值加上测量误差值,则修正后的脉冲宽度值等于实时周期宽度减去实时低电平宽度;

20、若高电平宽度平均值大于或等于周期宽度平均值减去测量误差值,且小于或等于周期宽度平均值加上测量误差值,则修正后的脉冲宽度值等于实时高电平宽度;以及

21、若以上条件均不满足,则连续读取捕获脉冲宽度电平指定次数:

22、若均为高电平,则修正后的脉冲宽度值等于高电平宽度平均值;

23、以及

24、若均为低电平,则修正后的脉冲宽度值等于0。

25、进一步地,所述测量误差值根据周期宽度平均值以及预设的测量误差系数确定。

26、进一步地,根据修正后的脉冲宽度值确定本次测量脉冲的信号状态包括:

27、若修正后的脉冲宽度值小于最小测量宽度,则信号状态为全低;

28、若修正后的脉冲宽度值大于最大测量宽度,则信号状态为全高;以及

29、若修正后的脉冲宽度值大于等于最小测量宽度且小于等于最大测量宽度,则信号状态为正常。

30、进一步地,所述最小测量宽度根据低电平宽度平均值以及最小测量宽度系数确定;以及

31、所述最大测量宽度根据高电平宽度平均值以及最大测量宽度系数确定。

32、进一步地,根据第三指定时间段内用于捕获输入引脚的电平确定实时信号状态包括:

33、若第三指定时间段内用于捕获输入引脚的电平均为高电平,则实时信号状态为全高;否则

34、实时信号状态为全低。

35、进一步地,根据所述实时信号状态,确定输出脉冲宽度值包括:

36、若实时信号状态为全低,则输出脉冲宽度值为0;

37、若实时信号状态为全高,则输出脉冲宽度值为周期宽度平均值;以及

38、若实时信号状态为正常,则输出脉冲宽度值为第五指定时间段内,所有信号状态为正常的脉冲修正后的脉冲宽度值的平均值。

39、基于上述滤波方法,本发明另一方面还提供一种脉宽测量的方法,包括:

40、实时测量脉冲的周期宽度、低电平宽度以及高电平宽度;以及

41、按照前述滤波方法进行滤波,得到输出脉冲宽度值。

42、进一步地,所述实时测量脉冲的周期宽度、低电平宽度以及高电平宽度包括:

43、将单片机脉冲宽度测量模式设置为周期宽度测量,并测量实时周期宽度;

44、将单片机脉冲宽度测量模式设置为高电平宽度测量,并测量实时高电平宽度;以及

45、将单片机脉冲宽度测量模式设置为低电平宽度测量,并测量实时低电平宽度。

46、进一步地,本发明还提供一种单片机,其能够执行如前所述的脉宽测量的方法及滤波方法。

47、本发明提供的一种用于脉宽测量的滤波方法及脉宽测量方法,采用纯软件的方式,其主要通过芯片测量得到的脉冲信号宽度数据,依据指定时间内的信号状态,完成对当前脉冲信号的实时宽度数据的修正,然后对信号状态进行判定,并借助队列,分别记录连续一段时间内脉冲信号的状态信息及对应的修正后脉冲宽度值,最后根据记录的状态信息判断信号的真实状态,同时使用队列中与该信号状态对应的修正后的脉宽数据,计算出当前的脉冲宽度,达到对信号的滤波,并完成对脉宽的测量。采用所述滤波方法,能够在不更换性能更好的单片机的前提下,提高测量精度,实现更好的抗干扰能力,尤其适用于高频率、高占空比、低占空比脉冲信号的脉宽测量。此外,所述脉宽测量方法为实时输出,具有更优的时效性。同时,所述滤波方法运算简单,因此,正题运算过程中的内存消耗及时间消耗很小。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1