Не работает fuzzy matlab

Не работает Surf Viewer (fuzzy toolbox)

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Fuzzy Logic Toolbox и Matlab скрипт
Здравствуйте, уважаемые специалисты. Мне в программном скрипте нужно встроить файл Parameter8.fis.

Delphi используя fuzzy logic toolbox Matalb
Имеется необходимость создания приложения на Delphi используя fuzzy logic toolbox Matalb.

Задача подружить fuzzy logic toolbox и excel
Здравствуйте! Построена модель (с помощью fuzzy logic toolbox) обработки нескольких переменных на.

Интеграция в c # системы нечеткого вывода созданная в Fuzzy logic toolbox (Matlab)
ДОбрый вечер эксперты, специалисты по программированию.Пишу прогу которая расчитывает рейтинг.

Fuzzy logic: есть модель , управляемая ПИД регулятором, необходимо поставить Fuzzy регулятор
Всем привет, у меня есть модель , которой я управляю ПИД регулятором, необходимо поставить Fuzzy.

Нетбук asus eee surf(700) не работает от БП
нетбук asus eee surf(700) не работает от зу Добавлено через 4 минуты сгорел диот на.

Чёрные иконки в Toolbox и окно Properties не работает
VB6 стал тормозить и я его переустановил (Win7 x 64). Появился такой глюк (прикреплённый файл.

Установка API Viewer: ‘The API Viewer was loaded, but could not added to a menu’.
Не установить API Viewer. Ругается так: ‘The API Viewer was loaded, but could not added to a menu’.

Источник

Форум пользователей MATLAB и Simulink

САУ с fuzzy-регулятором

Модератор: Admin

САУ с fuzzy-регулятором

Сообщение praht » Вс фев 27, 2005 5:00 pm

Сообщение shtovba » Ср мар 02, 2005 11:59 am

Информацию о настройке нечетких моделей можно найти на:

Сообщение praht » Ср мар 02, 2005 4:07 pm

Сообщение shtovba » Чт мар 03, 2005 12:33 pm

Конечно можно. Если ПИ-регулятор справляется, тогда поверхность «входы-выход» — линейная. Нечеткий контролер может реализовывать как линейные поверхности «входы-выход» так и нелинейные. Вид поверхности зависит от базы знаний и функций принадлежности. Теоретически нечеткая модель может сколь угодно точно апрокисмировать любую зависимость «входы-выход».

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

Сообщение mFranch » Чт мар 24, 2005 2:10 pm

Сообщение Sla.SH. » Пт ноя 25, 2005 11:47 am

Сообщение mFranch » Пт ноя 25, 2005 1:13 pm

Сообщение Papa SGM » Чт дек 01, 2005 3:52 am

Сообщение mFranch » Пт дек 02, 2005 12:23 pm

Сообщение Papa SGM » Пт дек 09, 2005 2:53 am

Нет, я не это имел в виду.
У меня есть набор входных значений, для двух входов, и набор соответствующих им выходных значений для конкретного объекта управления. (Они заранее получены с помощью ПИД регулятора и NCD_Outport, с соблюдением требований к переходному процессу)
Так вот, мне нужно, грубо говоря, по точкам расположить термы и синтезировать правила. В ручную это очень долго, особенно для 20 fuzzy кнтроллеров, я и хотел узнать есть ли у кого программа для автоматизации этого процесса!?

Сообщение Papa SGM » Пт дек 09, 2005 2:59 am

Нет, я не это имел в виду.
У меня есть набор входных значений, для двух входов, и набор соответствующих им выходных значений для конкретного объекта управления. (Они заранее получены с помощью ПИД регулятора и NCD_Outport, с соблюдением требований к переходному процессу)
Так вот, мне нужно, грубо говоря, по точкам расположить термы и синтезировать правила. В ручную это очень долго, особенно для 20 fuzzy кнтроллеров, я и хотел узнать есть ли у кого программа для автоматизации этого процесса!?

Сообщение Papa SGM » Пт дек 09, 2005 3:01 am

Нет, я не это имел в виду.
У меня есть набор входных значений, для двух входов, и набор соответствующих им выходных значений для конкретного объекта управления. (Они заранее получены с помощью ПИД регулятора и NCD_Outport, с соблюдением требований к переходному процессу)
Так вот, мне нужно, грубо говоря, по точкам расположить термы и синтезировать правила. В ручную это очень долго, особенно для 20 fuzzy кнтроллеров, я и хотел узнать есть ли у кого программа для автоматизации этого процесса!?

Источник

Fuzzy Logic Toolbox и Matlab скрипт

Здравствуйте, уважаемые специалисты. Мне в программном скрипте нужно встроить файл Parameter8.fis приложения Fuzzy Toolbox, который разработан, содержит два входа (input1, input2), один выход (output) и должен выдавать нечеткий логический вывод, используя исходные данные скрипта следующего вида:

1. input 1 это a(9,2:end) — массив в виде строчки, состоящей из 5 значений, который индексируется из матрицы а скрипта, например а = rand (27;6).
2. input 2 это a1 (9,3) — число, которое индексируется из другой матрицы скрипта. Матрица, например а1 = rand (27;3).
3. output это массив в виде строчки, состоящей из 5 значений, который должен заменить в матрице a строчку a(9,2:end) на новые значения логического вывода.

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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Fuzzy Logic в GUI
Есть вопрос. Имеется программа для тестирования в gui matlab. Итог теста (в баллах) выводится в.

Пираммида Маслоу. Fuzzy Logic.
Здрасте, может кто сможет помочь, потому как в матлабе не бумбум совсем. Нужно построить.

Как нужно использовать Fuzzy Logic Controller?
Здравствуйте! Есть вот такая схема ( во вложении) и ошибка : Error reported by S-function ‘sffis’.

Вывод и ввод нечетких множеств для работы с Fuzzy Logic
Доброго времени суток. Очень хотелось бы узнать способы вывести из системы нечеткого вывода (FIS).

Вложения

Parameter8 — копия.txt (940 байт, 2 просмотров)

Вложения

Parameter8.rar (527 байт, 1 просмотров)

Добрый день. Видимо, я что то не понимаю. Что такое параметр?

fs.input(1).mf(4).params % Для чего он нужен? Зачем его менять потом?

У меня все значения представлены массивами. Для Parametr8 input1 — это должны быть 5 значений массива a(9,2:end) , и input2 — это одно число из a1 (9,3); одинаково для всех значений input 1.

ans
40000 60000 70000 50000 80000

Можно ли вместо input1 и input 2 вставлять соответствующие значения массивов, как было указано мною первоначально (a(9,2:end) и a1 (9,3)). А потом вернуть с другими значениями логического вывода. Output должен выглядеть так, например:

r1
0.8345 0.9367 0.9127 0.7185 0.9745

Таких параметров у меня будет еще 4 (всего 5): Parametr8, Parametr20, Parametr16 и т.д., на каждый имеется свой файл с расширением _________.fis
Это я, по аналогии сделаю , наверное.

Графики — это в принципе хорошо, можно визуализацию сделать. Но для меня первично вернуть a(9,2:end) , но уже с другими значениями — значениями логического вывода (output). Потом эти данные в дальнейших расчетах будут использоваться.
Помогите, пж .

вы сначала изучите, из чего состоит структура fis-модели.
структуру fis-модели можно посмотреть с помощью showfis()

я вам дала образец изменения одного параметра и пересчет fis-модели.

если у вас несколько fis-моделей, но их параметры менять не собираетесь, то запускайте их в цикле и собирайте результаты в отдельный вектор.

Помогите, Ольга. Помогите, пожалуйста, составить скрипт для ответа на поставленный вопрос: (мне не нужны косвенные ответы и советы, нужна конкретика)

Можно ли вместо input1 и input 2 вставлять соответствующие значения массивов (не вручную, а автоматически!), как было указано мною первоначально (a(9,2:end) и a1 (9,3))? А потом вернуть с другими значениями логического вывода? Output должен выглядеть так, например:

Читайте также:  Не работает свет волга 3110

r1
0.8345 0.9367 0.9127 0.7185 0.9745

Покажите, пожалуйста, на примере, как вставлять поочередно из массива и получить нужные значения, представив их потом опять в массиве. Я разработал пять параметров (например один из них, Parametr8). И каждый из них должен выдать массив из пяти значений, типа
r1
0.8345 0.9367 0.9127 0.7185 0.9745

а мне непонятны ваши вопросы.

прикладывайте свой код, где вы получаете массив а, прикладывайте свои fis-ы..
распишите последовательность по пунктам, что вы хотите получить, не абстрактные

т.к. input(1) в fis-модели — не вектор! а структура.

Не торопитесь, пожалуйста. Не обязательно сегодня это все сделать .
Хочу прояснить. Я не специалист вообще в программировании, с Matlab познакомился в мае месяце 2019, а с Fuzzy Tolbox, вообще неделю назад. Но, чувствую, что я на правильном пути, раньше в диссертации я использовал это вручную.
Задача не сложная, я это чувствую, просто я этого сделать не могу. я не знаю программирования в принципе, . изучал когда то Фортран в 90-е годы, тога еще компьютеры были размером с комнату .
1.Исходные данные, т.е. скрипт, который формирует «исходники» (вводимые данные по проектам и ограничение) Выглядит так:
clc
a = zeros (27,6);
a (1,2:end) = [1:5];%Номера проектов.
a (2:end,1) = [1:26];% Номера оцениваемых параметров.
a (9,2:end) = [40000,60000,70000,50000,80000] %Параметр 8. Значения по пяти оцениваемым проектам устанавливаются
%вручную лицом, принимающим решения (ЛПР). Каждое значение — это input1 в Parameter8.fis. Значит будет 5 выходов (output).

a1 = zeros (27,3);
a1 (1,2:end) = [1:2];%Номер колонки ограничения и колонки статуса ограничения: 0-strict; 1-desirable.
a1 (2:end,1) = [1:26];%Номера оцениваемых ВЭП.
a1 (9,3) = [1]%8.Статус ограничения по параметру, либо 0 — строгий, либо 1 — желательный. Это input 2 в Parameter8.fis.
%Он для всех оцениваемых проектов одинаковый.Задается ЛПР.

2.Скрипт, который переводит все значения в шкалу желательности (от 0 до 1) — это есть output в Parameter8.fis.
Нужно все значения a (9,2); a (9,3); a (9,4); a (9,5); a (9,6) перевести посредством Parameter8.fis в output (получается 5 значений) типа:
r1=evalfis(v,fs) % результат
%Вот здесь у меня и загвоздка.

Потом это всё собрать в массив, типа:

По аналогии я сделаю уже сам с остальными параметрами Parameter16, Parameter20 и т.д., на которые у меня тоже
есть аналогичные файлы с расширением ___fis.
Потом я это все соберу в матрицу для дальнейших расчетов.

Источник

Системний аналіз та управління рухомими об’єктами (доц. Шевченко В.О.) new 2 копия 1

Лабораторная работа № 3

МОДЕЛИРОВАНИЕ НЕЧЕТКОЙ СИСТЕМЫ СРЕДСТВАМИ FUZZY LOGIC TOOLBOX СИСТЕМЫ MATLAB

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

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Графический интерфейс Fuzzy Logic Toolbox

Пакет Fuzzy Logic Toolbox (пакет нечёткой логики) – это совокупность прикладных программ, позволяющих конструировать нечёткие экспертные и/или управляющие системы. Данный пакет является одним из инструментальных средств широко известной и распространённой в нашей стране математической системы MATLAB.

В состав программных средств Fuzzy Logic Toolbox входят следующие основные программы, позволяющие работать в режиме графического интерфейса:

1) редактор нечёткой системы вывода Fuzzy Inference System Editor (FIS Editor или FIS-редактор);

2) редактор функций принадлежности (Membership Function Editor);

3) редактор правил (Rule Editor);

5) программа просмотра поверхности системы нечёткого вывода (Surface Viewer).

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

Редактор систем нечёткого вывода

Редактор систем нечёткого вывода FIS (или просто редактор FIS) является основным средством, которое используется для создания или редактирования систем нечёткого вывода в графическом режиме. Редактор FIS может быть открыт с помощью ввода функции fuzzy в окне команд.

Рисунок 3.1 – Окно редактора систем нечёткого вывода

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

Главное меню редактора содержит позиции:

File – работа с файлами моделей (их создание, сохранение, считывание и печать);

Edit – операции редактирования (добавление и исключение входных и выходных переменных);

View – переход к дополнительному инструментарию.

Пункт меню File (Файл) редактора FIS содержит следующие операции:

New FIS. – позволяет выбрать тип задаваемой новой системы нечёткого вывода: Mamdani – типа Мамдани или Sugeno – типа Сугено. При этом задаваемая система нечёткого вывода не имеет ни входных, ни выходных переменных, а ее имя задаётся по умолчанию как Untitled;

Import – позволяет загрузить в редактор FIS существующую систему нечёткого вывода одним из следующих способов: From Workspace. – из рабочего пространства программы MATLAB или From File . – из внешнего файла;

Export – позволяет сохранить редактируемую систему нечёткого вывода одним из следующих способов: То Workspace. – в рабочем пространстве программы MATLAB или То File . – во внешнем файле;

Print – позволяет распечатать на принтере редактируемую систему нечёткого вывода;

Close – закрывает редактор FIS.

Пункт меню Edit (Редактирование) содержит следующие операции:

Undo – отменяет выполнение последнего действия;

Add Variable. – позволяет добавить в редактируемую систему нечёткого вывода переменную одного из следующих типов: Input – входную переменную или Output – выходную переменную;

Remove Selected Variable – удаляет выбранную переменную из редактируемой системы нечёткого вывода;

Membership Functions. – вызывает редактор функций принадлежности;

Rules – вызывает редактор правил нечёткого вывода.

Пункт меню View (Вид) содержит следующие операции:

Rules – вызывает программу просмотра правил нечёткого вывода;

Surface – вызывает программу просмотра поверхности нечёткого вывода.

В левой нижней части рабочего интерфейса редактора FIS имеется 5 всплывающих меню:

And method (Метод логической конъюнкции) – позволяет задать один из следующих методов для выполнения логической конъюнкции в условиях нечётких правил:

min – метод минимального значения;

prod – метод алгебраического произведения;

custom – метод, определённый пользователем.

Or method (Метод логической дизъюнкции) – позволяет задать один из следующих методов для выполнения логической дизъюнкции в условиях нечётких правил:

max – метод максимального значения (нечёткий логический оператор дизъюнкции);

probor – метод алгебраической суммы;

custom – метод, определённый пользователем.

Implication method (Метод вывода заключения) – позволяет задать один из следующих методов для выполнения (активизации) логического заключения в каждом из нечётких правил (не используется для систем типа Сугено):

min – метод минимального значения (нечёткий логический оператор конъюнкции);

prod – метод алгебраического произведения;

сustom – метод, определённый пользователем.

Aggregation method (Метод агрегирования) – позволяет задать один из следующих методов для агрегирования значений функции принадлежности каждой из выходных переменных в заключениях нечётких правил:

max – метод максимального значения;

sum – метод граничной суммы;

probor – метод алгебраической суммы;

custom – метод, определённый пользователем.

Defuzzification method (Метод дефазификации ) – позволяет задать один из следующих методов для выполнения дефазификации выходных переменных в системе нечёткого вывода типа Мамдани:

centroid – метод центра тяжести для дискретного множества значений функции принадлежности;

bisector – метод центра площади;

mom (middle of maximum) – метод среднего максимума, определяемый как среднее арифметическое левого и правого модальных значений;

som (smallest of maximum) – метод наименьшего (левого) модального значения;

lom (largest of maximum) – метод наибольшего (правого) модального значения;

