exponenta event banner

getTunableSettings

Получение настраиваемых настроек из системы нечеткого вывода

Описание

in = getTunableSettings(fis) возвращает настраиваемые настройки входных переменных нечеткой системы fis.

[~,out] = getTunableSettings(fis) возвращает настраиваемые настройки выходных переменных нечеткой системы fis.

[~,~,rule] = getTunableSettings(fis) возвращает настраиваемые настройки правил нечеткой системы fis.

пример

[in,out,rule] = getTunableSettings(fis) возвращает настраиваемые настройки входов, выходов и правил нечеткой системы fis.

пример

[___] = getTunableSettings(fis,'AsymmetricLag',true) возвращает настраиваемые параметры, допускающие несимметричные значения задержки нижней функции членства. Этот синтаксис поддерживается только тогда, когда fis является нечеткой системой вывода типа 2.

Примеры

свернуть все

Создайте две нечеткие системы вывода и определите соединение между ними.

fis1 = mamfis('Name','fis1','NumInputs',2,'NumOutputs',1);
fis2 = sugfis('Name','fis2','NumInputs',2,'NumOutputs',1);
con = ["fis1/output1" "fis2/input1"];

Создайте дерево нечетких систем вывода.

tree = fistree([fis1 fis2],con);

Получите настраиваемые настройки входов, выходов и правил системы нечеткого вывода.

[in,out,rule] = getTunableSettings(tree)
in=4×1 object
  4x1 VariableSettings array with properties:

    Type
    VariableName
    MembershipFunctions
    FISName

out=2×1 object
  2x1 VariableSettings array with properties:

    Type
    VariableName
    MembershipFunctions
    FISName

rule=18×1 object
  16x1 RuleSettings array with properties:

    Index
    Antecedent
    Consequent
    FISName
      ⋮

Для задания настраиваемых параметров можно использовать точечную нотацию.

Для первой членской функции ввода 1:

  • не настраивать параметр 1,

  • установите минимальные диапазоны последних двух параметров в 0,

  • и установите максимальные диапазоны последних двух параметров в 1.

in(1).MembershipFunctions(1).Parameters.Free(1) = false;
in(1).MembershipFunctions(1).Parameters.Minimum(2:end) = 0;
in(1).MembershipFunctions(1).Parameters.Maximum(2:end) = 1;

Для первого правила:

  • set input 1 членская функция индекс не настраивается,

  • разрешить логику NOT для индекса входящей 2 членской функции,

  • и не игнорируйте индекс функции членства вывода 1.

rule(1).Antecedent.Free(1) = false;
rule(1).Antecedent.AllowNot(2) = true;
rule(1).Consequent.AllowEmpty(1) = false;

Создайте две нечеткие системы вывода и определите соединение между ними.

fis1 = mamfis('Name','fis1','NumInputs',2,'NumOutputs',1);
fis2 = sugfis('Name','fis2','NumInputs',2,'NumOutputs',1);
con = ["fis1/output1" "fis2/input1"];

Создайте дерево нечетких систем вывода.

tree = fistree([fis1 fis2],con);

Получите настраиваемые настройки входных и выходных переменных системы нечеткого вывода.

[in,out] = getTunableSettings(tree)
in=4×1 object
  4x1 VariableSettings array with properties:

    Type
    VariableName
    MembershipFunctions
    FISName

out=2×1 object
  2x1 VariableSettings array with properties:

    Type
    VariableName
    MembershipFunctions
    FISName

Для задания настраиваемых параметров входных и выходных переменных можно использовать точечную нотацию.

Для первой функции членства на входе 1 установите первый и третий параметры на настраиваемые.

in(1).MembershipFunctions(1).Parameters.Free = [1 0 1];

Для первой функции членства на входе 2 установите минимальный диапазон параметров равным 0.

in(2).MembershipFunctions(1).Parameters.Minimum = 0;

Для первой функции членства на выходе 2 установите максимальный диапазон параметров равным 1.

out(2).MembershipFunctions(1).Parameters.Maximum = 1;

Создайте систему нечеткого вывода типа 2.

fis = mamfistype2('Name','fis1','NumInputs',2,'NumOutputs',1);

Получите настраиваемые настройки входных и выходных переменных системы нечеткого вывода.

[in,out] = getTunableSettings(fis);

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

Для первой функции членства на входе 1 установите параметры первой и третьей верхних функций членства как настраиваемые.

in(1).MembershipFunctions(1).UpperParameters.Free = [1 0 1];

Для первой функции членства на входе 2 установите настраиваемый диапазон шкалы нижней функции членства в диапазоне 0.7 и 0.9.

in(2).MembershipFunctions(1).LowerScale.Minimum = 0.7;
in(2).MembershipFunctions(1).LowerScale.Maximum = 0.9;

Для первой функции членства на выходе 1 установите настраиваемый диапазон задержки нижней функции членства в диапазоне 0.1 и 0.4.

in(2).MembershipFunctions(1).LowerLag.Minimum = 0.1;
in(2).MembershipFunctions(1).LowerLag.Maximum = 0.4;

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

Создайте FIS и получите его настраиваемые параметры.

fis = mamfis("NumInputs",2,"NumOutputs",2);
[in,out,rule] = getTunableSettings(fis);

Можно указать все входные переменные, выходные переменные или правила как настраиваемые или не настраиваемые. Например, установите все настройки выходной переменной как неперестраиваемые.

out = setTunable(out,0);

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

in(1) = setTunable(in(1),0);

Отдельные функции членства можно настроить как не настраиваемые. Например, задайте первую функцию членства ввода 2 как неперестраиваемую.

in(2).MembershipFunctions(1) = setTunable(in(2).MembershipFunctions(1),0);

Можно также указать настраиваемость подмножества переменных или правил. Например, задайте первые два правила как неперестраиваемые.

rule(1:2) = setTunable(rule(1:2),0);

Входные аргументы

свернуть все

Система нечеткого вывода, заданная как mamfis, sugfis, mamfistype2, sugfistype2, или fistree объект. Нечеткая система может быть нечеткой системой вывода или сетью взаимосвязанных нечетких систем вывода.

Выходные аргументы

свернуть все

Настраиваемые параметры для входных переменных, возвращаемые в виде массива VariableSettings объекты. Каждый VariableSettings объект содержит настройки настройки для входной переменной, указанной ее FISName и VariableName свойства.

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

Настраиваемые параметры для входных переменных, возвращаемые в виде массива VariableSettings объекты. Каждый VariableSettings объект содержит настройки настройки для выходной переменной, указанной ее FISName и VariableName свойства.

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

Настраиваемые параметры для правил, возвращаемые в виде массива RuleSettings объект. Каждый RuleSettings объект содержит параметры настройки для правила из FIS, указанные его FISName собственность.

Укажите параметры настройки предшествующей и последующей переменной, используя ее Antecedent и Consequent соответственно.

Представлен в R2019a