II Всероссийская конференция пользователей MATLAB, 25-26 мая 2004 года >>
На первую страницу
Рубрика Matlab&Toolboxes
Российские MATLAB-разработки
Вход
Раздел "Проектирование систем управления\Fuzzy Logic Toolbox"

Список функций Fuzzy Logic Toolbox

  В оглавление \ К следующему разделу \ К предыдущему разделу

GENPARAM

Генерирования исходных параметров функций принадлежности для ANFIS-обучения

Синтаксис:

mf_param = genparam(data, mf_n, mf_type)

Описание:

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

Функция genparam может имеет три входных аргумента, первый из которых обязательный:

  1. data – матрица данных “входы – выход”. Каждая строка данных содержит одну пару “входы – выход”. Последний столбец матрицы содержит значения выходной переменной, а остальные – значения входных переменных;
  2. mf_n – вектор, задающий количество термов, которыми оценивается каждая входная переменная. Если аргумент задан скалярным значением, то количество термов принимается одинаковым для всех входных переменных. Значение по умолчанию – 2;
  3. mf_type – матрица стрингов, определяющая тип функций принадлежности для каждой входной переменной. Если аргумент задан одним стрингом, тогда все функции принадлежности будут иметь один и тот же тип. Значение по умолчанию - 'gbellmf' (обобщенная колокообразная функция принадлежности). Функция genparam не поддерживает следующие типы функции принадлежностей: 'sigmf', 'smf' и 'zmf'.

Функция genparam возвращает матрицу mf_param, каждая строчка которой содержит параметры одной функций принадлежности. Первая строка матрицы соответствует параметрам первой функции принадлежности первой входной переменной, вторая - второй функции принадлежности первой входной переменной, …, последняя - последней функции принадлежности последней входной переменной.

Пример:

NumData = 1000;
data = [rand(NumData,1) 10*rand(NumData,1)-5 rand(NumData,1)];
NumMf = [3 7];
MfType = str2mat('trapmf','gbellmf');
MfParams = genparam(data,NumMf,MfType);
set(gcf,'Name','genparam','NumberTitle','off');
NumInput = size(data, 2) - 1;
range = [min(data)' max(data)'];
FirstIndex = [0 cumsum(NumMf)];
for i = 1:NumInput;
    subplot(NumInput, 1, i);
    x = linspace(range(i, 1), range(i, 2), 100);
    index = FirstIndex(i)+1:FirstIndex(i)+NumMf(i);
    mf = evalmmf(x, MfParams(index, :), MfType(i,:));
    plot(x, mf');
    xlabel(['input ' num2str(i) ' (' MfType(i, :) ')']);
end

===================================================================

Генерирование трех треугольных и семи колокообразных функций принадлежностей из 1000 пар случайно полученных данных “входы-выход”.

  В оглавление \ К следующему разделу \ К предыдущему разделу


О получении локальных копий сайтов
  Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro   
E-mail:    
  Информация на сайте была обновлена 11.05.2004 Copyright 2001-2004 SoftLine Co 
Наши баннеры