Введение 3
Глава 1. Фильтр Калмана 5
1.1 Линейная задача. Основные понятия 6
1.2 Коэффициент обратной связи 8
1.3 Коррекция значения ковариационной матрицы ошибки оценки вектора
состояния 9
1.4 Фильтр Калмана для нелинейных систем (расширенный фильтр) 10
1.5 Использование фильтра Калмана 12
1.6 Проблема адаптивного фильтра. Метод “Уточнение ковариации” 13
Глава 2. Микроконтроллеры фирмы STMicroelectronics семейства STM32F407 16
2.1 Общая информация о микроконтроллерах 16
2.2 Обзор семейства микроконтроллеров STM32F407 21
2.3 Архитектура микроконтроллеров STM32F407 25
2.4 Тактирование и запуск микроконтроллера. Схема питания 36
2.5 Обзор средств разработки и отладки 39
Глава 3. Реализация проекта и разработка кода 44
3.1 Создание проекта и выполнение необходимых настроек 44
3.2 Реализация фильтра Калмана и анализ результатов 50
Заключение 57
Литература 58
Приложение
Цифровая обработка сигналов как направление развития науки и техники зародилась в 1950-х годах и поначалу представляла собой довольно экзотическую отрасль радиоэлектроники, практическая ценность которой была далеко не очевидной[1]. Однако в настоящее время благодаря развитию микроэлектроники цифровая обработка сигналов (ЦОС) является одной из самых мощных технологий, которая охватила науку и технику. Системы ЦОС коснулись широкого круга областей: высококачественное воспроизведение музыки, визуализация изображений, радио- и телекоммуникации, радиолокация и гидролокация, разведка нефтяных месторождений и многих других. Более того, в некоторых прикладных областях стали вытесняться «традиционные» (аналоговые) методы обработки информации.
Цифровая обработка сигналов выделяется из других областей знаний вычислительной техники уникальным типом данных, который она использует - сигналы. В большинстве случаев эти сигналы представляют собой информацию от датчиков из окружающего мира: сейсмические колебания, визуальные изображения, звуковые волны и т.п. ЦОС представляет собой математику, алгоритмы и методы, используемые для обработки этих сигналов, после того как они были переведены в дискретную форму. Обработка может содержать в себе несколько задач: улучшение визуального отображения, распознавание и синтез речи, сжатие данных для их хранения и передачи и др. В данной работе данные представляют собой выборку из аналого-цифрового преобразователя (ЦАП) микроконтроллера STM32F407 фирмы STMicroelectronics.
STM32 - это микроконтроллер, построенный на ядре ARM Cortex-M4 [2]. Данное ядро имеет много преимуществ, но его основное преимущество на сегодняшний день - универсальность. Эти микроконтроллеры стали новым эталоном по уровню рабочих характеристик и стоимости. Кроме того, они могут использоваться в применениях с малым энергопотреблением и жесткими требованиями к характеристикам управления в масштабе реального времени. Поэтому, разработка универсальных решений (функций, библиотек) для этих устройств является весьма актуальной задачей.
Любой измерительный прибор обладает некоторой погрешностью, на него может оказывать влияние большое количество внешних и внутренних воздействий, что приводит к тому, что информация с него оказывается зашумленной. Чем сильнее зашумлены данные, тем сложнее обрабатывать такую информацию.
Фильтр — это алгоритм обработки данных, который убирает шумы и лишнюю информацию. В фильтре Калмана есть возможность задать априорную информацию о характере системе, связи переменных и на основании этого строить более точную оценку, но даже в простейшем случае (без ввода априорной информации) он дает отличные результаты.
В связи с этим целью данной работы является реализация фильтра Калмана для обработки электрических сигналов на ARM-микроконтроллере STM32F407.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Изучение алгоритма фильтрации электрических сигналов с помощью фильтра Калмана.
2. Определение требований к фильтру, выбор типа и коэффициентов. Выбор структурной формы.
3. Изучение основ программирования микроконтроллеров семейства STM32F407.
4. Изучение средств разработки для микроконтроллеров STM32F407.
5. Конфигурирование микроконтроллера STM32F407 под задачи фильтра Калмана.
6. Разработка рабочего кода.
В процессе выполнения работы поставленная цель была достигнута, и было сделано следующее:
1. Изучен алгоритм фильтрации электрических сигналов с помощью фильтра Калмана.
2. Изучены основы программирования микроконтроллеров семейства STM32F407.
3. Изучены средства разработки и отладки для микроконтроллеров STM32F407.
4. Разработан проект, сконфигурирован и запрограммирован микроконтроллер STM32F407 под задачи фильтра Калмана.
5. Реализован в коде С фильтр Калмана.
В результате проделанной работы была написана библиотека на языке программирования «Си», содержащая достаточно простой и эффективный алгоритм, очищающий сигнал от шума. Несмотря на конечность разрядности вычислительного ядра, данные, отфильтрованные с помощью микроконтроллера, не отличались от данных, обработанных на ПК в пакете MathLab (при использовании 64-х разрядной ОС Windows). Этот инструмент может быть использован не только для фильтрации шумов с АЦП, но и во многих других приложениях.
1. Сергиенко, А.Б. Цифровая обработка сигналов [Текст]: учебник для вузов/А.Б. Сергиенко. - СПб.: Питер, 2002. - 608 с.
2. Cortex-M Series Family [Электронный ресурс]. - http://www.arm.com/products/processors/cortex-m.
3. Дегтярёв, A.A. Элементы теории адаптивного расширенного фильтра Калмана [Текст]/А.А. Дегтярёв, Ш. Тайль, Препринт ИПМ им. М.В. Келдыша РАН. - М., 2003. - №26. - 35 с.
4. Иванов, Д.С. Использование фильтра Калмана в задаче определения ориентации тела, подвешенного на струне [Текст]: Руководство по лабораторной работе / Д.С. Иванов, М.Ю. Овчинников, С.С. Ткачев — М.: МФТИ, 2008. — 29 с.
5. Фрунзе, А. В. Микроконтроллеры? Это же просто! [Текст]/А.В. Фрунзе — М.: ООО «ИД СКИМЕН», 2002. — Т. 1. — ISBN 5-94929- 002-X.
6. STM32 F4 series of high-performance [Электронный ресурс]. — http://media.digikey.com/pdf/data%20sheets/st%20microelectronics%20pdf s/stm32f4 br.pdf
7. Trevor Martin : The Insider’s Guide To The STM32 ARM Based Microcontroller; Published - Coventry, UK: Hitex (UK) Ltd., 2009. - 103 p., ISBN: 0-9549988 8.