Self-Tuning PID Controller to implement in a PLC without having the plant model

pid controllerplc

I need to implement a self-tuning PID controller in a PLC. I know the behavior of the plant (I mean, I know that if the speed is reduced the tension gets higher and vice versa), but I do not have a mathematical model of it. Which method would you recommend?

The case is the following:

I have a system which consists of a warp beam in which a thread is wound and an AC motor to rotate the warp beam (“Process” according to the picture below). This thread should be fed at a constant tension to another machine (The whole system is a weaving machine, but I am just controlling the speed of the warp beam using a tension sensor). The motor is connected to a control motion system in which we have just to specify the speed at which the motor should rotate, so we have a PID controller to calculate the speed at which the motor should run. To measure the tension of the thread we have a tension sensor.
enter image description here

By the nature of the process itself, the tension on the thread has oscillations, and depends of the pattern of the woven fabric and speed. It is a “high speed” process. So we specified a target tension, which the “motor” should try to achieve, but we also specified a Max. and Min. if the tension gets out of this range the whole machine will stop.
As an example the behavior of the tension in a loom is depicted below.

enter image description here

Best Answer

You could identify the process transfer function by recursive least squares (or other TF estimator) operating on the real-time process input/output signals. Matlab's System Identification Toolbox has some algorithms. RLS background can be found at:

https://math.stackexchange.com/questions/631498/simple-example-of-recursive-least-squares-rls