How to customize output membership functions for Sugeno fuzzy systems in Fuzzy Logic Designer

1 view (last 30 days)
Hi, I have an assignment to deaign a fuzzy controller for the lorenzo system. Thw fuzzy controller has 2 inputs 'x1' and 'x2' the first two state variables and one output u1. Lets say that my first membership function for my output is u1=x2(sigma+ro) where both 'sigma' and 'ro' are constants. When I input this value into the fuzzy logic designer it returns an error and doesn't change the membership function for the output u1. I'm using the default sugeno FIS and setting the output membership function to constant. In short, I want to use an input value to calculate the output.

Answers (1)

Sam Chak
Sam Chak on 23 Apr 2025
If the mathematical notation in the output equation "u1 = x2(sigma + ro)" indicates implied multiplication (or multiplication by juxtaposition), then it is a linear term, which can be specified in the code as follows:
sigma = 2;
ro = 3;
fis = addOutput(fis, [-1, 1], 'Name', 'U');
fis = addMF(fis, 'U', 'linear', [0, (sigma + ro), 0], 'Name', 'u1');
However, if the output equation "u1 = x2(sigma + ro)" represents a desired nonlinear function of the second input, x2​, then it is not possible to create a special nonlinear function for the output, as custom output membership functions are not supported for MATLAB Sugeno systems. To create custom output membership functions for Sugeno fuzzy systems, one must manually write a piece of code that executes the Sugeno inference.

Categories

Find more on Fuzzy Logic Toolbox in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!