Main Content

Fuzzy Logic Designer

Design, test, and tune fuzzy inference systems

Description

The Fuzzy Logic Designer app lets you design, test, and tune a fuzzy inference system (FIS) for modeling complex system behavior.

Using this app, you can:

  • Design Mamdani and Sugeno FISs.

  • Design type-1 and type-2 FISs.

  • Tune the rules and membership functions of a FIS.

  • Design and tune FIS trees. (since R2023b)

  • Analyze the behavior of a fuzzy system, including:

    • View rule inference process for given input values.

    • View output surface maps for fuzzy inference systems.

    • Compare FIS outputs with corresponding output values from testing data. (since R2023a)

    • View error distributions across input ranges based on testing data. (since R2023a)

    • View the propagation of inference results through a FIS tree. (since R2024a)

  • Export FIS design to the MATLAB® workspace.

  • Export FIS design to Simulink® model. (since R2025a)

  • Generate MATLAB code for building, simulating, or tuning FIS designs.

Fuzzy Logic Designer app

Open the Fuzzy Logic Designer App

  • MATLAB Toolstrip: On the Apps tab, under Control System Design and Analysis, click the app icon.

  • MATLAB command prompt: Enter fuzzyLogicDesigner.

  • Simulink model: In the Fuzzy Logic Controller block dialog, click Design.

Examples

expand all

To import a FIS from a file, select Import > Import Fuzzy Inference System from File.

On the left side of the app toolstrip, in the File section, the pointer is over the Import Fuzzy Inference System from File selection in the Import menu.

In the Import Fuzzy Inference System dialog box, select a FIS or MAT file and click Open.

To import a FIS from the MATLAB workspace, under Import > Import Fuzzy Inference System from Workspace, click a FIS or FIS tree.

On the left side of the app toolstrip, in the File section, in the Import menu, the pointer is over a FIS under the Import Fuzzy Inference System from Workspace selection.

A new Fuzzy Logic Designer instance opens and loads the selected FIS.

Using Fuzzy Logic Designer, you can convert between Mamdani and Sugeno systems and between type-1 and type-2 systems.

To convert the active system, on the Design tab, in the Convert FIS section, click the corresponding conversion operation. The available operations depend on the type of the active FIS design.

App toolstrip showing the Covert FIS section for an active type-1 Mamdani system.

  • To convert a Mamdani FIS into a Sugeno FIS, click Mamdani to Sugeno.

  • To convert a Sugeno FIS into a Mamdani FIS, click Sugeno to Mamdani.

  • To convert a type-1 FIS into a type-2 FIS, click Type-1 to Type-2.

  • To convert a type-2 FIS into a type-1 FIS, click Type-2 to Type-1.

The app adds the converted FIS to the Design Browser. To make the converted system active, select it in the Design Browser and click Set Active Design.

For more information on converting between Mamdani and Sugeno systems, see Mamdani and Sugeno Fuzzy Inference Systems.

For more information on converting between type-1 and type2 systems, see convertToType1 and convertToType2.

To save your FIS to a file, on the Design tab, under Save, select the fuzzy inference system.

You can select the current active design or any of the stored designs.

App toolstrip showing the Save menu. The pointer is over the single FIS listed in the menu.

In the Save Fuzzy Inference System dialog box, specify a filename and location, and click Save.

  • When saving a FIS design, you can use a FIS file or a MAT file.

  • When saving a FIS tree design, you must use a MAT file.

To export a FIS design to the MATLAB workspace, on the Design tab, select Export > Export Fuzzy Inference System To Workspace.

App toolstrip showing the Export Fuzzy Inference System to Workspace selection in the Export menu on the far right side of the toolstrip.

The Export Fuzzy Inference System to Workspace dialog box lists the active FIS design along with any stored designs.

Export Fuzzy Inference Systems to Workspace dialog box containing a table with FIS designs

In the Export column, select one or more systems that you want to export.

The active FIS design is selected by default. (since R2024a)

In the Export As column, specify names for the workspace variables.

Click Export.

The app saves the FIS to the MATLAB workspace as one of the following types of objects.

