3

Please forgive my lack of perfect electronics knowledge. I am here to learn.

I understand I am clearly missing and misunderstanding something important. The aim of this question is to find out what it is that I am missing and study it further.

My question is related to control of a BLDC motor using torque commands. The motor I am talking about is an RMDx6. It is a BLDC motor with a field-oriented control (FOC) driver.

My project requires me to assist the user with 1 DOF movement. Assume the input to the control logic is the direction and how much the user is trying to move -> their muscle activation. You can imagine this as supporting knee movement based on quadriceps activation.

There are three options of controlling the motor:

  1. commanding a desired position
  2. commanding a speed with which it is supposed to turn
  3. commanding a desired torque with which it is supposed to turn.

From my research, everything suggests that the torque control is the correct control for this particular project, yet I am not seeing why it is the case.

Let's say there is a specific load the user is trying to lift - wouldn't commanding a certain velocity make the motor turn with any torque required to achieve that velocity anyway?

psmears
  • 678
  • 4
  • 6
DarreeN
  • 31
  • 1

3 Answers3

3

Whether you choose controlled position, velocity or torque depends on what kind of dynamics you want to acheive.

It sounds like this is a human-assist exoskeleton sort of thing. In which case, both position and velocity are inappropriate, as they would overwhelm any human feedback for the action.

A programmable torque will best mimic what a human does when lifting a load - apply some force, if it doesn't move apply some more, if it moves too fast reduce the force. The effect of this, as perceived by the human, will be that the load simply becomes 'lighter' and easier to lift, with the human still able to control the velocity and position of the load with whatever residual muscle power they still have in the joint.

Neil_UK
  • 158,152
  • 3
  • 173
  • 387
2

Velocity control is if you need a certain speed, but it's mostly depending on what kind of sensor you have if you have a positional sensor velocity control is harder to do, because you have to differentiate the position to get velocity.

I would use torque control with a position encoder

Voltage Spike
  • 75,799
  • 36
  • 80
  • 208
0

Velocity and position control are “high authority”. The assisted limb will have to follow a trajectory exactly as the velocity or position controller requests - it will brake the limb if it tries to get ahead of the assist. The assist actuator will hit the torque limiting often.

It is a hard control problem: muscle activation changes the spring constant of the muscle. So the hybrid plant has varying response. Traditional fixed-plant control doesn’t work well and newer techniques are needed. Stretch receptor-based protective responses add more nonlinearity to the mix, making the muscle a spring with rate that can vary well over two orders of magnitude.

Torque control does not maintain a fixed trajectory. It only adds a torque to the system. In your case, it adds more torque the more muscle activation there is. But that’s what muscles do too: the more activation, the more force they generate. The velocity and position control is achieved by the spinal controllers. Those have an open-loop component that acts based on the model of the plant, with a slower closed loop observer that tweaks the model to follow reality.

That’s also why torque assist must feel unnatural initially, since the spinal motion control suddenly has quite a change in the gain loop. Since the loop is open in the short term, it “feels weird”. Once the closed loop adjusts the model, it becomes quite natural-feeling.

The biggest obstacle to high levels of torque assist was historically the artifacts and external interference in the EMG pickup. It is dangerous since applying high torques with external loads to counter them dumps the assist torques into the skeleton and Bad Things Happen (tm). We always had means to toss a lot of torque at the problem but doing it quickly and safely was hard.

Today, machine learning models do a good job of estimating muscle activation in spite of artifacts. In fact, with good enough training set, they do a slightly better job than a human researcher “reading” the EMG in scaled real time would. Of course the researcher could be trained to do better :)