single-valued constant membership function
Mostrar comentarios más antiguos
hi
how to define the output fuzzy set as fuzzy singletons - which mean's that the output membership function is single-valued constant as in picture below .
So in Matlab for example I want to set "PS" MF to 4 , Which type of MF should I choose and which value or Params[ ] should I set to it?

8 comentarios
Maria
el 13 de Dic. de 2014
Maria
el 13 de Dic. de 2014
Image Analyst
el 14 de Dic. de 2014
It probably has to do with the fuzzy toolbox, which I've added to the Product List, just in case. I don't think there are a lot (or any) fuzzy experts who participate in this forum, at least not that I can remember.
Maria
el 14 de Dic. de 2014
Guillaume
el 14 de Dic. de 2014
Maria, for us, non-fuzzy logic people, you'll have to express your problem in a non-fuzzy logic way. As I said, I've no idea what a 'membership function' is and I've also no idea what your graph represent.
The best thing is to give us an example of inputs as matrices or vectors or anything that we can just copy and paste into matlab and the expected result (again as something that we can generate in matlab).
Siddhant Gudhe
el 17 de Ag. de 2015
Maria, use triangular membership function only( trimf), but instead of defining its params as [-20 0 20], make it as [20 20 20]. You will get an singleton membership function at 20.
Truong Nhu
el 31 de Dic. de 2019
Thank you so much Siddhant Gudhe, you're right !
Respuestas (3)
Image Analyst
el 14 de Dic. de 2014
Perhaps this:
function test2
clc;
for k = 1 : 20
x = randi(20, 1, 1); % Get random input value.
mf = SetMembership(x); % Find out which it's closest to.
fprintf('%d is closest to %d\n', x, mf);
end
function mf = SetMembership(x)
% Define values for NB through PB.
dividers = -12 : 4 : 12; % -12, -8, -4, 0, 4, 8, 12
% Find out which one x is closest to
distances = abs(dividers - x);
% Find the min distance and what index it occurs at
[minDistance, indexOfMin] = min(distances);
% return the value of the dividers at that index
mf = dividers(indexOfMin);
Output:
16 is closest to 12
14 is closest to 12
8 is closest to 8
20 is closest to 12
15 is closest to 12
13 is closest to 12
19 is closest to 12
13 is closest to 12
16 is closest to 12
18 is closest to 12
16 is closest to 12
5 is closest to 4
13 is closest to 12
14 is closest to 12
16 is closest to 12
12 is closest to 12
15 is closest to 12
8 is closest to 8
14 is closest to 12
7 is closest to 8
Liyana
el 27 de Mzo. de 2017
0 votos
you could choose linear or constant type of mf
kohila ramkumar
el 5 de Jun. de 2018
0 votos
IF YOU ARE CREATE SUGENO FUZZY SYSTEM. IT IS HAVING CONSTANT MEMBERSHIP FUNCTION
Categorías
Más información sobre Fuzzy Logic in Simulink en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
