6
\$\begingroup\$

Transfer function of a PID controller is: \$I\cdot s + P+\dfrac{D}{s}\$

Are there controllers like: \$A\cdot s^2 + B\cdot s + C+\dfrac{D}{s} + \dfrac{E}{s^2}\$ ?

If so, are they common? Why do people usually just use a PID controller?


Someone asked me why I asked this question. It is because of this post actually: https://robotics.stackexchange.com/questions/7853/how-to-tune-pid-for-a-yt-kxt-system

I asked a question on PID controller and there are arguments that the PID controller shall not be followed by an integrator. However, in both real tests and simulation, PID-integrator controller(I only used PI-Integrator) beats pure PID controller. A PI-Integrator Controller is actually an I-II controller with transfer function of \$\dfrac{D}{s} + \dfrac{E}{s^2}\$.

Please correct me if I made any mistake.

\$\endgroup\$
8
  • \$\begingroup\$ Who would want to use such a thing, what would it be good for? \$\endgroup\$
    – PlasmaHH
    Commented Aug 14, 2015 at 11:07
  • 1
    \$\begingroup\$ It has higher orders, perhaps more suitable for special systems? \$\endgroup\$ Commented Aug 14, 2015 at 11:08
  • \$\begingroup\$ like what? if you can't come up with a specific use case then you likely have your answer... \$\endgroup\$
    – PlasmaHH
    Commented Aug 14, 2015 at 11:13
  • \$\begingroup\$ Have a look at the wikipedia article on the history of PID. Ultimately the goal of PID is for stability and not control. If you read the article with this in mind, the math derivation will make sense as the only way to have a PID system. \$\endgroup\$
    – cowboydan
    Commented Aug 14, 2015 at 11:36
  • \$\begingroup\$ Sometimes different manipulations are done with the controlled plant, to linearize it, for instance. One example would be a gravity compensation. So overall TF of the control system won't be strictly PID but something non-linear composed of PID around this gravity compensator. \$\endgroup\$
    – Eugene Sh.
    Commented Aug 14, 2015 at 11:46

8 Answers 8

5
\$\begingroup\$

PID is widely used because it's simple and easily tuned. Explanation for each parameter and their influence are somewhat intuitive. They are ubiquitous in industry making it a preferable solution - any designer¹ will preferably chose a solution that factory floor (on field) technicians can tune.

Is it all you can do with classical control? Of course not. For example, if you expect a ramp perturbation in your system, the only way for your control reject it with 0 error on steady state is to have a double integrator on your controller.

This is part of a more general rule/principle on classical control - for any signal you want to reject, it has to be part of the controller ( 1/s^2 is a ramp signal, which is also a double integrator transfer function)

And with that we are presented with a design choice, the engineering perspective: Can you accept the errors of a simpler controller², or do you cope with that difficulty² of forging a working and stable controller that is not easily tuned?

¹ if possible of course ² which may not exist

\$\endgroup\$
8
  • \$\begingroup\$ Very nice explanation! Actually ramp is the reason why I asked this question. I just found that PID controller followed by an integrator has a better performance comparing with pure PID controller when disturbance of the system is a ramp. You can find the post here: robotics.stackexchange.com/questions/7853/… Could you have a look at it as well? Thanks! \$\endgroup\$ Commented Aug 15, 2015 at 10:09
  • \$\begingroup\$ Thanks for the appreciation! I'll have a more detailed look this night, but a double integrator with a pole IIRC should work. It needs enough gain to be stable. It will reject the ramp and be easier to tune (Only has 2 parameters, zero and gain). The dominant pole will be attracted to the zero and the other one should go to -infinity. Read about pole-placement/root locus. \$\endgroup\$
    – MdxBhmt
    Commented Aug 15, 2015 at 15:48
  • \$\begingroup\$ Ha just saw your edit, you are doing exactly what I've said. It is because of the principle I've said - if you want to reject a ramp you need a double integrator in the controller. If you want to understand, derive the transfer function Output/Perturbation, multiply that by the input (a ramp - 1/s^2), use the steady state theorem (that it, multiply TF*Input by s and make s = 0) and you'll see that the answer is 0 - your steady state error. \$\endgroup\$
    – MdxBhmt
    Commented Aug 15, 2015 at 16:21
  • \$\begingroup\$ en.wikipedia.org/wiki/Closed-loop_transfer_function fourier.eng.hmc.edu/e102/lectures/Laplace_Transform/node17.html For references \$\endgroup\$
    – MdxBhmt
    Commented Aug 15, 2015 at 16:43
  • \$\begingroup\$ May I know which school are you in? I feel that you have quite good understanding of theories, which is not common. \$\endgroup\$ Commented Aug 18, 2015 at 4:22
1
\$\begingroup\$

I'm aware that the question implied triple integration BTW.

I'm going to take a partial stab at this. Say you integrated the integral of the error signal, what would you get? One integration will shift a low frequency sine wave by 90 degrees and another integration will shift it by another 90 degrees (to 180 degrees) and make it partially cancel the effects of the proportional part of the PID. This doesn't sound like a useful idea.

At higher frequencies, a single integrator might still produce a "useful" balancing signal but a doubly integrated high frequency will be much lower in amplitude and render it less useful.

Someone setting up a PID controller can "have their hands full" adjusting only three variables; having another adjustment (or two) to cope with might just be impractical.

\$\endgroup\$
1
\$\begingroup\$

