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

Проектирование систем управления\Fuzzy Logic Toolbox

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

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

FUZARITH
Выполнение нечетких арифметических операций

Синтаксис:

c = fuzarith(x, a, b, operator)

Описание:

Выполняет арифметические операции сложения, вычитания, умножения и деления над нечеткими числами.

Функция fuzarith имеет четыре входных аргумента:

  1. x – универсальное множество, на котором заданны нечеткие числа;
  2. a – вектор, задающий первый операнд. Представляет собой вектор степеней принадлежности элементов универсального множества первому нечеткому множеству. Другими словами, аргументы x и a образует первое нечеткое число;
  3. b – вектор, задающий второй операнд. Представляет собой вектор степеней принадлежности элементов универсального множества второму нечеткому множеству, т.о. аргументы x и b образует второе нечеткое число;
  4. operator – арифметическая операция:
    ‘sum’ – сложение;
    ‘sub’ – вычитание;
    ‘prod’ – умножение;
    ‘div’ – деление.

Выходной переменной функции fuzarith является вектор степеней принадлежности элементов универсального множества x результату выполнения нечеткой арифметической операции. Размерности векторов x, a, b и c должны быть одинаковыми.

В функции fuzarith нечеткие арифметические выполняются по следующему алгоритму:

  • преобразование нечетких чисел-операндов в image7863.gif (845 bytes)-уровневые нечеткие множества;
  • выполнения арифметической операции для каждого image7863.gif (845 bytes)-уровня в соответствии с принципом обобщения;
  • преобразование результирующего нечеткого числа из image7863.gif (845 bytes)-уровнего представления к традиционному виду.

Функция fuzarith использует стандартные процедуры интерполяции для выполнения указанных выше преобразований. Количество image7863.gif (845 bytes)-уровней равно 101.

Обратим внимание на то, что операция деления не может быть выполнена если универсальное множество содержит как отрицательные, так и положительные числа, что связано с делением на ноль.

При выполнении арифметически операций над нечеткими числами, как правило, носитель результирующего нечеткого числа отличен от носителей нечетких операндов. Функция fuzarith выводит степени принадлежности результата только для универсального множества нечетких операндов, т.е. для множества x. Для вывода всего результирующего нечеткого числа необходима простая модификация функции fuzarith – вывод результата в виде нечеткого множества в image7863.gif (845 bytes)-уровневом разложении. Результирующее нечеткое число в виде разложений по image7863.gif (845 bytes)-уровням представлено в функции fuzarith переменной intervalC.

Пример:

Рассчитывается нечеткое число c как произведение нечетких чисел a и b с гауссовскими функциями принадлежности, заданных на универсальном множестве {0, 0.01, …, 1}. Графики функций принадлежности показаны ниже на рисунке.

x=0:0.01:1;
a=gaussmf(x, [0.1 0.3]);
b=gaussmf(x, [0.2 0.6]);
c=fuzarith(x, a, b, 'prod');
plot(x, a, x, b, x, c)
legend('a', 'b', 'c=a*b')

image7864.gif (8960 bytes)

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


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

Система Orphus

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