MATRIXx

cancel
Showing results for 
Search instead for 
Did you mean: 

fuzzy logic block debugging

I have a populated a fuzzy logic block instance in MatrixX with application data that seems consistent with the example code contained in the user's guide (e.g., membership classes, rules, etc.).  However, when I sweep the inputs through their ranges the fuzzy output never changes.  Any suggestions on how to find the problem?
0 Kudos
Message 1 of 4
(8,288 Views)

Hello,

 

One thing to check is the members.  Do a uifuzzy {blockid=blockid} and see if you have your members assigned correctly. Are you using qualifiers?

Do you have a rule for all the possible inputs?

 

I would first run the code that comes by default with the block.  Check the members and then start playing with the input.  

 

For example, you can create a time vector of t=[0:0.01:10]; and then the input to be in=random(t);

 

Try that and check what you get when you change the value of in.

Hope this helps.

Ricardo,

National Instruments

0 Kudos
Message 2 of 4
(8,271 Views)

Thanks for the advice. 

I incrementally changed one thing in the generic model at a time, and the problem appears to be that I assigned an output range outside of 0 to 1.  As soon as I normalized all of the output values, the output started changing.

I tried to invoke the uifuzzy tool, but it crashes with an index out of range error in the Xmath window any time I invoke it.  Do you want me to report this somewhere?

0 Kudos
Message 3 of 4
(8,256 Views)

Hello,

If you could upload your fuzzy block here and I will check it. What version of MATRIXx do you have?

Ricardo

National Instruments

0 Kudos
Message 4 of 4
(8,242 Views)