При детектировании сливов используются обработанные данные (на этапах Подготовка данных и Фильтрация).
Нас интересуют следующие опции:
- Минимальный объем слива;
- Поиск сливов в движении;
- На холостом ходу;
- Рассчитывать объем слива без учета фильтрации.
Минимальный объем слива
Свойства объекта → Расход топлива → блок Определение заправок/сливов топлива → Минимальный объем слива
Данная опция определяет необходимое падение уровня топлива за вычетом расхода на движение/простой, чтобы слив был детектирован.
Поиск сливов в движении
Свойства объекта → Расход топлива → блок Определение заправок/сливов топлива → Поиск сливов в движении
По умолчанию данная опция не выбрана. В случае если пользователь имеет веские основания отслеживать ситуации сливов в движении, он может воспользоваться данной опцией. Однако в случае резкого перепада уровня топлива в движении может быть детектирован ложный слив.
На холостом ходу
Свойства объекта → Датчики → Тип датчика Датчик зажигания → Расход, литров в час Свойства объекта → Датчики → Тип датчика Абсолютные моточасы → Расход, литров в час Свойства объекта → Датчики → Тип датчика Относительные моточасы → Расход, литров в час
Данная опция позволяет выявлять сливы при остановках/парковках. Находится разница между топливом, потраченным по датчикам, и рассчитанным математически. В случае расхождений, равных либо превышающих минимальный объем слива, детектируется слив.
Рассчитывать объем слива по сырым данным
Свойства объекта → Расход топлива → блок Определение заправок/сливов топлива → Рассчитывать объем слива по сырым данным
Схожим с заправками образом, фильтрация может накладывать искажения на начальные и конечные уровни топлива при сливах. Для нивелирования данных искажений опция использует неотфильтрованные данные при подсчете объема сливов. Эта опция применяется только тогда, когда значение до применения фильтрации превышает значение, полученное в результате фильтрации.
Ситуация: как детектируется слив?
Временные границы слива и его объем
Совершается слив.
Пусть объем топлива в текущем сообщении будет Vтекущ, объем топлива в предыдущем сообщении – Vпред. Если разница d для текущего сообщения (= Vтекущ - Vпред) будет отрицательной, то данное сообщение будет считаться начальным сообщением слива.
Проходит время. Когда для какого-то сообщения величина d будет положительной (т.е. объем топлива в текущем сообщении больше объема топлива в предыдущем в силу искажений данных от датчика), данное сообщение будет считаться конечным сообщением слива.
Если уровень топлива остается неизменным на протяжении времени, указанного в параметре Таймаут для разделения сливов в свойствах объекта на вкладке Расход топлива, то слив также будет считаться завершенным.
Объем слива равен Vконеч - Vнач по модулю (разница уровней топлива между конечным и начальным сообщениями слива).
Алгоритм расчета времени слива
Теперь ищется момент совершения слива.
Итеративно для каждого сообщения, лежащего в границах интервала слива (исключаем последнее сообщение), ищется дельта по модулю со следующим сообщением d=Vслед - Vтекущ, показывающая величину падения топлива между текущим и следующим сообщениями.
Время сообщения, чья дельта по модулю больше остальных дельт, считается временем слива (другими словами, выбирается левое сообщение из пары сообщений, чья дельта по модулю больше остальных).
Время (момент времени) слива рассчитывается в каждой конкретной ситуации динамически на основании имеющихся данных от датчиков.