Main Content

RuleSettings

Tunable parameter settings of fuzzy rules

Description

Use a RuleSettings object to specify the tunable parameter settings for the rules of a fuzzy inference system.

Creation

Create a RuleSettings object using getTunableSettings. The third output argument of getTunableSettings contains a RuleSettings object for each rule in a fuzzy system.

Properties

expand all

This property is read-only.

Name of fuzzy inference system, represented as a string.

This property is read-only.

Index of rule in fuzzy inference system, represented as an integer.

Antecedent parameter settings, specified as a ClauseParameters object with the following properties. The antecedent clause parameter values are the membership functions corresponding to each input variable.

PropertyDescriptionDefault
Free

Available for tuning, specified as a logical 1 or 0, or an array of logical values with length equal to the number of inputs. To apply different settings to each clause parameter, specify an array of logical values. To apply the same setting to all clause parameter values, specify a scalar logical value.

1 for all elements
AllowNot

Allow NOT logic in rule clauses, specified as a logical 1 or 0, or an array of logical values with length equal to the number of inputs. To apply different settings to each clause parameter, specify an array of logical values. To apply the same setting to all clause parameter values, specify a scalar logical value.

0 for all elements
AllowEmpty

Allow ignoring inputs and outputs in rule clauses, specified as a logical 1 or 0, or an array of logical values with length equal to the number of inputs. To apply different settings to each clause parameter, specify an array of logical values. To apply the same setting to all clause parameter values, specify a scalar logical value.

1 for all elements

Consequent parameter settings, specified as a ClauseParameters object with the following properties. The consequent clause parameter values are the membership functions corresponding to each output variable.

PropertyDescriptionDefault
Free

Available for tuning, specified as a logical 1 or 0, or an array of logical values with length equal to the number of outputs. To apply different settings to each clause parameter, specify an array of logical values. To apply the same setting to all clause parameter values, specify a scalar logical value.

1 for all elements
AllowNot

Allow NOT logic in rule clauses, specified as a logical 1 or 0, or an array of logical values with length equal to the number of outputs. To apply different settings to each clause parameter, specify an array of logical values. To apply the same setting to all clause parameter values, specify a scalar logical value.

0 for all elements
AllowEmpty

Allow ignoring inputs and outputs in rule clauses, specified as a logical 1 or 0, or an array of logical values with length equal to the number of outputs. To apply different settings to each clause parameter, specify an array of logical values. To apply the same setting to all clause parameter values, specify a scalar logical value.

1 for all elements

Object Functions

setTunableSet specified parameter settings as tunable or nontunable

Examples

collapse all

Create a fuzzy inference system.

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

Obtain rule parameter settings from the FIS.

[~,~,rule] = getTunableSettings(fis);

Each rule parameter setting includes the FIS name, the index of the rule in the FIS, and parameter settings for the rule antecedent and consequent (the rule clauses). For each clause, you can specify the tunability settings.

View the default tunable settings for the antecedent of the first rule.

rule(1).Antecedent(1)
ans = 
  ClauseParameters with properties:

      AllowNot: [0 0]
    AllowEmpty: [1 1]
          Free: [1 1]

You can use dot notation to specify the tunable settings for each rule.

Allow NOT logic in the antecedent of rule 1.

rule(1).Antecedent.AllowNot = true;

Make the consequent of rule 2 not available for tuning.

rule(2).Consequent.Free = 0;

Do not allow absence of a variable in the consequent of rule 3.

rule(3).Consequent.AllowEmpty = false;

Version History

Introduced in R2019a