Motion Madness

kamenges said:
When I refer to compliance, rightly or wrongly, I am talking about the reciprocal of stiffness or spring constant. So the units would be distance per force.
OK

kamenges said:
What threw me a little in your post was you seemed to say that high power to mass ratio will allow you to run infinite jerk profiles more effectively.
Yes.

kamenges said:
What good is a high power to mass ratio if then power is transmitted through a rubber band (highly compliant)? You still have a system with a low natural frequency.
Keith
You are right. No amount of power is going to make it track if the spring constant is too low and stores too much energy while accelerating. When accelerating quickly, some of the energy goes into moving the mass. Some goes into compressing the spring. The energy diverted to the spring cause the motor to lag while accelerating A good model and controller allows one to adjust the acceleration feed forwards and jerk feedforwards. The feed forwards make up for the energy stored in the spring. If the energy stored in the spring plus the energy it takes to accelerate the load is too high then there is no hope of following the motion profile. If the energy required to acclerate the mass and the energy store by the spring are less than what is provided by the motor then there is a chance the system can tune the 'compliance' out with the feed forwards.

A person is very good at moving masses on the end of the spring. We quickly learn how to apply force so the mass stops without oscillating. Computers can be taught to do the same thing. Just because the system is compliant doesn't mean it can be controlled but a compliat system will never be able to follow a triangle profile because one can't get the energy into or out of the sping instantly.
 
Well Norm, did Keith get the right answer?

He matches my answers to within a round off here or there.

Mixing unit types is not good. I usually use G = 386.4 in/sec^2.
Like you, I don't really care because I have MathCAD do the conversion.

Interesting. Peter's reference is the first time I've heard of the thirds referring to distance.

Me too. Both Allen Bradley and Danaher Servo Sizing software give the 1/3 trap. as an option for entering a motion profile and both use the 1/3 to refer to time.



When you try to optimize something for cycle time it doesn't matter what your motion profile is, you can speed it up and speed it up and eventually you will run out of energy to accelerate the load and stall the motor. So, in a sense, you are limited by acceleration.

My point was to show that the time difference between the Triangular move (at this maxed out acceleration) and a 1/3 Trapazoid is a measly 6%. But to get there you have to have a mechanism (motor, bearings, etc.) capable of around 40% more velocity. Maybe the motor can do this, maybe not. Maybe the ballscrew will start to whip at this speed... Maybe you'll have to add a regen resistor to handle the increased length of deceleration. If I have a hydraulic system, maybe I need a pump with a larger displacement or bigger accumulator to support this kind of move?

Or, looking at it another way, since I'm pusing things I'm probably up in the intermittant torque range of the motor. By accelerating for a longer period of time, I'm probably closer to faulting out the drive, Maybe I can use a Trapazoid move with a slightly larger acceleration to make the same move time and still be in less danger of faulting out the drive because I spend less time in the intermittant torque area.

All this applies mostly to short (ish) moves. Long moves will be more limited by max velocity of the mechanism and prime mover.
 
I think this was an easy one for Keith. I can always think of something more challenging.

ndzied1 said:
Me too. Both Allen Bradley and Danaher Servo Sizing software give the 1/3 trap. as an option for entering a motion profile and both use the 1/3 to refer to time.
Well that is new to me, but it makes sense. It is easy to calculate in your head. Half the travel in done a constant velocity. 1/4 is ramping up and the last 1/4 is ramping down.
I will remember that.

ndzied1 said:
When you try to optimize something for cycle time it doesn't matter what your motion profile is, you can speed it up and speed it up and eventually you will run out of energy to accelerate the load and stall the motor. So, in a sense, you are limited by acceleration.
What motion profile? I have customers that run the control wide open and close the loop at the end of travel. It can't get any faster. This can be hard on equipment. A lot of what I do is sawmill hydraulic control. In these cases huge masses are moved quickly. The sawmills want their equipment to move as fast as possible yet when we achieve this the whole mill shakes because the heavy machines are mounted on stilts or on the second floor the air. 🙃

Almost forgot. Reducing the peak speed on a hydraulic system is important because the energy lost across the valve spools is proportional to the flow( velocity) squared. In your example the difference is 2 to 1 in peak energy lost.
 
