# PI controller for second order system

I have a second order system and I need to control it using a PI controller. I need to tune the gains of the controller in order for the system to satisfy the below specifications:

$$OS\% < 10\% \rightarrow Overshoot$$ $$t_r < 1.2 \ seconds \rightarrow Rise \ Time$$

I have derived the third order transfer function of the closed loop system with the controller and I am not able to understand which characteristic polynomial I have to use in order to achieve the specified requirements.

EDIT:

Transfer function of the plant is:

$$G(s) = \frac{10}{(s+1)(s+9)}$$

Transfer function of PI controller is:

$$C(s)=\frac{K_p(s+c)}{s}$$ where $$\ c = \frac{K_i}{K_p}$$

The closed loop transfer function (linear unity feedback) is:

$$T(s) = \frac{10K_p(s+c)}{s(s+1)(s+9) + 10K_p(s+c)}$$

So now how should I proceed in order to compute the gains $$\ K_p$$ and $$\ K_i$$ of the controller in order to satisfy the given specifications ?

• Edit your question to show us your work, please. – TimWescott May 17 '19 at 23:32
• @TimWescott could you maybe now give me an advice ? – Teo Protoulis May 18 '19 at 12:52
• You're going to need to make an initial guess, followed by some cut and try, then refinement. I would start with the rise time -- what sort of pole position is suggested to you by a settling time of 1.2s, and why? – TimWescott May 18 '19 at 16:30
• With a system this fast, guess and check tuning should be easy. – Drew May 19 '19 at 18:00
• @Drew I have to guess and tune the zero which appears at the open loop transfer and the gain Kp simultaneously? Then check the closed loop response to check requirements ? – Teo Protoulis May 19 '19 at 18:10

## 1 Answer

Step 1: Draw the root locus of the system.

Here you can see the two poles of your plant $$G(s)$$ (marked with an x), at $$p_1=-9$$ and $$p_2=-1$$, the pole of your controller $$C(s)$$ at $$p_c = 0$$ and the zero (marked with an o) at $$z_c = -c$$ (for now just at a random location). The purple squares indicate the poles of the closed loop system for a certain gain $$K_p$$ and can only move over the blue lines (the root locus).

Step 2: Add the design requirements to your root locus.

• Less than 10% overshoot can be indicated by adding diagonal lines through the origin with a slope of $$\frac{\Re}{\Im} = \pm\left|\frac{\ln(10\%)}{\pi}\right|\approx \pm 0.73$$, where $$\Re$$ and $$\Im$$ represents the real and imaginary axis respectively. All the closed loop poles of your system have to be between these two lines in the left open half plane.

• Rise time less than 1.2 seconds does not have an analytic expression so cannot be translated directly to the root locus. My suggestion is to rewrite this requirement as a more conservative requirement on the settling time, such that the system is at least at 10% of it's final value within 1.2 seconds. The settling time requirement can be represented as a vertical line at $$\Re = \frac{-\ln(0,1)}{t_s(10\%)} \approx -1.9$$.

Here you can see the design requirements, the diagonal lines indicate the overshoot at 10% and the vertical line indicates the settling time of 1.2 seconds. To fulfill all the design requirements, all the poles of the closed loop system (purple squares) have to be in the white area. Hence for the current configuration were do not satisfy the design requirements.

Step 3: is to tune the system. Since the purple block (pole) at the right cannot pass the zero and thus not fulfill the design requirements, we start with replacing the zero (e.g. at -1.5, thus $$c = 1.5$$). This will change the root locus significantly.

Now we can start changing the gain $$K_p$$ until all blocks are in the white area (e.g. $$K_p = 2.4$$)

Hence, the controller $$C(s) = \frac{2.4(s+1.5)}{s}$$.

Step 4: Check if the designed controller fulfills the design requirements by taking the step response.

It can be seen that the overshoot $$D = 8\%$$ and the rise time $$T_r = 0.593 -0.106 = 0.487$$ seconds thus all requirements are fulfilled with the current controller.