Научная статья на тему 'Повышение точности бортового вариометра с помощью алгоритма фильтрации данных с барометрического датчика'

Повышение точности бортового вариометра с помощью алгоритма фильтрации данных с барометрического датчика Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
181
44
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СГЛАЖИВАЮЩИЙ ФИЛЬТР / АЛГОРИТМ СКОЛЬЗЯЩЕГО СРЕДНЕГО / АЛГОРИТМ ЭКСПОНЕНЦИАЛЬНОГО СГЛАЖИВАНИЯ / ФИЛЬТР КАЛМАНА / SMOOTHING FILTER / MOVING AVERAGE SMOOTHING / EXPONENTIAL SMOOTHING / KALMAN FILTER

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Перевозчиков Василий Владимирович, Круглова Анна Александровна, Бондарь Максим Николаевич

Современная электронная элементная база позволяет создавать малогабаритные, недорогие и эффективные для бортового применения решения. Однако в электронных сенсорах для получения точных значений измерения необходимо компенсировать влияние шумов. В работе рассмотрены алгоритмы фильтрации барометрических данных с датчика давления BMP180 и исследована их эффективность для повышения точности измерения высоты бортовым вариометром.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Перевозчиков Василий Владимирович, Круглова Анна Александровна, Бондарь Максим Николаевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

IMPROVING ACCURACY OF ONBOARD VARIO BY FILTERING DATA FROM BAROMETRIC SENSOR

Modern electronics allows us to create simple, cheap and effective enough solutions for civil use. However, it is quite common situation in fiscal electronics when it is necessary to put considerable effort to fight with the noise for accurate values. In this paper we will consider filtering algorithms with data from the BMP180 barometric pressure sensor and we will compare them with respect to the application for the construction of the vario.

Текст научной работы на тему «Повышение точности бортового вариометра с помощью алгоритма фильтрации данных с барометрического датчика»

УДК 629.7.05

ПОВЫШЕНИЕ ТОЧНОСТИ БОРТОВОГО ВАРИОМЕТРА С ПОМОЩЬЮ АЛГОРИТМА ФИЛЬТРАЦИИ ДАННЫХ С БАРОМЕТРИЧЕСКОГО ДАТЧИКА

Василий Владимирович Перевозчиков

Новосибирский государственный технический университет, 630073, Россия, г. Новосибирск, пр. К. Маркса, 20, аспирант кафедры автономных информационных и управляющих систем, тел. (383)346-26-23, e-mail: stormik_db@mail.ru

Анна Александровна Круглова

Новосибирский государственный технический университет, 630073, Россия, г. Новосибирск, пр. К. Маркса, 20, аспирант кафедры автономных информационных и управляющих систем, тел. (383)346-26-23, e-mail: nnkruglva@mail.ru

Максим Николаевич Бондарь

Новосибирский государственный технический университет, 630073, Россия, г. Новосибирск, пр. К. Маркса, 20, аспирант кафедры автономных информационных и управляющих систем, тел. (383)346-26-23, e-mail: max_bond@mail.ru

Современная электронная элементная база позволяет создавать малогабаритные, недорогие и эффективные для бортового применения решения. Однако в электронных сенсорах для получения точных значений измерения необходимо компенсировать влияние шумов. В работе рассмотрены алгоритмы фильтрации барометрических данных с датчика давления BMP180 и исследована их эффективность для повышения точности измерения высоты бортовым вариометром.

Ключевые слова: сглаживающий фильтр, алгоритм скользящего среднего, алгоритм экспоненциального сглаживания, фильтр Калмана .

IMPROVING ACCURACY OF ONBOARD VARIO BY FILTERING DATA FROM BAROMETRIC SENSOR

Vasiliy V. Perevozchikov

Novosibirsk State Technical University, 630073, Russia, Novosibirsk, 20 K. Marksa Prospekt, Ph. D. student, Department Autonomous Information and Control Systems, tel. (383)346-26-23, e-mail: stormik_db@mail.ru

Anna A. Kruglova

Novosibirsk State Technical University, 630073, Russia, Novosibirsk, 20 K. Marksa Prospekt, Ph. D. student, Department Autonomous Information and Control Systems, tel. (383)346-26-23, e-mail: nnkruglva@mail.ru

Maxim N. Bondar

