Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
methodIndicationsIAD_v_0_4.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4 Mб
Скачать

2. Структура данных системы нечеткого вывода

Система нечеткого вывода представляется в рабочей области MATLAB структурой данных, изображенной на рис. 4.

Рисунок 4. Структура данных FIS.

Существует два способа загрузки FIS в рабочую область:

• считывание с диска с помощью функции readfis;

• передача из GUI-модулей через команду То workspace подменю Export меню File.

Поля структуры данных системы нечеткого вывода содержат следующую информацию:

• name ‑ наименование системы нечеткого вывода;

• type ‑ тип системы. Допустимые значения: 'Mamdani' и 'Sugeno';

• andMethod ‑ реализация логической операции И. Запрограммированные реализации: 'min' ‑ минимум и 'prod' ‑ умножение;

• orMethod ‑ реализация логической операции ИЛИ. Запрограммированные реализации: 'max' ‑ максимум и 'probor' ‑ вероятностное ИЛИ;

• defuzzMethod ‑ метод дефаззификации. Запрограммированные методы для систем типа Мамдани: 'centroid' ‑ центр тяжести; 'bisector' ‑ медиана; 'lorn' ‑ наибольший из максимумов; 'som' ‑ наименьший из максимумов; 'mom' ‑ среднее из максимумов. Запрограммированные методы для систем типа Сугено: 'wtaver' ‑ взвешенное среднее и 'wtsum' ‑ взвешенная сумма;

• impMethod ‑ реализация импликации. Запрограммированные реализации: 'min' ‑ минимум и 'prod' ‑ умножение;

• aggMethod ‑ реализация агрегирования. Запрограммированные реализации: 'max' ‑ максимум; 'sum' ‑ сумма и 'probor' ‑ вероятностное ИЛИ;

• input ‑ массив входных переменных системы;

• input.name ‑ наименование входной переменной;

• input.range ‑ диапазон изменения входной переменной;

• input.mf ‑ массив функций принадлежности входной переменной;

• input.mf.name ‑ наименование функции принадлежности входной переменной;

• input.mf.type ‑ тип функции принадлежности входной переменной.

Запрограммированные функции:

  • 'dsigmf' ‑ функция принадлежности в виде разности между двумя сигмоидными функциями;

  • 'gauss2mf ‑ двухсторонняя гауссова функция принадлежности;

  • 'gaussmf ‑ гауссова функция принадлежности;

  • 'gbellmf ‑ обобщенная колоколообразная функция принадлежности;

  • 'pimf ‑ пи-подобная функция принадлежности;

  • 'psigmf ‑ произведение двух сигмоидных функций принадлежности;

  • 'sigmf ‑ сигмоидная функция принадлежности;

  • 'smf ‑s-подобная функция принадлежности;

  • 'trapmf ‑ трапециевидная функция принадлежности;

  • 'trimf ‑ треугольная функция принадлежности;

  • 'zmf' ‑ z-подобная функция принадлежности.

• input.mf.params ‑ массив параметров функции принадлежности входной переменной;

• output ‑ массив выходных переменных;

• output.name ‑ наименование выходной переменной;

• output.range ‑ диапазон изменения выходной переменной;

• output.mf ‑ массив функций принадлежности выходной переменной;

• output.mf.name - наименование функции принадлежности выходной переменной;

• output.mf.type ‑ тип функции принадлежности выходной переменной. Запрограммированные функции для системы типа Мамдани описаны в поле input.mf.type. Для системы Сугено заключения правил могут быть заданы константами ('constatnt') или линейной комбинацией входных переменных ('linear');

• output. mf. params ‑ массив параметров функции принадлежности выходной переменной;

• rule ‑ массив правил нечеткой базы знаний;

• rule.antecedent ‑ посылки правила. Указываются порядковые номера термов в порядке записи входных переменных. Число 0 указывает на то, что значение соответствующей входной переменной не влияет на истинность правила;

• rule.consequent ‑ заключения правила. Указываются порядковые номера термов в порядке записи выходных переменных. Число 0 указывает на то, что правило не распространяется на соответствующую выходную переменную;

• rule.weight ‑ вес правила. Задается числом из диапазона [0, 1];

• rule.connection ‑ логическая связка переменных внутри правила: 1 ‑ логическое И; 2 ‑ логическое ИЛИ. Для доступа к свойствам системы нечеткого вывода достаточно указать имя соответствующего поля. Например, команда FIS_NAME.rule(1).weight=0.5 устанавливает вес первого правила в 0,5, команда length(FIS_NAME.rule) определяет количество правил в базе знаний, а команда FIS_NAME.input(1).mf(1).name='Низкий' переименовывает первый терм первой входной переменной в Низкий.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]