PID controller, simulink help!


Thread Starter


I know this is not a Matlab forum, but I believe people here has better knowledge to help me with this problem.

I am a E.Eng major student and I have been using Matlab for my Control Systems class. But recently I am having a big confusion in Matlab simulink, that I cannot understand at all.

Here is my problem:

I have this open loop transfer function :
= 173/(s^2 +2.57s)
And I am supposed to find PID gain so that the system's settling time is =0.3sec. Now by solving mathematically I came up with the answer of
Kp = 0.198
Kd = 0.077
Ki = 0

Therefore, the PD controller transfer function will be
= 0.077s + 0.198

When I plug that value into the PID controller block, it does not work! But when I combine the open loop transfer function with the PD controller transfer function, i.e.

= 173*(0.077s + 0.198)/(s^2 +2.57s)

it works!

What am I doing wrong? Or is it some kind of glitch in matlab?
Here is the picture that will explain in more detail:

i would really appreciate any help here.

Gerrit M van der Molen

Hello Izzy,

I tried your example, with the PID controller block, in Simulink 7.0
(R2007b), and it works fine. Therefore, I think there is a
problem/glitch with that block in your (older?) version of Matlab.

Hope this helps,