Closed greyltc closed 5 years ago
@rbrenesh, this should be solved in 6b2a0d085f8d8cea68e99a17ea03ada98d3b4e7d which I rolled into the v1.1.3 release (yay -S python-mutovis-control)
I've made a few changes to the algorithm to address this including adding a new parameter min_step (read about it here: https://github.com/mutovis/control-software/blob/master/MPPT.md)
I've also tweaked the default values so please let me know how this new MPPT is working for you.
I've also made some fixes and stability changes in the old MPPT algorithm in 06853af7e8cfc9aff5f2693a627859620435b6a7 so it should me much improved as well.
New MPPT is working great, as long as I set the learning rate to 1. A learning rate of 10 causes pretty wild oscillations. Photos below from a crappy cell.
Learn rate = 10
Learn rate = 1
I'm seeing weird behavior with a better cell (PCE ~ 16%). I'll play around with the algorithm a bit and if nothing works I'll open an issue.
that last one is a bit alarming. looks like the initial conditions were somehow very off. can you recreate this and if so, can you send me the full command you used to run the program when this was generated?
I should also mention that the first 10 seconds of every mppt session (no matter what the algorithm is) is to dwell at whatever I think Vmpp is for 10 seconds. Then after that 10 seconds the actual tracking algorithm turns on. The tracker should begin at Vmpp. So seeing the discontinuity here at 10s probably means there is a bug. Then as the algorithm runs, it drives power to zero (or below)? Could you have used a negative learning rate here or something?
I choose Vmpp for the start of the tracking algorithm to be whatever the voltage was when the power was at its maximum from an IV sweep that may have been done on the device previously. If no IV sweep was done then I think I take 0.8 of the Voc or something as Vmpp.
The fact that the tracker tracks the power all the way down to zero (then "bounces" off it) is also something I've never seen before. It looks like probably there's an abs()
in my power plotting or calculation code that is causing it to show negative power as positive.
So anyway, I'd really like to be able to recreate and study this because I think it shows some problems I should fix.
Making step changes in the amount of light on a device while using the new gradient_descent MPPT wasn't showing the algorithm track the corresponding Vmpp change as I expect.