I am given this transfer function for a system: $T\left(s\right)=\frac{9.81}{s^4+0.5s^3+11.2815s^2+4.905s}$

Now, I want to design a controller that will make the closed loop system have an overshoot due to a step input equal to $5\%$. A controller with a proportional gain $K_p=1$ gives me this step response of the closed-loop system on MATLAB:


As you can see, the overshoot with this proportional gain is way bigger than $5\%$. As K increases, the response becomes weirder.

Here, I have tried $K_p=6$:


PI, PD or PID controllers give a similar response to the figure above. So, it seems the best I can do is a controller with $K_p=1$, which is not acceptable in my case.

What would be the appropriate type of controller for this system to get a small overshoot?


I used optiPID in Octave where the plant P(s) is controlled by a PID controller with second-order roll-off:

                 1                1
C(s) = Kp (1 + ---- + Td s) -------------
               Ti s         (tau s + 1)^2

in the usual negative feedback structure

         L(s)       P(s) C(s)
T(s) = -------- = -------------
       1 + L(s)   1 + P(s) C(s)

With your transfer function, and by and tweaking the weighing factors to put more weight on minimising overshoot, I got the following values (the ones of interest here are the optimised values):

optiPID: Astrom/Hagglund PID controller parameters:
kp_AH =  0.032753
Ti_AH =  0.63360
Td_AH =  0.16028
warning: optiPID: optimization starts, please be patient ...
warning: called from
    optiPID at line 215 column 1
Max no. of function evaluations exceeded...quitting
optiPID: optimized PID controller parameters:
kp_opt =  0.017183
Ti_opt =  0.14305
Td_opt =  0.50410
optiPID: closed-loop stability check:
st_AH = 1
st_opt = 1
optiPID: gain margin gamma [-] and phase margin phi [deg]:
gamma_AH =  2.2796
phi_AH =  80.408
gamma_opt =  4.3438
phi_opt =  64.139

The step response looks like this:

enter image description here

which gives and overshoot of approx. 5.7%. The amount of overshoot is actually governed by the integral gain, not the proportional one (which only influences the speed of response) so I have played around with it to reduce the overshoot further and using Ti_opt = 0.2, I get the following step response:

enter image description here

Which gives only about 1.6% overshoot.

The roll-off parameter tau is calculated as Td/10, which gives the following transfer function for the PID controller:

>> C_opt

Transfer function 'C_opt' from input 'u1' to output ...

      0.001732 s^2 + 0.003437 s + 0.01718
 y1:  -----------------------------------
      0.0005082 s^3 + 0.02016 s^2 + 0.2 s

Continuous-time model.

If you're not bothered about the response time, the Astroem/Haegglund PID (with kp_AH, Ti_AH and Td_AH) has essentially zero overshoot:

 >> C_AH

Transfer function 'C_AH' from input 'u1' to output ...

        0.003326 s^2 + 0.02075 s + 0.03275
 y1:  --------------------------------------
      0.0001628 s^3 + 0.02031 s^2 + 0.6336 s

Continuous-time model.
  • $\begingroup$ Thank you for your answer @am304. Based on the root locus of my transfer function and the overshoot criteria, first I found the proportional gain to be $K_p=671$. However, when closing the loop, the step response would be not how I expected, similar to the second figure in my question. In the problems I had done previously, the overshoot criteria would be satisfied immediately after finding a desired point on the Root Locus. Thus, I played with the control system toolbox in MATLAB and it seems that for $K_p<1$ I get a very small overshoot. How do you explain that theoretically? $\endgroup$ – snitchben Apr 11 at 14:09
  • $\begingroup$ Using the root locus, I found that Kp = 0.075 (approximately) is the maximum value you can have before poles move into the complex right-hand plane, indicating that the system becomes unstable beyond that. You must have made a mistake. $\endgroup$ – am304 Apr 11 at 15:32
  • $\begingroup$ You are right, I had made a mistake. However, I played a bit with the control system toolbox and I managed to achieve the smallest settling time for a proportional gain $K_p=0.08$. How is this possible? Normally, settling time would decrease the more we go towards the left, but here it is decreasing for a certain area of root locus when moving to the right of it. $\endgroup$ – snitchben Apr 12 at 2:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.