Una idea para el monitoreo de vibraciones a bajo costo: use su teléfono inteligente.
Hice esto recientemente por curiosidad. Encontré una aplicación que registra el acelerómetro de mi teléfono en un archivo de texto. Dejando el teléfono sobre una mesa, pude detectar la vibración de un generador diesel en el sótano de la oficina. La vibración del generador fue solo perceptible solo por una persona, y el teléfono podría detectarlo luego de un procesamiento posterior en Octave / Python / Matlab.
Puede tomar medidas en algunos lugares y trazarlas en un mapa para mostrar el origen de la vibración.
El teléfono registra hasta 200 Muestras / s, suficiente para la vibración que está buscando. Y los resultados están en m.s-2, por lo que incluso si esto no es una medida calibrada trazable, le da algunas cifras para jugar.
Editar: aquí está el resultado, del procesamiento del acelerómetro de mi teléfono inteligente. La aplicación de Android se llama Accelerometer Monitor , aunque puede haber otras. Puede ver la vibración del generador, y la forma en que se desvanece cuando el generador se apaga:
El código para trazar esto se ve así, funciona en Octave (software libre), también debería funcionar en Matlab.
Necesité eliminar los encabezados y el pie de página del archivo de texto.
windowsize = 1000; % samples in a window
A = dlmread('generator.txt',' '); % load the cleaned-up file
B = detrend(A(200000:end-100,1:3),'linear'); % remove DC and drift
sb = size(B,1); % size of B
nw = floor(sb/wind); % number of windows in the file
dt = mean(A(:,4)); % delta-t in ms
freq = linspace(0,500/dt,wind/2-1); % frequency axis for plotting
tim = (1:(nw))*wind*dt/1000; % time axis for plotting
clear F
for a=1:nw
temp = abs(fft(B(((a-1)*wind+1):(a*wind),:))).^2;
F(:,:,a) = (( temp(2:(wind/2),:) + temp((wind):-1:(wind/2+2),:) )/wind);
end
figure(57);
pcolor(tim,freq,squeeze(10*log10(F(:,3,:)))); shading flat;
cax=caxis; caxis([cax(2)-25 cax(2)]); colormap(hot);
ylabel('Frequency, Hz'); xlabel('time, s');
title('Vibration measurement');
El código anterior se hace más complicado de lo que debe ser, porque quería un espectrograma. Para obtener un gráfico simple del espectro, solo tome el pie de unos pocos segundos de datos, como este:
A = dlmread('acceleration.txt',' '); % load the data
F = fft(A(1:2000,3); % choose a channel, Z had the most vibration for me
F = abs(F(2:1000))+abs(F(1999:-1:1001)); % add positive and negative frequency
plot(10*log10(F));
Octave está disponible para Windows, gratis.
Editar: olvidé mencionar en el código anterior, que los datos de aceleración de un teléfono inteligente no son necesariamente a intervalos regulares en el tiempo. Podría salirse con la suya en un pequeño espectrograma, pero realmente necesita volver a muestrearlo antes de realizar la DFT.