How to control torque of a stepper motor dynamically
Elnino2002
Posts: 5
I'm working on creating a sim racing wheel as a little side project of mine, and I've been looking into using a stepper motor as the motor that will generate force feedback. I'm looking to control the torque dynamically for this stepper as it's crucial to do so for a sim racing wheel. I'd like to point out that I am not looking for accuracy specifically from the stepper as I'll also be using an optical encoder. So far from my research torque is heavily related to current when working with steppers so the end goal will probably be varying that using a mosfet and a pwm signal. I'm locked in my house from the whole Covid-19 deal and I have a nema 32 stepper along with a DM860T driver and everything to assemble a circuit. What do you think?
Comments
Mike
I found a few open source projects related to your question.
Here's an article about Open FFBoard.
And here's a project called SmoothStep.
I hope you keep us posted on your efforts.
Hi Duane, was there any mention of variable torque, though because I didn't see it.
With a closed loop servo motor, it's easy to dynamically limit the motor torque, simply by limiting the motor command.
AKA: soft servo.
My personal philosophy is that; if it's not monitored via some form of feedback, it's not controlled.
Agreed. There's no way to know if the user (driver) held the wheel tight enough to make the stepper miss a few tics.
Intuitively, seems like using a DC motor would be easier to manage, especially if you're just starting up, Elnino2002.
I looked a bit closer at both projects and only found references to torque control in the second project's code. I'm pretty sure both projects use encoders for closed loop control.
I don't see a purpose to force feedback without some sort of variable torque. If they don't have this, it's got to be because they're still learning how to do this sort of stuff. I don't know how to use variable torque with steppers so I don't intend any disrespect towards them for not knowing how to do it yet.
I was just surprised to learn people were trying force feedback with steppers at all. As you and erco suggest, I'd think a DC motor with encoders is the way to do this. If I remember correctly, DC motors have a lot of torque when not moving and steppers have most of their torque while moving. A stepper seems like an odd choice but I know steppers are being used successfully in high end commercial force feedback wheels.
Ditto
I vaguely remember an arcade game that would kick back but it was abrupt, no sponginess that I could detect.
So the question you raised must be modified: how to select the current needed for a stepper motor to create the required torque. This answer is: there is no simple solution in case the motor is running and there is no solution in case the motor is at standstill. For further reading: https://www.trinamic.com/technology/adv-technologies/
-Phil
I watched an overview of force feedback steering wheels on YouTube. The presenter stated some of the high end units used stepper motors.
I haven't spent a lot of time looking for stepper direct drive steering wheels but so far I haven't found commercial direct drive units which use stepper motors.
As ErNa mentioned, brushless motors are being used for this purpose. Here's one example of a brushless direct drive force feedback steering wheel.
Based on the little I've learned so far, I'd say using a stepper motor for force feedback is a challenging task.
At first glance, all they appear to have done is take a standard, off-the-shelf, integrated BLM/drive and hyped it up. They have listed standard features as if they were something special.
Edit:
"Torque reconstruction processing": P Term
"Static force reduction": I Term
"Natural Damping, Inertia and Friction filters": D Term
"Ultra low latency mode": 1/2/4/8 KHz servo loop?
"Torque slew rate adjustment": PID output limit
These things are cool and are a part of my master-plan to almost completely eliminate machine wiring.
@Erlend
Makes sense but against an opposing force, the "driver", wouldn't the motor lose steps and therefore position? Would probably need some form of position feedback.
Edit-
Control the voltage and current and you control the torque. Control the frequency and you control the speed.
This particular chip detects lost steps, but I agree, I would hesitate to rely on a stepper to always be at the intended position.
A stepper motor both is simple and creates a relatively high torque due to the high pole count. If you like to have a closed-loop controlled high torque drive you can run a stepper with position feedback, but that means you have to use a very precise incremental encoder and the system will become rather expensive.
But what is needed here is for sure only an adjustable current of the stepper driver, what can easily be done whenever the current needed is known from experience