Last edited:
Peter Nachtwey said:
What motion profile? I have customers that run the control wide open and close the loop at the end of travel. It can't get any faster.

That works really well in hydraulics but I don't know of many controllers for electric servo motors that allow you to run open loop. Also, when you do this you probably are using a pump with horsepower limiting so you don't pop the overloads on the pump motor. I guess the Allen Bradley 1394 Servo system had commands to do this but I never tried it. There would still have to be some check on the system somewhere to save the motor from trying to burn itself up.

Also, I think that maximum jerk, or rate of change of acceleration, will be larger with a triangular move. That is where your "s" curve accelerations come in handy. I found an APP note from Baldor with a pretty straight forward explanation of motion profiles:
http://www.supportme.net/Documents/AppNotes/AN00118/AN00118-000%20Motion%20Profiles.pdf
 
Infinite Jerk

ndzied1 said:
Also, I think that maximum jerk, or rate of change of acceleration, will be larger with a triangular move. That is where your "s" curve accelerations come in handy.

Yes, the jerk at the transition between acceleration and deceleration is infinite. A pointed out above, NO physical device can follow this motion profile. Shock hydraulic systems. Even motors can't change the direction of current in the armatures instantly. The voltage spikes that occur can't be good for the motors or drives.

There are many forms of s-curve. The Baldor example, and most controllers use a series of cubic equations for different parts of the acceleration and deceleration. You should look into using a 7 segment motion profile discussed in this thread.
http://www.plctalk.net/qanda/showthread.php?t=8278&page=2&pp=15&highlight=segment
Or new controller uses 5th order polynomials for ramps.
 
Originally posted by ndzied1:

Also, I think that maximum jerk, or rate of change of acceleration, will be larger with a triangular move.

The command side jerk is the same on any profile that instantaneously changes acceleration. It's infinite. You can add jerk to either the triangular or trapaziodal profiles. But then, technically, they are no longer triangles and trapaziods.
But, as Peter said above, physical systems cannot support instantaneous acceleration changes. So the true phisical system will display what looks like command side jerk just because it can't keep up with the acceleration change. But what you are really seeing is an energy transfer rate.

Keith
 
Originally posted by Peter Nachtwey:

A good model and controller allows one to adjust the acceleration feed forwards and jerk feedforwards.

OK, Peter, you have me on that one. This is the first time I've heard of 'jerk feedforward'. I understand the physical phenomenon we try to counteract with velocity and acceleration feedforward. But what are we modeling with jerk feedforward? Or, more correctly, how is jerk feedforward added to the system and what does it help?

Keith
 
More about jerk

Jerk feed forward is similar to velocity and acceleration feed forward only the jerk feed forward gain is multiplied by the target or reference jerk.

For example, let assume I am using a 5th order equation that looks like this:

P(t) = a+b*t+c*t^2+d*t^3+e*t^4+f*t^5 positions
V(t) = b+2*c*t+3*d*t^2+4*e*t^3+5*f*t^4 velocities
A(t) = 2*c+6*D*t+12*e*t^2+20*f^3 accelerations
J(t) = 6*d+24*e+60*f^2 jerk

The feed forward part of the control output would be:

Kv*V(t)+Ka*A(t)+Kj+J(t)

This gets added to the PID to form the final output. You can see that the jerk term will change smoothly within a motion segment.

The number of feed forwards required by as system depend on the number of poles it has. A system with a lot of poles would require taking more derivatives and adding an extra feed forward gain for each one. A simple motor system can be handled with velocity and acceleration feed forwards. This is not good enough for some hydraulic systems especially test systems or systems that have a low 'spring constant' and are therefore very compliant. The velocity, acceleration and jerk feed forwards may not be good enough if a motor is connect to the load with a compliant shaft.

Systems that can be modeled as a mass on the end of a spring

Code:
	   G*oemga^2
