Understanding Controller Parameter Selection in "Solar PV System with MPPT and Boost Converter" Example
22 views (last 30 days)
Show older comments
Robbe
on 31 Mar 2025
Commented: Mohamad
on 2 Nov 2025 at 17:03
In this Simulink model, the Maximum Power Point Tracking (MPPT) algorithm block sets the reference voltage for the controller to maintain on the PV side to ensure maximum power operation. The controller achieves this by adjusting the duty cycle of the switch for impedance matching. It consists of an outer voltage control loop and an inner current control loop. The current controller regulates the inductor current and operates several orders of magnitude faster than the outer voltage controller, which in turn provides the reference current for the current controller. Both loops contain PI controllers with saturation limits.
The parameter initialization file for the Simulink model called SolarPVMPPTBoostData.mlx provides a brief explanation of the design process behind the boost converter controller (lines 191-214). I find this model appealing because it is modular and doesn't require manual tuning of the PI controllers when input parameters change, yet it still delivers good performance. For this reason, I am trying to gain a better understanding of how the gains and time constants are selected. While I am familiar with the controller design techniques used, I am having trouble connecting the brief documentation in the script with the formulas in the file, as I don't see how they relate. Additionally, I am unclear on the involvement of the first-order converter model (line 195) and how its parameters are determined.
I’ve been stuck on this for some time, so any guidance would be greatly appreciated. I am not sharing the code (lines 191-214) directly, as I believe it would violate the MathWorks license agreement. However, the model can be accessed by running the command openExample('simscapeelectrical/SolarPVMPPTBoostExample') in the Matlab command window.
As this is my first time posting on this forum, I welcome any feedback if there's anything in my post that could be improved.
1 Comment
Mohamad
ungefär 18 timmar ago
I’m on MATLAB R2022b Simscape Electrical 7.8 and I need the example
‘Solar PV System with MPPT Using Boost Converter’. The doc page exists but openExample fails — could you please provide the .slx model?
Accepted Answer
Vijay Solaiselvam
on 3 Jul 2025
Edited: Vijay Solaiselvam
on 7 Jul 2025
- Boost converter models have a right-hand-side zero, which makes controlling them with a single PID controller cumbersome across a wide operating region. This typically requires a root-locus based approach. Therefore, a double-loop controller, with an inner current loop that controls the inductor current and an outer loop that controls the capacitor voltage, is an alternative approach that can help to relatively overcome the right-hand-side zero
- In the example, we used a traditional PID controller tuning algorithm. A PI controller offers one zero at s=−Ki/Kp and one pole at s=0. With a gain of G=Kp, the PI transfer function is given by Kp(s+Ki/Kp)/s
- Tuning the inner current loop PI parameters is much easier than tuning the outer (voltage) loop PI parameters. Inner-loop PI parameters are chosen such that the zero of the PI controller (Ki/Kp) is kept close to (or cancels) the dominant pole of the plant. In this converter, this dominant pole is associated with the inductor time constant. The gain Kp is calculated by deriving the inner 'closed-loop' second-order transfer function (by ignoring higher-order terms) and assuming a damping ratio of 0.707.
- The outer-loop is difficult to tune. We are using the symmetric optimum technique to place the zero of the outer-loop PI, and the gain is calculated by assuming a damping ratio of 0.707. This will provide an initial guess, but you will need to fine-tune the controller
- This technique gives approximate values for the controller parameters.
- The switch part of the converter can be assumed to be a first-order transfer function. For triangular PWM, its time constant is Tc=tsw/2, and for sawtooth PWM, it's Tc=tsw (where tsw is the PWM switching period). A lot of assumptions go into this to find a better starting point. Ensure the MPPT step time is higher than the outer-loop response time.
- For an academic input, you can refer the paper (page number 9 to 12) J. S. Siva Prasad, Tushar Bhavsar, Rajesh Ghosh, and G. Narayanan", "Vector control of three-phase AC/DC front-end converter, Sadhana, Vol. 33, Part 5, October 2008, pp. 591–613. It gives top-level over-view (though not directly linked to Boost converter)
0 Comments
More Answers (0)
See Also
Categories
Find more on Switches and Breakers in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!