Cálculo de número de marcha con RPM y Velocidad


 



Vamos a explicar como crear un display de marchas para una moto ó coche mediante un canal matemático, el cual usa la velocidad del vehículo y las rpm motor. Normalmente resulta dificil intrumentar la caja de cambios, pero hoy en día es casi inmediato disponer de la señal de velocidad ruedas y velocidad motor.
Muy útil para motos.

Primero se estudiará el sistema mecánico el cual une la salida motor con las ruedas, para ello nos ayudamos del siguiente diagrama:



siendo RPM=revoluciones por minuto, Speed=velocidad del vehículo, Rwheel= el radio de la rueda.
Por lo cual, resulta sencillo observa que si disponemos la velocidad en rueda y la de motor, nuestra única incognita será el ratio entre ambas (caja cambios + grupo final).

En youtube se puede ver un video subido por Herbold de cómo obtener el dato de grupo final experimentalmente http://www.youtube.com/watch?v=i_Enyf67KTs:





Veamos algunos ejemplos reales (fuente wikipedia), Corvette C5 Z06:
  1st  => 2'97
  2nd => 2'07
  3rd => 1.43
  4th => 1
  5th => 0'84
  6th => 0'56
  Final drive (diferencial)=> 3.42

Esto significa, por ejemplo, cada 2.97x3.42=10.16 vueltas motor en primera, gira una de rueda (1:10.16)

Veamos el tipo de señal que obtenemos usando dicho canal matemático. Podemos observar la señal azul, la cual corresponde a nuestro canal calculado. Se observa, que la señal no es limpia, y sobretodo si tenemos patinaje de ruedas (wheelspin) ó en el momento de pisar embrague. Veáse un ejemplo de wheelspin en la parte rodeada de la figura. También vemos la señal rosa, la cual proviene de un sensor rotativo en el selector de marchas (barrel), la cual es perfecta.

 
Estas señales son reales grabadas con un sistema adquisición de datos.


Una mejora de la señal, se consigue aplicando un filtro de tipo Moving Average. En la figura, se ha aplicado dicho filtro tomando 5 muestras.

Por ejemplo, se podría calcular dicho canal cada 50 Hz (20 ms) gracias a un timer, y el pseudocódigo sería algo como:

función cada 20ms{
   si (Velocidad >0)
   {
       n=(3.6*Radio_rueda*3.14159*RPM)/(30*Speed);
   }

   filtro1=filtro2;
   filtro2=filtro3;
   filtro3=filtro4;
   filtro4=filtro5;
   filtro5=n;

   Ratio= (filtro1+filtro2+filtro3+filtro4+filtro5)/5;
}


RPM =revoluciones por minuto del motor
Velocidad=Km/h
Radio_rueda= en metros



Una vez obtenido el ratio (caja cambios + grupo final), ya sabemos en que marcha nos encontramos, por lo cual sólo quedará mostrarla al usuario. Ya que con el ratio +/- un cierto margen histeresis, tendremos directamente la marcha actual.

Para conseguir los dos canales necesarios (velocidad y rpm), normalmente nos encontramos dos tipos de tecnologías en los sensores utilizados en automoción:
- Sensores inductivos (pasivos)
- Sensores Hall (activos)



Ejemplo señal sensor inductivo


Los primeros generan un voltaje cuya frecuencia y amplitud son proporcionales a la velocidad.
Para poder introducir este tipo de señal a un microcontrolador, deberemos usar una etapa de adaptación de señales, como puede ser un lm1815 ó etapa con AO para convertir a señal de pulsos tipo TTL. Este tipo de etapas suelen tener el zero-crossing (detectan el paso por cero) y la histeresis ajustables. Gracias a ésto último, se puede reducir el efecto del ruido que suelen tener dichas entradas.

En los sensores hall, nos podemos encontrar algunos que su salida tiene un offset DC sobre la señal de pulsos. Para eliminarla, podemos usar un condensador en serie con la señal. Si la señal no tiene la amplitud suficiente (mayor de 2,5 V), tendremos que adaptar para hacer ésto posible, por ejemplo con la ayuda de transistores.

Las RPM, a parte de poder recogerlas del sensor cigueñal motor, podríamos sacar de una de las fases del alternador. Hay que tener en cuenta, que la velocidad motor y la velocidad del alternador no es la misma, ya que van unidas por una polea con ratios típicos de 1:2.2; 1:3 hasta 1:5.
La frecuencia medida en una de las fases será => f=p*n/60 , siendo p el número de polos (típicamente 6 ó 8) y n la velocidad del alternador.
Algunos alternadores vienen ya preparados con dicha señal (Terminal W).

La mayoría de los coches, disponen señal de tacómetro en los conectores de la radio, en el cuadro,... por lo que es una posible fuente de la señal de la velocidad del vehiculo.

También se puede disponer de las rpm de las señales de control de los inyectores.

Para mayor información de donde sacar dichas señales, puedes visitar el proyecto MPGuino:

Cabe destacar, que la señal cuadrada debe superar aproximadamente Vcc/2  para que nuestro micro ATMega lo reconozca.

Para aprender un poco más de los sensores utilizados en automoción, podemos visitar el siguiente link:

La ventaja principal entre sensores hall e inductivos, es que los primeros son capaces de detectar bajas velocidades e integran la electrónica de adaptación de la señal obteniendo directamente pulsos. También son mejores ante ruido eléctrico, ya normalmente existe distancia entre los sensores inductivos y sus etapas de adaptación de señales. Cabe recordar el uso de una resistencia de pull-up con los sensores hall. Si se va a puentear dicha señal del cableado del coche o moto, ya dispondrá de ella la ecu motor.
Dichas señales deben entrar a las entradas de interrupción de nuestro Arduino. Conviene proteger dichas entradas con una resistencia en serie de gran valor ,ya que las entradas de nuestro micro disponen de "clamping diodes", los cuales convierten señales elevadas de voltaje en señal cuadrada de valor igual al de alimentación +/- 0.5V. Atmel recomienda que por dichos diodos no circulen más de 1mA.
Si es posible, añadir un diodo tipo TVS ó zener entre señal y masa para proteger de transitorios a nuestra entrada.


Aunque no tenga nada que ver,este video es de regalo.... cómo funciona un diferencial.






2 comentarios: