# Design of a PI controller

If I have a process which is approximated by a first order system

$$H(s)\ = \frac{K}{s+a}e^{-sT}$$

How can I design a PI controller with a rising time < 2 and an overshoot that is less than 10%

I know a typical PI controller is given as

$$G_{c}(s) = K_{p}+ \frac{K_{I}}{s}$$

So how do I find KP and KI given my specifications?

I don't need it solved completely just the steps that are needed.

• @RichardNiconTheThird, can you tell us what you have tried so far. This question is not off topic, I hope you can update it and maybe get a good answer on how to design a PI loop for this. – Kortuk Apr 16 '12 at 22:35
• @richardnixonthethird is this to be done via analog or digital controls. (i.e., can you introduce a digital PI controller) – CyberMen Apr 17 '12 at 13:00
• Ouch, first order system with time delay. That makes this quite a bit harder... I think. – AngryEE Apr 18 '12 at 0:45
• Can you give the parameters in the system equation? Without them the Kp and Kd parameters cannot be solved. – CyberMen Apr 18 '12 at 13:26

Here is an Outline of the steps you should follow for solving, almost, every analog control system.

1) draw your block diagram with the feedback controller in place.

2) draw the closed loop system. (i.e., calculate the closed loop equation keeping Kd and Kp)

Substitute:

$$e^{-st}(s) = \frac{1-sT}{1+sT}$$ Source: http://users.ece.utexas.edu/~buckman/H3.pdf

Essentially a time delay can be modeled as an all pass filter. It has a flat frequency response and only introduces delay.

http://en.wikipedia.org/wiki/All-pass_filter

When all the math is solved out you should have a 3rd order equation in the denominator and a second order in the numerator.

This means that you need to introduce a filter before the summing junction in the system eliminate the pole. (it should be the inverse of the numerator)

3) Calculate the desired equation for your closed loop system

It should be a second order system with your desired characteristics and a a first order system with a non-dominant poll. (i.e., 4 or more times larger than the magnitude of your 2nd order polls)

4) using equation calculated at 2, select Kp and Kd that would make your desired equation match your existing one. (Match them term by term, so look at the S^3 term, S^2 term)

Solving The Priblem

Lets start out by inserting the substitution mentioned above: $$e^{-st}(s) = \frac{1-sT}{1+sT}$$

This means our system

$$H_O(s) = \frac{k}{s+a}\frac{1-sT}{1+st}$$

and (with a little math magic) rewriting our controller

$$G(s) = \frac{K_Ps+K_I} {s}$$

This leads to the closed loop system:

$$H_C(s) =\frac{ \frac{k}{s+a}\frac{1-sT}{1+sT}} {1+\frac{k}{s+a}\frac{1-sT}{1+sT}\frac{K_Ps+K_I} {s}}$$

To simplify the equation (I apologies if there are any math errors its all algebraic) by doing the following steps:

1) multiply the numerator and denominator by $$((s+a)(1+sT)(s))$$

2) Multiply out all the factors together

3) group similar terms together (all the S^3, S^2, S etc...)

4) normalize the largest powered term in the denominator (should divide by T if i did it correctly)

your closed loop should look like this (again, algebra if there are errors please tell me)

$$\frac{\frac{K}{T}(1-sT)(s)} { s^3 + (\frac{1}{T} + a - KK_p)s^2 + (\frac{a}{T} + \frac{KK_P}{T} +K_I)s+\frac{KK_I}{T}}$$

We can clearly see that we have a third order system where each term can be controlled by setting Kp and Kd.

Designing Controller Parameters

While we cannot directly select the Kp and KI parameters because we don't have the numbers for the transfer function of the system, we can still get 99% of the way be knowing what system equation transfer function we want.

Requirements:

1. Overshoot Less than 10%
2. Rise time of 2 seconds or less

Initial Design Considerations:

Now, assume we introduced a filter at the input of the control system to eliminate the numerator (so the numerator is now 1) (there are issues with this since the poll is unstable, will be discussed at end)

We can accurately design this sort of system with a third order transfer function. It consists of a dominant pole second orders system and a non-dominant pole first order system.

It should look like this:

$$\frac{1}{(s^2 + 2 \omega_n \zeta *s + \omega_n ^2)(s+\alpha) }$$

