How to design a Fuzzy System for only five data points
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I'm new to Matlab. I want to make membership function of an array (Normalized Delay) having 5 values in it . x-axis -> Norm Delay, Y-axis-> Membership function from 0 to 1. Anyone can guide me Please how to make rules? What is the fuzzificaton language? How to implement it in Matlab? Thankyou.
1 comentario
Sam Chak
el 22 de Feb. de 2022
Hi @M Ali Naqvi
It is perfect okay to ask and learn how to do it in MATLAB.
Can you at least sketch how the membership functions should look like on a piece of paper, then snap a picture and insert the image here by clicking the Image button
?
Respuestas (1)
Sam Chak
el 22 de Abr. de 2025
Hi @M Ali Naqvi
Here is a demonstration of employing the Stone–Weierstrass theorem (instead of Taylor series) to design a relatively simple fuzzy system aimed at achieving 100% accuracy in the prediction of the five data points.
%% 5-point Data
x = 1:5;
y = randn(1, 5)
figure
plot(x, y, '-o'), grid on
xlabel('x (input)')
ylabel('y (output)')
title('5-point Data')
%% Sugeno Fuzzy System
fis = sugfis;
% Fuzzy Input 1
fis = addInput(fis, [x(1) x(end)], 'Name', 'X');
fis = addMF(fis, 'X', 'linzmf', [ x(1), x(2)], 'Name', 'x1');
fis = addMF(fis, 'X', 'trimf', [x(1), x(2), x(3)], 'Name', 'x2');
fis = addMF(fis, 'X', 'trimf', [x(2), x(3), x(4)], 'Name', 'x3');
fis = addMF(fis, 'X', 'trimf', [x(3), x(4), x(5)], 'Name', 'x4');
fis = addMF(fis, 'X', 'linsmf', [x(4), x(5) ], 'Name', 'x5');
plotmf(fis, 'input', 1), grid on,
title('Uniformly distributed membership functions of Input x')
% Fuzzy Output
fis = addOutput(fis, [min(y) max(y)], 'Name', 'Y');
fis = addMF(fis, 'Y', 'constant', y(1), 'Name', 'y1');
fis = addMF(fis, 'Y', 'constant', y(2), 'Name', 'y2');
fis = addMF(fis, 'Y', 'constant', y(3), 'Name', 'y3');
fis = addMF(fis, 'Y', 'constant', y(4), 'Name', 'y4');
fis = addMF(fis, 'Y', 'constant', y(5), 'Name', 'y5');
% Fuzzy Rules
rules = [
"X==x1 => Y=y1"
"X==x2 => Y=y2"
"X==x3 => Y=y3"
"X==x4 => Y=y4"
"X==x5 => Y=y5"
];
fis = addRule(fis, rules);
%% Fuzzy model
figure
opt = gensurfOptions('NumGridPoints', 5);
gensurf(fis, opt);
title('Achieving 100% prediction accuracy in Fuzzy Model')
0 comentarios
Ver también
Categorías
Más información sobre Fuzzy Logic Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


