Вопрос

Как определить/рассчитать количество топлива, необходимого для поездки?

Я читал похожие вопросы, но лучшее, что я нашёл, — это заполнить бак, посмотреть, сколько километров можно проехать на этом баке, и зарегистрировать результат.



Но я разрабатываю приложение, которое считывает информацию с телефона через порт OBD2.
Я могу считывать тип топлива, температуру охлаждающей жидкости двигателя, число оборотов в минуту и скорость.
Кроме того, я знаю расстояние и продолжительность поездки пользователя и могу рассчитать, хватит ли топлива в баке для поездки.



Можно ли это сделать с помощью OBD2, подключённого к телефону?
Мне не нужно очень точное значение, но что-то, что подскажет пользователю, что топлива может не хватить для поездки....
Например, контроль некоторых параметров, которые рассчитывают расход в реальном времени, каждые 5 минут...



Мне нужны какие-то конкретные PID-коды OBD, помимо оборотов, скорости, уровня и типа топлива?



Редактировать



Вот таблица со всеми PID-кодами в режиме 01 (данные в реальном времени), которые я могу прочитать, если у автомобиля есть соответствующий PID-код... Таблица PID-кодов в Википедии



ПРАВКА 2



Я читал, что с obd2 невозможно определить пройденное расстояние ... единственное, что я могу прочитать из него (если моя машина поддерживает это), - это PID 015E = расход топлива в двигателе (л / ч).
Или я могу использовать GPS, который каждый раз (за 5 минут) может определять местоположение пользователя и с помощью:
travel_total_distance - percur_distance_from_GPS (берется из начального расстояния путешествия - total_distance_travel, которое с каждым разом меньше)....



ПРАВКА 3



Я пытаюсь использовать MAF для расчета расхода топлива, читая эту ссылку, но моя машина не поддерживает MAF PID, 0110 я не получаю ответа от ДАННЫХ, так что эта формула не подходит.
Единственная функция, которая поддерживается для всех автомобилей, - это speed car, и с ее помощью я могу использовать некоторую обратную формулу и получить пройденное расстояние.



Скорость = Расстояние/Время, значит, Расстояние = Скорость x Время.... Я отслеживаю время с помощью телефона с момента начала поездки до лекции и вычисляю пройденное расстояние в километрах.... В любом случае при использовании этого метода результат будет неверным, если машина стоит, потому что 0 км/ч = нет расхода топлива :D :D (и это неправильно)... может быть, я могу установить какое-то стандартное значение, если машина стоит, но двигатель работает.




мгновенное расстояние D = VSS * t/3600



мгновенное значение расхода топлива F = 1 / (14,75 * 6,26) * массовый расход воздуха * t / 60 мгновенное значение



Миль на галлон = Д / Ф



VSS = Транспортное средство



Датчик скорости MAF = датчик массового расхода воздуха




Есть какие-нибудь предложения?



ИЗОБРАЖЕНИЕ ПРИЛОЖЕНИЯ, КОТОРОЕ РАССЧИТЫВАЕТ ПОТРЕБЛЕНИЕ
введите описание изображения здесь



Переводы Legenda:
Km percorsi = пройденные километры
Livello carburante = уровень топлива в баке
Consumo stimato = расчётный расход
Km percorribili = километры, которые автомобиль может проехать на оставшемся топливе



Перевод вопроса с Mechanics Stack Exchange
Лицензия: CC BY-SA (2.5–4.0)
Оригинальный вопрос: https://mechanics.stackexchange.com/questions/48845/how-read-calculate-the-amount-of-consumed-fuel-estimated-for-a-travel

