УДК 004.422.8
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АЛГОРИТМА КАЛМАНА-ЛЕТОВА
В. А. Семенов, Т. Н. Иванилова
Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31
E-mail: [email protected]
Представлены результаты разработки программного средства с помощью инструментария MatLab, реализующего расчеты калмановской фильтрации. Приведены краткое описание модели, экранные формы программного средства, область применения.
Ключевые слова: MatLab, случайные помехи, фильтр Калмана, динамическая система, оптимальное управление.
PROGRAM IMPLEMENTATION OF THE KALMAN-LETOV ALGORITHM
V. A. Semenov, T. N. Ivanilova
Reshetnev Siberian State University of Science and Technology 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: [email protected]
The article presents the results of software development using the MatLab toolkit that implements Kalman filtering calculations. The brief description of the model, the screen forms of the software, the scope of application are given.
Keywords: MatLab, random interference, Kalman filter, dynamic system, optimal control.
Фильтрация Калмана применяется во многих прикладных областях, таких как фильтрация зашумлен-ных сигналов и прогнозирование будущих состояний. Также фильтр Калмана используется в задачах управления причаливанием космических аппаратов, в задачах стабилизации БПЛА.
Рассмотрим модель динамического процесса в детерминированной постановке, т. е. предполагая отсутствие случайных помех и полную наблюдаемость процесса, когда y(t) = x(t). Модель процесса можно представить в виде линейной динамической системы x(t) = Ax(t) + Bu(t) при начальном условии x(0) = x0. где А - определяет скорость повышения параметров; B - определяет скорость повышения при управлении.
Рассмотрим задачу оптимального управления системой как задачу минимизации критерия качества
T
J = x(T)T -у-x(T) + j[x(t)T -Q ■ x(t) + u(t)T ■ R -u(t)]dt,
0
где у - симметричная отрицательно определенная матрица; Q - симметричная неотрицательно определенная матрица; R - симметричная положительно определенная матрица; x(t) - Ж-вектор, где x,(t) уровень i-го параметра в момент t.
После формирования исходных данных вычисляется уравнение Риккати в обратном времени, оптимальные коэффициенты усиления, управляющие воздействия, оптимальная траектория и одновременно рассчитывается значение критерия оптимальности [1; 2].
Программа разработана в среде программирования MatLab v 7.12.0. с применением графического интерфейса Guide. Для написания интерфейса использовались такие элементы как uitable, edit text, push button
и axes. Получившийся интерфейс главной формы показан на рис. 1 [3].
Для изменения размерности матриц была написана функция обработки события Callback для элемента Edit text «М». В данной функции сформированы глобальные переменные для изменения размера матриц, количества итераций, реализовано считывание переменных из текстовых полей, конвертирование текста в числовой формат. После ввода необходимых данных нажатием на клавишу «Enter» происходит построение матриц.
Данные в матрицы вводятся вручную. Далее будет предусмотрена возможность конвертации данных из файла. Кнопка «Расчет» позволяет вычислить критерий качества управления (без случайных помех). Так же реализован расчет со случайными помехами. В свойствах кнопки на обработку события Callbak, была написана функция, которая реализует считывание значений матриц и их запись в массивы. После этого происходит расчет оптимального уровня по группам и вывод результата в не редактируемое поле «Результат». Затем произойдет открытие второго окна для вывода результирующей матрицы и построения графика (рис. 2).
Данная программная реализация разработана для планирования и оценки образовательного процесса на основе компетентностного подхода и позволяет получить результаты, качественно совпадающие с результатами традиционного экспертного подхода.
Рассмотренный алгоритм Калмана-Летова, предполагается также использовать в управлении БПЛА, которые будут помогать в наблюдениях за распространениями лесных пожаров [4; 5].
Решетневские чтения. 2017
Рис. 1. Создание интерфейса в среде Matlab
Рис. 2. Форма для вывода графика
Библиографические ссылки
1. Доррер Г. А. Математическая модель управления компетенциями студентов вуза // Вестник СибГТУ, 2015. С. 17-20.
2. EveryCould [Электронный ресурс]. URL: https:// www.everycloudtech.com/kalman-iiltering (дата обращения: 26.06.2017).
3. Matlab.exponenta [Электронный ресурс]. URL: http://matlab.exponenta.ru/ (дата обращения: 26.06.2017).
4. Использование фильтра Калмана для решения задач уточнения координат БПЛА [Электронный ресурс]. URL: https://www.rae.ru/ (дата обращения: 26.06.2017).
5. Доррер Г. А., Иванилова Т. Н. Компьютерные обучающие средства для подготовки специалистов по охране леса // Хвойные бореальной зоны. Научно-технический журнал. XXV. Красноярск, 2008, № 1-2. С. 128-134.
References
1. Dorrer G. Matematicheskaja model' upravlenija kompetencijami studentov vuza [Mathematical model of management of competences of university students]. Krasnoyarsk, Vestnik SibGTU., 2015. P. 17-20.
2. EveryCould. Available at: https://www.every-cloudtech.com/kalman-filtering (accessed: 26.09.2017).
3. Matlab.exponenta. Available at: http://matlab. exponenta.ru/ (accessed: 26.06.2017).
4. Using the Kalman filter to solve the UAV coordinate refinement problems. Available at: https://www. rae.ru/ (accessed: 26.06.2017).
5. Dorrer G., Ivanilova T. Komp'juternye obucha-jushhie sredstva dlja podgotovki specialistov po ohrane lesa [Computer training tools for training forest conservation specialists]. Krasnoyarsk, Coniferous boreal zone. Scientific and technical journal. 2008. P. 128-134.
© Семенов В. А., Иванилова Т. Н., 2017