Novosibirsk State Technical University, 630073, Russia, Novosibirsk, 20 K. Marksa Prospekt, Ph. D. student, Department Autonomous Information and Control Systems, tel. (383)346-26-23, e-mail: max_bond@mail.ru

Modern electronics allows us to create simple, cheap and effective enough solutions for civil use. However, it is quite common situation in fiscal electronics when it is necessary to put consider-

able effort to fight with the noise for accurate values. In this paper we will consider filtering algorithms with data from the BMP 180 barometric pressure sensor and we will compare them with respect to the application for the construction of the vario.

Key words: smoothing filter, moving average smoothing, exponential smoothing, Kalman filter.

Барометрический датчик BMP180 позволяет получение барометрических данных с точностью, соответствующей разрешению по высоте до 15 см. Однако при заданной точности полученные данные варьируются с большой амплитудой вокруг некоторого среднего значения (рис. 1), и не могут использоваться без предварительной обработки. Для применения полученных данных в целях измерения скорости подъема/спуска необходимо проводить предварительную фильтрацию.

Рис. 1. Показания неподвижно лежащего на столе датчика

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

— 1 к

X (к )= 1- I X (г), (1)

п г=к-п

где х (к) - сглаженное значение, х (г) - значение ряда в момент времени ^ п -размер окна (период сглаживания), k - номер члена ряда, значение которого заменяется средним.

Ошибку от осреднения можно уменьшить, увеличивая количество отсчетов, но будет также расти затраченное время на получение данных. Учитывая то, что отфильтрованные данные затем еще нужно будет обработать, прибор может получиться инерционным. Несомненно, можно использовать более мощный микроконтроллер и датчик, с меньшим временем отклика, однако это не является приемлемым решением задачи.

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

Осреднение помогает добиться более точных результатов до 16 -32 испытаний на замер, дальнейшее увеличение даже до 1000 измерений не дает прироста точности. При этом на 16 испытаний уходит 220 миллисекунд, а на 32 - соответственно 440 мс. Для решения задачи также был рассмотрен метод медианного сглаживания, являющийся одним из частных случаев алгоритма скользящего среднего:

1 к+п

1 (к )= 2П+1 ? 1 (')' (2)

I=к-п

где 1 (к) - сглаженное значение, 1 () - значение ряда в момент времени ^ 2п+1 -интервал сглаживания, к - номер члена ряда, значение которого заменяется средним.

av rate Mean StandDev RelDev MaxDev Millis/Me TotMillis 0,06

1 760,73 0,0488 0,0064 0,1952 13 390

2 760,75 0,0257 0,0034 0,1027 27 810 П ЛС

U.U5 ,

4 760,76 0,0264 0,0035 0,1056 55 1650

8 760,73 0,0236 0,0031 0,0942 110 3300 0,04

16 760,73 0,0192 0,0025 0,0768 221 6630

0,03 -

32 760,73 0,0165 0,0022 0,0661 443 13290

64 760,74 0,0095 0,0013 0,0382 886 26580 0,02 -1-

128 760,75 0,014 0,0018 0,0562 1772 53160 nni ♦

256 760,72 0,0119 0,0016 0,0478 3545 106350

512 760,73 0,0147 0,0019 0,0589 7090 212700 0

1024 •-1 760,71 0,0145 0,0019 0,0578 14180 425400 0 200 400 600 800 1000 1200

Рис. 2. Результат работы программы: av_rate — количество измерений; Mean — полученное среднее значение в мм. рт. ст;

StandDev - стандартное отклонение; RelDev — Относительная ошибка, % от измеряемой величины; MaxDev — Теоретическое значение максимальной разницы между двумя замерами, с вероятностью 95% (то есть, максимальный отскок от среднего +/- 0.5MaxDev); Millis — время, затраченное на расчет среднего значения, миллисекунды; TotMillis — время, прошедшее с начала измерение, миллисекунды

В основе данного метода лежит вычисление скользящей медианы. Для того чтобы найти значение скользящей медианы в точке 1 , необходимо вычислить медиану значений ряда в интервале времени ^+у] . Полученное значение называется (2 у+1) -точечной скользящей медианой. Однако в нашем случае значения в момент времени t+v нам неизвестны, т.о. применение данного фильтра будет в точности повторять применение алгоритма скользящего среднего.

