How to theoretically calculate the maximum acceleration? I would like to calculate the maximum safe acceleration for my printer using the following parameters as input:


printhead weight
torque at the desired speed
steps/mm and steps/revolution
microsteps


Elasticity of frame and belts are ignored.

The Excel file to obtain the torque at the desired speed is available here.

The other parameters are known in advance.

The formula I used for the maximum acceleration is the usual $a=F/m$, where $F=torque*radius$:

$acceleration = torque\ *\ (steps/rev\ /\ steps/mm\ *\ microsteps\ /\ pi\ /\ 2) / mass$

Using 450 g, 0.15 N/m (as predicted for my stepper at 200 mm/s with 24 V), 200 steps/rev, 80 steps/mm, 16 microsteps I obtain about 2100 mm/s2 which seems reasonable and pretty close to standard values.

However, from what I understood the Excel file provides the prediction of a full-step torque, but torque is known to decrease significantly with increasing microsteps.

How to introduce the effect of reduced (incremental) torque for microsteps to calculate a safe maximum acceleration value for a printer?

For information: my stepper and my printer were sold back then with about that acceleration value preset and with that torque at nominal speed (half voltage, half speed than I assumed here).

The print quality was fine, which seems counterintuitive considering the much reduced torque expected at 16X microsteps, about 1/10 of the value I used.

I would expect many lost microsteps with the predefined settings. Or maybe it happens: if all the microsteps are lost, the positioning error would be 16 (micro)steps / 80 steps/mm = 0.2 mm.



Important edit!!!

As maybe someone noticed, the formula I used

$F=torque*radius$

is wrong. The correct one is

$F=torque/radius$

Taking this change into account, the final formula is:

$acceleration = torque\ /\ (steps/rev\ /\ steps/mm\ *\ microsteps\ /\ pi\ /\ 2) / mass$

which results, with the given input values, in 52 mm/s2.

This is much less than what is normally set in printers. I doubt that belt stretching and frame flexibility can affect the setting so much, therefore in addition to the microstep aspect, this one should be answered too, since the question is about "theoretically calculate the maximum acceleration".
You do not appear to have a correct understanding of how microstepping affects torque.

What is calculated in the article you refer to is incremental torque. The word "incremental" is very important.

A stepper motor consists of a permanent magnet rotor and an electromagnet stator. The electromagnets generate a magnetic field, to which the stator wants to align itself. Imagine the stepper motor being at rest. As we apply a torque to it, the rotor will start to deflect from its resting state in which it is aligned with the magnetic field. As you apply more torque, the stator will deflect more.

Eventually, if we keep increasing the torque, the motor will no longer be able to hold its position and snap over to the next step. The torque at which this is happens is the holding torque. Essentially, you can think of the holding torque as the torque required to cause a full step deflection of the rotor's position (compared to where it would be aligned with the magnetic field). The deflection in response to a given torque load is called the static load angle.

The article calculates incremental torque for microstepping. The incremental microstepping torque is the torque required to cause a microstep deflection. So, if we are using half stepping, the incremental torque is the torque required to cause a half step deflection. Naturally the torque required to cause a half step deflection is (much) lower than the torque required to cause a full step deflection.

This is actually irrespective of what level of microstepping the motor is configured for. Causing a half step deflection requires the same amount of torque, regardless of whether the motor is using full or half stepping. All lower incremental torque means is that we're specifying the torque for a smaller deflection. It does not mean torque is reduced overall.


  I would expect many lost microsteps with the predefined settings.


You cannot "lose" a microstep. The rotor of a stepper motor has physical increments, and losing a step is when it snaps to the next increment. The only thing you can lose is a full step.

The stator of a stepper motor creates a rotating magnetic field. The rotor tries to follow this magnetic field, but (if under load) always lags behind it a little because the coupling between the two magnets behaves like a spring. In full-step mode, the rotating magnetic field moves in discrete steps. All enabling microstepping does is make the field rotate more "smoothly". However, it doesn't change the magnitude of the field.

If you were to look at the graph of the acceleration of the rotor on a very small time scale, you would get a sawtooth wave. Each time the motor made a full step (i.e., the magnetic field jumps), the acceleration would be high (as the misalignment between the fields would be large) and then gradually drop as the rotor aligned itself again with the magnetic field.

If you would use 16x microstepping, you would again see a sawtooth wave, but with a 16x higher frequency and with a lower peak-to-peak amplitude. However, the average value would be the same as for full step mode. The reduction in peak-to-peak amplitude corresponds to the reduction in incremental torque (and, for smooth acceleration, this reduction is actually good).

The main reason to be interested in incremental torque is to determine the positioning error. If you imagine the printhead being at rest, a single microstep may not cause any motion because the incremental torque is too low to overcome static friction. So, using 16x microstepping will not allow 16x as precise positioning. However, maximum acceleration is not affected.

The second part of your question, where you get the unrealistically low value of 52mm/s2, is based on a simple calculation error. The correct value is 52m/s2 or 52000mm/s2.