I have a first order plant:

$$ b/(s + a) $$

That I'm trying to control using a PI controller:

$$ \frac{(K_ps + K_I)}{s} $$

I closed the loop with unity feedback to get this transfer function:

$$\frac{b(K_ps + K_I)}{s^2 + (a + bK_p)s + bK_I}$$

With this, I can place the poles and zeros where I want.

I have \$a\$ and \$b\$.

I'm stuck now with how to choose \$K_p\$ and \$K_i\$ such that I have no overshoot and zero steady state error.

I want to minimize rise time.


The integrator in the PI controller guarantees zero steady state error - you can check this by letting s=0 in the closed loop transfer function, G(s), which gives G(0)=1. If you haven't been given any constraint on the response speed then the simplistic solution is to let Kp=0 and the transfer function reduces to the standard 2nd order form and then you can design Ki to give a damping coefficient, zeta=1

With your added constraint of minimising rise time, it's perhaps instructive to look at the root locus (I assume you've covered this in your course). The open loop TF can be reduced to

$$G_o(s) = \frac{K(s+z)}{s(s+a)}$$

where K=bKp. and z=Ki/Kp. We can now design for zero overshoot and examine the speed of response.

The open loop poles are at s=0 and s=-a, and the open loop zero is at s=-z. So let's place the zero between the two OL poles, this will guarantee that the root locus lies entirely on the negative real axis and therefore there will be no oscillatory closed loop poles. The dominant CL pole (ie the one that determines overall speed of response) is the one whose locus tracks from the pole at s=0 to the zero at s=-z. As this CL pole moves to the left, the overall response gets faster. The other pole is more distant, moving further to the left as K increases, hence it's a lot faster but its impact on the overall response reduces as it moves further away.

So as K increases, the response speed increases; but remember that for a physically realisable system, K is limited by practical considerations, e.g. current limit for motors, which serves to constrain acceleration. That is, the price you pay for improved performance is increased control effort, and that equates to more bucks!

Try doing the analysis with z=1 and a=2. Matlab might be useful.

  • \$\begingroup\$ I tried it on simulink and there are no over shoot as you said. I doubt how integral part don't overshoot? because integral of error need to be zero and it start at one side. \$\endgroup\$ – M lab Sep 5 '20 at 21:05

Although a proper choice of Ki and Kp can place the closed loop poles to provide the damping and bandwidth you desire, it also leaves you with a zero in the closed loop system at Ki/Kp. Keep in mind that open loop poles become closed loop poles. A zero in the closed loop system will always give you overshoot. So there are two ways to deal with it:

  1. Use a prefilter (low pass filter) with pole at Ki/Kp to shape your input to the control system

  2. Restructure the controller as a Psedoderivative Feedback controller. This provides you with the same characteristic equation you get with PI, however eliminates the zero that occurs.


Your Answer

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