Нечеткое моделирование в среде matlab
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 – белый.