How can I AUTOMATICALLY tune PID controller to get a certain overshoot and settling time?

20 views (last 30 days)
I'm trying to tune the PID to get a certain percentage overshoot and settling time however manual tuning is very tough can I do that automatically by simply specifying the parameters? I am using simulink.
  4 Comments
Sam Chak
Sam Chak on 24 Dec 2022
Edited: Sam Chak on 24 Dec 2022
Can you post a new question with the uncompenstated plant transfer function/state-space model?
It is difficult for some people because the formulas for the desired PID gains , , expressed as functions of percent overshoot and settling time , are not explicitly stated in the textbooks, for some unknown reasons.
If you follow the conventional way of design, then the Root Locus approach is the most convenient way for both experts and non-experts designers. First, you need to view the root locus of the uncompenstated system by entering the command
controlSystemDesigner('rlocus', sys)
In the Control System Designer app, you can specify the design requirement such as the percent overshoot . The requirement will show an exclusion region, which is a yellow shaded area. Do the same for the settling time .
To satisfy the requirements, your design task is to add/place the compensator poles and zeros "somewhere", and then adjust the Loop gain by clicking on one of the "magenta dot markers" and dragging it along the root locus until a response plot stay outside of the associated exclusion regions.

Sign in to comment.

Answers (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 23 Dec 2022
Edited: Sulaymon Eshkabilov on 23 Dec 2022

Community Treasure Hunt

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

Start Hunting!