Once you export your FIS, you can:

  • Perform additional simulations at the command line using the evalfis function.

  • Simulate your system in Simulink using the Fuzzy Logic Controller block.

  • Generate code for your system. For more information, see Deployment.

After evaluating your FIS using Fuzzy Logic Designer, you can export the following simulation results to the MATLAB workspace for the active and stored designs.

  • Control surface data points

  • Rule inference data (individual FIS only)

  • Error distribution data (since R2023a)

  • System validation data (since R2023a)

  • FIS tree data flow results (FIS tree only) (since R2024a)

In Fuzzy Logic Designer, select Export > Export Simulation Results to Workspace.

App toolstrip showing the Export Simulation Results to Workspace selection in the Export menu on the far right side of the toolstrip

The Export Simulation Results to Workspace dialog box lists the simulation results that are available for export. To export simulation results, you must first view the corresponding simulation document in the app.

The following figure shows the Export Simulation Results to Workspace dialog box for a single FIS object.

Export Simulation Results to Workspace dialog box

The Simulation Results column indicates the FIS designs and the type of simulation data using one of the following entries, where <design> indicates the FIS design.

  • <design>_ControlSurfaceData — Control surface data points

  • <design>_RuleInferenceData — Rule inference data

  • <design>_ErrorDistributionData — Error distribution data

  • SystemValidationData — System validation data for all selected designs

  • <design>_FISTreeDataFlowData — FIS tree data flow results

In the Export column, select one or more simulation results that you want to export.

In the Export As column, specify names for the workspace variables.

Click Export.

The app saves each selected simulation result to the MATLAB workspace as a structure, as defined in the following table.

Simulation DataDescription
Control surface data points

Data points for the most recent plot displayed in the Control Surface document for the active design, exported as a structure with the following fields.

  • X — Data values for first selected input

  • Y — Data values for second selected input

  • Z — Data values for selected output

The dimensions of X, Y, and Z match the Mesh Points selections in the Control Surface document.

This control surface data matches the data points generated by the gensurf function.

Rule inference data

Rule inference results for the active design, including intermediate computed values, exported as a structure with the following fields.

  • inputs — Input values.

  • numSamplePoints — Number of sample points in output fuzzy sets. To specify this value, on the Design tab, set the Number of Samples parameter.

  • outputs — Output values.

  • fuzzifiedInputs — Fuzzified input values.

  • ruleOutputs — Rule outputs calculated by applying the rule firing strengths to the output membership function using the FIS implication method.

  • aggregatedOutputs — Aggregated output calculated by combining the rule outputs using the FIS aggregation method.

  • rulefiringStrengths — Rule firing strengths calculated by applying the rule connection operator to the values of the fuzzified inputs.

The dimensions of the fuzzifiedInputs, ruleOutputs, aggregatedOutputs, and rulefiringStrengths fields depend on the type of FIS you exported. For more information, see evalfis.

Error distribution data (since R2023a)

Error distribution data for the active design, exported as a structure with the following fields, each containing a numeric array.

  • refInput — Validation input data specified on the Design tab, in the Input Data list

  • refOutput — Validation input data specified on the Design tab, in the Output Data list

  • simOutput — FIS outputs from processing the values in refInput

  • simError — Simulation error, which is the difference between the values in refOutput and simOutput

System validation data (since R2023a)

System validation data for all selected FIS designs, exported as a structure with the following fields.

  • refInput — Validation input data specified on the Design tab, in the Input Data list

  • refOutput — Validation input data specified on the Design tab, in the Output Data list

  • simOutput — FIS outputs from processing the values in refInput, returned as a structure with one field for each selected FIS design

  • simError — Simulation error, which is the difference between the values in refOutput and simOutput, returned as a structure with one field for each selected FIS design

A selected design is a design for which you select the Compare option in the Design Browser.

FIS tree data flow results (since R2024a)

FIS tree data propagation for the active design using the most recent input values specified in the FIS Tree Plot document, exported as a structure with the following fields.

  • fisTree — Input and output data for the overall FIS tree, returned as a structure with input and output fields, respectively.

  • fis — Input and output data for each component FIS in the FIS tree, returned as a structure array with input and output fields, respectively.

