3
$\begingroup$

I am currently working on a system with a BLDC motor attached to a non linear spring on which a user can apply a force. Meaning the torque applied on the motor's output is most of the time unknown.

What matters for my application currently is the position of the motor regarding its reference. I control this motor using a DRV8323 chip and a single PWM as input to this chip. The driver chip is doing the phase commutation itself thanks to Hall sensors.

The control strategy that I currently use is the following :

  • Given a reference position as input to a PID
  • The PID compute the position error and gives as output the duty cycle of the PWM send to the DRV8323 chip. (here there is an implicit conversion from position to speed but it works)

It happened to me already that the motor coils burnt because of current going crazy because of bad configuration or mechanical problems. Also, I saw in a lots of article that BLDC motor are most of the time control with nested position > speed > current loops.

So my question are the following :

  • What would be the benefits of implementing this full nested control architecture for the control compared to my current implementation ? Taking into consideration that what I want to control is the motor position but overshoot, acoustic noise and heat generation are also a concern.
  • Could a simple if condition on a specific current thresold would be enough to protect the hardware from overccurent accident ?

Thank you in advance for your help !!

$\endgroup$
4
$\begingroup$

What would be the benefits of implementing this full nested control architecture for the control compared to my current implementation

Textbooks are always a great source of information!

Reference: "Feedback Systems - An Introduction for Scientists and Engineers", Karl Johan Astrom, Richard M. Murray.

par-1

par-2

Could a simple if condition on a specific current thresold would be enough to protect the hardware from overccurent accident

Yes!

$\endgroup$
2
  • $\begingroup$ Thank you Ugo. I don't know if you have any experience in tuning this kind of cascaded loop but I have an additional question. Assuming that you need to tune your current loop so you know that whatever the speed loop request, the target of the current will be reached. Would you tune it for step inputs, ramps inputs ? I guess the answer depends on the application. $\endgroup$
    – Robs_vic
    Mar 29 at 7:56
  • $\begingroup$ First off, identify the plant by using inputs that elicit all its modes, like step-wise or chirp inputs. Once the plant is well identified, proceed further with the tuning. The closed-loop performances are application-dependent. Usually, those performances in the time domain are given in terms of the response to the step-wise unitary input. $\endgroup$ Mar 29 at 9:09
0
$\begingroup$

What would be the benefits of implementing this full nested control architecture for the control compared to my current implementation ?

There are lots of them, but from the sounds of things the two biggest advantages would be "automatic" current limiting and the inner current loop would present a more linear plant to the outer position or velocity loop.

Could a simple if condition on a specific current thresold would be enough to protect the hardware from overccurent accident ?

If you mean, could you just use the loop you have and cut the power if a limit was exceeded? Yes, this would protect hardware, but it would be very difficult to smoothly control either the current or the overall plant, because any time the current limit was exceeded the plant would -- from the perspective of the outer controller -- change behavior.

If you mean could you incorporate a current limit by using "if" statements to limit the current command -- yes, by all means, in a computerized control system that's how you do it.

$\endgroup$
1
  • $\begingroup$ Thank you for your answer. So indeed, these cascaded loops would add smoothness and modularity into the control. I agree with you that a current shutdown would be seen as a changing behaviour for the high level loop but this will be true for any kind of limitation no ? How would you implement a smooth limitation that handle current value and also time ? So we can also short spike but no long high value of current. $\endgroup$
    – Robs_vic
    Mar 29 at 8:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.