Расчёт расхода топлива через OBD || датчик, не поддерживающий команды 015E и 0110
Я работал над проектом, в котором нужно было рассчитать расход топлива на основе данных с датчика OBD2. Автомобиль, на котором я проводил тестирование, не поддерживал PID 015E, отвечающий за расход топлива. Тогда я решил использовать PID 0110, отвечающий за массовый расход воздуха (MAF). Но и с ним мне не повезло (он не поддерживался). Затем я наткнулся в интернете на два источника, в которых утверждалось, что мы можем использовать абсолютное давление во впускном коллекторе (MAP) для определения массового расхода воздуха (MAF). Вот ссылки
http://www.lightner.net/obd2guru/IMAP_AFcalc.html
https://github.com/oesmith/obdgpslogger/blob/master/doc/mpg-calculation
Я также наткнулся на исследовательскую работу, в которой описывались различные способы расчёта MAF. Вот ссылка:
Я попробовал и реализовал формулы из приведенных выше ресурсов, чтобы косвенно рассчитать MAF, а затем в конечном итоге получить расход топлива, но конечный результат слишком нереалистичен, например, я получал расход топлива 2,6 галлона в секунду. Теперь я знаю, что можно каким-то образом рассчитать расход топлива косвенно, потому что другое приложение, а именно "Крутящий момент", могло рассчитать расход топлива на том же автомобиле при тех же условиях и дало что-то вроде 0,000066 галлонов в секунду, что кажется правдоподобным. Я пытался связаться с разработчиком приложения Torque, но мне не повезло. В приведённых выше формулах использовалась переменная под названием «объёмный КПД», значение которой для моего автомобиля я принял за 70%. Пожалуйста, помогите мне. Я хочу знать, что я делаю не так, или есть какая-то другая формула, которую можно использовать.
Ниже приведены расчёты, которые я использовал в соответствии с этим пунктом исследовательской работы:
Вот что я сделал:
IMAP = (engineRPM * absolutePress) / ((airTemp + 273) / 2f);
MAF = (IMAP / 60) * (volumetricEff / 100f) * (engineDisp / 1000f) * (28.97f / 8.314f);
fuelFlow = (MAF * 3600) / (14.7f * 820) ; // l/h
Рабочий объём двигателя был указан в кубических сантиметрах, поэтому я разделил его на 1000, чтобы перевести в литры, а температуру указал в градусах Цельсия, поэтому я прибавил 273, чтобы перевести её в градусы Кельвина. Таковы были требования формулы. Я предполагаю, что объёмный КПД составляет 80 %.
Я думаю, что источником ошибки, скорее всего, является объёмный КПД, но я понятия не имею, как рассчитать объёмный КПД с помощью параметров OBD ||. В научной статье приводится другая формула, в которой не используется объёмный КПД, но я не могу её понять и использовать, думаю, она плохо отформатирована. Вот она:
Здесь мне не нужна точность, мне просто нужно, чтобы расчёт расхода топлива был хотя бы правдоподобным. Точность вообще не требуется.
Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/63098/calculating-fuel-flow-rate-through-obd-sensor-not-supporting-015e-and-0110-co
Я использовал приведённые выше формулы для создания вспомогательных функций gnuplot