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.
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?
Esto es lo que vas a leer de tu acelerómetro:
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 .
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
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.
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).
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.
Andy alias
estudiante15