CN103743922B - 一种基于dsp的发动机转速测量方法和装置 - Google Patents
一种基于dsp的发动机转速测量方法和装置 Download PDFInfo
- Publication number
- CN103743922B CN103743922B CN201410036882.7A CN201410036882A CN103743922B CN 103743922 B CN103743922 B CN 103743922B CN 201410036882 A CN201410036882 A CN 201410036882A CN 103743922 B CN103743922 B CN 103743922B
- Authority
- CN
- China
- Prior art keywords
- frequency
- engine
- amplitude
- interval
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 84
- 238000005259 measurement Methods 0.000 title claims abstract description 38
- 238000005070 sampling Methods 0.000 claims abstract description 53
- 238000001228 spectrum Methods 0.000 claims abstract description 31
- 238000006243 chemical reaction Methods 0.000 claims abstract description 22
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 238000001914 filtration Methods 0.000 claims abstract description 15
- 230000005236 sound signal Effects 0.000 claims abstract description 11
- 238000012937 correction Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 11
- 230000008030 elimination Effects 0.000 claims description 9
- 238000003379 elimination reaction Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 3
- 239000000523 sample Substances 0.000 description 30
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 101100126175 Escherichia coli (strain K12) intM gene Proteins 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012857 repacking Methods 0.000 description 1
- 238000010183 spectrum analysis Methods 0.000 description 1
- 230000004304 visual acuity Effects 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Landscapes
- Testing Of Engines (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
Abstract
本发明公开了一种基于DSP的发动机转速测量方法和装置,通过获取发动机振动信号、排气声音信号或发动机点火电压信号,并对获得的信号进行AD转换,根据预设的采样率对AD转换后的信号数据进行采样;对采样后的数据进行限幅数字滤波和加汉宁窗函数处理;对处理后的数据进行快速傅氏变换使时域采样数据变换为频域内频谱值,并计算各频率点幅值;根据频率基波间隔法计算发动机对应的频率值;根据发动机转速与发动机对应的频率值的关系,得到发动机的转速;从而提高了转速测量精度及抗干扰能力,降低了误判率。
Description
技术领域
本发明涉及频率测量技术领域,尤其涉及的是一种基于DSP的发动机转速测量方法和装置。
背景技术
发动机转速为发动机曲轴每分钟的回转数,用n表示,单位为r/min。发动机转速的高低,关系到单位时间内做功次数的多少或发动机有效功率的大小,即发动机的有效功率随转速的不同而改变。因此,在说明发动机有效功率的大小时,必须同时指明其相应的转速。在发动机产品标牌上规定的有效功率及其相应的转速分别称作标定功率和标定转速。发动机在标定功率和标定转速下的工作状况称作标定工况。标定功率不是发动机所能发出的最大功率,它是根据发动机用途而制定的有效功率最大使用限度。同一种型号的发动机,当其用途不同时,其标定功率值并不相同。有效转矩也随发动机工况而变化。因此,汽车发动机以其所能输出的最大转矩及其相应的转速作为评价发动机动力性的一个指标。发动机转速测量通常采用转速传感器,与飞轮上面的信号齿相对应,来测量发动机的转速。
现有技术中,在测量汽车发动机转速时,一般采用转速适配器等产品来进行测量,但现有的测量产品存在稳定性较差、输入信号电压稍高时控制器直接烧毁、测量时容易产生误判、易受外围信号干扰及价格昂贵等问题,给用户带来了大大的不便。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于DSP的发动机转速测量方法和装置,旨在解决现有的发送机转速测量测量精度低、抗干扰能力不高的问题。
本发明解决技术问题所采用的技术方案如下:
一种基于DSP的发动机转速测量方法,其中,包括以下步骤:
A、获取发动机振动信号、排气声音信号或发动机点火电压信号,并对获得的信号进行AD转换,根据预设的采样率对AD转换后的信号数据进行采样;
B、对采样后的数据进行限幅数字滤波和加汉宁窗函数处理;
C、对处理后的数据进行快速傅氏变换使时域采样数据变换为频域内频谱值,并计算各频率点幅值;
D、根据频率基波间隔法计算发动机对应的频率值;
E、根据发动机转速与发动机对应的频率值的关系,得到发动机的转速。
所述的基于DSP的发动机转速测量方法,其中,所述步骤D具体包括:
D1、计算相同的频率间隔出现的次数,并找出最大次数;
D2、判断最大次数是否小于2,若为是,则执行步骤D3;否则执行步骤D4;
D3、判断相同的频率间隔出现的次数是否有次数相等,若为是,则取出较小频率间隔,并执行步骤D5;否则执行步骤D5;
D4、取出对应的频率间隔,并执行步骤D5;
D5、判断是否符合频率间隔为0或频率间隔大于最大幅值对应的频率,若为是,则设定倍频值为1;若为否,则计算倍频值;
D6、对最大幅值对应的频率进行多谱线校正,并根据倍频值计算发动机对应的频率值。
所述的基于DSP的发动机转速测量方法,其中,在所述步骤C和D之间还包括:
C1、对所述频域内频谱值进行消除共振处理。
所述的基于DSP的发动机转速测量方法,其中,所述步骤C1具体包括:
C11、搜索各频率点中最大幅值;
C12、判断最大幅值是否大于60,若为否,则设定取样幅值为10,且最小限定值为5,并执行步骤C13;若为是,则设定取样幅值为20,且最小限定值为10,并执行步骤C13;
C13、判断样本点是否大于等于5,若为是,则执行步骤D;若为否,则执行步骤C14;
C14、判断幅值是否小于等于最小限定值,若为否,则将幅值减1,并返回步骤C13;若为是,则执行步骤D。
所述的基于DSP的发动机转速测量方法,其中,在所述步骤D和E之间还包括:
E0、采用多谱线校正法对所述频率值进行频谱校正。
一种基于DSP的发动机转速测量装置,其中,包括:
信号采样模块,用于获取发动机振动信号、排气声音信号或发动机点火电压信号,并对获得的信号进行AD转换,根据预设的采样率对AD转换后的信号数据进行采样;
数据处理模块,用于对采样后的数据进行限幅数字滤波和加汉宁窗函数处理;
快速傅氏变换模块,用于对处理后的数据进行快速傅氏变换使时域采样数据变换为频域内频谱值,并计算各频率点幅值;
频率值计算模块,用于根据频率基波间隔法计算发动机对应的频率值;
转速获取模块,用于根据发动机转速与发动机对应的频率值的关系,得到发动机的转速。
所述的基于DSP的发动机转速测量装置,其中,所述频率值计算模块包括:
频率间隔计算单元,用于计算相同的频率间隔出现的次数,并找出最大次数;
最大次数判断单元,用于判断最大次数是否小于2;
次数相等判断单元,用于当最大次数小于2时,判断相同的频率间隔出现的次数是否有次数相等;
频率间隔提取单元,用于当最大次数不小于2时,取出对应的频率间隔;及相同的频率间隔出现的次数有次数相等时,取出较小频率间隔;
频率间隔判断单元,用于判断取出的频率间隔是否符合频率间隔为0或频率间隔大于最大幅值对应的频率;
倍频值计算单元,用于当取出的频率间隔符合频率间隔为0或频率间隔大于最大幅值对应的频率时,设置倍频值为1;当取出的频率间隔不符合频率间隔为0或频率间隔大于最大幅值对应的频率时,计算倍频值;
多谱线校正单元,用于对最大幅值对应的频率进行多谱线校正;
频率值计算单元,用于根据倍频值计算发动机对应的频率值。
所述的基于DSP的发动机转速测量装置,其中,还包括:
共振处理模块,用于对所述频域内频谱值进行消除共振处理。
所述的基于DSP的发动机转速测量装置,其中,所述共振处理模块包括:
最大幅值搜索单元,用于搜索各频率点中最大幅值;
最大幅值判断单元,用于判断最大幅值是否大于60;
取样设置单元,用于当最大幅值大于60时,设定取样幅值为20,且最小限定值为10;当最大幅值不大于60时,设定取样幅值为10,且最小限定值为5;
样本点判断单元,用于判断样本点数是否大于等于5;
幅值判断单元,用于当样本点数小于5时,判断幅值是否小于等于最小限定值;
幅值递减单元,用于当幅值大于最小限定值时,将幅值减1。
所述的基于DSP的发动机转速测量装置,其中,还包括:
频谱校正模块,用于采用多谱线校正法对所述频率值进行频谱校正。
本发明所提供的一种基于DSP的发动机转速测量方法和装置,有效地解决了现有的发动机转速测量精度低、抗干扰能力弱的问题,其方法通过获取发动机振动信号、排气声音信号或发动机点火电压信号,并对获得的信号进行AD转换,根据预设的采样率对AD转换后的信号数据进行采样;对采样后的数据进行限幅数字滤波和加汉宁窗函数处理;对处理后的数据进行快速傅氏变换使时域采样数据变换为频域内频谱值,并计算各频率点幅值;根据频率基波间隔法计算发动机对应的频率值;根据发动机转速与发动机对应的频率值的关系,得到发动机的转速;从而提高了转速测量精度及抗干扰能力,降低了误判率,为用户带来了大大的方便。
附图说明
图1为本发明提供的基于DSP的发动机转速测量方法较佳实施例的流程图。
图2为本发明提供的基于DSP的发动机转速测量方法中消除共振和计算频率值的应用实施例的流程图。
图3为本发明提供的基于DSP的发动机转速测量装置的结构框图。
具体实施方式
本发明提供一种基于DSP的发动机转速测量方法和装置,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明提供的基于DSP的发动机转速测量方法较佳实施例的流程图,包括以下步骤:
步骤S100、获取发动机振动信号、排气声音信号或发动机点火电压信号,并对获得的信号进行AD转换,根据预设的采样率对AD转换后的信号数据进行采样;
步骤S200、对采样后的数据进行限幅数字滤波和加汉宁窗函数处理;
步骤S300、对处理后的数据进行快速傅氏变换使时域采样数据变换为频域内频谱值,并计算各频率点幅值;
步骤S400、根据频率基波间隔法计算发动机对应的频率值;
步骤S500、根据发动机转速与发动机对应的频率值的关系,得到发动机的转速。
下面结合具体的实施例对上述步骤进行详细的描述。
在步骤S100中,获取发动机振动信号、排气声音信号或发动机点火电压信号,并对获得的信号进行AD转换,根据预设的采样率对AD转换后的信号数据进行采样。具体来说,通过采集上述三种信号其中一种便可得出发动机的转速。这三个信号为模拟信号,采取三种不同的方式进行信号采样,分别为发动机振动信号采样、排气声音信号采样、发动机点火电压采样,在同一时刻只对其中一种方式进行采样,三种不同的采样方式无需对汽车进行任何改装及加装设备。采样后的数据直接送入DSP自带的12位AD转换器中,DSP根据采样率进行数据读取,采用自带的AD转换器使硬件电路结构简化,极大程度上降低硬件故障率及成本。
在步骤S200中,对采样后的数据进行限幅数字滤波和加汉宁窗函数处理。具体来说,就是读取采样数据,然后对采样数据进行前期的数据处理,对采样数据进行限幅数字滤波和加汉宁窗函数处理。在实际应用时,首先对采样数据进行数据限幅滤波,然后进行数据复数化,再加汉宁窗函数处理,最后进行数据换位,进入步骤S300。
在步骤S300中,对处理后的数据进行快速傅氏变换使时域采样数据变换为频域内频谱值,并计算各频率点幅值。具体来说,也就是根据FFT(FastFourierTransformation,快速傅氏变换)计算特性和要求对经过上述数据处理之后的数据进行FFT变换,使时域采样数据变换成频域内频谱值,然后还计算各频点的幅值。
在步骤S400中,根据频率基波间隔法计算发动机对应的频率值。具体来说,在得到频谱值之后,根据谐波衰减特性,采用“最大幅值-基波间隔法”特殊算法进行频率值计算,所述最大幅值-基波间隔法也就是在频域内搜索最大幅值,再根据有效幅值之间的间隔确定频率的基波值。
在步骤S500中,根据发动机转速与发动机对应的频率值的关系,得到发动机的转速。具体来说,计算出频率后,再根据公式:n=f*60;上式中n为转速(r/min),f为计算频率值(HZ)。转速值可由LCD直接显示,可简单直观地查看发动机转速测量值。
进一步地,在所述步骤S400和S500之间还包括:
S510、采用多谱线校正法对所述频率值进行频谱校正。具体来说,在步骤S400中得出大概频率后根据相应的窗函数再进行“多谱线校正法”进行频谱校正,校正后的频率值为最终计算值。
进一步地,在实际应用时,当被测频率与物体的固有频率接近或相等时将会产生共振,此时传感器所输出的信号含有较强的干扰成分,所以需进行共振消除,在所述步骤S300和S400之间还包括:
S310、对所述频域内频谱值进行消除共振处理。
请参阅图2,图2为本发明提供的基于DSP的发动机转速测量方法中消除共振和计算频率值的应用实施例的流程图,在依次经过读取采样数据、对数据进行限幅滤波、数据复数化、加汉宁窗函数、数据换位、时域变换至频域(FFT)及计算出各频点的幅值之后,如图所示,进入步骤S310。所述步骤S310具体包括:
S311、搜索各频率点中最大幅值;
S312、判断最大幅值是否大于60,若为否,则设定取样幅值为10,且最小限定值为5,并执行步骤S313;若为是,则设定取样幅值为20,且最小限定值为10,并执行步骤S313;
S313、判断样本点是否大于等于5,若为是,则执行步骤S400;若为否,则执行步骤S314;
S314、判断幅值是否小于等于最小限定值,若为否,则将幅值减1,并返回步骤S313;若为是,则执行步骤S400。
在步骤S312中,若幅值大于60,则存在共振现象,设定取样幅值为20,且最小限定值为10再进行取样,便可消除共振的影响。若幅值不大于60,则不存在共振现象,那么设定取样幅值为10,且最小限定值为5进行取样。再判断取样出来的样本点数是否大于5个,若为是,则进入步骤S400;若为否,则判断取出来的样本点的幅值是否小于最小限定值,若为是则进入步骤S400,若为否则表示没有最小幅值,那么将幅值减1再返回步骤S313中,直到幅值满足小于等于最小限定值。
进一步地,请继续参阅图2,所述步骤S400具体包括:
S401、计算相同的频率间隔出现的次数,并找出最大次数;
S402、判断最大次数是否小于2,若为是,则执行步骤S403;否则执行步骤S404;
S403、判断相同的频率间隔出现的次数是否有次数相等,若为是,则取出较小频率间隔,并执行步骤S405;否则执行步骤S405;
S404、取出对应的频率间隔,并执行步骤S405;
S405、判断是否符合频率间隔为0或频率间隔大于最大幅值对应的频率,若为是,则设定倍频值为1;若为否,则计算倍频值;
S406、对最大幅值对应的频率进行多谱线校正,并根据倍频值计算发动机对应的频率值。
具体来说,请参阅图2,经过上述的消除共振处理之后,进入步骤S401计算相同的频率间隔出现的次数,并找出最大次数。也就是说,计算样本点中各个频率的间隔,再判断频率间隔是否相等,并记录相同频率间隔出现的次数。再找出最大次数,并保存最大次数对应的频率间隔。再进入步骤S401、判断最大次数是否小于2,若为是,则进入步骤S403,否则取出对应的频率间隔,执行步骤S405。步骤S403、判断相同的频率间隔出现的次数是否有次数相等,若为是,则取出较小频率间隔,并执行步骤S405;否则执行步骤S405。步骤S405、判断是否符合频率间隔为0或频率间隔大于最大幅值对应的频率,若为是,则设定倍频值为1;若为否,则计算倍频值。具体来说,若倍频值为1,则最大幅值对应的频率就是基波频率。若计算倍频值,则对最大幅值对应的频率进行多谱线校正,然后根据校正后的最大幅值对应的频率值和计算出来的倍频值得出基波频率的频率值。
然后计算出基波频率后,由控制器把基波频率的频率值以脉冲的方式进行TTL信号输出,外围设备可通过相应的方式接收频率脉冲信号。根据串口(UART)通讯协议,可向其他控制器或PC机以RS232方式发送频率值或转速值。转速计算:得出频率值后,再根据公式:n=f*60;上式中n为转速(r/min),f为计算频率值(HZ)。转速值可由LCD直接显示,可简单直观地查看发动机转速测量值。
在实际应用时,部分代码如下:频谱分析算法代码(采样率:1KHz,点数:1024)
for(i=0;i<(DATA_LEN-2);i++)//限幅滤波,DATA_LEN=1024
{
if((ADH[i+1]>(250+ADH[i]))&&(ADH[i+1]>(250+ADH[i+2])))
{
ADH[i+1]=(ADH[i]+ADH[i+2])/2;
}
elseif((ADH[i]>(250+ADH[i+1]))&&(ADH[i+2]>(250+ADH[i+1])))
{
ADH[i+1]=(ADH[i]+ADH[i+2])/2;
}
}
for(i=0;i<DATA_LEN;i++)
{
AD_r_i[i].i=0;//复数化
AD_r_i[i].r=ADH[i];
AD_r_i[i].r*=0.5-0.5*cos(2*PI*i/(DATA_LEN));//加汉宁窗函数
}
voidbit_reverse(cplx_t*AD_input,intN)//数据换位子程序
{
unsignedinti=0,j=0,k=0;
cplx_ttmp;
intt=0;
intbit_num=(log(N)/log(2));
for(i=0;i<N;i++)
{
t=bit_num;
k=i;
j=0;
while(t--)
{
j<<=1;
j|=(k&1);
k>>=1;
}
if(i<j)
{
tmp=AD_input[i];
AD_input[i]=AD_input[j];
AD_input[j]=tmp;
}
}
}
voidFFT_ON(cplx_t*x,intN)//时域变换至频域(FFT)子程序
{cplx_tu,d,p,w,tmp;
inti=0,j=0,k=0,L=0;
intM=(log(N)/log(2));//numberofbutterfly
bit_reverse(x,N);
//==================thestartingofFFT===
for(i=0;i<M;i++)
{
L=1<<i;//Level1butterflyoperation
for(j=0;j<N;j+=2*L)
{//Agroupofbutterflyoperation
for(k=0;k<L;k++)
{//Singlebutterflyoperation
tmp.r=0.0;
tmp.i=-2*PI*k/2/L;
cplx_exp(&tmp,&w);
cplx_mul(&x[j+k+L],&w,&p);
u.r=x[j+k].r+p.r;
u.i=x[j+k].i+p.i;
d.r=x[j+k].r-p.r;
d.i=x[j+k].i-p.i;
x[j+k]=u;
x[j+k+L]=d;
}
}
}
V_max=0;//V_max存放最大幅值
Fs_P[0].ser=0;//Fs_P[0].ser存放最大幅值对应的频率点数值
for(i=0;i<DATA_LEN/2;i++)
{
ZZ=sqrt(AD_r_i[i].r*AD_r_i[i].r+AD_r_i[i].i*AD_r_i[i].i);//计算各频率点幅值
AD_r_i[i].r=ZZ;
if(i==0)
{AD_r_i[i].r/=DATA_LEN;
}
else
{
AD_r_i[i].r/=DATA_LEN/2;
}
if((i>1)&&(AD_r_i[i].r>5))
{
if(AD_r_i[i].r>V_max)//搜索最大幅值
{
V_max=AD_r_i[i].r;
Fs_P[0].ser=i;
}
}
}
Fs_P[1].num=0;//Fs_P[1].num存放V_max<60.0条件下的递减幅值
Fs_P[3].num=0;//Fs_P[3].num存放V_max>60.0条件下的递减幅值
Fs_P[2].num=0;//Fs_P[2].num存放取样是否完成的标识位
do//取计算样本值
{
i=2;
j=2;
k=DATA_LEN/2;
AD_r_i[0].r=0;
while(i<((DATA_LEN/2)-3))
{
if(V_max<60.0)//判断最大幅值是否大于60
{
if(AD_r_i[i].r>(10-Fs_P[1].num))//幅值-1计算
{
if((AD_r_i[i+1].r>AD_r_i[i].r)&&(AD_r_i[i+1].r>AD_r_i[i+2].r))
//比较连续三点的幅值,以最大幅值计算对应频率点的间隔{
AD_r_i[k+j].r=(i+1)-AD_r_i[0].r;
AD_r_i[0].r=i+1;
j++;
i=i+3;
}
elseif((AD_r_i[i].r>AD_r_i[i+1].r)&&(AD_r_i[i].r>AD_r_i[i-1].r))
{
AD_r_i[k+j].r=i-AD_r_i[0].r;
AD_r_i[0].r=i;
j++;
i=i+2;
}
else
{
i++;
}
}
else
{
i++;
}
}
else
{
if(AD_r_i[i].r>(20-Fs_P[3].num))//幅值-1计算
{
if((AD_r_i[i+1].r>AD_r_i[i].r)&&(AD_r_i[i+1].r>AD_r_i[i+2].r))
{
AD_r_i[k+j].r=(i+1)-AD_r_i[0].r;
AD_r_i[0].r=i+1;
j++;
i=i+3;
}
elseif((AD_r_i[i].r>AD_r_i[i+1].r)&&(AD_r_i[i].r>AD_r_i[i-1].r))
{
AD_r_i[k+j].r=i-AD_r_i[0].r;
AD_r_i[0].r=i;
j++;
i=i+2;
}
else
{
i++;
}
}
else
{
i++;
}
}
}//endofwhile
if(j<7)//样本值是否达到5个
{
if((V_max<60.0)&&(Fs_P[1].num<5))//幅值是否达到最小限定值
{
Fs_P[1].num++;
}
elseif((Fs_P[3].num<10)&&(V_max>60.0))
{
Fs_P[3].num++;
}
else
{
Fs_P[2].num=1;
}
}
else
{
Fs_P[2].num=1;
}
}while(Fs_P[2].num==0);
for(L=1;L<20;L++)//数组清零
{
Fs_P[L].num=0;
Fs_P[L].ser=0;
}
if(j>2)
{j--;
while(j!=1)
{
for(i=j;i>2;i--)
{
if((AD_r_i[j+k].r<(AD_r_i[i+k-1].r+2))&&(AD_r_i[j+k].r>(AD_r_i[i+k-1].r-2)))
{//判断频率间隔是否相等
Fs_P[j].num++;//记录相同频率间隔出现的次数
Fs_P[j].ser=(int)AD_r_i[j+k].r;//记录间隔频率值
}
}
if(Fs_P[j].num>Fs_P[1].num)//找出最大次数,并保存最大次数对应的频率间隔
{
Fs_P[1].num=Fs_P[j].num;
Fs_P[1].ser=Fs_P[j].ser;
}
j--;
}
}
if(Fs_P[1].num<2)//如果有两个不同频率间隔的值都出现过两次,则取出较小频率间隔
{
for(i=2;i<7;i++)
{
if((Fs_P[1].num==Fs_P[i].num)&&(Fs_P[1].ser>Fs_P[i].ser))
{
Fs_P[1].ser=Fs_P[i].ser;//获取频率基波值
}
}
}
M_FS[0].r=Fs_P[0].ser;//M_FS[0].r存放最大幅值对应的频率值,此值为基波频率的X倍
if(Fs_P[1].ser==0)
{
Fs_P[0].num=1;
}
else
{
if(M_FS[0].r<Fs_P[1].ser)//判断最大幅值对应的频率是否为基波频率
{
Fs_P[0].num=1;
}
else
{
Fs_P[0].num=(int)((M_FS[0].r/Fs_P[1].ser)+0.5);//计算频率的倍频数值
}
}
i=Fs_P[0].ser;M_FS[0].r=i+1.36*(AD_r_i[i+1].r-AD_r_i[i-1].r)/(AD_r_i[i+1].r+AD_r_i[i].r+AD_r_i[i-1].r);//多谱线频率校正
FS=(M_FS[0].r/Fs_P[0].num)*(SAMPLE_FREQ_f*1.00/DATA_LEN);//最终频率值计算,SAMPLE_FREQ_f=1000.
上述代码为本发明提供的基于DSP的发动机转速测量方法进行说明。
本发明提供的基于DSP的发动机转速测量方法,无需在被测物体上加装任何传感器,对被测物体无任何损伤,且具有多种信号采样方式,可根据不同的场合选用相应的测量方式,能满足多种测量需求;并且利用特殊算法进行频率计算,提高计算精度及减少误判率。在降低成本的同时提高其工作性能。
基于上述基于DSP的发动机转速测量方法,本发明还提供了一种基于DSP的发动机转速测量装置,如图3所示,包括:
信号采样模块10,用于获取发动机振动信号、排气声音信号或发动机点火电压信号,并对获得的信号进行AD转换,根据预设的采样率对AD转换后的信号数据进行采样;
数据处理模块20,用于对采样后的数据进行限幅数字滤波和加汉宁窗函数处理;
快速傅氏变换模块30,用于对处理后的数据进行快速傅氏变换使时域采样数据变换为频域内频谱值,并计算各频率点幅值;
频率值计算模块40,用于根据频率基波间隔法计算发动机对应的频率值;
转速获取模块50,用于根据发动机转速与发动机对应的频率值的关系,得到发动机的转速。
进一步地,所述频率值计算模块40包括:
频率间隔计算单元,用于计算相同的频率间隔出现的次数,并找出最大次数;
最大次数判断单元,用于判断最大次数是否小于2;
次数相等判断单元,用于当最大次数小于2时,判断相同的频率间隔出现的次数是否有次数相等;
频率间隔提取单元,用于当最大次数不小于2时,取出对应的频率间隔;及相同的频率间隔出现的次数有次数相等时,取出较小频率间隔;
频率间隔判断单元,用于判断取出的频率间隔是否符合频率间隔为0或频率间隔大于最大幅值对应的频率;
倍频值计算单元,用于当取出的频率间隔符合频率间隔为0或频率间隔大于最大幅值对应的频率时,设置倍频值为1;当取出的频率间隔不符合频率间隔为0或频率间隔大于最大幅值对应的频率时,计算倍频值;
多谱线校正单元,用于对最大幅值对应的频率进行多谱线校正;
频率值计算单元,用于根据倍频值计算发动机对应的频率值。
进一步地,所述的基于DSP的发动机转速测量装置,其中,还包括:共振处理模块,用于对所述频域内频谱值进行消除共振处理。
进一步地,所述共振处理模块包括:
最大幅值搜索单元,用于搜索各频率点中最大幅值;
最大幅值判断单元,用于判断最大幅值是否大于60;
取样设置单元,用于当最大幅值大于60时,设定取样幅值为20,且最小限定值为10;当最大幅值不大于60时,设定取样幅值为10,且最小限定值为5;
样本点判断单元,用于判断样本点数是否大于等于5;
幅值判断单元,用于当样本点数小于5时,判断幅值是否小于等于最小限定值;
幅值递减单元,用于当幅值大于最小限定值时,将幅值减1
进一步地,所述的基于DSP的发动机转速测量装置,其中,还包括:
频谱校正模块,用于采用多谱线校正法对所述频率值进行频谱校正。
在实际应用时,所述转速测量装置,可选用具有高集成、高性能DSPTMS320F2810芯片为主控器。LCD显示模块采用点阵式TG12864H液晶模块,可进行中英文显示,具有单色背光可控、高分辨率、低功耗以及I2C和并口通讯方式。所述转速测量装置采用并口方式进行通讯,无需另加芯片即可驱动LCD模块。LCD模块主要显示实时转速以及当前所选用的信号采集方式。采样方式之间的切换以按键的方式进行,当按键信号确认有效时,采样方式将进行切换,例如:当前LCD显示采样方式为振动信号采样,当产生一个有效按键信号后,采样方式切换为声音信号采样,同时LCD显示为声音信号采样。采样方式唯一有效性可避免采样方式的混乱及错误测量。用LED灯来指示装置工作是否正常,可直接获知装置工作状态。
工作流程如下:上电后,转速测量装置对进行初始化,主要包括:时钟设置、I/O端口初始化、通讯设置、采样率及采样数据点数设定,初始化完成后,LCD显示默认信号采样方式,此时转速测量装置根据所选定的采样方式对相应AD转换通道以设定的采样率进行数据采样。采样完成后,软件立即调用FFT(快速傅里叶变换)计算程序模块,在程序模块算法中,首先对数据进行限幅数字滤波和加汉宁窗函数处理,再根据FFT计算特性和要求对数据进行FFT变换,使时域采样数据变换成频域内频谱值,得到频谱值之后,根据谐波衰减特性,采用“最大幅值-基波间隔法”特殊算法进行频率计算,同时考虑消除共振引起的问题,得出大概频率后根据相应的窗函数再进行“多谱线校正法”进行频谱校正,校正后的频率值为最终计算值。计算出频率后,由控制器把频率值以脉冲的方式进行TTL信号输出,外围设备可通过相应的方式接收频率脉冲信号。根据串口(UART)通讯协议,可向其他控制器或PC机以RS232方式发送频率值或转速值。转速计算:得出频率后,再根据公式:n=f*60;上式中n为转速(r/min),f为计算频率值(HZ)。转速值可由LCD直接显示,可简单直观地查看发动机转速测量值。
除转速测量装置中的LCD可显示实时转速外,转速测量装置可通过RS232的方式以及发送TTL脉冲的方式进行转速和频率输出,因此本转速测量装置可单独使用亦可与其它系统配合使用,有效扩大其使用范围以及减小其局限性。
本发明提供的基于DSP的发动机转速测量装置,可用于配合尾气分析仪使用,主要为尾气分析仪提供发动机转速值,同时本测量装置可用于其他频率测量工程之中,例如:桥梁振动频率测量,乐器发声频率测量等等。与测量频率相关的工程都可采用本测量装置。本系统测量时无需在被测物体上加装任何传感器,对被测物体无任何损伤,且具有多种信号采样方式,可根据不同的场合选用相应的测量方式,能满足多种测量需求。采用高性能DSP为主控制器,极大程度上简化电路结构,降低硬件成本和硬件故障率,同时利用特殊算法进行频率计算,提高计算精度及减少误判率。在降低成本的同时提高其工作性能,因此本装置具有:多功能、结构简单、低成本、高性价比、高精度之性能。
综上所述,本发明提供的一种基于DSP的发动机转速测量方法和装置,所述方法通过获取发动机振动信号、排气声音信号或发动机点火电压信号,并对获得的信号进行AD转换,根据预设的采样率对AD转换后的信号数据进行采样;对采样后的数据进行限幅数字滤波和加汉宁窗函数处理;对处理后的数据进行快速傅氏变换使时域采样数据变换为频域内频谱值,并计算各频率点幅值;根据频率基波间隔法计算发动机对应的频率值;根据发动机转速与发动机对应的频率值的关系,得到发动机的转速;从而提高了转速测量精度及抗干扰能力,降低了误判率,从而实现了间接测量汽车发动机转速,即可配合尾气分析仪使用,也可单独使用;使用特殊算法程序,提高测量精度及抗干扰能力,降低了误判率。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (8)
1.一种基于DSP的发动机转速测量方法,其特征在于,包括以下步骤:
A、获取发动机振动信号、排气声音信号或发动机点火电压信号,并对获得的信号进行AD转换,根据预设的采样率对AD转换后的信号数据进行采样;
B、对采样后的数据进行限幅数字滤波和加汉宁窗函数处理;
C、对处理后的数据进行快速傅氏变换使时域采样数据变换为频域内频谱值,并计算各频率点幅值;
D、根据频率基波间隔法计算发动机对应的频率值;
E、根据发动机转速与发动机对应的频率值的关系,得到发动机的转速;
所述步骤D具体包括:
D1、计算相同的频率间隔出现的次数,并找出最大次数;
D2、判断最大次数是否小于2,若为是,则执行步骤D3;否则执行步骤D4;
D3、判断相同的频率间隔出现的次数是否有次数相等,若为是,则取出较小频率间隔,并执行步骤D5;否则执行步骤D5;
D4、取出对应的频率间隔,并执行步骤D5;
D5、判断是否符合频率间隔为0或频率间隔大于最大幅值对应的频率,若为是,则设定倍频值为1;若为否,则计算倍频值;
D6、对最大幅值对应的频率进行多谱线校正,并根据倍频值计算发动机对应的频率值;
所述步骤D还包括:
所述频率基波间隔法计算得到发动机对应的频率值后,由控制器DSP将所述发动机对应的频率值以脉冲的方式进行TTL信号输出;
所述步骤E还包括:
通过UART串口通讯协议,以RS232方式向其他控制器或PC机发送频率值或转速值。
2.根据权利要求1所述的基于DSP的发动机转速测量方法,其特征在于,在所述步骤C和D之间还包括:
C1、对所述频域内频谱值进行消除共振处理。
3.根据权利要求2所述的基于DSP的发动机转速测量方法,其特征在于,所述步骤C1具体包括:
C11、搜索各频率点中最大幅值;
C12、判断最大幅值是否大于60,若为否,则设定取样幅值为10,且最小限定值为5,并执行步骤C13;若为是,则设定取样幅值为20,且最小限定值为10,并执行步骤C13;
C13、判断样本点是否大于等于5,若为是,则执行步骤D;若为否,则执行步骤C14;
C14、判断幅值是否小于等于最小限定值,若为否,则将幅值减1,并返回步骤C13;若为是,则执行步骤D。
4.根据权利要求1所述的基于DSP的发动机转速测量方法,其特征在于,在所述步骤D和E之间还包括:
E0、采用多谱线校正法对所述频率值进行频谱校正。
5.一种基于DSP的发动机转速测量装置,其特征在于,包括:
信号采样模块,用于获取发动机振动信号、排气声音信号或发动机点火电压信号,并对获得的信号进行AD转换,根据预设的采样率对AD转换后的信号数据进行采样;
数据处理模块,用于对采样后的数据进行限幅数字滤波和加汉宁窗函数处理;
快速傅氏变换模块,用于对处理后的数据进行快速傅氏变换使时域采样数据变换为频域内频谱值,并计算各频率点幅值;
频率值计算模块,用于根据频率基波间隔法计算发动机对应的频率值;
转速获取模块,用于根据发动机转速与发动机对应的频率值的关系,得到发动机的转速;
所述频率值计算模块包括:
频率间隔计算单元,用于计算相同的频率间隔出现的次数,并找出最大次数;
最大次数判断单元,用于判断最大次数是否小于2;
次数相等判断单元,用于当最大次数小于2时,判断相同的频率间隔出现的次数是否有次数相等;
频率间隔提取单元,用于当最大次数不小于2时,取出对应的频率间隔;及相同的频率间隔出现的次数有次数相等时,取出较小频率间隔;
频率间隔判断单元,用于判断取出的频率间隔是否符合频率间隔为0或频率间隔大于最大幅值对应的频率;
倍频值计算单元,用于当取出的频率间隔符合频率间隔为0或频率间隔大于最大幅值对应的频率时,设置倍频值为1;当取出的频率间隔不符合频率间隔为0或频率间隔大于最大幅值对应的频率时,计算倍频值;
多谱线校正单元,用于对最大幅值对应的频率进行多谱线校正;
频率值计算单元,用于根据倍频值计算发动机对应的频率值;
所述装置还包括:
频率信号输出单元,用于在所述频率值计算模块中通过频率基波间隔法计算得到发动机对应的频率值后,由控制器DSP将所述发动机对应的频率值以脉冲的方式进行TTL信号输出;
频率与转速发送单元,用于通过UART串口通讯协议,以RS232方式向其他控制器或PC机发送频率值或转速值。
6.根据权利要求5所述的基于DSP的发动机转速测量装置,其特征在于,还包括:
共振处理模块,用于对所述频域内频谱值进行消除共振处理。
7.根据权利要求6所述的基于DSP的发动机转速测量装置,其特征在于,所述共振处理模块包括:
最大幅值搜索单元,用于搜索各频率点中最大幅值;
最大幅值判断单元,用于判断最大幅值是否大于60;
取样设置单元,用于当最大幅值大于60时,设定取样幅值为20,且最小限定值为10;当最大幅值不大于60时,设定取样幅值为10,且最小限定值为5;
样本点判断单元,用于判断样本点数是否大于等于5;
幅值判断单元,用于当样本点数小于5时,判断幅值是否小于等于最小限定值;
幅值递减单元,用于当幅值大于最小限定值时,将幅值减1。
8.根据权利要求5所述的基于DSP的发动机转速测量装置,其特征在于,还包括:
频谱校正模块,用于采用多谱线校正法对所述频率值进行频谱校正。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410036882.7A CN103743922B (zh) | 2014-01-26 | 2014-01-26 | 一种基于dsp的发动机转速测量方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410036882.7A CN103743922B (zh) | 2014-01-26 | 2014-01-26 | 一种基于dsp的发动机转速测量方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103743922A CN103743922A (zh) | 2014-04-23 |
CN103743922B true CN103743922B (zh) | 2016-03-02 |
Family
ID=50500957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410036882.7A Expired - Fee Related CN103743922B (zh) | 2014-01-26 | 2014-01-26 | 一种基于dsp的发动机转速测量方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103743922B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI613536B (zh) * | 2016-09-08 | 2018-02-01 | 國家中山科學研究院 | 轉速量測裝置校正系統及其方法 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104865400B (zh) * | 2015-04-14 | 2018-08-28 | 华北电力大学 | 一种风电机组转速的检测识别方法及系统 |
CN105527572A (zh) * | 2015-12-31 | 2016-04-27 | 上海奥波电子有限公司 | 一种有刷电动机的检测系统和方法 |
CN106092524B (zh) * | 2016-05-13 | 2018-11-13 | 长兴昇阳科技有限公司 | 一种使用振动信号精确提取转速信号的方法 |
CN108122560A (zh) * | 2016-11-28 | 2018-06-05 | 华晨汽车集团控股有限公司 | 一种提取发动机噪声音调度的系统及方法 |
DE102017200297A1 (de) * | 2016-12-21 | 2018-06-21 | Robert Bosch Gmbh | Verfahren zum Durchführen einer Adaption einer Brennkraftmaschine, Computerprogramm, maschinenlesbares Speichermedium und Steuergerät |
CN106872721B (zh) * | 2017-02-14 | 2019-04-30 | 浙江聚励云机械科技有限公司 | 一种基于电瓶正极电压的发动机转速计算方法 |
CN107725202B (zh) * | 2017-10-10 | 2019-10-29 | 中国第一汽车股份有限公司 | 转速信号的处理装置 |
CN107843740B (zh) * | 2017-10-31 | 2019-11-29 | 湖南大学 | 一种融合振动与声音信号频谱特征的转速测量方法 |
CN108104960B (zh) * | 2017-12-15 | 2019-12-03 | 潍柴西港新能源动力有限公司 | 混合动力发动机转速通讯策略 |
CN108363852B (zh) * | 2018-01-31 | 2021-10-08 | 浙江浙大鸣泉科技有限公司 | 一种基于无线动态倾角测量的发动机转速估计方法 |
CN108363853B (zh) * | 2018-01-31 | 2021-10-08 | 浙江浙大鸣泉科技有限公司 | 一种基于多传感器相关去噪的发动机转速测量方法 |
CN108593955B (zh) * | 2018-04-04 | 2020-04-17 | 天津大学 | 用于转速周期性波动情况下瞬间转速测试方法 |
CN108982898B (zh) * | 2018-08-29 | 2021-08-24 | 南京智鹤电子科技有限公司 | 监控工程机械运行状态的方法和系统 |
CN109752565A (zh) * | 2019-03-02 | 2019-05-14 | 吉林大学 | 一种拖拉机发动机转速测试计 |
CN111780980A (zh) * | 2020-07-28 | 2020-10-16 | 中国人民解放军陆军装甲兵学院 | 一种基于振动信号包络倒谱分析的柴油机转速提取方法 |
CN112782421B (zh) * | 2020-12-15 | 2022-06-17 | 北京天泽智云科技有限公司 | 一种基于音频的转速识别方法 |
CN113738632B (zh) * | 2021-09-07 | 2022-09-23 | 中国商用飞机有限责任公司 | 用于测量液压泵转速的方法和系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101975633A (zh) * | 2010-09-16 | 2011-02-16 | 华南理工大学 | 应用连续细化分析傅立叶变换法的发动机激励力测量方法 |
CN102095885A (zh) * | 2010-10-28 | 2011-06-15 | 华南理工大学 | 应用四点能量重心校正法的发动机转速的振动测量方法 |
CN103134582A (zh) * | 2012-12-21 | 2013-06-05 | 中国飞行试验研究院 | 航空发动机整机振动分量跟踪数值计算方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7140252B2 (en) * | 2004-05-04 | 2006-11-28 | Ford Motor Company | Structurally tuned vibration based component checking system and method |
-
2014
- 2014-01-26 CN CN201410036882.7A patent/CN103743922B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101975633A (zh) * | 2010-09-16 | 2011-02-16 | 华南理工大学 | 应用连续细化分析傅立叶变换法的发动机激励力测量方法 |
CN102095885A (zh) * | 2010-10-28 | 2011-06-15 | 华南理工大学 | 应用四点能量重心校正法的发动机转速的振动测量方法 |
CN103134582A (zh) * | 2012-12-21 | 2013-06-05 | 中国飞行试验研究院 | 航空发动机整机振动分量跟踪数值计算方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI613536B (zh) * | 2016-09-08 | 2018-02-01 | 國家中山科學研究院 | 轉速量測裝置校正系統及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103743922A (zh) | 2014-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103743922B (zh) | 一种基于dsp的发动机转速测量方法和装置 | |
CN110161421B (zh) | 一种在线重构设定频率范围内电池阻抗的方法 | |
CN101718582B (zh) | 风力发电机组音调测试方法 | |
CN1156828A (zh) | 向量电表及相关的向量电量测量方法 | |
CN106768266B (zh) | 一种剔除背景噪声能量的厂房混响时间的测量方法 | |
CN109472231B (zh) | 变电站谐波源定位方法及装置、计算机可读存储介质 | |
CN110646042A (zh) | 一种用于低功耗超声流量计飞行时间差计算的互相关插值方法 | |
CN106645942B (zh) | 一种低成本高精度嵌入式信号采集分析系统和方法 | |
CN105651412A (zh) | 一种用于pt1000温度传感器的测量方法及测量电路 | |
CN110389312A (zh) | 一种适用于现场pmu测试的校准器相量测量方法 | |
RU2406094C2 (ru) | Способ мгновенного определения коэффициента искажения сигналов в электрической сети переменного тока и соответствующее устройство | |
CN105021886A (zh) | 一种基于特征根估计的谐波源定位装置 | |
CN102193029B (zh) | 非常规采样时间短期频率稳定度测量方法 | |
CN110837000A (zh) | 基于fpga的频率测量系统 | |
CN113311332A (zh) | 高速永磁同步电机永磁体退磁故障诊断装置及方法 | |
CN117419923A (zh) | 适用于发动机的流水型硬件相位解算方法以及解算系统 | |
CN104111372A (zh) | 一种基于数字量传输的变频电量的分析装置 | |
CN116735989A (zh) | 基于实船的船用变频器测试系统和方法 | |
CN202948288U (zh) | 一种基于金属带锯条颤振特性的锯切负载检测装置 | |
CN106352974B (zh) | 一种数字式的声级计脉冲计权方法及装置 | |
CN202693310U (zh) | 多通道机械设备故障诊断系统 | |
CN115238519A (zh) | 一种数字信号处理算法的研发系统 | |
CN211577246U (zh) | 一种用于采集电流互感器波形的装置 | |
Bucci et al. | Metrological characterization of a contactless smart thrust and speed sensor for linear induction motor testing | |
CN201749153U (zh) | 具有gps授时定位功能的便携式多功能谐波分析仪 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160302 |