Filter 不应引入延迟的低通滤波器

Filter 不应引入延迟的低通滤波器,filter,digital,Filter,Digital,我试图在测量电机时过滤电机的速度,为此,我实现了以下低通滤波器: 考虑到Ts=10 us采样时间,我选择fc=500Hz和“zoh”近似值来获得离散传递函数,这就足够了。 根据离散传递函数,我们可以得到差分方程: yk=a*yk-1+1-axk 式中,a=exp wc*Ts 在C代码中: w_real[0] = exp(-2*pi*fc*Ts*1e-6)*w_real[1] + (1-exp(-2*pi*fc*Ts*1e6))*60/(MOTOR.NPolePairs*delay*CLCK_

我试图在测量电机时过滤电机的速度,为此,我实现了以下低通滤波器:

考虑到Ts=10 us采样时间,我选择fc=500Hz和“zoh”近似值来获得离散传递函数,这就足够了。 根据离散传递函数,我们可以得到差分方程:

yk=a*yk-1+1-axk

式中,a=exp wc*Ts

在C代码中:

 w_real[0] = exp(-2*pi*fc*Ts*1e-6)*w_real[1] + (1-exp(-2*pi*fc*Ts*1e6))*60/(MOTOR.NPolePairs*delay*CLCK_SPD_PERIOD*1e-9);   
 w_real[1] = w_real[0];    
W_real是包含电机角速度值的向量,W_real用于存储最后一个值yk-1。操作60/MOTOR.NPolePairs延迟CLCK_SPD_周期1e-9与实际速度xk的计算相对应。这个低通滤波器不应该包括系统的任何延迟,因为它在s=-2pi fc=-3141中有一个极点,这与系统的两个复数极点s=1000+-878i足够远,但是,当我应用滤波器时,w_real的值会受到延迟

下图显示了系统的阶跃响应0.5*ut,红色图形带有低通滤波器,蓝色图形没有低通滤波器:

增益的差异与蓝色图形有关的是电机的数学模型。如果我退出过滤器,我会得到一个快速响应,与模型更相似:

我很困惑,为什么这个过滤器会引入这么长的延迟

最后,当我模拟模型和滤波器的阶跃响应:Gs*LPFs时,延迟没有出现

问候,, 何塞·安东尼奥