custom – метод, определённый самим пользователем.

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

wtaver (weighted average) – метод взвешенного среднего;

wtsum (weighted sum) – метод взвешенной суммы.

Редактор функций принадлежности

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

  • через пункт меню View→Editmembershipfunctions. ;
  • двойным щелчком левой кнопки мыши по иконке, отображающей соответствующую переменную;
  • нажатием клавиш Ctrl+2.
Читайте также:  Если не работают габариты что делать

Рисунок 3.2 – Окно редактора функций принадлежности

Редактор предоставляет пользователю не только возможность выбрать любую из 11 встроенных функций принадлежности, но и задать собственную функцию принадлежности. Для каждой функции принадлежности можно изменить ее имя, тип и параметры.

Для отображения графиков функций принадлежности следует выбрать необходимую переменную в левой части графического интерфейса редактора под заголовком FIS Variables (Переменные FIS).

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

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

Пункт меню File (Файл) редактора функций принадлежности содержит такие же операции, что и соответствующий пункт меню редактора FIS.

Пункт меню Edit (Редактирование) содержит следующие операции:

Undo – отменяет выполнение последнего действия;

Add MF. – позволяет добавить встроенную функцию принадлежности термов для выделенной переменной;

Add Custom MF. – позволяет добавить функцию принадлежности для отдельной переменной;

Remove Current MF – позволяет удалить отдельную функцию принадлежности;

Remove All MFs – позволяет удалить все функции принадлежности для отдельной переменной;

FIS Properties. – вызывает редактор FIS;

Rules. – вызывает редактор правил нечёткого вывода.

Пункт меню View (Вид) содержит следующие операции;

Rules – вызывает программу просмотра правил нечёткого вывода;

Surface – вызывает программу просмотра поверхности нечёткого вывода.

Редактор правил системы нечёткого вывода

Редактор правил системы нечёткого вывода предназначен для задания и редактирования отдельных правил системы нечёткого вывода в графическом режиме. Редактор правил может быть открыт с помощью главного меню редактора FIS командой меню Edit → Rules. или нажатием клавиш Ctrl+3.

Рисунок 3.3 – Окно редактора правил

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

Пункт меню File (Файл) редактора правил содержит такие же операции, что и соответствующий пункт меню редактора FIS.

Пункт меню Edit (Редактирование) содержит следующие операции:

Undo – отменяет выполнение последнего действия;

FIS Properties. – вызывает редактор FIS;

Membership Functions. – вызывает редактор функций принадлежности.

Пункт меню View (Вид) содержит следующие операции:

Rules – вызывает программу просмотра правил;

Surface – вызывает программу просмотра поверхности вывода.

Пункт меню Options (Сервис) содержит следующие операции:

Language – позволяет выбрать язык для записи правил в форме текста: English (английский), Deutsch (немецкий) или Francais (французский);

Format – формат записи правил системы нечёткого вывода: Verbose (в форме текста), Symbolic (в символической форме) или Indexed (в цифровой форме).

Поля ввода в средней части графического интерфейса редактора правил позволяют задать новое правило в системе нечёткого вывода. Для этого необходимо выделить имя терма соответствующей переменной, которая должна быть предварительно определена с помощью редактора функций принадлежности. Если некоторый терм не входит в правило, то для него следует выбрать значение none. Если в условии правила используется логическое отрицание некоторого терма, то для этого терма следует отметить соответствующий флажок с меткой not.

Редактор правил позволяет также задать логические связки для подусловий правила (переключатель Connection) и вес правила (поле ввода Weight). Кнопки в нижней части графического интерфейса редактора правил, как следует из их названий, служат для удаления выделенного в окне правила (Delete rule), добавления созданного правила в систему (Add rule) и внесения изменений в выделенное в окне правило (Change rule). В правом нижнем углу находятся кнопки вызова встроенной справочной системы MATLAB (Help) и кнопка закрытия редактора правил (Close).

Программа просмотра поверхности системы нечёткого вывода

