Trinamic Discussion Groups Forum Index Trinamic Discussion Groups
For quick support, please browse or search the forum!
 
 FAQFAQ    Impressum   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Very rough decelleration

 
Post new topic   Reply to topic    Trinamic Discussion Groups Forum Index -> Trinamic Motion Control Language (TMCL)
Print this topic :: View previous topic :: View next topic  
Author Message
shorton
Power User
Power User


Joined: 10 Oct 2006
Posts: 74

PostPosted: Thu Dec 14, 2006 5:44 pm    Post subject: Very rough decelleration Reply with quote

Hi guys:

This problem appears to be somewhere between TMCL, or a a general module issue. Wasn't sure which sub-forum to stick it. Feel free to move as appropriate..

I am using the 110 module with a Linengineering NEMA17 .9deg (400 step/rev) motor. I have also tried a 1.8 deg with the same result/problem.

My application is a simple linear slide. Moves a load from point A to point B and back with a very low duty cycle (minutes between moves). The movement is about 8"/200mm. With my pulley, this works out to about 4 turns of the motor over ~2 seconds. The load/torque is very small and much less than the motors rating. It takes a lot of extra external force to hold it and prevent it from moving (stall the motor). I am using a 24v 2A powersupply. I have the motor max current set to 1180 per Linengineering's recomendations for my motor.

I have tried a lot of combinations of speed and accelleration and I get nice, smooth quiet movement in the fast constant velocity part of my motion. At my vendors recommendation, I tried setting the fastdecay to
-1, 0, 2048, 1024, I could see no difference with any setting of that parameter.

In the Vel/Acc settings that seem to work best, I get very quick (almost instant) accelleration to the target velocity. A very sharp start, which is fine. It's a noisy start as it goes through the slower speeds on it's way to finaly velocity, but good enough (on start acceleration).

But it decellerates differently. The decelleration is more visible as it's a seemingly a good bit slower (to the eye). My device loudly "growls" (eeeerrrrroooowwww - technical term <smile>) to a stop with a slower decelleration (about .5 sec). The decelleration is very noisy but what's worse it the deceleration has a coupe very "rough" spots. At some settings I can see/hear a clear pair of closley spaced "bumps" as it goes through the deceleration curve (eeeerrrrroooowBwBwww). Sometimes those "bumps" are strong enough that the motor loses some steps.

Of course I checked the mechainsm in case it might be the cause or a contributor. The mechanism is a ball bearing based linear slide with negligible friction. It functions from end-to-end perfectly smooth with no change or anything to cause the rough decelleration. I can change my travel by 1/2, basically stopping the device mid stream, the "bumps" follow to the new location, more evidence it is not the mechanics causing them. Also, the motor behaves identically with no load at all.

For what it's worth it seems to "bump" on decelleration worse in one direction than the other (i.e. from left rotation to 0 vs from right to 0). But it's hard to quantify. We have changed motors and have the same result.

Is there something I can do to get the decelleration as quick as the acceleration, or mainly, to make the deceleration not so rough?

My pdiv and rdiv were at the defaults (3/7). Per the other post about slow deceleration relative to accel., I have tried -1 on rdiv and changed the accel accordingly, but that does not fix it. i've tried a variety of settings on acceleration, too.

Let me know if there is any other info I can give that will help. I'm anxious to go to production with this device but I can't release it with a rough motion.

What I need more than anything is smooth accurate motion, quick is a plus but I have a lot of leeway there. Quieter woud be good, too.

Thanks,
Scott
Back to top
View user's profile Send private message
Olav Kahlbaum (TRINAMIC)
TRINAMIC master
TRINAMIC master


Joined: 11 Aug 2006
Posts: 950

PostPosted: Fri Dec 15, 2006 9:27 am    Post subject: Reply with quote

Hi Scott,
please give us more details about all your parameter settings, so that we can reproduce the behaviour here. We can then better give recommendations for your parameter settings so that your problem can be avoided.

