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

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.

댓글을 달려면 로그인하십시오.

 채택된 답변

Sam Chak
Sam Chak 2022년 2월 23일

1 개 추천

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Fuzzy Logic in Simulink에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2022년 2월 18일

답변:

2022년 2월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by