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