PID with 2 cylinders

M

Thread Starter

marwanco

What Setpoint I have to use to control 2 rising cylinders? the load on cylinders may vary. always one cylinder will move faster than other, don't know which one.

First case: Cylinder 1 higher than cylinder 2
I want cylinder 2 to move with max possible speed, cylinder 1 to slow down until both are same height.

Second case: Cylinder 2 higher than cylinder 1
I want cylinder 1 to move with max possible speed, cylinder 2 to slow down until both are same height.

Can I take as Setpoint the slowest cylinder height?

When I tried that when they reached same height, they shook, and didn't move smoothly.

or there is other way?

Regards
 
R

Robert Scott

It sounds like you have two PID loops, one for each cylinder. And you are using the actual position of the higher cylinder as the setpoint for the lower cylinder. But you don't say what the setpoint is for the higher cylinder. You also don't say how to make the lower cylinder go "as fast as possible" to match the upper cylinder. If you are using PID control at all then the speed of either cylinder is determined by the PID settings and by the difference between the setpoint and the actual position.

What would happen if you used the same open loop profile for the setpoints to both cylinders? Suppose one of the cylinders lags behind the other. Well, then the PID loop will see that bigger lag and respond accordingly. You can try to trim the PID parameters for tighter response, but then you risk instability. A better solution might be to dynamically adjust the PID parameters of the cylinder that is ahead to give it more lag. It is easier to make a PID loop more loose than it is to make it more tight.
 
I was able to achieve good results by introducing a virtual cylinder, that moves with fixed speed, in PLC program.

All the other cylinders will follow the virtual cylinder.
The setpoint is difference between Virtual and real cylinder and it is 0.
For each real cylinder i use one PID loop.
With this scenario adding more cylinders is easy, no need to compare each cylinder with the others.
My system can expand to 8 cylinders.
While testing the sunc, I can hardly notice any difference, the move smoothly.
PLC is Siemens s7-200 with analog input/output module., feedback is Linear wire potentiometer or encoders.

By controlling virtual cylinder speed, I can force all cylinders to follow that speed, from super slow to fast.

Regards.
 
Top