For the active FIS design, the exported simulation results correspond to the simulation settings, such as the input values in the Rule Inference document or the selected axes in the Control Surface document, currently defined in the app.

For a stored FIS design, the exported simulation results correspond to the simulation settings when the design was most recently active in the app. In other words, the exported results for a stored design may not use the simulation settings currently defined in the app.

Since R2024a

You can export tuning options and tunable parameter settings to the MATLAB workspace. You can then use these options and settings when tuning a FIS using tunefis.

In Fuzzy Logic Designer, on the Tuning tab, select Export > Export Tuning Options and Settings to Workspace.

App tuning toolstrip showing the Export Tuning Options and Settings to Workspace selection in the Export menu on the far right side of the toolstrip

The Export Tuning Options and Settings to Workspace dialog box lists the current tuning options and tunable parameter settings in the app.

Export Tuning Options and Settings to Workspace dialog box containing a table with three columns, from left to right, Export, Options and Settings, and Export As.

The Options and Settings column indicates the following options and settings available for export.

  • tuningOptions — Tuning options, exported as a tunefisOptions object

  • inputSettings — Input variable tunable settings, exported as a vector of VariableSettings objects

  • outputSettings — Output variable tunable settings, exported as a vector of VariableSettings objects

  • ruleSettings — Rule tunable settings, exported as a vector of RuleSettings objects

In the Export column, select the options or settings that you want to export.

In the Export As column, specify the name of the workspace variables.

Click Export.

The app saves the options and settings as objects in the MATLAB workspace. You can use these objects when tuning a FIS using tunefis.

Since R2025a

To export a FIS to a Simulink model, on the Design tab, select Export > Export to Simulink.

App toolstrip showing the Export to Simulink selection in the Export menu on the far right side of the toolstrip

In the Export design to Simulink model dialog box, select a FIS design to export.

Export design to Simulink model dialog box . In the Design drop-down list, a FIS design is selected.

The software:

  1. Exports the selected FIS object to the MATLAB workspace.

  2. Creates a new Simulink model that contains a corresponding Fuzzy Logic Controller or FIS Tree block.

  3. Configures the model to simulate the exported FIS object.

The model contains a Constant block for the FIS inputs and a Display block for the FIS outputs.

Fuzzy Logic Controller block with input Constant block and output Display block. The Fuzzy Logic Controller block is highlighted.

To generate MATLAB code for creating a FIS, on the Design tab, select Export > Generate MATLAB Script for a Design. (since R2024a)

Design tab showing the Generate MATLAB Script for a Design selection in the Export menu on the far right side of the toolstrip.

For more information, see Generate MATLAB Code for Building Fuzzy Systems.

To generate MATLAB code for simulating a FIS, on the Design tab, select Export > Generate Simulation Function. (since R2024b)

Design tab showing the Generate Simulation Function selection in the Export menu on the far right side of the toolstrip.

For more information, see Generate MATLAB Code for Simulating Fuzzy Systems.

To generate MATLAB code for tuning a FIS, on the Tuning tab, select Export > Generate Tuning Function. (since R2024a)

Tuning tab showing the Generate Tuning Function selection in the Export menu on the far right side of the toolstrip.

For more information, see Generate MATLAB Code for Tuning Fuzzy Systems.

Related Examples

Programmatic Use

expand all

fuzzyLogicDesigner opens the Fuzzy Logic Designer app and loads the Getting Started dialog box, where you can open an existing FIS or create an initial FIS structure. For more information, see Get Started Using Fuzzy Logic Designer.

fuzzyLogicDesigner(fis) opens the app and imports the fuzzy inference system fis. fis can be any of the following objects in the MATLAB workspace or on the path.

fuzzyLogicDesigner(fileName) opens the app and loads a fuzzy inference system from a file. fileName is the name of one of the following types of files on the MATLAB path.

  • FIS file (*.fis) — Load a mamfis, sugfis, mamfistype2, or sugfistype2 object.

  • MAT file (*.mat) — The MAT file must contain only one mamfis, sugfis, mamfistype2, sugfistype2, or fistree object. (since R2024a)

Version History

Introduced in R2014b

expand all