Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
13.02.2021
Размер:
1.52 Mб
Скачать

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ

РОССИЙСКОЙ ФЕДЕРАЦИИ

Московский Политехнический Университет (МПУ)

Кафедра «Автоматика и управление»

ЛАБОРАТОРНАЯ РАБОТА №5

по дисциплине

«Технологии нейронных сетей принятия решений»

Выполнил:

Преподаватель:

Цель работы: создание упрощённой системы управления роботом с использованием нейроконтроллера.

Используемое оборудование: MatLab 2016b

Теоретическое введение

Нейроконтроллерами обычно называют нейронные сети, предназначенные для решения задач управления. Нейроконтроллеры применяются в системах принятия решения, к примеру – в роботах. Для ИИ робота крайне сложно написать алгоритм поведения, учитывающий все особенности окружающей среды и её воздействия на него, поэтому логичнее использовать нейронную сеть, обученную работать в условиях помех и «энтропии». К примеру, боевой робот:

Рис. 1.1. Боевой робот "Нерехта-2"

В настоящее время боевые роботы часто контролируются людьми – операторами – автоматизированная система:

Рис. 1.2. Боевой робот под управлением оператора

Для создания полностью автоматической системы возможно применение нейронных сетей и нейроконтроллеров.

Для любого робота, боевого (наш случай), медицинского, транспортного алгоритм принятия решения можно описать следующим образом:

Рис. 1.3. Алгоритм работы АСУ с применением нейроконтроллера

Данные «окружающей среды» робот получает с датчиков, «восприятие» - обработка информации с датчиков, в нашем случае – распознавание образов, «нейроконтроллер» - принятие решений, с последующей подачей сигналов, «действие» - движения, реализуемые приводами.

Упрощённый алгоритм реализации состоит из 4-х пунктов:

Рис. 1.3. Алгоритм работы нейроконтроллера любого робота

  1. С помощью камер и датчиков, поступает информация об окружающей обстановке, эти данные подаются на обученную сеть распознавания образов.

  2. Искусственная нейронная сеть распознавания образов обрабатывает полученные данные и приходит к заключению – количеству противников, или, к примеру, состоянию рельефа вокруг робота.

  3. Нейроконтроллер – ответственный за принятия решения – опрашивает периферию робота - состояние гусениц, топливо, кол-во патронов, также, получает информацию с сети распознавания образов и на основании полученных данных выдаёт решение – к примеру «сменить позицию», «атаковать цели», «отступить» и т.д.

  4. Далее сигналы, являющиеся выводами нейроконтроллера, подаются на систему управления периферией – гусеницы, оружие, поворот башни, устройства перезарядки, передатчики для обмена информации со штабом и т.д.

Следует отметить, что данный алгоритм упрощённый, в реальных условиях может включать дополнительные логические блоки, также важно понимать, что алгоритм применим не только для боевых роботов, но и транспортных, медицинских, обслуживающих и т.д.

Задача: создать упрощённый нейроконтроллер поведения боевого робота.

Выполнение

Для реализации упрощённого нейроконтроллера будем использовать персептрон, с 3-мя нейронами в скрытом слое. Данная архитектура подобрана опытным путём. Сеть распознавания образов была рассмотрена ранее, поэтому мы будем подавать на вход нейроконтроллера её результаты, опустив её моделирование.

Рис. 2.1. Алгоритм работы упрощённого нейроконтроллера боевого робота

Нейроконтроллер получает информацию в реальном времени о состоянии боезапаса его основных боевых средств – пулемёта и гранатомёта, под термином «состояние робота» - подразумевается возможности его функционирования, к примеру: 2 – «всё в порядке», топливо есть, повреждений нет, 1 – «повреждены некоторые узлы, некритично», 0 – «необходим ремонт». Присутствие противника – результат сети распознавания образов, на основе данных с датчиков, тепловизоров и т.д., к примеру: 2 – много, либо «техника», 1 – немного, либо «пехота», 0 – нет, либо «гражданские».

Атаковать – начать огонь приоритетным оружием по отношению к типу цели, отступить – двигаться в противоположном направлении от противника, укрепить позицию – возможен обмен данными со штабом о противниках или обстановке, смена позиции - передвижение в сторону укрытия, для более безопасного ведения стрельбы по противнику, либо уход с линии огня.

Создадим обучающие выборки для нейроконтроллера:

Состояние робота

Пулемёт

Гранатомёт

Присутствует враг

Действие

2

0

0

0

укрепить поз.

2

0

0

1

укрепить поз.

2

0

1

1

атаковать

2

0

1

2

атаковать

2

1

0

2

сменить поз.

2

1

0

1

атаковать

1

0

0

0

укрепить поз

1

0

0

1

сменить поз.

1

0

1

1

атаковать

1

0

1

2

сменить поз.

1

1

0

2

сменить поз.

1

1

0

1

сменить поз.

0

0

0

0

укрепить поз.

0

0

0

1

сменить поз.

0

0

1

1

сменить поз.

0

0

1

2

отступить

0

1

0

2

отступить

0

1

0

1

сменить поз.

Соответственно – действие – T вектор, первые 4-е столбца таблицы – P вектор.

Перейдём к работе с средой MatLab:

Рис. 1.4. Создание обучающей выборки для нейроконтроллера в MatLab

Создадим целевой вектор (1.5):

Рис. 1.5. Создание целевого вектора для нейроконтроллера в MatLab

Создание и обучение сети (1.6):

Рис. 1.6. Создание нейроконтроллера в MatLab

Моделирование работы нейроконтроллера на тестовых примерах(1.7):

Рис. 1.7. Результаты выполнения тестовых примеров

Как видно из результата первого теста нейроконтроллер при нормальном функционировании робота, и полном боекомплекте двух оружий решил атаковать пехоту противника, что является правильным решением.

Во втором тесте в случае наличия небольших повреждений, полного боезапаса и наличии «техники» в отрядах противника, нейроконтроллер решил сменить позицию, занять более выгодное положение для ведения огня, что является правильным решением.

В третьем тесте при наличии серьёзных повреждений, отсутствии боезапаса на гранатомёте и наличии «техники» в отрядах противника, нейроконтроллер решил отступить, что так же является правильным решением.

В силу упрощения поставленной задачи, созданный в данной лабораторной работе нейроконтроллер, конечно-же, не способен вести «реальные» боевые действия, для его обучения необходимо учитывать ещё множество факторов и более сложная архитектура, так-же необходима хорошо натренированная сеть распознавания образов и обработчик результатов «победитель получает всё», который фильтрует результаты нейроконтроллера, но в рамках лабораторной работы, полученных результатов достаточно, для ознакомления с понятием нейроконтроллера.

Вывод: в результате выполнения данной лабораторной работы мною были получены навыки создания упрощённой системы управления роботом с использованием нейроконтроллера в среде MathLab.

Соседние файлы в папке lab5