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.
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!
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.
- 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.
- 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.
- 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.
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!