The overshoot is controlled by the damping coefficient which is a number between (0 and 1) (you typically can't calculate this easily off the top of your head...you can however set it high to have low over shoot and over damp the system.

(In most systems, you look at the phase margin and use the damping coefficient that will give you a phase margin of about 65 degrees)

The damping coefficient can be calculated by:

Where PO is the percentage overshoot

for 10% overshoot you end up with a damping coefficient a little less than 0.6

the design specifications said it has to be less than 10% so larger is better, lets choose 0.6 for an easier number to work with:

$$\zeta = 0.6$$

1. now for our second order system we need w_n to finish the equation:
2. We need to look at the second requirement: Rise time of 2 seconds
3. this means that the steady state value should be reached in approximately 2 seconds.

Our pole is located at w_ndampingcoeff/2 (use quadratic equation and you'll see it)

The steady state is reached in 4 times the pole location. $$4\frac{\omega_n\zeta}{2} = 2 seconds$$

$$\omega_n = 1.66666666666$$

smaller value leads to faster rise time (rise time requirement is LESS than 2seconds)

lets choose 1.6 for simplicity

now we need to choose our non dominant poll (that is to select the Alpha term), it must be 4-5 times larger than the smallest dominant poll in the system.

$$\alpha = 6.4$$

Finally, we have our desired transfer function:

$$\frac{1}{(s^2 + 2(1.6)(0.6)s + (1.6)^2)(s+6.4) }$$

How to Use the Controller to Get the Desired Closed Loop Transfer Function

multiply out the terms in our desired control system.

$$\frac{1}{(s^3 + 8.325s^2 + 14.8485s+16.384) }$$

Scrolling all the way back up to the top of the page we have our system transfer function:

$$\frac{1} { s^3 + (\frac{1}{T} + a - KK_p)s^2 + (\frac{a}{T} + \frac{KK_P}{T} +K_I)s+\frac{KK_I}{T}}$$

(Remember You needed to normalize the transfer function)

Now all you need to do is match like terms in both equations with each other and get the system of equations to match:

for example:

the S^2 term:

$$(\frac{1}{T} + a - KK_p) = 8.325$$

the S term:

$$(\frac{KK_P}{T} +K_I) = 14.8485$$

The constant term $$\frac{KK_I}{T} = 16.384$$

using these equations you can solve for the parameters K_I and K_P and you've just designed your control system.

Issues with Unstable Pre-filter

Remember I mentioned a stability issue:

$$\frac{\frac{K}{T}(1-sT)(s)} { s^3 + (\frac{1}{T} + a - KK_p)s^2 + (\frac{a}{T} + \frac{KK_P}{T} +K_I)s+\frac{KK_I}{T}}$$

if we filter out the numerator that means we are using a pre-filter circuit that does:

$$P_f(s) = \frac{1} {\frac{K}{T}(1-sT)(s)}$$

This filter block is placed BEFORE (or after, both would technically work, though traditionally its before)

The problem comes from here:

$$\frac{1}{1-sT} = \frac{-\frac{1}{T}}{s-\frac{1}{T}}$$

This means we have a POSITIVE pole in the system. This means, for a step response input: The system will fly off to infinity. So its a serious design consideration for whats actually happening.

How to deal with it....not sure...will research.

• It's not "obviously" a homework problem. Don't assume such unless the OP specifically says so, or the OP is so lazy that he/she posts a problem verbatim in its imperative form ("Design a controller that has an overshoot of 5%") rather than taking the two minutes to ask an intelligently-phrased question. In this case the OP has asked an intelligently-phrased question. Could it be homework? Maybe; or maybe not -- maybe he's a junior engineer at work or just someone trying to learn on their own. Even if it is homework, what's the point of giving a handwavy answer 90 days later? – Jason S Apr 16 '12 at 21:02
• @JasonS most people implementing real PID loops for actual applications do it without having the equations for the system. Either you've got an academic application or it's homework, at least from what I can see. – akohlsmith Apr 17 '12 at 23:54
• Or it's someone trying to understand a simplified model. If I had a controls problem, I'd try to ask a simplified version of my real situation, and see what enlightenment I could attain. Again: don't assume it's homework. Ask the OP. – Jason S Apr 18 '12 at 1:34
• @Kortuk Solved. (still a bit more about the prefilter instability to solve) – CyberMen Apr 18 '12 at 15:05

Starting from Hc(s)...the numerator is wrong. You forgot to multiply with the controller making the prefilter to be wrong for it is based on the wrong model. Kindly reconsider

$$H_{c}(s)=\frac{-s^{2}kK_{p}+s(\frac{kK_{p}}{T}-kK_{I})+\frac{kK_{I}}{T}}{s^{3}+s^{2}(a+\frac{1}{T}-kK_{p})+s(\frac{a}{T}+\frac{kK_{p}}{T}-kK_{p})+\frac{kK_{p}}{T}}$$

I tried going through the steps, but it doesn't quite fit any of the analysis methods I'm used to. This confuses me - usually PI controllers are tuned manually with methods like Ziegler-Nichols and not mathematically analyzed. If this is homework, shouldn't it be somewhat more straightforward? Is it possible your teacher is being cheeky and he/she actually intends for you to build this up in Matlab and tune it manually with a method like Ziegler Nichols instead of mathematical analysis? The time delay increases the difficulty and the system doesn't come out to a perfect second-order format with damping coefficients and natural frequencies. Normally I would try to reduce it to that format and solve for the damping coefficient, this time with special care to handle the phase introduced by the time delay - but like I said, it wasn't straightforward. In real life I would just tune it manually.

• the problem is that he didn't specify the full system transfer function and hasn't responded to any of the questions on the subject. – CyberMen Apr 18 '12 at 13:25
• @Adam how can you pretend that a user who is inactive since Jan 31 comes here to answer your questions? – clabacchio Apr 18 '12 at 13:55
• @clabacchio did not realize that at all. Almost done solving the problem. :D – CyberMen Apr 18 '12 at 14:16
• Kp and Ki are what he's solving for, so it's not as big of a deal that they're not specified... – AngryEE Apr 18 '12 at 15:22
• @AngryEE actually it does matter. You have an incomplete transfer function, you cannot calculate the exact numbers that you're looking for. you can find an open form solution that I discuss above. As you did mention, you can tune the system manually, but that makes the whole problem moot. – CyberMen Apr 18 '12 at 15:36