The final year project of my Bachelor’s was to develop a novel Maximum Power Point Tracking algorithm using PID controller logic to manage a solar PV connected to a flyback inverter.
You can see the full report here, but it is in Thai. The one page summary in English is below.
The jobs of running the PID controller logic and generating the PWM control signals for the flyback inverter were separated/decoupled. An Arduino UNO R3 was used to run the PID controller logic, outputting a analog control signal. The Arduino is not fast enough to generate the 27kHz control signals needed to control the flyback inverter. A dsPIC30F4011 microcontroller was used to read the analog signal from the Arduino and generate the high frequency control signals.
By tweaking the PID control coefficients (kp, ki and kd) more optimal MPPT can be achieved than simply using linear control logic.
The project code for the dsPIC microcontroller (followed by the code for the Arduino) is below.