Medir frecuencia de vibracion (Hz) con acelerometro

Hola a todos,

Aunque es la primera vez que escribo por aquí, os leo todos los días. Y siempre que realizo una busqueda en google llego a este foro.

Por casualidad el dia 6 abril estuve en Roma coincidiendo con el "arduino day" y tuve la oportunidad de comprar un arduino UNO starter kit, el cual

Os explico el proyecto que tengo en mente y mis dudas:

Soy Ingeniero y arquitecto y tengo que realizar un estudio de un forjado que ha sido reforzado. Estamos ante un forjado de madera que ha sido reforzado con una capa de compresion de hormigon de 5 cm. El caso es que los usuarios se quejan porque el forjado vibra y resulta incomodo. Siguiendo la normativa especifica (eurocode 3 y algunas normas suizas y alemanas de recomendacion) he podido encontrar una table donde aparecen valores de frecuencia de vibracion que tiene que tener un forjado dependiendo de su uso. Y he llegado a la conclusion que para que el forjado cumpla con norma tiene que tener una frecuencia mayor a 3,4 Hz. He calculado a mano la frecuencia que tendria teoricamente basandote en la rigidez del forjado y en su flecha. Y obtengo un valor aproximado a 5Hz, que en teoria cumple la norma. Pero todos sabemos que esto no es verdad, esto solo lo obtendriamos en el mejor caso. Entonces quiero medirlo empiricamente.

Mi idea es conectar un acelerometro al forjado y golpear este con un golpe seco para obtener su frecuencia natural de vibracion. Hasta aqui todo muy facil. Ahora viene mi pregunta:

He leido todos los post sobre la utilizacion de acelerometros con arduinos que he podido encontrar en google y aqui. Pero en todos los projectos que he visto al leer el valor del acelerometro este te devuelve un valor que equivale a la fuerza G. Pero yo quiero obtener un valor en Hz. Es posible obtener un valor de vibracion en Hz a traves de un acelerometro conectado a arduino?

Tengo en mente comprar uno de estos acelerometros:

  • MMA7260
  • ADXL335
  • minisense 100??

Cual me aconsejarian comprar?

Muchas gracias!. Solo necesito una respuesta si es posible obtener un valor en Hz con acelerometro.

La fuerza de la gravedad se suma a la aceleración debida a la vibración. Se me ocurre tomar valores del acelerómetro y luego tratarlos en una hoja de cálculo donde puedes representarlos en una gráfica. En lugar de ver una vibración alrededor del cero lo verás alrededor del valor de G. Lo que no puedo decirte si las variaciones registradas serán de suficiente amplitud para distinguirlas.

Sobre el acelerómetro no sé decirte, el de mayor resolución que no se sature con la aceleración producida por la vibración que claro está no tengo ni idea de cuánta puede ser.

Cheyenne:
La fuerza de la gravedad se suma a la aceleración debida a la vibración. Se me ocurre tomar valores del acelerómetro y luego tratarlos en una hoja de cálculo donde puedes representarlos en una gráfica. En lugar de ver una vibración alrededor del cero lo verás alrededor del valor de G. Lo que no puedo decirte si las variaciones registradas serán de suficiente amplitud para distinguirlas.

Sobre el acelerómetro no sé decirte, el de mayor resolución que no se sature con la aceleración producida por la vibración que claro está no tengo ni idea de cuánta puede ser.

Muchas gracias por tu respuesta. Creo que voy a comprar un acelerometro y voy a investigar un poco con el. Si encuentro la solucion, la posteare aqui.

Hablando un poco en clave "física-ficción", pues de hardware voy muy pez:
Evidentemente, para tus cálculos, tu programa necesitará medir la aceleración junto con el tiempo transcurrido en el momento de cada medida.
Sin conocer las características de los acelerómetros, no creo que se adapte mucho al uso que le quieres dar, pues el movimiento vibratorio que describes me da que va a estar fuera de los rangos de frecuencia/amplitud de movimiento detectables dado el uso para el que están pensados los acelerómetros.
Yo tal vez hubiera encaminado mis pasos a "escuchar" o "ver" esa vibración, es decir, usar algún tipo de mecanismo bobina/inductor o piezoeléctrico o luz/sensor; pero no me hagas demasiado caso que sólo intento abrir puntos de vista.

Hola juanlu

Como tu soy Arquitecto, aunque yo estoy investigando arduino y los acelerometros para uso ludico, en este caso la telemetria en coches de Slot (scalextric).

Me temo que con un acelerometro no vas a conseguir medir vibraciones de ese ámbito.

Ten en cuenta que hablamos de Hz y los acelerometros se leen cada 500 200 o 100 ms. milisegundos para representar una grafica.
no se en que rango pueden medir pero te vas a encontrar ademas con la limitacion del arduino. (tampoco se tanto de esto)

