Project on high precision measurements with stepper motor

Hi everybody!

I am working to create a device (Arduino controlled :D ) for an academic experiment.

There is a stepper motor that is connected to a shaft with rolling bearing. The objective of Arduino is double: on one case, imposing a rotation and its rotation speed, I would like to measure and save the required torque; on the other case, I would like to impose a torque and measure the speed and the rotation.

From an initial design, the maximum force applied to the bearing is 180 Newtons and, considering a 14x4 mm rod and a system efficiency of 30%, the minimum required torque is about 0.4 Nm.

I did some research, and I thought about using this kind of setup: - Arduino UNO - Motor: http://www.conrad.com/ce/en/product/197969/Trinamic-QSH6018-65-28-210-60-x-60mm-Stepper-Motor-18-Degree-210Nm-0-84Vdc-28A?ref=searchDetail - Driver: https://www.pololu.com/product/2133 The driver would give a very good microstepping, which is required for the experimental results. The wiring scheme would be similar to this: https://a.pololu-files.com/picture/0J4232.600.png?f2f6269e0a80c41f0a5147915106aa55

Here there are my doubts: - Is the project feasible? - Measuring the outgoing voltage change (before it goes to the ground) is enough to measure the torque? And do I need to amplify the signal? - Which power supply would you suggest for the motor? At maximum speed it would consume 2 W of power (ideally, not considering the losses!)

Thank you very much!!

There is no way to measure torque with a stepper motor.

How accurate do your measurements need to be?

You can get approximate measure of torque using an appropriate
BLDC servo motor driven with AC/sinusoidal drive, since such a motor
can be engineered for roughly constant torque per amp, but there is
always torque ripple in real motors. Of course torque ripple averages
out during motion, so if you are not interested in static torque then
you may get away with a standard trapezoidal BLDC motor. You still
need a servo drive to control the thing.

DC brushed motors have lots of frictional losses in the commutator making
them tricky for torque measurement - in theory you just have to subtract a
single value to compensate, in practice this may not be reliable.

There are specialized induction motors designed to stall continuously which
generate a constant torque (I think they are just called torque motors).

A separate sensor to measure torque may be what you need.

Thank you MarkT for your quick reply.

The experiment that I would like to run is divided has to save rotation angle, rotation speed and torque very precisely. Let's say that I will be saving at least 250 values per second while the shaft will make the rolling bearing move at a maximum allowed rate of 0.3 mm/sec. It is clear that I need some precision... from the stepper motors I can get a quite smooth position and velocity control, which I can save.

For the force measurement, I do not know. Now, I have been searching for that in the forum, and I found some interesting topics, like:

http://forum.arduino.cc/index.php?topic=136261.3

http://forum.arduino.cc/index.php?topic=280046.0

http://forum.arduino.cc/index.php?topic=181619.5

http://forum.arduino.cc/index.php?topic=136261.0

or measuring the drawn current of attached devices:

http://forum.arduino.cc/index.php?topic=272761.5

http://forum.arduino.cc/index.php?topic=27040.0

In some way, the principle is always the same, to measure the difference in current or voltage or power. On the other side, I would prefer to avoid the need of both motion and torque sensors.

Is it possible with BLDC motors to reach that kind of quality of data?

Or at least, I would accept to use a different kind of motor, like BLDC, if the sensors do their job measuring torque (or axial force in the threaded rod) and displacement/velocity while the cost for the system does not increase exponentially... :D

High precision = expensive. How do you plan to measure the torque and with what precision?

Torque is not easy to measure since the part experiencing it is rotating, making attaching load-cells rather complicated...

Actually thinking about this you will have to worry about torsional vibration modes, they may be quite significant unless you take steps to dampen them.

jremington:
High precision = expensive. How do you plan to measure the torque and with what precision?

@jremington This is actually the problem that I was most concerned with. The maximum shaft axial load (which is what I would like to measure) is in the order of 10-20 kgf, but I would like to have at least a precision of 10-20 grams. I was planning to do it with stepper motor because you can get very high displacement resolution.

Do you have any idea how to do that?

