Electronic – Does the use of PID controller require knowledge of plant’s Transfer Function

control systempid controllertransfer function

As simple as that. I assume that you use PID when you do not know the Transfer Function of the system, otherwise you use it and plug it directly in the closed-loop control.

Best Answer

No, you do not have to know the whole transfer function. It is quite common practice to manually tune a PID either by hand or with some computer. Sometimes, the transfer function would be way to complex/arbitrary to be computed, so you may approximate it or use a device which generate a step response of your system in order to generate an approximate PID.

The latter method does not give the "perfect/ideal" response for your system, but in practice you will never be able to do that. Even if you have the transfer function of a system, there are factors that will have an impact on it: components tolerance, process tolerance, aging, temperature, etc. So you use a PID which is the closest to the specification that you expect.

In control theory, it would be possible to use a linear function for everything (only P factor), but you would have very bad response on many system and that response is not acceptable in most situations, but even with a PID you cannot always provide good enough feedback. It is up to you to determine whether you need a complex transfer function or not. I already had to design a PID for a complex system with a 8th order transfer function. A simple PID was not sufficient to model the inverse of that tranfer function, but I've been able to remove many components through the study of the pole and zero map of the transfer function. Then, I decided which transfer function would be best PID for my system. I had many candidates and I tested them (manually) to find out.

Update: To answer your comment:

A PID is a tool, but it is not "THE only feedback possible". If you have the transfer function, you can use it directly. What you learn from textbooks is that most of the time a PID is good enough to model most simple systems.

However, I study in robotics and I can tell you that I rarely can use a PID to control to control the robot (call it a plant). We use a PID to drive the joint motors, because the mechanics are simple (You have a torque, friction, etc.). But you cannot use a PID to smooth the movements performed by a complete arm or a leg. Instead, you use more powerful tools: The direct kinematics (a set of matrix) allows to defines the location of the end effector relative to another part on the robot and then we use the inverse kinematics (another set of matrix) in the feedback loop, so that you can adjust the current position of the robot relative to the path that we expect.

Those matrixes are elements of a control loop but they cannot be modeled as a 2nd order equation. This may seeem weird at first, but if you have matlab at hand, you can try to convert any PID transfer function to an SOS matrix. The maths are very similar: you mutiply every matrix together and you implement your feedback loop with it.

The reason why PID are very popular is because they are:

  1. Easy to implement, even in machine code (practical for microcontrollers);
  2. Good enough most of the time;
  3. They require very little calculus.

Since I already discussed points 1 and 2, I discuss third one: If you really have the transfer function of your system, say a huge 23-rd order transfer function that includes a lot of sines, cosines (in your polynomial parameters) and so on, you may end up with a very complex calculus which may require the usage of floating point arithmetic. On a computer, this is not much of a big deal, but on an embedded system, this may be problematic, because it is too slow to keep up with expected update rate. If you study the pole zero plot and identify that you can reduce your gigantic 23-rd order TF to a 4-th order one, then the calculus is much more manageable.