Hacker News new | ask | show | jobs
by pasta 3332 days ago
Most industrial motors are also 'cheap', but controlling them is expensive.

There are two things that matter: accuracy and repeatability. Most of the time accuracy is not a problem. But repeatability is. For example when you move something heavy a motor can loose a step. When you don't know this the rest of the accurate moves are out of control.

That's why industrial controllers have good feedback systems. They know a step was performed. If not, you can act on it.

So it's more about control than about motors. But cheap motors wear out faster.

2 comments

> accuracy and repeatability

And reliability. Making driver electronics that will live long term is not that simple, sudden stops and overload conditions are tricky to deal with in an effective way without risk to the attached electronics.

> They know a step was performed. If not, you can act on it.

Servo's don't 'step', current is applied to the motor in a continuously varying manner and the delta between the desired movement and the observed movement determines how that current will change over time.

This leads to all kinds of nasty side effects: overshoot, undershoot, runaway in case of a failing feedback mechanism and so on. Steppers are much simpler to interface to in principle (but to drive them at speed is remarkably hard due to all kinds of resonance issues) but much harder to get performance and reliability out of, almost all larger scale industrial control is done with servo motors tightly coupled to their driver electronics.

"Losing a step" makes me think you are thinking about stepper motors, which can be a problem, but for brushless motors it's a bit more complicated than that, since we don't drive them in the same stepwise fashion.
Yes I simplified. But in a way servos are also step/pulse controlled.

Edit: as other point out 'controlled' is not the best word here. Maybe 'positioned' would have been better.

No, they are not, servos simply do not step, and whatever pulse there is is PWM to control the torque without overheating the driver in an analogue domain.

There is no reference based on a 'step' or a 'pulse', there is only the desired position and the actual position and the difference between the two can be quite large, much larger than with a stepper which can by definition be at most one step ahead or behind or it is game over.

This gets very interesting once you start to combine servos on multiple axis and you want to limit your maximum error compared to some desired trajectory.

I know servos don't step, but doesn't the decoder 'count' steps?

But I totaly agree with you, they are completely different. Maybe in this case it was not very clever to oversimplify the problem.

By the way: you point out what I think is great about this business. So much work has been done to control motors very accurate. It's amazing what CNC machines can do today. And also how software optimized motion paths (gcode). And now this hardware. Great stuff!

Encoders (not decoders) typically contain a glass disc which contains two 90 degree out-of-phase sinusoidal patterns of light/dark, these are digitized to some arbitrary precision to give you a number of 'steps' around one revolution of the encoder axis. The 90 degree out-of-phase signal is used to be able to determine the direction of motion.
Ah! Thank you for that info. I always thought they used binary disks (black and white or holes).
So the term "losing a step" is used on stepper motors, which can be mechanically overpowered to lose positioning. Encoders however will typically always measure the position accurately even if you overcome motor torque and disturb the motor. So in that sense "lose a step" simply does not apply here. Steppers can lose positioning by being pushed beyond their holding torque, while brushless servos will not lose their positioning in the same situation.
The fix for that was to bolt an encoder onto the stepper just as with the servo, but in practice these systems do not work very well.
Hmmm, not sure I follow you there, care to explain?

(Unless you are referring to block commutation of the BLDC phases, which can look sort of similar to step wise control, but I would rebut that in precision servos drives, we would also look at doing non stepwise commutation (sinusoidal, FOC, etc.))