Acelerómetro lineal en una plataforma giratoria

Quiero medir la velocidad lineal de un vehículo poniendo el acelerómetro en su rueda. Suponga que el vehículo se mueve a una velocidad de 70 KMPH y su rueda tiene un radio (R = Radio) de 30 CM. Hice esta analogía, si el acelerómetro se coloca en la rueda en la posición R/2 cuyo eje Z ahora es ortogonal a la rueda y supongamos que no hay inclinación en los ejes X e Y.

Eje de imagen del sensor

La lectura del acelerómetro en X e Y debe dar el acelerómetro neto que es a_traslacional + a_rotacional + TIGA = (R/2) alfa + (R/2) omega ^2 + TIGA donde aplha es la aceleración angular y omega es la velocidad angular y TIGA es la aceleración gravitacional inducida por Tilt.

Si mi observación anterior es correcta, ¿cómo puedo calcular el factor TIGA? ¿Cambiará con los grados de rotación? ¿Cómo equilibrarlo?

Para calcular la velocidad (para correlacionar con 70 KMPH) debo integrar el valor de aceleración en ese período. ¿En este caso? ¿Qué valor de aceleración de los datos del acelerómetro se debe considerar? ¿Se debe eliminar el factor a_rotacional y TIGA de los datos antes de la integración?

¿Por qué no usar simplemente un giroscopio MEMS YAW? analog.com/library/analogDialogue/archives/37-03/gyro.html
¿Quiere decir simplemente multiplicar la salida del giroscopio con el radio de la rueda y obtenemos la velocidad?

Respuestas (4)

Esto es lo que vas a leer de tu acelerómetro:

a r = R 2 ( 2 porque ϑ ϑ ¨ ϑ ˙ 2 ) + gramo pecado ϑ a t = R 2 ( ϑ ¨ 2 pecado ϑ ϑ ¨ ) + gramo porque ϑ
y quieres conseguir
v = R ϑ ˙
Si su velocidad es lo suficientemente alta ( v = R ϑ ˙ 2 gramo R 8.7 k metro / h ) puede ignorar los otros dos factores y asumir v = 2 a r / R (este es el caso de un viaje normal en coche).

De todos modos, la componente radial se puede filtrar fácilmente para obtener solo ϑ ˙ , como la frecuencia de ϑ es mucho más alta que la frecuencia de v .

Le sugiero que simule estas ecuaciones e intente encontrar una buena estrategia para sus necesidades antes de continuar. El siguiente es un código matlab para simular un perfil de velocidad experimental.

v = [20*ones(1,50*1e4) 20*2.^(-(1:(50*1e4))/(50*1e4)) 10+20/(50*1e4)*(1:(50*1e4)) 30*ones(1,50*1e4)];
plot(v)
disp('Velocity 72kph exponentially decreasing to 36kph then linearly increasing to 144kph')
pause

x = cumsum(v)/1e4;
theta = x / R;
xs = x + R/2*cos(theta);
ys = R/2*sin(theta);
xsd = diff(xs)*10000;
xsdd = diff(xsd)*10000;
ysd = diff(ys)*10000;
ysdd = diff(ysd)*10000+9.81;
ar = xsdd .* cos(theta(2:end-1)) + ysdd .* sin(theta(2:end-1));

plot(ar)
disp('Radial acceleration')
pause