0 Комментариев

  1. Вы всё усложняете.




    • Автомобиль знает, сколько топлива осталось в баке, для этого и нужен указатель уровня топлива. Многие (но не все) автомобили передают эту информацию через разъем OBD2.

    • Вы также можете узнать пробег через разъем OBD2.

    • Затем займитесь математикой.



    В одном из моих автомобилей есть функция отслеживания расхода топлива, и я был удивлён тем, насколько сильно меняется мгновенная топливная эффективность при движении накатом и резком ускорении. Эта информация будет бесполезна для того, что вы собираетесь сделать. Вместо этого просто узнайте, сколько топлива было израсходовано (с момента последней заправки или с момента последнего сброса настроек приложения), просто выполнив следующие действия:




    • Если при проверке уровня топлива вы обнаружили, что он повысился, значит, автомобиль заправили. Сохраните этот новый уровень топлива для последующих расчётов и запишите предыдущий расход топлива, если планируете использовать эти данные позже. Также сохраните показания одометра, снятые в это время.

    • если уровень топлива снизился, значит, машина ездила. Вычтите текущий уровень топлива из последнего сохранённого уровня топлива, чтобы узнать, сколько топлива было израсходовано. Если вы сбрасываете расчёты при каждой заправке, используйте это число. Если вы продолжаете расчёты с момента последнего сброса приложения, добавьте эту сумму к предыдущему показателю расхода топлива (но не перезаписывайте предыдущий показатель расхода топлива).

    • Считайте показания одометра и вычтите их из показаний одометра на момент последней заправки. Это и будет расстояние, которое вы проехали с момента последней заправки. Также вычтите текущее показание одометра из показания на момент последнего сброса приложения. Это и будет пройденное вами расстояние.

    • Выполните простые математические действия, чтобы узнать, насколько экономично расходуется топливо с момента последней заправки и сброса настроек приложения (расстояние / расход топлива = мили на галлон, расход топлива / расстояние * 100 = л/100 км)

    • Если пользователь введёт расстояние, которое необходимо проехать за всю
      поездку, ваше приложение сможет рассчитать количество необходимого топлива (на начало
      поездки) и обновлять этот показатель при каждом считывании данных.
      (оставшиеся мили / расход на галлон = необходимое количество галлонов, оставшиеся километры * л/100 км / 100 = необходимое количество литров; если количество необходимого топлива превышает текущий уровень топлива, вам нужно будет сделать ещё как минимум одну остановку для дозаправки)



    Не беспокойтесь о частоте вращения коленчатого вала, подъёмах, спусках, пробках, встречном ветре, попутном ветре, боковом ветре, отсутствии ветра, дожде, снеге, жаре, сухости, хороших шинах, плохих шинах, длине хода поршня, диаметре цилиндра, зазоре в свечах зажигания или о том, когда водитель в последний раз ел мясной рулет. Да, эти факторы влияют на топливную экономичность, но их нельзя рассчитать. На топливную экономичность влияет больше факторов, чем может показать разъём OBD2. Просто посчитайте расход топлива и пройденное расстояние.


  1. Проблема возникает, когда на улице много машин и большие пробки... в этом случае все формулы перестают работать, потому что автомобиль расходует топливо, но расстояние, которое он проезжает, равно 0... это большая проблема... поэтому лучше всего найти способ подсчитывать расход с помощью порта OBD :(
  1. Через несколько дней я реализую этот код и сообщу вам, что получилось. А когда всё заработает, я проверю ваш пост. В любом случае, спасибо, что уделили мне время... Если вы знаете какой-нибудь способ определить пройденное расстояние без GPS, я весь внимание xD
  1. @Dario Конечно, это позволило бы вам рассчитать запас хода. Но я думаю, что люди хотели бы знать свой реальный расход топлива на 100 км. Просто спросите у пользователя, какой у него объём топливного бака, когда он будет создавать профиль.
  1. Хотел добавить в качестве комментария, но не хватило места...



    Интересная идея, возможно, стоило запатентовать её, прежде чем выкладывать в открытый доступ. Думаю, это будет полезно для специалистов по GPS и картам.



    В любом случае я вижу здесь несколько отдельных потребностей:



    1) объём бака и объём двигателя. Вам нужно уметь рассчитывать расход топлива на один такт и количество тактов в баке.



    2) Необходимо уметь рассчитывать расход топлива при определённых оборотах.



    3) Нужно знать, какое расстояние вы преодолеете при определённых оборотах двигателя и количестве топлива.



    4) Необходимо добавить коэффициент неопределённости для рельефа местности (холмы и т. д.), погоды (снег, ветер и т. д.), типа топлива (высокооктановое и т. д.), двигателей, работающих не по спецификации (протечки и т. д.).



    5) Необходимо знать, сколько бензина осталось в баке (у нас нет способа это выяснить), чтобы приложение могло использовать эту информацию и приведенные выше расчеты, чтобы сообщить вам, нужно ли заправиться. Как вы планируете решить эту проблему?



    На вашем месте я бы проанализировал средние показатели вождения (50–60 км/ч в городе + 100–120 км/ч на трассе) и вычислил средние обороты двигателя на этих скоростях, а также фактический расход топлива в зависимости от объёма двигателя. Вам нужно будет опросить владельцев многих автомобилей — возможно, с помощью краудсорсинга. Если только уже не опубликованы данные по этому вопросу.



    Таким образом, вы можете использовать данные о мощности двигателя, частоте вращения коленчатого вала и среднем расходе топлива за прошлые периоды, чтобы рассчитать расход топлива в реальном времени. Если вы будете удерживать педаль акселератора нажатой, расход топлива увеличится, как и предполагаемый пробег. Звучит как интересный проект, желаю удачи.


  1. Привет, Кинг... теперь у меня есть некоторые данные, но они не совпадают с расчётным расходом в книге... там написано, что мой автомобиль расходует 6,4 литра КПГ на 100 км... но в моём приложении при пробеге 10 км расчётный расход составляет 2,26 км/л... и это неправильно, потому что 100 км : 6,4 л = 10,86 км : x л (0,69 л)... но мой расчётный расход составляет около 5 литров..... Приложение Torque более точное.... думаю, они используют другой метод для расчёта расхода... есть идеи? Я добавляю скриншот приложения
  1. @ tlhIngan, хорошо, понятно и правильно... как вы и написали в своём посте: «Не беспокойтесь о частоте вращения, подъёмах, спусках, пробках, встречном ветре, попутном ветре, боковом ветре, отсутствии ветра, дожде и т. д.». Что вы думаете о км/% ...? Я могу посмотреть процентное соотношение топлива в баке, но не размер, поэтому я бы рассчитал расход в км на %, чтобы знать, что машина может проехать 20 км и израсходовать 2 % топлива из бака. Это нормально? Благодаря этому мне не нужно рассчитывать количество килограммов (СНГ) или литров (дизельного топлива и бензина), у меня есть только одна единица измерения (%)..
  1. @Dario Мне это не нравится. Предполагается, что всё работает идеально. Если ваши шины накачаны неправильно, значение VSS будет неверным. А если вы запускаете двигатель, когда машина не движется, эта формула говорит о том, что вы вообще не расходуете топливо, а это ложь.
  1. Что вы думаете об этом посте @tlhIngan? stackoverflow.com/questions/17170646/… Он есть в списке PID, который я редактирую в своём посте, но моя машина выдаёт «НЕТ ДАННЫХ» как на КПГ, так и на бензине
  1. @Dario Если его нет в списке, значит, это нестандартный PID, то есть каждый производитель будет использовать его по-своему.
  1. @ tlhIngan, возможно, PID, который может рассчитать расход топлива на галлон, — это 015E = расход топлива двигателем (л/ч)... но там ничего нет о км/л и о пройденном расстоянии от порта OBD, как вы видите в списке PID... Может быть, я могу использовать GPS в телефоне для определения пройденного расстояния, но это очень неточно. Если вы знаете, как определить пройденное расстояние от OBD, это было бы здорово
  1. @ tlhIngan Да, я добавляю пользовательский ввод для некоторых технических данных автомобиля, таких как: топливный бак, максимальное расстояние, пройденное на одном полном баке (если известно)... Я не совсем понимаю, какие PID-коды мне нужны из OBD2 для расчета расхода топлива.... Я отредактировал свой пост, добавив ссылку на таблицу с PID-кодами.
  1. @Dario Если у вас есть только процентное соотношение топливного бака, то при настройке профиля для своего автомобиля пользователь должен будет указать объем топливного бака. Вероятно, вы можете получить серийный номер с разъема OBD2, чтобы у пользователей было несколько профилей в приложении, по одному для каждого автомобиля. :)
  1. @Dario «MPG» — это аббревиатура от «miles per gallon», что означает «мили на галлон» и является показателем топливной эффективности в британских единицах измерения (милях и галлонах). «Пробег» — это общий термин, означающий «пройденное расстояние», которое может быть указано в милях или километрах, в зависимости от компьютера. :)
  1. Извините, не могли бы вы объяснить, что такое MPG? А с помощью obd2 я не могу считать пробег (для меня это пройденные километры)... только бортовой компьютер автомобиля может считать километры (расстояние)... или я ошибаюсь?
  1. Хахахахха, сэр, вы ЛУЧШИЕ. Я итальянец, поэтому мне нужно лучше понимать то, что вы говорите, используя немного масла для технических деталей, и я попробую ваше предложение. Но единственная проблема с уровнем топлива - это тип. Потому что я могу прочитать только% объема топливного бака, но не общее количество литров или кг для CNG и GPL .... есть какие-то предложения? Или только руками пишут от пользователя уровень заправленного топлива?
  1. Привет, Крис! Мне не нужен патент, потому что у многих людей была такая же идея, как у меня :D :D .... Проблема в том, как рассчитать оптимальный расход топлива во время поездки. Моя идея заключается в том, чтобы запрашивать время у OBD и выполнять расчёты на основе данных в реальном времени. Что касается уровня топлива, то да, вы можете увидеть процентное соотношение топлива с помощью PID 015E, если я не ошибаюсь.
  1. Для обсуждения вопросов, не связанных с ответом на вопрос, рекомендуется использовать чат, будь то Pitstop или ваш собственный чат.
  1. OP явно разработчик программного обеспечения (см. профиль). И я тоже. Поэтому я даю свой ответ с точки зрения разработчика. Я не против отрицательных оценок, просто высказываю своё мнение. Как я уже упоминал в комментариях, я собирался просто оставить комментарий, потому что у меня не было ответа. Посоветовали бы вы вместо этого отправить OP личное сообщение?
  1. Я не совсем понимаю, как это даёт OP информацию о запрошенном PID? (Нет, я вас не скачивал, но почти уверен, что именно по этой причине.)
  1. Проблема возникает, когда на улице много машин и длинных очередей... в этом случае все формулы становятся неактуальными, потому что автомобиль расходует топливо, но проезжает 0 км... возникает большая проблема
  1. Да, с помощью Google Apis я пытаюсь получить пройденное расстояние в километрах, а с учётом процента потерь топлива в баке я рассчитываю км/% , которые можно преобразовать в км/л или км/кг для КПГ
  1. Да, они похожи, но для меня это не одно и то же... в любом случае, это может помочь мне разобраться в некоторых моментах
  1. Ключевыми параметрами для расчёта являются показания датчика массового расхода воздуха, скорость автомобиля и оптимальное соотношение воздух/топливо для вашего типа топлива.
  1. Технически это тот же вопрос, но ответ на него звучит так: «как купить и установить адаптер ODBII»... mechanics.stackexchange.com/q/27882/12030
  1. Вот вам комментарий, который, однако, не является конкретным ответом: если у вас есть телефон, который поддерживает «Bluetooth» и подключен к адаптеру OBD, то он наверняка поддерживает GPS. Я уже несколько десятилетий не занимаюсь «разработкой», но если у вас есть доступ к API телефона для получения данных GPS, то большая часть вашей работы будет сделана. Я подозреваю, что интерфейс между этим основным API и вашим кодом будет самым сложным. Как уже было сказано, это нивелирует все факторы, связанные с «давлением в шинах», «стилем вождения», «движением накатом» и «пробегом на стоянке», и сводится к простому вопросу: *рассчитанное по GPS расстояние/изменение % топлива*
  1. По теме на StackOverflow: stackoverflow.com/q/17170646/101039
Вы уже ответили на этот вопрос