Timing 2 Hydraulic Cylinders (PID)

devo.xx

Member
Join Date
Jan 2013
Location
Edmonton
Posts
69
Hey guys,

I've got a system that has 2 identical hydraulic cylinders, 8ft stroke, that operate using individual Proportional Control Valves.
It's been bouncing around in my head for a couple weeks, and I'm not sure the best way to approach this. Right now, I have a couple of things programmed, and will be testing it this week, but I'd like some feedback to see if one of these is really "the best route" to accomplish this.

The positioning is only required for complete End-to-End stroke of the cylinders; so they will always resynchronize at the end of a cycle.
Each Cylinder has an independent encoder (Baluff BTL5, Micropulse Transducers) that will measure Distance on a 4-20mA signal.
Each Control Valves receives a 4-20mA, through a Lynch converter for Pulse Width modulation. The CV/MV for the loops will always be to control this value.
  1. Write a Ramp function for the SP as Distance, that will continually grow the "desired position of the cylinder". PV will be just distance. Each cylinder will have it's own independent PID loop.
  2. Treat one cylinder as the Master, and give it 95% open no matter what. Write a single PID loop for the Slave, that will monitor speed of the Master as the SP. PV will be the speed of the Slave.
  3. Do #2, but add a Cascade loop for distance that will compensate in case one cylinder sticks or runs away from the other. Then it will ramp up/down the output of the Slave to catch up/slow down a possible runaway cylinder.
This is being programmed on a ControlLogix 1756-L71, firmware 21.11, on Studio 21.03.

I like #1, because then both cylinders are trying to reach the same point. But at some point, the SP will always be greater than the PV, so the CV will just scale to 100% and there could be a difference in their distances...

#2 seems good because then both cylinders must actually match with speed. But I'm really not sure how to incorporate #3 because as the Distance PID compensates, the Velocity PID will slow down. So once the Distance disappears, the error will just return while the Velocity needs to ramp up again...

Any insight would be great.
Thanks guys!
 
Function:
Lift and lower a bar. The bar has a counterweight attached to it, and the Valves are open centered to Tank (in case of Power failure, the bar returns to the UP position). Bar is free to move in plane with the Cylinders, but captive by a guide fin to prevent lateral movement.

Separation:
They are 18' 6" apart.

Line sizes:
3/4" to each Rod and Cap end. Probably 30ft
1" Pressure up to the Manifold. Estimate 100ft
1-1/4" Tank from Manifold. Estimate 100ft
The installers used fittings for their elbows, not formed bends. Not ideal, but it's what we've got.
**EDIT** Also, there are no hoses in the system. Hard piped directly to the cylinders.
 
Last edited:
How closely do you need the two cylinders to track as they move? You mention that they will re-synchronize at the end of stroke so I'm assuming they will be going to a hard stop at either end?

There is a whole lot of difference in equipment required if you need to keep the two cylinders within .005" of each other vs. a couple inches...

At the tight end of coordination, you will almost certainly need a dedicated hydraulic motion controller. On the loose end you might be able to go open loop with monitoring for variations. And, of course there is a gray area in the middle.

If the value of your time is considered, then using a dedicated hydraulic motion controller is almost always the best choice (especially since you already have position feedback) as it will have many features required for hydraulic systems that a generic PID from a PLC will not.
 
How closely do you need the two cylinders to track as they move? You mention that they will re-synchronize at the end of stroke so I'm assuming they will be going to a hard stop at either end?

There is a whole lot of difference in equipment required if you need to keep the two cylinders within .005" of each other vs. a couple inches...

The bar still moves freely when the Cylinders are 8-12inches different.
We started with a simple Spool type Flow divider. But one cylinder would hang up on the fin and cause a huge gap to arise.
It is unnoticeable when they are only 1inch different. This control is really just for cosmetics, and to prevent MAJOR error that could cause the bar to physically lock up (maybe if we got to 14inches of error).

At the tight end of coordination, you will almost certainly need a dedicated hydraulic motion controller. On the loose end you might be able to go open loop with monitoring for variations. And, of course there is a gray area in the middle.

If the value of your time is considered, then using a dedicated hydraulic motion controller is almost always the best choice (especially since you already have position feedback) as it will have many features required for hydraulic systems that a generic PID from a PLC will not.

I don't think my Encoders will report on an "interrogation signal" from the module. I believe they are just typical 4-20mA, always reporting.
 
We started with a simple Spool type Flow divider.

The real key with flow dividers is to make full stroke motions and go to a hard stop at both ends. This is what allows re-synchronization to occur. Without this, they do tend to get out of synch quite easily.

I don't think my Encoders will report on an "interrogation signal" from the module. I believe they are just typical 4-20mA, always reporting.

While we normally talk about SSI or other digital feedback types for hydraulics, your 4-20mA feedback is not problem for most hydraulic motion motion controls.
 
The real key with flow dividers is to make full stroke motions and go to a hard stop at both ends. This is what allows re-synchronization to occur. Without this, they do tend to get out of synch quite easily.
Yeah, what we saw was that the lengths of each run were not identical. And the physical geometry had some hangups. So even starting from synch, one side dragged and required more pressure to overcome.


While we normally talk about SSI or other digital feedback types for hydraulics, your 4-20mA feedback is not problem for most hydraulic motion motion controls.
I'll take a look in to this. Because if simple PID loops don't respond desirably, I might have to do this.
 

Similar Topics

Hello, I am struggling to figure out some logic. I have an analog pressure sensor coming into the PLC and would like to have multiple timing...
Replies
4
Views
151
the plant I am supporting uses a siemens graph function to do some of the step procedures. in several steps it waits for the step to execute for...
Replies
1
Views
767
All Using a MicroLogix 1400. Not a huge program doing an auto stop function based on a calculated roll diameter Using encoder feedback for...
Replies
12
Views
3,242
Hi all, I'm trying to fully understand the different effects of the Loop Update Time parameter within the Logix PID instruction. I was always...
Replies
18
Views
4,604
Logix 1756-L82E processor. I am using the .ST bit to time how long a MSG takes to complete. This works fine except for every 10th MSG cycle takes...
Replies
5
Views
1,625
Back
Top Bottom