0
\$\begingroup\$

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

\$\endgroup\$
4
  • \$\begingroup\$ Actually it is used just a PI controller to calculate the motor speed. A self tuning is required because the machine has a different behavior depending also in the material used (strength) and speed of the looom. \$\endgroup\$ Sep 16 '15 at 10:04
  • \$\begingroup\$ Honestly, controlling tension on a yarn by regulating motor speed is extremely difficult to do. You would be much better if you were to control the torque, as that is directly related to tension; speed isn't. \$\endgroup\$
    – R Drast
    Sep 16 '15 at 10:14
  • \$\begingroup\$ @RDrast: Thanks for your comment. Actually I think it could be a better option, as you pointed out, but one general/basic questions: if I go to control the torque, will I need some sort of torque sensor, or is it possible to do it without torque sensor? it is because I have already the hardware, and I am constrained to work with what I have (encoders, tension sensor) \$\endgroup\$ Sep 21 '15 at 18:05
  • \$\begingroup\$ Any modern Vector drive has the ability to send a torque reference to the drive and run it in torque mode. For modern AC (and just about all DC) drives, the velocity (speed) loop is the outer loop, and its output feeds to the inner torque/current loop. That is one reason the torque/current loop control is much faster and more precise when controlling tension, which is actually torque. \$\endgroup\$
    – R Drast
    Sep 22 '15 at 10:39
1
\$\begingroup\$

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

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

First: The identification algorithm is very complex and time demanding, therefore you wont find low end PLCs to have this possibility, and if thay have it is already preloaded function for specific system (heating).

Second: Controllers that do this kind of regulation already exist, usually you will find AC servo system if you need realy high speed. Your part describing mechanics isn't totally clear, therfore it isn't clear in which category of winder your app fits in. Like how the tension is made, does the material collect on roller making it larger diameter and heavier?

Third: This sytem is completely known system, there are equations describing it. Ideal parameters can be calculated from the system's state.

There are some ready made libraries for use with Siemens Simotion controller, my suggestion is to look for yet tested application, because this app isn't the easy one.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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