Почему врет расход программ OBD

Многие сейчас используют смартфоны и магнитолы на андроиде, многие подключают их к автомобильному блоку управления через OBD, самый простой способ это Bluetooth адаптер ELM327 … Программы позволяют посмотреть многие параметры работы двигателя, прочитать и стереть ошибки, многие используют их как Trip компьютер … И вот тут возникает проблемка, программа показывает неправильный расход, как правило весьма оптимистичный, заниженный.

Та же проблем есть и встроенных в приборную панель устройств. Ошибка на первый взгляд не объяснимая … программа получает через OBD обороты, время впрыска и количество потребленного воздуха, топливные коррекции, знает количество цилиндров и производительность форсунок, казалось бы, отличия могут быть только если бензин льется мимо. Однако это не совсем так …

Проблема заключается в том, что программа запрашивает данные через OBD примерно раз в секунду, по сути, это СОМ порт с достаточно невысокой скоростью передачи и получать информацию чаще не просто. И получает программа данные на момент запроса … При этом обороты двигателя на холостых оборотах составляют 500-1000 об/мин или от 8ми оборотов в секунду … т.е. за секунду происходит 4 цикла или 16-24-32 впрысков топлива, в зависимости от количества цилиндров, а измерение параметров происходит только ОДИН РАЗ. На холостом ходу, да и вообще при равномерных оборотах, все более-менее хорошо, хотя и не учитывает разницу между режимами работы разных цилиндров, а вот при движении, когда обороты могут достигать 7-8 тысяч, т.е. количество циклов надо умножать на полтора порядка, да еще  в городе, с частыми изменениями оборотов, ошибка становится существенной. Когда вы нажимаете на педаль, поднимаются обороты, обычно подъем оборотов идет относительно плавно, а сброс довольно резко, в итоге получаем примерно зеленый график расхода, а вот Trip считает по красному графику …

Чем резче вы будете нажимать и отпускать педаль, тем больше будет ошибка вычислений, однако это не значит, что плавным движением можно свести ошибку к нулю … снизить да, можно, но к нулю не выйдет, на столько плавно набирать обороты при реальном движении малореально. Собственно нулевая погрешность получается при неизменных во времени параметрах работы двигателя, в любом другом случае повышение оборотов занижает расчет, снижение оборотов завышает расчет.

При нормальном движении обороты снижаются довольно быстро, мало кто тормозит двигателем, обычно нога убирается с газа и нажимается тормоз, т.е. сброс оборотов почти мгновенный, поэтому наиболее вероятно именно занижение показаний.

Можно внести коррекцию в расчет, подняв расчетную производительность форсунок или внеся корректировку в показания датчика воздуха, но это повысит расчетные значения на ХХ, и ошибка все равно будет зависеть от режима движения, чуть плавнее пойдет завышение показаний, чуть резче, занижение показаний.

Даже если программа пытается компенсировать ошибку и считает по среднему между показаниями раз в секунду, синий график, все равно будет ошибка, программа не может знать степени изогнутости оригинального графика, она не знает выгнут он или вогнут, близкая к нулевой погрешность будет при линейном графике между точками запроса, но так обычно не бывает.

На некоторых ЭБУ встречается встроенный датчик расхода, его точность явно выше, он показывает интегральные значения, но и его точность не идеальна, абсолютно точный расчет требует довольно приличной производительности, поэтому обычно так же используют упрощенные методы, усреднения параметров, работа по таблицам и т.д.

В целом получается, что использовать OBD реально можно только для диагностики на холостых оборотах и оценочных, примерных измерений в движении.