MarkT: Torque is not easy to measure since the part experiencing it is rotating, making attaching load-cells rather complicated...

Actually thinking about this you will have to worry about torsional vibration modes, they may be quite significant unless you take steps to dampen them.

@MarkT I am not an electronic engineer (and that is why I am asking for help :D) but I am a civil engineer, and at that kind of speed, being the shaft under tension and being the rest of the structure quite stiff, I do not think we will have torsional vibration. Obviously I can damp it with a rubber connection to between the main shaft and the motor shaft.

kgf is not a torque, it is a nonstandard but somewhat popular measurement of force. In the international system torque is measured in Newton-meters (N-m). What range of torques are of interest?

jremington: kgf is not a torque, it is a nonstandard but somewhat popular measurement of force. In the international system torque is measured in Newton-meters (N-m). What range of torques are of interest?

Sorry for not being clear enough. There is a linear bearing which shaft is controlled by the stepper motor. The linear bearing is connected to the rest of the experiment and there is an applied force to that. The bearing transforms the linear movement to rotational, and there is the torque.

The maximum applied force is in the order of 100-200 Newtons, that translates to a peak torque of 0.4 Nm. The required precision is in the order of 1/100 to 1/1000 of the peak stress.

You mean you have a linear actuator and you need a loadcell in it to measure linear force?

Can't see how we were supposed to guess that when you talked about stepper motors and torque.... The original posting says nothing about linear motion. Perhaps a sketch of the set up would have been useful.

on one case, imposing a rotation and its rotation speed, I would like to measure and save the required torque; on the other case, I would like to impose a torque and measure the speed and the rotation.

I'm confused too. Is this experiment to measure static torque such as applied with a torque wrench, or dynamic torque such as that being developed by a car engine at 6,000 rpm?

It sounds like he's examining the frictional losses of a leadscrew.

What you want to do is mount the stepper motor so it is only supported by its shaft (and preferrably you'd have a dual shaft stepper so you could support it on both ends). Basically mount it in such a way that the motor would be as likely to send itself spinning as it would be to spin the leadscrew. Then all you need is a string or rigid arm connected between the motor and free end of the load cell that prevents the motor from spinning. The force that string or arm exerts as it keeps the motor from spinning is your torque, of course.

Dear all,

I will try to clarify better my problem. In the sketch that is in the attachment you can see the small experiment that I want to run. It is a box made of 4 rigid walls, connected with hinges. The box dimension is 300 x 300 x 100 mm. The motion that I would like to achieve is similar to the one of the diamond shaped pantograph of trains like this

that is the box changes shape from square to stretched diamond. The stretching is realized by connecting two opposite corners and reducing the distance between the two. The experiment works as following: a material (usually granular) is inserted in the box, the box is stretched and the force, displacement (and velocity) values between the two opposite corners are recorded.

In a preliminary design I calculated that the peak force between the two point will be of 200 Newtons. I would like to have a precision of measurement of force in the order of 1 Newton (at least). There are restrictions in the velocity of the experiment. Two opposite corners cannot move faster than half millimetre per second. Obviously, if slower motion is possible it would be better in order to eliminate dynamic effects on the material that is tested.

My initial idea was to use a step motor with microstepping driver connected to a shaft, since I felt it was a good option for a precise control. However after your comments I feel that it is not simple to do that. There was also the possibility to separate the two pairs of opposite corners, in order to have the driving displacement and the resultant force measurement splitted in two devices but I did not find any feasible solution. How would you do that? What kind of motor/setup would you use? Stepper motor? Brushless? Linear actuator?

I hope I was clear with my problem this time… :slight_smile:

A load cell is how you measure linear force. You can get cheap ones that are used for kitchen scales etc.

You seem to have conflated the measurement with the movement - as I see it you want to measure a force, and also (for a reason you don't explain) change the geometry too.

It is possible to estimate the torque of a conventional motor by measuring the current and voltage. For a stepper motor, that doesn't work at all. It's like trying to measure the weight of a person climbing stairs by measuring the stairs - the step doesn't change until the person is heavy enough to crush it.

I would try to insert a load cell into the mechanism somewhere - maybe even in the non-driven corners.