getTunableSettings
Syntax
Description
[___] = getTunableSettings(
specifies tunable setting information using name-value pair arguments. You can specify
multiple name-value pairs.fis
,Name=Value
)
Examples
Obtain Tunable Settings from FIS
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;
Obtain Tunable Settings of Input and Output Variables from FIS
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);
You can use dot notation to specify the tunable settings 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;
Obtain Tunable Settings of Input and Output Variables from Type-2 FIS
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);
You can use dot notation to specify the tunable settings 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 between 0.7
and 0.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 between 0.1
and 0.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);
Specify Tunability of Parameter Settings
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);
Get Tunable Settings for FIS in FIS Tree
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 in fis3
.
[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 in fis1
and fis2
.
[~,~,rule12] = getTunableSettings(fisT,FIS=["fis1" "fis2"]);
Input Arguments
fis
— Fuzzy inference system
mamfis
object | sugfis
object | mamfistype2
object | sugfistype2
object | fistree
object
Fuzzy inference system, specified as a mamfis
,
sugfis
,
mamfistype2
,
sugfistype2
, or
fistree
object. The fuzzy system can be a
fuzzy inference system or network of interconnected fuzzy inference systems.
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is 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 enclose
Name
in quotes.
Example: "AsymmetricLag",true
FIS
— Names of component FIS objects from FIS tree
string | string array
AsymmetricLag
— Option to use asymmetric lag
false
(default) | true
Option to use asymmetric lag when tuning the membership functions of a type-2 FIS.
This argument is supported when fis
is a:
mamfistype2
orsugfistype2
objectfistree
with at least one component FIS that is amamfistype2
orsugfistype2
object.
Output Arguments
in
— Tunable settings of input variables
array of VariableSettings
objects
Tunable settings for input variables, returned as an array of VariableSettings
objects. Each
VariableSettings
object contains
tunability settings for the input variable indicated by its FISName
and VariableName
properties.
Specify the tunability settings of the membership functions for this variable, using
its MembershipFunctions
property.
out
— Tunable settings of output variables
array of VariableSettings
objects
Tunable settings for input variables, returned as an array of VariableSettings
objects. Each
VariableSettings
object contains
tunability settings for the output variable indicated by its FISName
and VariableName
properties.
Specify the tunability settings of the membership functions for this variable, using
its MembershipFunctions
property.
rule
— Tunable settings of rules
array of RuleSettings
objects
Tunable settings for rules, returned as an array of RuleSettings
object. Each
RuleSettings
object contains tunability settings for a rule from
the FIS indicated by its FISName
property.
Specify the tunability settings of the antecedent and consequent for this variable,
using its Antecedent
and Consequent
properties,
respectively.
Version History
Introduced in R2019a
See Also
setTunable
| getTunableValues
| setTunableValues
| tunefis
| VariableSettings
| RuleSettings
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)