FL Integrate Rule VI

Owning Palette: Rules VIs

Requires: Full Development System

Checks a new rule for conflicts with existing rules in the fuzzy system and, optionally, integrates the new rule into the system.

 Add to the block diagram  Find on the palette
integration option specifies the method to use for determining whether LabVIEW integrates the new rule. You can select from the following options:
  • Check rule only—Checks the new rule for conflicts with existing rules but does not integrate the new rule.
  • Add if no conflicts—Integrates the new rule only if it has no conflicts with existing rules.
  • Add if partial conflicts—Integrates the new rule if it has partial, but not full, conflicts with existing rules. A partial conflict occurs when an antecedent conflicts with one or more, but not all, antecedents declared in another rule.
  • Replace if full conflict—Integrates the new rule as a replacement for an existing rule with which the new rule has a full conflict. A full conflict occurs when all the antecedents in the new rule conflict with all the antecedents declared in another rule.
fuzzy system in specifies the complete information for a fuzzy system. Wire the fuzzy system out output from another VI to the fuzzy system in input of this VI.
new rule specifies the new rule to integrate into the fuzzy system.
antecedents specifies the antecedents, or IF portions, of the rule. Each antecedent consists of three parts: the index of an input linguistic variable, an operator that specifies whether to calculate the degree of membership or the degree of non-membership of the input linguistic variable within a linguistic term, and the index of the linguistic term. The indexes correspond to the order in which the variables or linguistic terms were created.

You can use the Build Array function or a loop to build an array of rule antecedents that you create with the FL Create Antecedent VI. You then can wire the array to this input.
consequents specifies the consequents, or THEN portions, of the rule. Each consequent consists of three parts: the index of an output linguistic variable, an operator that specifies whether to calculate the degree of membership or the degree of non-membership of the output linguistic variable within a linguistic term, and the index of the linguistic term. The indexes correspond to the order in which the variables or linguistic terms were created.

You can use the Build Array function or a loop to build an array of rule consequents that you create with the FL Create Consequent VI. You then can wire the array to this input.
antecedent connective specifies how this VI calculates the truth value of the aggregated rule antecedent.

0AND (Minimum)—Specifies that this VI uses the smallest degree of membership of the antecedents.
1AND (Product)—Specifies that this VI uses the product of the degrees of membership of the antecedents.
2OR (Maximum)—Specifies that this VI uses the largest degree of membership of the antecedents.
3OR (Probabilistic)—Specifies that this VI uses the probabilistic sum of the degrees of membership of the antecedents. The fuzzy logic controller uses the following equation to calculate the probabilistic sum: (A + B) – (A * B), where A and B are the antecedents.
degree of support specifies the weight, between 0 and 1, that you want to apply to the rule. The default is 1. Multiply the degree of support by the truth value of the aggregated rule antecedent to calculate the rule weight.
consequent implication specifies the implication method this VI uses to scale the membership functions of the output linguistic variable based on the rule weight.

0Minimum—Specifies to use the Minimum implication method.
1Product—Specifies to use the Product implication method.
error in describes error conditions that occur before this node runs. This input provides standard error in functionality.
fuzzy system out returns the complete information for a fuzzy system. Wire this output to the fuzzy system in input of another VI.
all rule conflicts returns the indexes of all existing rules that have either partial or full conflicts with the new rule.
full rule conflicts returns the indexes of existing rules that have full conflicts with the new rule.
error out contains error information. This output provides standard error out functionality.