Fuzzy logic - help required urgently - Programmers Heaven

#### Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

# Fuzzy logic - help required urgently

Posts: 1Member
Hi .. I am new to the fuzzy logic systems. I studied it a little and developed one programme in Matlab .
It seems fine to me but it doesnt work correctly for some inputs.
It gives a warning "Total area is zero in defuzzCentroid() for output 1"
"Average of the range of this output variable is used as the output value"

I am confused whether some problem in Logic or something else.Logic seems fine to me.
Can you please see whats the problem in logic or implementation.

I have 3 inputs and 1 output.

function [FaultIndex] = indexcal(NormRMS,dstatVal,Difference)

d = newfis('Fault1');

RuleList3=[1 1 1 1 1 1 ; 2 2 2 2 1 1; 3 3 3 4 1 1;...
2 3 3 3 1 1; 3 2 3 3 1 1; 3 3 2 3 1 1;4 0 0 4 1 1; 0 0 4 3 1 1];

[FaultIndex] = evalfis([NormRMS dstatVal Difference],d);

My inputs are : 1.0192 0.04 1.4305

So it gives result as 0.5 i.e. average of the range [ 0 1] though according to the inputs and membership
functions , output should be much less.

Thanks:-)

• Posts: 17Member
It sounds as though, in the cases you mention, the entire output domain has a fuzzy truth of 0.0. Typically, as the various fuzzy rules fire, they each attach one more fuzzy output set to be combined through fuzzy composition. Yours, I am guessing, have all gone to zero.

One easy possibility to check is whether your entire [italic]input[/italic] is covered- if it's not, no rules will fire and the output domain will have nothing in it. For the specific cases which generate this error, I suggest checking whether any fuzzy rules fire at all (or should).

Good luck!

-Will Dwinnell