Generally, with some low acceleration values, the motor decellerates slower than it accellerates. Here it mostly helps to change the accelleration value just a little bit (increase or decrease by 10 or less). This behaviour is also likely to happen when moving short ramps where the maximum positioning speed (parameter #4) can not be reached. In such cases it can be worth a try to reduce this parameter to a value that can be reached.

Regards
Olav
Back to top
View user's profile Send private message
shorton
Power User
Power User


Joined: 10 Oct 2006
Posts: 74

PostPosted: Sun Dec 17, 2006 7:23 pm    Post subject: Reply with quote

Olav:

I've worked on this a good deal this weekend. I can't seem to find a place where I get smooth acc/deceleration and reliable, consistent positioning. I have reset the module to defaults using the onboard jumper, and I have loaded the latest firmware from the website.

As I described originally, I'm just moving from one position, back to another, a very simple device.

I'm seeing a significant "bump" in the motion at one end of my travel. I've ruled out the mechanicals by trying differnet start-stop points, the bump follows to the new stop position.

Today, I ran the motor alone, mechanically disconnected and you can visually see the "bump" by watching the pulley. I have seen the pulley slightly reverse direction for a few degrees before it continues it's decelleration. Finger pressure on the pulley and you can feel the bump as well.

My test program is very simple. ROrate until a limit switch is triggered, set position counter to known value (i.e. 0), then move back and forth a specific distance with a 2 second pause between direction changes.

One set of params that causes the "bump" are:

Speed 700
Accel 85
pdiv 3
rdiv 8
uSteps 4
max current = 1180
MoveDistance=26208

The bump occurs worse and the far end (i.e. position =26208) than the start end (pos=0). It is also not consistent. Occasionally it won't "bump" but it does it enough to make my device completely unreliable in positioning accuracy.

When I get this rough deceleration in my device it sets up a huge vibration that causes the motor to stall at worst, lose steps at best. When the device is sitting on my bench, the stopping motion "bump" will cause things to rattle/vibrate on my bench. Not a very scientific measurment, but I mention it so show it is there.

I tried 2 different motors, they behaved the same. The motors are from Linengineering, one of your US distributors. The motors showing the behavior are NEMA 17, 400uS/rev motors (0.9 deg).

I had tried a great many accel/speed combinations. I did find the device worked a little better but still not reliable at some higher accelerations. In the 250 range (all else the same), I get a "musical" decelleration. Does not happen on accel, only decel. From 258 and up, the decel does not cause the musical sequential tones. And for much lower values (<100 IIRC) it won't do it however it's deceleration is very noisy with a grinding "growl" sound as it stops.

Hopefully you can duplicate and help me find some parameters that will work for me.

Thanks,
Scott
Back to top
View user's profile Send private message
shorton
Power User
Power User


Joined: 10 Oct 2006
Posts: 74

PostPosted: Sun Dec 17, 2006 8:53 pm    Post subject: Reply with quote

Andrew, thanks for the input. But I think I've addressed all your suggestions already, as much as possible.

1. For resetting due to many experiments, I reset the whole module back to factory default using the jumper on the module procedure.

2. As for choosing a lower top speed, this won't help becasue the place it happens it at a very low speed. To low to use, so I must go through it. I can't go that slow. The anomaly happens right before the stop, and immediately after takeoff.

3. I understand about friction and iniertia. I don't have much friction, but I have a good bit of inertia (11lbf load). But, I ahd already considered these and so I did try to disconnect the motor, ( as I described in previous post above), and the behavior persists with nothin connected to teh motor but an empty timing pulley.

4. The bump (jump back) observerd happens on decel and accel, but oddly enough, only manifests itself mainly at one end of the travel. SO, figuring I was stopping on some partial microstep, I even attempted to use a total travel that was in multiples of 16 to avoid any microstep step problems.

Sad


I have hooked up a larger ("double stack") motor that is a 1.8 deg motor and it seems to eb working better. But it's size is a problem, I'd much rather get the smaller motor to work properly.
Back to top
View user's profile Send private message
Olav Kahlbaum (TRINAMIC)
TRINAMIC master
TRINAMIC master


Joined: 11 Aug 2006
Posts: 950

PostPosted: Tue Dec 19, 2006 10:39 am    Post subject: Reply with quote

Hi guys,
I have tried it out with Scott's settings. In deed the TMC428 (this is the chip that controls all the ramps, as ramp generation is done in hardware) handles decelleration a little bit different than the acceleration phase. You will see this especially when you are using a low acceleration parameter and pulse_div/ramp_div values that differ very much from each other.

So I have also tried using the following settings:
pulse_div = 4
ramp_div = 7
acceleration = 85
max_speed = 1400

I think that accelleration and decelleration are more equal then. When changing the pulse_div, ramp_div and microstep resolution values please bear in mind to set the acceleration as the last parameter always, after you have set the other parameters.

But I also think that Scott's problem is mainly a problem of resonance. You are right, the TMC428 (that is used on nearly all the TMCM modules) can only do contiguous ramps. The only way to overcome this would be to use a TMCL program which does some polling on the speed and bypasses the reonance speed ranges (but this is hard to do, as Andrew already mentioned). But in most cases you will find suitable parameters so that resonace will not become a big problem.
Finding the resonance speeds with the help of the StallGuard profiler is also a very good idea.
Please also bear in mind that when moving only short distances the maximum positing speed might not be reached.
Back to top
View user's profile Send private message
Olav Kahlbaum (TRINAMIC)
TRINAMIC master
TRINAMIC master


Joined: 11 Aug 2006
Posts: 950

PostPosted: Thu Dec 21, 2006 9:58 am    Post subject: Reply with quote

Hi Andrew,
the easiest way for "turning off" accelleration and decellaration is to set the accelleration parameter to its maximum value (2047) and the ramp_div parameter to 0.
Back to top
View user's profile Send private message
shorton
Power User
Power User


Joined: 10 Oct 2006
Posts: 74

PostPosted: Fri Jan 12, 2007 6:30 pm    Post subject: Reply with quote

Andrew:

Very interesting, but a lot to get a handle on your meaning. I do not understand some of it, but will try to study it.

Quote:
" Resonance does indeed occur.
Sometimes it is greater at start, sometimes at the end of motion. Sometimes at both ends. This is almost random."
I'm glad you saw this behavior, it is exactly what I saw.

For starters, the 110 module says it will only do 16x uStepping. Does that throw a fly in the soup? Back in the thread you referenced, I believe it was Olav wh said that although I could use 64x, that it was really converted to 24 uS. And the problem I saw was when he said some steps woudl not result in a move. This concerns me becasue I need repeatable, consistent motion. Can't be losing any steps whether they be from software or hardware induced. The 64x to 24x thing sounds like it will miss steps by design.

As for parameter requirements, let me elaborate. I'm not hard set on the max current or actual physical speeds. I have some flexibility. Here are my requirements that led me to my settings:

1. I am directly pulling a 12 lb load with a pulley that has a diameter of .637" so about 4 in-lbs (64 oz-in) at the shaft. This is an inertia load mostly, friction is very low as it is on a ball bearing linear slide. But that 64 oz-in is right on up there not too far with the peak of my (400us) motor rating. My 200us motor is a "doublestack" high torque model and has a little more headroom. It was my understanding these torque values are based on the max current to the motor.

2. Once the load is moving shoudl take very little to keep it moving. So the constant velocity part of the motion requires very little torque. I have room there to reduce current, but that's not where you suggewst lowering it. I don't see how to chang eit mid-move in positioning mode anyway. Starting and stopping the load (accel/decel) are the main issues where both the torque is needed and the resonance occurs.

3. Generally speaking, the main times the motor will stall is on startup.

Too fast a startup (which cures or helps the resonance) combned with low current and the motor cannot overcome the inertia; and the motor will stall.

Too slow a startup and I can't reach the target velocity, but worse, the motor is noisy as hell which will be objectionable to the end user.

The device can't remind anyone of fingernails on a chalkboard <grin> or they will send it back.

5. To simplifiy my motion requirement explanations, I basically need to complete 5 revolutions in anywhere from 1 to 4 seconds as smoothly as possible. Shorter is better but that requires faster accel (& velocity)

This is a 10 tooth pulley (0.2"/tooth) pulling the load 10". I cannot change the physical travel, it is a requirement. Farther and it will hit stops. (The "real" travel is about 9.25"). I do have the flexibility to have the motor to move in even full stop increments, but getting my routine to "home" to a full stop position may be another matter.

6. So for these ~5 revolutions, a flat velocity in the middle is not a requrement but I have been settling on settings that did have a mostly constant flat part as it moved.

I've tried a thousand settings trying to find the best compromise between noisy start/stop and not too abrubt start/stop. These setting are working OK for accel noise reduction but are more abrubt than I'd like on start/stop. :

400uS motor:
V=300
A=400
pulse div=3
ramp div=7
uStep=3

200uS motor:
V=150
A=600
pulse div=3
ramp div=8
uStep=3

7. It is critical that the load not be stalled during motion. If the motor ever stalls the load position will be unknown which could cause something very expensive to be "slammed" into a stop on the next move command. The device homes at power on and after that I need it to "know" where it is.

Becasue of this, I have kept the currents high, particularly in the acceleration phase where it was more likely to stall. I'm happy to fine tune them lower but I don't want to be on the "edge" of stalling. Some unknown physical installation parameter could cause the end user's device to stall. I cannot have marginal stall realiability in this app.

Finally:

Thank you very much for the time to assist in looking into this. I don't know where ou are getting the edtails, but I'm glad you are.

But, before I try to decipher what you said in your previous reply <smile>, would you take a look at this input from me and see how or if it affects your recommendations? Particularly since I don't think my module will do 64x.


Thanks, Scott
Back to top
View user's profile Send private message
shorton
Power User
Power User


Joined: 10 Oct 2006
Posts: 74

PostPosted: Tue Jan 16, 2007 6:06 am    Post subject: Reply with quote

Andrew:

As I continue to test I have found that no matter what I use for current, if I use your p correction AND I use the minimum speed, that the deceleration is MUCH smoother. It does take both of them. I still get the chirp/growl blip on start. If I had a way to get the same jump at start that would be nice.

Also, as hard as I try if I lower the current to anything less than the max the mfgr said I coudl use withthe motor (1170), it is much too easy to stall. The "stick my finger in it" test reveals a mouse could make it stall. At the higher currents is ls less susceptable.

Over the next few days I will replace this 400us/rev motor with an alternate "high torque" doublestack 200us/rev motor and try this same battery of tests. It may cure the issue as it will have more torque at the lower currents.

As I asked in the recent reply, I was a little fuzzy on yur calculation of the value params 137 and 146. For a given set of "regular" params, can you clarify how to calculate them?

If there is a way to get a similar skipping of the resonant speeds on start that would be great, too. You have mentioned it and I discussed it above, but I do not see how to do it, yet.

Getting close. Calling it a day.

Best, Scott
Back to top
View user's profile Send private message
lungfish
User
User


Joined: 17 Jan 2007
Posts: 5
Location: Hirschaid / Germany

PostPosted: Wed Jan 17, 2007 8:35 pm    Post subject: Reply with quote

Andrew, Shorton!

I got a twelve axis automaton featuring 4 TMCM303 here and have run into each and every problem Shorton describes.

My machine includes an arm/table positioning unit (like a harddisk), the arm can only move a short way, which prevents extensive stall guard frequency tests. Alas, this axis gives me a bad time.

Other axis include ball bearing / thread rod linear units.

I hope one of these days I will (with your help) derive a solution which gets rid of melodical deceleration, slow speed crawling into the target position, resonance.

Since my machine features different axis types, I get the feeling that you two are discussing the basic issues one will encounter whenever using step motor drives.

The most interesting part is to determine which issues are originated by TMC and which are intrinsic to step motor designs.

Please keep enlightening us!
Back to top
View user's profile Send private message Visit poster's website
Olav Kahlbaum (TRINAMIC)
TRINAMIC master
TRINAMIC master


Joined: 11 Aug 2006
Posts: 950

PostPosted: Tue Jan 23, 2007 9:49 am    Post subject: Reply with quote

Concerning motor current: It is often a little bit confusing, but most motor manufacturers give the maximum RMS current for their motors, while manufacturers of stepper motor drivers (like us) give the maximum peak current for their drives. SAP 6 and SAP 7 set peak currents. The formula is: RMS=Peak/sqrt(2).
So, when the motor manufacturer says that the maximum (RMS) current for his motor is e.g. 1A, you can set SAP 6 to 1400 or even 1500 (1A*sqrt(2)=1A*1.414 which is approximately 1400).
Back to top
View user's profile Send private message
shorton
Power User
Power User


Joined: 10 Oct 2006
Posts: 74

PostPosted: Sun Mar 04, 2007 5:44 am    Post subject: Reply with quote

Andrew:

I am trying to run the calculation and usage of "p" in your examples to ground. I am using the following sample code. It has all the parameters that have been involved, and I believe I have them being set in the proper important order:

Code:
x=4             // multiplier for changing changing usteps and having affected params auto-adjust

// VELOCITY  -------------------------------
v_max=200       // max speed
v_min=1      // minumum speed


// MICROSTEPS  -------------------------------
usteps=4        // 140=Microsteps: 0=full, 1=.5, 2=4, 3=8, 4=16, 5=32, 6=64
fullstep=2047   // 211=speed to transition to fullsteps if desired.  Note for fullstep operation olav
                // advised to use this param set to 1.  Gives fullstep at all speeds

// ACCELLERATION  -------------------------------
pulse_div=2     // 154=Achieves the coarsest mesh of speeds
ramp_div=8      // 153

a_max=110       // 5=Max accel.  ALWAYS set a_max AFTER changing pulse_div, Ramp_div, or uSteps
                // NOTE:  to turn off accel completely, set a_max to 2047 and ramp_div=0

//ramp_div=0    // replace above withthese to turn off accel
//a_max=2047


a_lowhigh=2047  // 136=acceleration threshold between low and high accel

pdiv=11         // 137=accel divisor - set after changing a_max to get desired "p"
pmul=92         // 146=accel factor - set after changing a_max to get desired "p"

// CURRENT -------------------------------
i_max=600   // 6=maximum current
i_standby=100   // 7=standby current
i_low=0      // 144=current reduction factor at low acceleration 0=no reduction
i_high=0   // 155=current reduction factor at high acceleration
i_rest=0   // 143=max current immediately active at vel=0. 0-7 (12.5% steps) 0 =nochange

freewheel=1   // 204=time before freewheel
decay=-1   // 203=Mixed decay.  -1=perm. 0 off. Might relieve resonance with permanent mixed decay

// MOTION --------------------------------
start=0
end=3200 * x

fromends=end/3
point1=start+fromends
point2=end-fromends

// PROGRAM OPERATING PARAMETERS TO VOLITILE MEMORY  -------------------------------

   SAP 4,   0, v_max
   SAP 130, 0, v_min

   // order below is important
   SAP 140, 0, usteps
   SAP 154, 0, pulse_div
   SAP 153, 0, ramp_div
   SAP 5,   0, a_max
   SAP 137, 0, pdiv
   SAP 146, 0, pmul
   SAP 136, 0, a_lowhigh

   SAP 211, 0, fullstep

   SAP 6,   0, i_max
   SAP 7,   0, i_standby
   SAP 144, 0, i_low
   SAP 204, 0, freewheel
   SAP 203, 0, decay

   SAP 1, 0, 0      // reset home position to "bottomed" place, position =0

// PROGRAM ------------------------------

LOOP1:

MVP 0,      0, end      // move to position2 at speed2
WAIT POS,   0, 0      // WAIT for arrival

// back the other way:
WAIT TICKS, 0, 100

MVP 0,      0, start      // move to position2 at speed2
WAIT POS,   0, 0      // WAIT for arrival

WAIT TICKS, 0, 200

JA LOOP1

STOP


I wrote the code above using the variable names to make it easier for me to see what I was doing when making adjustments and tests, to be sure I was adjusting the correct axis parameter. MAINLY though, it is to ensure teh order or my SAP's are correct. I do not move them. I have also tried to be explicit with all the parameters whether or not I am using them. This to be sure I know what they are, and not relying on any assumed setting or default. Hopefully tis will alleviate any issues I've seen from "stray" parameter settings possibly left over from previous tests. There are enough bugs without me introducing any unknowns Wink

I created a small spreadsheet where I added the formulas for "p" and it's related parameters. I am still missing some small point I believe between your theoretical p and the actual p. In my spreadsheet, where I tried to duplicate your correct formulas from previous posts in this thread, I don't see the difference between the theoretical and actual. I can calculate the real one and arrive at the same number you showed though.

Calculating p spreadsheet

Can you help me with that point?

Note that I have aborted for now getting the 400step/rev motor working. I have installed the higher torque motor for a couple of reasons, but mainly becaue I see to be having fewer resonance point issues with it. Once I master it, then I'll take a look at the smaller motor.

In the code above, I have included the resulting pdiv:pmul combination from the linked spreadsheet. As I try different accelleration values, I replace them with the appropriate calculated pdiv:pmul.

From doing that I've seen a few combinations that produce fairly quiet acceleration. In any case, it appears I am manually applying pmul:pdiv correctly. I am not getting any oscillations about the end. I can get the quietest acceleration with the lowest current, which is not surprising. But, at these "quiet" setups, the tinyest thing will stall the movement.

Next: deceleration...[url][/url]


Last edited by shorton on Sun Mar 04, 2007 7:09 am; edited 6 times in total
Back to top
View user's profile Send private message
shorton
Power User
Power User


Joined: 10 Oct 2006
Posts: 74

PostPosted: Sun Mar 04, 2007 6:57 am    Post subject: Reply with quote

As I see it from Andrews help and my experiments, I see that for acceleration I have to find the best copromise. I can:

a) start abrubtly, no acceleration. The motor and mechanics I'm using will do it, but this produces a lot of impact/shock load on my device, the load but most importantly for my application, the mounts. Noise from 0 to v_max is minimal.

b) start with steep acceleration, not much different that A above in that I stillget significant shock on the system from the abrubt start. More, but not much acceleration noise

c) start with a medium acceleration ramp. Smoother takeoff impact wise, but noiser as it goes through the slower more resonant frequencies. I can fiddle with pulse_div/v_max and ramp_div/a_max to try to find combinations that skip the most resonance points but this hasn't helped much.

