Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_Заячковский_КСМм-14-1_ДИПЛОМ.doc
Скачиваний:
334
Добавлен:
16.03.2016
Размер:
2.62 Mб
Скачать

4 Моделирование нечеткой системы в matlab

4.1 Описание среды моделирования

MATLAB – это высокоуровневый язык технических расчетов, интерактивная среда разработки алгоритмов и современный инструмент анализа данных. MATLAB по сравнению с традиционными языками программирования (C/C++, Java, Pascal, FORTRAN) позволяет на порядок сократить время решения типовых задач и значительно упрощает разработку новых алгоритмов. MATLAB представляет собой основу всего семейства продуктов MathWorks и является главным инструментом для решения широкого спектра научных и прикладных задач, в таких областях как:

– моделирование объектов и разработка систем управления,

– проектирование коммуникационных систем,

– обработка сигналов и изображений,

– измерение сигналов и тестирование,

– финансовое моделирование, вычислительная биология и др.

Ядро MATLAB позволяет максимально просто работать с матрицами реальных, комплексных и аналитических типов данных. Содержит встроенные функции линейной алгебры (LAPACK, BLAS), быстрого Фурье преобразования (FFTW), функции для работы с полиномами, функции базовой статистики и численного решения дифференциальных уравнений.

Все встроенные функции ядра MATLAB разработаны и оптимизированы специалистами и работают быстрее или так же, как их эквивалент на C/C++.

Ключевые возможности и компоненты MATLAB:

– Платформонезависимый, высокоуровневый язык программирования ориентированный на матричные вычисления и разработку алгоритмов;

– Интерактивная среда для разработки кода, управления файлами и данными;

– Функции линейной алгебры, статистики, анализ Фурье, решение дифференциальных уравнений и др.;

– Богатые средства визуализации, 2-D и 3-D графика;

– Встроенные средства разработки пользовательского интерфейса для создания законченных приложений на MATLAB;

– Средства интеграции с C/C++, наследование кода, ActiveX технологии;

– Доступ к функциям .NET.

Одним из ключевых компонентов MATLAB является Simulink. Simulink - интерактивный инструмент для моделирования, имитации и анализа динамических систем. Он дает возможность строить графические блок-диаграммы, имитировать динамические системы, исследовать работоспособность систем и совершенствовать проекты. Simulink полностью интегрирован с MATLAB, обеспечивая немедленным доступом к широкому спектру инструментов анализа и проектирования. Simulink позволяет производить проверку результатов в режиме реального времени. Возможность задания в блоках любых математических выражений позволяет решать как типовые задачи, так и пробовать новые решения и находить наиболее эффективные компромиссы. Благодаря использованию этого продукта уменьшается потребность в покупке опытных образцов и сокращается стоимость тестирования. Пакет содержит обширную библиотеку компонентов блок-схемы, а также удобный редактор компонентов. Эти преимущества делают Simulink наиболее популярным инструментом для проектирования систем управления и коммуникации, цифровой обработки и других приложений моделирования. 

Пакет «Matlab» c расширением «Fuzzy Logic Toolbox» позволяет создавать экспертные системы на основе нечеткой логики, проводить кластеризацию нечеткими алгоритмами, а также проектировать нечеткие нейросети.  Пакет включает графический интерфейс для интерактивного пошагового проектирования нечетких систем, функции командной строки для разработки программ, а также специальные блоки для построения систем нечеткой логики в Simulink. 

4.2 Моделирование нечеткого регулятора

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

В случае с мобильным роботом, входами нечеткой системы служат 5 инфракрасных датчиков, выходами – двигатели.

Рисунок 4.1 – Архитектура нечеткой системы

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

Как было сказано ранее, входами системы служат датчики, состоящие из пар инфракрасный светодиод – фототранзистор. При отсутствии поверхности под датчиком, либо наличии неотражающих поверхностей напряжение на фототранзисторе близко либо равно нулю. Чем больше отражательная способность поверхности, тем больше напряжение на фототранзисторе. Информация с датчиков поступает на АЦП микроконтроллера, который сопоставляет уровень полученного сигнала значениям [0;255].

Таким образом, при задании входным переменным функций принадлежности, выбран диапазон [0;255].

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

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

Рисунок 4.2 – Функции принадлежности входных переменных

Для выходных переменных, функции принадлежности имеют следующий вид:

Рисунок 4.3 – Функции принадлежности выходных переменных

При задании выходным переменным функций принадлежности выбран диапазон [-64;255]. Диапазон имеет отрицательные значения, так как в некоторых случаях роботу необходимо двигаться задним ходом.

Для лингвистической оценки выходных переменных используются шесть термов с именами «back», «min», «slow», «med», «fast» и «max». Термы «min», «slow», «med», «fast» и «max» соответствуют случаям, когда колесо робот вращается вперед. Терм «back» соответствует вращению колеса в обратную сторону.

На рисунке 4.4 показано расположение датчиков робота, обозначенных как D1-D5. В реальных условиях линия, по которой едет робот может перекрывать от одного до трех датчиков.

Рисунок 4.4 – Расположение робота на линии

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

‒ робот разворачивается на месте;

­‒ робот резко поворачивает;

‒ робот плавно поворачивает;

‒ робот едет прямо с максимальной скоростью.

В таблице 4.1 описаны правила базы знаний робота. При этом 0 на датчике означает черный цвет, 1 – белый.

Таблица 4.1 – правила базы знаний робота

Значения датчиков

Левый двигатель

Правый двигатель

Описание

D1

D2

D3

D4

D5

1

1

1

1

1

back

Slow

Разворот на месте в поисках линии

1

1

1

1

0

min

Med

Поворот влево на малой скорости

1

1

1

0

1

med

Fast

Плавный поворот влево на средней скорости

1

1

1

0

0

slow

Fast

Быстрый поворот влево на макс. скорости

1

1

0

0

1

fast

Max

Плавный поворот влево на макс. скорости

1

1

0

1

1

max

Max

Движение вперед с максимальной скоростью

1

0

0

0

1

max

Max

1

0

0

1

1

max

Fast

Плавный поворот вправо на макс. скорости

1

0

1

1

1

fast

Med

Плавный поворот вправо на средней скорости

0

0

1

1

1

fast

Slow

Быстрый поворот вправо на макс. скорости

0

1

1

1

1

med

Min

Поворот вправо на малой скорости

Рисунок 4.5 – Правила базы знаний, записанные в Fuzzy Logic Toolbox.

Рисунок 4.6 – Визуализация нечеткого вывода Мамдани в Rule Viewer

Нечеткий вывод Мамдани также можно представить в виде графиков поверхностей.

Рисунок 4.7 – Нечеткий вывод Мамдани, показывающий зависимость значений выхода (left) от значений входов (d2, d1)