Electronic – PID tuning without plant model

control systempid controllertransfer function

My aim is to keep temperature constant at a certain place. I don't have a mathematical model of the plant.

Currently, PID is used with some fixed Kp, Ki, and Kd, and I want to optimize these parameters for a stable system. PID is giving output to a non-linear control valve which is used to control a temperature by changing the flow of water.

The error input to the PID controller, control valve opening, and actual output temperature are available to me. For example, setpoint of 980 °C, actual output 998 °C, error -18 °C, valve opening 33%. I have many data points like this available to me.

I am confused what is my system here, the control valve which is injecting water for the corresponding PID input or the place where I want to keep the temperature constant?

Is it possible to tune the PID from the following data and get the plant model?

Best Answer

PID implicitly expects to be controlling a linear system. It seems that your system is not linear. If you ignore that, you will end up tuning the system for sluggish operation over one part of the range to ensure some other part of the range remains stable.

The first thing to do then is to linearize your plant. Measure a bunch of valve settings and resulting temperature, with whatever is producing the heat held constant. Then invert that table and put it between the PID controller and the valve setting. Now the PID controller thinks it is driving a linear system.

As for tuning the PID, there are whole books on that. There are equations you can use to get the PID coefficients if you know some things about your system. However, in practice that just gets you a starting point. Real PID tuning always includes some experimentation.

Since your system might be rather slow, it would help to get a lot of the PID tuning done on a simulation. If you can linearize your plant, then you can use the method I describe in How to use measured step response to tune control system.