Move 10 steps in 15ms. Doable? What do I need?

Move 10 steps in 15ms. Doable? What do I need?

Postby maolimu » 11 Aug 2011, 22:36

Hello,

for a machine prototype I plan to use several stepper motors. One of the stepper motors is critical for the whole machine.
The requirements
1) The motor shall move 10 steps, 18 degrees, in at most 15ms.
2) After more or less 20ms this movement is repeated, over and over (controlled by another uC)
3) Microstepping is not needed
4) We need an encoder to detect step losses
5) We can tolerate step losses as long as the cumulative step loss is 0 - so if the stepper moves 9 instead of 10 steps, on the next "turn" we would tell it to move 11
6) The motor will transport a thin plastic film - so we need very little torque besides what is needed to accelerate/decelerate the motor
7) It is important that minimal time is lost since the command to move is sent, be it transfer time or processing time (communication, ramp calculation etx).
To make 7 more clear: we start counting the 15ms from the moment the "control uC" sends the "start movement" command. So any time lost with ramp calculation or communication is added to the time the motor actually runs.

I have very little experience with stepper motors. What are the key factors to make this fast movement?
- little rotor inertia?
- high torque?
- any special motor needed?
- how important is the controller?
- how important are the stepper drivers?
- what about motor current or driver voltage?
- does something else matter?

For communication we can use any of the following interfaces: I2C, SPI, CAN, RS232, RS485, GPIOs
We do not plan to assemble a controller using ICs - we would rathe use a ready module or integrated motor.

Please let me know if our requirements can be fulfilled - and if so which Trinamic products we could use, and why.

Many thanks in advance.
Best regards
Mark
maolimu
Power User
Power User
 
Posts: 19
Joined: 01 May 2011, 17:32

Re: Move 10 steps in 15ms. Doable? What do I need?

Postby TRINAMIC_BD » 14 Aug 2011, 17:05

Hello, in fact your requirements are quite on the edge. It must be evaluated, if the motor / which motor can cope acceleration and deceleration of your intertia and friction load. In principle, you can use the torque given in the motor data sheet to calculate a feasible acceleration / deceleration ramp by subtracting friction, and then taking into account motor inertia and estimated load inertia.

From a controller point of view, you should select a controller, which can drive a higher than the nominal motor current, so you can increase the motor torque above nominal ratings. The motor must be operated at a proper duty cycle therefore, in order not to over-heat. Further, you need a quick controller with fast command interpretation and encoder interface, e.g. TMCM-142 (with QMOT 42xx, QMOT57xx or QMOT60xx) or TMCM-351 (with QMOT42xx) three axis system. TMCM-140 / PD140 (42mm QMOT42xx motor) would be a solution with integrated encoder. These all have 32 Bit CPUs and provide for a variety of interfaces. Perhaps a single port pin can be used for control of the cycles rather than a bus interface.
User avatar
TRINAMIC_BD
Site Admin
 
Posts: 2436
Joined: 25 Jul 2006, 12:21
Location: Hamburg (Germany)

Re: Move 10 steps in 15ms. Doable? What do I need?

Postby maolimu » 21 Aug 2011, 21:48

I have read a lot about the possible controller ICs over the past days.
Some futher questions:

1) The modules you suggested use use either the TCM429 or the TMC457. Does it matter which one is used?

2) My understanding is the TMC457 (beyond having many additional goodies like ChopSync, StallGard, direct encoder interface) really shines at microstepping resolution. Is that correct?
Shall I consider microstepping for my application, or does microstepping slow down the motor/reduce torque?

3) Regarding the TMC457: Looking at the parameters that can be set, I saw no mention of minimal velocity for ramp generation. On the TCM429 this seems to be the register v_min.
Isn't v_min crucial for what I am trying to do?
I thought most stepper motors can be driven with a quite high initial velocity - some vendors even say you should have a high initial velocity to avoid resonance at very low velocity.
On some early tests, using a stepper controller from another company, I was able to considerably reduce the time needed to move the 10steps by setting the motors initial velocity to 40rpm.

4) Regarding the motor duty cycle and over heating: till what temperature is it save for a stepper motor?

5) In principle, you can use the torque given in the motor data sheet to calculate a feasible acceleration / deceleration ramp by subtracting friction, and then taking into account motor inertia and estimated load inertia.
Do you have a sample formula(s) or an article which might help figure this out - I don't really know where to start. :(

Best regards
mark
maolimu
Power User
Power User
 
Posts: 19
Joined: 01 May 2011, 17:32

Re: Move 10 steps in 15ms. Doable? What do I need?

Postby TRINAMIC_BD » 22 Aug 2011, 09:47

1 - It should not matter
2 - The high microstepping resolution is more interesting for exact positioning - for smooth fast motion, 16 microsteps are enough. TMC457 might be better in terms of acceleration ramp flexibility and speed.
3 - The vmin might help, and you can also do it in TMCL software by modifiying acceleratin settings depending on velocity, but I'm not convinced that it really brings a benefit, as the motor also needs time to recover from velocity jump.
4 - Coil temperature max. at 120°C, ball bearings below 90°C (short time). Best, you provide cooling via mounting flange.
5 - The mathematic basics can be found in Wikipedia - sorry, I don't have it at hand - how ever, a rough calculation should be good for a start.
User avatar
TRINAMIC_BD
Site Admin
 
