I've already developed a control model by using fuzzy controller in simulink. there are some problems that seems like bugs. If you just agree with me please let me know how can I report this bugs to Mathworks respondents?
1. When I use a fuzzy controller block with rule viewer, the block output is zero all the time however rule viewer works properly and show true outputs. When I try to show block output signal by using the tool show value label of the port I see that the value is grounded all the time.
2. The aforementioned problem does not exist for the fuzzy controller block without rule viewer. But there is another problem. The fuzzy controller works properly since a point time and after that reports zero in the rest of the simulation. I'm sure that this problem does not come from my fuzzy structure file and rule base because I've checked it outside simulink in programming environment. it works properly.
Thanks in advance
Hallo dear Jamali / Ryan G,
First of all, sorry for my english, i hope you can read it and understand me well !
i have the same problem using fuzzy logic ! After giving all the rules and implement a fuzzy block in simulink, i have a permanent zero as output !
while looking in the fuzzy rules viewer, it seems all to be ok... but while implement it in Simulink..."don´t get enough zero" !!!
I look in the FIS WIZARD (Model Browser) and i have see that they are some ports who are not connected ( maybe the reason of this permanent zero )... i have made some screenshots and maybe i can mail them to you !
I suspect that this error is running under Matlab 2010a , while when i use Matlab 2012 i don´t have this problem ( but i have to test it one more time
I hope you can understand my sentences and maybe you have a solution of this bug
I've already solved my problem but I still believe that It's a bug. I think its belong to the fuzzy variable ranges. In the programming environment or in the fuzzy rule viewer block in Simulink, while you are feeding an out of range value to the fuzzy block it uses the saturated value of input for calculations. But in the fuzzy block something else happens. the fuzzy block uses the out of range value for calculations so if your membership functions are zero all of the out of range region the output may always be zero referring to the rule base. In such a situation The rule viewer block reports different outputs because it saturates the inputs, I think.
Hope you find it useful