I believe it has more to do with the ability to tune higher order controllers. The second order system (SOS) is the go to for control theory, examples, and models for good reason. It is sufficiently complicated to show the issues at work, and sufficiently simple to get your mind around. There are 3 parameters to tune, and they become somewhat intuitive after you have done it for a while. I have seen technicians with no understanding of phase margin or bode plots expertly tune PID controllers.

When you get to higher order plants, it is beyond (at least my) capacity to determine how changing one coefficient will change the closed loop response. In this case, I always do some form of state feedback and pick my poles wherever I want them.

In short, the number of coefficients goes up quickly and becomes very complicated for model orders higher than 2. Most people either do a Model Order Reduction, or choose some other form of feedback control.

\$\endgroup\$
1
\$\begingroup\$

You certainly can make such a controller, or any other kind of controller. As a matter of fact, there are many other kinds of controllers out there (adaptive controllers, non-linear controllers, etc.). However, PIDs are by far the easiest and more manageable ones out there.

In a PID, the proportional constant deals with \$y_r-y\$ (position errors), where \$y\$ is the measured state and \$y_r\$ is the wanted state, the D-constant applies to \$\dot{y}_r-\dot{y}\$ (velocity errors) and the I-constant with \$\int_{t_0}^{t} (y_r - y) dt\$ (cumulative position errors). Now, adding the D-term can make the overall system unstable, so one have to be careful. You could easily add an acceleration error term [\$A\times(\ddot{y}_r - \ddot{y})\$], but again, you would have to be careful. Notice, that this corresponds to saying that the acceleration of the error signal should have a say in the control of the system.

The usefulness of using the cumulative error of the cumulative position error is rather questionable, but I suppose it could also be of use in some rare cases.

From a pure mathematical view-point, if you deal with a first-order linear system, in Laplace form the equation for the system is \$y(s) = M(s) u(s)\$, where \$u\$ is the "input" to the system. A PID implements \$u(s) = C(s)e(s) = (P + Is^{-1} + sD)e(s)\$, where \$e(s) = y_r(s)-y(s)\$ is the error signal. So, $$y(s) = M(s)C(s)[y_r(s)-y(s)],$$hence$$y(s) = \frac{M(s)C(s)}{1+M(s)C(s)}y_r(s).$$

Now we can't change the model (M) of the "system", but we can change the controller (C). The "trick" is to find a polynomial \$C(s)\$ such that the above fraction behaves in a nice stable manner while still responding quick enough to changes in the reference signal.

\$\endgroup\$
0
\$\begingroup\$

How you would realistically implement a higher order than a PID? A PID is already an improper transfert function, it is possible to implement it if you filter your command, but with a higher order you will need to filter twice your command? Resulting in a slower dynamic and a worst loop than an actual PID

\$\endgroup\$
6
  • \$\begingroup\$ What do you mean by improper transfer function? The derivative term? The filter you have to correct the D can be set to infinite (relative to your system) and be non issue, and even if it's not infinite that doesn't mean slower. \$\endgroup\$
    – MdxBhmt
    Commented Aug 14, 2015 at 23:12
  • \$\begingroup\$ We are talking pid ? Not discrete pid right? I dont get how you set A infinite physical value \$\endgroup\$
    – MathieuL
    Commented Aug 15, 2015 at 3:29
  • \$\begingroup\$ It's relative to your system: A filter that is way faster than the dynamic it is filtering, for all practical matters it is infinite. For example, the D term is improper, so you need an extra pole. If it's time constant is 100* faster than the dynamic involved, the D term is unaffected by this filter. Having two of those filter still isn't enough to affect it. \$\endgroup\$
    – MdxBhmt
    Commented Aug 15, 2015 at 5:00
  • \$\begingroup\$ On discrete you can think of 0.9999x[n] +0.0001x[n-1] - the second term may be risible for your application. \$\endgroup\$
    – MdxBhmt
    Commented Aug 15, 2015 at 5:15
  • \$\begingroup\$ The fastest ypur filter is the closer you get to the improper function.. getting too fast and you will loose stabilloty \$\endgroup\$
    – MathieuL
    Commented Aug 15, 2015 at 10:17
0
\$\begingroup\$

The immediate problem is that there are no guidelines for tuning the additional parameters.

However PID is the basic structure. What you have are 5 PID blocks - one full PID, two pure integrators, and two pure differentiators.

enter image description here

\$\endgroup\$
0
\$\begingroup\$

It is the purpose of a controller to IMPROVE the behaviour of a system with feedback in the time domain. I am afraid, a controller as proposed with the question will do the opposite: It will drastically reduce the stability properties of the system (increased phase shift of the loop gain function).

\$\endgroup\$
0
\$\begingroup\$

Although a method of direct synthesis may lead to PID as the solution for a feedback controller, in general it does not. PID as mentioned by others is a simple cookbook approach that may or may not provide the control performance you require regardless of how much time and effort you spend 'tuning' the P, I and D parameters.

For control problems that cannot provide the required performance using a PID controller there is a vast choice of control methods that can be used to synthesize a control law, and considering only controllers represented in the form of rational polynomial transfer functions you may indeed effectively have the PPPIIIDD control law you say is never considered if such a controller meets your requirements and factors into such a form.

But from what I've most often observed in industry if PID fails to meet requirements,and where the staff are not formally educated in control systems design, the PID may be used as a core element with additional elements synthesized in an ad-hoc manner and not necessarily with any regards to modeling and analysis of the problem. Sometimes they get lucky and it works. But most the time not.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.