File Exchange

image thumbnail

PV array with algebraic loop broken

version 1.0.3 (79.8 KB) by Gert Kruger
PV array with filter corrected to solve the algebraic loop problem.


Updated 11 Jul 2019

View License

Vd, which is dependent on the model outputs, is fed-back to the model inputs which would have caused an algebraic loop if the filters were not present. The continued presence of the algebraic loop indicates that the V Filter and I Filter implementation probably has an unintended direct-feed through at some point during the simulation.

The proposed model bypasses the faulty filters with correctly functioning filters which breaks the algebraic loop.

Cite As

Gert Kruger (2020). PV array with algebraic loop broken (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (10)

Sandra Silva

Doenst work powergui on discrete

Gert Kruger

Please note the following issues:
- The model is tested to work at least up to 2016b, with the Powergui block set to continuous.
- A discrete solver setting results in a derivative error: "Derivative of state '1' in block 'PV_array_solved_algebraic_loop_bus/PV Array/Vd Filter/ ' at time 0.0001 is not finite."
- It also does not initialize correctly when calling a Simulink model from a Matlab script. A workaround for this is to open the model and initialize it by running it at least once using the Simulink interface. Whilst still open the model can be called from a Matlab script.

Lucas Krijgsman

It gives several errors. Sadly it doesnt work.

Rashed HD

it does not work with powergui block with discrete mode

Pradipta Kumar Pal


not working

Jogi Vijay Kumar

how to solve this error :Derivative of state '1' in block 'PV_array_solved_algebraic_loop_bus/PV Array/Vd Filter/ ' at time 0.0001 is not finite. The simulation will be stopped. There may be a singularity in the solution. If not, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances)

Rafael Araujo



Fixed the internal measurements of the model so that the bus selector functions as intended.


Added acknowledgment to filter used.


I_PV and V_PV do not have to be filtered separately in order to break the algebraic loop. Only Vd needs to be filtered. The Vd filter output is initialized to the panel open circuit voltage.

MATLAB Release Compatibility
Created with R2016b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Inspired by: Real time tunable filters