Разработка систем управления
Общий опыт: 6 лет
У меня есть опыт работы с системами автоматического управления летательных аппаратов (БПЛА) и испытательных устройств для систем электропитания космических аппаратов.
Опубликованные работы
За время обучения в аспирантуре я опубликовал пару десятков статей и тройку патентов:
Все они относятся к испытаниям систем электропитания космических аппаратов.
Инструменты
MATLAB зачастую является первым (и самым проработанным) выбором в качестве среды для разработки систем управления. Поскольку в определённый момент я начал пользоваться pandas , я решил перевести на Python также и свое окружение для работы с системами управления, использовав для этого python-control .
Сегодня же я бы занимался системами управления на Julia , поскольку в его экосистеме окрепли пакеты и для самих систем управления , и для анализа неопределённостей , и очень впечатляющая коллекция интеграторов .
Испытательные комплексы
Я занимался разработкой электронных нерассеивающих нагрузок и программируемых зарядно-разрядных устройств. Я исследовал вопросы сопряжения систем управления отдельных нагрузочных ячеек (состоящих из импульсных преобразователей и широкополосных линейных регуляторов) с целью получения требуемых входных адмиттансно-частотных характеристик, в частности, для возможности наведения управляемых помех по потребляемом току в десятки ампер.
В целом, всё выглядело примерно так: сначала делались простые системы управления на БИХ-фильтрах или широкополосных аналоговых ПИД-регуляторах для исходных математических моделей, затем производилась идентификация устойчивых систем (алгоритмами N4SID и MOESP ), делался синтез MIMO H∞-регуляторов для нескольких преобразователей и балансировались взаимовлияние ячеек.
Винтокрылые БПЛА
Для системы управления вертолётов я разрабатывал как саму систему управления с необходимыми цепями обработки, так и имитационную математическую модель вертолёта, поскольку без замкнутых контуров управления вертолёт является неустойчивой системой, что значительно затрудняет синтез систем управления.
Математическая модель во многом основывалась на работах Пэдфилда и Джонсона и разрабатывалась на C++ (подробнее в соответствующем разделе ).
Система управления разрабатывалась как набор MIMO-регуляторов ввиду сильного взаимовлияния контуров управления (особенно по циклическим шагам автомата перекоса). Помимо классических вариантов (H∞, ПИД), было исследовано несколько экспериментальных вариантов регуляторов, в частности:
-
нелинейные регуляторы (полученные путём бэкстеппинга ) — по факту они получались сильно зависящими от проработанности математической модели и давали слишком консервативные результаты (что, вообще говоря, логично, для ляпуновских регуляторов);
-
регуляторы на основе нейросетей ( Keras , см. Python ) — делались методом обучения с подкреплением с градиентным поиском оптимума. Они потребляли много вычислительных ресурсов, устойчивость не всегда обеспечивалась даже в простейших режимах полёта, а надёжность такой системы управления в экстремальных режимах никак не гарантировалась.
Фильтрация
Для систем управления также разрабатывались различные цифровые фильтры (см. C++ ). В частности, при разработке модуля определения направления ветра по косвенным данным, я строил различные варинты наблюдателей ( UKF , многочастичный ), но в итоге с задачей прекрасно справился незатейливый расширенный фильтр Калмана .
Иллюстрация
-
Композиция в целом: обложка превосходной книги Хассана Халила по нелинейным системам.
-
Уравнения: расширенный фильтр Калмана .
-
Структурная схема: линейная стационарная система с неопределённостями, приведённая путём дробно-линейных преобразований к виду, удобному для анализа и синтеза робастных регуляторов ( статья , с которой пошла мода на подобные вещи).
-
Вертолёт на заднем плане: Commanche — с детства нравился его внешний вид.