Итак, вам нужно ускорить модель объекта управления в несколько раз. Вы попробовали рекуррентные сетки, а потом решили вспомнить Ляпунова и Понтрягина и сделать это без data science. Поехали!
Введение
В этом блоге мы уже выпустили серию статей про суррогатные модели, которыми можно заменять сложные технические системы. Была статья и про расчет системы управления приводом элерона самолета через рекуррентную нейросеть на ячейках GRU.
Сеть GRU продемонстрировала неплохие результаты по части ускорения выполнения исходной модели, но очень сильно ошибалась на промежутках с сильной осцилляцией и вообще при высокой динамике выходной величины. Вторая проблема, как всегда с нейросетями, была в экстраполяции: модель была очень чувствительна к предыстории (показаниям, которые предшествовали началу моделирования), а чем больше берешь предысторию, тем меньше данных остается в датасете.
Вот и мы поставили себе следующую цель: повысить качество моделирования выходной величины, заменив объект управления на алгоритм динамического регрессора.
Основные этапы работы
Рассмотрим систему управления приводом элерона самолета. Модель представлена рисунке 1 в виде функциональных блоков MATLAB/SIMULINK.
Слева находится блок управления, мы его не трогаем. Справа находится привод, который получает из внешнего мира реакцию на свои перемещения (момент сопротивления среды M) и, конечно, сигнал управления.
В этой работе мы заменим блок справа на DR (Dynamic Regressor) при помощи алгоритма идентификации параметров динамического объекта, который исходные авторы метода [1] упоминают в контексте адаптивных систем и бессенсорного управления.
В этих методах звено считается объектом с динамическими характеристиками, которые постоянно нужно пересчитывать. При этом это не простой фильтр входных данных типа сглаживания, а модель, которая должна научиться изменять свои характеристики самостоятельно, в зависимости от входных данных.
Итак, наш DR создан, чтобы заменить объект, заданный в виде дифференциальных уравнений с начальными условиями (форма Коши):
где – вектор состояния системы;
– вектор управления.
Замена на Dynamic Regressor:
где – оценка выходной переменной (перемещение звена);
– вектор неизвестных параметров;
– вектор входных сигналов или регрессор модели.
Вектор включает в себя управляющие сигналы с контроллера постоянные , которые отвечают за режим работы привода и внешний суммарный момент сил .
В задаче у нас известен сигнал управления «Reference», который управляемый объект должен отрабатывать, минимизируя отклонение между своим выходом и эталоном (считаем, что объект управления сделан правильно и имеет только отрицательную обратную связь).
где – референсный сигнал;
– выходная переменная объекта управления с ДУ.
В последнем уравнении выходной сигнал с объекта управления (который описывается дифференциальными уравнениями) заменяем на модель с динамическим регрессором .
Тогда ошибку можно переписать в следующем виде:
Осталось только определить вектор неизвестных постоянных. Никакой магии, DR для этого использует градиентный метод оценивания параметров, в качестве функционала ошибки – квадратичный критерий. Вычислим оценки неизвестных параметров:
В каждый момент времени формируется новый вектор оценок параметров линейной регрессии и происходит адаптация под характер эталонного сигнала .
Условия, при которых динамический регрессор выдает адекватную оценку параметров модели, важно учитывать при построении моделей. Для модели вида:
где
Вектор оценок сходится к своим истинным значениям или ошибка параметров сходится к нулю асимптотически, если выполняется условие незатухающего возбуждения, которое накладывается на регрессор :
где существуют такие положительные числа и , для которых выполняется данное неравенство.
Теперь, к делу!
Моделирование показало практически одинаковые результаты по скорости вычисления искомой величины в сравнении с сетью GRU. Зато максимальная относительная ошибка составила 7% для всего времени моделирования! Как и ожидается, выход DR-модели в целом четко следует заданным входным командам:
Если приблизиться, обратная связь по DR-модели очень плотно следует за сигналом управления – хорошо, тут ничего не нарушается.
И напоследок сравним результаты на участках с сильной динамикой:
Как на участке с колебаниями, так и на участке с резким скачком, DR-модель отрабатывает нормально.
К слову, нейронная сеть тут допустила большую ошибку на заключительном этапе расчета, что ярко проиллюстрировано на рисунках 6 и 7.
Заключение
Система управления с динамическим регрессором показала гораздо лучшие результаты по моделированию величины перемещения звена привода элерона самолета, чем GRU-нейросеть.
Это доказывает, что инвестиции в изучение моделируемой системы позволяют выбрать такой метод, который будет работать гораздо лучше нейросетей.
Максимальная относительная ошибка составила 7%. Процесс расчета ускорен в 5 раз (7.34 сек вместо 36.6 сек). Преимущество разработанной методики заключается в онлайн-обучении или адаптации к новым оценкам параметров линейной модели в процессе моделирования.
Ссылки на полезные источники
[1] Цзянь Ван, С. В. Арановский, А. А. Бобцов, А. А. Пыркин, С. А. Колюбин, Метод обеспечения условий незатухающего возбуждения, Автомат. и телемех., 2018, выпуск 2, 71–79 http://www.mathnet.ru/links/b9167b4d3a6ac1a59d05094184dc829b/at15017.pdf
[2] Туан Ле Ван, Бобцов А.А., Пыркин А.А. Новый алгоритм идентификации нестационарных параметров для линейной регрессионной модели // Научно-технический вестник информационных технологий, механики и оптики. 2017. №5. URL: https://cyberleninka.ru/article/n/novyy-algoritm-identifikatsii-nestatsionarnyh-parametrov-dlya-lineynoy-regressionnoy-modeli (дата обращения: 15.08.2022).
Игорь Матвеев
Инженер, ЦИТМ Экспонента@Igorec_matveev
Николай Капырин
Инженер, ЦИТМ Экспонента @n_kapyrin
Arastas
Приятно, что кто-то с Хабра читает АиТ, хотя и несколько неожиданно. ;)
Вы в заключении пишете про расширенный регрессор. Вы его как-то расширяли?
Igorec_matveev Автор
Спасибо за замечание. Это была опечатка! В работе пока рассматривали применение динамического регрессора. В будущем, планируем провести эксперименты с расширением для ускорения сходимости :)
Arastas
Вы знаете, я не уверен, что термин «динамический регрессор» используется. Есть динамические регрессионные модели, есть динамическое расширение регрессора.