Hoist positioning

Jesper

Dr is the Distance Relative is the motion completed in the accel/decel portion of the move. Da is the distance to accel. One divided by the other cancels the measuring untis, and gives you a percentage. This is what is squared or cubed in the function.

Dr under accel = |Cur Pos - Start Pos|
Dr under decel = |Cur Pos - Decel Point|

Decel Point must be calculated before the move, so you know when to start the decel curve. Say you're starting at position 0, your end point is 10 meters, and you want to decel over 1 meter. 10-1=9 meters becomes the decel point.
 
Actually, seppoalanen's equation is correct

The only problem is that seppoalanen's equation is for a linear ramp.

Crocop's ramp would be right if the ramp was based on time instead of a relative distance. To do this right one must calculate the time as a function of the relative distance and then use the time in another equation that gives the velocity as a functon of time. It can be messy but actually it is isn't that bad. I just wouldn't want to do it in a PLC.
 
'Right' is in the eye of the beholder...

Crocop's implementation is not right only in that it doesn't produce the classic, time-based profiles we usually work with. It will transition kind of agressively at the end of accel and the beginning of decel. But it will be very gentle as it moves to final position.
It is effectively a self-compensating profile generator and proportional position controller all rolled into one. Granted, I wouldn't want to try and control a system with alot of crazy dynamics OR do it with high bandwith using this method. But for low bandwidth position applications on a budget in a low performance processor this is a nice compromise.

Keith
 
seppoalanen said:
Peter, Energy = 1/2 m * v * v; So ramp "must" be SQR for the speed (v), not linear.:unsure: Br. Seppo

Seppo, your formula is correct as it tries to approximate a linear ramp with a constant acceleration and deceleration.
You are using the well known equation Velocity^2 = 2*AccelRate*Distance or Velocity = sqrt(2*AccelRate*Distance) However, it is best to use s-curves. S-curve have a 0 acceleration at the beginning and ending of the ramp and a higher acceleration at the middle of the ramp. S-curve are desired because it is physically impossible to change the acceleration instantly as linear ramps require. Crocop mentioned using 5th order ramps. That is what we use but the math is messy but that is OK because the user doesn't see it. I would stick to the 3rd order ramps which is what Crocop is currently using for implementation on a PLC.
 
Peter,

If I understand correctly, the 5th order leaves a couple of other terms that add to the current function that flatten ths accel/decel portion of the curve. Is this a correct assumption?
 
3rd, 5th and 7th order motion profiles

A fifth order polynomial looks like this:

x=a+b*t+c*t^2+d*t^3+e*t^4+f*t^5

A 5th order polynomial allows one to specify the initial and final position, velocity and acceleration.

A seventh order polynomial looks like this:

x=a+b*t+c*t^2+d*t^3+e*t^4+f*t^5+g*t^6+h*t^7

A seventh order polynomial allows one to specify the initial and final position, velocity, acceleration and jerk.

It takes more that one 3rd order polynomial to make a motion profile for a ramp. One third order polynomial specifies the ramp to half speed and the other third order polynomial specifies the next half of the ramp to full speed.

A 3rd order polynomial looks like this:

x(t)=a+b*t+c*t^2+d*t^3

In general, the more coefficient the more control one has over specifying the inital and final conditions. They are also much smoother than lower order profiles.

The reason why 5th order polynomials are important to us is because we need to calculate the position, velocity, acceleration and jerk so we can use those value to multiply by feed forwards gains.
 
Dear Programmers,

I'd like to ask why do you use a S-curve for all displacement. I'd think to use a S-curve to accelerate to maximun speed and another do deccelerate to minimun speed. In between you should travel at maximun speed. If your travelling distance is smaller you'd cut acceleration and decceleration curves to stich then both.

Another question is why do you want to express this curves as a funtion of time. At least in theory you calculate the speed in funtion of the distance to your objective, not in time.

Best regards,
Kelkoon
 
Many reasons.

Kelkoon said:
Dear Programmers,

I'd like to ask why do you use a S-curve for all displacement. I'd think to use a S-curve to accelerate to maximun speed and another do deccelerate to minimun speed. In between you should travel at maximun speed. If your travelling distance is smaller you'd cut acceleration and decceleration curves to stich then both.
Yes, s-curves are usually only needed for ramps and one travels at a constant speed between ramps. However, we have modes like electronic camming where it is rare that one moves at a constant speed. In addition we have a command that lets the user specify the final position, velocity and acceleration after a specified time.

Kelkoon said:
Another question is why do you want to express this curves as a funtion of time. At least in theory you calculate the speed in funtion of the distance to your objective, not in time.

Best regards,
Kelkoon

So how do you synchronize axes? This must be done as a function of time or as a function of some other axes position. One can't synchronize axes using Seppo's or Crocop's equations.

So how do you calculate feed forwards? If you have a 5th order polynomial for position as a function of time it is easy to calculate the velocity, acceleration and jerk at the same time by taking the derivatives of the polynomials. You can't to that when calculating velocity as a function of distance.

Finally, what happens if you use Seppo's Cropcop's equation to accelerate? IT DOESN,T WORK at the beginning of the ramp. Cropcop's equation will caclulate a speed of 0 and therefore no output.
 
There is a Plus Minimum Speed in there Peter that compensates for the initial velocity starting at zero.
 
Make no mistake, I'm not a pro in motion control, and I wouldn't offer what I've thrown together as a commercial product. I thought I would offer what I've used for a similiar project on a budget, just to test a few mechanical parts in the interem.

I've got to get much more education and experience before I even think of offering any commercial products to an end user.

Thank you for your replies & thoughts in this thread, it has been great to read through and attempt to analyze.
 
Hej all

Allright, I think I have all I need to get startet.
If I have the time, I will test both equations, but for no I will stick with seppoalanen and kamenges.

THANK YOU ALL FOR YOUR TIME.

Jesper.
 
Hej seppoalanen

I have looked at your S7-image, and I am wondered what is the "SIFT" parameter for.

Jesper.
 

Similar Topics

Dears Iam looking for Hoist Crane application specially if there is Siemens application for hoist motion of over head cranes
Replies
6
Views
3,435
Hello All, In using compactlogix. I have two trolleys on one line. One trolley is up and running using compact logix 1769 L33ER. Since I have a...
Replies
2
Views
2,069
Hello buddies, I'm now working with hoist demag model number F24-8D and PLC mitsubishi FX series. Currently the hoist was movement control by...
Replies
6
Views
4,484
dear people, hi ,anyone know how to drive a master movidrive B using the manual function in MT manager? had a jam on a hoist in the fully up...
Replies
9
Views
2,789
I have a question concerning a communication loss from the plc to either the power flex drive or point IO listed in the diagram. Since this is a...
Replies
13
Views
4,651
Back
Top Bottom