Программа просмотра поверхности системы нечёткого вывода позволяет просматривать поверхность системы нечёткого вывода и визуализировать графики зависимости выходных переменных от отдельных входных переменных. Графический интерфейс программы просмотра правил может быть открыт с помощью главного меню редактора FIS, редактора функций принадлежности или редактора правил командой меню View → Surface или нажатием клавиш Ctrl+6.

Рисунок 3.4 – Окно программы просмотра поверхности

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

Пункт меню File (Файл) редактора правил содержит такие же операции, что и соответствующий пункт меню редактора FIS.

Пункт меню Edit (Редактирование) содержит следующие операции:

Undo – отменяет выполнение последнего действия;

FIS Properties. – вызывает редактор FIS;

Membership Functions. – вызывает редактор функций принадлежности;

Rules. – вызывает программу редактирования правил.

Пункт меню View (Вид) содержит следующие операции:

Rules – вызывает программу просмотра правил.

Пункт меню Options (Сервис) содержит следующие операции:

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

Color Map – позволяет выбрать одну из 4 цветовых схем изображения графика поверхности вывода;

Always evaluate – пометка галочкой этого пункта вложенного меню приводит к автоматическому формированию новой поверхности вывода всякий раз, когда вносятся изменения в систему нечёткого вывода, влияющие на форму графика поверхности вывода (такие как изменение количества точек сетки графика). Это значение принято по умолчанию. Для его отмены необходимо снять галочку у этого пункта вложенного меню, щёлкнув на этой позиции меню.

Программа просмотра поверхности вывода не позволяет вносить изменения в систему нечёткого вывода и соответствующую ей структуру FIS. Используя главное меню программы, пользователь может выбрать входные переменные и соответствующие им горизонтальные оси системы координат (X и Y), а также выходную переменную, которой соответствует вертикальная ось системы координат (Z).

Щёлкнув и удерживая левую кнопку мыши на осях графика поверхности, посредством последующего перемещения курсора мыши в том или ином направлении можно изменить угол просмотра поверхности вывода. Если рассматривается система нечёткого вывода с более чем двумя входными переменными, то для невизуализируемых входных переменных следует задать некоторые постоянные значения (константы).

РАБОЧИЕ ЗАДАНИЯ

Задание 1. Рассмотрим построение экспертной системы на примере задачи о чаевых. Задача может быть описана следующими выражениями:

  1. Если обслуживание плохое или еда подгоревшая, то чаевые – малые.
  2. Если обслуживание хорошее, то чаевые – средние.
  3. Если обслуживание отличное или еда превосходная, то чаевые – щедрые.

Качество обслуживания и еды будем оценивать по 10-балльной шкале (0 – наихудшая оценка, 10 – наилучшая). Предположим, что малые чаевые составляют 5% стоимости обеда, средние – 15%, щедрые – около 25%.

Данной информации достаточно для проектирования нечеткой экспертной системы. Эта система будет иметь 2 входа – «сервис» и «еда», один выход – «чаевые», три правила типа «ЕСЛИ …, ТО…» (в соответствии с приведенными выше) и по 3 значения (соответственно 0 баллов, 5 и 10 баллов, 5%, 15%, 25%) для центров функций принадлежности входов и выхода. Построим систему, используя алгоритм вывода Мамдани.

Порядок выполнения:

1. Создание системы нечеткого вывода в редакторе FIS

Командой fuzzy запускаем FIS-редактор. По умолчанию, исходный алгоритм вывода – типа Mamdani (о чем говорит надпись в центральном белом блоке) и здесь никаких изменений не требуется.

Так как в системе должно быть два входа, через пункт меню Edit → Add Variable → Input добавляем в систему второй вход (в окне редактора появляется второй желтый блок с именем input2).

Далее зададим новые имена блокам и создаваемой системе. Делая однократный щелчок левой кнопкой мыши по блоку input1, в поле имени его имя изменяем на сервис. Завершается ввод нового имени нажатием клавиши Enter. Аналогичным образом устанавливается имя еда блоку input2 и чаевые – выходному блоку output1 (справа вверху). Через пункт меню File → Export → To Workspace. (Сохранить в рабочем пространстве. ) присваиваем имя всей системе, например, tip (по-английски – чаевые).

