Решетневскуе чтения. 2017
УДК 004.4:629.73
ПОДХОД К РАЗРАБОТКЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ИСПОЛНИТЕЛЬНОГО МЕХАНИЗМА РУЛЕВЫХ ПОВЕРХНОСТЕН БЕСПИЛОТНОГО ЛЕТАТЕЛЬНОГО АППАРАТА
В. Д. Дерябкин1*, Е. Г. Гудаева1, И. В. Макаров2
1 Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31 2ООО НПП «Автономные аэрокосмические системы - ГеоСервис» Российская Федерация, 660079, г. Красноярск, ул. Электриков, 156/1 E-mail: Deryabkinda@mail.ru
В современных беспилотных летательных аппаратах применяется множество исполнительных механизмов, что ставит вопрос об их унификации и формировании подхода комплексного тестирования.
Ключевые слова: устройство, комплекс, интерфейс, программный, алгоритм.
APPROACH TO SOFTWARE DEVELOPMENT OF EXECUTIVE MECHANISMS
OF STEERING SURFACES OF A DRONE
V. D. Deryabkin1*, E. G. Gudaeva1, I. V. Makarov2
:Reshetnev Siberian State University of Science and Technology 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation
2Limited Liability Company Scientific-Production Enterprise "Autonomous Aerospace Systems - GeoService" 156/1, Electricov Str., Krasnoyarsk, 660079, Russian Federation E-mail: Deryabkinda@mail.ru
In modern unmanned aerial vehicles, many executive mechanisms are used, which raises the question of their unification and the formation of an integrated testing approach.
Keywords: servo device, complex, interface, software, algorithm.
В области беспилотных летательных аппаратов самолетного типа, существует ряд задач и их архитектурных решений, когда стандартных сервоприводов недостаточно [1]. Требуется работа в широком диапазоне питающего напряжения, помехозащищенность коммуникационного интерфейса, возможность само диагностики и многое другое. В авторском коллективе было разработано решение, работающее в диапазоне 12-36 В постоянного тока, при температурах «-40 +60 С», имеющий дублированный интерфейс RS-485.
В процессе разработки программного обеспечения возникали следующие проблемы:
1. Код устройства получался сложно воспринимаемым из-за перекрестных вызовов методов без применения операционной системы и слабо защищенным из-за ручного управления режимами ядра и динамическим распределением памяти.
2. Тестирование аппаратной и программных частей были неразделимы и проводились методом «черного ящика».
3. Каждый конкретный комплекс обладал собственными параметрами, которые было необходимо учитывать внутри исполнительного механизма.
С целью снижения сложности программы был осуществлен переход с процедурно-ориентированного стиля на объектно-ориентированный [2]. Все логиче-
ские блоки программы были представлены в виде взаимосвязанных статических объектов. Динамическое выделение памяти было заменено на распределение памяти времени компиляции [3]. Был запрещен вызов исключений. Каждое прерывание имело свой собственный обработчик. Для четкого разделения времени выполнения каждой задачи и формировании четкой иерархии приоритетов была задействована операционная система реального времени FreeRTOS [4], сконфигурированная в режиме вытесняющей многозадачности без использования динамической памяти.
С целью разделить тестирование алгоритмов поведения и аппаратного управления были задействованы интерфейсы [5], которые предоставляют возможность тестирования алгоритмов поведения устройства на имитационных моделях, после которого можно производить тестирование с реальным устройством.
Для решения проблемы «доводки» устройства для каждого конкретного комплекса была заложена возможность конфигурации индивидуальных параметров, таких как конечные точки, ограничение потребляемой мощности, параметры ПИД-регулятора [6] «на месте» при помощи интерфейса командной строки.
Разработанный подход к разработке программного обеспечения позволяет писать надежный и легко поддерживаемый код, а так же отлаживать логику поведения устройства обособленно от аппаратного
Системы управления, космическая навигация и связь
обеспечения. В будущем это позволит имитировать весь конечный комплекс, что снизит затраты на разработку.
Библиографические ссылки
1. Wikipedia [Электронный ресурс]. URL: https:// ru.wikipedia.org/wiki/Сервопривод (дата обращения: 12.09. 2017).
2. Лафоре Р. Объектно-ориентированное программирование в С++.
3. Хантер Р. Основные концепции компиляторов. М. : Вильямс, 2002. 36 с.
4. Грэхем И. Объектно-ориентированные методы. Принципы и практика. 3-е изд. М. : Вильямс, 2004. С. 256.
5. Хелм Р., Джонсон Р., Влиссидес Дж. и др. Приемы объектно-ориентированного проектирования. Паттерны проектирования. 2016.
6. Карпов В. Э. ПИД-управление в нестрогом изложении. М., 2012.
References
1. Wikipedia [An electronic resource]. Available at: https://ru.wikipedia.org/wiki/Servoprivod (accessed 12.09. 2017).
2. Lafore R. Object-oriented programming in With ++.
3. Hunter R. The main concepts of compilers. M. : Williams, 2002. p. 36.
4. Graham I. Object-oriented methods. Principles and practice. 3rd prod. M. : Williams, 2004. p. 256.
5. Helm R., Johnson R., Vlissides J., etc. Methods of object-oriented design. Design patterns. 2016.
6. Karpov V. E. PID-management in mild statement. M., 2012.
© Дерябкин В. Д., Гудаева Е. Г., Макаров И. В., 2017