Se me ocurre que quizas si usas microfonos estarás ma cerca ?????

Yo cuando empece con Arduino encontre unos sensores extensometros (recuerdas de fisica y de estructuras?) y pense por fin voy a poder usar uno ja ja ja . Aun no lo he intentado. cualquier dia de estos mido una flecha de verdad.
La mitad de las cosas que se estudian en la carrera son de mentira, lo del modo de vibracion de un edificio por ejemplo. hay manera de comrpobarlo? dos veces? y que de lo mismo que en el calculo teorico?

Saludos.

anggar:
Me temo que con un acelerometro no vas a conseguir medir vibraciones de ese ámbito.

Ten en cuenta que hablamos de Hz y los acelerometros se leen cada 500 200 o 100 ms. milisegundos para representar una grafica.
no se en que rango pueden medir pero te vas a encontrar ademas con la limitacion del arduino. (tampoco se tanto de esto)

No creo que sea así. juanlu85 habla que la frecuencia puede estar en torno a 5 Hz. Eso son 200 ms. Hay acelerómetros con tiempos de lectura bastante inferiores. El que yo uso en un IMU por ejemplo el código está programado para dar lecturas cada 20 ms. Y en otras tarjetas sé que toman medidas cada 10 ms e incluso cada 5 ms.

Por el Arduino tampoco creo que haya problema, si no se le programa para hacer muchas más cosas yo creo que tendrá capacidad de sobras.

Retornando al punto teórico del que partía anteriormente, creo que además de la frecuencia de muestreo, habría que tener en cuenta la amplitud del movimiento de vibración que va a tener la estructura versus la que es capaz de detectar el acelerómetro. Además también tengo curiosidad :wink: ¿Qué amplitud puede tener la vibración de esa estructura?¿milímetros, centímetros...?

Con un cálculo rápido podemos hacernos idea de la magnitud que debe tener la amplitud de la vibración para que sea detectado por el acelerómetro.
Si tomamos el ADXL345 vemos que tiene 13 bit de resolución para un rango de medidas de +-16 g. Esto son 32 g / 8192 = 0,0383 m/s2 de resolución. ¿Y cuál es la mínima amplitud que tendría que tener la vibración para ser detectado por este acelerómetro?
Partamos de la supuesta frecuencia de vibración del forjado de 5 Hz. La aceleración máxima del movimiento armónico simple es

a(máx) = A w^2 = A (2 pi f)^2 = 0,0383
A = 0,0383 / (2 pi f)^2 = 0,0383 / (2 * 3,1415 * 5) ^2 = 0,0000388 m = 0,0388 mm

Unas 4 centésimas de milímetro si no me he equivocado en las cuentas. Desde luego que justo con esta amplitud no recogeríamos ningún dato útil pero tal vez nos da una idea de por dónde vamos. ¿Qué amplitud puede tener la vibración de ese forjado ante un golpe fuerte? ¿Es comparable a esas 4 centésimas de milímetro?

Hola a todos de nuevo,

Lo primero: disculparme por no dar señales de vida despues de las maravillosas respuestas que me habeis dado.
En segundo lugar: gracias a todos por poner vuestro granito de arena.

El hecho de que me ausentara ha sido porque he estado buscando mis apuntes de cuando estaba en bachillerato, y re-estudiado el movimiento vibratorio armonico simple (m.a.s) [qué tiempos aquellos] el caso es que he llegado a una conclusion que creo que puedo obtener la frecuencia en Hz de una forma muy facil jaja o eso creo yo!.

Como bien han dicho por ahi arriba la unica forma que veo posible de elaborarlo es crear una grafica en el que se muestre la aceleracion que me da el acelerometro con respecto al tiempo. Y luego -aqui viene lo bonito- convertir esa grafica en Hz respecto al tiempo gracias a la " Transformada de Fourier".

Como? Pues mi intencion es conectar Arduino a LabView o a MatLab. He estado trasteando esta semana con los dos y he podido leer la informacion de un potenciometro y graficarla. Asi que cuando reciba el acelerometro (el viernes que viene) que mi madre me ha enviado desde españa, voy a hacer una pequeña prueba y leer la lectura del acelerometro, graficarla y apliclarle FFT para obtenerla en HZ.

Si creeis que estoy haciendo algo mas o teneis otra idea mejor, no dudeis en corregirme.

Muchas gracias a todos. Sois unos cracks!.

La verdad que no creo que el análisis de Fourier te aporte mucha información. Yo creo que lo que necesitas saber es la frecuencia fundamental, ¿no? Es la que hace cumplir la norma. Simplemente graficando los datos deberías de poder ver la frecuencia fundamental. No sé si los armónicos te pueden aportar algún tipo de información útil.

Hola Cheyenne,