Читайте также:  Не работает омыватель заднего стекла прадо 120

Рисунок 3.5 – Окно FIS-редактора после задания имен

2. Задание функций принадлежности переменных

Задание и редактирование функций принадлежности начнем с переменной сервис. Для этого откроем редактор функций принадлежности двойным щелчком левой кнопки мыши по иконке сервис. Далее в полях Range и Display Range установим диапазон изменения и отображения этой переменной – от 0 до 10 (баллов) и подтвердим ввод нажатием клавиши Enter. Затем через пункт меню Edit → Remov All MF удалим все функции принадлежности, заданные по умолчанию, а с помощью команды Edit → Add MF зададим новые функции принадлежности гауссова типа (gaussmf) с общим числом 3. После нажатия кнопки ОК произойдет возврат в окно редактора функций принадлежности.

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

Рисунок 3.6 – Окно редактора функций принадлежности с заданными функциями принадлежности для переменной сервис

Щелчком левой кнопки мыши по иконке еда переходим в окно редактирования функций принадлежности для переменной еда. Сначала задаем диапазон изменения этой переменной от 0 до 10, а затем, поступая как ранее, задаем две функции принадлежности трапецеидальной формы (trapmf) с параметрами [0 0 1 3] и [7 9 10 10] соответственно и именами подгоревшая и превосходная.

Рисунок 3.7 – Окно редактора функций принадлежности с заданными функциями принадлежности для переменной еда

Для выходной переменной чаевые указываем сначала диапазон изменения от 0 до 30, потом задаем три функции принадлежности треугольной формы (trimf) с именами малые, средние, щедрые.

Рисунок 3.8 – Окно редактора функций принадлежности с заданными функциями принадлежности для переменной чаевые

После того, как все функции принадлежности определены, закрываем окно редактора функций принадлежности.

3. Конструирование правил

Запускаем редактор правил системы нечеткого вывода с помощью команды Edit → Rules. из окна редактора FIS. Итоговый набор правил для данной системы выглядит следующим образом:

  1. If (сервис is плохой) or (еда is подгоревшая) then (чаевые is малые) (1)
  2. If (сервис is хороший) then (чаевые is средние) (1)
  3. If (сервис is отличный) or (еда is превосходная) then (чаевые is щедрые) (1)

Рисунок 3.9 – Окно редактора правил для данной системы

Единица в скобках после каждого правила указывает его вес, т.е. значимость правила. Данный вес можно менять, используя соответствующее поле в левой нижней части окна редактора правил. На этом конструирование экспертной системы закончено. Ее можно сохранить в файл на диске под именем tip.

4. Проверка работы системы нечеткого вывода

Для проверки работы созданной системы нужно открыть через пункт меню View → Rules. окно просмотра правил и установить значения переменных: сервис=0 (т.е. никуда не годный), еда=10 (т.е. превосходная). Полученный ответ: чаевые=15 (т.е. средние). Можно проверить и другие варианты.

Рисунок 3.10 – Окно просмотра правил данной системы

Подтверждением отмеченной зависимости выходной переменной от входных может служить вид поверхности отклика, который представляется при выборе пункта меню View → Surface; с помощью мышки график можно поворачивать во все стороны.

Рисунок 3.11 – Окно просмотра поверхности данной системы

Задание 2. Сконструируем нечеткую систему, отображающую зависимость между переменными x и y (y = x 2 ), заданную с помощью таблицы:

Таблица 3.1 — Зависимость х от y

Порядок выполнения:

1. Откроем новое окно FIS-редактора с помощью пункта меню File → New FIS → Sugeno (новая система типа Sugeno), при этом в блоке, отображаемом белым квадратом в верхней части окна редактора появится надпись Untitled2 (sugeno).

Рисунок 3.12 – Окно FIS-редактора для создания системы нечёткого вывода типа Сугено

