What migh be producing these huge amount of Warnings in my FL control?

Dear all,
I have a battery control using Fuzzy Logic, it seems to be working properly, but I am receiving a tons of warnings like these:
> In fuzzy.internal.utility.throwWarning (line 14)
In PVGeo_based_LG (line 123)
Warning: In 'Full_PED_FL/FL_Battery_Control/Fuzzy Logic
Controller', no rules fired for Output 2. Defuzzified output value set to its mean range value 0.5.
> In fuzzy.internal.utility.throwWarning (line 14)
In PVGeo_based_LG (line 123)
Warning: In 'Full_PED_FL/FL_Battery_Control/Fuzzy Logic
Controller', no rules fired for Output 1. Defuzzified output value set to its mean range value 0.5.
What does this mean ? how can I overcome this misbehaviour?
Best regards

4 Comments

Look at this example: The inputs are Weft Stretch and BMI. And the Output 1 is Chest circumference.
If the following input values are entered, Weft Stretch = 85 and BMI = 23, then no rules are fired for Output 1. This happens because the designer forgot to take the Medium Stretch MF into account during the construction of the fuzzy rules. Thus, the defuzzified output value will automatically set to its mean range value 3 + (10 – 3)/2 = 6.5 (see the position of the red vertical bar).
To avoid this error, if the grid-partition method in generating fuzzy rules is used, then a total number of are expected for each output, provided that the 3 MFs in each input cover the entire the universe of discourse.
Thank you in advance for trying to help me workaround these issues, I share with you my rules, and as you can see I do not have those red lines that you have in your outputs.
I see. When your Power Error = 0, none of rules is fired, because Power Error only has Negative MF (< 0) and Positive MF (> 0).
It is similar to the common issue in low-level collision avoidance systems. If the Obstacle is on the left, then STEER right (+ve angle). If the Obstacle is on the right, then STEER left (–ve angle). When the Obstacle is exactly in the middle, it creates a "confusion" because no rules fired for the STEER output. And if the defuzzified output value set to its mean range value, which is 0° (no steering occurs), then disastrous collision may happen.
The same like playing in Badminton Doubles. If opponents are in a defensive position, and the center of their court is open, then smashing to the middle will cause confusion becaise the opponents have to mentally decide in a split second who must return.
As a first-line rectification, try modifying the membership functions in Power Error to look like in the figure below where the adjacent triangular fuzzy sets cross at 0.5, in which the middle truth-value 0.5 can be interpreted as "undecided". If you fix that, then Rules #5 , #8, #11, and #14 will be fired.
Thank you so much for your guidance and explanation, you were right in your workaround. It is working properly.

Sign in to comment.

 Accepted Answer

It is good to hear that my suggestion described above works for your case.

More Answers (0)

Categories

Products

Release

R2021a

Asked:

on 18 Feb 2022

Answered:

on 23 Feb 2022

Community Treasure Hunt

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

Start Hunting!