Хочу поделится своим опытом работы с нейронными сетями (НС), а именно, речь пойдет про попытку их практического применения в системах управления летательным аппаратом. Постараюсь не сильно вникая в термины и теорию полета, объяснить каким образом я прилепил туда НС.
Причиной интереса к НС стало то, что на сегодняшний день проблема проектирования систем автоматического управления сложными динамическими объектами характеризуется переходом от концепций адаптивного управления к интеллектуальному управления. Кроме этого, активно внедряются распределенные вычислительные системы.
В доступных источниках информации достаточно мало раскрывается вопрос применения НС в системах управления, а про конкретные алгоритмы с исходниками и говорить нечего.
Вот собственно и поэтому возникла идея применить аппарат нейронных сетей для управления самолетом. Почему самолетом? Все просто – в свое время детально изучал их динамику полета.
Управление любым динамическим объектом сводится к решению системы дифференциальных уравнений, которые описывают его динамику, а также генерации сигналов управления по заданному закону.
Описание динамики самолета сводится к двум системам дифференциальных уравнений, которые описывают продольное и боковое движение самолета( более подробно можно прочитать в книгах Асланяна и Красовского[1,2]).
Таким образом, исходным у меня была система нелинейных дифференциальных уравнений, которые описывают нелинейную динамику продольного движения (благо у моего научного руководителя были коэффициенты для F15-eagle).
Система состоит из двух каналов: канала прямого управления и виртуального канала.
В прямом канале, при управлении продольным движением самолета, нейроконтроллер НМ1 производит стабилизацию высоты и скорости полета по необходимым заданным величинам.
В виртуальном канале проводится прогнозирование поведения объекта управления на определенный интервал времени.
На тактическом уровне управления задаются параметры движения самолета – значения воздушной скорости и высота полета. Управление на исполнительном уровне проводится путем стабилизации заданной скорости полета и угла наклона траектории, значении которого зависит от заданной высоты полета.

