I am very new to using fuzzy logic systems , let alone fuzzylite :). It seems like a very power tool in creating a FLC but I am having trouble getting a crisp output.
First I tired out the simpledimmer.cpp to see if I would get the full range of defuzzified values , however I was only getting crisp values between .25 and.75 which was defined to be in the medium output membership function. I thought that if a input crisp value of 0 went in , a defuzzified value of 1,0 would come out and if I used 1 as the crisp value then 0 would come out. Am I missing something?
I am trying to create a similar FLC, but instead of getting a range of defuzzified outputs I am only getting the center of my output range, regardless of what crisp input value I send it.
Basically I have one crisp (scalar) input and I have 3 input/output gaussian membership functions, and my rule block has three rules basically like simpledimmer.cpp.
You are not doing anything wrong. The crisp value you obtain is the result from the defuzzification process. In your case, the defuzzifier is the Centroid, which computes the centre of gravity of the fuzzy output, hence resulting in the mid-values you get. If you want the entire range, I suggest you move the terms such that their respective centroids cover the range you want the output to be in.