Main Content

getTunableSettings

Obtain tunable settings from fuzzy inference system

Since R2019a

Description

in= getTunableSettings(fis)returns tunable settings of input variables of the fuzzy systemfis.

[~,out] = getTunableSettings(fis)returns tunable settings of output variables of the fuzzy systemfis.

[~,~,rule] = getTunableSettings(fis)returns tunable settings of rules of the fuzzy systemfis.

example

[in,out,rule] = getTunableSettings(fis)returns tunable settings of inputs, outputs, and rules of the fuzzy systemfis.

example

[___] = getTunableSettings(fis,Name=Value)specifies tunable setting information using name-value pair arguments. You can specify multiple name-value pairs.

Examples

collapse all

Create a fuzzy inference system.

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

Obtain the tunable settings of the inputs, outputs, and rules of the fuzzy inference system.

[in,out,rule] = getTunableSettings(fis1);

You can use dot notation to specify tunable settings.

For the first membership function of input 1:

  • Do not tune parameter 1.

  • Set the minimum ranges of the last two parameters to 0.

  • Set the maximum ranges of the last two parameters to 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;

For the first rule:

  • Set the input 1 membership function index as nontunable.

  • Allow NOT logic for input 2 membership function index.

  • Do not ignore the output 1 membership function index.

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

Create a fuzzy inference system.

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

Obtain the tunable settings of input and output variables of the fuzzy inference system.

[in,out] = getTunableSettings(fis1);

可以使用点符号来指定可调ttings of input and output variables.

For the first membership function of input 1, set the first and third parameters to tunable.

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

For the first membership function of input 2, set the minimum parameter range to 0.

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

For the first membership function of the output variable, set the maximum parameter range to 1.

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

Create a type-2 fuzzy inference system.

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

Obtain the tunable settings of the input and output variables of the fuzzy inference system.

[in,out] = getTunableSettings(fis);

可以使用点符号来指定可调ttings of the membership functions of the input and output variables.

For the first membership function of input 1, set the first and third upper membership function parameters as tunable.

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

For the first membership function of input 2, set the tunable range of the lower membership function scale to be between0.7and0.9.

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

For the first membership function of output 1, set the tunable range of the lower membership function lag to be between0.1and0.4.

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

By default, the tunable settigns for a type-2 FIS produce symmetric lag results in the tuned system. To allow for asymmetric lag results, specify the AsymmetricLag name-value argument.

[in2,out2] = getTunableSettings(fis,'AsymmetricLag',true);

Create a fuzzy inference system, and define the tunable parameter settings of inputs, outputs, and rules.

Create a FIS, and obtain its tunable settings.

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

You can specify all the input variables, output variables, or rules as tunable or nontunable. For example, set all the output variable settings as nontunable.

out = setTunable(out,0);

You can set the tunability of individual variables or rules. For example, set the first input variable as nontunable.

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

You can set individual membership functions as nontunable. For example, set the first membership function of input 2 as nontunable.

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

You can also specify the tunability of a subset of variables or rules. For example, set the first two rules as nontunable.

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

Create a FIS tree that contains three FIS objects.

fis1 = mamfis(Name=“fis1”,NumInputs=2,NumOutputs=1); fis2 = mamfis(Name="fis2",NumInputs=2,NumOutputs=1); fis3 = mamfis(Name="fis3",NumInputs=2,NumOutputs=1); connections = ["fis1/output1""fis3/input1";"fis2/output1""fis3/input2"]; fisT = fistree([fis1 fis2 fis3],connections);

Obtain the tunable settings for the variables and rules infis3.

[in3,out3,rule3] = getTunableSettings(fisT,FIS="fis3");

You can also obtain tunable settings for multiple FIS objects in a FIS tree. Obtain the unable settings for the rules infis1andfis2.

[~, ~,规则12]= getTunableSettings(拳头,FIS=[“fis1”"fis2"]);

Input Arguments

collapse all

Fuzzy inference system, specified as amamfis,sugfis,mamfistype2,sugfistype2, orfistreeobject. The fuzzy system can be a fuzzy inference system or network of interconnected fuzzy inference systems.

Name-Value Arguments

Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN, whereNameis the argument name andValueis the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example:FIS="fis1"

Before R2021a, use commas to separate each name and value, and encloseNamein quotes.

Example:"AsymmetricLag",true

Names of component FIS objects from FIS tree, specified as a string or string array. When you specify this argument,in,out, andrulecontain the tunable settings for the variables and rules that apply to the specified component FIS objects.

This argument is supported whenfisis afistreeobject.

Option to use asymmetric lag when tuning the membership functions of a type-2 FIS.

This argument is supported whenfisis a:

  • mamfistype2orsugfistype2object

  • fistreewith at least one component FIS that is amamfistype2orsugfistype2object.

Output Arguments

collapse all

Tunable settings for input variables, returned as an array ofVariableSettingsobjects. EachVariableSettingsobject contains tunability settings for the input variable indicated by itsFISNameandVariableNameproperties.

指定中介银行的可调谐性设置ership functions for this variable, using itsMembershipFunctionsproperty.

Tunable settings for input variables, returned as an array ofVariableSettingsobjects. EachVariableSettingsobject contains tunability settings for the output variable indicated by itsFISNameandVariableNameproperties.

指定中介银行的可调谐性设置ership functions for this variable, using itsMembershipFunctionsproperty.

Tunable settings for rules, returned as an array ofRuleSettingsobject. EachRuleSettingsobject contains tunability settings for a rule from the FIS indicated by itsFISNameproperty.

Specify the tunability settings of the antecedent and consequent for this variable, using itsAntecedentandConsequentproperties, respectively.

Version History

Introduced in R2019a