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:

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:

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.