Posts: 2436
Joined: 25 Jul 2006, 12:21
Location: Hamburg (Germany)

Re: Move 10 steps in 15ms. Doable? What do I need?

Postby maolimu » 22 Aug 2011, 11:12

3 - The vmin might help, and you can also do it in TMCL software by modifiying acceleratin settings depending on velocity, but I'm not convinced that it really brings a benefit, as the motor also needs time to recover from velocity jump.

I'm not sure I fully understand that: so shall I tell the motor "do 10 steps" using a higher than possible acceleration with max velocity set to vmin, once vmin in reached, adjust the acceleration and max velocity to the actual needed ones? Then kind of do the same during deceleration.

I guess this can only be done using TMCL on the motor as one needs quite fast polling of current velocity - right?

Why was vmin left out of the TMC457?
maolimu
Power User
Power User
 
Posts: 19
Joined: 01 May 2011, 17:32

Re: Move 10 steps in 15ms. Doable? What do I need?

Postby TRINAMIC_BD » 22 Aug 2011, 15:30

Correct, you can adapt acceleration on-the-fly by TMCL, in order to always be in the highest possible range.
The start velocity directly conflicts with S-shaped ramps, because the idea is to have a very smooth start / stop without jerks. Main idea of a vmin is jumping over resonance range.
User avatar
TRINAMIC_BD
Site Admin
 
Posts: 2436
Joined: 25 Jul 2006, 12:21
Location: Hamburg (Germany)

Re: Move 10 steps in 15ms. Doable? What do I need?

Postby maolimu » 06 Feb 2012, 10:34

Hello B. Dwersteg,

it's been a long time, but I wanted to give some feedback on this.

We took a look at the math involved with stepper motors: calculated the total inertia (motor + load), estimated friction, calculated the torque needed for various accelerations and made sure we are well within motor limits. It turns out that since we have very little load inertia, a small stepper motor should be perfectly suited to do the required movement in those 15ms we need.

Next we soldered a TMC428-PI24 to a breakout board and plugged it into a breadboard to do some tests. I was amazed how easy it was to fully program the IC - it only took 2 days, once the math behind pmul & pdiv was finally understood.

We then switched the Nanotec controller we had ben using so far (through RS485) into step&direction mode and used the TMC428 to execute the motion profile.

The result is very good!
If I take the following motion profile: 20 steps, start vel 1Hz, end vel 3500Hz, accel 700Hz/ms, the theoretical/calculated motion profile (trapezoid) is approximate 11ms.
Using the Nanotec controller, there is an overhead of approximately 15ms added to the above. I guess Nanotec is pre calculating a LUT for the motion profile using a small PIC processor. Besides that, RS485 also slows down things.
Using the TMC428 I see the controller has an overhead of around 1.4ms before generating the first step - when clocked at 10MHz. Clocking it at 16MHz seems to have decreased this initial delay proportionally.

So using Nanotec controller: total run time is 26ms.
Using TMC428 it is 12ms.

But that's not all. I compared the motor motion by looking at the encoder feedback using the TMC428 vs Nanotec controller (I would have liked to compare the plain step & dir signals, but the Nanotec controller cannot output those). I see the motor runs a lot better when driven by the TMC428. I can clearly see an acceleration, short constant velocity, and deceleration phases, with well spaced steps everywhere. The encoder feedback analysis when using the Nanotec controller is a mess: the motor accelerates, decelerates, accelerates again, stays constant and then decelerates, accelerates shortly, and finally decelerates until stopping. I'm not sure how bad this is for real life performance - but definitely the step timings coming out of the TMC428 are much much better.

So this was a quite nice experiment. We just extended our PCB to make room for two TMC429 so we can drive our 5 stepper motors using those.

I would like to take a look at the TMC457 but the BGA soldering keeps me away from it. I wish you would create a development board for easy testing of the TMC457 (also through SPI).

What's next: messing around with the TMC428 was so much fun I am inclined to take a look at the stepped driver ICs from Trinamic.
For our application the TMC261 should be strong enough. For the stepped doing the fast motion (currently in fullstep mode) I guess features such as stallgard and coolstep might not work well, but for the 4 other steppers coolstep might be a very nice feature to keep the motors cooler and quieter.

Kind regards
mark
maolimu
Power User
Power User
 
Posts: 19
Joined: 01 May 2011, 17:32

Re: Move 10 steps in 15ms. Doable? What do I need?

Postby TRINAMIC_BD » 06 Feb 2012, 12:00

Hello Mark,
thank you very much for this feedback and for the comparison details :-) This affirms again what we often tell customers, that motion control in Hardware is a superior soltuion.

Best regards, Bernhard
User avatar
TRINAMIC_BD
Site Admin
 
Posts: 2436
Joined: 25 Jul 2006, 12:21
Location: Hamburg (Germany)


Return to General Basics / Terminology / Getting started questions

Who is online

Users browsing this forum: No registered users and 1 guest