Download Help (Windows Only) |

**Requires:** PID and Fuzzy Logic Toolkit

Select **Tools»Control Design and Simulation»Fuzzy System Designer** to display this dialog box.

Use this dialog box to design and test fuzzy systems. You also can use the Fuzzy Logic VIs to design, control, and modify fuzzy systems programmatically.

This dialog box includes the following pages:

**Variables**—Configures the linguistic variables of the fuzzy system.

This page includes the following components:**Input variables**—Lists the input variables in the fuzzy system. Select a variable in this list to display the corresponding membership functions on the**Input variable membership functions**graph. Double-click a variable in this list to launch the Edit Variable dialog box.**Add Input Variable**—Launches the**Edit Variable**dialog box with which you can create a new input variable.**Edit Input Variable**—Launches the**Edit Variable**dialog box with which you can edit the selected input variable.**Delete Input Variable**—Deletes the selected input variable.

**Input variable membership functions**—Plots the membership functions for the input variable you select in the**Input variables**list.**Output variables**—Lists the output variables in the fuzzy system. Select a variable in this list to display the corresponding membership functions on the**Output variable membership functions**graph. Double-click a variable in this list to launch the**Edit Variable**dialog box.**Add Output Variable**—Launches the**Edit Variable**dialog box with which you can create a new output variable.**Edit Output Variable**—Launches the**Edit Variable**dialog box with which you can edit the selected output variable.**Delete Output Variable**—Deletes the selected output variable.

**Output variable membership functions**—Plots the membership functions for the output variable you select in the**Output variables**list.

**Rules**—Configures the rules for the fuzzy system.

This page includes the following components:**Rules**—Lists all rules defined for the fuzzy system.**Add Rule**—Creates a new rule for the fuzzy system.**Delete Rule**—Deletes the selected rule.**Move Rule Up**—Moves the selected rule up one position in the**Rules**list.**Move Rule Down**—Moves the selected rule down one position in the**Rules**list.**Defuzzification method**—Specifies the defuzzification method the fuzzy logic controller uses to convert the degrees of membership of output linguistic variables into numerical values. You can use the Center of Area, modified Center of Area, Center of Sums, Center of Maximum, or Mean of Maximum defuzzification method.**Antecedents**—Configures the antecedents, or IF portions, of the rule you select in the**Rules**list. 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 linguistic term was created.**Add Antecedent**—Creates a new antecedent for the rule you select in the**Rules**list.**Delete Antecedent**—Deletes the last antecedent for the rule you select in the**Rules**list.

**Consequents**—Configures the consequents, or THEN portions, of the rule you select in the**Rules**list. 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 linguistic term was created.**Add Consequent**—Creates a new consequent for the rule you select in the**Rules**list.**Delete Consequent**—Deletes the last consequent for the rule you select in the**Rules**list.

**Antecedent connective**—Specifies how the fuzzy logic controller calculates the truth value of the aggregated rule antecedent. You can use the following antecedent connectives:**AND (Minimum)**—Specifies that the fuzzy logic controller uses the smallest degree of membership of the antecedents.**AND (Product)**—Specifies that the fuzzy logic controller uses the product of the degrees of membership of the antecedents.**OR (Maximum)**—Specifies that the fuzzy logic controller uses the largest degree of membership of the antecedents.**OR (Probabilistic)**—Specifies that the fuzzy logic controller 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. 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 the fuzzy logic controller uses to scale the membership functions of the output linguistic variable based on the rule weight. You can use the Minimum or Product implication method.

**Test System**—Tests the fuzzy system according to input values you specify.

This page includes the following components:**Input variable(s)**—Lists all input variables in the fuzzy system.**Input value(s)**—Specifies the value(s) of the corresponding input variable(s).**Output variable(s)**—Lists all output variables in the fuzzy system.**Output value(s)**—Returns the value(s) of the corresponding output variable(s).**Input/Output relationship**—Displays a 3D surface graph that plots the**Output variable**against**Input variable 1**and**Input variable 2**. This graph also indicates the location of the current input and output values.**Plot Variables**—Specifies the variables you want to display in the**Input/Output relationship**graph. Use this section of the**Test System**page to sweep the range of values for two input variables and observe the corresponding change in the value of the**Output variable**.**Input variable 1**—Specifies the first input variable you want to display in the**Input/Output relationship**graph. This variable appears as the x-axis of the**Input/Output relationship**graph.**Input value 1**—Specifies the value of the first input variable you want to display in the**Input/Output relationship**graph.**Input variable 2**—Specifies the second input variable you want to display in the**Input/Output relationship**graph. This variable appears as the y-axis of the**Input/Output relationship**graph.**Input value 2**—Specifies the value of the second input variable you want to display in the**Input/Output relationship**graph.**Output variable**—Specifies the output variable you want to display in the**Input/Output relationship**graph. This variable appears as the z-axis of the**Input/Output relationship**graph.**Output value**—Returns the value of the**Output variable**.

**Number of input 1 samples**—Specifies the number of samples of**Input variable 1**you want to plot on the**Input/Output relationship**graph.**Number of input 2 samples**—Specifies the number of samples of**Input variable 2**you want to plot on the**Input/Output relationship**graph.**Invoked Rules**—Displays the rules that apply to the current input and output variable values as well as the corresponding rule weights.