Is it possible to tune 2 PID controllers ?

91 views (last 30 days)
I am trying to tune 2 PID controllers but I am not able to get a good results.
Firstly I tuned the first PID then second, If I tune the first one again I got completely different results.
Could anyone give me an idea ?

Accepted Answer

Arkadiy Turevskiy
Arkadiy Turevskiy on 8 Apr 2014
Edited: Arkadiy Turevskiy on 8 Apr 2014
The traditional way to handle this problem is tune the inner loop first with the outer loop open, then tune the outer loop.
What that means practically is that you would delete the line from the Saturation 1 to second sum block, and tune Current Controller PID. Then connect the line back and tune Position Control PID.
The alternative method is to tune two controllers simultaneously.
Take a look at this recent blog post which describes how to do it for a very similar setup.

More Answers (3)

Azzi Abdelmalek
Azzi Abdelmalek on 4 Apr 2014
Since your system you want to control is not linear, the behavior of your PID is unpredictable, what you need to do is
Step1: adjust the first controller, then vary the parameters for the second controller,
step2: adjust again the first controller, and do the same for the second controller
And so on until you find acceptable performances

Shery
Shery on 10 May 2014
Edited: Shery on 10 May 2014
Can u guys advise me on the position control of the BLDC motor , i have to tune 3 pid controllers , one for position , one for speed and one for PWM which will vary the duty cycle. I am using the simpower. Can I use PID auto tunning first for inner loop, than for outer and so on.

Raju Rambha
Raju Rambha on 15 Nov 2018
Edited: Raju Rambha on 15 Nov 2018
You can get the position control example from mathworks in R2018b. where there is a compleate simulink structure for BLDC motor. If yours a latest version (R2018b) try it in command window as "pe_bldc_position_control"

Community Treasure Hunt

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

Start Hunting!