# Designing a PI controller for a first order system

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.

• 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. Sep 5, 2020 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.

There is an easy solution that I have found very practical for a sampled controller ( Use Z transforms below and find the minimum settling time controller). The pole zero cancellation is applied and the root locus is very simple to set your closed loop pole anywhere you like.

The controller zero is put on to the process pole.

The resulting system is integrator with a Proportional gain that can set the closed loop pole anywhere on the real axis left of +1.

One solution could be a gain that puts the closed loop pole at the origin, which is a very fast system ( minimum settling time ). The closed loop transfer function is a unit delay. If your sampling time is very short this may give a wild control action that is too much.

In most cases a lower gain would be better and place your C.L. pole between Z = +0.5 to Z = +0.99