2. В окне FIS-редактора зададим имя входа х, имя выхода – y.

3. В редакторе функций принадлежности для входной переменной х выберем гауссовы функции принадлежности (gaussmf), а их количество зададим равным пяти – по числу значений аргумента.

4. Установим диапазон изменения переменной х от -1 до 1.

5. Переименуем функции принадлежности следующим образом:

Рисунок 3.13 – Окно редактора функций принадлежности с заданными функциями принадлежности для переменной х

6. Для выходной переменной y выберем постоянные функции принадлежности (constant) с общим числом 4.

7. Изменим имена выходных функций принадлежности, задав их как соответствующие числовые значения у, т.е. 0, 0.16, 0.36, 1. Одновременно эти же числовые значения введем в поле Params и закроем окно редактора функций принадлежности.

Рисунок 3.14 – Окно редактора функций принадлежности с заданными функциями принадлежности для переменной y

8. В окне редактора правил введем следующие правила:

Рисунок 3.15 – Окно редактора правил для данной системы

9. Сохраним построенную систему в файл с именем fuzzy.

10. Проверим работу системы. Для этого в окне просмотра правил в поле Input зададим х=0.5 и нажмем Enter. Значение у при этом станет равным 0.198.

Рисунок 3.16 – Окно просмотра правил данной системы

11. В окне просмотра поверхности проверим зависимость выходной переменной от входной.

Рисунок 3.17 – Окно просмотра поверхности данной системы

Таким образом, с помощью построенной модели можно решать задачу интерполяции, т.е. задачу, решение которой и требовалось найти.

Задание3. Создать модель движения автомобиля по трассе. Исходные данные для моделирования:

1. Входные величины – расстояние от автомобиля до препятствия (изменяется в пределах от 0до 500); скорость автомобиля (0-200).

2. Выходная величина – сила торможения (0-100).

Расстояние и скорость измеряются в лингвистических переменных очень мало (VS), мало(S), средне (M), велико (B), очень велико (VB). Сила торможения задается лингвистическими переменными близка к нулю (Z), четверть (OQ), половина (H), три четверти (TQ), полная (FU). Параметры входных и выходной переменных представлены в табл. 3.2. – 3.5.

Таблица 3.2 – Переменная Скорость

Таблица 3.3 – Переменная Расстояние

Таблица 3.4 – Переменная Сила торможения

Таблица 3.4 – База правил для управления силой торможения автомобиля

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

Задание 4. Самостоятельно построить нечеткую модель управления автомобилем на перекрестке системой технического зрения. Автомобиль должен двигаться со скоростью не ниже 60 км/ч по улице вдали от светофора. Автомобиль должен останавливаться на перекрестке на красный сигнал светофора.Если сигнал светофора желтый, то автомобиль может проезжать перекресток со скоростью ниже 40 км/ч. При нарушении правил автомобиль попадает в аварию.

Режим работы светофора:»красный», «желтый», «зеленый»,»желтый», «красный» и т.д.

Система технического зрения обрабатывает видеоизображения, получаемые с телекамеры. При обработке изображения распознается образ светофора. На выходе системы формируется сигнал расстояния до светофора и сигнал цвета светофора. Сигнал расстояния до светофора измеряется в метрах. Если светофор не найден или расстояние до него свыше 140 м, то значение этого сигнала равно 140 м.

1) расстояние до светофора,
2) цвет светофора,
3) скорость.

Выходная переменная – изменение скорости.

Контрольные вопросы

1. Какие программные средства входят в пакет Fuzzy Logic Toolbox?

2. Как запустить редактор систем нечёткого вывода? Какое предназначение редактора систем нечёткого вывода?

3. Системы какого типа позволяет создавать пакет Fuzzy Logic Toolbox?

4. Как открыть окно редактора функций принадлежности? Какие установки можно выполнить в этом окне?

6. Каким образом задаются правила работы системы нечеткого вывода?

7. Как осуществляется проверка работы сконструированной системы?

Источник

Оцените статью