Realización de la Integración del Dominio de la Frecuencia de Aceleración y su Análisis de Limitaciones

Solo para notas, reproducido de

(14 mensajes) La realización de la integración del dominio de la frecuencia de aceleración y sus limitaciones

 

En primer lugar, creo que todo el mundo ha intentado obtener el desplazamiento directamente en el dominio del tiempo mediante la integración del sensor de aceleración. Cuando la precisión de la aceleración no es alta o los datos de aceleración no se procesan, el desplazamiento obtenido por la integración siempre tendrá un error acumulativo y será cada vez más grande. En este momento, algunas personas centrarán su atención en el dominio de la frecuencia. ¿Qué sucede cuando la aceleración se integra en el dominio de la frecuencia? ¿Habrá efectos inesperados?

¿Qué es la integración en el dominio de la frecuencia?

Los puntos obtenidos por la microcomputadora de un solo chip o el muestreo del sensor son todos discretos y, en el dominio del tiempo, la integración de los puntos discretos es la suma.

Para la integración en el dominio de la frecuencia, la matriz del dominio del tiempo debe transferirse al dominio de la frecuencia a través de la transformada rápida de Fourier (FFT), y luego a través de la naturaleza integral de la transformada de Fourier, después de realizar la integración y el filtrado en el dominio de la frecuencia, la transformada inversa de Fourier IFFT se utiliza para volver al dominio del tiempo, y la matriz obtenida en este momento es el resultado de la integración de la matriz del dominio del tiempo. El principio de la transformada de Fourier no se repetirá aquí. La función general es descomponer la forma de onda de una señal en el dominio del tiempo en la superposición de varias señales de frecuencia única. En términos sencillos, es aproximar la forma de onda de la señal original a través de la superposición de infinitas ondas sinusoidales con diferentes amplitudes y frecuencias, y el espectro obtenido por la transformada de Fourier es la amplitud correspondiente a estas ondas sinusoidales de frecuencia diferente. Aquí hay dos animaciones para una fácil comprensión.

La integración en el dominio de la frecuencia requiere el uso de las propiedades integrales de la transformada de Fourier:

un punto

integral cuadrática

Estas dos fórmulas colocan la integración en el dominio del tiempo en el dominio de la frecuencia y eliminan el signo integral, que parece más complicado, de hecho, es relativamente simple si lo miras de una variable a la otra.

Cómo implementar la integración en el dominio de la frecuencia

Usar un lenguaje de programación para describir las propiedades integrales de la transformada de Fourier puede parecer complicado, pero en realidad solo es necesario averiguar cada elemento de la fórmula por separado.

Los siguientes pasos se refieren al quinto capítulo de integración de dominio de frecuencia en "Aplicación de Matlab en procesamiento de señales de vibración" (Wang Ji).

1. Obtener matriz de dominio de tiempo

 Suponiendo que la frecuencia de muestreo sf de la aceleración es de 1 kHz, es necesario recopilar datos durante un período de tiempo para obtener una matriz en el dominio del tiempo. Para facilitar el cálculo de FFT, nfft toma una potencia de 2 puntos de muestreo, como 1024 puntos;

2. Calcular la FFT 

Realice la transformada rápida de Fourier FFT en estos 1024 puntos para obtener el espectro de frecuencia, que es F(ω) en la fórmula anterior.Después de tomar la longitud del módulo de F(ω), encontraremos que el gráfico es simétrico alrededor de 500 Hz (el primer punto es F(0), asimétrico), como se muestra en la figura:  

3. Calcular la matriz ω

 Para obtener la matriz ω, primero debe calcular el intervalo de frecuencia df, porque la frecuencia de muestreo sf rate es 1000 Hz y la longitud de toda la matriz es 1024, por lo que df=sf/nff, la unidad (Hz/s), al calcular df, los puntos de tiempo muestreados en el dominio del tiempo y los puntos de frecuencia en el dominio de la frecuencia son uno a uno. 000Hz=1ms, y el intervalo de frecuencia en el dominio de la frecuencia es 1000/1024= 0.977Hz, el intervalo entre cada valor del espectro obtenido por nuestra FFT es 0.977Hz, y 1024 puntos corresponden a 0~1000Hz. La matriz ω también es simétrica (o centrosimétrica) y se divide en vectores de frecuencia circular discretos positivos y negativos. Primero convierta el intervalo de frecuencia df recién obtenido en un intervalo de frecuencia angular dω, dω=2π*df. La fórmula de cálculo de la matriz ω es la siguiente, donde n es el número de integraciones:

 

 La matriz ω de la primera integración y la matriz ω de la segunda integración se muestran en la figura:

 

