Unable to tune buck multiloop controller by using Closed-Loop PID Autotuner

Dear power-electronics community,
I've tried to use Closed-Loop PID Autotuner component for the multiloop control system, based on the following examples:
Controller is about to control buck converter modeled in simscape.
I've tried to run the autotuning for the inner (current) loop first, and afterwards, for the outer (voltage) loop, with taking estimated gains in the current loop controller.
After trying with different combinations of start/stop periods, 'Target bandwidth', 'Target phase margin', I still have very bad response.
Seems that I am really missing something.
Could you please support?
The whole environment can be found in the attachments (ticket_autotuning.zip), and it is being started by running "init_and_start.m" script.
BR,
Djordje

Answers (1)

Dear Djordje,
Please, have a look at the systematic workflow explained in the following technical article I coauthored: https://www.mathworks.com/company/technical-articles/cascade-digital-pid-control-design-for-power-electronic-converters.html
Notice that I did not use the Closed-Loop PID Autotuner, but other tools that provide equivalent functionalities.
Good luck,
Antonino

5 Comments

Hello Antonino,
Thanks for reaching me out! Yesterday I started from Estimating the Frequency Response of a Power Electronics Model - MATLAB & Simulink, which is mentioned as a predecessor of your article.
I will continue on this path, review all three articles, and get back to you with any questions in parallel.
Thanks for your support,
BR,
Djordje
Hi Antonino,
I have a question regarding an article you proposed:
5. Compute the nonparametric plant model
Before starting the FRE, find the time-varying sources. These must be held constant during the experiment
--
Q: What is meant by "These must be held constant"? We shall keep always initial, or always final value - disable stepping? Or keeping as it is?
Hi Djordje,
I was specifically refering to the need to deactivate any step block you have in the model only during the FRE expirement.
If your model has time-varying line and load disturbances modeled as step functions (with the Step block) that will interfere with the frequency response estimation. To hold these disturbances constant during the estimation, in the Model Linearizer app on the Estimation tab click More Options. Then, in the Options for frequency response estimation dialog box, on the Time Varying Sources tab, click Find and add time varying source blocks automatically.
Hi Antonio,
Thanks for the clarification.
I've finished current loop tuning (step 6), but seems that it always generates very agressive parameters, espetially "I" part, and duty behaves in the way that it takes MIN or MAX value of the saturation. I've tried to play around a little bit with bandwidth and phase margin, but didn't manage it to have less agressive control.
What is your opinion about it? Could it be that I wrongly executed a step in the guideline?
I am attaching some pictures and .zip file of the current progress in the project. System gets prepared when executing freq_resp_est_init.m.
Hi Djordje,
The fact that you are not getting your desired closed-loop performance may come from multiple sources that are hard to identify. At this stage of the design, I would give a try reducing the bandwidth. Try with 10e4 rad/s first. If you get the same oscillatory behaviour, you may want to try a sluggisher bandwidth, for example equal to 10e3 rad/s - be careful with this choice as you may need to increase the phase margin to something like 70 or 80 deg. If even this tuning results in oscillatory response, it may be either something incorrect in the model (sample times) or you missed out something in previous steps.
I do not know if you are aware that MathWorks Training Services offers the Power Electronics Control Design training course I authored where you can hands-on learn and master the systematic control design workflow it is described in the technical article. In the appendix of the course you can also find the text and solution of the exercise of the cascade control for the buck converter of the technical article.
Hope this helps,
Antonino

Sign in to comment.

Communities

More Answers in the  Power Electronics Control

Categories

Products

Release

R2024a

Asked:

on 26 Nov 2024

Edited:

on 27 Nov 2024

Community Treasure Hunt

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

Start Hunting!