------------------
s*(s^2+2*zeta*omega*s+omega^2)
[/code
 
G is the system gain in velocity per volt
s is the laplace operator.
omega is the natural frequency in radians per second
zeta is the damping factor.
 
with damping will control better with a jerk feed forward and a extra derivative gain.  You should also know that a jerk feed forward will not help a type 1 single poles system.  If your system model looks like this:
 
[code]
   G*alpha
------------------
s*(s + alpha)
 
alpha is the single pole cut off frequency in radians per second.
then a jerk feed forward will do no good. BTW, this is about the most complicated system a PID can handle correclty.

Our latest generation of controller have jerk feed forwards. The problem with using jerk feed forwards is that you can't use a simple 3rd polynomial like

P(t) = P0+ V0*t+(A0/2)*t^2+(J0/6)*t^3

The equation for the jerk is just a constant so this term makes the output look ugly when mulitplied by a feed forward gain.
I will see if I can generate a .pdf that shows the difference in control with jerk feedforwards and without jerk feedforwards.

This is way beyond the scope of a PLC forum. The other guys will think we suffer from motion madness.
 
It's interesting to me that the guys who really understand all this stuff are the ones who design mechanical, cam driven mechanisms.

They have to know how to come up with the "S-curve" type accelerations, whether based on polynomials or sine functions and then match the slope of the acceleration (i.e. jerk) at the transition to constant acceleration and back.

It seems motion control is coming full circle here with electronic systems starting to come back to the technology used in the systems they were originally designed to replace.

I still haven't seen a controller that can do a blended move with "S-Curve" accelerations. Maybe Peters new controller can do this?
 
ndzied1 said:
I still haven't seen a controller that can do a blended move with "S-Curve" accelerations.
The Orion stuff from Ormec can use S-curve acceleration profiles on blended moves (Some info HERE). From the MotionBASIC 'Training Class Notes':

"SCURVE@ applies to BLEND MOVE profiles in the same manner applied to MOVE profiles.

Not that I personally LIKE Ormec's stuff. We have two machines here with Orion controllers, so I was forced to learn them. I'd much rather have a Trio controller... :nodi:

🍻

-Eric
 
ndzied1 said:
I still haven't seen a controller that can do a blended move with "S-Curve" accelerations.

If you need one in the future, blending multiple trapeziodal moves to closely approximate S-curves is a standard feature in the configuration software (Ultraware) for AB's Ultra3000 Digital Servo Drive. Works good, I've used it several times over the last couple of years. Link to Application Note.
 
Now eveyone knows we are mad.

ndzied1 said:
I still haven't seen a controller that can do a blended move with "S-Curve" accelerations. Maybe Peters new controller can do this?

What is your definition of a blended move? I have seen a couple different definitions. Some think it is just being able to handle moves on-the-fly. I call that splicing. I like NI's definition where two profiles are execute at the same time a and blending function changes the weights of two motion profiles.

w(t) is the weighting function that returns a number in the range 0-1 as a function of time.
P1(t) is the first position profile function
P2(t) is the second position profile function

P(t) = w(t)*P1(t) + (1-w(t))*P2(t)

By my definition we don't do blended moves but I am not sure we need to. We can do the equivlent by splicing. 5th order polynomials allow you to specify a final positiion, velocity, acceleration and the interval between the initial and final state.

Specifically, how and why would do you use blended moves? If there is a feature we have missed I would like to hear of it.
 
I'm talking a little out of my league here but I think I'm thinking mainly of what you call moves on the fly. I also looked at some old literature I had and it seems the big hang up is that most controllers can't make the "on the fly" change during a non-linear deceleration. Not sure when you'd need to do that.

In general, I think of "on the fly" moves of being useful for registration and speed matching applications.

AB's GML Commander also has a series of commands for making moves based on CAM tables.
Position-lock cams provide the capability of implementing non-linear electronic gearing relationships between two axes. No maximum velocity, acceleration, or deceleration limits are used. The speed, acceleration, and deceleration of the slave axis is completely determined by the motion of the master axis and the profile stored in the cam tables.

Maybe similar to the NI blend, you can apply a scale to a CAM profile
Scaling Position Lock Cams
You can scale a position-lock cam profile in terms of both master distance and slave distance when it is executed. Selecting Scale Profile uses the stored profile for only the shape of the motion, and scales the profile definition by the total master distance and slave distance over which the profile is to be executed

I've never used this. Also not sure if they carried this stuff over to the newer GML for Ultra drives?
 
It's getting better all the time.

ndzied1 said:
I'm talking a little out of my league here but I think I'm thinking mainly of what you call moves on the fly. I also looked at some old literature I had and it seems the big hang up is that most controllers can't make the "on the fly" change during a non-linear deceleration.
Our second generation controller could be given new commands on-the-fly while accelerating or decelerating using sine ramps. It wasn't pretty but it wasn't any worse than using 2nd order ramps. We could also do super imposed moves. Super imposed moves is like my and NI's definition of blended moves without the blending factor.

ndzied1 said:
Not sure when you'd need to do that.
Issuing commands on-thy-fly is standard in the sawmill industry. Since each piece of wood is different the computer doesn't always know the final set point until the optimizer calculates them. While waiting for the final set points the axes are sent to center line position or some quickly estimated position. During the travel the optimizing computer computes the final set points and this is done on-the-fly and so the final set points are sent on the fly. Since the axes could be decelerating by the time they get their final set points they may need to decelerate faster or slower and that is the problem.

Most motion controller commands have variables such as position, speed, accel and decel rates. Now what happens if the USER can't calculate the accel and decel rate correctly? The key here is not to have the only the traditional positon, speed, accel and decel commands where the user must specify the means, but also have additional commands where the user specifies the ends or the final state. In our case we have commands like "At this position be at that speed" or "be here in x seconds" and the motion controller computes the acceleration or deceleration rate to achieve the user's desired end result.

The math required to generate motion profiles is known to all that make motion products. It is these special commands that make life easy on the users.

ndzied1 said:
In general, I think of "on the fly" moves of being useful for registration and speed matching applications.

See me at the next metal form show.

ndzied1 said:
AB's GML Commander also has a series of commands for making moves based on CAM tables.
We have been doing that for quite a while now. Certainly you have seen the articles on master and commander.
You must of missed this thread
http://www.plctalk.net/qanda/showpost.php?p=117331&postcount=6

ndzied1 said:
Maybe similar to the NI blend, you can apply a scale to a CAM profile
Blending ( NI and my definition ) is not the same as using cam profiles.

ndzied1 said:
I've never used this. Also not sure if they carried this stuff over to the newer GML for Ultra drives?

I don't know too much about the Ultra drives. I do know that we are often used to coordinate them. Usually drives don't have this kind of smarts for coordinating. I know the Control Logix motion controllers such as the M02AE, M02AS and HYD02 can execute cam tables and execute a cam table as a function of another master position. However, they can't do commands on-the-fly while ramping down. I don't know how Control Logix generates the coarse update points, I only know about how it does the fine interpolation. I don't know anying about the AB sercos modules. My assumption is that they are similar to the M02AE, M02AS and HYD02.

ndzied1 said:
I still haven't seen a controller that can do a blended move with "S-Curve" accelerations. Maybe Peters new controller can do this?
By your definition, YES. Our new controller doesn't care about when it gets commands. On-the-fly commands while accelerating and decelerating are now easy for both the controller AND for the user.

jstolaruk, that "blended" move looks very poor. One can see the ripple which will induce vibrations.

Eric, jstolaruk what is your definition of blended moves? Certainly it must be more than smoothing the splice between to motion segments. Can one of you give an example? If I were home I could post a link to my definition of blended moves but that will have to wait until Monday night.
 

Similar Topics

Hello Everybody Anybody knows where I can get this version of SoMachine? The new machine expert version won't open my project saying there is a...
Replies
0
Views
43
Can we use a Simotion D455 ethernet port x127 as a gate, to access S7-1500 plc Tia Portal program ? In the Simatic manager, we used Netpro to do...
Replies
2
Views
93
Bom dia, Estou com uma máquina parada algum tempo, meu servo funciona em modo manual, porém não funciona em automático. Meu equipamento e...
Replies
0
Views
67
Hi currently my existing PLC using AB motor & driver to spin production, however customer want to another set, if this possible we use different...
Replies
1
Views
231
I have always controlled servos in Rockwell motion using position loop. I have an application where one process will push against a servo...
Replies
3
Views
282
Back
Top Bottom