4. Número imaginario j

Después de obtener la matriz ω, es hora de procesar j, j es un número imaginario unitario y el cuadrado de j es -1. En la fórmula integral, F(ω) se divide por j, y j representa el cambio de fase en el dominio de la frecuencia. Cada vez que se multiplica j, gira 90 grados en el sentido contrario a las agujas del reloj, y cada vez que se divide j, gira 90 grados en el sentido de las agujas del reloj. Es decir, la primera integración en el dominio del tiempo debe girarse 90 grados en el sentido de las agujas del reloj después de transferirse al dominio de la frecuencia, y la segunda integración debe girarse 180 grados en el sentido de las agujas del reloj.

5. Transformación del dominio de la frecuencia para la integración 

 La transformación en el dominio de la frecuencia es el resultado de FFT en el segundo paso (es decir, 1024 números complejos) dividido por la matriz ω a su vez.

6. Transformación de fase para la integración 

 El paso 4 menciona que la integral primaria se gira 90 grados en el sentido de las agujas del reloj y la integral secundaria se gira 180 grados en el sentido de las agujas del reloj. La transformación de fase es rotar cada número complejo de la matriz de números complejos obtenida en el paso 5. Suponga que la parte real es real y la parte imaginaria es imag.En una integración, la parte imaginaria es igual a la parte real imag=real, y la parte real es igual a la parte imaginaria negativa real=-imag, en la segunda integración, la parte real es igual a la parte real negativa real=-real, y la parte imaginaria es igual a la parte imaginaria negativa imag=-imag.

7. Filtrado

 En este punto, si pasa al paso 8 sin filtrar, puede obtener el resultado de la segunda integración en el dominio del tiempo. Si desea filtrar las partes de baja y alta frecuencia, puede establecer directamente en cero los primeros números complejos y los últimos números complejos en la matriz de números complejos obtenida en el paso 6. Suponga que necesita filtrar la parte debajo de Fmin=10 Hz, primero calcule qué punto ni=Fim/df+1, 10/0.977+1≈11 a 10 Hz, es decir, establezca los primeros 11 números complejos en la matriz de números complejos obtenida en el paso 6 a 0, y lo mismo ocurre con el filtrado de altas frecuencias.

Complemento: el método anterior en realidad usa una función de ventana rectangular. Si desea lograr diferentes efectos de filtrado, puede considerar otras funciones de ventana, como la ventana de Hanning, la ventana de Hamming, la ventana de Gauss, etc.

8. IFFT de regreso al dominio del tiempo

 Finalmente, la matriz compleja procesada se vuelve a convertir al dominio del tiempo mediante IFFT para obtener el resultado de la integración.

clear;
clc;
close all hidden;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fno = 'output.txt';
fid = fopen('1.txt','r');
x = fscanf(fid,'%f',[1,inf]);
status = fclose(fid);
 
sf = 1000;            %采样频率
fmin = 1;           %最小截止频率
fmax = 200;           %最大截止频率
c = 9810.5;           %单位变换系数
it = 2;               %积分次数
 
sx = '时间';          %横坐标标注
sy1 = 'y1';           %纵坐标标注
sy2 = 'y2';           %纵坐标标注
 
n=length(x);                    %待分析数组长度
t=0:1/sf:(n-1)/sf;              %建立时间向量
nfft=2^nextpow2(n);             %大于并接近n的2的幂次方的FFT长度
y=fft(x,nfft);                  %FFT变换
 
df=sf/nfft;                     %计算频率间隔(Hz/s)
ni=round(fmin/df+0.5);          %高通频率截止点=最小截止频率/时间步长t+1
na=round(fmax/df+0.5);          %低通频率截止点=最大截止频率/时间步长t+1
dw=2*pi*df;                     %圆频率间隔(rad/s)
w1=0:dw:2*pi*(0.5*sf-df);       %正离散圆频率向量
w2=-2*pi*(0.5*sf-df):dw:-dw;    %负离散圆频率向量
w=[w1,w2];                      %连接w1,w2
w=w.^it;                        %以积分次数为指数,建立圆频率变量向量
subplot(2,2,2);
plot(abs(y));
 
a=zeros(1,nfft);                %进行积分的频域变换
a(2:nfft-1)=y(2:nfft-1)./w(2:nfft-1);
subplot(2,2,4);                 %绘制积分前的时程曲线图形
plot(abs(a));
 