На первом этапе работы алгоритма происходит инициализация начальной популяции хромосом, которая генерируется случайным образом. Каждый параметр сети (синаптические веса и пороговые смещения) кодируются 32 битами. При этом диапазон изменения каждого из параметров принимается от 0 до +1.
После инициализации начальных условий, вычисляются ошибки по скорости и углу наклона траектории, которые подаются на вход нейроэмулятора НМ2. На выходе нейронной сети формируются два нормированных управляющих сигнала – угол отклонения руля высоты (от -1 до +1) и величина тяги двигателя (от 0 до +1).
Следующий шаг – моделирование динамики самолета на определенном интервале времени, то есть решение упомянутой выше системы дифференциальных уравнений (вычисляется численным методом Рунге-Кутта четвертого порядка). Интегрирование проводится с постоянным шагом.
Далее вычисляется критерий качества управления (квадратичный интегральный) и он же является функцией приспособленности (ФП) генетического алгоритма.
Происходит оценка приспособленности – расчет ФП для каждой хромосомы в популяции. В случае, если критерий окончания эволюции не выполняются, производится селекция хромосом и применение генетических операторов, таким образом создается новое поколение.
В качестве критерия окончания эволюции приняты такие факты: выполнение алгоритма не улучшает достигнутое значение минимума или закончилось количество установленных эпох.
Решением задачи оптимизации выбирается хромосома с наилучшим значением функции приспособленности.
Следующий этап – копирование параметров оптимизации в нейроконтроллер НМ1.
Для построения моделей нейроконтролеров НМ1 и НМ2 использовал многослойную нейронную сеть прямой передачи сигналов (входной, выходной и два скрытых слоя). Структура сети идентична для каждого из каналов: 2 входа, n нейронов в обоих скрытых слоях (путем численного моделирование подобрал, что оптимальным является количество 15) и 2 выходных нейрона.
В качестве активационной функции каждого из нейронов в канале руля высоты была выбрана сигмоподобная тангенциальная функция:
В канале управления тягой двигателя – сигмоподобная логарифмическая функция:
Далее процесс числового моделирования и анализ результатов. Если кратко – система работает и справляется с поставленной задачей стабилизации высоты и скорости, но скорость выполнения недопустимо медленная.
Замечу, что в качестве объекта управления может быть выбран любой динамический объект (к примеру робот).
Если будет интересно выложу более подробное описание системы и реализацию кода на Delphi.
P.S. К сожалению не удалось избежать специфической терминологии :(
Подробное объяснение динамики полета:
1. Красовский А.А. Системы автоматического управления полётом и их аналитическое конструирование.
– М.: Наука, 1973. – 560 с.
2. Асланян А.Э. Системы автоматического управления полётом летательных аппаратов. – Киев: ВВАИУ, 1984. – 436 с.
Вступление
Причиной интереса к НС стало то, что на сегодняшний день проблема проектирования систем автоматического управления сложными динамическими объектами характеризуется переходом от концепций адаптивного управления к интеллектуальному управления. Кроме этого, активно внедряются распределенные вычислительные системы.
В доступных источниках информации достаточно мало раскрывается вопрос применения НС в системах управления, а про конкретные алгоритмы с исходниками и говорить нечего.
Вот собственно и поэтому возникла идея применить аппарат нейронных сетей для управления самолетом. Почему самолетом? Все просто – в свое время детально изучал их динамику полета.
Описание объекта управления
Управление любым динамическим объектом сводится к решению системы дифференциальных уравнений, которые описывают его динамику, а также генерации сигналов управления по заданному закону.
Описание динамики самолета сводится к двум системам дифференциальных уравнений, которые описывают продольное и боковое движение самолета( более подробно можно прочитать в книгах Асланяна и Красовского[1,2]).
Таким образом, исходным у меня была система нелинейных дифференциальных уравнений, которые описывают нелинейную динамику продольного движения (благо у моего научного руководителя были коэффициенты для F15-eagle).
Алгоритм системы управления
Система состоит из двух каналов: канала прямого управления и виртуального канала.
В прямом канале, при управлении продольным движением самолета, нейроконтроллер НМ1 производит стабилизацию высоты и скорости полета по необходимым заданным величинам.
В виртуальном канале проводится прогнозирование поведения объекта управления на определенный интервал времени.
На тактическом уровне управления задаются параметры движения самолета – значения воздушной скорости и высота полета. Управление на исполнительном уровне проводится путем стабилизации заданной скорости полета и угла наклона траектории, значении которого зависит от заданной высоты полета.

На первом этапе работы алгоритма происходит инициализация начальной популяции хромосом, которая генерируется случайным образом. Каждый параметр сети (синаптические веса и пороговые смещения) кодируются 32 битами. При этом диапазон изменения каждого из параметров принимается от 0 до +1.
После инициализации начальных условий, вычисляются ошибки по скорости и углу наклона траектории, которые подаются на вход нейроэмулятора НМ2. На выходе нейронной сети формируются два нормированных управляющих сигнала – угол отклонения руля высоты (от -1 до +1) и величина тяги двигателя (от 0 до +1).
Следующий шаг – моделирование динамики самолета на определенном интервале времени, то есть решение упомянутой выше системы дифференциальных уравнений (вычисляется численным методом Рунге-Кутта четвертого порядка). Интегрирование проводится с постоянным шагом.
Далее вычисляется критерий качества управления (квадратичный интегральный) и он же является функцией приспособленности (ФП) генетического алгоритма.
Происходит оценка приспособленности – расчет ФП для каждой хромосомы в популяции. В случае, если критерий окончания эволюции не выполняются, производится селекция хромосом и применение генетических операторов, таким образом создается новое поколение.
В качестве критерия окончания эволюции приняты такие факты: выполнение алгоритма не улучшает достигнутое значение минимума или закончилось количество установленных эпох.
Решением задачи оптимизации выбирается хромосома с наилучшим значением функции приспособленности.
Следующий этап – копирование параметров оптимизации в нейроконтроллер НМ1.
Для построения моделей нейроконтролеров НМ1 и НМ2 использовал многослойную нейронную сеть прямой передачи сигналов (входной, выходной и два скрытых слоя). Структура сети идентична для каждого из каналов: 2 входа, n нейронов в обоих скрытых слоях (путем численного моделирование подобрал, что оптимальным является количество 15) и 2 выходных нейрона.
В качестве активационной функции каждого из нейронов в канале руля высоты была выбрана сигмоподобная тангенциальная функция:
В канале управления тягой двигателя – сигмоподобная логарифмическая функция:
Далее процесс числового моделирования и анализ результатов. Если кратко – система работает и справляется с поставленной задачей стабилизации высоты и скорости, но скорость выполнения недопустимо медленная.
Замечу, что в качестве объекта управления может быть выбран любой динамический объект (к примеру робот).
Если будет интересно выложу более подробное описание системы и реализацию кода на Delphi.
P.S. К сожалению не удалось избежать специфической терминологии :(
Подробное объяснение динамики полета:
1. Красовский А.А. Системы автоматического управления полётом и их аналитическое конструирование.
– М.: Наука, 1973. – 560 с.
2. Асланян А.Э. Системы автоматического управления полётом летательных аппаратов. – Киев: ВВАИУ, 1984. – 436 с.