How to approach a problem regarding position alignment

Join Date
Jul 2007
Location
Kiruna
Posts
600
Hi,

I'm not looking for code but rather some suggestions on how to approach this problem. I can see myself writing messy code when surely there is a clean way to approach it.

I have 4 cylinders I need to make sure are aligned. We can allow some deviation 20-30mm before taking action.

We cannot speed up a cylinder but we can slow down each cylinder to allow the others to catch up.

We have position sensors on each cylinder.

Must I compare C1 to C2,C3, C4 and C2 to C1, C3,C4 and so on or is there a cleaner way of doing this? I was thinking of using one as the reference for example take C1. Then C2, C3 and C4 could all be aligned with respect to C1 but C2 might be out with C4.

Or am I overthinking this?
 
I think more information is needed, for example if you can slow them down why can you not speed them up, is the speed of the cylinders controlled by some automatic control like a variable valve, what is the position sensing i.e. is it a linear value etc. what is the speed of the cylinders is it seconds tens of seconds the more information you can give the better. personally, based on what you hove posted & some assumptions I would indirectly loop through the position variables to find the one that is ahead and subtract a value from the variable that controls it, however, what if it then slows too much would you slow the others to compensate ? a scenario is that eventually they will sow down too much.
 
You may be able to do an average of the 4 readings, then compare each to the average.

Check each one, if it is larger than the average by half your tolerance and slow that one down.
 
If you can only slow down, but not speed up, you could find which cylinder has the minimum position, and then try to dial back the others depending on where they are in the tolerance band.


Depending on your platform, that could be as easy as putting the positions in an array and then using a Minimum instruction.



You also might want to use relative position (how far into the move are they) instead of absolute position, because the "minimum position" means something different moving in each direction on an absolute basis.
 
Hi,



Must I compare C1 to C2,C3, C4 and C2 to C1, C3,C4 and so on or is there a cleaner way of doing this? I was thinking of using one as the reference for example take C1. Then C2, C3 and C4 could all be aligned with respect to C1 but C2 might be out with C4.

Or am I overthinking this?

You only need to compare the rest to the slowest cylinder. Identify the cylinder with the least distance traveled then compare all the remaining cylinders to that value. If any are beyond the 20mm threshold slow them down. Once the slowed cylinders are within the acceptable deadband or becomes the cylinder with the least travel, release the choke on that cylinder so you don't keep slowing the system.
 
Our customers do applications like this from time to time.
We have a thread on this topic.
https://forum.deltamotion.com/t/synchronized-open-loop/96
This application was a hay baler. It didn't need to be precise but all the axes were within a few thousands of an inch.
It is nice to have a min() and max() function to make it easy to calculate the maximum skew between cylinders.


skew = max(c1,c2,c3,c4)-min(c1,c2,c3,c4)



Parky is right. If you keep slowing down cylinders they will all slow down too much.


For presses we have more advanced algorithm with an outer force loop and inner position loops.
 
Is this a hydraulic or pneumatic system?

What type of valves do you have? On/Off or Proportional?

Can you go to the end of the stroke of the cylinders or to a hard stop on each cycle?

Is the load evenly distributed to each cylinder or does it vary?

There will be different answers depending on the answers to these questions.
 

Similar Topics

Hi there, I am using an S7-1516 cpu and need to create multiple instances of mb_client to read data from three modbus servers. I am running TIA...
Replies
4
Views
2,259
Hi, Currently I am building a series of InTouch windows that will use a common information bar at the bottom of each screen. I was just curious...
Replies
0
Views
996
Hello! This is my first post on this forum. So I'm working on a Ladder Diagram on LogixPro for the Traffic Light simulator. I am supposed to use...
Replies
7
Views
3,053
I currently have a Point Of View system talking to Click's over hardwired Ethernet. We are moving into a new building and they asked me to go to...
Replies
6
Views
2,078
Hi guys, I have a number of identical machines who share resources such as water, feed material, air, conveying. All are AB CompactLogix...
Replies
9
Views
3,703
Back
Top Bottom