How to see the firing strength using command line of a fuzzy System?

3 visualizaciones (últimos 30 días)
Luis M
Luis M el 28 de Feb. de 2012
Respondida: Sam Chak el 21 de Sept. de 2024
Hi, I have built a fuzzy system from scratch using the fuzzy logic toolbox. My FIS has a huge number of rules and I would like to see, after using the comand evalfis for a concrete example, which is the firing strength of each rule. The problems is that I can not figure out how to access to this information using command line.
Thak you for your help

Respuestas (1)

Sam Chak
Sam Chak el 21 de Sept. de 2024
The firing strengths can be obtained from the 5th output argument of the 'evalfis' command. Howevern note that this approach doesn't work when the fis is a fistree object.
fis = readfis('tipper')
fis =
mamfis with properties: Name: "tipper" AndMethod: "min" OrMethod: "max" ImplicationMethod: "min" AggregationMethod: "max" DefuzzificationMethod: "centroid" DisableStructuralChecks: 0 Inputs: [1x2 fisvar] Outputs: [1x1 fisvar] Rules: [1x3 fisrule] See 'getTunableSettings' method for parameter optimization.
Service_Val = 2;
Food_Val = 1;
[output, fuzzifiedIn, ruleOut, aggregatedOut, ruleFiring] = evalfis(fis, [Service_Val Food_Val]);
disp(fuzzifiedIn)
0.4111 1.0000 0.1353 1.0000 0.0000 0
disp(ruleFiring)
1.0000 0.1353 0.0000
Alternative:
The firing strengths can be also be determined by manually performing the fuzzy operations on the fuzzified input values.
% Rule 1 firing strength
max(fuzzifiedIn(1,:))
ans = 1
% Rule 2 firing strength
min(fuzzifiedIn(2,:))
ans = 0.1353
% Rule 3 firing strength
max(fuzzifiedIn(3,:))
ans = 6.6584e-07
plotrule(fis, Inputs=[Service_Val Food_Val])

Categorías

Más información sobre Fuzzy Inference System Modeling en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by