d) adjust currents in all of above. I found a low currents I have beautiful, silky smooth, quiet takeoff's but they lack enough torque to prevet a stall in anything other than perfect setup conditions.

Anyway, I think I can work with that to find the best compromise for acceleration.

One thing that is not clear to me is the parameters for the acceleration threshold. Does this parameter (#136) apply different current reductions to specific moves requested with specific acceleration values, the value of which willbe either above or below the threshold for the whole move, OR does it apply to different velocities passed as part of a single acceleration move? I have tried adding a maximum current reduction (7) to both high and low params (#144/145) but I can see no affect whatsoever.

Now, as we have determined and has been verified, decelleration does not behave the same as acceleration. The ramp is different. Even when I find smooth(er) acceleration setups, I still get a growl to stop.

So far my only solution as been to apply a v_min (#130) setting to the setup. This can cure the noise, but it produces an abrubt stop introducing some shock load. Like acceleration, I need to reduce the shock load and the noise. That is the next hurdle.

One thing I considered was reducing the max current but only during the deceleration. This might be possible using Andrews code in the thread "changing speeds on the fly" only instead of changing speeds, I'd change currents. Feasable? Stopping ought to be easier than starting and resulting in less current requirement, less niose?

Thanks, Scott
Back to top
View user's profile Send private message
shorton
Power User
Power User


Joined: 10 Oct 2006
Posts: 74

PostPosted: Mon Mar 05, 2007 9:06 pm    Post subject: Re: Less talk, more action please Reply with quote

Andrew wrote:
Shorton wrote:
Did you figure out how you turned off accel as you mentioned? Or is Olav's method what should be used when testing something with acceleration off?

I don't have any records. So there's no way to remember. If I'd have to do it again today, I would do as Olav suggests. But there's slightly more to it than a_max=2047 and ramp_div=0.
Certain speeds can be achieved with acceleration off. Certain speeds will have a few, or a few hundred steps of acceleration. It all depends on how many ramp_div fit into pulse_div, and on their relationship to a_max=2047. The the formula for S has an error. I did not work out a correct formula yet. But it provides at least an approximation of S - steps to achieve speed 2047.


Clear as always. "Don't know, would do it Olav's way, but Olav's way might not be right... ", and no real suggestion on how to accomplish "accelleration off" if his way isn't sufficient.

Quote:
How do you then determine the v_min? Set just any random number?
Not random. To produce teh torque to move the load reliabliy I have tested both speed and current combinations at various v_mins over a large range.

Quote:
If you are suggesting that you did find the bound of the lowest range of bad speeds, and that even slightly above this range an abrupt speed produces an inacceptable jolt, then you have no other option:
Exactly. Even at the lower speeds the abrupt start causes issues with the device including introducing resonance in the mounts themselves. A smooth start is required.
Quote:
First, ramp below the bad range. Then jump over it on the fly. Or stay below, if slow speed is suitable.
Very slow speeds aren't acceptable. At the torques necessary to provide relaible motion, and the associated currents (albeit much lower than max), many speeds produce the noiser motion. I can lower the current enough to avoid them but then torque is too low.

Quote:
Shorton wrote:
As I see it from Andrews help and my experiments, I see that for acceleration I have to find the best copromise. I can: ...

Please do not provide intermediate deliberations. Please do not force me to repeat myself. Please post only questions, and results.
I have made my suggestions. Please quietly take notice of them, and implement. Then please come back with results, or specific questions, instead of more deliberations, and questions "whether you really should do it".
Man you are testy. I was simply listing my conclusions for others who may encounter similar problems.

Quote:
It is obvious that you do not do it, because you write:
Shorton wrote:
I still get a growl to stop

If this results from your latest code, then, as I explained above, this is to expect, because the code does not try to jump over bad speeds - our main theme. First please do picture 1. Then we have something to talk about.
You always assume too much. I can't jump the range of speeds producing the resonance. With the current motor I don't have one speed that is a problem, I have a range that is noisy, i.e. 10 to 120. Jumping from 10 to 120 doest not provide suitable motion. But in any event, I had pointed out I was able to find a compromise of the possibilities I listed that will work for *Accelleration*. On to decelleration..

Quote:
Are you able to move with accel/decel off? Rectangular ramp, like in picture 1.

Yes, but not withotu significant impact. If you read my posts more carefully you woudl have seen I described that. Wink

Quote:
Only when you know the range of bad speeds, you can really tell what ramp you can do, and what you can't.Please first find the bad speeds. Unless you do that, all other experiments will be useless.
fine. 10 to 120.

Quote:
You need to find the first lowest good speed that is above the first range of bad speeds.
120

You can find this speed with accel/decel off.
Only we aren't sure how to turn accell/decel off. But using Olav's flawed method (per your description of "it's nto that simple"), produces unacceptable shock with instantaneous motion. As already described.

Quote:
Rectangular ramp, as in picture 1.
That's what you have to try first. Because it passes no other speeds - just a single speed. You know this speed is good both for continuous run, and for abrupt start.
No, abrubt starts are not OK. If you mean I can test that speed to see what speed will work, I have done that. About 120 in teh last posted set of setup params is the minimum. Possibly 140 IIRC.

Quote:
Afterwards you can introduce ramping on the fly, if higher speeds cannot be achieved abruptly.
If the system is not sensitive to slight shocks, it is OK to set starting speeds quite high.
Yep, I understand that and did so before my last post. Thus the reason for listing it as one of the alternatives.

Quote:
Shorton wrote:
the tinyest thing will stall the movement

Try reducing the speed, and varying the current.
No offense but, duh. Exactly. See the last option I listed. Obviously if there is not enough torque at a desired speed, all that is left to adjust is current. I have that down pat and know the speed and current combinations that produce acceptable constant speed.

Quote:
Shorton wrote:
One thing I considered was reducing the max current but only during the deceleration.

Both sides of the ramp are difficult. Acceleration pushes the load. Deceleration pulls it, and prevents from overshooting the target.
Changing currents on the fly might be a good idea. But you need to know why and when to change it. Does it stall in the range of bad speeds? Or does the extra force stall at good speeds in other parts of the ramp?
I'm beyond the stalling issue. I believe that may have been the original 400us/rev motor's inherient charasteristic. I'm using a "normal" 200us/rev motor and it does not miss steps in motion, but it exhibits the same "grown" in the accel decel phase.

Quote:
Shorton wrote:
adjust currents [...] at low currents I have beautiful, silky smooth, quiet takeoff's but they lack enough torque to prevet a stall in anything other than perfect setup conditions.

Do not try every suggestion as a single solution on its own. A single solution might not help. You might need a combination of solutions. I already made my suggestions. I refuse to repeat.
All I asked was if you though reducing currents on the fly might help. A simple "Sound like a good idea", or "no that wont' work" would suffice. A really helpful thing woudl be "Excellent, lets see if we can come up with some code that will do that". The last thing I was asking for was for a repeat, belive me..

Quote:
By the way, your code suggests you used a current of 600mA. It is far below your motor rating. You have a big margin to find a suitable current, which might not even ned to be a compromise.
Yep. That's becasue I'm testing various currents at each step of the solutions. As you suggested. Unfortunately there exists no setup where I can have currents low enough to reliably prevent stalling, and have low noise. I have to compromise. There is verry little noise difference until I get the currents to the "edge" of stalling where they get quiet. Unfortunately at that point one could blow hard on the device to get it to stall. Currents must be higher than that "silky smooth" level, at least at acceleration.

Alas, in this post I have said nothing new. Shorton, are you doing this to me on purpose? I suggest you remove both your latest posts. There's nothing for the future reader to gain from them.[/quote]This is not a collaboration on a reference document, it is a forum. One to openly discuss ideas and problems. At teh end of such a thread a concise summary of the solution to the problems might be appropriate, but the discussions that led to such are still appropriate. Unfortunately there seems to be only the 2 of us to participate. My posts are not only on topic, but appropriate. There is no reason to remove them.
Back to top
View user's profile Send private message
B. Dwersteg (TRINAMIC)
TRINAMIC master
TRINAMIC master


Joined: 25 Jul 2006
Posts: 820
Location: Hamburg (Germany)

PostPosted: Tue Mar 06, 2007 3:02 pm    Post subject: Reply with quote

Dear Shorton an Andrew,
Olav and me have followed this discussion in many points, albeit not giving much input. From my reading of the last posts, I still wonder why your application loses steps. I see you have tried out "SAP 203,-1" for mixed decay on? Please retry with the latest version of the module firmware / with your actual double stack motor. The next question is: Motor coil resistance, and supply voltage, and at which RPM you first loose steps, to get an impression, if there is an electrical problem. The text reads like mechanical vibrations are leading to a high torque ripple from your dynamic load, thus stalling the motor. To get a real impression, the best would be: Can you make a short movie with a digital camera which shows the problems? If possible, please mail to Andrew and to us (please refer to our contact address given on the Trinamic website).
Thank you!
Back to top
View user's profile Send private message Visit poster's website
shorton
Power User
Power User


Joined: 10 Oct 2006
Posts: 74

PostPosted: Tue Mar 06, 2007 3:57 pm    Post subject: Reply with quote

Thanks. I am not missing steps anymore, as far as I can tell. I judge that from the repeatability of the movement. The motor that I originally started with did as described, that is, had a more specific point where it would skip steps. I set that motor aside for another day. The motor I am using now is a higher rated torque model, with 200us/rev and it does not have a severe resonance point like the original motor. My apologies for changing horses in the middle of the race if it added any confusion about my solution. I do still get a rougher sounding decelleration which is what I'm trying to address now. I'm away form the lab most of this week but will try to make a clip of the motion and post for your guys to download asap. Thanks again, Scott
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Trinamic Discussion Groups Forum Index -> Trinamic Motion Control Language (TMCL) All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group