Детектирование заправок

:!: Внимание!
При детектировании заправок используются обработанные данные (на этапах «Подготовка данных» и «Фильтрация»).

:!: Примечание: Многоточие () заменяет «Свойства объекта» –> «Расход топлива» при указании путей к опциям.



Данные опции и ситуации тесно связаны с данным детектированием:

  • Опция: Минимальный объем заправки;
  • Опция: Поиск заправок только при остановках;
  • Опция: Рассчитывать объем заправки без учета фильтрации;
  • Ситуация: как детектируется заправка?

Минимальный объем заправки

... → блок "Определение заправок/сливов топлива" → “Минимальный объем заправки”

Данная опция позволяет исключить ложные заправки, поскольку в процессе движения возможны ложные показания подъемов уровня топлива.

Поиск заправок только при остановке

... → блок "Определение заправок/сливов топлива" → “Поиск заправок только при остановке”

В нормальных условиях транспортные средства заправляют при остановках. Данная опция сужает поиск заправок лишь на остановки/стоянки. Кроме того, если на вкладке «Дополнительно» указан максимальный интервал между сообщениями и он был превышен, то на этом интервале может быть определена заправка.

Рассчитывать объем заправки по сырым данным

... → блок "Определение заправок/сливов топлива" → “Рассчитывать объем заправки по сырым данным”

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

Ситуация: как детектируется заправка?

Временные границы заправки и ее объем

Совершается заправка.
Пусть объем топлива в текущем сообщении будет Vтекущ, объем топлива в предыдущем сообщении – Vпред. Если разница d для текущего сообщения (= Vтекущ - Vпред) будет положительной, то данное сообщение будет считаться начальным сообщением заправки.
Проходит время. Близок конец заправки. Когда для какого-то сообщения величина d будет отрицательной (т.е. объем топлива в текущем сообщении, меньше объема топлива в предыдущем), данное сообщение будет считаться конечным сообщением заправки. :!: Если уровень топлива остается неизменным на протяжении времени, указанного в параметре «Таймаут для разделения заправок» в свойствах объекта на вкладке «Расход топлива», то заправка также будет считаться завершенной.
Объем заправки равен Vконеч - Vнач (разница уровней топлива между конечным и начальным сообщениями заправки).

Алгоритм расчета времени заправки

Теперь ищется момент совершения заправки.
Итеративно для каждого сообщения, лежащего в границах интервала заправки (исключаем последнее сообщение), ищется дельта со следующим сообщением d=Vслед - Vтекущ, показывающая величину роста топлива между текущим и следующим сообщениями.
Время сообщения, чья дельта больше остальных дельт, считается временем заправки (другими словами, выбирается левое сообщение из пары сообщений, чья дельта больше остальных).
:!: Подчеркнем, что время (момент времени) заправки рассчитывается в каждой конкретной ситуации динамически на основании имеющихся данных от датчиков.

Определение заправок в таблице «Движение топлива»

Таблица «Движение топлива» определяет топливную активность (заправки, сливы и интервалы работы счетчика) объекта, по которому выполняется отчет, а также объектов, которые находились рядом с ним. Следующий алгоритм объясняет принцип, по которому система определяет, какому из находившихся рядом объектов было выдано топливо.

Интервалы выдачи и получения топлива считаются связанными, если время заправки получившего топливо объекта попало в интервал работы счетчика объекта, его раздававшего (см. рисунок).

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

Follow us on Facebook Gurtam Wialon Twitter Gurtam Wialon info@gurtam.com   |   Copyright © 2002-2019 Gurtam