lo que yo quiero es aplicarle la transformada de fourier a los datos obtenidos de la aceleracion,y asi obtener la Densidad Espectral de Potencia y representar esta con respecto al valor de la frecuencia. De esta manera podria obtener la frecuencia natural de vibracion, y en la grafica veriamos un pico que coincidiria con la primera frecuencia natural de vibracion.

Pero si conoces una forma mas facil, por favor explicamela, porque creo que la solucion que digo es mucho mas complicada.

Técnicamente no lo conozco ni tampoco domino el tema. Simplemente creo que si lo que buscamos es la frecuencia fundamental de resonancia ésta es fácil de ver y medir sobre los datos graficados.

amigo creo q te faltan varias consideraciones que pueden hacer que los resultados que obtengas sean erroneos, primero deseas registrar informacion a 5 hz los acelerometros tienen respuestas diferentes a distintas frecuencias por lo tanto no cualquier acelerometro registrara tan baja frecuencia. Segundo, el analisis de fourier es fundamental en este caso , de la forma de onda registrada es dificil en la practica que veas la frecuencia fundamental ya que provablemente los niveles de ruido confundan la onda. Otro tema adicional es la frecuencia de muestreo y los filtros, si utilizas un sensor arbitrariamente y modificas desde el arduino la taza de muestreo, lo mas provable es q tengas problemas de aleassing, es decir captures una frecuencia mas alta como uma de menor valor que arruine tus resultados, para solucionar esto debes profundozar en un filtro analogico que acondicione tu señal. Si quieres dar rapida solucio a detectar dicha frecuencia pide un servicio de analisis modal, esta rama de la ciemcia se dedica a la deteccion de frecuencias naturales. espero haber sido de ayuda. saludos

Alguien podria ayudarme con el programa de compilacion para el arduino para medir frecuencia de vibración de un compresor realizando la transformada de fourier??

hola , Q tal ?

Tengo un acelrometro ADXL335 y nesecito tomar muestras de vibracion por golpes o cambios brusco. ¿Que tal se comporta este acelerometro ?

Es decir o cual se adapta para tomar muestras de manera rapida y precisas.

help.

Saludos :slight_smile:

Hola,

La verdad no se nada de la resolucion de ese accelerometro, pero creo que podrias comprobar su precision de alguna forma. Lo que yo hice para comprobar la precision del mio fue: cogi un perfil HEB-100 de 1 metro de longitud. Le coloque el acelerometro y lo golpee para que vibrara a la primera frecuencia de vibracion, despues compare el resultado empirico con el calculo teorico de la frecuencia natural de vibracion. Y la verdad que quede sorprendido de lo precision que era.

Claro que hay que tener en cuenta muchos factores, como la colocacion de un filtro de paso bajo para obtener solo las frecuencias dentro del rango que quieras medir, anti-aliasing, etc, etc.

Yo registre los datos de las aceleraciones en matlab y luego le aplique la FFT para tener los resultados en funcion de la frecuencia.

Espero verte ayudado.

Un saludo.

juanlu85:
Muchas gracias!. Solo necesito una respuesta si es posible obtener un valor en Hz con acelerometro.

Buenas y santa, la respuesta es si :stuck_out_tongue: se que estoy tarde pero me gusta comenzar... por el principio :slight_smile:

Si me permites agregar, esto me recuerda a cuando estudiábamos física (en mi caso en la universidad). Hz en este contexto se refiere a la POSICION, y el acelerometro como su nombre lo indica mide la derivada de la derivada de la POSICION o sea la ACELERACION.

Ya metiéndonos en la matemática del movimiento armónico simple (Movimiento armónico simple - Wikipedia, la enciclopedia libre), como estamos todo el tiempo frente a ecuaciones trigonométricas (SEN y COS) y sus derivadas son también SEN y COS, las frecuencias también se mantiene, es decir que la frecuencia en Hz de la Posición es la misma que la de la aceleración!

Pasando a la implementación, graficando la señal, en los cruces por sero puedes medir el periodo y obtener la frecuencia fundamental.. si la señal tiene mucho ruido y no estan claros los cruces por cero, entonces puedes obtener la fundamental con la FFT, si usa matlab esta todo dicho el arduino puede hacer FFt pero no tine caso para esta aplicación.

Si me aprueban un presupuesto voy a estar trabajando con arduinos, acelerometros y vibraciones ( en omnibus) asi que les podre dar mas detales.

Saludos desde Santa Fe, Argentina.

hola a todos, estoy haciendo algo parecido, tengo que medir las vibraciones de un molino eolico y lo hago con un acelerometro mma7760 y un pic18f4550. queria saber si lograron hacerlo andar, yo anteriormente se me habia ocurrido que cada vez que cruce por cero iniciar un temporizador para calcular el periodo, pero mucho no he logrado, tiene mucho error. pudieron hacerlo de ora forma?