X & Y Axis Resolution
-
I think changing the benchmark for a higher resolution one (current is 0.05mm, and major motor steps are 0.16mm) and a rotation to isolate the drivers will help produce some better graphs. Statistically speaking I suspect I'm reading a bit further into the graphs than I should at the moment.
Motor interia vs axis inertia is an interesing thought, servor motors usually specify a range of load inertias that the drive will work best with. I won't be popular if this work confuses motor selection further still!
Your heavy hot end may well be doing you a favour here. I'd be interested to see how your system compares once my work is a bit more complete.
Stepper motors do usually have a specified tolerance for the accuracy of each step, and that will have an effect on the positional accuracy of the microsteps. I'm having a look through spec sheets to see if this is quoted for my motor.
-
This site suggests a step accuracy of +/- 5% for the "NEMA 17 JK42HS34 1334A" steppers from the Ormerod 2.
This would suggest a base level of noise in the system of +/-0.008mm, not much below the microstep size of 0.01mm.
(([pulley teeth] * [belt pitch]) / [motor steps]) * 5/100
((16*2)/200) * 0.05 = 0.008 -
Yes, step accuracy of 5% per step is the norm. But it's non accumulative. My train of thought was that if motor current is on the low side, then the motor might not respond to every single micro-step. If it missed one, then caught up on te next one it might explain what you are seeing.? Dunno - David is the expert on these things.
Ref mass. Yes according to perceived wisdom I'm doing everything wrong (but I don't care). My personal view is that reducing mass is only important if mass itself is a limiting factor.
I can say that with having a heavy hot end rigidly mounted between two parallel rails, "ringing" just doesn't happen. I have shown that I can print at 300mm/sec using a high acceleration with a mass of 4kg in the Y direction. The limiting factor is always how fast the filament can be melted and extruded and never to do with too much mass. Everything I print uses a speed of 350mm/sec for non-print moves with acceleration of 1,000 mm/sec^2. So I ask myself, how is reducing mass going to help? I don't need to accelerate or move any faster than that. Just my twopence worth anyway….......
-
I am going to have to look very closely at this.
Currently theorys for the motor-step sized humping on the measured vs target plot are:
-
Measurement fluke. - Increase resolution of test and axis alignment should help.
-
Motor steps being different sizes due to 5% tollerance bunching up one step worth of microsteps and stretching the next.
-
Motor / axis inertia mismatch.
-
Stepper naturally settles to major steps when static.
-
My rig not ideally set up
-
Stepper current limit (800mA) not ideal
-
-
Re-reading Davis post, it might just be friction causing issues with micro-steps? One thing I learned a while back is that it's very tempting to have the belts really tight. But, I discovered that it's easy to have them too tight. Hard to describe but when I first started to use the machine, the motors seemed to be labouring and they definitely missed steps at higher speeds/accelerations. This was before I had anything like the mass that I have now. The cure was to back off the belt tension a bit. I can only assume that it was too much side load on the motor bearings. Just a thought….
-
Sorry for the long delay! Here Are some pictures.
Firstly the benchmark. As you can see there are two features runnign parallel to the x and y axis with a thickness that varies in 0.05mm steps from 5.05 to 6.00mm. The steps have been randomised to try and avoid issues that would be exaggerated by only moving a small distance each time - something that wouldn't relate too well to real world printing.
Ignore the rest of the benchmark part. I realised I fell into the trap of trying to test too much in one part. I've since found many more basic things that I need to dial in better before trying something like this again!
Here are the results I got on one of the axis. As you can see the deviation from the ideal appears to be in a pattern that very roughly corresponds to the major step size of the motor. This experiment is in the developing stages at the movement and I am aware of a number of changes that I would like to make in order to improve it.
…on the up side I have just placed an order for an Ormerod 2 for use at home. I'll be able to have another stab at this in a few months when that is up and running if I haven't been able to fit it in at work.
-
I've been trying to add up the weight in theory of the h-bar, and the printer carriage that runs on it and I'm already up to 1.33kg without considering the printed components. I think the large inertia mismatch is a contender for the resolution issue and any extra drag from over-tight belts won't help this situation.
Summary of the following is:
- I've a 7.9:1 Load:rotor inertia which is in excess of the 3:1 target for performance systems while within the general suggestion to keep it below 10:1. This will only get worse as I've just loaded up the gantry with a further 400g ish of titan extruder and stepper motor.
- The stepper motors for the axis drive were originally from a 12VDC Ormerod. Scaling up to 24VDC on the supply while solving problems in the heater side may not have had much benefit for the stepper drives as the increased maximum speed is near unachievable apart from on an extreme corner to corner move on a 300mm bed.
- Significant scope to move to steppers with higher holding torques which are likely to have heavier rotors.
- Alternative option to use a reduction timing belt drive onto the axis rather than direct drive. This would reduce inertia mismatch by the square of the gear ratio and reduce the distance travelled when the stepper increments a step.
If anyone looks over this and spots some errors I'd be happy for them to be corrected. I'm ignoring frictional losses in the following, so the quoted maximum accelerations would have to be dialled back a bit in order to not loose steps or increase lag due to friction losses.
My steppers are:
NEMA 17 JK42HS34 1334A
Step Angle: 1.8
Motor Length: 34mm
Current /phase: 1.33A
Resistance /phase: 2.1Ohm
Inductance: 2.5mH
Holding Torque: 2.2kg.cm
(Holding Torque: 0.216N.m)
Wiring: 4 leads
Detent Torque: 120g.cm
Rotor Inertia: 34g.cm2
(Rotor Inertia: 3.4 * 10-6kg.m2)
Mass: 220gUsing the formulas on this page of the duet wiki would appear to suggest my maximum speeds are very high on the 24VDC supply - 0.924m/sec.
On this page of the forum DC42 suggests a formula to estimate available torque for acceleration as:
Available Torque = Holding Torque * 0.85 * 0.71 *0.098
..where the 0.85 accounts for driving the stepper at 85% of rated current, the 0.71 accounts for the drop in torque from using micro stepping, and the 0.098 accounts for ensuring the position lag of the stepper never exceeds 1/16 step.
Available Torque (from one stepper) = 0.0128N.m
In the worst case motion parallel to the y axis two steppers are working on the load, so the total available torque becomes 0.0256N.m, but of course there are two rotors to consider in the system inertia. As the belt's weight is minimal compared to the weight of the gantry I have ignored it here.
20t 2mm pitch pulleys so radius is 6.37mm. Therefore Inertia of load is:
1.33 * 0.006372 = 54.0 * 10-6kg.m2
Total system inertia:
54.0 * 10-6 + 3.4 * 10-6 + 3.4 * 10-6 = 60.8 * 10-6kg.m2
From general mechanics:
T: Torque (N.m)
α: Angular Acceleration (rads/sec2)
I: Moment of inertia kg.m2T = I * aangular
α = T / I
α = 0.0256 / 60.8 * 10-6
α = 421 rads/sec2Since pulley rad is 6.37mm linear acceleration of gantry is:
a: Linear Acceleration (m/sec2)
r: Radius (m)a = α * r
421 * 0.00637 = 2.68m/sec2
In standard config file units this is 2680mm/sec2
Finally I reconsider the maximum speed of the stepper from the perspective of what can actually be achieved within a 300mm move.
v: Velocity (m/sec)
t: Time (sec)v = a * t
when accelerating from zero average velocity:
vavg: Average Velocity (m/sec)
vavg = (a * t) / 2
distance travelled (dx) from stand still with constant acceleration:
dx = (a * t2) / 2
But in the printers situation the distance is the limiting factor rather than the time. The move being considered is 300mm with simple constant acceleration and deceleration
from 0 to max speed to 0 we know that the acceleration stage needs to be completed within 150mm if going from corner to corner of the build area, but don't know the time this will take.t2 = (2 * dx) / a
So now we have the time it will take to reach the maximum speed, and we know this can be achieved in half the total moves distance using constant acceleration and equal deceleration. We can reuse the "velocity = acceleration * time" equation to find the maximum velocity.
vmax: Average Velocity (m/sec)
vmax = a * time
vmax2 = a2 * t2
vmax2 = a2 * (2 * dx) / a
vmax2 = a * 2 * dx
vmax = (a * 2 * dx)0.5This gives a maximum attainable speed very close to that which is attainable by the stepper motor within a 0 to max velocity to 0 within a 300mm square build area:
(2.68 * 2 * 0.150)0.5 = 0.897m/sec
Realistically though a 30mm acceleration stage would mean a minimum vector length of 60mm which is still large.
(2.68 * 2 * 0.03)0.5 = 0.401m/sec
A print speed of 60mm/sec is often touted as a maximum print speed and is currently beyond what is possible with my setup. Finding out how far the system has to travel before attaining this speed is more useful:
vmax2 = a * 2 * dx
dx = vmax2 / (a * 2)0.062 / (2.68 * 2) = 0.000672m (672 microns!)
Distance travelled in one motor step:
(0.020*2) / 200 = 0.0002m
Similar look considering a 300mm/sec non print move:
0.32 / (2.68 * 2) = 0.0168m (16.8mm)
In other words a non print move would have to be greater than 33.6mm in length before the 300mm/sec jump speed was reached.
Edit: I realised that my worst case move was parallel to the y axis and so shared load between the motors. My largest move however was diagonally across the bed which is on one motor only. I'm corrected that now. In addition my original inertia ratio of 15.9:1 was based on a single rotor rather than the combined inertia of both motors.
-
Those motors were appropriately sized for the Ormerod, but I would expect to use longer motors for a 300mm square printer, especially if you are mounting the extruder drive on the print carriage. Something like 17HS19-2004 if using a generation 2 Duet, or 17HS19-1684 if using one of the older Duets.
-
That's fair enough yes. I'm looking at the spec sheets on the E3D motors at the moment but will look at those too. I'll be very interested in the before and after on the resolution to see if reducing the mismatch helps. I'm hoping the 0.9 degree steppers will be suitable.
I'm running the v0.6 Duet at work and home. The Duetwifi that I've been fiddling with is on someone else's machine.
-
The motors I mentioned are 1.8deg but there are also 0.9deg versions, just replace HS by HM in the part number. Think3DPrint3D sells a similar 0.9deg Wantai motor, see http://www.think3dprint3d.com/motors?product_id=122. The E3D "High torque axis motor" also looks suitable.