if it==2
    y=-a;                       %进行二次积分的相位变换
else
    y = imag(a) - 1i*real(a);   %进行一次积分的相位变换
end
 
a=zeros(1,na);                  
a(ni:na)=y(ni:na);              %消除指定正频带外的频率成分
a(nfft-na+1:nfft-ni+1)=y(nfft-na+1:nfft-ni+1);%消除指定负频带外的频率成分
 
y=ifft(a,nfft);                 %IFFT变换
y=real(y(1:n))*c;               %取逆变换的实部n个元素并乘以单位变换系数为积分结果
subplot(2,2,1);                 %绘制积分前的时程曲线图形
plot(t,x);
xlabel('时间(s)');
ylabel('加速度(g)');
grid on;
subplot(2,2,3);                 %绘制积分前的时程曲线图形
plot(t,y);
xlabel('时间(s)');
if it==2
    ylabel('距离(m)');
else
    ylabel('速度(m/s)');
end
grid on;
fid=fopen(fno,'w');             %输出积分后的数据
for k=1:n
	fprintf(fid,'%f/n',y(k));
end
status=fclose(fid);

Adjunte el código MATLAB, código de lenguaje C, haga clic en el enlace a continuación

Algoritmo de lenguaje C de desplazamiento de vibración integral cuadrático de dominio de frecuencia de aceleración basado en STM32F4

Implementación de integración de dominio de frecuencia de aceleración basada en módulos STM32F407 y JY901 (proyecto completo)

limitación

Sin embargo, la idea de cálculo anterior se limita al cálculo del desplazamiento de la vibración, es decir, el desplazamiento total es 0. Cuando el desplazamiento total no es 0, nuestro resultado integral eventualmente será igual a 0. Echemos un vistazo a los resultados de la simulación.

La figura 1 son los datos originales, la figura 3 es la integración de la figura 1 y el resultado de la integración no es 0. La figura 2 es la forma de onda de la IFFT después de eliminar la señal de frecuencia más baja (es decir, la parte de CC) después de la FFT. Se puede ver que todo el gráfico se desplaza hacia abajo una cierta distancia. La figura 4 es el resultado de la integración de la figura 2, que finalmente es 0, lo que es muy inconsistente con el resultado de la integración real. Porque de acuerdo con la fórmula de la transformada de Fourier , cuando ω=0, se puede ver que F(0) en sí es igual a la integral del gráfico de dominio del tiempo, y se establece directamente en 0 cuando se filtran las frecuencias bajas, y el resultado final de la integral es, por supuesto, 0, lo que significa que la integración en el dominio de la frecuencia anterior solo es aplicable en el caso en que la integral total sea 0.

Si se filtra el componente de CC, la integral final es 0, y si no se filtra el componente de CC, no se puede eliminar el error acumulativo después de la integración de la aceleración, por lo que son contradictorios. Por lo tanto, la integración en el dominio de la frecuencia no es adecuada para la integración de la aceleración donde el desplazamiento total no es cero.

desplazamiento distinto de cero

关于非零位移的问题,首先我们要清楚加速度计累积误差的来源,加速度计都带有一定的线性偏移,即需要通过kx+b的方法进行校正,而其中的b正是引起加速度积分累积误差的罪魁祸首,因此需要对加速度进行线性补偿,可通过Matlab中的lsqcurvefit,非线性拟合文中提到的方法确定k和b,如果在要求不是很严格的场合,只需要对b进行补偿即可,方法是在确定系统处于静止状态时(通过其他方式确定的系统状态),首先令速度为零,然后将一段时间内的加速度取平均即可作为补偿值b,每隔适当时间校正一次b这样就能保证速度基本无累积误差,然后用同样的方法计算位移。

Sin embargo, el método anterior todavía tiene errores relativamente grandes, y el acelerómetro por sí solo obviamente no puede obtener con precisión el desplazamiento, por lo que es necesario agregar otros sensores. Para un sistema que se mueve en un avión, se recomienda agregar GPS, si es un sistema que se mueve en dirección vertical, se puede agregar un barómetro, y luego los dos conjuntos de datos se fusionan a través del filtrado de Kalman para obtener desplazamiento, velocidad y aceleración más precisos. Para conocer métodos específicos, consulte esta publicación de blog: Cálculo de la aceleración, la velocidad y la altura mediante el filtro de Kalman de segundo orden

Supongo que te gusta

Origin blog.csdn.net/m0_38012497/article/details/128529761
Recomendado
Clasificación