Основное достоинство рассмотренных алгоритмов сглаживания - устойчивость к наличию выбросов. Чем шире сглаживающий интервал, тем более плавным будет график результирующей функции. С другой стороны, увеличение

сглаживающего интервала приводит к временному сдв игу усредненной функции относительно исходной.

Для более скорого вычисления усредненного значения возникает необходимость использовать более «быстрые» методы фильтрации. Одним из таких методов является экспоненциальное сглаживание [1,2]. Данный метод является одним из наиболее распространённых методов выравнивания временного ряда. Экспоненциальное сглаживание можно представить как фильтр, на вход которого последовательно поступают члены исходного ряда, а на выходе формируются текущие значения экспоненциальной средней.

X = а ■ Х1 + (1 - а) ■ Х1 а е (0,1), (3)

где X, - сглаженный ряд (экспоненциальное среднее), Хг - значение временного ряда в момент ,, а - коэффициент сглаживания.

Очевидно, результат сглаживания зависит от параметра а. Если а =1, то предыдущие наблюдения полностью игнорируются. Если а=0, то игнорируются текущие наблюдения. Значения а е (0,1) дают промежуточные результаты.

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

При практическом использовании метода экспоненциального сглаживания возникает две проблемы: выбор коэффициента сглаживания а, который в значительной степени влияет на результаты и определение начального значения Х0. С одной стороны, для сглаживания случайных отклонений величину а нужно уменьшать. С другой стороны, для увеличения веса новых измерений нужно увеличивать.

Более «мощным» способом фильтрации является алгоритм Калмана. Задача такой фильтрации состоит в том, что, зная неверные показания сенсора, необходимо найти хорошее приближение для истинного значения. Член, отвечающий за контроль системы извне, обозначим как и,.

Суть алгоритма Калмана состоит в том, что для получения наилучшего приближения к истинной координате, мы должны выбрать среднее между показанием Хг+1 неточного сенсора и (X + и,) — предсказанием того, что мы ожидали от него увидеть [3,4]. Показанию сенсора мы дадим вес К, а на предсказанное значение останется вес (1-К):

X+1 = К+1 ■ Xt+1 + (1 _ К,+1) ■(Х1 + Щ ) К е (0,1), (4)

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

Коэффициент К называют коэффициентом Калмана. Необходимо выбрать коэффициент Калмана K таким, чтобы получившееся оптимальное значение координаты X t+! было бы наиболее близко к истинной координате. Однако когда нам не известно о физической модели того, что мы фильтруем, теория фильтра Калмана не применима. Знание того, что коэф фициент Калмана Kt с увеличением номера шага t всегда стабилизируется к значению Kstab, что дает возможность подобрать коэффициенты вручную. Примем этот коэффициент константой, и будем подбирать только его:

Xt+1 = Kstab • Xt+1 + (1 - Kstab ) ' X t ; Kstab G (0,1X (5)

где Kstab - константа, подобранная вручную.

На рис. 3 показаны отфильтрованные двумя разными способами данные с сенсора, при условии того, что мы ничего не знаем о физике явления. Первый способ — со всеми формулами из теории Калмана. А второй — упрощенный, без формул.

— данные о сенсора

— фильтрация по Калману

_ упрощенная фильтрация по Калману

Рис. 3. Сравнение применения полного и упрощенного алгоритма Калмана

Полученная формула представляет собой нечто иное, как алгоритм экспоненциального сглаживания.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Грешилов А.А., Стакун В.А., Стакун А.А. Математические методы построения прогнозов. - М.: Радио и связь, 1997. - С. 95-110.

2. Грешилов А.А. Математические методы принятия решений: учебное пособие (с расчетными программами на оптическом диске) / А.А.Грешилов. - 2-е изд., испр. и доп. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2014. - С. 447-470.

3. Колос М.В., Колос И.В. Методы оптимальной линейной фильтрации / Под ред. В.А.Морозова. -М.: Изд-во МГУ 2000. - С. 76-84.

4. Перов А.И. Статистическая теория радиотехнических систем. - М.: Радиотехника, 2003. - С. 355-362.

5. Kalman R.E. A New Approach to Linear Filtering and Prediction Problems // Transactions of the ASME - Journal of Basic Engineering, 82 (Series D). -1960.-1» 35-45.

© В. В. Перевозчиков, А. А. Круглова, М. Н. Бондарь, 2017

i Надоели баннеры? Вы всегда можете отключить рекламу.