plot(R*sqrt(-ar/R*2))
disp('Velocity recovered from radial acceleration')
pause
Gracias. ¿Puede decirme cómo llegó a calcular la primera parte de At en la expresión (¿por qué está restando omega?). Cualquier referencia!! Como el acelerómetro ahora está en reposo y su posición está en el eje + Y, solo hay un componente de aceleración que es la gravedad. por lo tanto, debería obtener A radial = g y tangencial = 0. Usando la ecuación anterior, es diferente.
También me gustaría saber, ¿cómo asumiste Theta, con respecto a qué eje?
Usé su convención de ángulos positivos en el sentido de las agujas del reloj (invirtiendo así el signo de las derivadas), yendo del eje x al eje y en su imagen.
Ahora, si asume el acelerómetro en el eje Y en mi imagen y está en reposo, la única aceleración que debería tener es la gravedad, en theta = 90, que está en la dirección radial y no debería haber componente tangencial (debido a que no rotación). ¿Por qué no obtenemos g como Ar y 0 como At?
Con respecto al filtrado, planeo seguir adelante como se menciona en esta referencia. Ver enlace
En At, ¿no debería ser como R/2* alfa + R/2* (omega)^2 + gsin(theta)? Como veo, mencionaste en la segunda parte (R/2 *(-omega)). donde omega es la derivada temporal de theta.
Cambié las aceleraciones de acuerdo con la convención de nomenclatura en inglés correcta.
enlace _ En el siguiente documento, si hace referencia a las ecuaciones 1 y 2, verá lo que quiero decir. si considera (theta') ^ 2 en lugar de (theta'), entonces creo que será correcto. Amablemente corrígeme, si estoy equivocado.
Tuve una inversión de signos en mis ecuaciones... ahora todo está bien.
¿Puedes decir amablemente cómo viene este componente 2cos (theta) y 2 sin (theta)?
Encontré esta ecuación más correcta. ¿Puedes comparar esto con tus conjuntos de ecuaciones y dar tu opinión? EquationLink
Simulé mis ecuaciones y estoy seguro de que son correctas. Puede intentarlo usted mismo usando el código que publiqué (si no tiene matlab, puede probar con octave o scilab ya que no he usado ninguna función de caja de herramientas). Los coeficientes de ϑ ¨ surgen considerando que el origen del marco de referencia se está moviendo ( X 0 = v t ) así que asumí que la posición del sensor era X s = R / 2 porque ϑ + R ϑ , y s = R / 2 pecado ϑ , diferencie dos veces esto, proyecte en el eje normal y tangente, y tendrá mis ecuaciones.
Sí, entonces tienes toda la razón. Gracias. En su comentario "De todos modos, el componente radial se puede filtrar fácilmente para obtener solo ϑ˙, ya que la frecuencia de ϑ es mucho más alta que la frecuencia de v". tenemos aquí ϑ˙(omega) y también ϑ˙˙ (alfa) en la ecuación de aceleración radial. ¿Cómo diferenciar entre ϑ˙ (omega) y también ϑ˙˙ (alfa)?
Cuando aplica un filtro de paso bajo, todo lo que se multiplica por pecado ϑ o porque ϑ está atenuada, por lo que no tendrá ϑ ¨ contribuir después del filtrado.
Codelink ¿Puede decirme en mi código cómo filtrar aquí con A_r, ya que puede ver un gran ruido en la parte A_r? ¿Qué filtro debería usarse para este perfil de verlocity? ¿Cómo recuperar la velocidad de A_r usando el método de filtrado?
Olvidó el factor de escala en las líneas 3, 12 y 13. El vector v se muestrea a 10 kHz, debe tener esto en cuenta cuando integre (cumsum) o diferencie (diff). Si aún tiene dudas, por favor, abra otra pregunta ya que es difícil dar respuestas en los comentarios.

En realidad, este no es un problema sencillo. La regla de la cadena te morderá donde no lo esperas. Lo crea o no, usaría un filtro de paso bajo para la aceleración centrípeta, usaría eso y la circunferencia del neumático para calcular la velocidad angular del neumático, y lo usaría para la velocidad.

¿Me puede sugerir sobre la función LPF? ¿Qué frecuencia de corte, qué frecuencia de muestreo y qué orden deben usarse para LPF? ¿Qué debo obtener después de LPF de aceleración radial? Si será omega, ¿debería simplemente multiplicar el radio para obtener la velocidad (como v = radio * omega)

Obtienes un buen componente de la aceleración debido a la rotación. Simplemente mediría esa frecuencia y la velocidad se sigue directamente de la circunferencia de la rueda. Esto tiene la enorme ventaja de que no se necesita calibración de la posición y orientación del sensor.

Para hacer esto, calcule el valor medio, réstelo de la señal y encuentre los cruces por cero del resultado. El tiempo entre cruces positivos sucesivos es una buena medida del tiempo de una revolución. Es posible que deba aplicar una pequeña cantidad de filtrado de paso bajo para asegurarse de obtener solo un cruce por revolución.

O haga una FFT de la señal y el componente de frecuencia más grande es lo que desea (el suavizado es gratis).

Gracias. En la parte de aceleración radial, si tomo la FFT, tendré componentes theta, theta' (omega), theta''(alfa). Como theta, tendrá máxima frecuencia, luego omega y luego alfa. ¿Quiere decir que usando un filtro de paso de banda deberíamos extraer el theta '(Omega)?
Sí, creo que el componente más significativo y de alta frecuencia te dará $\theta$. Esto debería ser muy obvio cuando miras la FFT.
No estoy familiarizado con FFT, pero debería darme la representación de la señal en el dominio de la frecuencia. Entonces aquí obtendría toda la frecuencia según la ecuación. Como theta tendrá una frecuencia más alta, pasando por LPF, obtendremos solo la componente de velocidad (es decir, omega). Ahora esta componente multiplicada por el radio nos daría la velocidad lineal. ¿Es correcto este enfoque?
@Student15 sí, eso es exactamente correcto. Y dado que su FFT devuelve una matriz de amplitudes (complejas) ordenadas por frecuencia, simplemente puede tomar la magnitud y buscar el primer gran pico comenzando desde el extremo superior. Una vez que haya observado un par de espectros, debería ser obvio ver qué procesamiento necesitaría.

La velocidad es igual a la velocidad de rotación multiplicada por el radio, sugiero usar esta fórmula en su lugar para su aplicación, por lo que solo tiene que hacer los cálculos en lugar de usar más electrónica. Entonces, usa la fórmula: aceleración = (alfa)(radio) + (omega)^2(radio) y resuelve para omega.

¡Sí, pero no consideró el componente de gravedad (TIGA)! Lo cual tendrá un efecto significativo.