MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

Проектирование систем управления\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 пар случайно полученных данных “входы-выход”.

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


Поиск по сайту:

Система Orphus

Яндекс.Метрика