Permanent zero on Fuzzy block output P&O mppt algorithm

Dear Staff and members,
I have an issue on my Fuzzy block which display only zero value on Matlab R2017b in a P&O MPPT algorithm model. If anyone can help. Thanks in advance.

2 Comments

Can't help without seeing the Simulink file and the FIS file. Can you put them in a zipped file and attach it by clicking that paperclip icon ?
Hi Dear Sam,
Please find in the attached the requested file. Looking forward your response. Thanks in advance.
Mohamed.

Sign in to comment.

Answers (1)

From Scope 1, you can observe that the "error" value is -25; however, this value lies outside the range of the "error" fuzzy set. Therefore, I suspect that the defuzzified "output1" value was set to its mean range value (−1 + 1)/2 = 0. To address this issue, ensure that the operating values lie within the ranges of the fuzzy sets {'error' and 'change_in_error'} by properly scaling them. This will resolve the problem.
Unfortunately, your MPPT model contains an algebraic loop that cannot be solved. If you examine the loop highlighted in yellow, you will see that the computation in the 'Division × ÷' block requires the input value of Vd​. However, the computation of Vd in the 'Addition' block depends on values derived from the output of the 'Division × ÷' block. This complex 'static' mathematical operation creates the "Algebraic Loop" issue.
In normal circumstances, 'dynamic' math operations are supplied with initial state values to prevent the "Algebraic Loop" issue that use the input value for the current time step to calculate the output value for the current time step.
Figure 1: Comparing the actual input values to the FIS and the ranges of Fuzzy Sets {'error' and 'change_in_error'}
Figure 2: Test if the FIS returns a non-zero output value if the input value lies in the range of the fuzzy set.
Figure 3: The ranges of the fuzzy sets are rescaled.
Figure 4: The Fuzzy System issue is fixed, but the MPPT model contains an algebraic loop that cannot be solved.

5 Comments

Dear Sam,
Thanks for your feedaback. Unfortunately, the model you talk about is a PV model taken from simulink library. Otherwise, did you modified the range parameters of FZ inputs ? In addition, can you pleae attach in then comment the resclaed FZ function shown in Figure 3.
Please find the requested FIS file enclosed in a zipped file. To be honest, I am unsure of your intended operating ranges; therefore, I have rescaled the FIS input universe of discourse based on the results I observed in the Scope over the duration from 0 to 0.01 seconds. The fuzzy output range remains unchanged; you may need to adjust this range, as the action is currently constrained primarily between -0.5 and 0.5.
While I am not an expert, given your expertise in PV systems and solar cell physics, do you genuinely believe that the components in your Simulink PV model should compute Vd​ instantaneously, without any time delay? Consider the question: "Can electrons take instantaneous quantum leaps after being knocked loose from their atoms when excited by sunlight?"
Dear Sam,
Thanks for your feedaback. I will see how to corret the issue in the range parameters of FIS. And as mentionned in my previous comment, the PV model is taken from simulink library and is not my own design.
My rhetorical question was intended to suggest that you insert a relatively fast dynamic first-order "Transfer Function" or "State-Space" block directly after the "Addition" block to break the unrealizable instantaneous algebraic loop.
With the "State-Space" block, you can specify the initial Vd freely. If you use the "Transfer Function" block, the solver assumes that the initial Vd is 0 by default.
Please test it and let me know if it works.
Dear Sam,
Thanks for your feedback. Unfortunately, the PV model is a mask block made by Matlab which can not be modified.

Sign in to comment.

Products

Release

R2017b

Asked:

on 17 Aug 2024

Commented:

on 20 Aug 2024

Community Treasure Hunt

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

Start Hunting!