Sigo con la serie sobre OBD2.
Un aspecto algo más avanzado de los monitores OBD2 es la posibilidad de mostrar nuevos parámetros calculados a partir de los proporcionados por el fabricante. Más abajo adjunto un par de ejemplos que yo llevo instalados (en un XC60 T5): la potencia instantánea desarrollada y en qué marcha está engranada la caja de cambios.
Sin entrar en detalles, lo primero sería explicar que los diferentes parámetros que se leen vía OBD2 vienen identificados por un numerito que se llama su PID (Parameter ID). Podéis ver todos los PID posibles del estándar en esta página (https://en.wikipedia.org/wiki/OBD-II_PIDs). Los fabricantes no proporcionan todos, sino los que les da la gana. Volvo ofrece bastantes.
Por otra parte, los programas de OBD ofrecen la posibilidad de realizar pequeños cálculos con los parámetros que envía el coche. OBDLink, por ejemplo, lo hace mediante una función que se llama readSAEpid(xx), mientras que Torque usa una notación más sencilla, [xx], donde xx es el PID deseado.
1) Cálculo de la potencia desarrollada en HP. Este valor no lo proporciona el coche directamente, pero es inmediato de calcular multiplicando las rpm por el par motor (que sí están disponibles), corregidos por una constante para tener en cuenta las unidades. El coche nos da el par instantáneo en tanto por ciento (PID=63), por lo que hay que multiplicarlo por el par máximo (PID=62), por las revoluciones (PID=0c) y aplicar la constante. La fórmula final es:
HP = readSAEpid(63) * readSAEpid(62) * readSAEpid(0c) / 95500 (para OBDLink)
HP = [63]*[62]*[0C] / 95500 (para Torque)
2) Cálculo de la marcha engranada. Para modelos anteriores de Volvo circulan por ahí algunos PID que aparentemente devolvían la posición de la caja de cambios. Pero no he encontrado ninguno que funcione con la plataforma SPA, así que decidí calcular yo la marcha. La idea es medir el desarrollo del coche en cada número de marcha, y de ahí estimar una fórmula que devuelva dicho número de marcha. Vamos a los detalles:
El desarrollo normalmente se expresa en unidades tales como metros/revolución, por ejemplo (como en en las bicis). Pero aquí es más cómodo medirlo en otras unidades, concretamente Km/h / rpm. Son un poco raras, pero usan las unidades que proporciona el coche directamente, y nos ahorramos conversiones y operaciones.
Para medir el desarrollo de cada marcha lo que hice fue conectar el monitor OBD2 registrando velocidad y rpm, mientras conducía el coche un rato en distintas marchas. Dibujando los datos registrados me salió la gráfica de la figura siguiente:
La curva representa el desarrollo (velocidad / rpm) durante un trayecto corto. El mejor trozo está al final, tiene forma de escalerita. Pude hacerlo cuando no había tráfico y fui subiendo de marcha una a una usando el cambio en secuencial. A partir de estos valores de desarrollo simplemente calculé una regresión lineal con los valores de los escalones y el número de marcha:
y obtuve la siguiente fórmula:
Marcha = 133.04 * Desarrollo + 0.238
La fórmula final a meter en el programa es:
Gear = 133.04 * ReadSAEPid (0d) / (readSAEPid (0c)+1) + 0.238 (para OBDLink)
Gear = 133.04 * [0d] / ([0c]+1) + 0.238 (para Torque)
Nota 1: La velocidad es PID=0d, las rpm PID=0c
Nota 2: hay que sumar 1 a las rpm para evitar la división por cero si está el motor parado
Y con esto funciona perfectamente, probado en profundidad ya varios meses.
La fórmula vale para el XC60, y cualquier otro modelo que lleve la misma transmisión y tamaño de rueda. Si queréis utilizar la fórmula para un coche con distinta caja de cambios habría que rehacer la calibración, como la hice yo.
Si cambia la rueda, no lo tengo tan claro, porque creo que todas las homologadas para XC60, tienen la misma circunferencia. Se puede mirar en esta web: https://tiresize.com/tyre-size-calculator/
Pero habría que probarlo. Si alguien se anima, le ayudo.
Continuará ...
Un aspecto algo más avanzado de los monitores OBD2 es la posibilidad de mostrar nuevos parámetros calculados a partir de los proporcionados por el fabricante. Más abajo adjunto un par de ejemplos que yo llevo instalados (en un XC60 T5): la potencia instantánea desarrollada y en qué marcha está engranada la caja de cambios.
Sin entrar en detalles, lo primero sería explicar que los diferentes parámetros que se leen vía OBD2 vienen identificados por un numerito que se llama su PID (Parameter ID). Podéis ver todos los PID posibles del estándar en esta página (https://en.wikipedia.org/wiki/OBD-II_PIDs). Los fabricantes no proporcionan todos, sino los que les da la gana. Volvo ofrece bastantes.
Por otra parte, los programas de OBD ofrecen la posibilidad de realizar pequeños cálculos con los parámetros que envía el coche. OBDLink, por ejemplo, lo hace mediante una función que se llama readSAEpid(xx), mientras que Torque usa una notación más sencilla, [xx], donde xx es el PID deseado.
1) Cálculo de la potencia desarrollada en HP. Este valor no lo proporciona el coche directamente, pero es inmediato de calcular multiplicando las rpm por el par motor (que sí están disponibles), corregidos por una constante para tener en cuenta las unidades. El coche nos da el par instantáneo en tanto por ciento (PID=63), por lo que hay que multiplicarlo por el par máximo (PID=62), por las revoluciones (PID=0c) y aplicar la constante. La fórmula final es:
HP = readSAEpid(63) * readSAEpid(62) * readSAEpid(0c) / 95500 (para OBDLink)
HP = [63]*[62]*[0C] / 95500 (para Torque)
2) Cálculo de la marcha engranada. Para modelos anteriores de Volvo circulan por ahí algunos PID que aparentemente devolvían la posición de la caja de cambios. Pero no he encontrado ninguno que funcione con la plataforma SPA, así que decidí calcular yo la marcha. La idea es medir el desarrollo del coche en cada número de marcha, y de ahí estimar una fórmula que devuelva dicho número de marcha. Vamos a los detalles:
El desarrollo normalmente se expresa en unidades tales como metros/revolución, por ejemplo (como en en las bicis). Pero aquí es más cómodo medirlo en otras unidades, concretamente Km/h / rpm. Son un poco raras, pero usan las unidades que proporciona el coche directamente, y nos ahorramos conversiones y operaciones.
Para medir el desarrollo de cada marcha lo que hice fue conectar el monitor OBD2 registrando velocidad y rpm, mientras conducía el coche un rato en distintas marchas. Dibujando los datos registrados me salió la gráfica de la figura siguiente:
La curva representa el desarrollo (velocidad / rpm) durante un trayecto corto. El mejor trozo está al final, tiene forma de escalerita. Pude hacerlo cuando no había tráfico y fui subiendo de marcha una a una usando el cambio en secuencial. A partir de estos valores de desarrollo simplemente calculé una regresión lineal con los valores de los escalones y el número de marcha:
y obtuve la siguiente fórmula:
Marcha = 133.04 * Desarrollo + 0.238
La fórmula final a meter en el programa es:
Gear = 133.04 * ReadSAEPid (0d) / (readSAEPid (0c)+1) + 0.238 (para OBDLink)
Gear = 133.04 * [0d] / ([0c]+1) + 0.238 (para Torque)
Nota 1: La velocidad es PID=0d, las rpm PID=0c
Nota 2: hay que sumar 1 a las rpm para evitar la división por cero si está el motor parado
Y con esto funciona perfectamente, probado en profundidad ya varios meses.
La fórmula vale para el XC60, y cualquier otro modelo que lleve la misma transmisión y tamaño de rueda. Si queréis utilizar la fórmula para un coche con distinta caja de cambios habría que rehacer la calibración, como la hice yo.
Si cambia la rueda, no lo tengo tan claro, porque creo que todas las homologadas para XC60, tienen la misma circunferencia. Se puede mirar en esta web: https://tiresize.com/tyre-size-calculator/
Pero habría que probarlo. Si alguien se anima, le ayudo.
Continuará ...
'Me Gusta':
JosephMary78, Volvo-me, geohector y 4 más